• Nenhum resultado encontrado

Diversos trabalhos abordaram o uso do MDD. Alguns deles são comentados a seguir. Uma possível aplicação é a utilização de Web Services aliada às técnicas de desenvolvimento orientado por modelos. O objetivo deste tipo de aplicação é a utilização da UML, especifican- do os serviços de forma independente de tecnologia baseando-se em requisitos de negócios rastreáveis, para a modelagem do Web Services – transformando os modelos UML em arqui- vos WSDL e, a partir desses arquivos, gerar código Java. Nesse sentido, apenas as ferramen- tas Sparx Enterprise Architect e AndroMDA suportam a geração WSDL e XSD (QAFMOL- LA; CUONG, 2010). Qafmolla e Cuong (2010), apresentam uma abordagem para automatizar o desenvolvimento para Web Services utilizando o MDA. Para isso, diversas ferramentas fo- ram mostradas em cada fase do processo. Apresentam ainda a visão de um maior nível de abstração, introduzindo a transformação de um metamodelo utilizando a linguagem orientada a objetos Kermeta. Afirmando que ao aumentar o nível de abstração se pode diminuir ou evi- tar problemas no contexto de mudanças do sistema. E sugerindo que as técnicas de automati- zação de transformações de modelos e gerações de código podem ser adequadas para situa- ções similares a esta.

Baseado na UML, o MDA pode criar modelos altamente abstratos passíveis de trata- mento por computador. Estes modelos são independentes de tecnologia, plataforma e são ar- mazenados em uma forma padrão. Assim, outra abordagem baseada nos componentes da ori- entação a objetos é a Programação Orientada a Aspectos (POA). No âmbito do MDA, a mo- delagem orientada a aspectos precisa estender o metamodelo UML e estabelecer um metamo- delo orientado a aspecto, a fim de definir os aspectos PIM e PSM. Se os aspectos puderem ser identificados na fase inicial do ciclo de vida de desenvolvimento, os componentes do projeto poderão ser mais reutilizáveis e a geração automática de código torna-se possível para siste-

mas que utilizam a programação orientada a aspectos (ZHANG et al., 2009). Para o autor, a POA pode separar os requisitos funcionais dos não-funcionais, e aliada ao MDA pode resol- ver separadamente os problemas de aspectos funcionais e não-funcionais na construção de um software. Observa ainda que apesar do grande número de métodos encontrados para a trans- formação de modelos, não existe um padrão uniforme para mapear PIMs em PSMs no contex- to da orientação a aspectos, e não existem ferramentas de MDA para apoio à Modelagem Ori- entada a Aspectos.

Novas tecnologias e plataformas estão surgindo no desenvolvimento de software de maneira contínua, resultando em um grau de esforço maior para fazer uso dos novos recursos que o mercado oferece, bem como satisfazer as restrições que ele impõe. Outra iniciativa de pesquisa, objetivando suprir essa necessidade, diz respeito às metodologias orientadas por modelos no desenvolvimento de software. Dentre elas tem-se, por exemplo, o MODA-TEL, proposto como um processo de desenvolvimento de software baseado em princípios e concei- tos do MDA. Apesar do MODA-TEL ser voltado para aplicações distribuídas, ele é suficien- temente genérico para ser aplicável a outros domínios e situações (CHITFOROUSH; YAZDANDOOST; RAMSIN, 2007).

MIDAS é uma estrutura metodológica orientada para o desenvolvimento ágil de Sis- temas de Informação Web, onde a UML é usada para representar os diferentes PIMs e PSMs propostos neste framework, definindo também regras de mapeamento para transformação de modelos (CHITFOROUSH; YAZDANDOOST; RAMSIN, 2007). Para os autores, muito se investiu no MDA, porém metodologias de suporte para o desenvolvimento por modelos não se obteve a mesma atenção. Eles afirmam que há poucas metodologias de desenvolvimento de software baseadas no MDA e propõem um quadro de metodologias baseadas no MDA a se- rem utilizadas no desenvolvimento de software, permitindo que as organizações continuem utilizando suas metodologias atuais, melhorando-as com as capacidades do MDA, quando necessário.

Combinar as práticas de desenvolvimento por modelos com as técnicas ágeis pode re- duzir significativamente o tempo de ciclo de desenvolvimento de software e aumentar a pro- dutividade e qualidade. Nesse contexto, Zhang e Patel (2011), aliaram SLAP, um processo ágil que utiliza Scrum e divide um ciclo de vida de desenvolvimento em múltiplas iterações, ao MDD, gerando um MDD ágil. Desta forma, uma iteração em MDD ágil é composta por três Sprints. Um Sprint para especificação de requisitos e arquitetura, um para desenvolvi- mento, que inclui análise de requisitos, design de alto nível, design detalhado, geração de có- digo, testes unitários UML e testes de integração, e um Sprint que inclui testes de subsistema

e testes do sistema. Esta técnica foi aplicada no desenvolvimento de um sistema de telecomu- nicações para geração automática de código utilizando a UML para modelagem. Para os auto- res, do ponto de vista do MDD, a chave é maximizar a automação utilizando as ferramentas para o MDD permitindo o desenvolvimento livre de erro (de alta qualidade) e aumento signi- ficativo de produtividade, já do ponto de vista ágil, a chave é alcançar iterações de forma efi- ciente desde a engenharia até o teste do sistema.

Um fator importante no desenvolvimento de software diz respeito às métricas. A mé- trica, no contexto do MDA, oferece uma abordagem prática para avaliar as propriedades de modelos específicos de domínio. No entanto, muitas vezes é dispendioso desenvolver e man- ter um software de medição para cada linguagem de modelagem específica de domínio. Para isso, Monperrus et al. (2010) apresenta uma abordagem por modelos (model-driven) em con- junto com uma ferramenta geradora de modelos para medição. A abordagem é completamente independente de domínio e operacionalizada via um protótipo que sintetiza uma infraestrutura de medição para uma linguagem de modelagem específica de domínio. A definição de métri- cas por modelos consiste na construção de métricas de especificações que permite instanciar o metamodelo de especificação métrica. Estas especificações referem-se aos elementos de um metamodelo de domínio e define métricas em uma forma puramente declarativa. O autor afirma que a abordagem por modelos em conjunto com a medição permite adicionar automa- ticamente capacidades de medição para uma linguagem de modelagem específica de domínio. A abordagem foi validada por meio da especificação de mais de 100 métricas em domínios diferentes, tais como código-fonte, arquitetura de software, engenharia de sistemas e requisi- tos.