Você está na página 1de 10

Transformaes de Modelos para um Processo MDA

Fabricio G. Pellegrini1, Filipe A. da Silva1, Bruno C. da Silva1,2, Rita Suzana P. Maciel2 Faculdade Ruy Barbosa 41.940-320 Salvador BA Brasil
2 1

Departamento de Cincia da Computao - Universsidade Federal da Bahia (UFBA) Salvador BA Brasil


{fabricio.pellegrini, araujofilip}@gmail.com, {brunocs, ritasuzana}@dcc.ufba.br

Abstract. The Model-Driven Engineering (MDE) is an approach where models are the basis for the implementation and software evolution. Several transformation engines support automation of the transformations of these models. In order to provide more flexibility to maintain software processes using the MDE approach, languages for implementation of transformation rules have been proposed. This paper presents the implementation of an automation strategy based on languages and transformation engines to support a software process in the context of MDE. Resumo. A Engenharia Dirigida por Modelos (MDE Model Driven Engineering) uma abordagem onde modelos so a base para a implementao e evoluo dos softwares. Diversos engenhos apoiam a automao das transformaes destes modelos. Com o objetivo de oferecer mais flexibilidade manuteno dos processos de software que usam a abordagem MDE, linguagens para programar regras de transformao foram propostas. Este artigo apresenta a implementao de uma estratgia de automao baseado em linguagens e engenhos de transformao para apoiar um processo de software no contexto da MDE.

1. Introduo
A Engenharia Dirigida por Modelos (Model Driven Engineering, MDE) uma abordagem especialmente focada em tcnicas de modelagem. Na MDE defende-se que modelos de um sistema de software no sejam apenas usados para documentao, mas eles na verdade servem como base para a etapa de implementao. Uma das iniciativas mais conhecidas nesse cenrio a Arquitetura Dirigida por Modelos (Model-Driven Architecture MDA) (OMG, 2003). A MDA um framework conceitual para desenvolvimento MDE de software. Ela especifica um sistema a partir de modelos que independem de plataforma (PIM Plataform Independent Model), que atravs de transformaes, geram modelos para plataformas especficas (PSM Plataform Specific Model) e, a partir destes, gera-se cdigo-fonte. Com isso, a lgica de negcio de um sistema separada de seus detalhes

de implementao, provendo uma abstrao de alto nvel para representao de sistemas computacionais (OMG, 2003). O uso da MDA requer a definio de um processo de software que guie os desenvolvedores na elaborao e gerao dos modelos de software (Maciel, 2006). Esse tipo de processo de software, que a partir de ento nos referimos como Processo MDA, necessita de fases de modelagem, metamodelos, perfis UML e regras de transformao, alm dos elementos tradicionais de processo de software como iteraes, tarefas, artefatos, papis, entre outras. A fim de utilizar a abordagem MDA, diversos processos de software tm sido propostos nesses ltimos anos (Koch, 2006; Maciel, 2006; OpenUP, 2008). Em Silva (2006) apresentada a Transforms, uma ferramenta de transformao entre modelos UML (Unified Modeling Language) que busca automatizar o processo de software dirigido por modelos, proposto por Maciel (2006) (Seo 3.1). Entretanto, algumas limitaes foram identificadas no que diz respeito estratgia de apoio oferecida pela ferramenta. Nesta verso da Transforms (Silva, 2006), as transformaes foram implementadas diretamente na codificao da ferramenta, isto , elas so rigidamente oferecidas de maneira que no possvel modific-las, a no ser que se reprograme parte da ferramenta e seja distribuda uma nova verso. Essa estratgia rgida, usada pela primeira gerao de ferramentas de apoio a MDE, oferece pouca flexibilizao e dificulta a adio de novas regras ou alterao das existentes face s necessidades de evoluo do processo MDA. Nesse contexto, existem linguagens prprias para escrita de transformaes de modelos (ATLAS, 2006; Oldevik, 2009) que so interpretadas e executadas atravs de engenhos de transformao. Desta maneira, as regras no ficam embutidas no cdigo da ferramenta, mas sim disponveis desacopladamente. Logo, possvel dar manuteno em regras de transformao e reutiliz-las de uma maneira mais flexvel, sem a necessidade de reprogramar e redistribuir ferramentas de transformao de modelos. Sendo assim, o objetivo principal deste trabalho apresentar a estratgia de transformao de modelos, baseada em regras e engenhos de transformao, que foi empregada no apoio automao de transformaes do processo MDA proposto em Maciel (2006). O restante do artigo est organizado da seguinte forma: na Seo 2, realiza-se uma breve apresentao de algumas dessas ferramentas de transformaes e como elas do suporte s transformaes de modelo e automao de processos de software MDA; na Seo 3, apresenta-se uma viso geral do processo MDA proposto em Maciel (2006) e detalha-se a estratgia de apoio conforme regras de transformao que so parcialmente apresentadas; seguidamente, na Seo 4, avalia-se o uso das transformaes implementadas neste trabalho e conclui-se o artigo com as consideraes finais.

2. Formas de Apoio a Automao em Processo de Software MDA


Esta seo apresenta uma viso geral sobre estratgias de apoio ferramental no contexto da MDA. Durante as pesquisas foram identificadas duas formas de apoio automatizado em processos MDA: na Seo 2.1, discute-se a estratgia baseada em ferramenta com

transformaes pr-definidas; enquanto que na Seo 2.2, discute-se a estratgia baseada em linguagens e engenhos de transformao. 2.1 Ferramentas Com Transformaes Pr-Definidas Esta forma de apoio se caracteriza por prover algumas regras j implementadas alm de disponibilizar, de alguma maneira, um mecanismo para modificao ou criao de regras. Muitas dessas ferramentas incorporam tambm um conjunto de funcionalidades extras, a fim de melhor auxiliar a execuo de um processo de software MDA como editores de diagramas, criao de projetos etc. Algumas ferramentas de automao de processo de software MDA ganharam espao no mercado h algum tempo (por exemplo, AndroMDA (AndroMDA, 2010), ArcStyler (ArcStyler, 2010), e Acceleo (Acceleo, 2010)), por prometerem a gerao de boa parte do sistema a partir da modelagem do mesmo usando a UML. A ferramenta AndroMDA apoia o processo de software MDA fazendo transformaes de PIM para cdigo. Toda etapa de especificao da tecnologia feita atravs de passagens de parmetros durante a gerao do projeto que definem os cartuchos a serem utilizados na gerao do cdigo. Esses cartuchos so compostos por duas camadas, a Metafacade e os Templates Velocity. O Metafacade atua como uma camada de acesso a dados do modelo para os arquivos de templates do cartucho. A complexidade na estrutura dos cartuchos de transformao dificulta a customizao ou criao dos mesmos. Entretanto isso no impediu que a AndroMDA fosse utilizada em algumas organizaes, pois ela disponibiliza um conjunto de cartuchos que abrange as principais tecnologias do mercado (Hibernate, Spring, EJB, Struts etc), alm de ser uma ferramenta livre dispensando o custo com a compra de licenas. O ArcStyler possui alguns pontos em comum com o AndroMDA, como a utilizao de marcas para aproximar o PIM do PSM e a disponibilizao de um conjunto de regras de transformaes das principais tecnologias. No entanto, ela tambm oferece alguns recursos adicionais para o usurio, como um editor para gerao de modelos e edio do cdigo gerado, um maior controle sobre as transformaes a serem aplicadas, alm de possuir tambm seu prprio ambiente de desenvolvimento de transformaes. importante ressaltar que no uma ferramenta livre. O fabricante relata alguns casos de sucesso no seu stio1 relacionados ao uso da mesma. Em contrapartida, essas duas ferramentas, principalmente a AndroMDA, apresentam uma limitao em comum. Elas concentram toda a gerao de cdigo em uma nica etapa do processo de desenvolvimento (transformaes de PIM para cdigo), o que pode no se adaptar bem a processos onde se necessita de modelos em diversos nveis de abstrao ou quando os modelos precisam estar em frequente evoluo. Entretanto, a ferramenta Acceleo, que disponibilizada como um plugin para o Eclipse, ameniza essa limitao. A Acceleo facilita um processo de transformao incremental, o que pode ser uma vantagem significativa na presena de processos MDA evolucionrios. Outra caracterstica de destaque da Acceleo a facilidade de customizao e criao de transformaes, podendo ser at comparada com as

http://www.interactive-objects.com/en/model-driven-engineering.html

estratgias de apoio baseadas em Linguagens e Engenhos de Transformao que discutido na sesso seguinte. O processo do Acceleo segue a seguinte linha de desenvolvimento: Prototipao do template; Validao atravs dos critrios de qualidade adotados; Converso em um gerador - mdulo que encapsula os templates de transformao. 2.2 Linguagens e Engenhos de Transformao Outra abordagem que vem ganhando destaque na MDA, a baseada em linguagens e engenhos de transformao, onde o processo de criao e customizao de uma regra de transformao se torna to natural quanto escrever um cdigo. Isso porque essas liguagens esto atreladas a um engenho de transformao que se encarrega de interpretar as regras e executar as transformaes. Nesse estudo foram analisadas duas linguagens de transformao, ATL (ATLAS Transformation Language) (ATL, 2010) e MOFScript (Oldevik, 2009), devido quantidade de referncia em artigos e ao suporte em termos de documentao. ATL uma linguagem declarativa (permitindo, em alguns casos, trechos imperativos) que possui um engenho de transformao de modelos para promover a criao de modelos alvos a partir de modelos fontes. Desenvolvida para a plataforma Eclipse, ATL prov uma srie de recursos padres para desenvolvimento (syntax highlighting, debugger, etc.). Atualmente, faz parte do projeto M2M 2 da ferramenta Eclipse e est em constante atualizao. Possui tambm um grupo de discusso ativo na comunidade Eclipse. Por se tratar de uma ferramenta de fcil uso, a partir da premissa de conhecimento da linguagem e do metamodelo (no contexto do trabalho, o metamodelo UML), traz como vantagem ao processo: baixo custo, por ser uma ferramenta livre; e alta flexibilidade, por facilitar grandes alteraes na transformao diretamente atravs da interface do editor de regras ATL. Neste trabalho, a maior dificuldade encontrada foi a de aprendizagem da estrutura da linguagem e principalmente da estrutura detalhada do metamodelo da UML. MOFScript uma linguagem voltada para transformaes de modelo para cdigo. Atualmente, ela uma linguagem candidata no processo de padronizao do OMG (Object Management Group) em que busca a criao de uma linguagem padro para transformaes de modelos em texto. MOFScript permite uma independncia de metamodelo, podendo tanto utilizar um modelo definido pelo metamodelo da UML quanto um modelo baseado num metamodelo prprio do usurio, por exemplo. Nessa abordagem de gerao de cdigo, notou-se justamente o contrrio das ferramentas citadas anteriormente (AndroMDA e ArcStyler), que possuem pouca ou nenhuma flexibilidade na gerao de artefatos textuais (cdigo e documentos). As regras de transformaes escritas em MOFScript podem utilizar modelos de qualquer etapa do processo MDA (CIM, PIM ou PSM) para gerao de artefatos textuais, pois ela no oferece restries sobre que tipo de modelo servir de entrada para transformao. Posteriormente, na Seo 3 so apresentadas regras de transformao utilizando essas duas linguagens (ATL e MOFScript).

http://www.eclipse.org/m2m/

3. Apoiando um Processo MDA atravs de Transformaes


Nesta seo apresenta-se o processo MDA para servios de middleware para domnio especfico proposto em Maciel (2006). Primeiramente, uma viso geral de todo o processo descrita na Seo 3.1, enquanto na Seo 3.2 explica-se a estratgia de apoio ferramental e parte das regras de transformao implementadas no contexto deste trabalho. 3.1 Viso Geral do Processo MDA O principal objetivo do processo MDA proposto em Maciel (2006) a identificao e decomposio de processos de negcio (Business process - BP) em atividades. Atividades consistem em tarefas relacionadas que compe um conjunto de processos de negcio do domnio. Alm disso, a decomposio permite a identificao de servios, suas interfaces, e componentes a fornec-los e us-los. O processo MDA proposto inclui os seguintes elementos: trs fases de modelagem relacionando-as com CIM-PIM-PSM da especificao MDA; indicao de um conjunto de diagramas a ser modelado para cada fase de modelagem; uma sequncia de tarefas para orientar a modelagem global e regras de mapeamento a serem aplicadas entre os diagramas para evoluo dos modelos e gerao de cdigo.

Figure 1. Viso Geral do Processo [Maciel, 2006]

A Figura 1 mostra as trs principais categorias de modelos (de acordo com o CIM, PIM e PSM da especificao da MDA) que dever ser elaborado: Domnio, Projeto e Operacional. Cada categoria de modelo deve ser composta por um conjunto de diagramas que especifica as vises da Empresa, Informao, Computacional, Engenharia e Tecnologia. Modelo de Domnio. O modelo de domnio corresponde ao contexto em que o servio deve ser aplicado. O escopo da aplicao, o vocabulrio, a informao e as responsabilidades so definidas neste modelo atravs dos requisitos funcionais inicialmente estabelecidos. Assim, os requisitos de domnio devem ser identificados

com este modelo. Esta categoria inclui a viso da Empresa e da Informao. Os modelos de domnio formam o CIM, conforme descrito na MDA. Modelo de Projeto. O modelo de projeto descreve a viso Computacional do Modelo de Domnio. Os servios a serem oferecidos e suas operaes so definidos neste modelo. Ele identifica a interface de servios e componentes estabelecidos no modelo de domnio independente para uma plataforma de middleware em particular. Os modelos de projeto formam o PIM, conforme descrito no MDA. Modelo Operacional. O Modelo Operacional descreve o ambiente de execuo de aplicativos em uma plataforma especfica e corresponde especificao da viso da Engenharia e Tecnologia. As caractersticas de uma plataforma de middleware em particular (eg, CORBA, RMI, JMS) so consideradas neste modelo de modo a refletir o ambiente de execuo real. O Modelo Operacional forma o PSM, conforme descrito no MDA. Especificamente, o processo MDA apresentado permite a definio de servios de middleware para as plataformas CCM (CORBA Component Model) e EJB (Enterprise Java Beans). No processo MDA proposto, mdulos ATL so responsveis pelas transformaes CIM para PIM e PIM para PSM referente s setas (1) e (3) da figura 1, respectivamente; referem-se a transformaes automatizadas que so exploradas na prxima seo. A seta (2) da figura 1, diz respeito a um mapeamento manual de insero de dados necessrio para a execuo da transformao da seta (3). 3.2 Estratgia de Transformao Baseada em Regra ATL e Mofscript Transformaes de modelos so essenciais em um processo MDA. A busca pela automao fundamental para a aplicabilidade de processos. Nesta seo, descreve-se as transformaes modelo-a-modelo em ATL, e modelo-a-cdigo em Mofscript, definidas para o processo MDA descrito na Seo 3.1. A primeira transformao (seta 1 da Figura 1) tem como modelo de origem diagramas da viso da Empresa (no nvel CIM) e gera diagramas da viso Computacional (nvel PIM). A Figura 2 uma demonstrao parcial do cdigo escrito em ATL, responsvel pela primeira transformao. Esse mdulo ATL possui como entrada trs modelos UML: modelo de origem, perfil CIM e perfil PIM; e como sada um modelo UML gerado conforme linha 3 da Figura 2. A regra ActivityToOperationPort (linha 6 a 18 da Figura 2) transforma cada classe com esteretipo Activity em uma com esteretipo OperationPort, ou seja, atividades do modelo de domnio sero transformadas em operaes de um servio. Entrando em detalhes, a regra testa se a classe possui o esteretipo Activity aplicado e se possui associao com InputGroup e/ou OutputGroup que reprepresentam a informao de entrada e sada, respectivamente, das atividades. Caso possua essas condies, ento uma nova classe ser criada no modelo destino com o mesmo nome e aplicado o esteretipo OperationPort. Outros recursos da linguagem ATL podem ser utlizados para transformaes mais complexas, tais como blocos imperativos para facilmente manipular os elementos dos modelos em alguns casos; e helpers que funcionam como funes utilitrias facilitando a implementao das regras.

Figura 2 Trecho de cdigo em ATL do mdulo CIMtoPIM

A segunda transformao apresentada nesta seo (seta 3 da Figura 1) de PIM para PSM (disponvel para duas plataformas Componentes CORBA e EJB). Estas duas transformaes foram construdas tambm atravs da linguagem ATL. A Figura 3 demonstra um trecho da regra ATL que possui como entrada o modelo PIM e perfil PSM adequado (neste caso seria para a plataforma de componentes CORBA). A regra criarAssociation (linhas 8 a 24 da Figura 3) recebe como parmetro de entrada dois elementos do tipo Class e cria uma associao entre eles, alm de algumas propriedades necessrias. Diferente da regra da Figura 2, essa uma regra do tipo lazy, que executada apenas se for chamada no escopo de outras regras e possui como retorno o primeiro elemento criado, neste caso o elemento Association. Alm das transformaes ATL, h tambm a transformao de modelo para texto, a qual gera o cdigo do PSM da plataforma selecionada (componentes CORBA ou EJB). Neste caso, utilizou-se a linguagem e o engenho de transformao MOFScript (Seo 2.2). A Figura 4 representa parte das regras modelo-a-texto. O trecho exibido responsvel por realizar a transformao PSM da plataforma CCM (CORBA Component Model) para cdigo IDL (Interface Definition Language) utilizado para definir componentes CORBA. Uma transformao escrita em MOFScript deve possuir um nico ponto de entrada representado pela funo main (Figura 4, linha 2). Esse ponto de entrada pode ser atribudo a qualquer elemento do metamodelo (na linha 1 verifica-se o metamodelo UML sendo referenciado). Assim, ela ser chamada para todas as instncias desse elemento existente no modelo de entrada. O mesmo conjunto de regras foram implementados tambm em MOFScript, porm para a gerao de cdigo de componentes EJB.

Figura 3 Trecho de cdigo ATL do mdulo PIMtoPSMCORBA

De maneira geral, a linguagem oferece recursos como, sobrecarga de mtodos, especializao de transformaes utilizando herana, regras abstratas e chamada a mtodos externos Java.

Figura 4 Trecho de regra Mofscript

4. Avaliao e Concluso
Este artigo apresenta uma proposta para automao de transformaes de modelosde um processos MDA que integra engenhos de transformao e as linguagens ATL e Mofscript. Essa estratgia de automao foi aplicada ao processo MDA proposto em Maciel (2006). A MDA foi proposta pela OMG em 2003 e tem sido progressivamente adotada como uma das estratgias possveis para o desenvolvimento de software em organizaes. A OMG mantm um stio3 onde vrios relatos de uso so disponibilizados e continuamente atualizados. Verificou-se uma facilidade de criao e manuteno das regras de transformao para acompanhar a evoluo do processo MDA usando a estratgia de implementar transformaes atravs de ATL e MOFScript. Isto se justifica, pois o desenvolvedor no precisa se familiarizar com um ambiente novo de desenvolvimento, mas sim apenas estudar as estruturas da linguagem e metamodelo utilizados. Alm disso a cada necessidade de se modificar a cadeia de transformao do processo torna-se mais fcil, mais flexvel e reutilizvel dar manuteno nas regras em ATL e Mofscript, pois os respectivos engenhos se encarregam da transformao. Tal tarefa seria mais rgida e custosa em ferramentas com AndroMDA ou ArcStyler, por exemplo. A escolha dessas duas linguagens se deu pelo fato: delas serem plugins do Eclipse; e por permitirem tambm integrar tais plugins em uma ferramenta de edio e execuo de processo de software MDA (Silva, 2009) que encontra-se em desenvolvimento no grupo de pesquisa. A vantagem de se utilizar essas ferramentas/linguagens (Eclipse, Mofscript e ATL) em processos de desenvolvimento MDA quando h necessidade de evoluir as regras de transformao, seja para incluir novas ou corrigir as existentes, havendo assim uma maior flexibilidade no processo de modificao da cadeia de transformaes do processo. Entretanto, vale ressaltar tambm, que nestes casos necessrio o conhecimento aprofundado da estrutura do metamodelo da UML.

Referncias
Acceleo. (2010) MDA Generator. Disponvel em: http://www.acceleo.org/. Acesso em: 26 jan. 2010. AndroMDA. (2010) Model Driven Architecture Framework. Disponvel em: http://www.andromda.org. Acesso em: 26 jan. 2010. ArcStyler. (2010) Model-centric software development (MDA/MDD). Disponvel em: http://www.interactive-objects.com/en/model-driven-engineering.html. Acesso em: 26 jan. 2010. ATL Project. (2006) ATL: Atlas Transformation Language ATL User Manual version 0.7. Disponvel em: http://www.eclipse.org/m2m/atl/. Koch, N. (2006) Transformation techniques in the model-driven development process of UWE, In: Workshop Proc. of the 6th intl Conference on Web Engineering (Palo Alto, California). ICWE '06, vol. 155. ACM, New York, 3.
3

http://www.omg.org/mda/products_success.htm

Maciel, R., Silva, B., Mascarenhas, L. (2006) An Edoc-based Approach for Specific Middleware Services Development, 4th Workshop on MBD of Computer Based Systems, Postdam, Germany. Proc. IEEE Press, p:135143. Mellor, S. et al. (2004) MDA Distilled. EUA, Addisson-Wesley. Oldevik, J. (2009) MOFScript User Guide Version 0.8. Disponvel em: http://www.eclipse.org/gmt/mofscript/doc/. Acesso em: 26 jan. 2010. OMG, Object Management Group. (2003) MDA Guide Version 1.0.1, OMG Document: omg/20030601. OpenUP Component MDD, (2008) Disponvel em: http://www.eclipse.org/epf/openup_component/mdd.php. Silva, B. et al. (2009) Transforms: Um Ambiente de Apoio a Modelagem e Execuo de Processos de Software Dirigido por Modelos. In: Simpsio Brasileiro de Engenharia de Software Sesso de Ferramentas. Fortaleza. Silva, B.; Maciel, R., Mascarenhas, L. (2006) Transforms: Uma Ferramenta MDA/EDOC para Desenvolvimento de Servios Especficos de Middleware. In: Brazilian Symp. on Software Engineering Tools Session. Florianpolis. p. 19-24.

Você também pode gostar