Ambiente de Desenvolvimento de Software para Robótica aplicado no
uso de modelos e na geração automática de código
Guilherme dos Santos Marques1, 2, Francisco de Assis Zampirolli 1
1
Centro de Matemática Computação e Cognição da Universidade Federal do ABC, CMCC - UFABC, Santo André, São Paulo
Brasil
2
Centro de Engenharia, Modelagem e Ciências Sociais Aplicadas da Universidade Federal do ABC, CECS-UFABC, Santo
André, São Paulo Brasil
Existem deficiências de ferramentas didáticas para o desenvolvimento de aplicações em Robótica. Por este motivo, o
Ambiente de Desenvolvimento de Software para Robótica (ADS-R) proposto neste trabalho estimula o compartilhamento
de informações e experiências.
O ambiente proposto tem potencial de aplicação no ensino e na capacitação de conceitos de robótica. Pois o ADS-R tem
como objetivo criar e manipular uma base de dados onde o conteúdo, armazenado em XML, representa artefatos
produzidos no ciclo de vida de desenvolvimento de software seguindo um padrão de documentação. Este padrão segue o
padrão de Engenharia de Software (ES), possibilitando o uso de processos e recursos como geração automática de código
e documento bem como UML (seguindo conceitos de MDA). O ADS-R implementa uma interface gráfica responsável por
uma comunicação eficaz, onde o usuário pode aplicar a seqüência de movimentos de maneira flexível, obtendo os
movimentos em um simulador, produzindo um diagrama de classes e um arquivo XML, que poderá ser transformado
para qualquer tipo de linguagem bastando um tradutor para cada linguagem.
Como resultados deste ambiente, podemos ter várias facilidades para o desenvolvimento de software, de aprendizado em
robótica e uma documentação completa, disponibilizando para consulta um portfólio de projetos seguindo este padrão de
desenvolvimento. Esta metodologia de desenvolvimento e de aplicação pode ser usada para auxiliar projetos de software
desenvolvidos em disciplinas de graduação em Robótica e Ciência da Computação.
Palavras chave: Robótica, Computação, MDA, LEGO, UML, XML, XMI e Pedagogia
I. INTRODUÇÃO
ADS-R tem potencial de aplicação no ensino e
Onaambiente
capacitação de conceitos de robótica, através de uma
plataforma simples, usando um sistema de programação
facilitada e a criação automática de código.
A manipulação do XML baseada no fato de muitos dos
grandes Sistemas de Gerenciamento de Banco de Dados
(SGBD´s), como Oracle, Sybase, SQL Server, entre outros,
possuem módulos para armazenamento e consulta a dados
XML. Softwares específicos para esta tarefa são, entretanto,
ainda incompletos. A relevância do resultado toma outra
dimensão se for considerado que o XML está surgindo como
linguagem padrão na Web bem como uma grande quantidade
de dados no formato XML deverá ser armazenada e
manipulada no ambiente como um banco de dados. Esse
pensamento fez com que surgissem diversas bibliotecas
ligadas a XML, entre muitas foi escolhida a XStream[6] para
aplicação nesse
projeto. Com o tempo, os projetos
desenvolvidos com o auxílio do ADS-R formarão uma base
sólida de desenvolvimento de software, capaz de ser utilizada
profissionalmente. Em longo prazo, espera-se a difusão dessa
base com o objetivo de reduzir os custos com o
compartilhamento de informações no desenvolvimento de
software por programação simples ou até mesmo pela
movimentação. Essa base também servirá para alavancar a
criação de novos produtos de software, uma vez que os
desenvolvedores podem aproveitar artefatos já existentes para
criar novas funcionalidades. Evita-se assim a repetição,
desnecessária, de esforço acelerando o processo de
desenvolvimento, não apenas em robótica, mas como um
todo na programação[1].
Os usos de técnicas de Engenharia de Software como a
MDA[2], que pode ser entendida como a separação clara entre
a lógica do negócio (modelo PIM - Platform Independent
Model) e tecnologias de implementação (modelo PSM Platform Specific Model). A MDA ainda especifica as regras
de transformações / mapeamentos e armazenamento de
modelos. O modelo PIM é o modelo que descreve um domínio
de conhecimento sem se ater à tecnologia ou plataforma de
implementação. Também colaborariam para aumentar a
credibilidade do software livre produzido, uma vez que todos
teriam acesso às especificações de cada projeto e às métricas
de qualidade do mesmo.
Deve-se destacar que o ADS-R é especificado com foco na
utilização de padrões abertos e na independência de
plataforma, aumentando assim a liberdade do usuário na sua
utilização. Por meio de modelos padrões que são obedecidos.
II. MÉTODOS E PROCEDIMENTOS
Foi feito primeiramente uma pesquisa baseado no projeto
ADS(Ambiente de Desenvolvimento de Software para
Web)[1]. Logo após foram feitas pesquisas relacionadas com
XML[4], XMI[5], Arquitetura e Modelagem de Software[7],
UML[9], Implementação de métodos de reestruturação e
manipulação de dados, manipulações visuais e interface
gráfica. Com isso foi possível determinar, que o problema da
geração automática seria resolvido, mas não seria tratado de
maneira clara e objetiva para o usuário. Esse problema e as
pesquisas feitas fundamentaram as escolhas de linguagem e a
idéia de módulos a serem criados. Assim baseado nesses
aspectos, foi desenvolvida uma arquitetura apresentada na
Figura 1.
pelo programador, sendo essas as classes envolvidas com a
movimentação dos robôs e a LeJOS[10] que manipula robôs
LEGO NXT[11] através da linguagem de programação JAVA.
Os modelos utilizados foram criados nesse projeto pela falta
de ferramentas que executem os métodos e os comandos
requeridos, sendo eles:
O Modelo XMI, baseia se na criação de arquivos XMI e
após a análise de vários exemplos de arquivos gerado pelo
programa ArgoUML, onde foi observado sequências e
repetições de partes do código e da estrutura foi definido os
padrões de estrutura e de validade do código. Assim através
desses dados foram escolhidas as informações a serem tratadas
pelo nível de abstração e de dificuldade do tratamento como
visto na Figura 2.
Figura 1. Arquitetura do ADS-R
Nessa arquitetura pode se ver as aplicações, os aplicativos
e os métodos importantes, bem como as interações que elas
sofrem ou realizam no processo de execução do ADS-R. Os
blocos maiores delimitam programas, os menores que estão
dentro desses, são partes específicas do aplicativo que devem
ser usadas, partes que devem ser lembradas ou o que é
produzido em partes. As flechas escuras são as interações
diretas ou as interações com outros programas as tracejadas
são as que necessitam de um método para serem executadas.
Seguindo essa arquitetura podemos visualizar o fluxo de
atividades desenvolvidas por ele, por exemplo: O Usuário
começa na interface gráfica (I) coloca os dados através da
interface de botões e os pontos pelos Jtextfields e então segue
em começa a colher resultados, podendo ir para o sentido da
produção automática de código (II.a) e criar um arquivo XML
(III) entre outros podendo também interagir com outros
programas como o ARGOUML[8] (IV.e) visualizar um
diagrama de classes ou seguir no sentido (II.b) e simular a
informação dada anteriormente podendo visualizá-la na tela.
Com esse tipo de aplicação onde o usuário interage com o
programa pretende se desenvolver um modelo cognitivo como
ilustrado na figura 3.
As bibliotecas utilizadas foram o X Strem, onde podemos
criar um texto XML a partir dos dados de classes pré definidas
Figura 2. Exemplo da analise e tratamento da informação
O Modelo Robótico, onde foi tratado as informações com o
mesmo nível de abstração do modelo XMI e aplicado na
criação de um arquivo de sequência de Threads para uso em
um sistema (.class) baseado nos padrões de desenvolvimento
da linguagem JAVA e de biblioteca já apresentada LeJOS.
O sucesso de uma aplicação interativa depende da
facilidade com que o usuário consegue aprendê-la e utilizá-la.
Essa facilidade em utilizar o sistema, depende da relação que
existir entre as ações que ele mentalmente considera
necessárias para realizar essa tarefa e as interações com o
sistema necessárias para consegui-lo e seu desempenho será
afetado pela qualidade da informação que lhe for
proporcionada pela interface. Para determinar como o usuário
se comunica com o ambiente foi feito o Modelo Cognitivo
(Figura 3) com o objetivo de modelar o aplicativo de acordo
com o usuário sendo o único modelo não metodológico e onde
podemos identificar o fluxo de atividades ligadas ao raciocínio
lógico do usuário, assim como o raciocínio matemático do
programa e as suas interações durante a execução do mesmo,
através do envio e recebimento de informações específicas
ligadas diretamente ao entendimento do usuário.
projeto, com isso foi possível perceber, as facilidades do uso
da linguagem JAVA que permite ampla utilização de API's e
bibliotecas onde elas foram selecionadas pela aplicação de tal
maneira que inibi o desenvolvimento de programação
repetitiva / longa, o desenvolvimento de um modelo padrão
para aplicação em um projeto de robótica, criação de um
sistema de criação de código automático e de modelos (UML),
fundamentado na Arquitetura Orientada a Modelos (MDA) em
métodos criados especialmente para esse projeto,
implementado em uma linguagem de Banco de Dados
aplicável na internet (XML), possibilitando a criação e
manipulação do código a distância e disponibilizando o
conteúdo de vários estudos de casos que poderão servir de
consulta por diversas instituições de ensino ou organizações
que pretendam desenvolver software com qualidade. Além da
utilização e aplicação de práticas didáticas de robótica
fundamentadas em diversos exemplos de sucessos como os
LEGO Mindstorms NXT através de uma interface baseada em
um modelo cognitivo que permite definir os usuário e aplicado
na biblioteca LeJOS. Por fim, esta pesquisa, visou preparar
cada vez mais a lógica da programação e não a programação
tradicional
REFERENCES
[1]
Figura 3. Modelo cognitivo
III. RESULTADOS E DISCUSSÕES
Foi criado um aplicativo baseado em quatro módulos, que
executam os métodos explicados na segunda seção e que
seguindo o modelo cognitivo permite definir os públicos alvo
do projeto, nessa versão sendo:
O público infantil [3] pela aplicação de uma interface de
fácil compreensão aplicada na visualização dos movimentos
na tela e nos robôs NXT da LEGO MINDSTROMS
O público universitário, onde foi aplicado a criação de um
diagrama de classes baseado na estrutura de XMI mais usada
dentre as ferramentas acessíveis a do ArgoUML, onde pode se
observar o diagrama das classes relevantes ao movimento do
robô lembrando que os dados presentes nesse diagrama são
apenas para validação de conceitos pois poderiam ter sido
feito com muito mais dados e com outros tipos de diagramas
já que a ferramenta utilizada não nos permitiu definir um XMI
para o diagrama de atividades, o mais adequado ao projeto, já
que não há no mercado ferramenta com essa função a um
preço acessível. Na geração de um XML com a mesma
finalidade podendo ser acessível a qualquer pessoa que
necessite e peça a permissão de uso. Permitindo assim a
criação de sequências mais dinâmicas e com resultados mais
positivos, por serem amplamente modificado pelo meio
acadêmico (no caso ideal do uso desse projeto).
IV. CONCLUSÕES
A criação de um software que cria objetos aplicáveis é
altamente promissora e mais ainda baseada no tipo de
implementação (seletiva / botões de ação) desenvolvida nesse
ZAMPIROLLI, F. A; SILVA, Márcio Alexandre de Souza. Ambiente de
Desenvolvimento de Softwares (ADS). In: II Encontro de Pesquisa e
Extensão, São Paulo, 2005
[2] MDA W3C http://www.w3.org/ Acesso em setembro de 2008.
[3] Marques, Guilherme;
Zampirolli,
Francisco.
Ambiente de
Desenvolvimento de Software para Robótica e uma aplicação didática da
utilização em ensino infantil. Submetido ao SIICUSP 2009.
[4] XML (2004) Extensible Markup Language (XML) 1.0 (Third Edition),
http://www.w3.org/TR/2004/REC-xml-20040204 - 3C Acesso em Julho
de 2009.
[5] OMG (2002) XML Metadata Interchange (XMI) Specification v2.0.
Object Management Group, inc. Acesso em julho de 2008.
[6] X Stream XML-JAVA code http:/xstream.codehaus.org Acessado em
abril de 2009
[7] PRESSMAN, Roger, Engenharia de Software, 6.ed. - Rio de Janeiro:
McGraw-Hill, 2009.
[8] argoUML, Zargo - http://argouml-stats.tigris.org/documentation/manual0.28/ Acessado em abril de 2009
[9] Guia de consulta rápida – UML – Douglas Marcos da Silva. Editora
Novatec.
[10] Lejos http://lejos.sourceforge.net/ Acessado em janeiro de 2009
[11] LEGO MINDSTORMS NXT - http://mindstorms.lego.com/ Acessado
em janeiro de 2009.
Download

Ambiente de Desenvolvimento de Software para Robótica aplicado