Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

7
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas João Marco C. Silva, Thiago L. Feitoza, Marcel L. Oliveira, Paulo E. Osses, Thiago F. Freire, Rogério P. C. Nascimento Universidade Federal de Sergipe Sergipe, Brasil [email protected], {tfeitoza, marcel.ufs, paulo.darc}@gmail.com [email protected], [email protected] ABSTRACT Model-Driven Architecture (MDA) is a development metho- dology where the modeling is the central focus. This mode- ling should be done in a way that is independent of a spe- cific platform. Thus, the model generated can be used to develop the system across multiple platforms, which helps in future maintenance, upgrades and migration of the sys- tem. In order to manage the development, the use of a guide containing good management practices can be applied. The guide that can be used is the PMBOK, which can be used for various areas of knowledge, not only for projects of infor- mation technology. This work brings a concept of MDA and the PMBOK, along with a proposal for integration between them. Specifically, it will be addressed concepts and tecno- logies related to MDA, such as UML and CWM; the models defined by MDA; the MDA lifecycle; CASE tools that sup- port this methodology; a brief description of PMBOK; a suggestion of use of MDA alongside PMBOK; and, finally, the conclusions and future work. RESUMO Model-Driven Architecture, ou MDA, trata-se de uma me- todologia de desenvolvimento onde a modelagem ´ e o foco central. Essa modelagem deve ser feita de forma que seja independente de uma plataforma espec´ ıfica. Dessa forma, o modelo gerado pode ser utilizado para o desenvolvimento do sistema em diversas plataformas, o que ajuda em futuras manuten¸c˜oes,atualiza¸c˜oesemigra¸c˜oesdosistema.Deforma a gerenciar o desenvolvimento, a utiliza¸c˜ao de um guia con- tendo boas pr´aticas de gerenciamento pode ser aplicada. O guia citado trata-se do PMBOK, o qual pode ser utilizado para diversas ´area de conhecimento, e n˜ao s´o para proje- tos de tecnologia da informa¸c˜ao. Este trabalho traz uma Orientador conceitua¸c˜ao da MDA e do PMBOK, juntamente com uma proposta de integra¸c˜ao entre os mesmos. Especificamente, ser˜ao abordados conceitos e tecnologias relacionadas com a MDA, como UML e CWM; os modelos definidos pela MDA; o ciclo de vida MDA; ferramentas CASE que suportam essa metodologia; umadescri¸c˜ao geral doPMBOK; umasugest˜ao deuso da MDAcom o PMBOK; e, finalmente, as conclus˜oes e trabalhos futuros. PALAVRAS-CHAVE MDA, PMBOK, EAP 1. INTRODUÇÃO Atualmente, o r´apido desenvolvimento na ´area da computa- ¸c˜aoest´adiminuindobastanteotemponecess´ario paratornar uma determinada tecnologia obsoleta. Empresas que visam manter seus sistemas sempre atuais gastam um tempo e es- for¸coconsider´aveisnastarefasdeatualiza¸c˜aoemigra¸c˜ao[6]. Para solucionar esses problemas, surgem abordagens que vi- sam separar as funcionalidades de um sistema de sua imple- menta¸c˜ao. Uma dessas abordagens´ e a MDA (Model-Driven Architecture ). A MDA ´ e uma abordagem para o desenvolvimento de softwa- res proposta pela OMG (Object Management Group ) em 2001. De forma simplificada, a MDA visa, a partir do desen- volvimento de v´arios modelos, capturar a l´ogica do neg´ocio em uma forma independente de plataforma. A partir des- ses modelos, seriam utilizadas ferramentas que gerariam o c´odigo do produto para uma determinada plataforma. Por- tanto, numa eventualmudan¸ca de tecnologia, precisa-se ape- nas aplicar uma ferramenta que transforme os modelos ge- rados anteriormente em c´odigo para essa nova tecnologia. Abordagens anteriores em desenvolvimento dirigido por mo- delos falharam por um fenˆomeno denominado“vendor lock- in ”. Cada ferramenta anteriormente utilizava um formato pr´oprio, com um contrato de licen¸ca restritivo [4]. Para so- lucionar esse problema, a OMG definiu um conjunto de pa- dr˜oes abertos para o desenvolvimento de software. Alguns deles j´a existentes previamente, outros elaborados especial- mente para a abordagem MDA. Por exemplo, pode-se citar: UML (Unified Modeling Language ), MOF (Meta-Object Fa- cility ) e XMI (XML Metadata Interchange ).

description

Artigo sobre MDA e PMBOK, escrito por Marcel Lessa, Thiago Fraga, Paulo Osses, João Marco Silva e Thiago Feitoza

Transcript of Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

Page 1: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

Interação entre MDA e PMBOK para Suporte aoDesenvolvimento de Aplicações Complexas

João Marco C. Silva, Thiago L. Feitoza, Marcel L. Oliveira,Paulo E. Osses, Thiago F. Freire, Rogério P. C. Nascimento

Universidade Federal de SergipeSergipe, Brasil

[email protected], {tfeitoza, marcel.ufs, paulo.darc}@[email protected], [email protected]

ABSTRACTModel-Driven Architecture (MDA) is a development metho-dology where the modeling is the central focus. This mode-ling should be done in a way that is independent of a spe-cific platform. Thus, the model generated can be used todevelop the system across multiple platforms, which helpsin future maintenance, upgrades and migration of the sys-tem. In order to manage the development, the use of a guidecontaining good management practices can be applied. Theguide that can be used is the PMBOK, which can be usedfor various areas of knowledge, not only for projects of infor-mation technology. This work brings a concept of MDA andthe PMBOK, along with a proposal for integration betweenthem. Specifically, it will be addressed concepts and tecno-logies related to MDA, such as UML and CWM; the modelsdefined by MDA; the MDA lifecycle; CASE tools that sup-port this methodology; a brief description of PMBOK; asuggestion of use of MDA alongside PMBOK; and, finally,the conclusions and future work.

RESUMOModel-Driven Architecture, ou MDA, trata-se de uma me-todologia de desenvolvimento onde a modelagem e o fococentral. Essa modelagem deve ser feita de forma que sejaindependente de uma plataforma especıfica. Dessa forma,o modelo gerado pode ser utilizado para o desenvolvimentodo sistema em diversas plataformas, o que ajuda em futurasmanutencoes, atualizacoes e migracoes do sistema. De formaa gerenciar o desenvolvimento, a utilizacao de um guia con-tendo boas praticas de gerenciamento pode ser aplicada. Oguia citado trata-se do PMBOK, o qual pode ser utilizadopara diversas area de conhecimento, e nao so para proje-tos de tecnologia da informacao. Este trabalho traz uma

∗Orientador

conceituacao da MDA e do PMBOK, juntamente com umaproposta de integracao entre os mesmos. Especificamente,serao abordados conceitos e tecnologias relacionadas com aMDA, como UML e CWM; os modelos definidos pela MDA;o ciclo de vida MDA; ferramentas CASE que suportam essametodologia; uma descricao geral do PMBOK; uma sugestaode uso da MDA com o PMBOK; e, finalmente, as conclusoese trabalhos futuros.

PALAVRAS-CHAVEMDA, PMBOK, EAP

1. INTRODUÇÃOAtualmente, o rapido desenvolvimento na area da computa-cao esta diminuindo bastante o tempo necessario para tornaruma determinada tecnologia obsoleta. Empresas que visammanter seus sistemas sempre atuais gastam um tempo e es-forco consideraveis nas tarefas de atualizacao e migracao [6].Para solucionar esses problemas, surgem abordagens que vi-sam separar as funcionalidades de um sistema de sua imple-mentacao. Uma dessas abordagens e a MDA (Model-DrivenArchitecture).

A MDA e uma abordagem para o desenvolvimento de softwa-res proposta pela OMG (Object Management Group) em2001. De forma simplificada, a MDA visa, a partir do desen-volvimento de varios modelos, capturar a logica do negocioem uma forma independente de plataforma. A partir des-ses modelos, seriam utilizadas ferramentas que gerariam ocodigo do produto para uma determinada plataforma. Por-tanto, numa eventual mudanca de tecnologia, precisa-se ape-nas aplicar uma ferramenta que transforme os modelos ge-rados anteriormente em codigo para essa nova tecnologia.

Abordagens anteriores em desenvolvimento dirigido por mo-delos falharam por um fenomeno denominado “vendor lock-in”. Cada ferramenta anteriormente utilizava um formatoproprio, com um contrato de licenca restritivo [4]. Para so-lucionar esse problema, a OMG definiu um conjunto de pa-droes abertos para o desenvolvimento de software. Algunsdeles ja existentes previamente, outros elaborados especial-mente para a abordagem MDA. Por exemplo, pode-se citar:UML (Unified Modeling Language), MOF (Meta-Object Fa-cility) e XMI (XML Metadata Interchange).

Page 2: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

Alem da utilizacao de uma metodologia de desenvolvimentocomo a MDA, e importante que haja uma gerencia do pro-cesso de desenvolvimento. A fim de organizar a pratica degerencia, foi lancado o PMBOK (Project Management Bodyof Knowlegde). O PMBOK corresponde a um guia que reuneum serie de praticas para a realizacao da gestao de projetosem diversas areas de conhecimento. Uma boa gestao de pro-cessos pode resultar em bons resultados e reducao do tempoe esforco aplicado nas tarefas de migracao e atualizacao desistemas.

As proximas secoes desse artigo estarao assim organizadas:a secao 2 tratara sobre conceitos e tecnologias utilizadas emMDA; a secao 3 abordara brevemente o PMBOK; a inte-racao entre PMBOK e MDA sera discutida na secao 4; e,finalmente, a secao 5 apresentara as conclusoes e os possı-veis trabalhos futuros.

1.1 Trabalhos relacionadosUma sugestao de criterios a serem considerados na avaliacaode ferramentas utilizadas para uma abordagem MDA, bemcomo as funcionalidades que uma ferramenta ideal apresen-taria, estao disponıveis em [6]. Em [4], e apresentado comoaplicar uma abordagem MDA no contexto de uma Enter-prise Architecture, a partir do uso de boas praticas e heurıs-ticas para se atingir o sucesso da abordagem.

Um trabalho interessante a ser citado e o [14]. Este fazum estudo aprofundado da implementacao de metodologiasageis para desenvolvimento de software (em especıfico, oScrum) em conjunto com as praticas de gerenciamento deprojetos do PMBOK. O resultado dessa combinacao e bas-tante criticada especialmente por aqueles que defendem aadocao pura de apenas um dos dois. Apesar disso, e cons-tatado que ha sim a possibilidade de utilizar ambas juntase que seus resultados sao positivos.

2. MDA: CONCEITOS E TECNOLOGIASNessa secao, serao abordados tecnologias de suporte a MDA,como MOF (Meta-Object Facility) e UML (Unified Model-ling Language). Serao apresentados tambem os varios mode-los definidos pela MDA, como CIM (Computation Indepen-dent Model) e PSM (Platform Specific Model). Posterior-mente, sera apresentado o ciclo de vida MDA e, por ultimo,algumas ferramentas CASE (Computer-Aided Software En-gineering) que suportam a MDA.

2.1 Tecnologias de suporteA OMG adota algumas tecnologias para MDA. A maioriadelas e mantida pela propria OMG. Serao abordadas algu-mas que servem para modelagem e gerenciamento de mo-delos. Sao elas: MOF, UML, CWM (Common WarehouseMetamodel) e XMI (XML Metadata Interchange). Apesarde a OMG encorajar o uso dessas tecnologias para o desen-volvimento MDA, qualquer uma delas pode ser substituıdapor uma equivalente.

2.1.1 MOF - Meta-Object FacilityMOF e uma tecnologia de meta-metamodelagem. Ela sebaseia num arquitetura de 4 nıveis de modelagem [11]. Onıvel M0 e o nıvel da informacao, dos dados propriamenteditos. O nıvel M1 e o nıvel de modelos. No nıvel M2, temos

metamodelos. E o nıvel M3 e o nıvel do meta-metamodelo,isto e, o MOF. Um bom exemplo dessa arquitetura seria umaaplicacao de acoes da bolsa de valores. No nıvel M0 estariaminformacoes sobre as empresas e os valores das acoes de cadauma. No nıvel M1 estao as definicoes do banco de dados, queindica que o nome da empresa e do tipo String. O nıvel M2contem informacoes sobre a estrutura do banco de dados,por exemplo, que uma tabela e composta de registros, quesao compostos de campos e que cada campo deve ter umtipo. Finalmente, o nıvel M3 e o modelo MOF, que englobadefinicoes para varios modelos e meta-modelos. O modeloMOF pode ser visto na Figura 1.

Figura 1: Modelo MOF

2.1.2 UML - Unified Modelling LanguageUML e uma linguagem visual de modelagem baseada noconceito de orientacao a objetos. Ela foi criada por GradyBooch, James Rumbaugh e Ivar Jacobson [8]. Atualmente,a UML foi padronizada e e mantida pela OMG. Em MDA,os modelos UML precisam estar bem definidos, para que asferramentas possam trabalhar em cima deles. Um dos con-ceitos utilizados, principalmente na abordagem Agile MDA,e o de UML executavel [10]. Uma UML executavel e umperfil UML que define semanticas de execucao para um sub-conjunto restrito da UML. Este subconjunto e computaci-onalmente completo, possibilitando a sua execucao. Essesmodelos executaveis se comportam como codigo, mas estaonum nıvel de abstracao maior, mais proximo da linguagemdo cliente.

2.1.3 CWM - Common Warehouse MetamodelCWM e uma tecnologia para a troca de metamodelos dispo-nıveis em ambientes de data warehouses entre ferramentas,plataformas e repositorios [7]. Especificado pela OMG e ba-seado em MOF, sua funcao e estender o modelo de objetosda UML, fornecendo um framework para representar meta-dados, desde os dados ate as operacoes das data warehouses.CWM permite que ambientes de dados diferentes possam secomunicar, trocando informacoes.

Page 3: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

2.1.4 XMI - XML Metadata InterchangeXMI e um padrao de formato para a troca de modelos emetamodelos UML e baseados em MOF atraves de XML[13]. Desenvolvido pela OMG, prove um framework paradefinir, trocar, manipular e integrar dados e objetos XML.Atraves de uso de XMI, e possıvel realizar um mapeamentode MOF para XML.

2.2 Modelos definidos pela MDAA MDA possui processos estabelecidos pela OMG, cujos re-sultados de cada um dao-se como modelos diferentes. Cadamodelo possui um nıvel de independencia de maneira a pro-porcionar um melhor reaproveitamento, seja para a mesmaaplicacao em plataformas diferentes, seja para uma aplicacaodiferente que necessite de definicoes equivalentes a outraspreviamente desenvolvidas. Segundo Beydeda [3], existemquatro tipos de camadas, descritas em ordem decrescente deindependencia:

i) CIM - Computation Independent Model

ii) PIM - Platform Independent Model

iii) PSM - Platform Specific Model

iv) ISM - Implementation Specific Model

Para tornar a compreensao dos modelos mais simples, seraabordada uma analogia da geracao de codigo de programa-cao com o uso de idiomas. O que e coerente, pois um idi-oma nada mais e que um codigo utilizado pelas pessoas paraque as mesmas possam se comunicar, da mesma forma queutiliza-se codigos para comunicar as maquinas instrucoes doque deve ser executado. Adotando como exemplo, tem-seuma situacao em que uma pessoa necessita da ajuda de umaoutra e, portanto, precisa construir a oracao a ser utilizadapara se comunicar.

2.2.1 CIM - Computation Independent ModelEm uma aplicacao desenvolvida com MDA, faz-se necessariaa criacao de modelos cujas definicoes sejam independentes deestrutura e processamento do sistema [9]. Ou seja, modelosvoltados apenas a compreensao das regras de negocio. Talmodelo chama-se Computation Independent Model (CIM). Aintencao principal deste e especificar o domınio da aplicacaoa ser definida e os servicos e entidades com ela envolvidas.Compete a ele identificar requisitos do domınio, mas nao seufuncionamento interno ou especificacoes tecnicas. Trata-seapenas de uma abstracao, um conceito. Comparando com oexemplo adotado, esse modelo consiste na formacao de umaideia, uma mensagem. Essa ideia seria que a pessoa precisapedir ajuda de outra pessoa. Nenhuma palavra de idiomaalgum foi envolvida ainda. Por esse mesmo motivo, sendopuramente conceitual, e dependente da interpretacao dosdesenvolvedores (analista e especialista de negocio), e por-tanto de mapeamento complexo. Portanto, torna-se inviavelo processamento automatico da transformacao do modeloCIM para o modelo seguinte, PIM.

2.2.2 PIM - Platform Independent ModelO modelo PIM ja e capaz de descrever caracterısticas daaplicacao que nao era possıvel fazer no CIM. Por exemplo,

especificar relacoes entre propriedades de uma entidade ouas interacoes entre entidades distintas. Esse modelo se ca-racteriza, como o proprio nome indica, pela independenciade plataforma, ou seja, e tecnologicamente neutra [9]. Eprojetado para que seja capaz de definir a arquitetura queo sistema tera em qualquer plataforma que venha a ser de-finida, ainda que sem detalhes de implementacao.

Exemplificando na comunicacao abordada, tem-se como partedo modelo independente de idioma a definicao de que setrata de uma frase interrogativa (e um pedido), portantoprecisara de um elemento que atribua a interrogacao ao idi-oma a ser adotado. Tambem e necessario definir os objetosda acao (a pessoa em questao), os sujeitos (alguem a quemse pedir ajuda) e a acao propriamente dita (ajudar). Esseselementos existem em qualquer idioma, porem, abordadoscom regras diferentes. Essas regras ainda nao foram envol-vidas, tornando a construcao da ideia (a pessoa precisa pedirajuda a alguem) flexıvel aos idiomas existentes.

2.2.3 PSM - Platform Specific ModelDesignada uma plataforma, o modelo PIM sera transfor-mado em um modelo PSM. Esse modelo e capaz de descre-ver como sera desenvolvido o sistema de maneira mais espe-cıfica, ja que resultara da combinacao de especificacoes domodelo anterior com detalhes de como o sistema funcionarana plataforma em questao.

Em analogia, e a aplicacao das regras de sintaxe do idiomaem especıfico na construcao da ideia escolhida. Sendo oidioma portugues, os elementos identificados devem seguiras regras gramaticais da lıngua portuguesa. Por exemplo, oelemento a se atribuir para caracterizar o codigo (a oracao)como interrogativa seria o sımbolo (signo) “?” no final daoracao. Caso fosse escolhido o idioma espanhol, os sımbolosa utilizar seriam “¿” no inıcio, e “?” no final da oracao.

Os detalhes das plataformas sao fornecidos pelo PDM.

2.2.4 PDM - Platform Definition ModelO PDM nao e um modelo resultado dos processos MDA,mas sim um modelo que fornece os conceitos tecnicos dediferentes partes que compoe a plataforma, e os elementosque o sistema pode oferecer a aplicacao. E a partir dele quesera possıvel a transformacao de PIM para PSM. Uma vezque e escolhida a plataforma, faz-se necessario saber comoa mesma funciona e os servicos que oferece para que as de-finicoes estabelecidas no PIM possam ser realizadas.

Analogamente, o PDM seria a gramatica do idioma esco-lhido, com todas as regras especıficas.

2.2.5 ISM - Implementation Specific ModelPor fim, tendo o modelo da aplicacao ja adaptado para fun-cionar na plataforma designada, o que resta a ser feito eo codigo em si. O produto final da MDA. Este modelo etambem conhecido como ISM.

Este modelo seria, por fim, a oracao formada com a apli-cacao apropriada dos signos. “Pode me ajudar?” em por-tugues, “¿Puede usted atenderme?” em espanhol, “Pouvez-vous m’aider?” em frances, “Can You help me?” em ingles,

Page 4: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

servem como exemplos das varias formas que a mensagem(CIM) pode tomar.

2.3 Ciclo de Vida MDAFocando no ciclo seguido pelos processos do MDA, obtem-se o seguinte esquema apresentado na Figura 2. O ciclotem seu inıcio na analise de requisitos, onde serao obtidasas informacoes de negocio a respeito da aplicacao a ser de-senvolvida. Desse processo, o resultado e o CIM. Este seratransformado em PIM com ajuda de ferramentas, mas essen-cialmente com acoes dos proprios projetistas, dada a grandecomplexidade de o sistema interpretar e mapear o modeloCIM. Apos a transformacao, o PIM resultante sera parcial,sendo ainda analisado pelos projetistas envolvidos, onde ha-verao os ajustes necessarios para entao o PIM ser definitivo.Este entao sera, com ferramentas, transformado em PSM.Este, por sua vez, sofrera novas transformacoes que geraraoo ISM (o codigo propriamente dito).

Essas duas ultimas transformacoes, a curto prazo, sao exe-cutadas pelos programadores ainda com auxılio de ferramen-tas. Futuramente, elas deverao ocorrer automaticamente [9],cabendo ao programador apenas analisar os resultados e fa-zer as modificacoes cabıveis. As vantagens fornecidas pelacriacao desses modelos sera abordada no topico “Vantagense Desvantagens”. Depois de ter o codigo pronto, ele entraem testes, dando resultados que serao levados em conside-racao na nova analise do PIM obtido para alteracoes. EssePIM modificado, passa pelas transformacoes ate chegar no-vamente no ISM, como um processo iterativo.

Figura 2: Ciclo de vida do MDA

2.4 Ferramentas CASEMuitas ferramentas CASE podem ser utilizadas para au-xiliar a MDA atraves da construcao de modelos em UMLe gerando codigo a partir deles. Para a MDA, foram en-contradas duas ferramentas especıficas que podem atuar demaneira interessante dentro dessa metodologia. Essas ferra-mentas sao o AndroMDA e a OptimalJ.

2.4.1 AndroMDASeu nome pronuncia-se andromeda. E um framework decodigo aberto que utiliza a UML para a interpretacao de

modelos e uma serie de plugins para transformacao dessesmodelos. Suas caracterısticas sao:

i) Design modular: o AndroMDA e dividido em modulosque podem ser divididos para atender as necessidadesdo usuario;

ii) Suporta o meta-modelo UML 1.4, mas o suporte ao mo-delo 2.0 ja se encontra em desenvolvimento;

iii) Suporta a inclusao de meta-modelos customizados emMOF ou XMI e geracao de codigo a partir deles;

iv) Plugins para plataformas especıficas;

v) Atualmente disponıvel na versao 3.3.

Os plugins do AndroMDA sao chamados de cartuchos (car-tridges). Cada cartucho e responsavel por transformacoespara uma determinada plataforma. Nativamente, o An-droMDA ja possui cartuchos para as plataformas Spring,JSF, Hibernate, Java, EJB 2 / 3, entre outros. A ferramentatambem possui um kit para criacao de cartuchos novos oucustomizacao dos ja existentes [2].

Apesar de ser baseado na MDA, o AndroMDA nao realizatransformacoes do modelo PIM para o modelo PSM. A fer-ramenta ja traduz do modelo PIM para codigo fonte em umadeterminado plataforma, dependendo do cartucho escolhidopara realizar a transformacao. Vale ressaltar que o modeloPIM aceito pelo AndroMDA tem que ser modelado em outraferramenta e salvo no formato .XMI. Esse modelo deve sercomposto pelo diagrama de casos de uso, o diagrama de clas-ses e o diagrama de atividades. Esses modelos ainda devemlevar em consideracao o conceito de marcas, onde os elemen-tos dos diagramas sao marcados com esteriotipos UML. Porexemplo, um caso de uso pode ser marcado com o esterio-tipo ≪ FrontEndUseCase ≫, indicando que e um caso deuso que interage com o usuario. A partir desses modelos, oAndroMDA e capaz de gerar o codigo fonte correspondente,automatizando grande parte do processo de desenvolvimento[5].

2.4.2 OptimalJA OptimalJ e uma ferramenta comercial, construıda poruma empresa chamada Compuware. Por ser construıda emcima da IDE (Integrated Development Environment) Eclipse,se caracteriza por ser um ambiente de desenvolvimento diri-gido a modelos voltado a plataforma Java. Essa ferramentapermite a criacao de modelos utilizando UML e MOF comometa-metamodelo. Se encontra atualmente na versao 4.3e tem como caracterıstica importante o fato de permitir odesenvolvimento em tres etapas, cada uma contendo um mo-delo especıfico:

i) O modelo de domınio, o qual equivale ao PIM;

ii) O modelo de aplicacao, o qual equivale ao PSM;

iii) O modelo de codigo, representado pelo codigo fonteJava.

Page 5: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

O modelo de domınio (PIM) e representado pelo diagramade classes e o diagrama de atividades. O diagrama de classesmodelado na OptimalJ apresenta algumas restricoes, comoo fato de nao suportar a modelagem de interfaces. Com re-lacao ao diagrama de atividades, a ferramenta impoe quecada fluxo tenha que especificar o objeto que e passado deuma atividade para outra. O diagrama de casos de uso eo conceito de marcas nao sao necessarios para que a ferra-menta realize a transformacao entre o PIM e o PSM. Essatransformacao utiliza regras para mapear os elementos domodelo fonte para o modelo alvo. Vale ressaltar que ao apli-car essa transformacao, a OptimalJ insere uma arquiteturade camadas ao modelo PSM, alem de realizar o registro datransformacao, como e sugerido pela MDA [5].

Em [15] e apresentado um estudo de caso que mostra a cons-trucao de um sistema de e-commerce, especificamente o PetStore desenvolvido pela Sun para demonstrar padroes deprojeto. O estudo desenvolveu o sistema utilizando a pla-taforma .NET, a plataforma J2EE de forma manual e como OptimalJ, seguindo as etapas da MDA. A Figura 3 mos-tra uma grafico onde e possıvel ver o numero de linhas decodigo escritas manualmente em cada um dos metodos ado-tados. Dessa forma, e possıvel verificar que o numero totalde linhas de codigo que foram escritas manualmente depoisde se utilizar a OptimalJ foi consideravelmente inferior aosoutros metodos adotados, demonstrando o quanto uma fer-ramente pode auxiliar o processo de desenvolvimento.

Figura 3: Quantidade de linhas de codigo escritasmanualmente

3. PMBOK - PROJECT MANAGEMENTBODY OF KNOWLEDGE

O PMBOK e um guia editado e publicado pelo PMI (ProjectManagement Institute) que reune o que se considera ser asmelhores praticas em gestao de projetos em varias areas deconhecimento.

O guia esta na terceira edicao, publicada em 2004, e temse tornado uma referencia mundial na gerencia de projetos.O guia define o ciclo de vida do projeto por grupos de pro-

cessos, onde, em cada fase, um conjunto de atividades saoexecutadas de maneira a tornar o processo de desenvolvi-mento o mais gerenciavel possıvel.

O ciclo de vida do projeto e apresentado na Figura 4, queapresenta cinco grupo de processos de um projeto: de inici-acao, de planejamento, de execucao, de controle e monito-ramento e de encerramento.

Figura 4: Ciclo de vida do projeto

Cada grupo de processos do ciclo de vida do projeto con-siste em atividades relacionadas a uma das nove areas deconhecimentos definidos pelo PMBOK:

i) Escopo;

ii) Tempo;

iii) Custos;

iv) Qualidade;

v) Recursos humanos;

vi) Comunicacoes;

vii) Riscos;

viii) Aquisicoes;

ix) Integracao.

Segundo o PMBOK [12], uma boa gerencia do escopo doprojeto garante que todo o trabalho necessario sera bementendido e evitara trabalhos que nao estejam dentro doescopo do projeto.

Ao final da fase de planejamento do escopo do projeto, osartefatos criados consistem de uma declaracao do escopo doprojeto e do produto, incluindo sua Estrutura Analıtica doProjeto (EAP) e um dicionario da EAP, que garantira umcorreto entendimento de todos os integrantes da equipe doprojeto.

Page 6: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

A estrutura analıtica do projeto apresenta uma decomposi-cao hierarquica de todos os pacotes de trabalho necessariosao objetivo do projeto, incluindo atividades ligadas a suagerencia e ao processo de desenvolvimento em si.

4. SUGESTÃO DE USO DA MDA COM OPMBOK

Segundo a especificacao da MDA, durante o desenvolvimentode sistemas complexos, e preciso que sejam feitos sucessivosrefinamentos nos seus modelos ate um ponto em que todo oescopo do produto seja alcancado pelo projeto, assim comoapresentado na Figura 5.

Figura 5: Processo para sistemas complexos

Uma consequencia direta desta abordagem e o excessivotempo gasto nos refinamentos, ja que, como apresentado naFigura 4, a atividade de refinamento e executada para todosos nıveis de modelagem, desde os modelos independentesde plataforma, ate o modelo especıfico. Uma tecnica quepermite reduzir o tempo gasto pelos sucessivos refinamentosnos varios nıveis de modelagem e aplicar o maximo destaatividade ao modelo de mais alto nıvel, ja que este e desen-volvido atraves de uma linguagem mais proxima do domıniodo negocio e permite um melhor entendimento pelas diver-sas partes envolvidas no projeto de desenvolvimento. Estatecnica permite nao so a reducao no tempo de desenvolvi-mento do sistema, mas tambem um melhor entendimento doescopo do produto de software em questao, o que acaba porreduzir os riscos associados e os custos do projeto.

Uma outra vantagem de concentrar o trabalho de refinar otrabalho ao maximo concentrando-se no modelo de mais altonıvel da MDA e que ele geralmente e feito em um momentoinicial do projeto. Isso permite um conhecimento anteci-pado dos riscos e um melhor planejamento de respostas ealternativas a eles. Ainda na fase de planejamento do pro-jeto de desenvolvimento, segundo o PMBOK [12] a definicaoda EAP permite uma organizacao hierarquica do escopo to-tal do projeto de maneira a subdividir todo o trabalho empartes menores, mais faceis de ser executadas, gerenciadas edimensionadas.

A Figura 6, apresenta uma EAP ilustrativa de um projeto

Figura 6: Exemplo de EAP

de desenvolvimento de software. O adequado detalhamentoda entrega referente ao software podera ser usada durante aaplicacao de MDA no sentido de encontrar quantos e quaismodelos independentes de arquitetura serao gerados, assim,poderemos evitar os refinamentos dos modelos mais especı-ficos, o que trara um ganho de tempo significativo [6].

5. CONCLUSÕESO princıpio da MDA e o uso de modelos para abstrair a pla-taforma na qual o produto sera implementado. Entretanto,a etapa de modelagem nao e devidamente realizada no ce-nario atual da engenharia de software. Alem disso, a MDAnao prove uma estrutura de gerenciamento de projeto. Ba-seado neste fato, propos-se o uso das praticas de gerencia deprojetos do PMBOK.

No decorrer do trabalho, constatou-se que sistemas comple-xos poderiam ser melhor gerenciados com o uso da EAP. Talavaliacao foi alcancada dadas as sucessivas transformacoessofridas por um sistema complexo numa abordagem MDA.

5.1 Vantagens e desvantagensA geracao de modelos na MDA, apesar de consumir umconsideravel esforco e tempo, possui benefıcios. Um deles,como ja mencionado, e a possibilidade de reutiliza-los emuma outra aplicacao de requisitos semelhantes. Em [14],apresentam-se outras vantagens do uso de MDA: facilidadede manutencao e documentacao (como as mudancas devemser feitas nos modelos, estes estao sempre atualizados, im-pedindo a defasagem que normalmente ocorrem entre a do-cumentacao e o produto final em modelos de desenvolvi-mento tradicionais) e portabilidade (de um mesmo PIM, quepor definicao e independente de plataforma, pode-se gerar amesma aplicacao em diferentes plataformas).

Entretanto, como apresentado em [1], a utilizacao de MDAtem alguns pre-requisitos, alguns deles bastante severos. Den-tre eles, apontamos: a equipe de desenvolvimento deve termodeladores de grande habilidade, algo ainda incomum nomercado; o atual conjunto de ferramentas para MDA aindanao suporta todas as etapas de desenvolvimento contidas naespecificacao; alem disso, esse atual conjunto e relativamentepequeno em relacao a quantidade de ferramentas disponıveispara outras metodologias, tais como RUP (Rational UnifiedProcess) e XP (eXtreme Programming); o suporte para es-trategias de teste por estas ferramentas ainda e insatisfato-rio.

Page 7: Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Complexas

A longo prazo, as duas ultimas transformacoes, de PIM aPSM e de PSM a ISM, serao automatizadas. Isso tornamuito simples o desenvolvimento de software, tal como, poranalogia, se tornou a programacao de baixo nıvel para altonıvel. Contudo, talvez esse seja o maior desafio da MDA.O foco do desenvolvimento de softwares se torna a etapa demodelagem e documentacao, em contraste com as metodo-logias atuais, em especial as ageis. A etapa de codificacaoperde importancia, sendo realizada apenas para determina-das partes em que as ferramentas nao foram capazes de re-alizar atraves dos modelos fornecidos. Os programadoresnao mais utilizam linguagens tradicionais, como C# e Java,mas sim em QVT (Query/View/Transformation). Todasessas mudancas acabam por afastar os desenvolvedores desoftwares, receosos em utilizar uma metodologia ainda naosolidificada.

5.2 Trabalhos futurosPara possıveis trabalhos futuros, sugere-se analisar o usode outras metodologias de gerencia de projetos (por exem-plo, MPS.BR) para auxiliar no desenvolvimento de produtosusando MDA, visto que a mesma nao fornece uma estruturade gerenciamento. Sugere-se ainda verificar se ha outros ar-tefatos do PMBOK que possam ser utilizados numa aborda-gem MDA. Outra possıvel extensao do trabalho e a aplicacaoda proposta para o desenvolvimento de um produto.

6. REFERÊNCIAS[1] S. W. Amber. Are you ready for the MDA.

http://www.agilemodeling.com/essays/readyForMDA.htm,2004.

[2] AndroMDA Team. AndroMDA.http://www.andromda.org/.

[3] S. Beydeda, M. Book, and V. Gruhn. Model-drivenSoftware Development. Birkhauser, 2005.

[4] A. W. Brown. MDA redux: Practical realization ofModel Driven Architecture. In Proceedings of theSeventh International Conference onComposition-Based Software Systems, pages 174–183,2008.

[5] G. L. P. Caliari. Transformacoes e mapeamentos daMDA e sua implementacao em tres ferramentas.Master’s thesis, Escola Politecnica da Universidade deSao Paulo, 2007.

[6] T. Calic and S. Egbert. Tools for MDA softwaredevelopment: Evaluation criteria and set of desirablefeatures. In Proceedings of the Fifth InternationalConference on Information Technology: NewGenerations, pages 44–50, 2008.

[7] D. T. Chang and J. D. Poole. Common WarehouseMetamodel (CWM). In OMG First Workshop onUML in the .com Enterprise: Modeling CORBA,Components, XML/XMI and Metadata, 2000.

[8] A. Esmin. Modelando com UML - Unified ModelingLanguage.http://www.dcc.ufla.br/infocomp/artigos/v1.1/tutorialUML.pdf,2000.

[9] P. Jandl Junior. Uma analise da OMG Model DrivenArchitecture. Analise, (11), 2005.

[10] S. J. Mellor. Agile MDA.http://www.omg.org/mda/mda files/Agile MDA.pdf.

[11] OMG - Object Management Group. Meta-ObjectFacility (MOF) Specification.

[12] Project Management Institute. Project ManagementBody of Knowlewdge Guide, 3 edition, 2004.

[13] R. Santos. XMI. Faculdade de Ciencias e Tecnologiada Universidade Nova de Lisboa, 2004.

[14] A. Tavares. Gerencia de projeto com PMBOK eScrum. Master’s thesis, Faculdade Cenecista NossaSenhora dos Anjos, Gravataı/RS, 2008.

[15] S. Witkop. Driving business agility with model drivenarchitecture. Ohio/Pennsylvania Solution Centre.