6. Estudo de caso ilustrativo: álbum de fotos on-
6.4. Análise da construção do GuiProfile, do processo de modelagem proposto e de sua utilização no estudo de caso
6.5.1. ASPS – Automated Software Project System
O ASPS consiste em um componente que provê serviços de gerenciamento automático de projetos de software, dentro do contexto de fábricas de software, prevendo alocação e esca- lonamento automático de tarefas baseando-se em uma arquitetura dirigida a modelos (MDA) e regras de resolução de restrições.
O componente é formado por dois subcomponentes principais, o ASPSController, res- ponsável por prover os serviços de alocação e escalonamento, e o ASPSGUI, a interface gráfi- ca que disponibilizará estes serviços ao usuário.
Nosso GuiProfile e processo de modelagem de GuiKomponents foram utilizados na modelagem do componente ASPSGUI.
De acordo com Fabrício, os estereótipos de modelagem visual do GuiProfile foram su- ficientes para a modelagem do ASPSGUI, sem a necessidade de adaptação ou criação de no- vos elementos, permitindo também um nível de detalhamento compatível com a geração au- tomática de código. Da mesma forma, os estereótipos de modelagem de comportamento su- priram as necessidades de sua modelagem. Dado o estágio de sua pesquisa, comportamento de seu componente ainda não estava completamente definido e, por isso, ele não o modelou de forma completa. Para a parte do comportamento que pôde ser modelada, os estereótipos do
GuiProfile foram suficientes.
No tocante ao aprendizado do GuiProfile, Fabrício comentou que não teve dificulda- des em assimilar seus conceitos e elementos, visto que ele se baseia em bibliotecas de GUI já consolidadas. Já o aprendizado do processo de modelagem de GUI mostrou-se de mais difícil assimilação, visto que requeria conhecimento prévio do processo KobrA e do SPEM.
Uma vez assimilado, Fabrício concordou que o processo de modelagem cobriu todas as etapas necessárias para a modelagem de seu ASPSGUI, se encaixando de forma natural ao processo de desenvolvimento KobrA.
6.6. Considerações finais
Como vimos, a seleção da modelagem da GUI de um álbum de fotos online se deu pe- la sua relevância – é bastante utilizada e contém elementos representativos do domínio das interfaces gráficas – e abrangência – permitiu ilustrar boa parte dos conceitos do profile e do processo propostos.
Conseguimos, com o uso do profile, atingir o nível de detalhamento e precisão deseja- dos. Com a disponibilidade da tecnologia de geração de código, seu uso aparenta possibilitar a geração automática de boa parte do código executável da GUI, poupar bastante trabalho na tarefa de codificação manual.
Considerações finais
6.7. Resumo
Apesar do grande impacto que o desenvolvimento de interfaces gráficas causa no de- senvolvimento de software como um todo (MYERS, 2007) – ainda mais atualmente, com a grande variedade de plataformas e dispositivos computacionais disponíveis – bem como sua importância junto ao usuário (VEER, VLIET, 2001), a engenharia de interfaces gráficas ainda encontra-se num estado muito pouco desenvolvido em relação à engenharia de software.
Para tentar fazer avançar um pouco mais esta área, nos propusemos criar uma lingua- gem para a modelagem de interfaces gráficas, bem como um processo para tal tarefa, que ofe- recesse suporte à novas abordagens do desenvolvimento de software, como componentização e MDA, buscando assim prover recursos para lidar com a crescente complexidade no desen- volvimento de software e, por conseqüência, nas interfaces gráficas.
Fizemos então uma revisão nos trabalhos da área de modelagem de interfaces gráficas, escolhendo dois deles – (KOCH, 2000) e (BLANKENHORN, 2004) – como base para a cria- ção da nossa linguagem de modelagem. Estudando seus pontos fortes e fracos, decidimos o que reutilizar e o que alterar, provendo, por exemplo, elementos para a modelagem de interfa- ces dinâmicas, comunicação usuário-GUI e comportamento da GUI, que não eram bem con- templados nestes trabalhos. Decidimos, da mesma forma, diminuir o nível de abstração dos elementos modelados, de forma a tornar os modelos criados com o profile mais precisos e detalhados e, assim, mais aptos a servir de base para transformação de modelos e geração de código de forma automática.
Estudamos também as metodologias de desenvolvimento baseadas em componentes e dirigidas a modelos, chegando à metodologia KobrA (ATKINSON et al., 2001), cujo proces- so e arquitetura decidimos adaptar ao domínio das interfaces gráficas.
Em seguida, definimos as metodologias que usaríamos para a criação da linguagem e a adaptação do processo, utilizando o mecanismo de extensão do UML denominado UML Pro-
files (OMG, 2007) para a primeira tarefa e o meta-modelo de modelagem de processos SPEM
(OMG, 2005) para a segunda.
Como resultado de nosso projeto, chegamos a um profile UML para a modelagem de interfaces gráficas baseadas em forms, o GuiProfile, com as características que desejávamos, bem como a um processo de modelagem de GUIs acoplado ao processo KobrA de desenvol- vimento.
A partir daí, estruturamos um estudo de caso ilustrativo para exemplificar seu uso. Pa- ra isso, escolhemos um domínio – álbuns de fotos online – ao mesmo tempo relevante e a- brangente, e chegamos a uma modelagem que conseguia abarcar a variedade de elementos da interface gráfica do domínio, bem como mostrava-se precisa e formal o suficiente para possi- bilitar seu processamento automático para futuras transformações de modelo e geração de código.
Por fim, colhemos as impressões de Fabrício Teles, mestrando do Centro de Informá- tica da UFPE, a respeito de sua experiência na modelagem da interface gráfica de seu projeto de mestrado utilizando o profile e o processo propostos por nós.
6.8. Contribuições
Este trabalho apresentou contribuições originais para as seguintes áreas: ! Engenharia de interfaces gráficas:
- o GuiProfile contribuiu para a rápida produção de modelos para a validação da GUI por parte do usuário em estágios iniciais do desenvolvimento, atra- vés de seus modelos de layout da GUI;
- contribuiu, da mesma forma, como meio de representação formal, persis- tente e independente de plataforma de padrões de layout e navegação de in- terfaces gráficas de comprovada usabilidade.
! UML:
- o GuiProfile contribuiu com a ampliação da área de atuação da linguagem de modelagem UML, provendo elementos para a modelagem do domínio de interfaces gráficas.
! MDA:
- o GuiProfile mostrou também contribuições para a transformação automá- tica de modelos e geração de código, permitindo, através de seus construto- res, a criação de modelos com grande nível de detalhes e precisão, favorá- veis ao uso em conjunto com estas tecnologias.
! KobrA:
- o processo de modelagem de interfaces gráficas contribuiu para a amplia- ção da metodologia de desenvolvimento KobrA, munindo-a com um mode- lo de interfaces gráficas componentizado – o GuiKomponent – integrado ao seu modelo de Komponents e à sua arquitetura de desenvolvimento;
- da mesma forma, ampliou seu processo de desenvolvimento de software, acoplando a ele o processo para a modelagem de interfaces gráficas.