Home

ReacT-MDD – Rastreabilidade Reactiva no Desenvolvimento de

image

Contents

1. No mbito deste trabalho foi elaborado um relat rio referente especifica o t cnica do sistema Silva et al 08 que complementa os diferentes documentos j existentes Para al m de um documento de Especifica o de Requisitos T cnicos Silva et al 06 tinham j sido produzidos tr s manuais de utiliza o tratando diferentes reas da aplica o Silva et al 07a b c A especifica o t cnica do sistema pretendeu dar uma imagem dos aspectos t cnicos do projecto entretanto identificados complementando os relat rios anteriores de duas formas 1 abordando aspectos Figura 5 7 Arquitectura aplicacional do gestBarragens diagrama de instala o anteriormente n o tratados 2 introduzindo altera es a partes dos documentos j existentes P g 93 pegasus Inec pt d gestBarragens TCP IP 3 dbms Oracle 10 i gb SIG gB Sistema De 3 Observ ag es bd GB B Geod sicas gb Sistema De gb Suporte oracle odbc E onsenaeces WEBCOMFORT Ej gB Inspecc es gB Documental Visuais l1 eer 1 1 i 1 T i j use i E i 1 i GestorDeConteudos i Webcomfort use 1 http 1 webserver TCP IP lis oF i l TCP IP a use t H A servidor E Servidor SIG A D A
2. import A T import Deployments Components m import Figura 2 2 Pacotes UML2 que suportam os modelos estruturais do UML Tal como noutras linguagens de modelac o existem no UML dois tipos de diagramas os estruturais est ticos e os comportamentais din micos Figuras 2 2 e 2 3 Na especificac o do UML 2 1 no primeiro grupo incluem se os diagramas de classes os diagramas de pacotes os diagramas de objectos os diagramas de componentes os diagramas de instalac o e os diagramas de estrutura composta UML2 No segundo grupo incluem se os diagramas de casos de utilizac o de sequ ncia de colabora o ou comunica o de estados de actividade e de tempo UML2 CommonBehaviors Classes UseCases ph ez e 1 T T i 1 1 1 i StateMachines l 1 y preme gt Components i 1 1 J I Actions AuxiliaryConstructs Bon Deployments MEM SES 1 i i i 1 1 Activities V iid CompositeStructures Interactions Lo gt gt et 4 Figura 2 3 Pacotes UML2 que suportam os diferentes tipos de diagramas em UML O diagrama de classes o mais usado e aquele que se considera acrescentar mais informac o a modela o Dobing et Al
3. esee 82 Figura 4 5 Definic o de um contexto atrav s de um fornecedor externo no ReacT Workbench 84 Figura 4 6 Defini o de rastos no ReacT Workbench esses 84 Figura 4 7 Metamodelo do contexto Database occcccccccnccnnncnnncnnncnncno nono nc non eene eene nennen ran rain 85 Figura 5 1 Diagrama de classes conceptual dos dados do empr stimo 1 sss 86 Figura 5 2 Diagrama de classes conceptual dos dados do empr stimo 2 87 Figura 5 3 Diagrama de classes dependente da plataforma NET e da linguagem Ctt 88 Figura 5 4 Artefactos produzidos e as suas rela es ooooocnccnnccccnononooonnnnnnnnnnnananonononnnncnnnnnnnnnnnnonnnnnos 89 Figura 5 5 Vis o geral do gestBarragens Silva et al 08 91 Figura 5 6 Arquitectura de software de n camadas do gestBarragens ccssessssceceeceeseesnensaeeeeees 92 Figura 5 7 Arquitectura aplicacional do gestBarragens diagrama de instala o 93 Figura 5 8 Alguns artefactos do gestBarragens cccccnnoooooonnnnncnnnnnononononnnnnnnnnanonn nono nnnnnnnonnnnnnnnnonnnnnos 94 Figura 5 9 Diagrama de componentes da interac o Gerir Documentos sse 95 Figura A 1 Metamodelo do package QVTBase transforma es e regras 116 Figura C 1
4. 1960 1970 1980 1990 2000 Figura 2 1 Alguns marcos importantes na rea do desenvolvimento de sistemas de informac o Durante as d cadas de 1970 e 80 surgiram in meras metodologias de desenvolvimento de sistemas de informa o muitas das quais com nota es associadas Cada um dos proponentes destas metodologias tentou produzir a melhor notac o para os artefactos produzidos ao longo do desenvolvimento de sistemas de informac o fossem eles esquemas contendo elementos gr ficos designados por diagramas tabelas e descri es textuais No entanto como cada uma das metodologias propunha diferentes tipos de artefactos envolvendo notac es diferentes o resultado foi o surgimento de um grande n mero de nota es A partir da d cada de 1990 com a massificac o das linguagens orientadas por objectos que vinham a ser desenvolvidas desde a d cada de 1960 Dahl et al 66 alguns te ricos comecaram a reformular as metodologias cl ssicas tendo em vista este novo paradigma enquanto outros tentavam criar novas metodologias Embora com resist ncia e in rcia Ramsin et al 08 as metodologias orientadas por objectos foram sendo desenvolvidas acabando por estabilizar e evoluir em meados da d cada de 1990 S o abordadas em seguida algumas das metodologias mais importantes na hist ria ainda curta da modela o dos sistemas de informa o Desta lista constam metodologias cujas nota es associadas se tornaram relevantes
5. var pimGui PIM PIM createEmptyModel var pimBehavior PIM PIM createEmptyModel var trl new Req2Pimgui req pimGui var tr2 new Req2Pimbehavior req pimBehavior var stl trl parallelTransform forks the PIM GUI transformation var st2 tr2 parallelTransform forks the PIM Behavior transformation this wait Set stl st2 waits patiently if stl succeeded and st2 succeeded new Pim2Psm pimGui pimBehavior psm transform creates th xecutable model Pag 147 Anexo E Sintaxe abstracta e semantica da linguagem de relac es do QVT Nesta seccdo sera abordada a sintaxe abstracta da linguagem de mapeamentos operacionais Os conceitos s o apresentados de uma forma gr fica atrav s de diagramas de classes e posteriormente feita uma pequena descric o de cada uma das classes envolvidas Quando necess rio s o criadas novas subsec es que descrevem com maior detalhe a sem ntica de um dado conceito O formalismo operacional do OVT descrito por dois packages EMOF QvTOperational e ImperativeOCL Os seguintes pacotes s o importados EMOF EssentialOCL QVTBase OVTTemplate QVTRelation O package ovTOperational define os conceitos que s o necess rios para especificar as defini es das transforma es escritas imperativamente Este package define um conjunto de conceitos estruturais gen ricos e g m dulo e operacdo imperativa e de conc
6. Anota o Texto Anotado Texto Original Diagrama Figura 3 7 Anotac o de textos e utilizac o posterior em operac es de sincronizac o Os artefactos correspondentes ao n vel CIM s o normalmente pouco formais englobando textos em lingua natural Quando os artefactos incluem um metamodelo a sincroniza o faz se normalmente como se de um artefacto PIM ou PSM se tratasse O problema surge nos artefactos que incluem uma parte significativa escrita em l ngua natural como usual no caso da descric o de requisitos O facto destes textos por si mesmos n o terem uma estrutura ou metamodelo inviabiliza a sincronizac o das suas partes com outros artefactos Por m poss vel anotar os textos com marcas que podem servir para identificar ocorr ncias de uma estrutura j definida Pode usar se para tal uma linguagem como o XML mas os textos originais passam a n o ter qualquer valor Os novos artefactos assim criados t m de substituir os anteriores O metamodelo dos artefactos entretanto criados pode ser suficientemente rico que permita o estabelecimento de relac es de coer ncia entre estes e os restantes quer pertencam ao mesmo nivel MDA ou a outro O problema inverso surge ao n vel do c digo devido ao facto das linguagens de programa o terem normalmente uma formaliza o correcta mas envolvendo um conjunto muito grand
7. A sintaxe das express es QVT tem as seguintes extens es ao OCL oclExpressionCS lt propertyCallExpcs gt lt variableExpCS gt P g 162 lt li lt letExpcs gt lt ifExpCs gt lt template gt lt oclExpre lt oclExpressi terall EXpCS template lt objectTemplate gt gt ssionCSz oncS gt NR lt collectionTemplate gt objectTemplate lt identifier gt lt typeCS gt lt propertyTemplate gt lt propertyTemplate gt identifier lt oclExpressionCs gt collectionTemplate identifier lt collectionTypeldentifierCs gt lt typecs gt rt lt setComprehensionExpression gt memberSelectionExprCS oclExpressionCSList lt oclExpressionCSList gt 9 lt setComprehensionExpression gt lt identifier gt lt objectTemplate gt lt oclExpressionCS gt lt memberSelectionExprCS gt lt identifier gt lt objectTemplate gt _ 144 lt identifier gt v P g 163 7 Anexo G Notac o Gr fica do QVT No passado a notac o gr fica foi um dos elementos mais importantes para a aceitac o do UML permitindo aos utilizadores representar abstrac es dos sistemas subjacentes de uma forma intuitiva e natural A sintaxe da linguagem gr fica pode ser usada de duas formas como forma de representar transforma es nos diagramas UML usuais ou
8. Mubin i Constructing MDA based Application Using Rational XDE for NET Ashirul Mubin http cs ua edu 630 Notes 1 P g 109 Nosek et al 92 Ease of learning and using a CASE software tool an empirical evaluation SIGCPR Comput Pers Vol 14 Issue 1 2 ACM Pags 60 65 Novembro de 1992 O Regan 04 Introduction to Aspect Oriented Programming Graham O Regan O Reilly OnJava com http onjava com pub a onjava 2004 01 14 aop html 2004 OMG Object Management Group http www omg org OMG 02 Meta Object Facility MOF Specification Object Management Group http www omg org docs formal 02 04 03 pdf Vers 1 4 Abril de 2002 OMG 02a OMG XML Metadata Interchange XMI Specification V 1 2 http www omg org cgi bin doc formal 2002 01 01 1 de Janiro de 2002 OMG 03 MDA Guide Version 1 0 1 Object Management Group http www omg org docs omg 03 06 01 pdf Vers 1 0 1 2003 OMG 03a OMG Unified Modeling Language Semantics Object Management Group http www omg org docs formal 03 03 09 pdf Vers 1 5 Marco de 2003 OMG 03b UML 2 0 OCL Final Adopted specification Object Management Group http www omg org docs ptc 03 10 14 pdf 14 de Outubro de 2003 OMG 05 Unified Modeling Language Diagram Interchange Version 2 0 Object Management Group http www omg org docs ptc 05 06 04 pdf 4 de Junho de 2005 OMG 05a MOF QVT Final Adopted Specification Object Management Group http www omg
9. Se rdaam A ama r a a amp Eda amp Es am A rama e Es Am e E a 16 ent o 3 r a a a a e E a c Ea Pode ainda considerar se que dois artefactos a e aj s o coerentes quanto ao rasto r quando num dado momento a relac o de coer ncia que o define v lida Verifica se que r a aj pode ser eventualmente diferente de r a ai Como exemplo considere se o rasto r a a lt NrClasses a gt NrTabelas a aie A c A ae A cA 17 sendo a uma colec o de classes Java a uma base de dados e as opera es que calculam o n mero de classes e o n mero de tabelas presentes no artefacto respectivo No exemplo anterior evidente que o rasto r aj aj com a mesma defini o n o seria id ntico ao anterior caso pudesse sequer ser definido Logo pode dizer se que apesar da defini o das rela es de coer ncia ser sim trica os rastos nem sempre o s o dre R val r a a A val r a a 18 Dois artefactos podem ter mais do que um rasto definido entre eles sendo definidas diferentes relac es de coer ncia Pode considerar se que dois artefactos s o genericamente coerentes de a para aj num dado momento quando todos os rastos existentes de a para a s o v lidos P g 66 vr R a aj val r a a true 19 Por extensdo pode considerar se que dois artefactos s o genericamente coerentes entre si num dado momento quando todos os rastos existentes envolvendo simultaneamente
10. Figura 2 17 Rela es entre os metamodelos QVT ooccccccccncccnnccnnnnnncnnnnnnnnn ccoo non nono nono nn enne eene nnns 42 Figura 2 18 Efeitos de uma transformac o sobre um modelo alvo QVT marcado com a palavra reservada check Vinil li 44 Figura 2 19 Efeitos de uma transformac o sobre um modelo alvo QVT marcado com a palavra reservada enforced x entem ees ade tis E 45 Figura 2 20 Efeitos de uma transforma o sobre um modelo alvo QVT cononnococoncccncccnonanononnnnnonoss 47 Figura 2 21 Um modelo UML nivel 2 MOF 2 sssssgg enne nnne nennen nnn nnns 51 Figura 2 22 Um modelo com inst ncias UML n vel 1 MOF scscsscccccceesessssnseeeceeceescesestsaueeeees 51 Figura 2 23 Um modelo UML nivel 1 MOF ccccccsesssssecceecesceesesseeeeeeeecesesseeaaaeceeeeseeesessaaeeeees 52 Figura 2 24 Exemplo de inst ncia de um PadrdoO scsscssccccecesceesesseeceeccescesseseseeceeecesseessesaaeesees 53 Figura 3 1 Modelo dos conceitos b sicos necess rios ao mbito da rastreabilidade 59 Figura 3 2 Infraestrutura conceptual IEEE 1471 adaptado de Hilliard 07 60 Figura 3 3 Equival ncia entre artefactOS cccccccccscsssssssssecececesceesessseeeeeeccesceseseseeeeeeeeeseesesaaeesees 60 Figura 3 4 Coer ncia entre artefact0S ccccccccccccccscsssesssssecececescessessaeeeeeeseeseeeeeseeesesec
11. key object Key name k_ self name column result column kind primary y Os atributos finais na rvore s o criados na sec o de inicializa o atrav s da invoca o da opera o de mapeamento recursiva denominada attr2LeafAttrs n o desenvolvida aqui A itera o sobre esta lista ent o usada para criar as colunas atrav s da opera o leafAttr2OrdinaryColumn de salientar que as propriedades interm dias s o manipuladas como propriedades normais da metaclasse que serve de contexto para a opera o neste caso UML Class As propriedades interm dias s o extens es s propriedades que n o existem fora do mbito onde s o definidas D 9 Actualiza o de objectos e resolu o de refer ncias Uma t cnica comum na transforma o de modelos a utiliza o de diversas passagens para resolver refer ncias cruzadas entre elementos do modelo A linguagem fornece o mecanismo de resolu o para permitir o acesso a objectos alvo criados anteriormente de objectos iniciais Este mecanismo utiliza implicitamente os registos de rastreabilidade criados pela execu o da opera o de mapeamento A defini o asso2table seguinte respons vel por adicionar uma chave estrangeira a uma tabela relacional anteriormente criada Para tal necess rio obter se uma tabela j existente mapping Association asso2table Table when self isPersistent result is the default name for the outp
12. o concorr ncia e gest o de recursos e Concep o dos objectos Concep o de algoritmos e estrutura o das classes A fase de an lise OMT inclui tr s modelos Modelo de Objectos Modelo Din mico e Modelo Funcional O Modelo de Objectos na verdade representa normalmente classes e as suas rela es est ticas com outras classes podendo incluir tamb m objectos recorrendo se a uma notac o especial O Modelo Din mico representado atrav s de diagramas de sequ ncia e m quinas de estados an logos aos utilizados em UML Neste modelo s o identificados os aspectos da sequ ncia do controlo eventualmente tendo em atenc o aspectos temporais No Modelo Funcional d se relev ncia s transforma es ocorridas nos dados do sistema que s o modeladas atrav s de diagramas de fluxo de dados 2 1 3 Ferramentas de apoio ao desenvolvimento de sistemas de informac o Existem actualmente in meras ferramentas de apoio ao desenvolvimento de sistemas de informa o Os ambientes de desenvolvimento IDE Integrated Development Environment s o utilizados para as actividades que normalmente dizem respeito cria o e manuten o do c digo do programa tal como sua compilac o Este tipo de ferramenta at meados da d cada de 1990 estava normalmente associado a apenas uma linguagem de programa o de terceira gera o e g Borland Turbo Pascal para a linguagem Pascal Cincom VisualWorks para a linguagem Smalltalk Posteriormente
13. o contextual No mbito de um m dulo duas opera es contextuais apenas podem ter o mesmo nome se tiverem contextos diferentes Conceptualmente uma opera o contextual tem o comportamento de uma opera o que estende um tipo contextual referenciado E g numa defini o de transforma o que lida com modelos UML pode ser necess rio usar uma opera o de selec o denominada getAllAbstractBaseActors sobre inst ncias de Acto Actor neste caso o tipo contextual De forma a n o alterar a defini o da metaclasse Actor inserindo uma nova opera o o que deve ser evitado quando se trata de metaclasses padr o a referida opera o de selec o faria parte da transforma o operacional O contexto ent o usado para associar a opera o de selec o classe que est a ser estendida de uma forma l gica l e realizar uma distin o expl cita entre posse e contexto evita criar variantes de P g 154 metamodelos que servem apenas para determinadas transforma es Em termos de dominios de nomea o a defini o de uma opera o contextual insere um novo s mbolo no espa o de nomea o do m dulo que tem a posse seja transforma o ou biblioteca e simult neamente insere um s mbolo no espa o de nomea o da classe do contexto Como consequ ncia uma opera o contextual pode ser invocada ou como uma opera o n o contextual self o primeiro argumento da express o chamada ou como uma opera o do conte
14. 2 2 4 OCL Um diagrama UML como o diagrama de classes nem sempre consegue explicitar todos os aspectos relevantes de uma especificac o Pode ser necess rio por exemplo especificar determinadas restri es acerca dos elementos no modelo Estas restri es podem ser escritas numa l ngua natural com as ambiguidades inerentes a este tipo de express o Por isso surgiu a necessidade de definir uma linguagem formal para este efeito que conseguisse ser simples de utilizar o que usualmente n o o caso nas linguagens formais A Object Constraint Language OCL OMG 03b foi criada com este fim como uma linguagem formal para descrever express es em modelos UML Estas express es especificam normalmente condi es que devem ser satisfeitas para partes dos sistemas modelados ou pesquisas sobre os elementos descritos no modelo As express es OCL s o completamente independentes da tecnologia e podem ser mapeadas para outras linguagens No entanto a avalia o de uma express o OCL n o pode alterar por si s o estado do sistema ou qualquer outro elemento do modelo O OCL n o uma linguagem de programa o pelo que n o poss vel descrever o fluxo de controlo ou a l gica de um programa Tamb m n o poss vel invocar processos ou activar opera es que n o sejam pesquisas dentro do OCL Um conjunto de express es OCL n o por defini o directamente execut vel considerando se a sua avalia o instant nea i e os estados dos
15. Existe tamb m a indica o de um modelo de especifica o de testes para ferramentas CASE Ahtee 96 que contribui para a sua avalia o Este modelo inclui 1 Question rio sobre a ferramenta 2 Lista de avalia o das caracter sticas da ferramenta 3 Lista de avalia o da utiliza o da ferramenta em testes e 4 Teste de diagramas a partir de uma dada metodologia No entanto este modelo n o parece ter tido um desenvolvimento posterior ficando numa fase embrion ria de defini o Uma das propostas mais consistentes para a avalia o de ferramentas CASE o standard 1SO14102 ISO IEC 95 Lundell et al 02 O standard fornece p 1 1 Uma orienta o no sentido de se identificarem os requisitos organizacionais para as ferramentas CASE 2 Orienta o na avalia o da compara o entre esses requisitos e as caracter sticas das ferramentas e 3 Um processo para seleccionar a ferramenta mais apropriada de entre v rias baseado em medidas das caracter sticas definidas Na verdade o standard n o um processo de avalia o mas sim uma via para os produzir Um processo espec fico pode ser visto como uma instancia o do standard desde que cumpra as suas normas Conforme definido no standard p 6 a avalia o um processo sequencial que consiste nos seguintes subprocessos inicia o estrutura o avalia o e selec o Cada um destes subprocesos est dividido em actividades que por sua vez est o divi
16. JAVA Field name self name mapping UML Operation convertConstructor JAVA Constructor when self name self namespace name name self name mapping UML Operation convertOperation JAVA Constructor when self name lt gt self namespace name name self name D 13 Extens es aos tipos A linguagem operacional estende o sistema de tipos de base do OCL e do MOF com tr s tipos gen ricos que podem ser descritos da seguinte forma listas mut veis dicion rios e tuplos an nimos Uma lista mut vel List cont m um lista de elementos ordenados pela ordem de entrada na lista Em contraste com uma colecc o OCL usual uma List pode ser alterada Uma List um tipo parametriz vel i e definido sobre um tipo Quando n o seja dado um tipo para a criac o da lista assumido o tipo Any para a lista var mylist List 1 2 3 4 a list literal mylist add 5 Um dicion rio Dict pode ser visto como uma estrutura de dados que guarda valores acess veis por chaves tamb m um tipo mut vel i e um objecto pode ser alterado depois de ser criado var mydict Dict one 1 two 2 three 3 a dictionary literal mydict put four 1 24 Na l ngua Inglesa as palavras sorted e ordered diferenciam os dois tipos de ordem podendo ser traduzidas respectivamente neste contexto por lista ordenada i e com os elementos ordenados entre si e lista ordeir
17. Metamodelo do package QVTBase transforma es e regras 127 Figura C 2 Metamodelo do Package QVTTemplate eese nne 129 Figura C 3 Modelo do Package OVTRelation seeessesseseeseeee eene nennen nnn 130 Figura E 1 QVT Operational Package Transforma es Operacionalis cccconccoocoonncncnnnnononannnonnoss 149 Figura E 2 QVT Operational Package Defini o de caracter sticas imperativas 154 Figura E 3 QVT Operational Package Utiliza o de opera es imperativas 159 Figura G 1 Rela o QVT entre uma Classe UML e uma Tabela Relacional 164 Figura G 2 Diagrama de transforma o com condi o where ccoonocococcncnccnnnnnanaonnonnnnnnnnnnnonn nono nnoss 165 Figura G 3 Diagrama de transforma o QVT com restri es cccocnococoocncnccnnnonanoonnonnnnnnnnnnannnonnnnnoss 165 Figura G 4 Utiliza o de um conjunto de elementos num diagrama de transforma o QVT 166 Figura H 1 Processo de an lise gramatical e s ntese de um programa seen 168 P g 104 Bibliografia Agrawal 03 Metamodel Based Model Transformation Language Aditya Agrawal OOPSLA Companion 2003 Aho 06 Compilers Principles Techniques and Tools A Aho M Lam R Sethi J Ullman ga Edition Addison Wesley
18. No exemplo anterior usa se return para evitar criar mais do que um package com o mesmo nome A variante final do operador de resolu o a capacidade de adiar a recep o dos objectos at ao fim da transforma o i e at ao fim da execu o da opera o de entrada Resolu es diferidas podem ser teis para evitar definir v rias passagens de uma transformac o No exemplo seguinte tratam se os ciclos que possam existir devido a depend ncias hier rquicas entre classes transformation Uml2Java in uml UML out java JAVA main JAVA Interface uml objectsOfType Class map transformClass mapping UML transformClass JAVA Interface name Ifce concat self name base self superClass gt late resolve HJAVA Interface Na definic o seguinte trata se o mesmo problema mas desta vez usando duas passagens transformation Uml2Java in uml UML out java JAVA main JAVA Interface uml objectsOfType Class map transformClass uml objectsOfType Class map transformClassInheritance mapping UML transformClass JAVA Interface name Ifce concat self name mapping UML transformClassInheritance JAVA Interface base self superClass gt resolveln transformClass JAVA Interface Em termos de execuc o o operador late resolve sempre associada a uma atribuic o Conceptualmente devolve nul guardando entretanto toda a informac o que
19. Proceedings of Unified Modelling Language UML OO Springer Verlag 2000 Robinson et al 94 Object oriented SSADM Keith Robinson Graham Berrisford Prentice Hall 1994 Rose et al 08 The Epsilon Generation Language Louis M Rose Richard F Paige Dimitrios S Kolovos and Fiona A C Polack ECMDA OS Berlin 2008 Rumbaugh et al 90 Object Oriented Modeling and Design James Rumbaugh Michael Blaha William Lorensen Frederick Eddy W Premerlani Prentice Hall ISBN 0136298419 1990 SCE i James Martin Smart Computing Encyclopedia http www smartcomputing com Schmidt 06 Model Driven Engineering Douglas Schmidt Computer IEEE Fevereiro de 2006 SE 95 The Capability Maturity Model Guidelines for Improving the Software Process Software Engineering Inst Carnegie Mellon Univ Addison Wesley Professional ISBN 0201546647 1995 SEl 05 What is a CASE Environment Carnegie Mellon Software Engineering Institute http www sei cmu edu legacy case case_whatis html 27 de Julho de 2005 Silva et al 03 XIS Generative Programming Techniques Alberto Rodrigues da Silva Gon alo Lemos Tiago Matias Marco Costa Generative Programming and Component Engineering GPCE 03 Erfurt Germany 2003 Silva et al 06 gestBarragens Especificacdo de Requisitos T cnicos v2 1 Coordenadores Alberto Silva Helena Galhardas Eliane Portela Autores Alberto Silva Helena Galhardas Jos Barateiro Hugo Matos Jorge Goncalves T
20. Y use 2222222 Jem st gt MS Reporting El SEO Aplica o SIG TCP IP 1 Arc MS 1 1 T E amp be Informac o j G fi MS SQL Server KAL Saas V Reporting Services DB B PIM LEIS EXE D Arq P nal Code Classes C ASPX C PSM Figura 5 8 Alguns artefactos do gestBarragens Sendo esta uma aplicac o que se encontrava j em fase de produc o i e j estava a ser utilizada com o fim para que foi criada era importante entender se as alterac es que a fase de desenvolvimento produziu tornavam ou n o ultrapassados os artefactos existentes Tipo de Elemento Total Total Total UML Vers A Vers B Vers C Pacotes 45 71 103 Diagramas 53 80 119 Componentes 7 65 350 Associa es 1368 1703 1656 Generaliza es 322 359 415 Notas 28 12 14 Classes 1119 1735 1454 Depend ncias 93 138 625 Atributos 7631 16616 11356 Opera es 9695 15414 11619 Agrega es 22 26 27 Tabela 5 1 N mero total de artefactos que representam elementos UML presentes em tr s vers es do reposit rio da ferramenta CASE do gestBarragens Cedo se verificou ap s um trabalho de compara o entre os elementos presentes nos diagramas e os artefactos implementados que existiam diferen as aceit veis quando comparado um P g 94 documento de especificac o de requisitos produzido no inicio de um projecto com o resultado f
21. gerado automaticamente um ficheiro XML com os dados que definem o modelo do fornecedor externo As rela es de heran a s o eliminadas e todos os atributos e m todos herdados passam a fazer parte das classes respectivas No mesmo exemplo gerado o seguinte c digo lt xml version 1 0 encoding utf 8 gt lt Model name Database gt lt ModelClass name Table gt lt Attributes gt Attribute name Name gt lt Attributes gt lt Operations gt lt Attribute name AddColumn String columnName String dataType gt lt Attribute name RemoveColumn String columnName gt lt Attribute name SetName string name gt Attribute name Fill String pathName gt lt Operations gt lt AssociationTo gt lt Association name Columns gt lt AssociationTo gt lt ModelClass gt lt ModelClass name Column gt lt Attributes gt lt Attribute name Name gt lt Attributes gt lt Operations gt lt Attribute name SetName string name gt Attribute name Fill String pathName gt lt Operations gt lt AssociationTo gt lt Association name DataType gt lt AssociationTo gt lt ModelClass gt lt ModelClass name Database kind EntryPoint gt lt Attributes gt lt Attribute name Name gt lt Attributes gt lt Operations gt lt Attribute name AddTable String tableName gt lt Attribute name RemoveTable String tableName gt lt Attribute name
22. necess rio para reexecutar a inspec o e a atribui o P g 140 D 10 Composic o de transformac es A composi o de transforma es uma caracter stica essencial para produzir transforma es complexas e envolvendo um elevado n mero de metaelementos Como exemplo considere se que a transforma o Uml2Rdbms necessita que o modelo inicial um seja reduzido de forma a n o conter nenhuma associac o redundante Ser necess rio estender a defini o da transforma o anterior invocando antes desta uma outra transforma o que garanta a limpeza do modelo inicial Tal pode ser conseguido atrav s da seguinte defini o transformation CompleteUml2Rdbms in uml UML out rdbms RDBMS access transformation UmlCleaning inout UML extends transformation Uml2Rdbms in UML out RDBMS main var tmp UML uml copy var retcode new UmlCleaning tmp gt transform performs the cleaning if not retcode failed uml objectsOfType Package map packageToSchema else raise UmlModelTransformationFailed No exemplo anterior demonstrado o uso dos mecanismos de reutiliza o access e extension Uma importac o atrav s de access comporta se como uma importac o normal de um package Se a importa o for realizada com a palavra reservada extension combina se a sem ntica da importa o normal de um package com a heranga de classes O mesmo exemplo ilustra igualmente 1 a capacidade de exe
23. o de tr s tipos de modelos principais e Modelo L gico de Dados Realiza se a identifica o a modela o e a documenta o dos requisitos de neg cio de um sistema de informa o Esta vis o inclui um modelo de entidade rela o denominado Estrutura de Dados L gica e Modelo de Fluxo de Dados Realiza se a identifica o a modela o e a documenta o da forma como os dados circulam no sistema de informa o da organiza o Um Modelo de Fluxo de Dados composto de um conjunto de Diagramas de Fluxo de Dados interligados com documenta o textual Os DFD representam Processos Arquivos de Informa o Entidades Externas e Fluxos de Dados e Modelo de Eventos de Entidades Realiza se a identifica o a modela o e a documenta o dos eventos que afectam cada entidade e a sequ ncia em que esses eventos ocorrem Um Modelo Entidade Evento consiste num conjunto de Ciclos de Vida de cada entidade e em documenta o textual Em 1995 o SSADM era a metodologia mais utilizada na Europa com mais de 5000 utilizadores certificados Model Systems 02 O SSADM era uma norma aberta que foi revista at finais da d cada de 1990 Em 2000 o nome foi mudado passando a chamar se Business System Development e actualmente existem adapta es desta metodologia a nota es mais recentes P g 13 como o UML e aos conceitos de an lise e concepc o orientada por objectos com o OO SSADM Robinson et al 94 Existem dive
24. 78 Structured Design Ed Yourdon Larry Constantine Prentice Hall 1978 Yourdon 10 Just Enough Structured Analysis and System Specification Ed Yourdon http yourdon com strucanalysis wiki index php title Introduction 2010 W3C 04 Extensible Markup Language XML 1 0 Third Edition World Wide Web Consortium Recommendation http www w3 org TR 2004 REC xml 20040204 4 de Fevereiro de 2004 P g 112 Welsh 03 How Software Modeling Tools Are Being Used Tom Welsh Cutter Consortium Enterprise Architecture Advisory Service Executive Update Vol 6 N 9 http www cutter com research 2003 edge031230 html Dezembro de 2003 Wikipedia 08 Traceability Wikipedia http en wikipedia org wiki Traceability Woolridge 04 An Introduction to Use Case Analysis Richard Woolridge http www cbd hq com articles 1999 991115rw_caseanalysis asp 2004 Zettel 05 Methodology Support in CASE Tools and Its Impact on Individual Acceptance and Use A Controlled Experiment J rg Zettel Empirical Software Engineering Kluwer Pub Vol 10 Issue 3 ISSN 1382 3256 Julho de 2005 P g 113 Anexo A Ferramentas de apoio ao desenvolvimento de sistemas de informac o Sendo o mbito do trabalho a rastreabilidade entre artefactos produzidos por ferramentas de desenvolvimento e an lise de sistemas de informa o listam se em seguida diversas ferramentas CASE que utilizam o UML e as suas caracter sticas mais relevantes para este trab
25. E g uma transforma o que espere modelos UML com casos de uso pode ser restringida de forma a n o admitir modelos que n o tenham este tipo de diagramas Um tipo de modelo definido como uma subclasse de Class tal que poss vel definir opera es e propriedades nele As propriedades definidas nos tipos podem ser usadas para se observar o conte do dos objectos que perten am ao modelo durante o tempo de execu o da transforma o Mais precisamente existe um mbito MOF correspondente a cada par metro Qualquer cria o de um objecto ocorre num mbito associado ao modelo par metro Quando uma transforma o operacional instanciada os par metros do modelo passados como argumentos devem estar em conformidade com os tipos dos modelos da transforma o instanciada Quando um elemento de um modelo criado por uma transforma o necess rio conhecer qual o modelo em que o elemento criado Para este fim poss vel utilizar opera es de inspec o em modelos par metros e g objects objectsOfType para devolver um objecto previamente criado Em MOF existe o conceito de mbito Extent o qual apenas um conjunto de objectos Relaciona se aqui o conceito de modelo representado por modelos par metros numa defini o de transforma o com o conceito de mbito MOF assumindo que para cada modelo par metro existe um mbito MOF P g 152 Um tipo de modelo referido por um nome na sua assinatu
26. Estes incluem uma nota o pr pria e s o suportados actualmente pela ferramenta SmartER KBSI i O IDEF faz parte de um esforco de normalizac o levado a cabo pelo Departamento de Defesa dos EUA DoD Este grupo de m todos foi criado no mbito dos sistemas de produ o industrial sendo posteriormente generalizado e adoptado para o desenvolvimento de sistemas de informac o O IDEF pode ser usado isoladamente ou em conjunto com outras metodologias no segundo caso para modelar conceitos mais afastados da tecnologia envolvida Kim et al 02 Os artefactos conceptuais produzidos pelo IDEF podem ser relacionados entre si A manutenc o destas rela es bem como das rela es com e entre artefactos operacionais depender do desenvolvimento futuro de ferramentas 2 1 2 Metodologias e nota es orientadas por objectos Hypergraph Based Data Structure Em 1977 Fran ois Bouill iniciou o desenvolvimento de um m todo de modela o de conhecimento Bopearachchi 02 orientado por objectos No modelo HBDS Hypergraph Based Data Structure foram inclu dos os conceitos das linguagens orientadas por objectos p ex Classe Objecto Atributo e Opera o al m de conceitos pr ximos das bases de dados como a Liga o equivalente Associa o do modelo entidade associa o de Chen Chen 75 eventos l gica fuzzy e padr es de desenho Bouill i Devido ao facto de o modelo conter todas essas caracter sticas existe uma grande u
27. O Objectory envolve a utiliza o de artefactos com diagramas bem como descri es textuais usualmente em l ngua natural para a documentac o dos casos de utilizac o A coer ncia entre os artefactos usados pelo Objectory pode ser conseguida com a utilizac o de uma ferramenta de gest o de requisitos a par de uma revis o peri dica das descri es definidas No entanto a coer ncia entre estes artefactos e os restantes mais dif cil de manter por faltarem relac es impl citas que facilitariam essa actividade Object Oriented Analysis and Design Booch Booch Booch 94 desenvolveu uma metodologia de desenvolvimento de sistemas de informa o que usa conceitos similares aos das linguagens orientadas por objectos a um n vel de an lise e concep o A an lise do sistema de informa o percorre os seguintes passos e An lise de requisitos na perspectiva do utilizador atrav s de ferramentas textuais e Aan lise de dom nio iniciada com a cria o de modelos est ticos com diagramas de classes e suas rela es e Descri o das classes atributos e opera es no Dicion rio um reposit rio de informa o acess vel por todos os intervenientes no processo de desenvolvimento e Cria o de m quinas de estados do tipo Harel Harel 87 para expressar o comportamento do sistema e Cria o de diagramas de objectos com nota o espec fica que demonstram diversos detalhes do sistema e Cria o de mod
28. cccccesceesceecceeceecceecceeeeeeeeeeeeeeeeeeeeeaeseeaeeeaeeees 143 D 13 Extens es aos tipos zi sess d eae Sas a asd ds eae re ddan Re lnak 143 D 14 Express es imperatiVas 1 eiie en l ke s nek o ngon e Fe an e ERRARE aa TERN Ra Ye Rae kae Tage s ga abra di 144 6 2 D 15 Outras palavras reservadas eiorinn noni iiien nano eene eene nne eene eene enne 145 6 3 D 16 Caracter sticas avan adas defini o din mica e paralelismo 146 Anexo E Sintaxe abstracta e sem ntica da linguagem de rela es do QVT 148 Anexo F Sintaxe Textual Concreta do QVT sccssssscssssscccsssscecessecccesceccesceecccccessscscesscessesseesessees 162 7 Anexo G Nota o Gr fica do QVT cceeeeee eese eee eee ee eene e nennen neon etn tna snas ase sese en sunu 164 Anexo H rcidcR I 168 Anexo Linguagem de Templates scccccecssssssssceceecesesssssssenceceecesssessseseuee seseeessesssscaceoeseeeeees 170 indice Remissivo 1 Introdu o 1 1 Enquadramento O desenvolvimento dos sistemas de informa o tem sofrido altera es tecnol gicas e conceptuais profundas ao longo dos ltimos cinquenta anos As diversas evoluc es de hardware incrementaram em v rias ordens de grandeza o desempenho e a mem ria dos sistemas inform ticos permitindo novas evolu es no campo do software Por outro lado o surgimento de diferentes
29. cleo Core constitu do por um metamodelo e uma linguagem foi definido com extens es m nimas ao EMOF e ao OCL A pr pria especifica o do QVT d como analogia para os elementos da Figura 2 17 a arquitectura Java Segundo esta analogia a linguagem do N cleo seria como o Java Byte Code e a sem ntica do N cleo seria como a especifica o do comportamento para a Java Virtual Machine A linguagem Rela es desempenha o papel da linguagem Java e a transforma o padr o RelationsToCore seria similar especifica o do compilador que produz o Byte Code Para al m da linguagem Rela es e da linguagem N cleo que possuem a mesma sem ntica a n veis diferentes de abstrac o existem dois mecanismos que invocam implementa es imperativas de transforma es Por um lado existe a linguagem padr o Mapeamentos Operacionais Operational Mappings e por outro implementa es n o normalizadas 8 A a s Trace neste contexto indica uma relac o que se estabelece entre elementos de dois modelos e que persiste ao longo do tempo P g 41 denominadas Operac es Caixa preta MOF Black Box MOF Operations Cada relac o define uma classe que sera instanciada para permitir a rastreabilidade entre elementos do modelo a serem transformados e tem um mapeamento de um para um para a defini o de uma Opera o implementado por um Mapeamento Operacional ou por uma caixa preta Rela es Relati
30. com o seu valor Esta estrutura de dados deve ser implementada preferencialmente usando uma colec o din mica e g Dictionary na plataforma Net As opera es sobre cada tipo de artefacto sdo invocadas atrav s do m todo InvokeOperation que recebe um numero vari vel de par metros No entanto a implementa o de cada uma das estruturas de dados dos conceitos EntryPoint bem como das respectivas opera es deve tomar em conta a poss vel exist ncia de ciclos A estrutura de dados usada suficientemente gen rica para resolver refer ncias entre grupos de conceitos O metamodelo dos artefactos tratados por um fornecedor externo definido atrav s de uma extensdo ao Microsft Visual Studio realizada atrav s do template aplicacional Domain Specific Language que faz parte do Microsoft Visual Studio SDK 2008 Microsoft O8 Foi definido um template aplicacional pr prio baseado no diagrama de classes que inclui para al m de conceitos como ModelClass e ModelAttibute outros conceitos como o EntryPoint ja referido ou uma sintaxe pr pria para as associa es entre as metaclasses Ao ser criado o metamodelo Figura 4 7 gerado o c digo XML que o representa e que serve de input ao fornecedor externo Esta gerac o produz se P g 83 atrav s de uma linguagem de gerac o autom tica a partir de templates denominada Text Templating Transformation Toolkit T4 Giesenow 08 O template do metamodelo dado na Figura 4 7 encontra se no
31. da date autor string nome string 1 0 data de entrada date data de cria o date morada string 0 0 1 Editora Edic o Exemplar mama Eli L n mero de edi o int a a 0 n de paginas int 0 cota string morada string caer so data de edi o date estado EstadoExemplar Figura 5 2 Diagrama de classes conceptual dos dados do empr stimo 2 Este diagrama Figura 5 2 continua a corresponder a um modelo PIM visto ser independente da tecnologia Podem coexistir diversos modelos PIM sobre o mesmo dominio reflectindo diferentes perspectivas ou vistas do mesmo Como neste caso podem mesmo coexistir diversos diagramas do mesmo tipo cada qual com objectivos especificos e g variando a lingua o nivel de detalhe o tipo de elementos descritos Pag 87 al Repositorio 0 obras emprestimos Obra socios id int Emprestimo titulo string Socio autor string id int dataCriacao DateTime nrSocio int socio dataSaida DateTime nome string T efectua q dataEntrada DateTime GetExemplares List lt Exemplar gt morada string 0 2 edicoes Edicao exemplar 1 x Editora si editora ig int exemplares Exemplar gt id int lt lt nrEdicao int e gt editoras nome sting O nrPaginas int cota st
32. e Definir uma framework de software que permita a implementa o de uma aplica o de rastreabilidade reactiva e restrinja esse desenvolvimento ao modelo te rico proposto e Validar e discutir os resultados obtidos pela realiza o de casos de estudo 1 4 Descri o do Trabalho de Investiga o O presente trabalho centra se na rea do MDE em particular centra se nos mecanismos da gera o autom tica no contexto do desenvolvimento de sistemas de informa o propondo uma abordagem que permita o uso real dos diversos artefactos produzidos de forma coerente pelas ferramentas intervenientes Para tal estabelece se um modelo te rico que fundamenta os conceitos usados pela abordagem Prop e se ainda uma nova classe de ferramentas de apoio ao desenvolvimento deste tipo de sistemas Estas ferramentas denominadas de rastreabilidade reactiva permitem manter as refer ncias entre artefactos conceptuais e operacionais presentes em diferentes contextos e g SGBD Oracle SGBD SQLServer projecto CH reagindo a altera es a cada um dos artefactos produzidos de forma autom tica ou assistida poss vel fazer propagar a diferentes contextos uma altera o a um artefacto atrav s de um conjunto de regras definidas sobre ele A defini o dos contextos e dos seus mapeamentos fazem tamb m parte deste trabalho sendo um dos aspectos que permitem ao utilizador criar e manter a rastreabilidade A rastreabilidade reactiva pode ser
33. es ao modelo comum ou pelo menos deve existir uma forma de entender em que que uma aplica o n o est de acordo com o modelo De uma forma P g 57 gen rica importante ser assegurado que cada um dos artefactos existentes ndo entra em contradi o com os restantes ou seja que se mant m coerente 3 2 Conceitos B sicos No contexto do presente trabalho designa se por projecto n o s um dado programa ou conjunto de programas como a entidade que agrega todos os artefactos que est o relacionados directamente com ele como por exemplo a a sua justificac o b o tratamento de dados que realiza c os aspectos tecnol gicos que lhe est o inerentes d o envolvimento humano necess rio e e a documenta o necess ria sua produ o manuten o e opera o O projecto pode incluir e g todos os documentos produzidos sobre o dom nio que trata o c digo fonte dos programas necess rios os dados tratados por um SGBD documentos sobre recursos e a sua afecta o Designa se assim por elemento do projecto qualquer conceito que seja necess rio defini o justifica o ou opera o da aplica o Pode considerar se um elemento do projecto como um conceito abstracto concretizado num ou mais artefactos Designa se por artefacto uma qualquer realiza o f sica de um ou mais elementos do projecto Um elemento do projecto pode existir em mais do que um artefacto e um artefacto pode realizar mais do que um eleme
34. es produzidas sobre os artefactos de um contexto Assim sendo uma express o uma aplica o de artefactos em valores EASV 2 Considere se a rela o bin ria de compara o identidade entre valores designada por lt gt e que resulta num valor booleano true caso ambas as express es se refiram ao mesmo valor Se neste contexto os elementos relacionados s o objectos o valor refere se identidade dos objectos ou seja se eles s o o mesmo objecto A sem ntica desta rela o semelhante da compara o de 14 ine a Se Considera se que dois elementos est o num estado n o coerente em oposi o ao estado de coer ncia quando negam uma regra impl cita ou expl cita de coer ncia definida entre ambos 15 e D a E A w i x n zs s De forma a simplificar a explica o a informa o associada n o est completa porque n o est o referidos os contextos em que os conceitos sdo usados P g 61 identidade numa linguagem de programac o orientada por objectos i e se uma vari vel comparada com outra o resultado o valor l gico true se ambas as vari veis referenciam o mesmo objecto ou possuem o mesmo valor pertencente a um tipo b sico Artefacto 4 Artefacto 5 Artefactos Nao Equivalentes Person Human Name Name Artefactos N o Relacionados BirthDate BirthDate Quanto Coer ncia Artefacto 6 Artefa
35. gt Gest o de Obras n 5 T E use Gest o de Utilizadores e Permiss es gB Sistema De Observa es Geod sicas 1 Instrumentos Geod sicos Leituras Geod sicas use Rede Geod sica gB nspecc es Visuais use gt Resultados Geod sicos gb Modelos Vistas das Observa es Geod sicas Figura 5 5 Vis o geral do gestBarragens Silva et al 08 O gestBarragens concebido e desenvolvido de forma modular e baseado numa arquitectura de dados comum sendo evidenciados os seguintes m dulos aplicacionais Figura 5 5 gB Suporte gB Sistema De Observa o gB SIG gB Documental gB Sistema De Observa es Geod sicas gB Inspec es Visuais e gB Modelos O m dulo gB Suporte um sistema de gest o e configura o de v rios aspectos comuns e de suporte ao gestBarragens envolvendo a gest o de entidades transversais ao sistema e g gest o de utilizadores entidades obras elementos de obra isto que podem ser utilizados pelos restantes m dulos Silva et al 08 Mostram se em seguida a t tulo de exemplo alguns diagramas que fazem parte da documenta o do gestBarragens O diagrama de pacotes da Figura 5 5 representa as reas aplicacionais mais importantes do gestBarragens atrav s de uma vis o de muito alto n vel O gestBarragens est desenvolvido com uma arquitectura de quatro camadas que tornam independentes a int
36. map each persistent class to a table domain uml c Class namespace p Package kind Persistent name cn domain rdbms t Table schema s Schema name cn column cl Column name cn _tid type NUMBER primaryKey k PrimaryKey name cn pk column cl when PackageToSchema p s where AttributeToColumn c t Pag 43 Neste exemplo o bloco when especifica quais as condic es que devem ser verificadas neste caso existir a rela o Package ToSchema para que a rela o ClassToTable seja ela pr pria v lida O bloco where especifica quais as condi es que devem ser satisfeitas por todos os elementos que participam na rela o podendo restringir qualquer uma das vari veis tanto na rela o como nos seus dom nios Neste caso sempre que a rela o ClassToTable seja v lida tamb m a rela o Attribute ToColumn deve ser tamb m ela v lida Transforma o Transforma o gt gt Modelo Alvo Modelo Alvo checkonly Modela Inicial checkonly a a a Incoer ncia c X Incoer ncia c Antes Depois Modelo Inicial Figura 2 18 Efeitos de uma transforma o sobre um modelo alvo QVT marcado com a palavra reservada checkonly Uma transforma o possui dois tipos de rela es de n vel mais alto top level e de n vel abaixo non top level A execu o de uma transforma o necessita que todas as rela es d
37. o C sendo referido pela vari vel livre o Este objecto pertence ao dom nio domain Um template de objecto tendo o tipo C e domain o C uma restri o que a propriedade a tenha o a val valor val Neste caso val pode ser uma qualquer express o OCL oSet um template de objecto que oSet corresponde a um conjunto de objectos do tipo C Um template not apenas v lido quando n o not C existe um objecto do tipo C que satisfaca a restri o associada a ele 29 E a fo a E e s Ss eR Tendo em vista a simplifica o da explica o n o foi indicada a restri o que faz com que as classes e tabelas estejam relacionadas P g 166 Expressao OCL Uma restric o que pode ser associada tanto a um dom nio como a um template de objecto P g 167 Anexo H Parsers Uma das acc es indicadas denomina se de an lise gramatical e levada a cabo por um m dulo denominado Parser Este m dulo pode ser facilmente enquadrado recorrendo ao mbito das linguagens de programa o Lista de S mbolos C digo Fonte Gram tica L xico A An lise Lexical An lise Sint ctica Represen tac o em rvore Compilador Interpretador C digo Alvo Figura H 1 Processo de an lise gramatical e s ntese de um programa Um programa usualmente
38. o do novo identificador no c digo usando uma qualquer t cnica que preserve o corpo dos m todos este pode deixar de ser compil vel Basta para tal que n o sejam actualizadas as refer ncias ao nome da classe no interior do corpo dos m todos para que o c digo mantenha refer ncias a uma classe entretanto inexistente Cliente lista ColeccaoPessoas nome string C CriarPessoa void idade int 0 Figura 3 9 Diagrama de classes UML referente a um segmento de progama em C 2 Apesar da simplicidade do exemplo abordado torna se evidente que uma simplifica o no metamodelo da linguagem de programa o raz o suficiente para que a qualidade dos artefactos produzidos possa diminuir No mesmo exemplo uma ferramenta IDE poderia facilmente indicar os erros criados na medida em que as altera es violam as regras de compila o da linguagem Nesse caso uma simples substitui o monitorizada da palavra antiga pela nova poderia resolver o problema em pouco tempo mesmo com centenas de ocorr ncias Por m as consequ ncias podem ser mais dif ceis de gerir se se consider um contexto em que a aplica o possui diferentes classes com o mesmo nome em contextos privados Neste caso o processo de substitui o com um IDE poderia criar ainda mais erros do que aqueles que j existiam P g 71 E por isso desej vel que o metamodelo das linguagens de programac o envolvidas seja tio c
39. o pode ser vista como uma gera o de c digo eventualmente a partir de templates P g 34 2 3 2 Gera o autom tica Para que a abordagem MDA possa dar frutos pr ticos necess rio que existam ferramentas que produzam automaticamente uma parte significativa dos artefactos de c digo necess rios Sem que tal aconte a as vantagens do uso de modelos no processo de desenvolvimento s o dilu das no esfor o de implementar os diagramas no c digo final A gera o autom tica de c digo um processo utilizado para retirar ao programador ou ao utilizador actividades que podem ser feitas automaticamente O facto de o c digo ser gerado automaticamente n o implica necessariamente uma perda de qualidade do mesmo tanto no que diz respeito a desempenho legibilidade ou qualquer outro par metro de an lise do mesmo Na verdade para alguns tipos de gera o o c digo gerado ter mesmo qualidade igual ou superior ao que seria produzido por uma pessoa Um compilador um bom exemplo Devido ao facto de existirem optimiza es padronizadas para as linguagens mais conhecidas o c digo gerado tanto ou mais eficiente do que o c digo m quina produzido manualmente caso algu m ainda o fa a O produto final da gera o autom tica pode n o ser apenas um texto escrito numa linguagem de programa o Caso seja necess rio a gera o autom tica pode criar artefactos de diversos tipos e g ficheiros de configura o diagramas
40. o prossegue ent o para propriedades cujos os valores s o comparados com express es de templates encadeadas O padr o de propriedade namespace p Package s encontrar classes cuja propriedade namespace seja uma refer ncia n o nula para um Package Ao mesmo tempo a vari vel p ser ligada a esse Package No entanto como no exemplo dado a vari vel p est j resolvida pelo bloco when o padr o encontrar apenas as classes cuja propriedade namespace tem uma refer ncia para o mesmo package que est ligado a p Podem ser realizados encadeamentos entre padr es t o complexos quanto o necess rio e a comparac o e ligac o de propriedades feita recursivamente at existir um conjunto de tuplos correspondendo as vari veis do dominio e a sua express o No exemplo dado as vari veis c p e cn formam um tuplo de ordem 3 e cada correspond ncia v lida resulta num nico tuplo que representa a liga o Numa invoca o de uma rela o dada podem existir diversos valores que cumprem as restri es para cada express o de template A forma como esta multiplicidade de valores tratada depende da direc o da execu o Se a rela o ClassToTable executada com o rdbms como modelo alvo ent o para cada resultado obtido i e cada tuplo de liga es v lidas do dominio uml tem de existir pelo menos uma correspond ncia do dom nio rdbms que satisfaz o bloco where Se para uma dada correspond ncia v lida no dominio
41. o stereotypedBy Activity tamb m considerado apenas nesse contexto Um typedef pode tamb m ser usado para definir um sin nimo para um tipo complexo typedef PersonInfo Tuple name String phone String D 14 Express es imperativas Como ja foi referido a linguagem de mapeamentos operacionais uma linguagem imperativa para definir transforma es Estende o OCL inluindo todas os elementos necess rios para realizar transforma es complexas de uma forma simples As express es imperativas em QVT realizam um compromisso entre algumas caracter sticas funcionais encontradas no OCL e algumas construc es sint cticas usualmente encontradas em linguagens imperativas como Java ou CH O exemplo mais relevante da uni o destas duas aproxima es a possibilidade de utilizar express es de bloco para realizar um determinado c lculo compute v T initexp self getSomething No exemplo anterior devolvida a vari vel v ap s a execu o do corpo de instru es Neste corpo de instruc es podem existir refer ncias a vari veis definidas num ambito mais vasto podendo estas ser alteradas Um bloco n o portanto uma fun o apenas um conjunto de instru es Esta constru o pode ser combinada com uma express o while self myprop while v T initexp v lt gt null self getSomething 25 Considera se que um tipo insere se num modelo que por sua vez tem ele pr prio um tipo tipo do m
42. partida se existir an lise de sensibilidade i e neste contexto um estudo do impacto de uma altera o ao estado do sistema 1 3 Tese e Objectivos de Investiga o Tese Para ultrapassar os problemas identificados na sec o 1 2 a tecnologia existente n o suficiente necess rio algo mais designadamente um modelo de coer ncia comum e uma nova classe de aplica es ou pelo menos uma funcionalidade nova nas ferramentas de desenvolvimento existentes que permita definir as regras de rastreabilidade necess rias entre os diversos artefactos da aplica o em causa mantendo assim a sua coer ncia Dever preferencialmente ser providenciado um mecanismo que consiga verificar automaticamente essa coer ncia permitindo tomar as decis es necess rias para que o estado da aplica o se possa manter coerente com o menor esfor o poss vel A implementa o das funcionalidades referidas dever estar sujeita a P g 6 normas que as uniformizem permitindo a sua utilizac o estudo e melhoramento por uma comunidade alargada Objectivos De forma a validar a tese enunciada prop e se neste trabalho os seguintes objectivos de investigac o e Identificar e enumerar factores metodol gicos humanos e tecnol gicos que facilitem ou que obstem a rastreabilidade de artefactos e Defini o de um modelo te rico de rastreabilidade de artefactos no contexto do desenvolvimento de aplica es que aborda os problemas descritos
43. 02a Devido ao facto de o formato XML implicar que o ficheiro possa ser lido e entendido n o apenas por um programa mas tamb m por uma pessoa os ficheiros XML e XMI incluem uma redund ncia com todos os problemas inerentes como performance e espa o de mem ria que deve ser evitada na implementa o de um reposit rio de uma ferramenta CASE Por este motivo numa ferramenta CASE o XMI pode servir para exportar dados para outras aplica es eventualmente outras ferramentas CASE mas n o para guardar o pr prio reposit rio Eventualmente a passagem de informa o de uma ferramenta para outra atrav s de ficheiros XMI pode implicar uma transforma o dos dados Nesse caso o XSLT pode ser usado como linguagem de transforma o Tem vindo a notar se no entanto que o XSLT como linguagem de transforma o apenas vi vel para projectos em que a transforma o razoavelmente simples Dollard 04 O c digo XSLT tem uma manuten o dif cil e apenas usado quando os ficheiros de input est o no formato XML As transforma es de modelos e a gera o autom tica aplicam se segundo a presente abordagem a artefactos Assim sendo estes dois tipos de actividades relacionam se com a rastreabilidade de diversas formas Por um lado podem condicionar a rastreabilidade se n o for P g 30 mantido um registo das tranformac es executadas bem como dos processos de gerac o ja realizados Por outro lado quando bem aplicadas pod
44. 06 Sendo o seu elemento b sico a classe compreens vel que este diagrama seja adequado para o desenvolvimento atrav s de metodologias e linguagens de programa o orientadas por objectos Segundo o mesmo estudo os outros dois diagramas mais usados s o o diagrama de casos de utilizac o e os diagramas de sequ ncia de mensagens Contra aquilo que seria de esperar os diagramas de sequ ncia e os diagramas de colaborac o apesar de serem isomorfos s o ambos diagramas de interacc o s o usados ambos nos mesmos projectos Neste caso duas formas de ver a mesma informa o parecem ser teis para a documenta o do sistema Por outro lado s 55 dos inquiridos consideraram que com o UML a comunica o com os clientes no m ximo moderadamente bem sucedida Este dado p e em relevo o papel do UML P g 22 como linguagem para a documentac o t cnica do sistema O UML n o uma linguagem universal para ser entendida por qualquer pessoa sem quaisquer conhecimentos de modelac o nem foi criada para tal A pr pria especificac o do UML envolve o conhecimento dos conceitos que define e g na Figura 2 2 os elementos estruturais representados graficamente que constituem o diagrama s o definidos no interior dos pacotes definidos no pr prio diagrama O conhecimento do UML tal como de qualquer outra notac o n o suficiente para que os modelos criados reflictam correctamente o problema em causa S um conhecimento profundo do d
45. 2006 Ahtee 96 Evaluation of CASE Tools By a Test Specifications Model TSM Tero Ahtee 3 Doctoral Consortium on Advanced Information Systems Engineering Heraklion Crete 20 a 21 de Maio de 1996 Akehurst 04 Proposal for a Model Driven Approach to Creating a Tool to Support the RM ODP Dave Akehurst The 8th International IEEE Enterprise Distributed Object Computing Conference Monterey California USA 20 24 de Setembro de 2004 Akehurst et al 04 The Kent modelling framework user guide Dave Akehurst Octavian Patrascoui Rob Smith http www cs kent ac uk projects kmf Albizuri Romero 00 A Retrospective View of CASE Tools Adoption Miren Bego a Albizuri Romero SIGSOFT Softw Eng Notes 25 2 P gs 46 50 Marco de 2000 AndroMDA AndroMDA www andromda org Baik 00 The Effects Of CASE Tools On Software Development Effort Jongmoon Baik Dissertac o de PhD University of Southern California Baik et al 00 Empirical Analysis of CASE Tool Effects on Software Development Effort Jongmoon Baik e Barry Boehm Center for Software Engineering http sunset usc edu publications TECHRPTS 2000 usccse2000 504 usccse2000 504 pdf 2000 Becker et al 97 Supporting the Evaluation and Selection of CASE Tools Karin Becker e Dilnei Venturini CiteSeer Scientific Literature Digital Library http citeseer ist psu edu 145126 html 1997 Beckworth 93 Selection Criteria for CASE Tools Geoff Beckworth Dep Of Computing and
46. 3 2 e 3 3 poss vel definir rastreabilidade como a ac o de verificar os rastos existentes para um grupo de artefactos tendo em vista um dos seguintes objectivos e An lise de sensibilidade Quando se realiza uma modifica o ou elimina o e em casos especiais uma cria o de um artefacto a rastreabilidade pode ser usada para se entender quais as implica es que essa ac o ter nos outros artefactos i e quais os artefactos afectados pela mesma e Valida o de requisitos A valida o de um requisito pode ser feita seguindo os rastos necess rios do artefacto que cont m o requisito at aos testes e respectivos resultados eles pr prios igualmente artefactos e Verifica o de conformidade Os artefactos de c digo podem estar ou n o de acordo com os modelos respectivos sendo essa verifica o feita a partir da valida o dos rastos entre artefactos de c digo e artefactos dos modelos 17 Zar n q E zu A Por vezes o c digo gerado um ficheiro de configurac o ou qualquer outro artefacto submetido a um formato que n o representa uma parte de um programa Nesse caso o dito formato tem de ser completo i e todos os constituintes do texto t m de poder ser expressos inequivocamente atrav s dessa defini o 18 a m n Usando a mesma analogia verificar um rasto semelhante a seguir um rasto P g 72 e Pesquisa documental A rastreabilidade pode ser usada para o conhecimento
47. Al C digo N o Gerado a Gerado Figura 2 16 C digo gerado preenchido com c digo n o gerado Por outro lado a aproximac o de c digo gerado preenchido relevante quando til acrescentar o c digo manual dentro das pr prias classes Esta abordagem seguida em alguns ambientes de desenvolvimento e g Sun Netbeans Eclipse Microsoft Visual Studio Nestes ambientes o programador define o modelo da interface gr fica atrav s de um editor gr fico Simultaneamente existe uma gerac o das classes m todos atributos e eventos necess rios execuc o dessa interface gr fica Quando necess rio acrescentar um comportamento preenche se um m todo que j tem a sua assinatura gerada ou define se um novo O c digo gerado e o c digo n o gerado estando presentes num ficheiro t m de continuar a poder ser distinguidos de forma a se assegurar a manutenc o do c digo n o gerado aquando de uma regerac o p ex por alterac o de um atributo de um objecto gr fico como a localizac o de uma caixa de texto Esta abordagem mais dif cil de implementar do que a integrac o por c digo ligado se se pretender manter o c digo n o gerado no momento da regerac o Nesse caso o ficheiro tem de ser analisado para se extrair a informa o n o gerada guardando se a sua localiza o relativa 2 4 Modelo QVT Com a vis o MDA da OMG verificou se a necessidade de encontrar linguagens que permitissem a transformac o ent
48. Analogamente dois n veis podem desta forma estar verticalmente sincronizados P g 68 Sincroniza o Vertical N vel CIM q N vel PIM K Modelo PIM o i Sy b S oc o BE N vel 9 PSM N vel Aplica o Figura 3 6 Dimens es da sincroniza o de artefactos decorrentes da abordagem MDA Para fins de implementa o os artefactos s o divididos em dois tipos aqueles que dizem respeito aos modelos e os que dizem respeito ao c digo A sincroniza o pode assim ser caracterizada quanto ao tipo de artefactos e ntermodelos Um modelo pode ter elementos dependentes de outros elementos de outros modelos N o se considera aqui a representa o duplicada do mesmo conceito em diagramas distintos que tratada trivialmente pelas ferramentas CASE Estas depend ncias podem ser apenas sem nticas sem que exista qualquer rela o sint ctica entre os dois conceitos Nestes casos a ferramenta necessita de interven o humana para conseguir determinar este tipo de depend ncias e Intramodelos Dentro de um modelo podem existir rela es de depend ncia entre diferentes elementos do modelo Por exemplo no diagrama de sequ ncia uma mensagem para um objecto deve corresponder defini o de uma opera o na classe correspondente do diagrama de classes Esta depend ncia pode ser verificada automaticamente sem grande dificuldade ma
49. Anexo I No mesmo metamodelo existe um conjunto comum de conceitos a diversos fornecedores externos simplificados e g MS Access Oracle O proprio c digo gerado constitui um grupo de artefactos que podem ser relacionados com o restante c digo all ReacT Workbench File Edit View Tools Windows Help BEEE NE RIE EI Repository Contexts SE Z Events Name i Location Atefacts BooksDB Database gt Traces Table Document Class Folder CAPen DriveWRe Folder uo x CAPen Diver Figura 4 5 Definic o de um contexto atrav s de um fornecedor externo no ReacT Workbench Como seria de esperar o ReacT Workbench envolve uma defini o de conceitos em conformidade com o ReacT MDD sendo por isso uma implementa o v lida Por outro lado apesar de o ReacT Workbench ser uma ferramenta tem igualmente caracter sticas de uma framework visto permitir a sua extens o atrav s do reconhecimento de um conjunto vari vel de fornecedores externos A definic o de rastos pressup e a identificac o dos artefactos atrav s dos seus conceitos Ap s os artefactos estarem dispon veis para serem relacionados estes s o escolhidos Figura 4 6 e Ihe atribu do uma descric o que permite documentar o rasto entretanto criado Caso os fornecedores externos sejam suficientemente bem definidos i e a sua implementa o contenha as ac es consideradas necess rias para um
50. Este processo explicado com maior detalhe no Anexo H Parsers A an lise de diferen as o processo atrav s do qual poss vel saber que existem diferen as entre os artefactos actualmente existentes e aqueles que existiam desde que o sistema foi considerado pela ltima vez em estado coerente Para cada diferen a encontrada criado um evento que representa a ac o sobre o artefacto respectivo existente ou j inexistente P g 77 4 Framework ReacT MDD Neste capitulo s o abordados alguns aspectos tecnoldgicos considerados relevantes As propostas apresentadas resultam da verifica o pr tica dos conceitos introduzidos no cap tulo anterior A cria o da framework ReacT MDD representa uma extens o ao modelo QVT no que diz respeito implementa o da rastreabilidade entre artefactos apresentado um prot tipo aplicacional denominado ReacT Workbench que permitiu validar a abordagem 4 1 Introdu o A framework ReacT MDD envolve diferentes n veis de especifica o consoante a descri o est mais pr xima ou mais afastada da implementa o e Especifica o conceptual A especifica o conceptual foi realizada no Cap tulo 3 atrav s da descri o dos conceitos envolvidos e das suas rela es e propriedades e Especifica o arquitectural Representa uma descri o dos tipos de elementos tecnol gicos existentes e das suas rela es bem como das actividades que de forma gen rica s o n
51. In Action Jack Herrington Manning Pub Co 2003 Hilliard 07 All About IEEE Std 1471 David Hilliard http www iso architecture org ieee 1471 docs all about ieee 1471 pdf Junho de 2007 H chmuller et al 01 CASE Tools A Framework for Assessment and Evaluation E H chmuller R T Mittermeir E Kofler H Steinberger http citeseer ist psu edu 472173 html 2001 Hnatkowska et al 04 On understanding of refinement relationship Bogumila Hnatkowska Zbigniew Huzar e Lech Tuzinkiewicz UML2004 Seventh International Conference on UML Modeling Languages and Applications Lisbon Portugal Outubro de 2004 Hutchings i Introduction to Methodologies and SSADM Tim Hutchings http www comp glam ac uk pages staff tdhutchings chapter4 html Hussman et al 00 Modular Architecture for a Toolset Supporting OCL Hussman Demuth e Finger Proceedings of UML 2000 Springer Verlag 2000 IEEE 92 IEEE Std 1209 1992 IEEE Recommended Practice for the Evaluation and Selection of CASE Tools IEEE http standards ieee org 1992 livari 96 Why Are CASE Tools Not Used Juhani livari Communications of the ACM Vol 39 N 10 Pags 94 103 Outubro de 1996 ISO IEC 95 Information technology Guideline for the evaluation and selection of CASE tools ISO IEC 14102 1995 ISO IEC Technical Committee JTC 1 SC 7 ISO Standards 1995 Jackson 75 Principles of Program Design Michael Jackson Academic Press 1975 Jacobson 92 Obj
52. Manual Especificac o de Requisitos Modelo Conceptual Modelo L gico Modelo F sico Sistema de Informac o Automatizado CommentCaMarche 08 O Merise foi a metodologia com a sua notac o original mais usada em Franca tendo sido substitu da nos ltimos anos por metodologias orientadas por objectos e pela notac o do UML Embora existam rela es impl citas entre diferentes artefactos produzidos em cada uma das etapas a falta de ferramentas CASE suficientemente evolu das condicionou o tratamento da rastreabilidade transformando o numa tarefa essencialmente manual Information Engineering A metodologia Information Engineering IE foi criada por James Martin considerado o pai das ferramentas CASE Computer Aided Software Engineering SCE i e de algumas t cnicas de RAD Rapid Application Development concretizadas numa metodologia denominada RIPP Rapid Iterative Production Prototyping em meados da d cada de 1980 A metodologia IE aborda o sistema de informa o atrav s de tr s vis es dados processos e tecnologia ao longo de quatro n veis ou fases planeamento an lise concep o e implementa o A IE pode ser expressa atrav s da conhecida Pir mide do Sistema de Informa o Martin 89a e foi criada para o desenvolvimento de grandes e complexos sistemas de informa o em que a troca de informa o entre as partes do sistema uma caracter stica essencial A informa o j tinha um papel fundamental nas
53. Mathematics Deakin University Australia http citeseer ist psu edu 182672 html 1993 Bell 08 Software Development Amidst the Whiz of Silver Bullets Alex E Bell Communications of the ACM Vol 51 Nr 8 Agosto de 2008 P g 105 Berard i Information Technology Management Edward V Berard The Object Technology http www itmweb com essay553 htm Bettin J et al 03 Generative Model Transformer An Open Source MDA Tool Initiative OOPSLA http www softmetaware com oopsla2003 pos10 bettin pdf 2003 B zivin 98a Who s Afraid of Ontologies Jean B zivin OOPSLA 98 Workshop on Model Engineering Methods and Tools Integration with CDIF Vancouver 1998 B zivin 98b The sBrowser A Prototype Meta Browser for Model Engineering OOPSLA 98 Workshop on Model Engineering Methods and Tools Integration with CDIF Vancouver 1998 Blumhardt 09 Hosting the NET Composition Primitives Nicholas Blumhardt Microsoft Corporation http mef codeplex com Project Download FileDownload aspx Downloadld 62133 2009 Boive et al 01 UML CASE Tool Review Tom Boive e Peter Ord n Aland s Institute of Technology ATL Mariehamn Finland May 2001 http www ie inf uc3m es ggenova pfc OrdenBoive2001 html Booch 94 Object Oriented Analysis And Design With Applications Second Edition Grady Booch The Benjamin Cummings Publishing Company Inc 1994 Bopearachchi 02 Structuration Des Connaissances Par La M thode HBDS H
54. Podem ser tomadas diferentes opc es quanto a aspectos t o importantes como transac es reposit rio de dados c lculo concorrente e quanto rastreabilidade dos artefactos produzidos Este ltimo aspecto central a este trabalho sendo desenvolvido no cap tulo seguinte 2 5 Coment rios Finais O QVT n o a nica proposta existente no campo da transformac o de modelos aplicando metamodelac o Existem outras como o Tropos Perini et al 05 RM ODP Akehurst 04 DSMDA Agrawal 03 CDIF EXPRESS Davis 98 sNets B zivin 98b Lemesle 98 VMTS Levendovszky 04 menos abrangentes ou com menor aceitac o pela ind stria Sendo esta uma rea de investigac o ainda sem consenso quanto ao rumo a seguir tem se verificado uma evoluc o dos conceitos referentes transforma o de modelos A pr pria metamodelac o pode ser enquadrada P g 54 na rea das ontologias B zivin 98a Existem ainda linguagens com um mbito semelhante ao QVT que usam diferentes aproximac es ao problema e g Epsilon Rose et al 08 usa templates para realizar as transformac es ap s percorrer os elementos dos modelos No que diz respeito execu o de transforma es sobre modelos esta produz rela es entre elementos do modelo fonte e elementos do modelo alvo Algumas aproxima es permitem realizar a rastreabilidade at certo ponto e g CDI IOPT enquanto outras assumem que estas rela es s o semelhantes a quaisquer outr
55. SetName string name gt Attribute name Fill String pathName gt lt Operations gt lt AssociationTo gt lt Association name Tables gt lt AssociationTo gt lt ModelClass gt lt ModelClass name DataType gt lt Attributes gt lt Attribute name Name gt lt Attributes gt lt Operations gt lt Attribute name SetName string name gt Attribute name Fill String pathName gt lt Operations gt lt ModelClass gt Model Ao mesmo tempo que o c digo anterior gerado igualmente criado um conjunto de classes C que funcionam como estrutura b sica para a implementac o das funcionalidades do fornecedor externo Assim enquanto o c digo XML gerado permite documentar as estruturas de dados que s o P g 172 usadas constitui igualmente uma fonte para os outros componentes e g o motor de rastreabilidade conhecerem a estrutura dos fornecedores externos criados Sendo igualmente um resultado desta gerac o os esqueletos das classes criadas s o artefactos operacionais ao servirem de base para a implementac o dos fornecedores externos Reproduz se em seguida o c digo gerado por um outro template de gerac o Note se que neste caso a classe representada Database visivel do exterior do forncedor externo tendo o atributo de compilac o respectivo Export typeof ReacTContracts ProviderContract public class Database ReacTContracts ProviderContract List lt String gt op
56. Uma biblioteca cont m defini es que podem ser reutilizadas pelas transforma es Pode definir tipos espec ficos e pode definir opera es e g opera es de consulta ou construtores das metaclasses Uma biblioteca importada atrav s de uma das duas formas dispon veis de importa o access ou extension A biblioteca de base do QVT denominada Stdlib n o necessita de ser explicitamente importada nas defini es das transforma es A declara o seguinte define uma bilbioteca denominada MyUmiFacilities a qual engloba uma lista de opera es de pesquisa em modelos UML library MyUmlFacilities UML query UML Class getAllBaseClasses Set Class query UML Element getUsedStereotypeNames Set String A declara o seguinte ilustra a utiliza o da mesma biblioteca no contexto de uma transforma o UmlCleaning P g 133 transformation UmlCleaning inout umlmodel UML14 extends MyUmlFacilities UML14 access MathUtils var allSuper Set Class a global variable main allSuper umlmodel objectsOfType Class collect ili getAllBaseClasses A transforma o UmlCleaning extende a biblioteca MyUmlFacilities o que significa que todas as opera es definidas na biblioteca funcionam como se tivessem sido definidas localmente na transformac o O tipo de modelo UML14 uma vari vel local sendo ligado vari vel UML da biblioteca MyUmlFacilities No exemplo acima foi
57. altera es nos diagramas pretendidos No entanto naquilo que diz respeito ao problema em causa o fornecedor implementado mostrou se suficiente para que se consiga analisar a coer ncia entre os diversos artefactos e avisar o utilizador quando necess rio tomar alguma medida PIM Elo Ez Diagrama PIM2 Diagrama PSM1 NENE Classes CH C digo MSIL Figura 5 4 Artefactos produzidos e as suas rela es Foi definida a rela o QVT que representa a depend ncia entre o conceito de composi o em UML e a implementac o proposta em CH relation UMLComposition2CSharpClasses checkonly domain umlEAClassDiagramPSM1 comp Composition S source EAClass name nl t target EAClass name n2 checkonly domain cSharpPSM1 c Class name n2 att list Variable name nl s type List nl gt Pag 89 Adicionalmente foram acrescentados dois eventos que permitem monitorizar as altera es produzidas sobre o referido diagrama de classes bem como sobre as classes CH event domain umlEAClassDiagramPSM1 d Diagram actionType ActionTypes CRUD event domain cSharpPSM1 c Class actionType ActionTypes CRUD Embora com limita es inerentes a um prot tipo aplicacional foi atingido o objectivo de relacionar os diversos artefactos quanto sua coer ncia O exemplo descrito ap s altera es nos diagramas ou no c digo comporta se como um nico a
58. atrav s de modelos neste caso UML Os criados pelo utilizador est o descritos em tr s metamodelos Modelo de Dominio PIM Modelo da Aplicac o PSM e Modelo do C digo sendo o primeiro o de maior n vel de abstrac o e o ltimo o de menor O Modelo de Dom nio transformado no Modelo da Aplicac o que define a arquitectura da aplicac o baseada numa certa tecnologia Posteriormente o Modelo Aplicacional transformado no Modelo do C digo Os metamodelos podem ser criados modificados ou estendidos usando um editor gr fico Esta ferramenta uma das implementa es mais completas do MDA existentes no mercado Nucleus BridgePoint Accelerated Technology Ferramenta CASE espec fica para sistemas de tempo real Come a por se definir um PIM que em seguida marcado com detalhes de implementa o Este modelo serve ent o para a gerac o de c digo C ou C Utiliza um perfil do UML denominado xtUML Inclui uma action language que permite uma gerac o de 100 do c digo do programa assim como o debugging das aplica es geradas Como o contexto reduzido aplica es de tempo real os P g 116 modelos juntamente com a action language traduzem todos os aspectos do problema assim como os detalhes de implementa o A aplica o utiliza apenas diagramas de classes UML diagramas de actividades e o c digo da referida linguagem ignorando todos os outros diagramas UML Power Designer Sybase E um conjunto de ferramentas que com
59. atyc A 6 Embora seja poss vel considerar rela es de coer ncia entre mais de dois conjuntos de artefactos estas podem ser descritas por um conjunto de rela es simples entre dois conjuntos de artefactos Por sua vez de forma a simplificar a definic o dos conceitos subsequentes ser o consideradas normalmente rela es de coer ncia que envolvem apenas dois artefactos Quando dois artefactos a e a possuem uma relac o de coer ncia esta pode ser usada para definir um rasto simples Vrie R Jax ay A r ax ay amp Em ax O Enlay sendo R V x V gt true false 7 ea a e pode ler se como o rasto simples r entre os artefactos a e ay est definido pela relac o de coer ncia E a En a e o seu valor para esses artefactos num dado momento true se a avalia o das duas express es E a e E ay resulta em valores id nticos ou false caso contr rio necess rio distinguir a express o do seu valor depois de esta ser avaliada Para tal considera se como defini o de Em a sequ ncia dos s mbolos de um vocabul rio organizados segundo uma certa ordem e sujeitos a uma sintaxe que define a express o A formaliza o da sintaxe de uma linguagem de express es sai do mbito deste trabalho tendo sido estudada em numerosos trabalhos Aho 06 Em consequ ncia o valor da avalia o de Em diferente da sua defini o sendo esta identificada por D Em Os artefactos que fazem parte da rela o
60. avaliada sobre um tipo inteiro Por outro lado as duas partes da transforma o LHS e RHS podem ou n o estar separadas sintacticamente mais comum que estejam separadas ocorrendo a transforma o sobre diferentes metamodelos As regras de transforma o podem ou n o ser bidireccionais se a aplica o da transforma o inversa resultar no conjunto inicial Pode igualmente ser necess rio criar estruturas interm dias transforma o e g VIATRA Varro 02 e GreAT Agrawal 03 usualmente quando o LHS e o RHS se referem ao mesmo modelo O mbito de aplica o das regras de transforma o permite restringir as partes do modelo que participam na transforma o Algumas abordagens suportam mbitos flex veis no LHS e g XDE e GreAT onde se pode limitar a transforma o a um mbito mais reduzido que o do modelo fonte completo Esta caracter stica pode ser importante para o desempenho da transforma o No que diz respeito rela o entre modelo inicial e modelo alvo algumas abordagens requerem a cria o de um novo modelo alvo que tem de ser diferente do modelo inicial e g AndroMDA Noutras abordagens o LHS e o RHS referem se sempre ao mesmo modelo e g VIATRA GreAT fazendo com que a transforma o seja dentro do modelo Existem ainda outras abordagens e g XDE que permitem que o modelo alvo seja existente ou j existente Se o modelo alvo 4 n E a E x Na verdade poss vel conceber uma trans
61. c2 a3 a4 gt do modelo de inst ncias da Figura 2 22 correspondem ao padr o Pattern cl Class al Set Attribute 11 attrs cl al where TRUE Note se que os padr es t m de ter pelo menos um elemento N o v lida por isso uma defini o vazia de um padr o Igualmente s s o admitidas colec es de primeira ordem i e os elementos Class name Class do padr o n o podem ser conjuntos de conjuntos PropenyTempiatenom e ObjectTempla eExp PropertyTemolateltem X P4 Tbe P d N VariableExp Property name attribute name X name name ObjectTempla eExp name Attribute Property PropertyTemplateltem OCL model for name name X Y Figura 2 24 Exemplo de inst ncia de um padr o Quanto ao metamodelo das express es de templates pode dizer se que uma express o de template de objectos constitui o modelo para um elemento do padr o com o seu tipo como classe referenciada Da mesma forma uma express o de template de colec o realiza o modelo de um elemento do padr o cujo o tipo a colec o da classe referenciada Por sua vez um item de template de propriedade ligando duas express es de templates de objectos realiza o modelo da liga o P g 53 A parte do padr o que diz respeito ao predicado uma conjun o das seguintes express es e Uma express o da forma referredPro
62. com a palavra intermediate intermediate class LeafAttribute intermediate property UML Attribute extravalue String As propriedades que s o propriedades de configurac o s o declaradas usando o qualificador configuration P g 150 configuration property UML Attribute MAX_SIZE String Library Uma biblioteca um agrupamento de opera es e defini es de tipos que s o juntos para poderem ser reutilizados posteriormente A QVT Standard Library um exemplo de biblioteca excep o desta todas as outras bibliotecas t m de ser explicitamente importadas Uma biblioteca pode ser declarada como caixa preta neste caso n o dada uma implementa o s suas opera es Uma biblioteca pode declarar uma lista de tipos de modelos sobre os quais pode operar Esta lista constitui a assinatura da biblioteca Sintacticamente uma Library uma subclasse de Module sendo por isso subclasse de Class e de Package A nota o para definir uma biblioteca similar nota o usada para definir uma transforma o excepto que deve ser utilizada a palavra reservada library em vez de transformation A assinatura da biblioteca neste caso uma lista de tipos de modelos em contraste com as transforma es onde a assinatura composta de par metros de modelos A declara o seguinte define uma biblioteca chamada UmlUtilities que estende a biblioteca BasicUmlUtilities tendo uma assinatura formada por um tipo de
63. com uma vis o geral sobre as diferentes arquitecturas ambientes e linguagens presentes na organizacdo O Together Designer a ferramenta utilizada para a construc o dos diagramas UML necess rios an lise do sistema de informa o O Together Developer uma ferramenta de modela o centrada no c digo Esta aplica o possui a caracter stica nica de existir uma sincronizac o simult nea entre o c digo e as classes UML definidas A gerac o de c digo Java d se a partir dos Diagramas de Sequ ncia e dos Diagramas de Classes Est dispon vel a vers o do Together Developer para o IDE Eclipse e foi anunciada a exist ncia das vers es para Borland JBuilder e para Microsoft Visual Studio NET no ltimo caso gerando c digo CH Os dominios do Together Architect e do Together Designer sobrep e se cabendo ao utilizador entender qual a sua motiva o e escolher a ferramenta correcta para o seu caso UModel 2005 Altova Ferramenta CASE com capacidade de gerac o bidireccional de c digo Java a partir de modelos UML 2 0 A geracdo realizada nos dois sentidos de forma expl cita sendo que as opc es de sincronizac o t m de ser tomadas novamente cada vez que se faz uma gerac o directa ou inversa Visual Paradigm for UML Visual Paradigm uma ferramenta CASE dirigida para o desenho de diagramas UML e a gerac o de c digo Java Suporta gerac o bidireccional de c digo podendo ser integrada com outras ferramentas IDEs que s
64. correctamente A qualidade da sincroniza o depende da exactid o da defini o das rela es de coer ncia entre os artefactos 3 6 Perspectivas Relacionais e Generativas poss vel analisar os rastos entre artefactos segundo duas perspectivas que t m implica es muito diferentes Segundo a perspectiva relacional um dado conjunto de artefactos existe num determinado momento As rela es de coer ncia que v o sendo encontradas ao longo do tempo servem para definir os rastos entre eles Na perspectiva generativa os rastos definidos servem para criar novos artefactos a partir de meta rastos j definidos Nesta perspectiva os artefactos gerados existem para que o valor do rasto que lhes d origem seja verdadeiro A perspectiva generativa usa opera es de sincroniza o para criar modificar ou destruir artefactos Numa perspectiva generativa comum considerar se que determinados elementos s o gerados a partir de outros sendo substitu dos cada vez que se processa a gera o Algumas instancia es desta abordagem e g Vanhooff et al 05 usam anota es do modelo marcas de valor e estere tipos UML para manterem a informa o sobre a transforma o As referidas anota es servem de mnem nicas para chamar rotinas de transforma o predefinidas noutra linguagem 19 a RI S A q s a E Seguindo a defini o dada como a rastreabilidade diz respeito directamente aos artefactos da aplica o deveria dizer se os artefa
65. de bases de dados a partir dos diagramas entidade associa o O IE define o metamodelo de cada um dos artefactos produzidos sendo as rela es entre cada um dos elementos conceptuais presentes nos artefactos tratadas exaustivamente atrav s de tabelas Desde que sejam mantidas conven es de nomea o nos artefactos produzidos poss vel definir explicitamente rela es como Entidade tratada em Processo ou Fun o contribui para Objectivo A cria o de alguns artefactos de c digo e g estruturas de dados era conseguida atrav s de um processo de gera o autom tica no caso da ferramenta IEW ou eventualmente manual Assim considerando apenas os artefactos produzidos recorrendo se metodologia o IE estimulou a rastreabilidade embora sem ter tido as ferramentas autom ticas necess rias que a concretizassem na pr tica An lise Estruturada A An lise Estruturada AE na verdade um grupo de metodologias que inclui al m de outros diagramas o Diagrama de Fluxo de Dados Ed Yourdon desenvolveu estes diagramas no in cio da d cada de 1970 Yourdon et al 78 sendo este o instrumento conceptual fundamental da AE Alguns outros te ricos dos sistemas de informa o como Tom DeMarco respons vel pela AE Paul Ward e Steve Mellor criadores da An lise Estruturada de Tempo Real contribu ram para a cria o deste tipo de metodologias num per odo em que a modela o de sistemas de informa o se encontrava
66. descric o resumida dos aspectos t cnicos aqui se apresenta Genericamente uma aplicac o de rastreabilidade reactiva tem de possuir alguns componentes instanci veis em diversas tecnologias 20 Modelador Atrav s de uma interface gr fica a ferramenta permite constituir um conjunto de diagramas que representam os conceitos guardados num reposit rio comum segundo uma certa notac o Parsers A ferramenta possui um conjunto de parsers que permite constituir uma representa o pr pria de um conjunto de artefactos de texto existentes fisicamente em mem ria est vel Esta representac o obtida a partir de uma sintaxe definida para a linguagem em quest o Motor de metamodela o necess rio um componente que permita n o s definir os metamodelos necess rios a compreensdo dos artefactos conhecidos como relacionar os artefactos existentes com o tipo correcto de metamodelo O motor de metamodelac o pode ser ainda respons vel pela verifica o de conformidade dos modelos em rela o aos metamodelos O motor de metamodela o pode ainda ter associada a fun o de gerar artefactos de liga o entre os metamodelos criados e g XML e c digo correspondente Fornecedores Externos Os fornecedores externos permitem efectuar opera es sobre artefactos criados por outras aplica es Estes elementos tornam a framework compat vel com outras aplica es A defini o dos fornecedores externos deve ser levada a cab
67. dias A nota o semelhante de qualquer outra opera o imperativa exceptuando que devem ser usadas as palavras query OU helper sendo a ltima usada no caso em que a opera o provoca efeitos colaterais nas vari veis O corpo pode ser uma nica express o sem usar chavetas ou um conjunto de express es entre chavetas A declara o seguinte define uma fun o de selec o que devolve todas as classes derivadas de uma classe UML Neste exemplo o corpo n o est definido o que significa que a fun o tem uma implementa o caixa preta Esta fun o est definida na biblioteca UMLUtilities library UmlUtilities UML query Class getAllDerivedClasses Set Class Constructor Um construtor uma opera o que define a forma como se cria ou preenche as propriedades de uma inst ncia de uma dada classe Este conceito corresponde no o de m todo construtor das linguagens orientadas por objectos como Java ou CH Um construtor pode ser definido como uma opera o sobre uma classe a ser constru da ou pode ser perten a de um m dulo que realiza o papel de Factory da classe Um construtor pode ser definido no mbito de uma biblioteca de forma a poder ser reutilizado em diversas transforma es Um construtor uma forma de Refere se aqui o padr o Factory Gamma et al 94 onde existe uma classe que actua como construtora dos objectos de outra classe P g 155 factorizar o c digo necess rio para criar e
68. do modelo o correspondente e cada vari vel livre v ligada ao valor com o qual o lt predicate gt foi avaliado enquanto se realizava a compara o Pattern cl Class al Attribute Ade EELS Gl at where cl name X and al name X Y No exemplo anterior X e Y s o vari veis livres O nico sub grafo da Figura 2 22 que corresponde ao padr o c1 c1a1 gt Esta correspond ncia liga X com c1 e Y com al Os elementos de um padr o podem ser colecc es e g Set OrderedSet Bag e Sequence Se o tipo de e uma colec o do tipo lt classname gt ent o um sub grafo do modelo corresponde ao padr o se e s se 0 uma colec o de objectos do modelo com o tipo lt classname gt P g 52 N o existe nenhuma colec o de objectos do modelo de tipo lt classname gt denominada o tal que cada o uma sub colecc o de o e cada substitui o de o por o satisfa a o outro crit rio de comparac o Se lt assocname gt em ej uma liga o no padr o e o tipo de em lt classname gt ent o cada elemento de o deve estar ligado a o pela associa o lt assocname gt Se assocname e e uma liga o no padr o e o tipo de em tamb m um conjunto de classname ent o cada elemento de e deve estar ligado a cada elemento de o tem de estar ligado a cada elemento de o pela associa o lt assocname gt No exemplo seguinte os dois sub grafos c1 c1a1 a2 gt e
69. escrito atrav s de uma linguagem de programa o textual e g BNF Aho 06 Mesmo quando se recorre a um editor gr fico para desenhar algumas partes da aplicac o como a interface gr fica na verdade todas as ac es correspondem a alguma manipula o de texto no c digo do programa produzido Para que o programa possa ser compilado ou emulado necess rio criar se uma representa o do c digo fonte segundo as regras da linguagem de programa o Esta representa o usualmente conseguida atrav s de um conjunto de estruturas de dados que produzem um grafo em rvore do programa Esta fase da compila o corresponde an lise do c digo fonte sucedendo se ent o a sua s ntese para a linguagem alvo eventualmente a linguagem m quina P g 168 Nalguns casos esta representac o em arvore pode servir inclusiv para o programa ser colocado a funcionar Os programas escritos em linguagens interpretadas funcionam atrav s de uma aplicac o o interpretador que pode criar uma representa o em rvore directamente do c digo fonte servindo para que sejam desencadeadas as acc es pretendidas Existem diversos elementos neste componente que s o relevantes para o caso de estudo O primeiro elemento realiza a an lise lexical do c digo atrav s de uma gram tica da linguagem Nesta fase a cadeia de caracteres que serve de input partida em pedacos tokens que s o as palavras reservadas constantes identificadores
70. etc devem ser leg veis tanto quanto poss vel i e as transforma es devem usar uma nota o simples de escrever e de ler tanto no que diz respeito ao texto como aos diagramas produzidos Caracter sticas da modela o orientada por objectos como a heran a a composi o e a agrega o devem ser poss veis de utilizar dentro das pr prias defini es do QVT Deve ser poss vel realizar uma composi o de duas ou mais transforma es de forma a produzir se uma transforma o mais complexa As transforma es podem igualmente existir entre diversos n veis de abstrac o tal como podem existir diversos n veis de abstrac o para uma transforma o Assim sendo necess rio que exista um mecanismo de generalizar e especificar transforma es Deve tamb m ser permitido reutilizar transforma es seja no mesmo projecto ou noutros Em Novembro de 2005 a OMG adoptou uma vers o final do QVT OMG 05a cujos os conceitos essenciais s o explicados em seguida 2 4 1 Arquitectura do QVT A especifica o do QVT tem uma natureza declarativa a par de uma natureza imperativa A parte declarativa est dividida numa arquitectura de dois n veis que consistem em e Um metamodelo denominado Rela es Relations e uma linguagem ambos suportando o mapeamento de padr es de objectos e os templates de cria o de objectos Os rastos entre elementos do modelo envolvidos numa transforma o s o criados implicitamente e Um N
71. g atrav s de um SGBD em ficheiros de formato propriet rio em ficheiros XML e disponibilizado consoante a ferramenta permite o acesso ao reposit rio por diversos utilizadores ou apenas por um nico A ferramenta CASE pode por isso ter de gerir o acesso informa o de uma forma transaccional considerando a possibilidade de as altera es estarem a ser feitas concorrentemente por diversos utilizadores A gest o do reposit rio comum pode igualmente tratar aspectos como a seguran a e g criando perfis de utilizadores n veis e tipos de acesso ou a interac o com outras fontes de informa o e g importa o e liga o a ficheiros com dados criados por outras ferramentas Uma ferramenta CASE trata um conjunto de elementos conceptuais que podem ser gr ficos ou textuais segundo uma ou mais nota es Usualmente a ferramenta trata apenas uma linguagem de modela o que nos ltimos anos tem sido cada vez mais o UML ou um subconjunto desta No caso de uma linguagem extensa e com revis es constantes como o caso do UML pode acontecer que uma ferramenta CASE n o trate todos os elementos da linguagem apenas os considerados mais importantes A cria o dos diagramas feita atrav s de um editor gr fico com maiores ou menores potencialidades para cada tipo de diagrama Usualmente estes editores n o permitem a inclus o de elementos estranhos a cada diagrama obrigando o utilizador a seguir as normas da linguagem Evidentemen
72. in uml SimpleUML out rdbms SimpleRDBMS VarParameter Um par metro de vari vel um conceito abstracto que introduzido para permitir referir se aos par metros da mesma forma que as vari veis sdo referidas especificamente em express es OCL Sintacticamente um VarParameter um Parameter MOF que tamb m uma Variable DirectionKind Um g nero de sentido um tipo enumerado que cont m os tipos de sentidos poss veis para os par metros i e in out inout ImportKind Um g nero de importac o um tipo enumerado que cont m os valores poss veis para a sem ntica da importac o de modelos i e access extension A Figura E 2 representa os conceitos que est o relacionados com a defini o de opera es imperativas e propriedades contextuais P g 153 0 1 operation ownedParameter ordered 0 1 y A ctxOwner ovembiiden 0 1 contextualProperty 0 1 il 4 context im VarParameter perativeOperation ContextualProperty j E x overiding isBlackbox Boolean kind DirectionKind 0 0ve idden e Owner result ordered EntryOperation contentOwner 0 1 content diguncter ordered x di MappingParameter refiningPa ameter endSection fordefed ordel red inheriting refiningOperation er inherited refinedRelation di re E refinedDp ain init
73. lt Operations gt foreach string s in getOperations modelClass Attribute name lt s gt Operations if modelClass Targets Count 0 lt AssociationTo gt Get links to other metaclasses foreach Association association in Association GetLinksToTargets modelClass if association TargetMultiplicity ToString ZeroMany association TargetMultiplicity ToString OneMany gt lt Association name lt association Target Name gt s gt lt else d Association name lt association Target Name gt gt lt gt lt AssociationTo gt lt d ModelClass lt gt lt Model gt d private static System Collections Generic List String getAttributes ModelClass modelClass List lt String gt list new List lt String gt foreach ModelAttribute att in modelClass Attributes list Add att Name if modelClass Superclass null list AddRange getAttributes modelClass Superclass return list private static System Collections Generic List lt String gt getOperations ModelClass modelClass List lt String gt list new List lt String gt foreach Operation att in modelClass Operations 1 list Add att Name if modelClass Superclass null list AddRange getOperations modelClass Superclass return list P g 171 gt Ap s o template ser executado
74. m todo A no o de rastreabilidade de artefactos est impl cita aplica o do MPE visto que cada artefacto depende dos artefactos produzidos numa fase precedente O artefacto final eventualmente o c digo o resultado de uma sequ ncia de transforma es sobre os artefactos anteriores Se forem respeitadas conven es de nomea o dos conceitos intervenientes poss vel identificar rela es entre elementos dos modelos em diferentes artefactos Structured Systems Analysis and Design Methodology Em 1981 o Governo do Reino Unido prop s se a iniciar uma informatiza o em grande escala do seu servi o p blico at a com predomin ncia de processos manuais Foi ent o solicitada Central Computing and Telecommunications Agency CCTA que criasse uma metodologia de an lise e concep o de sistemas de informa o padr o a ser aplicada em todos os projectos da administra o p blica de sistemas de informa o Hutchings i A LBMS criou para a CCTA o SSADM Structured Systems Analysis and Design Methodology que rapidamente foi estudado e adoptado por diversos intervenientes da ind stria de desenvolvimento p blicos e privados O SSADM inclui uma nota o para diversos diagramas que facilitam a especifica o precisa de requisitos e a an lise e concep o de sistemas de informa o tendo como preocupa o o entendimento por parte tanto do produtor como do cliente desses mesmos diagramas A metodologia inclui a realiza
75. melhores produtos devem ser escolhidos combinando os objectivos e requisitos com a an lise da matriz Em Le Blanc et al 92 usam se tr s fases para seleccionar a melhor ferramenta CASE para uma dada organiza o Inicialmente listam se as ferramentas existentes e reduz se essa lista para um n mero reduzido idealmente dois ou tr s produtos a partir de um conjunto de crit rios funcionais muito espec ficos metodologia adoptada pela organiza o Essa selec o pr via depende de P g 122 caracter sticas que as ferramentas podem ou n o possuir Consoante o n mero e o tipo caracter stica impeditiva ou n o das respostas negativas o produto exclu do Na segunda fase parte se da lista reduzida e refina se os crit rios de avalia o obt m se informa o mais detalhada da ferramenta CASE e finalmente avalia se os finalistas escolhendo a melhor alternativa Os crit rios de avalia o s o desenvolvidos dentro de quatro categorias 1 requisitos t cnicos do CASE 2 requisitos funcionais do CASE 3 documenta o e aprendizagem e 4 informa o comercial Na terceira fase denominada de confirma o a equipa produz alguns produtos e verifica a reac o dos utilizadores Os coment rios dos utilizadores podem levar a uma altera o dos requisitos de avalia o e mesmo escolha de uma nova ferramenta existindo a sua substitui o pela actual ou a sua adi o s ferramentas usadas consoante seja necess rio
76. modelo UML1 4 library UmlUtilities UML1_4 extends BasicUmlUtilities UML1_4 access MathLibrary Module Um m dulo uma unidade contendo um conjunto de opera es e de tipos definidos para operar em modelos Este conceito define atributos comuns partilhados por transforma es operacionais e bibliotecas Sintacticamente um Module uma subclasse de Class Package Sendo uma class pode definir propriedades e opera es Sendo um Package pode definir e conter tipos espec ficos para serem usados na defini o do m dulo ModuleImport uma importa o de m dulo representa a utiliza o de um m dulo atrav s de uma das duas sem nticas de importa o poss veis Com a sem ntica extension a importa o do m dulo semelhante a definir as opera es e os atributos do m dulo importado no pr prio m dulo Assim uma opera o ou uma propriedade do m dulo importado s o considerados como fazendo parte do m dulo importador sendo esta sem ntica semelhante da extens o de classes Com a sem ntica access as defini es do m dulo importado n o s o herdadas pelo m dulo importador Neste caso tem de ser usada uma inst ncia do m dulo importado para se aceder a estas defini es No caso do acesso a uma biblioteca uma inst ncia do m dulo importado fica implicitamente dispon vel Quando o m dulo n o uma biblioteca a inst ncia que est a ser acedida pelo m dulo deve ser criada explicitamente Dois nomes id ntico
77. o 115 Anexo B Avalia o de ferramentas CASE s sscccsssssccssssssceecesssecessssccessssseceeesssaceeesssseeeessseees 122 Anexo C Sintaxe abstracta do OV 1 sicssccccisssceicscsscoccsdctandecvsteassansevasdeccadenucdesvccdctees duo ase dont ndo inae seen da 127 Anexo D Linguagem de mapeamentos operacionais do QVT cccccscssssessseeceeceesssssssssceseeeeeeees 132 D 1 Transforma es Operacionais e Tipos de Modelos sese 132 D 2 Bibliotecas die Te hee ete n Le d e tei EC a p E debeat den 133 D 3 Opera es de MAPCAMENLO cccceccessescesseeseesseesceeeceeeceeeeeeeeeeeeeceeeeeeeeeeeeesaeeeeeseeeseeaueeaeaees 134 D 4 Cria o de objectos e modifica o em opera es de mapeamento ococccccccnnnononnnnnnnnnnnnnn 135 D 5 Encadeamento e inclus o de opera es de mapeamento sse 136 D 6 Construtores 3 isca assita O ANN 137 D 7 FUN ES eterne sao tore det oe ra ere EA A AAA ana ena reader AAA 138 D 8 Tipos interm diOS t ettet a bai 138 D 9 Actualiza o de objectos e resolu o de refer ncias eese 139 D 10 Composi o de transforma es ccccccessessssecceecesceeseseeeceeceescessssseaeeseeeeessesseneaseaeeeeeees 141 D 11 Reutiliza o em opera es de MAPCAMENLO ccccccsceeccesccecceeccecccececeeeeeeeeeeesseseeeseeeaeeees 141 D 12 Disjun o de opera es de mapeamento
78. o UML reconhecidamente a linguagem padr o para a modelac o de sistemas de informac o O MDA divide o sistema em quatro n veis Figura 2 7 e Modelos independentes da computa o Computation Independent Models CIM S o especifica es de requisitos nos quais n o existe qualquer op o tecnol gica seja ela de hardware ou software Estes modelos s o uma descri o da situa o em que o sistema usado assim como dos requisitos necess rios sua execu o Os modelos CIM englobam aquilo a que na metodologia nformation Engineering de James Martin se chama de modelos de Planeamento As especificac es neste n vel s o expressas atrav s de diagramas em vez de texto aproveitando se a sua sem ntica mais rigorosa no entanto sem ser formal e Modelos independentes da tecnologia Platform Independent Models PIM S o descri es do sistema sem serem tomadas decis es quanto tecnologia envolvida seja ela de hardware ou software Esta decis es nem sempre sdo reconhecidas muito facilmente Tome se como exemplo um diagrama de tabelas relacionais Apesar de n o estar indicada nenhuma tecnologia partida foi escolhido j um tipo de tecnologia neste caso os sistemas de bases de dados relacionais estar amos a afastar a hip tese de o sistema poder conter uma base de dados orientada por objectos ou hier rquica Um modelo independente da tecnologia dever s lo n o s expl cita como implicitamente isto podend
79. o determinam a ordem pela qual as regras individuais s o aplicadas Os mecanismos de agendamento podem variar segundo quatro tipos e Forma O agendamento pode ser expresso implicitamente ou explicitamente O primeiro faz com que o utilizador n o tenha interven o no algoritmo de agendamento e g BOTL OptimalJ A nica forma pela qual o utilizador pode influenciar o agendamento definindo padr es e a l gica das regras para garantir uma certa ordem de execu o e g se uma regra verifica a exist ncia de um resultado que apenas outra regra produza a sequ ncia garantida O agendamento expl cito envolve a exist ncia de estruturas de controlo definidas numa linguagem de tratamento das transforma es O agendamento expl cito pode ser ainda interno ou externo No agendamento externo existe uma separa o clara entre as regras e a l gica do agendamento e g no VIATRA Varro 02 o agendamento das regras realizado atrav s de uma m quina de estados finita Em contraste o agendamento interno um mecanismo que permite a uma regra invocar directamente outras regras e g diversas abordagens baseadas em templates e Selec o de regras As regras podem ser seleccionadas atrav s de uma condi o expl cita e g Jamda de uma escolha n o determin stica e g BOTL ou interactivamente e g XDE Poder ser interessante implementar ainda um mecanismo de resolu o de conflitos resultante da selec o de regras
80. o dos resultados A sec o de preenchimento usada para preencher os resultados e a sec o de finaliza o usada para definir c lculos finais que sejam realizados antes da sa da do corpo Existem igualmente tr s mecanismos de reutiliza o e composi o associados s opera es de mapeamento Uma opera o pode herdar de outra o que siginifica invocar a sec o de inicializa o da opera o herdada depois de executar a sua pr pria sec o de inicializa o Uma opera o de mapeamento pode tamb m fundir outras opera es o que significa invocar as opera es fundidas ap s a sec o de finaliza o Uma opera o pode tamb m ser definida como uma disjun o de outras opera es i e selecciona se entre o conjunto de mapeamentos disjuntos o P g 156 primeiro que satisfaz a condic o when e realiza se a sua invocac o Em seguida define se a sem ntica da execu o das opera es de mapeamento segundo um conjunto de casos Execu o de uma opera o de mapeamento Uma opera o de mapeamento pode declarar um par metro contextual estendendo nesse caso o seu tipo Realizar o mapeamento significa encontrar a opera o para chamar com base no tipo do objecto que serve de fonte vari vel self Depois de se resolver a chamada da operac o passado um tuplo com todos os par metros do mapeamento O par metros incluem nesta ordem o par metro de contexto caso exista os par metros de entrada e os par m
81. os ambientes de programa o come aram a integrar diversos compiladores o que permite utilizar o mesmo editor e a mesma interface gr fica para programar em diversas linguagens e g Microsoft Visual Studio NET Eclipse As ferramentas CASE Computer Aided Software Engineering um outro tipo de aplica es foram criadas com o intuito de facilitarem o desenho e a manuten o dos diferentes artefactos e g diagramas texto inerentes s metodologias de desenvolvimento de sistemas de informa o existentes Al m de auxiliarem o desenho dos sistemas de informa o nas suas diversas vertentes estas ferramentas permitem a utiliza o de um reposit rio comum de informa o que elimina a redund ncia e facilita a actualiza o autom tica dos artefactos produzidos e g relat rios esquemas de bases de dados peda os de c digo de linguagens de programa o Consoante as ferramentas CASE est o mais ou menos pr ximas das linguagens de programa o isto as suas actividades est o associadas implementa o propriamente dita s o designadas por Lower ou Upper CASE respectivamente Os Upper CASE est o mais vocacionados para as actividades de alto n vel i e desenho dos diagramas geradores de documenta o a partir do reposit rio comum ferramentas de an lise enquanto os Lower CASE suportam a implementa o e g gerando c digo a partir de modelos e vice versa Actualmente as diferen as apontadas entre as ferramen
82. os artefactos entretanto alterados Em e verificada a lista de rastos existentes bem como os artefactos correspondentes Quando entretanto houve uma ac o sobre esse artefacto este acrescentado LAA e o processamento continua em a A decis o de sincroniza o c n o tendo efeitos pode levar a um estado de incoer ncia que tem de ser resolvido em e Quando a LAA est vazia o sistema voltou ao estado de coer ncia Pode ent o dizer se que todos os artefactos tratados s o genericamente coerentes conforme a defini o dada datastore datastore datastore datastore Gram ticas C Representa o em Lista de Diferen as Eventos Java etc rvore do programa input output Ne di id LN dd dd Produ o de eventos An lise de Diferen as input input datastore datastore Unidades de Modelos em Compilac o Fich Memoria C Java etc Figura 3 13 Metamodelo do processo de detec o de eventos O processo de detecc o de eventos Figura 3 13 ou seja a tomada de conhecimento da exist ncia de uma altera o ao sistema produz os dados necess rios para o tratamento de eventos anteriormente indicado O processo iniciado com a an lise sint ctica e lexical parsing do c digo existente e que produz uma representacdo do programa em rvore atrav s de um modelo de objectos
83. os compiladores todos eles com mais de 30 anos de investigac o e desenvolvimento No entanto a Engenharia Inform tica ainda est longe de atingir a maturidade relativa das Engenharia Civil ou da Engenharia Mec nica que t m uma hist ria mais alargada N o de estranhar por isso que o erro em maior ou menor escala esteja presente em grande parte dos projectos inform ticos actuais Este facto leva a que devam ser utilizadas t cnicas propiciadoras de uma acc o correcta naquilo que diz respeito a todas as condicionantes de um projecto de sistemas de informac o e g tempo custo qualidade risco de forma a conseguir resultados satisfat rios Neste trabalho s o abordadas t cnicas de Engenharia mas s o naturalmente reconhecidos outros tipos de t cnicas igualmente importantes para que um projecto possa ser considerado bem sucedido Dificuldades em reas como a Gest o de Recursos Humanos o Marketing ou a Gest o Financeira exteriores ao mbito deste trabalho podem ser respons veis directa ou indirectamente pelo sucesso ou insucesso dos projectos Por exemplo uma gest o financeira errada pode levar a que o projecto esgote o orcamento antes do previsto tal como uma campanha de marketing errada pode afastar o mercado esperado para um certo produto levando a que este n o seja vendido suficientemente e terminando o seu ciclo de vida antes do tempo esperado Por isso n o s o apenas necess rias t cnicas de Engenharia para o pro
84. os dois artefactos s o v lidos vre R a a val r a aj true 20 Yre R a ai val ro ayai true Um rasto r a ay pode ocorrer entre artefactos que realizam conceitos de um metamodelo e g classe C e tabela relacional Quando tal acontece diz se que r a a um meta rasto entre a e ay Nesse caso val o r a a dado pela verifica o simult nea do rasto sobre todas as realiza es de ambos os artefactos que cumprem a relac o de coer ncia Considera se ainda uma aplica o sobre um dado rasto r a a e denominada fun o peso de um rasto r de grau n e granularidade m W RXZXN gt Z Sendo indicada por W m r a aj onde n o grau da fun o peso e definida como o 21 n mero de artefactos envolvidos no rasto rj no nivel conceptual MDA correspondente ao da defini o somado com o grau da fun o peso Tome se e g um meta rasto entre cada classe UML e tabela de uma base de dados relacional que faz com que para cada classe tenha de existir uma e apenas uma tabela com o mesmo nome reR a ay e A x y i je N r a ay amp 22 Vaie classesuML 3 aj e tabelasRelacionais Nome a gt Nome a No exemplo anterior verifica se que val r false visto o nome do meta artefacto ser diferente No mesmo exemplo o valor interessante seria val o r que significa o valor do rasto entre os artefactos dependentes i e classes e tabelas relacionais no mesmo exemplo ainda poss vel
85. padr o tem a seguinte estrutura abstracta Pattern el lt classnamel gt e2 lt classname2 gt en lt classnameN gt ll lt assocl gt ei ej lm lt assocM gt eu ew where lt predicate gt Um padr o pode ser visto como um grafo onde os elementos do padr o e e en com tipos lt classname gt lt classname gt classnamey respectivamente s o os n s e as liga es do padr o ly lj lm s o as arestas Os predicados s o express es booleanas que se podem referir aos elementos do pr prio padr o Os predicados podem igualmente referir se a vari veis diferentes dos elementos do padr o estas s o as vari veis livres do padr o Um padr o usado para encontrar correspond ncias entre sub grafos num modelo Um sub grafo de um modelo consistindo em objectos 01 02 On corresponde ao padr o descrito se e s se e o dotipo classname ou um dos seus subtipos e o do tipo classname ou um dos seus subtipos e assim sucessivamente e oe o est o ligados por uma associa o lt assoc gt assim como o e ow est o ligados por uma associa o lt assocm gt e assim sucessivamente e Existe uma ou mais liga es dos valores para vari veis livres tais que lt predicate gt avaliado com o valor true quando refer ncias a e e s o substitu das por o o On respectivamente Uma vez que o padr o tenha sido correspondido cada e ligado ao objecto
86. para a fun o podendo ser usadas pela express o OCL que especifica a fun o Predicate Um predicado uma express o com valor l gico que existe num padr o especificada por uma express o OCL que pode conter refer ncias a vari veis do padr o que cont m o predicado Pattern Um padr o um conjunto de predicados e declara es de vari veis os quais quando avaliados no contexto de um modelo resultam num conjunto de liga es a vari veis Um outro package o QVTTemplate que inclui os conceitos relativos defini o de templates P g 128 Os conceitos presentes neste package s o os seguintes TemplateExp Uma express o de template especifica um padr o que aplicado aos elementos de um modelo candidato de uma transforma o O elemento que verifica o padr o pode estar ligado a uma vari vel que por sua vez pode ser referida noutra parte da express o Uma express o de template corresponde a uma parte de um modelo s quando a express o where que lhe est associada verdadeira Uma express o de template pode corresponder tanto a um nico elemento do modelo como a uma colecc o de elementos do modelo dependendo de ser uma express o de template de objecto ou uma express o de template de colec o e ObjectTemplateExp Uma express o de template de objecto ETO especifica um padr o que apenas pode corresponder a um Unico elemento do modelo Uma ETO tem um tipo correspondente sua cla
87. para representar transforma es dominios e padr es num novo tipo de diagramas diagrama de transforma o Uma rela o relaciona dois ou mais padr es sendo cada um deles um conjunto de objectos liga es entre eles e valores A estrutura de um padr o pode ser indicada atrav s de um diagrama de objectos Assim sendo o QVT parte deste tipo de diagramas e acrescenta algumas extens es notac o gr fica de forma a definir o diagrama de transformac o A Figura G 1 representa a relac o UML2Rel entre classes e atributos UML e tabelas e colunas do modelo relacional Foi introduzido o s mbolo 4 gt gt para representar a transforma o UML2Rel domain domain c Class t Table name n 1 RDBMS pee uml1 UML TT c ae a Attribute col Column name an name an Figura G 1 Rela o QVT entre uma Classe UML e uma Tabela Relacional As express es uml1 UML e r1 RDBMS indicam que esta relac o ocorre entre dois modelos candidatos uml1 e r1 cujos os packages UML e RDBMS representam os seus meta modelos respectivos A letra C em cada extremidade da relac o indicam que ambos os dom nios s o checkonly Caso um dos dominios deva ser marcado como enforceable deve utilizar se a letra mai scula E A Figura G 1 corresponde a seguinte descric o textual relation UML2Rel checkonly domain uml
88. preencher um objecto n o sendo necess rio declarar os par metros do resultado O nome do construtor usualmente o nome da classe que deve ser instanciada n o sendo no entanto obrigat rio que assim seja Podem existir construtores com diferentes nomes Por outro lado para criar um objecto n o necess rio criar uma opera o construtora Para cada classe quando n o esteja definido explicitamente existe um construtor definido por omiss o sem par metros e com o nome da classe A notac o para declarar construtores similar a notac o para declarar qualquer operac o imperativa excepto que usa a palavra reservada constructor e n o declara qualquer resultado O nome do construtor o nome do tipo do contexto e o seu corpo colocado entre chavetas A declara o seguinte define um construtor para a metaclasse Column constructor Column Column n String t String name n type t ContextualProperty Uma propriedade contextual uma propriedade que pertenca de uma transforma o ou de uma biblioteca mas definida como uma extens o ao tipo referido como sendo o contexto Estas propriedades s o acedidas da mesma forma que quaisquer outras propriedades do contexto referido A utiliza o deste tipo de propriedades particularmente til para definir propriedades interm dias como extens es a metaclasses envolvidas na transforma o Os dados interm dios s o criados temporariamente por uma transformac o para se r
89. promove se a altera o autom tica de artefactos documentais a partir de altera es ao c digo e vice versa Palavras chave UML MDD QVT Rastreabilidade Modela o ReacT MDD Abstract The MDD Model Driven Development approach favors the development of code starting at models eventually described by the UML language Not only the produced code but also the remaining artefacts are part of the solution at the development operation and maintenance stages However it is necessary a mechanism that allows traceability between all artefacts during all project stages not regarding its conceptual level The artefact coherence relations must be maintained and this task should be automatically accomplished as possible The QVT Queries Views Tranformations model defines model transformations using metamodelling It is proposed in this research work a complementar model to QVT dealing several issues about reactive traceability which is extensivelly defined This approach takes QVT as a starting point to accomplish the construction of automated transformations between models and implements a way of maintaining traces between artefacts models and code as well as reacting to changes for the sake of system coherence Keywords UML MDD QVT Traceability Modelling ReacT MDD Para a Rosinda Agradecimentos Ao Prof Doutor Alberto Rodrigues da Silva este trabalho deve a sua t o incans vel como sabia orientac o para a
90. qual se pretende realizar a rastreabilidade reactiva a aplicac o atrav s do respectivo suporte instanciado pela sua localizac o f sica O fornecedor externo inclui o metamodelo do grupo de artefactos que acedido Cada contexto tem de referir o tipo de artefacto inclu do no metamodelo incluido no fornecedor externo ao qual pertence S depois de existir uma representac o do artefacto atrav s de um contexto que se pode referenci lo no c digo de rastreabilidade No exemplo dado na Figura 4 3 ilustrada uma avalia o de coer ncia em rela o a uma restri o indicada A ferramenta usada faz parte do ReacT Workbench Catalog A CustomExportProvider CatalogExportProvider MutableExportProvider CompositionContainer Part Part ede ey Ele a mo Figura 4 4 Rela es entre os elementos da MEF CodePlex 10 P g 82 Os fornecedores externos foram implementados de acordo com a MEF Managed Extensibility Framework CodePlex 10 Blumhardt 09 que uma tecnologia que permite integrar dinamicamente componentes aut nomos numa aplicac o Segundo esta framework cada fornecedor externo implementa uma ComposablePart e existe num Catalog O facto de ser poss vel implementar diferentes fornecedores externos no ReacT Workbench tornam no numa ferramenta extens vel A cria o de um fornecedor externo implica entre outras actividades a implementa o da interface ProviderContract indicada em segu
91. quando a opera o invocada Os possiveis valores para os tipos de sentido s o in inout e out OperationBody Um corpo de operac o cont m a implementac o da operac o imperativa a qual feita de uma lista ordenada de express es que s o executadas em sequ ncia No corpo da operac o est impl cito um mbito que contido no mbito da defini o da opera o As vari veis e par metros definidos nos mbitos mais gerais est o acess veis neste corpo No mbito do corpo da operac o a vari vel self representa o par metro contextual caso exista e a vari vel result representa o par metro a ser devolvido o qual um tuplo quando diversos resultados s o simult neamente devolvidos ConstructorBody Em contraste com a notac o geral para as operac es no corpo do contrutor a vari vel que representa o objecto instanciado pode ser omitida ao referir se s propriedades Na declarac o seguinte explicitado um construtor para a classe Message que define dois atributos name type constructor Message Message messName String messType String name messageName same as result name messageNam type messType String same as result type messType MappingBody Define a estrutura do corpo de uma operac o de mapeamento uma classe que especifica a classe OperationsBody A notac o gen rica a seguinte mapping lt mapping_signature gt see MappingOperation description
92. se a um mecanismo de agendamento de execu es Na execu o atrav s de eventos a execu o realizada quando se d uma altera o ao estado do sistema Essa altera o denominada de evento uma qualquer altera o ao estado de um artefacto abrangido por pelo menos uma regra de coer ncia Nas linguagens de programa o actualmente usadas e g CH Java VB NET os eventos ocorrem quando o valor de uma vari vel alterado desencadeando uma opera o Define se rastreabilidade reactiva como a actividade de rastrear e sincronizar artefactos atrav s de um mecanismo de execu o por eventos As opera es de sincroniza o s o usadas a par das opera es de rastreabilidade pelo que se optou por limitar a designa o desta actividade conjunta mais conhecida e referida Assim sendo a rastreabilidade reactiva um conjunto de opera es que visam reagir a altera es provocadas sobre a estrutura da aplica o em causa Se num dado momento To ocorre uma ac o cria o modifica o e elimina o sobre um artefacto a ent o todos os rastos R lt a gt t m de ser verificados para que possam ser propagadas as altera es necess rias Como simplifica o considera se que essa verifica o e as eventuais altera es s o at micas em To Considera se que uma ac o sobre um artefacto t dada por at pertence ao conjunto A Considera se que A T gt T Quanto ao tipo de cada acc o possivel indicar
93. t cnico da estrutura de uma aplicac o seguindo se os rastos entre um dado artefacto e os demais Assim sendo tomada como uma actividade a rastreabilidade ndo tem como fim realizar alterac es a uma aplicac o mas sim obter um determinado tipo de informacdo sobre a estrutura dessa aplicac o tamb m poss vel dizer se que uma aplica o rastre vel ou um grupo de artefactos rastre vel usando se a rastreabilidade como uma propriedade Na verdade quando se usa a rastreabilidade como um qualificador est se a afirmar que sobre essa aplicacdo ou grupo de artefactos poss vel realizar uma opera o de rastreabilidade Estabelecendo uma analogia com a linguagem SQL a rastreabilidade seria compar vel a uma opera o select enquanto a sincroniza o seria compar vel s opera es insert update e delete Na primeira opera o o estado do sistema n o alterado enquanto nas restantes podem ser produzidas altera es A rastreabilidade pressup e uma sincroniza o pr via visto que para que uma aplica o seja rastre vel necess rio que os seus artefactos estejam num estado coerente i e que as rela es de coer ncia definidas sejam v lidas nesse momento Caso contr rio os resultados obtidos n o ser o exactos A qualidade da rastreabilidade est por isso dependente da qualidade da sincroniza o Por sua vez a sincroniza o pressup e que as rela es de coer ncia entre os artefactos estejam criadas
94. testes envolvendo cinco regras diferentes P g 96 6 Conclus es A actividade de desenvolvimento de sistemas de informa o tem progredido ao longo dos anos principalmente naquilo que diz respeito s linguagens utilizadas e s metodologias adoptadas No entanto as ferramentas de apoio modelacdo continuam a realizar quase o mesmo tipo de actividades embora mais r pida f cil e correctamente do que no passado necess rio o aparecimento de uma nova classe de aplicac es que consiga produzir gerir e manter ao longo do tempo as rela es entre os diversos artefactos produzidos por estas ferramentas e as restantes Todas as fases do ciclo de vida de uma aplica o inform tica e g defini o de requisitos an lise concep o implementa o testes operacionaliza o manuten o produzem artefactos relacionados com a estrutura da pr pria aplica o Estes artefactos devem poder ser relacionados atrav s de uma especifica o aberta permitindo se assim a sua actualiza o A coer ncia entre os artefactos pressup e o conhecimento n o s de cada um dos artefactos como das rela es poss veis entre eles Assim sendo a cria o de rela es entre artefactos implica que se estabele am tamb m rela es ao n vel dos metamodelos correspondentes A metamodela o usada neste contexto para permitir o estabelecimento dessa estrutura de rela es Quando um artefacto conceptual ou operacional n o se encont
95. the iterator variable is explicitly passed in parentheses of xmap keyword E sempre poss vel invocar uma operac o de mapeamento usando uma refer ncia para uma inst ncia de uma transforma o como receptor da chamada for a mapping defined with a non contextual signature attr2Column Attribute Table this map attr2column myattr the this keyword refers to the current transformation instance Quando a operac o de mapeamento tem um tipo de contexto o argumento do contexto passado como primeiro argumento Se o mapeamento declarar par metros adicionais os argumentos correspondentes sdo passados ap s o argumento do contexto P g 160 for a mapping defined with a contextual signature Class class2table Table this map class2table myumlclass equivalent to myumlclass map class2table Quando a opera o de mapeamento chamada n o invocada no mbito da transforma o actual a inst ncia de transforma o dada pela vari vel this a nica forma de realizar essa chamada passar uma refer ncia inst ncia da transforma o como receptor da chamada O exemplo seguinte demonstra esta situa o cleaningTransf uma inst ncia da transforma o que foi importada Uma chamada expl cita ao mapeamento removeDup feita por interm dio desta inst ncia transformation Uml2Java in uml UML out java JAVA access transformation UmlCleaning UML mapping UmlCleaning Class removeDups de
96. 0 s Kansas City EUA Pags 1064 1069 1992 Lemesle 98 Meta modeling and Modularity Comparison Between MOF CDIF amp sNets Formalisms Richard Lemesle OOPSLA 98 Workshop on Model Engineering Methods and Tools Integration with CDIF Vancouver 1998 Lundell et al 02 Comments on ISO 14102 the standard for CASE tool evaluation Bjorn Lundell e Brian Lings Computer Standards amp Interfaces 24 Pags 381 388 Ed Elsevier Science 28 de Maio de 2002 Martin 89a Information Engineering Introduction James Martin Prentice Hall Martin 89b Information Engineering Book II Planning and Analysis James Martin Prentice Hall 1989 McNaughton 02 We Compare Microsoft Visio with Rational XDE for Modeling Your NET Applications Allan McNaughton http www devx com enterprise Article 9749 2002 Microsoft 08 Microsoft Visual Studio SDK 1 1 Microsoft Corporation http www microsoft com downloads details aspx Familyld 59EC6EC3 4273 48A3 BA25 DC925A45584D amp displaylang en 2008 Microsoft 10 Compiling to MSIL in NET Framework Developer s Guide Microsoft Corporation http msdn microsoft com en us library c5tkafs1 VS 71 aspx 2010 Model Systems 02 Model Systems and Structured Systems Analysis and Design Method Model Systems http www modelsys com msssadm htm 2002 Monteiro 89 Algebra Linear e Geometria Analitica Ant nio Antunes Monteiro Ed Assoc dos Estudantes da Fac de Ci ncias de Lisboa 1989
97. 1 Elementos da framework ReacT MDD As rela es entre os componentes referidos podem variar consoante a sua implementa o o tipo de artefactos criados pelas tecnologias usadas e as funcionalidades consideradas relevantes O componente modelador produz artefactos que podem ser tratados por fornecedores externos caso o componente modelador seja representado por uma ferramenta CASE externa a ferramenta Pelo contr rio se este componente for implementado atrav s de um m dulo pr prio o motor de rastreabilidade e o motor de metamodelac o podem interagir mais facilmente com ele visto poderem partilhar mais facilmente os artefactos produzidos Seguidamente ser descrita uma implementac o desta framework que usou um subconjunto destes elementos de forma simplificada para testar a abordagem 4 3 ReacT Workbench Foi realizada a instanciac o dos elementos descritos num prot tipo que funciona na plataforma Net denominado ReacT Workbench Como foi referido anteriormente o conceito apresentado independente da tecnologia em que implementado No entanto como a rastreabilidade reactiva diz respeito ao pr prio processo de desenvolvimento de aplica es bem como sua operacionalizac o e manutenc o a plataforma usada torna se relevante para que possa existir conhecimento sobre o estado actual dos artefactos Se a plataforma em que for implementada a aplicac o de rastreabilidade reactiva for diferente da plataforma de algumas das
98. 6 Integra o de opera es caixa preta com rela es Uma rela o pode ter uma implementa o caixa preta operacional associada para garantir um dom nio A opera o caixa preta invocada quando a rela o executada no sentido do dom nio marcado como enforced e a rela o avaliada com o valor false de acordo com a sem ntica de avalia o A opera o invocada respons vel por realizar as altera es necess rias ao modelo de forma a satisfazer a rela o especificada criada uma excep o em tempo de execu o se uma rela o avaliada com o valor false ap s a opera o terminar A assinatura da opera o pode ser derivada da especifica o do dom nio da rela o e g um par metro de sa da correspondente ao dom nio enforced e um par metro de entrada correspondente a um dom nio de entrada As rela es que podem ser implementadas por opera es de mapeamento e opera es caixa preta t m as seguintes restri es 1 O seu dom nio deve ser primitivo ou conter um template de objectos simples sem sub elementos 2 Os blocos when e where n o devem definir vari veis Estas condi es garantem que n o feita nenhuma avalia o pr via ou posterior das restri es depois da invoca o da opera o 2 4 7 Sem ntica das rela es Uma rela o tem a seguinte estrutura abstracta Relation R Var lt R_variable_set gt declaration of variables used in the rel
99. Integration with CDIF Vancouver 1998 DeMarco et al 79 Structured Analysis and System Specification Tom DeMarco P J Plauger Prentice Hall ISBN 0138543801 1979 Dershem et al 95 Programming Languages Structures and Models Herbert Dershem Michael Jipping PWS Publishing Co 1995 Dobing et al 06 How UML Is Used Brian Dobing Jeffrey Parsons Communications of the ACM Vol 49 Nr 5 Maio de 2006 Dollard 04 Code Generation in Microsoft NET Kathleen Dollard Apress 2004 Forte et al 91 CASE Outlook Guide to Products and Services G Forte and K McCully CASE Consulting Group 1991 Gamma et al 94 Design Patterns Elements of Reusable Object Oriented Software Erich Gamma Richar Helm Ralph Johnson John Vlissides Addison Wesley Professional Computing Series 1994 Gehani 89 Ada An Advanced Introduction Narain Gehani Prentice Hall 2nd edition ISBN 0130043346 1989 Pag 107 Giesenow 08 How do Create And Use T4 Templates Hilton Giesenow Microsoft Corporation http msdn microsoft com en us vsx cc308634 aspx Marco de 2008 Gogolla et al 07 USE A UML based specification environment for validating UML and OCL Martin Gogolla Fabian B ttner e Mark Richters Science of Computer Programming 69 Dezembro de 2007 Harel 87 Statecharts A visual formalism for complex systems David Harel Science of Computer Programming 8 3 231 274 Junho de 1987 Herrington 2003 Code Generation
100. IritOdlCao st oae Gs esteri ertet aaa Soe m ash oe oe oes 57 3 2 Conceitos B slCOS cidit ir E P Ee RR ee e RA e PRU rie EFIE Ete etn 58 3 3 Rela es de depend ncia entre artefactos nee 60 3 4 Classifica o das Opera es de Sincroniza o ccccncoocooonnnnoncnncnnnononononnnncnnnanan ono nonnncncnnnnns 68 3 5 Rastreabilidade assada creta oS Ee ee ee e ERES 72 3 6 Perspectivas Relacionais e Generativas oooomocncnnccnnccnnnnnncnnnnnn nono nono nono nana er enne eene enn 73 3 7 Componente ReactlVa rererere anane Ee de eee eren De Dach ere xd vex debeas bara eae deae n eate D RES 75 4 cua Dnsctrumbpm e 78 4 1 INTLOJU O eee TES 78 4 2 AftQquitectUra iere A AS 79 4 3 Real Workbench ici ete T eines atten n eid cont a en taa EH 80 5 A sz ss C es k sg s 86 5 1 Caso de Estudo Biblioteca 2 detec ebekkel eke folytak e be z s it e dettes 86 5 2 Caso de Estudo gestBarragens ccccccscceccceccecccecccecceeeeeeeesseeseecseeseeeseeaseeaeeasaesaaeaaaeaaagaes 90 A AAA ses cdadesdevecessievenees 97 6 1 EAS eza ge t li Ee SERE eaten iz l caged eR ARR UE ad 99 Publica es Cient ficas e Congressos Nacionais e Internacionais cmmooccnconnncnnnnnnncnnannn eere 100 A A edid 102 Bibliografia e 105 Anexo A Ferramentas de apoio ao desenvolvimento de sistemas de informa
101. Persistent que tem de ser satisfeita para que o mapeamento seja executado O c digo seguinte mostra uma invoca o do mapeamento foo2atombar Os valores resultantes s o atribu dos s vari veis atom e bar var f lookForAFooInstance var atom Atom bar Bar f foo2atombar Devemos notar que conceptualmente o par metro resultante tratado como par metro opcional da opera o de mapeamento Assim a primeira chamada a f foo2atombar equivalente a invocar f foo2atombar null null Em contraste foo2barPersistence foo2atomFactory s o invocados internamente com as inst ncias de atom e bar criadas pelo mapeamento foo2atombar Este mecanismo permite aos mapeamentos fundidos alterar as inst ncias criadas pelo mapeamento que serve de base a fus o P g 142 D 12 Disjunc o de operac es de mapeamento Uma operac o de mapeamento pode ser definida como a disjunc o de uma lista ordenada de mapeamentos Tal significa que a invoca o da opera o resulta na selec o do primeiro mapeamento cuja condi o de guarda tipo e condi o when v lida O valor null devolvido se nenhum dos mapeamentos v lido No exemplo seguinte usa se a palavra reservada disjuncts para definir a opera o de mapeamento convertFeature mapping UML Feature convertFeature JAVA Element disjuncts convertAttribute convertOperation convertConstructor mapping UML Attribute convertAttribute
102. QVTBase Figura E 1 QVT Operational Package Transforma es Operacionais Uma transforma o operacional pode definir propriedades de configura o i e propriedades cujo o valor s dado em tempo de execu o Pode tamb m definir propriedades imediatas e definir explicitamente novas classes para guardar dados interm dios Quando uma transforma o operacional refina uma transforma o relacional Sec o 2 4 2 o sentido da transforma o tem de ser indicado Sintacticamente uma OperationalTransformation uma subclasse de Module logo por heran a tamb m o de Class e de Package Como herda da metaclasse Class pode definir propriedades e opera es neste caso podem ser fun es de selec o opera es de mapeamento e construtores tendo que ser instanciada para ser executada Como tamb m herda da classe Package pode definir e conter tipos espec ficos para serem usados no mbito da defini o da transforma o A sem ntica da execu o de uma transforma o operacional pode ser dada facilmente comparando esta com uma classe Java Todas as propriedades e opera es da transforma o funcionam como atributos e m todos da classe Java Adicionalmente para cada par metro modelo de inicial ou final existe um atributo Um construtor existe tamb m para a transforma o a sua assinatura corresponde lista de par metros in e inout O c digo deste construtor impl cito na transforma o realiz
103. Sim eventos sobre rastos b Selecc o de Eventos d Ac es Sobre Artefactos e Actualizac o de Rastos a Reconhecimento da Ac o In cio Existem efeitos Figura 3 12 Tratamento dos eventos O algoritmo de tratamento do evento envolve as seguintes actividades a reconhecimento da ac o b selec o de eventos c decis o de sincroniza o d ac es sobre artefactos e actualiza o de rastos P g 76 Em a existe a tomada de conhecimento que foi produzida uma alterac o ao estado do sistema materializada por uma acc o sobre um artefacto conhecido O artefacto entdo acrescentado a uma lista de artefactos alterados LAA Em sequ ncia para cada artefacto da lista de artefactos alterados b verifica se se existe um evento associado a esse artefacto se n o existir a ac o ignorada e o artefacto sai da LAA Quando existe um evento e este cumpre as condi es de activa o i e a ac o que o desencadeia v lida em c s o invocadas as decis es de sincroniza o Neste momento pode ser necess rio o utilizador tomar uma decis o caso a decis o de sincroniza o implique uma escolha Em alguns casos a decis o determin stica e d actua imediatamente Em resultado de eventuais ac es sobre o artefacto podem existir efeitos sobre outros artefactos que t m de ser propagadas Esta actividade pode levar a que o processo seja repetido para
104. a o por m necess rio tomar a decis o certa quanto s caracter sticas escolhidas para os dois processos Como foi referido n o existe ainda consenso para a nomenclatura adoptada pelos standards mas esse facto apenas afecta uma entidade que queira partilhar os resultados da avalia o com outra Para uma avalia o dentro de uma organiza o o problema n o se coloca desde que a equipa envolvida na avalia o tenha chegado a acordo quanto nomenclatura adoptada Para a recolha de informa o sobre as ferramentas prop e se em seguida uma metodologia que visa retirar uma parte da subjectividade inerente a qulquer processo de avalia o que envolva a interven o humana e S o escolhidos os avaliadores que devem ter uma experi ncia consider vel na utiliza o deste tipo de ferramentas Tanto quanto poss vel devem ser recursos com experi ncia em diversas ferramentas n o apenas especializados numa nica e S o escolhidos os especialistas em cada uma das ferramentas a avaliar Estes ter o um per odo suficientemente alargado para conhecerem as ferramentas atrav s de testes que podem ser semelhantes ou aprofundados para cada ferramenta e As caracater sticas a estudar s o escolhidas e o seu significado definido tanto quanto poss vel promovendo se a homogeneiza o da abordagem dos avaliadores Devem ser tidos em considera o os aspectos particulares da organiza o que vai utilizar a ferramenta Para tal im
105. a o a ter um equivalente textual Excluindo a informa o gr fica inerente aos diagramas produzidos toda a informa o produzida pelo STEP pode ser descrita pelo Express tornando o primeiro independente da plataforma ou da ferramenta CASE desde que esta consiga ler uma descri o Express O mbito do STEP n o se limita partilha de informa o produzida por uma ferramenta CASE abrangendo dom nios como as ferramentas CAE Computer Aided Engineering Analysis CAM Computer Aided Manufacturing e CAD Computer Aided Design A maior parte das ferramentas de CAD actualmente existentes implementam os protocolos AP 203 e AP 214 que servem para transferir informa o para modelos independentes da tecnologia segundo a vis o STEP O conceito de artefacto central ao STEP embora seja considerado apenas como ve culo para a transmiss o de um conceito ou vis o parcial deste dois artefactos podem incluir perspectivas complementares de um mesmo conceito IDEF O IDEF ICAM Definition Language um grupo de m todos utilizados na modela o de sistemas de informa o criado pela For a A rea Americana no fim da d cada de 1970 Inclui entre outros ICAM Integrated Computer Aided Manufacturing P g 16 m todos IDEFO Modelac o funcional IDEF1 Modelac o de informac o IDEF1X Modelac o de dados e IDEF3 Captura de descri es de processos Existem na verdade dezasseis m todos IDEF do IDEFO a IDEF14 e IDEF1X
106. a i e com os elementos em fila Note se ainda que ja a linguagem Smalltalk tinha esta distin o atrav s das colecc es SortedCollection e OrderedCollection 25 Uma List definida em QVT da mesma forma que uma colecc o gen rica em CH i e indicando o tipo dos elementos que podem pertencer a essa List P g 143 Um tuplo an nimo um tuplo cujas posic es ndo t m designacdo Pode ser usado de uma forma abreviada quando necess rio colocar os valores do tuplo em vari veis individuais var mytuple Tuple 1 2 3 an anonymous tuple literal var x y Z mytuple unpacking the tuple into three variables Existe um outro mecanismo que torna o sistema de tipos mais flex vel O typedef permite anexar restri es adicionais a um tipo existente num determinado contexto Permite tamb m definir sin nimos para tipos complexos Quando usado na assinatura de uma operac o de mapeamento as constantes typedef s o acrescentadas condi o de guarda da opera o A condi o expressa entre parentesis rectos ap s o tipo tomado como refer ncia typedef TopLevelPackage Package parentInstance null typedef AttributeOrOperation Any Attribute or fOperation typedef Activity ActionState stereotypedBy Activity O tipo definido por um typedef considerado estar no mbito do tipo do modelo do tipo tomado como refer ncia E g se o tipo ActionState existe no contexto de um tipo de modelo UMLDiagram ent
107. a as seguintes ac es e Para cada par metro out criado um dom nio MOF com conte do vazio e Os par metros s o colocados nos respectivos atributos da transforma o e e feito o carregamento dos valores das propriedades de configura o quando existentes A instancia o da transforma o pode ser impl cita a inst ncia pode estar a ser referida usando a vari vel this ou expl cita No segundo caso usada uma express o InstantiationExp O preenchimento de propriedades de configura o pode ser realizado usando um mecanismo externo P g 149 e g usando um ficheiro de configurac o Tal como em Java a instanciac o e a execuc o da operac o de entrada main s o ac es diferentes Uma transforma o explicitamente invocada usando a opera o pr definida transform Uma invoca o desta opera o provoca a execu o da lista de express es do corpo da opera o de entrada No fim da execu o da opera o main as atribui es diferidas caso existam s o executadas em sequ ncia S ent o termina a execuc o da transforma o A nota o para definir a transforma o usa a palavra reservada transformation no cabe alho poss vel criar diversas transforma es seguidas num nico ficheiro da seguinte forma defining multiple transformations in a single file transformation Uml2Rdbms in uml UML out rdbms RDBMS content of the transformation definition transformation Logical2Phys
108. a deve ser criada com as propriedades schema name column e primaryKey com os valores indicados Da mesma forma os templates associados a Column e PrimaryKey especificam a forma como os objectos correspondentes s o criados Pag 46 Persistent Cliente Nr_pk NUMBER PrimaryKey nr INTEGER nome VARCHAR nome STRING Figura 2 20 Efeitos de uma transformac o sobre um modelo alvo QVT A criac o das colunas propriamente dita feita com a relac o QVT especificada da seguinte forma relation AttributeToColumn checkonly domain uml c Class attribute a Attribute name an type p PrimitiveDataType name pn checkonly domain rdbms t Table column cl Column name an type sqltype where sqltype if pn INTEGER then NUMBER else VARCHAR endif No entanto necess rio assegurar que n o se criam objectos duplicados quando os objectos necess rios j existem Nesses casos apenas se pretende realizar uma alterac o dos objectos existentes O MOF permite que cada propriedade de uma classe seja nomeada com identificador No entanto para muitos modelos tal insuficiente para identificar os objectos univocamente O metamodelo das relac es QVT introduz o conceito de chave Key que define um conjunto de propriedades de uma classe que identificam univocamente uma inst ncia de um objecto de uma classe do modelo A classe pode te
109. a fase poder o ser utilizados posteriormente na selec o da ferramenta O processo de selec o inicia se da mesma forma que a avalia o com a a defini o da finalidade da selec o o mbito e eventuais restri es existentes Consideram se ent o os valores para a pondera o dos crit rios Esta decis o de grande import ncia pois condiciona os resultados obtidos Ao longo do tempo a organiza o pode rever essa pondera o alterando tamb m os resultados obtidos sem no entanto eliminar o trabalho efectuado anteriormente Ap s se aplicar os valores da pondera o aos resultados obtidos no processo de avalia o chega se a uma recomenda o de selec o Cada um dos processos pode ser feito independentemente e os dados da avalia o podem ser reutilizados posteriormente No entanto como em todos os processos de avalia o caso os crit rios de avalia o mudem ser necess rio refazer pelo menos uma parte da avalia o existente A reutiliza o dos resultados est de qualquer forma condicionada ao P g 124 estabilidade das vers es dos pr prios produtos Por isso aconselh vel realizar novas avalia es quando existam vers es com caracter sticas novas Existem hoje as funda es para conseguir uma avalia o e uma selec o tanto quanto poss vel objectiva Os standards IEEE 1209 e ISO 14102 est o suficientemente bem definidos para constituirem pelo menos uma base para a produ o de uma avali
110. a por fusdo de c digo code weaving utiliza se quando necess rio fundir diversos artefactos num nico que o resultado final Por vezes estes artefactos representam diversos aspectos do resultado final dai este tipo de gerac o ser frequentemente relacionado com a programac o orientada por aspectos AOP Laddad 03 O Regan 04 embora os dois conceitos sejam independentes A fus o de c digo d se tendo em aten o um conjunto de meta artefactos que constituem os meta modelos dos artefactos de input P g 38 o Especificac o da t fus o o E o Meta Meta 2 artefacto A artefacto g inst hcias de Y e Artefacto 1 Artefacto gt Artefacto n o c Q Y 5 C digo 3 Input iw Figura 2 15 Gerac o Automatica por fus o de c digo Integrac o de c digo gerado com c digo n o gerado Ap s o c digo ser gerado coloca se o problema de o integrar com c digo n o gerado Existem diversas formas de o fazer dependendo de que tipo de c digo se considere Como o c digo gerado pode n o ser apenas uma parte de um programa escrito numa qualquer linguagem de programa o pode pertencer a um dos n veis de abstrac o a que o sistema est representado Consoante se trata de c digo de uma linguagem de programa o ou uma descri o de um modelo a forma de o integrar com elementos n o gerados pod
111. a traduc o mesmo que o c digo gerado seja aparentemente correcto podem existir melhores soluc es aplic veis caso a caso Um outro mbito em que se aplica a tradu o a convers o de dados entre formatos diferentes Ao longo da d cada de 1990 a linguagem XML Extensible Markup Language W3C 04 derivada do standard SGML Standard Generalized Markup Language ISO 8879 tornou se na linguagem mais usada para a descri o de dados O HTML HyperText Markup Language outra instancia o do SGML conforme com o XML criada para a descri o de documentos por via electr nica uma das linguagens que fazem parte da infraestrutura da Internet A manipula o de dados de ficheiros no formato XML motivou a especifica o de uma outra linguagem conforme com o XML designada por XSL Extensible Stylesheet Language Patterson 01 Esta linguagem tem duas facetas para manipular e tratar documentos em XML Por um lado pode servir para formatar um certo ficheiro preparando o para a apresenta o ou para qualquer outro fim Pode ainda ser usado para realizar transforma es em ficheiros de XML de forma autom tica recorrendo a uma ferramenta externa que executa essa tarefa Nesse caso utiliza se uma parte da linguagem denominada XSLT Extensible Stylesheet Language Transformation A OMG promoveu tamb m um formato de ficheiro baseado em XML para a partilha de informa o entre ferramentas CASE denominado XMI XML Metadata Interchange OMG
112. aaeeeees 23 Figura 2 5 Metamodelo MOF dos elementos que permitem associar marcas de valor aos elementos de qualquer diagrama MQOF 2 rane totns ene e revo re ene eara ene casa dan aa cr rae eee a 24 Figura 2 6 Rela o conceptual entre as especifica es do UML e do MOF seen 24 Figura 2 7 Representac o das diferentes camadas do MDA e dos mapeamentos poss veis entre elementos de diferentes camadas sss esee nennen nene nne en ennnnn rsen ren enne 27 Figura 2 8 Metamodelo dos mecanismos de extens o do UML OMG 03a 28 Figura 2 9 Elementos da gera o autom tica b sica essere 35 Figura 2 10 Elementos da gera o autom tica com templates esses 36 Figura 2 11 Gera o autom tica com templates e um Mmetamodelo ccccconcooononnncncncnannconannnnnnnoss 37 Figura 2 12 Gera o autom tica atrav s de uma API esses nennen nennen nnns 37 Figura 2 13 Gera o autom tica por c digo inclu do esses enne 38 Figura 2 14 Gera o autom tica por atributos cccncooooocncnnccnoncnnnonnnnnnnnnnonanona nono nnonnononnnnononnnnnonons 38 Figura 2 15 Gera o Autom tica por fus o de c digo eese eee 39 Figura 2 16 C digo gerado preenchido com c digo n o gerado ooooooccccccccnnonoononnnnnoncnnnnnnonnnnnonnnnons 40 P g 102
113. ac o uma rea de estudo etc P g 55 3 Rastreabilidade Reactiva Neste capitulo sdo introduzidos os conceitos fundamentais para o estudo da rastreabilidade reactiva O cap tulo evolui gradualmente de uma perspectiva conceptual atrav s de uma descri o informal recorrendo a diagramas UML para uma formalizac o e desta para aspectos mais pr ximos dos detalhes de implementac o que ser o explicitados no cap tulo seguinte 3 1 Introdu o O processo de desenvolvimento de aplica es produz um n mero elevado de artefactos Estes n o devem ser considerados apenas meios para atingir um fim neste caso a aplica o produzida Todos os diagramas descri es textuais ou outros artefactos necess rios compreens o do sistema s o tamb m parte da solu o do problema Assim sendo n o devem ser desprezados ap s a entrada da aplica o em fase de produ o Os artefactos devem pelo contr rio permanecer actualizados apesar de todas as altera es produzidas pela utiliza o da aplica o ou por outros factores externos e g novos requisitos resultantes de mudan a no neg cio A justifica o para a afirma o anterior evidente se se considerar que a vida til de uma aplica o pode envolver um n mero elevado de vers es e em particular se o seu desenvolvimento e manuten o forem dirigidos por modelos Se os modelos n o reflectirem o estado actual do c digo implementado o desenvolvimento ou manuten o
114. adaptada de uma existente Em muitos casos as nota es eram completamente diferentes mesmo estando de acordo em relac o aos conceitos representados e g uma classe poderia ser representada por uma nuvem na metodologia de Booch por um rect ngulo na metodologia de Rumbaugh ou por uma elipse no HBDS Tendo em vista a uniformizac o da notac o independentemente da metodologia adoptada Rumbaugh Booch e Jacobson acordaram criar uma notac o que servisse para as suas tr s metodologias bem como para qualquer outra como lingua universal de modelac o denominada Unified Modelling Language A iniciativa foi acolhida pelo Object Management Group OMG em 1997 uma organizac o n o governamental de intervenientes na rea das tecnologias da informa o tendo sido criado um standard A especifica o j teve diversas revis es encontrando se actualmente na vers o 2 1 1 OMG 07 O facto dos te ricos de tr s das metodologias mais importantes na altura se terem juntado para um esforco comum de uniformizac o das suas notac es abriu campo a aceitac o do UML por parte da ind stria e do meio acad mico O UML compreende um modelo que distingue a representac o dos conceitos dos pr prios conceitos Sendo assim um modelo UML pode ser visto como um conjunto de esquemas ou P g 21 diagramas com uma notac o pr definida ou pode ser lido como uma descric o textual dos conceitos representados Classes CompositeStructures
115. ado com o car cter a opera o devolve apenas o valor null Caso contr rio o corpo da opera o executado A sintaxe gen rica para o corpo da opera o de mapeamento a seguinte P g 134 mapping lt dirkind0 gt X mappingname lt dirkindl gt p1 P1 lt dirkind2 gt p2 P2 rl R1 r2 R2 when AY se set where init g 0 population endi A eus th Na sintaxe dada lt dirkindN gt refere se as palavras reservadas in inout ou out que indicam o sentido da operac o de mapeamento A secc o init cont m algum c digo que deve ser executado depois da instancia o dos valores de sa da A sec o population cont m c digo para preencherem os par metros de sa da e a seccdo end cont m c digo adicional para ser executado depois da sa da da opera o Entre as sec es de init e population existe uma sec o impl cita denominada sec o de instancia o a qual cria todos os par metros de sa da que t m um valor nulo ap s a sec o de inicializa o Tal significa que de forma a devolver o objecto existente em vez de criar um novo necess rio apenas atribuir o par metro de sa da dentro da sec o de inicializa o D 4 Cria o de objectos e modifica o em opera es de mapeamento A linguagem de mapeamentos operacionais define uma forma de criar e modificar elementos do modelo Trata se de uma constru o sint ctica denominada express o de objecto usando a palavra res
116. ador de um modelo e g modelo f sico que representaria abreviadamente uma perspectiva f sica de alguns elementos da aplica o ou ainda um modelo dos elementos da aplica o com realiza o f sica 12 E a bi n ins s A a pL AN A Obviamente a realizac o f sica aqui indicada metaforicamente visto indicar apenas a exist ncia de uma ocorr ncia de um conceito que muitas vezes intang vel P g 58 Designa se por diagrama uma representac o gr fica de uma parte de um modelo segundo uma dada vista Um diagrama tamb m um artefacto com a informa o gr fica e l gica dos conceitos representados Um metamodelo um modelo que define um conjunto de elementos conceitos presentes em modelos Um metamodelo pode tamb m ser considerado um modelo herdando a necessidade de ser definido 1 Projecto Metamodelo Modelo oe usa i Vista C Artefacto realiza i 1 Suporte A 1 Elemento gt 1 Suporta Tipo TipoArtefacto refere concretiza Diagrama Figura 3 1 Modelo dos conceitos b sicos necess rios ao mbito da rastreabilidade Note se que o diagrama n o o nico tipo de artefactos existente Como foi anteriormente referido todas as descri es textuais e tabelas relevantes para o projecto mesmo que apenas para a sua documenta o tamb m s o artefa
117. ador deste tipo relativamente simples para exemplos de reduzida complexidade no entanto torna se dif cil de conceber para exemplos complexos na medida em que os templates de gerac o sendo realizados em XSLT s o dif ceis de manter Gerac o autom tica com templates e um metamodelo Por vezes utiliza se uma gerac o autom tica de c digo a partir de um modelo de input em que o seu metamodelo suficientemente abrangente para orientar a gerac o de c digo Este metamodelo pode ser constitu do por um conjunto limitado de elementos bem definidos e com um significado preciso que quando instanciados determinam a gerac o de c digo atrav s de templates j definidos P g 36 Modelo de Templates Input de Gerag o Modelo de Output Parser Motor da Geragao i ha Inst ncia do Metamodelo Metamodelo Figura 2 11 Gerac o autom tica com templates e um metamodelo O processo est dividido em duas fases Primeiro realiza se o parsing do modelo de input p ex um ficheiro XMI correspondente a um modelo UML tendo em atenc o o metamodelo respectivo p ex o Metamodelo do UML ou modelo MOF de nivel M2 Desta fase resulta uma inst ncia do metamodelo Aplicando os templates de gerac o para uma linguagem ou modelo alvo sobre esta inst ncia obt m se o modelo de output Este tipo de gerac o autom tica na verdade uma extensd
118. adr o do dom nio k Note se que um padr o pode ser visto como um conjunto de vari veis e um conjunto de restri es que os elementos do modelo ligados a essas vari veis devem satisfazer de forma a que a correspond ncia possa ser v lida No exemplo dado existe o seguinte padr o c Class kind Persistent name cn attribute a Attribute A seguinte restric o est impl cita c kind Persistent and c name cn and c attributes gt includes a Pode afirmar se ainda que a avaliac o de uma relac o no sentido do modelo k i e tendo o modelo k como modelo alvo tem a seguinte sem ntica para cada ligac o v lida entre vari veis do bloco when e de vari veis de dom nios diferentes de k satisfazendo a condic o when e padr es e condi es do dom nio inicial tem de existir uma liga o v lida entre as restantes vari veis do dominio k sem liga o a valores e que satisfazem o padr o k e a condi o where A obrigac o da relac o no sentido do modelo alvo k com a palavra reservada enforced tem a seguinte sem ntica para cada liga o v lida de vari veis da condi o when e de vari veis de dominios diferentes do dominio alvo k tais que satisfazem a condi o when e as condi es e padr es do dominio inicial se n o existe uma ligac o v lida das restantes vari veis do dominio k n o ligadas a valores que satisfazem o padr o do dominio k e a condi o where ent o dever se realizar as opera es necess
119. afirmar que Para um certo rasto F sempre poss vel saber qual o valor da sua fun o peso de grau zero w r sendo o valor da contagem do n mero de artefactos que fazem parte da defini o 23 do rasto usualmente dois Quanto ao grau para valores diferentes de zero o peso dos rastos pode ter valores iguais ou superiores a zero consoante o nivel conceptual dos artefactos e g no exemplo dado em 7 poss vel calcular o valor de w r sendo o seu valor a soma do n mero de classes com o n mero de tabelas A func o peso til para entender o impacto que um rasto pode ter num sistema quantificando o n mero de artefactos directa ou indirectamente afectados por este Define se assim uma medida denominada estimativa do impacto de alterac es com alcance n e granularidade m para um artefacto a como sendo P g 67 n w R a 24 C 8 9 41 2 A sincronizac o como chamar se actividade de manter a coer ncia entre os diversos artefactos dever ser realizada de forma a que as altera es realizadas sobre um elemento sejam propagadas a todos os artefactos relacionados quanto coer ncia Como foi mostrado as ac es a tomar ap s a alterac o do estado do sistema ndo t m como fim manter os elementos equivalentes porque tal ndo importante em muitos casos mas sim garantir a sua coer ncia tanto quanto poss vel na sua forma gen rica como definido em 20 Para ser utiliz ve
120. agens s o usadas defini es declarativas das transforma es A defini o usa um modelo fonte e um modelo alvo da transforma o e restri es sobre esses modelos As regras assim definidas podem ou n o ser execut veis i e a execu o da regra pode ter um efeito sobre o modelo alvo ou servir apenas para a valida o de um conjunto de condi es e Abordagens por transforma o de grafos As regras de transforma o de grafos consistem num padr o LHS e num padr o RHS que s o aplicados quando se d a transforma o ao modelo sobre o qual vai ser feita a transforma o As ferramentas que utilizam esta abordagem e g VIATRA Atom GreAT UMLX BOTL encontram um modelo ou parte dele que verifica o padr o LHS e realizam as opera es necess rias sobre esse modelo de forma a que passe a ser verificado o padr o RHS e Abordagens orientadas para a estrutura Nesta abordagem a transforma o dividida em duas fases a primeira fase cria a estrutura hier rquica do modelo alvo a segunda preenche os atributos e referencia os elementos necess rios do modelo alvo Exemplo OptimalJ e Abordagens h bridas Estas abordagens combinam diversas t cnicas das categorias anteriores P ex a Transformation Rule Language AST junta as abordagens declarativa e imperativa e Outras abordagens modelo modelo Como poss vel serializar os modelos atrav s de uma descri o textual como o XML neste caso a transforma
121. ainda num estado muito inicial Na d cada de 1970 o desenvolvimento era na sua maioria feito por equipas da pr pria organiza o em projectos que tentavam resolver problemas muito espec ficos Era comum utilizar se um grande n mero de aplica es normalmente em processos batch que tinham de ser integradas de forma a constitu rem a solu o do problema Algumas linguagens utilizadas ent o e ainda hoje n o promoviam a modulariza o e g Cobol o que tornava dif cil a manuten o de grandes aplica es medida que os sistemas de informa o foram chegando a uma fase de maturidade os processos de desenvolvimento come aram a assumir um menor peso nos custos dos projectos enquanto a manuten o das aplica es come ava a tomar a maior fatia dos or amentos A Concep o Estruturada de Yourdon tentou melhorar a modulariza o das aplica es e introduziu as no es de acoplamento e coes o que permanecem actuais trinta anos depois Na An lise Estruturada de Tom DeMarco n o foram P g 15 inclu dos aspectos como a modelac o l gica de dados e a modelac o de eventos Yourdon 10 que s mais tarde surgiriam noutras metodologias Nesta metodologia foi tratado o problema da mudan a atrav s da cria o do modelo l gico actual modelo l gico novo modelo f sico actual e modelo f sico novo por esta sequ ncia Usava se ent o um processo sequencial tamb m denominado em cascata em que a cada fase sucede uma outra qu
122. alho ArgoUML Tigris org Aplicac o open source codificada na linguagem Java Gera c digo Java bem como noutras linguagens atrav s de m dulos adicionados A gerac o apenas no sentido modelo para c digo Permite desenhar diagramas de casos de utilizac o diagramas de classes diagramas de sequ ncia diagramas de colaborac o diagramas de m quinas de estados diagramas de instalac o e diagramas de actividades Inclui a capacidade de verificar os modelos criados atrav s de um conjunto de regras pr definidas denominadas cr ticas que podem ser activadas ou desactivadas Artiso Visual Case AMD Ferramenta CASE centrada no desenho de diagramas UML 1 x Permite a gerac o bidireccional de esqueletos de classes em Java e de tabelas SQL Possui tamb m um editor de SQL que permite preencher o comportamento dos m todos com queries SQL e stored procedures espec ficas a alguns SGBDs e g Microsoft Access Microsoft SQL Server Oracle MySQL Sybase PostgreSQL Pervasive 8 Interbase BOUML Free Software Foundation Ferramenta CASE n o comercial que tem por objectivo a especificac o e a gerac o de c digo em C Java e Idl Funciona n o s na plataforma Microsoft Windows como em Unix Linux Solaris A gerac o de c digo feita recorrendo a ficheiros templates externos aplicac o que podem ser editados Suporta os principais diagramas do UML 2 0 e devido sua simplicidade por enquanto uma aplicac o com um ptimo
123. artefactos agregados por a e diz se que elem a representa os artefactos dependentes de nivel n e granularidade m esquerdo e direito da rela o de coer ncia t m uma sem ntica diferente sendo formados cada um deles por um ou mais artefactos Pag 64 O operador elem a enquanto enumera o til para definir uma forma mais abrangente de valor para o rasto entre dois artefactos Considera se por val um valor impl cito de nivel n e granularidade m de um rasto r sobre dois artefactos a e a um operador que relaciona dois artefactos val RxZxNxVxV 5 ftrue false nil sendo a A CA aye A c A true Vaje elem a d aje elem ay val r ai aj true 12 va n r a a false Jaje elem a Vaje elem n a val r aj aj false nil Va e elem a ae elem a val r a aj nil Existe uma depend ncia evidente entre as defini es 9 10 e 12 que pode levar a uma avalia o recursiva estando a condic o de paragem contida na definic o 12 Como caso particular de 12 tome se um rasto entre um artefacto simples e um conjunto de artefactos Para que a defini o seja v lida considera se a exist ncia de um artefacto fict cio agregador do primeiro e tendo o como Unico elemento Designa se por termo direito e termo esquerdo da relac o de coer ncia s respectivas express es De forma a realizar pesquisas num dado conjunto j existente de rastos e em diferentes conjunt
124. as rela es entre elementos dos dois modelos e g VIATRA Varro 02 GreAT Agrawal 03 Algumas aproxima es com suporte para o tratamento da rastreabilidade necessitam que o utilizador codifique manualmente estas rela es nas regras de transforma o e g CDI enquanto outras criam estas liga es automaticamente e g IOPT No caso do suporte autom tico esta aproxima o pode ainda dar como op o o controlo do n mero de rela es que s o criadas de forma a limitar o volume de dados envolvidos Existe ainda a escolha do local onde s o guardadas as rela es de rastreabilidade e g no modelo fonte e ou no modelo alvo ou em separado O modelo QVT n o inclui uma defini o da forma como a coer ncia mantida entre os diferentes artefactos O pr prio conceito de artefacto n o claro na medida em que o QVT n o tem como prop sito indicar uma forma de implementar a coer ncia Apenas define uma linguagem gr fica e uma linguaguem textual que sendo implementadas fornecem a forma de interagir com a ferramenta A formaliza o defini o e implementa o dos diferentes aspectos do tratamento da coer ncia e da capacidade de realizar a rastreabilidade constitui a principal justifica o para esta proposta 11 Los de ge d A fr a x B zivin B zivin 98 define ontologia como uma descri o expl cita e precisa dos conceitos e rela es que existem num dominio particular tal como uma dada organiz
125. assegurar a coer ncia As transforma es que asseguram a coer ncia devem ser realizadas num sentido i e devem seleccionar um dos modelos candidatos como alvo A transformac o executada seleccionando primeiro os elementos que n o cumprem as restri es e posteriormente tentando fazer com que estas sejam verificadas Tal conseguido atrav s de elimina es cria es e modifica es do modelo alvo As rela es numa transforma o definem restri es que devem ser satisfeitas pelos elementos dos modelos candidatos Uma rela o definida por um ou mais dom nios e um par de predicados when e where Um dom nio possui um padr o que pode ser visto como um grafo de objectos das suas propriedades e das liga es entre eles tendo como origem uma inst ncia do tipo de dom nio No exemplo seguinte s o declarados dois dom nios para os modelos um e rdbms respectivamente Cada um destes dom nios especifica um padr o simples neste caso um package com um nome e um schema com um nome em que ambos os nomes est o ligados vari vel pn implicando por isso que devem ter o mesmo nome relation PackageToSchema realiza o mapeamento entre cada package e um schema domain uml p Package name pn domain rdbms s Schema name pn Uma rela o pode ser restringida por dois conjuntos de predicados uma condi o when e uma condi o where como demonstrado no exemplo ClassToTable em seguida relation ClassToTable
126. at D 8 Tipos interm dios Uma transformac o operacional pode usar classes interm dias ou propriedades interm dias para a sua defini o No exemplo seguinte a transforma o Uml2Rdbms foi redefinida de forma a tratar mais correctamente atributos n o primitivos Em vez de criar uma coluna por cada atributo pretende se agora criar tantas colunas quantas existem num tipo de dados complexo Uma aproxima o poss vel para resolver este problema recursivo usar dados interm dios e Helpers no original foi substitu do por fun es na medida em que a sua defini o intuitivamente pr xima do conceito de fun o da maior parte das linguagens de programa o P g 138 intermediate class LeafAttribute name String kind String attr Attribute intermediate property Class leafAttributes Sequence LeafAttribute Na declarac o anterior a classe LeafAttribute declara uma estrutura que representa os atributos primitivos aplanados A propriedade interm dia leafAttributes permite a inst ncia da classe guardar todos os objectos interm dios derivados da sua definic o Tendo a declarac o anterior poss vel produzir uma nova defini o para o mapeamento class2table que ser mapping Class class2table Table when self isPersistent init self leafAttributes self attribute gt map attr2LeafAttrs name t_ self name column self leafAttributes map leafAttr20rdinaryColumn
127. ation checkonly enforce Domain lt typed_model_1 gt lt domain_1_variable_set gt subset of lt R_variable_set gt lt domain_l_pattern gt lt domain_1_condition gt 1 Esta utiliza o simult nea de dois paradigmas de programa o i e imperativo e declarativo muito til sendo j usada noutras linguagens e g CH ou VB NET ambos com LINQ e com express es regulares P g 49 checkonly enforce Domain lt typed_model_n gt lt domain_n_variable_set gt subset of lt R_variable_set gt lt domain_n_pattern gt lt domain_n_condition gt n gt 2 when lt when_variable_set gt lt when_condition gt where lt where_condition gt Verificam se as seguintes propriedades e R variable set o conjunto de vari veis que ocorre na rela o e lt domain_k variable set o conjunto de vari veis que ocorrem num dominio k um subconjunto de lt R_variable_set gt sendo k 1 n e when variable set o conjunto das vari veis que ocorrem no bloco when um subconjunto de lt R_variable_set gt e A intersec o dos conjuntos de vari veis dos dois dom nios n o necessariamente nula i e uma vari vel pode ocorrer em m ltiplos dom nios e A intersec o de um conjunto de vari veis dum dom nio e de um conjunto de vari veis de um bloco when n o necessariamente nula e O termo domain k pattern refere se ao conjunto de restri es implicadas pelo p
128. ation Uma rela o a unidade b sica para a especifica o do comportamento das transforma es no contexto da linguagem de rela es uma subclasse concreta de Rule e especifica a rela o que deve existir entre os elementos de um conjunto de modelos candidatos Uma rela o definida por dois ou mais dom nios da rela o que especificam os elementos do P g 130 modelo que devem ser relacionados um restric o when que especifica as condic es em que a relac o v lida e por uma restric o where que especifica a condic o que deve ser satisfeita pelos elementos do modelo que est o a ser relacionados RelationDomain Um dominio da rela o especifica um conjunto de elementos do modelo relevantes atrav s de um padr o de dom nio o qual pode ser visto como um grafo de elementos com propriedades e rela es contendo um elemento inicial ligado root variable do dom nio da relac o DomainPattern Um padr o de dominio especifica um grafo atrav s de express es de template consistindo em express es de template de objectos e itens de template de propriedade Um padr o de dom nio tem uma express o de template inicial que tem de estar ligada a vari vel inicial do dom nio de relac o a qual ele pertence Uma express o de template de objecto pode incluir outras express es de template podendo constituir ela pr pria um grafo em rvore Key Uma chave define um conjunto de propriedades de uma classe que identificam
129. bina modelac o de aplicac es por UML modelac o de processos de neg cio e modelac o de bases de dados O Power Designer produzido pelo fabricante de um dos mais bem difundidos sistemas de gest o de bases de dados relacionais SGBDR Este facto condicionou de certa forma o desenvolvimento das ferramentas de modelac o tornando as centradas numa escolha tecnol gica que posteriormente se alargou a outros 44 SGBDR Permite a gerac o de esquemas SQL e esqueletos de classes em diversas linguagens de programa o Al m de outras capacidades permite a gera o de relat rios altamente parametriz veis recorrendo ao reposit rio central de informa o Rational Rose Suite IBM Conjunto de ferramentas CASE dirigidas para diferentes tipos de utiliza o que incluem modela o espec fica para plataformas e g Developer for UNIX XDE Developer for Java e modelac o de PIMs com o Rational Software Architect O facto de ser um conjunto de 12 ferramentas em vez de uma nica aumenta a complexidade da sua utilizac o Permite desenhar todos os diagramas UML embora apenas utilize os diagramas de classes para a geracdo de c digo Suporta gerac o round trip para diferentes linguagens sendo esta sempre provocada pelo utilizador Together Borland uma fam lia de ferramentas CASE com capacidades espec ficas para diferentes plataformas e perfis de utiliza o O Together Architect est dirigido para o arquitecto de sistemas de informac o
130. bute gt object a Column name a name type getSqlType a type y key object Key name k_ self name column result column kind primary y P g 136 A vantagem de resolver o encadeamento de operac es de mapeamento atrav s da inclus o de express es de objectos tornar o c digo mais conciso Por outro lado a separac o do c digo em diferentes opera es torna o mais facilmente reutiliz vel Como foi referido uma express o de objecto ndo cria uma nova inst ncia caso a vari vel alvo ja esteja ligada a um valor n o nulo Na express o object Key como n o existe refer ncia a nenhuma vari vel sempre criada uma nova inst ncia Note se ainda que a expressdo a self attribute gt object a Column equivalente a self attribute gt xcollect a object Column onde xcollect uma variante imperativa OCL da construc o collect D 6 Construtores Existe ainda outra forma de expressar a cria o de inst ncias das metaclasses definindo construtores Os construtores s o opera es especializadas que criam inst ncias de um dado tipo Por exemplo para criar se uma UML Operation pode ser definido um constructor que aceita uma lista de nomes de par metros e cria para cada um deles uma inst ncia de UML Parameter constructor UML Operation Operation opname String Sequence String Este constructor pode ser usado por qualquer transfor
131. c o n o sofra uma degrada o significativa C digo de Input C digo Resolvido gt Compilador gt C digo Final Figura 2 13 Gera o autom tica por c digo inclu do Para al m dos aspectos de desempenho importante notar que a manuten o deste tipo de c digo dif cil para exemplos complexos devido a incluir omiss es resolvidas apenas em tempo de pr compilac o Gerac o autom tica por atributos Por vezes necess rio gerar um conjunto de artefactos a partir de uma nica fonte Um bom exemplo a gerac o da documentac o de uma classe em Java O c digo Java enriquecido com coment rios especiais que possuem atributos Quando necess rio gerar a documenta o existe uma an lise do c digo total e os coment rios servem de input criac o dos ficheiros da documentac o Javadocs no caso da linguagem Java Neste caso o mesmo ficheiro usado como c digo fonte do programa igualmente o c digo fonte da documenta o do mesmo ENS C digo Gerador 1 Output C digo de Input com Atributos DEN Gerador 22 b C digo Output C digo Gerador n Output Figura 2 14 Gerac o autom tica por atributos Gerac o autom tica por fus o de c digo Este tipo de gerac o autom tic
132. ca o lan amento de uma excep o se avaliada como falsa Em contraste quando o mapeamento invocado em modo standard sendo a condi o when avaliada como falsa a execu o do corpo do mapeamento ignorada e devolvido o valor nu11 ao contexto de chamada da opera o Uma opera o de mapeamento explicitada tal como qualquer outra opera o imperativa utilizando se neste caso as palavras reservadas map ou xmap A segunda palavra chave usada quando a propriedade strict verdadeira Se o mapemaneto invocado define um par metro contextual a nota o de chamada necessita de um objecto receptor for a mapping defined with a contextual signature Class class2table Table myumlclass map class2table invocation with non strict semantics myumlclass xmap class2table invocation with strict semantics for a mapping defined with a non contextual signature attr2Column Attribute Table map attr2column myattr invocation with non strict semantics xmap attr2column myattr invocation with strict semantics As palavras reservadas map e xmap podem ser chamadas sobre uma lista e terem se necess rio a variavel iteradora entre parentesis O iterador pode estar definido explicita ou implicitamente self ownedElement map class2table shorthand of self ownedElement xcollect i i map class2table the iterator is implicit self ownedElement 4Class xmap i i class2table
133. cesso de desenvolvimento dos sistemas de informa o tal como n o o s o para qualquer outra rea ou produto Pode se por m indicar de uma forma gen rica algumas caracter sticas comuns as melhores t cnicas de Engenharia Berard 05 1 podem ser avaliadas quantitativamente tal como qualitativamente 2 podem ser usadas repetidamente com resultados semelhantes 3 podem ser ensinadas num per odo razo vel 4 podem ser aplicadas por outras pessoas com um n vel de sucesso aceit vel 5 atingem melhores resultados que outras t cnicas de forma consistente e significativa ou que uma abordagem ad hoc e 6 s o aplic veis numa percentagem significativa de casos Desta lista de caracter sticas facilmente se observa que grande parte das pr ticas que normalmente associamos a actividade de desenvolvimento de sistemas de informac o est o mais na categoria da Arte do que da T cnica por n o terem as caracter sticas indicadas Este facto mais evidente nas actividades que envolvem n veis elevados de abstrac o e de criatividade como o caso do planeamento do sistema de informa o da an lise e concep o de sistemas de informa o ou da captura de requisitos Apesar de existirem algumas linguagens e ferramentas que apoiam estas actividades bem como a cria o de padr es de desenho ou arquitecturais tornando as mais objectivas os resultados est o ainda muito aqu m daquilo que seria de esperar de uma actividade de Engen
134. claring the signature of an imported mapping main cleaningTransf UmlCleaning uml instantiating the imported transformation first pass cleaning the UML classes uml gt objectsOfType Class invoking the imported transformation gt forEach cl cleaningTransf map removeDups cl second pass transforming all UML classes uml objectsOfType Class forEach cl cl map umlclass2javaclass equivalent to this map umlclass2javaclass cl mapping UML Class umlclass2javaclass JAVA Class ResolveExp Uma express o de resolu o uma express o que inspecciona os objectos de rastreabilidade da transforma o de forma a devolver os objectos alvo criados ou alterados pelas invoca es da opera o de mapeamento executadas previamente nos objectos fonte Conceptualmente para cada invoca o de um mapeamento a transforma o regista a correspond ncia entre os objectos iniciais e finais que participam na invoca o do mapeamento Uma express o de resolu o tem uma express o condicional que usada para filtrar os objectos alvo Existem diversas variantes para esta sintaxe 1 Em vez de se seleccionar todos os objectos alvo que satisfazem a condi o poss vel devolver apenas o primeiro elemento em que tal acontece 2 Em vez de se seleccionar objectos criados ou alterados pedida a opera o inversa i e seleccionar todos os objectos iniciais respons veis pela a
135. com um n mero maior de artefactos que pode ser considerada um exemplo de aplica o de algumas das pr ticas aqui referidas e g gera o autom tica de c digo desenvolvimento conduzido por modelos utiliza o de notacdes padronizadas como o UML No Cap tulo 6 s o apresentadas as conclus es e s o indicadas algumas propostas de trabalho futuro Quando n o for explicitado entende se desenvolvimento por desenvolvimento do sistema de informa o P g 9 Pag 10 2 Estado de Arte Neste cap tulo realizada uma s ntese da evolu o das nota es e metodologias na rea da modelac o de sistemas de informac o A compreens o desta evoluc o ainda que muito resumida contextualiza as op es tomadas nomeadamente quanto escolha do UML e padr es associados como linguagem de modela o S o ainda caracterizadas as ferramentas usadas no dom nio do desenvolvimento aplicacional e da modela o Estas ferramentas produzem os artefactos que t m de ser relacionados entre si tendo sido por isso estudadas no mbito deste trabalho de investiga o O UML a nota o usada ao longo do trabalho de investiga o sendo abordado juntamente com os padr es associados na sec o seguinte A gera o autom tica usada por vezes nas ferramentas estudadas uma das t cnicas usadas para a produ o de artefactos no contexto do desenvolvimento aplicacional S o explicitadas por essa raz o as diferentes abordage
136. contradit rias e Itera o sobre regras Os mecanismos de execu o iterativa de regras incluem a recursividade o ciclo iterativo imperativo e a aplica o repetida at ser cumprida uma condi o e Faseamento O processo de transforma o pode ser organizado em diversas fases onde cada uma das fases tem um prop sito espec fico e apenas algumas regras podem ser invocadas em cada fase Por exemplo aproxima es orientadas para a estrutura e g OptimalJ t m uma P g 32 fase separada para criar a hierarquia que cont m o modelo alvo e uma outra fase para indicar os atributos e refer ncias no modelo alvo Num projecto que envolva um n mero significativo de regras importante encontrar abstracc es que permitam uma organizac o das regras Esta pode normalmente ser realizada atrav s das seguintes t cnicas e Mecanismos de modularidade Algumas abordagens permitem o agrupamento de diversas regras em m dulos e g AST e VIATRA Um m dulo pode igualmente importar outro m dulo para aceder ao seu conte do e Mecanismos de reutiliza o Estes mecanismos permitem definir uma regra baseada em uma ou mais regras Em geral os mecanismos de agendamento podem ser usados para regras de transforma o compostas no entanto algumas abordagens oferecem mecanismos dedicados como heran a entre regras e g heran a de regras em AST deriva o em IOTP extens o em CDI especializa o em QVT heran a entre m du
137. crementais em qualquer direc o onde um modelo relacionado alterado ap s a execu o inicial e por fim a capacidade de criar e eliminar objectos e valores para al m de especificar quais os objectos e valores que n o devem ser modificados 2 4 2 A linguagem de rela es Na linguagem de rela es a transforma o entre modelos candidatos especificada atrav s de um conjunto de rela es que devem existir para que a transforma o seja bem sucedida Um modelo candidato qualquer modelo conforme com um tipo de modelo Cada tipo de modelo possui um conjunto de elementos e um nome de forma semelhante a um tipo de dados que num programa limita o conjunto de valores que uma vari vel pode possuir Considere se a seguinte declara o 9cz OR E E A E A S o poss veis transforma es em mais do que dois sentidos considerando se aquelas que relacionam mais do que dois elementos S o por m menos usuais pela dificuldade acrescida tanto da sua especifica o como da sua manuten o posterior P g 42 transformation umlRdbms uml SimpleUML rdbms SimpleRDBMS Nesta declara o denominada umlRdbms existem dois tipos de modelos candidatos um e rdbms O modelo uml declara o SimpleUML como seu metamodelo assim como o modelo rdbms declara o SimpleRDBMS como seu metamodelo Uma transforma o pode ser invocada tanto para verificar dois modelos quanto a coer ncia como para modificar um dos modelos de forma a
138. cto 7 Person Human Artefactos Nao Equivalentes Name Name BirthDate BirthDate Artefactos Coerentes Person Human is alias of is alias of Human Person Artefacto 8 Artefacto 9 Person Human Artefactos Nao Equivalentes Name Name Age BirthDate ne N o Coerentes Person Human is alias of is alias of Human Person Figura 3 4 Coer ncia entre artefactos Apesar da relac o bin ria identidade relacionar express es pode dizer se que estas s o sempre convertidas em valores ap s a sua avalia o pelo que poss vel dizer se que verifica as seguintes propriedades a O reflexiva ou seja Vae V aea b O sim trica ou seja Va be V a amp b gt boa 3 c O transitiva ou seja Va b ce V asbeboc gt a Sc Como simplifica o considere se agora apenas as express es sobre um artefacto E a Para cada artefacto a existe sempre uma ou mais express es Eg definidas da seguinte forma 4 Eg a Oa a A Facilmente se verifica que o conjunto de casos possiveis para Eg a infinito visto ser sempre possivel encontrar uma expressdo mais complexa do que a anterior com o mesmo resultado Uma rela o de coer ncia entre os artefactos a e a definida por uma express o E a O Enlay a aye A 5 P g 62 Generalizando 5 para mais de dois artefactos possivel definir uma relac o de coer ncia entre dois conjuntos de artefactos a e a como sendo E a o Enfa y at
139. ctos Podem igualmente ser artefactos outros objectos num contexto aplicacional distinto e g um certo par grafo inclu do num documento uma tabela num SGBD relacional uma imagem numa ferramenta de edi o gr fica Existe actualmente uma infraestrutura arquitectural IEEE 1471 Hilliard 07 cujo modelo se apresenta na Figura 3 2 e que tem alguns pontos de contacto com a proposta do ReacT MDD De forma a permitir entender a rela o entre os dois modelos foram mantidos os termos em L ngua Inglesa no primeiro caso Uma Architectural Description representa a descri o de uma Architecture de um System sendo um conjunto de produtos que documentam a arquitectura Hilliard 07 Assim sendo uma Architectural Description um artefacto tal como o uma View um Rationale e o pr prio Model Os conceitos est o representados por System Architecture Mission e Environment dos quais os dois primeiros est o contidos na no o de modelo e os restantes s o irrelevantes neste contexto 13 A defini o pode parecer c clica se se considerar o metamodelo mais geral A solu o considerar um metamodelo suficientemente gen rico que consiga descrever o modelo impl cito Esta solu o diferencia o significado do modelo do conjunto de s mbolos atrav s do qual representado Note se ainda que apesar de uma defini o de um modelo se considerar completa esta recorre eventualmente a um conjunto de s mbolos definidos por outra linguagem
140. ctos de uma aplica o s o rastre veis Por m usar se a forma indicada enquanto simplifica o P g 73 Perspectiva Relacional Perspectiva Generativa Artefactos Artefactos Artefactos Artefactos Existentes Existentes Existentes Novos 8 NG Pd As Mn id En o oe 9e N 2 Novos Rastos Novos Rastos Perspectiva Composta Figura 3 10 Perspectivas sobre a cria o de rastos e artefactos A utilidade da gera o autom tica de artefactos a partir de rastos evidente No entanto esta perspectiva levanta problemas pr ticos se se considerar aplica es que j existem com artefactos bem definidos e est veis inclusivamente relacionados com tecnologias legadas Neste contexto pode ser necess rio definir rela es de coer ncia particulares a determinados artefactos Tome se o seguinte caso Entre outras fontes de dados uma dada aplica o recorre a uma tabela X que tamb m utilizada por outras aplica es necess rio que o nome desta tabela n o mude visto n o ser j poss vel manipular a estrutura da base de dados Por si s a perspectiva generativa n o resolve o problema referido necess rio que a defini o da tabela X n o seja novamente gerada por isso necess rio criar um rasto entre um elemento conceptual e a tabela referida e eventualmente o rasto inverso Esse rasto criado numa perspectiva relacional na medida em que passa a relac
141. cutar transformac es localizadas como UmlCleaning 2 a capacidade de executar uma instancia o expl cita da transforma o atrav s do operador new e 3 a capacidade de invocar opera es de alto nivel sobre modelos como a opera o copy D 11 Reutilizac o em operac es de mapeamento A linguagem fornece dois mecanismos de reutiliza o ao nivel das opera es de mapeamento heran a de mapeamentos ou fus o de mapeamentos Uma opera o de mapeamento pode herdar de uma outra opera o de mapeamento No que diz respeito sem ntica de execu o o mapeamento herdado executado depois da sec o de inicializa o do mapeamento que est a herdar O exemplo seguinte ilustra a utiliza o da heran a de mapeamento O mapeamento que cria colunas RDBMS estrangeiras reutiliza o mapeamento definido para criar colunas RDBMS normais mapping Attribute attr2Column in prefix String Column name prefix self name kind self kind type if self attr type name int then NUMBER else VARCHAR endif mapping Attribute attr2ForeignColumn in prefix String Column P g 141 inherits leafAttr20rdinaryColumn kind foreign Dentro de uma transforma o uma opera o de mapeamento pode tamb m declarar uma lista de opera es de mapeamento que complementa a sua execu o A este processo chama se fus o de mapeamentos Em termos de execu o a lista ordenada de mapea
142. dade de reagir a altera es incorrectas permitindo a rastreabilidade reactiva constitui um novo tipo de aplica es ou pelo menos uma nova funcionalidade Vendo o problema de outra forma pode afirmar se que o que se pretende com esta nova categoria de aplica es realizar de forma sistematizada e o mais automatizadamente poss vel as ac es de acompanhamento do desenvolvimento e manuten o para que todas as decis es P g 98 tomadas sobre um nivel conceptual n o sejam comprometidas pela implementac o desses conceitos num outro n vel N o importante para esta abordagem se o utilizador desenvolve modelos a partir de c digo ou vice versa Os artefactos existem podendo ter um car cter permanente e g num sistema legado s o criados pelos utilizadores ou s o gerados automaticamente e a propagac o de alterac es deve ser feita em todos os n veis conceptuais A framework proposta pode operar em conjunto com as ferramentas ja utilizadas para a modelac o e desenvolvimento de sistemas de informac o sendo ortogonal s metodologias e linguagens utilizadas Embora a aplica o produzida segundo a framework constitua no estado actual um prot tipo permitiu verificar a exequibilidade dos conceitos apresentados A cria o de rela es de coer ncia entre artefactos produzidos por diferentes aplica es permitiu aumentar o n vel de confian a nos artefactos documentais Apesar de existir uma verifica o da coer ncia o e
143. das vari veis podem j ter liga es a elementos do modelo e g resultantes da avaliac o de um bloco when ou de outras express es de templates Nesse caso a correspond ncia realizada encontrando se as liga es necess rias para que todas as vari veis tenham uma ligac o resolvida No exemplo dado todas as vari veis da express o c p e cn ser o ligadas iniciando se pela vari vel c que raiz do dominio No mesmo exemplo a vari vel p deve j ter uma liga o resultante da avalia o da express o PackageToSchema p s pertencente ao bloco when A avaliac o continua filtrando todos os objectos do tipo Class no modelo uml eliminando todos os que n o tenham nas suas propriedades os valores dados na express o de template Neste caso todas as classes que n o tiverem a propriedade kind marcada como Persistent s o exclu das da compara o Para propriedades que s o comparadas com vari veis tais como name cn podem surgir dois casos 1 Se a vari vel cn j tem uma liga o a um valor ent o cada classe que n o tenha o mesmo valor para a propriedade name exclu da 2 Se a vari vel cn est livre i e ainda n o tem o seu valor resolvido ter uma liga o ao valor da propriedade name para todas as classes que ainda n o foram filtradas por outras compara es de propriedades O valor de cn poder ser usado noutro dom nio ou podem ser acrescentadas restri es no bloco where P g 45 A compara
144. de objecto liga se a um elemento da colec o Se um template de objecto usado ent o todos os elementos da colec o devem corresponder ao padr o especificado pela express o de template de objecto Da mesma forma todos os elementos da colec o devem satisfazer a express o das partes e Selec o de membros A express o de compara o neste caso uma vari vel liga se a um elemento da colec o Se o tipo da colec o uma sequ ncia ou um conjunto ordenado a express o de compara o liga se ao primeiro elemento da colec o A express o das partes que s pode ser uma vari vel liga se ao resto da colec o z e PropertyTemplateItem Uma item de template de propriedade usado para especificar restri es aos valores das propriedades do elemento do modelo que est a ser comparado Existe ainda o package QvTRelation que inclui os conceitos relativos linguagem de rela es do modelo QVT rootVariable 1 Rule Domain from QVTBase from QVTBase relationDomain E 0 1 RelationDomain Relation isTopLevel Boolean DomainPattern domal nPatte m 1 1 mlatonimplementation relation mplementation inDirectionOf 441 yy 1 TypedModel from QVTBase Figura C 3 Modelo do Package QVTRelation templateExpression TemplateExp from QVT Template Os conceitos presentes no package QvTRelation s o os seguintes e Rel
145. de coer ncia s o normalmente diferentes embora seja poss vel um rasto reflexivo envolvendo diferentes express es para um mesmo artefacto Assim sendo r e R diz se que este um rasto reflexivo sobre o artefacto a se e s se Arie R a A r a Ax amp Ena O Enla D Em ax D E a 8 sendo R V x V gt true false Generaliza se a noc o de valor do rasto para quaisquer artefactos atrav s de uma aplicac o alg brica denominada val tal que val r ax ay 9 sendo val Rx Vx V gt true false nil A aplicac o anterior val r a ay designa se como valor do rasto r para dados dois artefactos a ay num dado momento resultando da avalia o da rela o de coer ncia respectiva tomando para o c lculo esses dois artefactos a e ay O rasto pode ser ou n o v lido tal como pode n o estar 16 Na verdade usa se aqui uma simplificac o bvia pelo facto de o rasto poder ser definido entre diferentes conjuntos de artefactos a e a seguindo a defini o dada de rela o de coer ncia No entanto o lado P g 63 definido para os artefactos em questdo Por isso o seu valor para dois artefactos em concreto pertence ao conjunto dos valores true false nil A definic o 9 na verdade um caso particular visto representar uma avaliac o sobre dois artefactos explicitamente identificados A no o de valor tem de ser ampliada para conter rela es entre artefactos implicitamente
146. decis es de modo a garantir a seguran a das barragens Em complemento o gestBarragens apresenta mecanismos avan ados de consulta e an lise da informa o e g suportados por sistemas de informa o geogr ficos e por sistemas de reporting e mecanismos de sincroniza o da informa o entre as diferentes inst ncias do sistema mantidas por entidades distintas e g LNEC INAG donos de obra O gestBarragens tem uma interface web e est dispon vel para um n mero restrito de utilizadores que fazem parte das organiza es intervenientes na opera o manuten o e fiscaliza o das barragens no territ rio nacional e g LNEC EDP INAG O gestBarragens envolve diferentes tecnologias como um SGBD Oracle um SGBD Microsoft SQL Server um servidor Web MS IIS um servidor SIG ESRI ArcIMS Naquilo que diz respeito ao presente caso de estudo foram apenas considerados os artefactos referentes ao c digo classes CH s tabelas geridas pelo SGBD Oracle e aos modelos criados em Enterprise Architect P g 90 gB SIG Geo Comum Geo Obra Geo Rede Observag es gB Documental Geo Rede Observa es Geod sicas 1 Documentos ET Pastas T V gB Sistema De Observac o use T Observa es use MEA AGA Observa es Comum 1 i i 1 if 1 1 i V yV gB Suporte 1 i use Gest o de Entidades i A gt Gest o de Localidades
147. defini es de bases de dados Por isso nesta sec o a express o c digo gerado n o designa apenas o significado usual anteriormente indicado Ser em vez disso aplicada para incluir qualquer artefacto pass vel de ser gerado automaticamente desde que este tenha uma descri o textual A gera o de c digo pode ser representada por um mapeamento entre duas ou mais linguagens Existem diversas formas de se implementar este mapeamento que se traduzem em processos de gera o distintos Existem diversos padr es j definidos Voelter 03 para a gera o autom tica que ser o abordados em seguida O estudo das formas de integra o do c digo gerado com o c digo n o gerado n o se encontra ainda muito aprofundado pelo que se prop e igualmente uma classifica o das mesmas Gera o autom tica b sica Segundo uma abordagem simples existe uma aplica o que transforma um input com o c digo inicial num output com o c digo final O input pode ser um ficheiro com um modelo inicial escrito numa linguagem de modela o ou de programa o O modelo de output pode ser um programa ou parte dele um esquema de base de dados um modelo ou qualquer outro artefacto necess rio ao desenvolvimento Motor da Gera o Modelo de Input Modelo de Output y Figura 2 9 Elementos da gerac o autom tica b sica 6 n La Um diagrama desde que possa ser represe
148. delos CIM e PIM e Integra o Existe n o s a implementa o como a concep o do sistema actual quando se realiza a integra o por isso a produ o de pontes de integra o de dados pode ser automatizada tal como a liga o a outros elementos a serem integrados e Manuten o existe o modelo de concep o numa forma autom tica o que d aos programadores acesso directo a especifica o do sistema tornando a manuten o mais simples Figura 2 7 Representac o das diferentes camadas do MDA e dos mapeamentos poss veis entre elementos de diferentes camadas e Testes e simula o como os modelos desenvolvidos podem servir para gerar c digo podem igualmente ser validados quanto a requisitos testados em diversas infra estruturas e ainda ser usados para simular o comportamento do sistema a ser modelado Como em qualquer linguagem de modela o tamb m no UML poderia ocorrer o problema do excesso falta de especificac o Quando existe excesso de especificac o os diagramas produzidos recorrendo linguagem de modelac o identificam correctamente os conceitos envolvidos No entanto nesse caso visto que o excesso de especificac o resulta normalmente num aumento dos elementos conceptuais dispon veis podem ocorrer os seguintes problemas a linguagem pode tornar se dif cil de aprender devido sua especificidade os diagramas podem tornar se dif ceis de ler para quem n o tem um conhecimento espec fico da rea e
149. desempenhar outras fun es no desenvolvimento A partir da vers o 2005 a ferramenta passou a integrar um diagrama de classes sincronizado com o c digo Para al m de plugins que podem ser acrescentados a ferramenta existem ainda outros mecanismos de adicionar funcionalidades Um destes mecanismos DSL Designer foi usado no desenvolvimento do prot tipo ReacT Workbench para permitir a constru o de uma linguagem visual de defini o de metamodelos Foi ainda usado outro mecanismo associado a linguagem T4 para a criac o de templates de gerac o autom tica de c digo S o ainda relevantes para este trabalho outras aplica es que envolvem a gera o de c digo sem no entanto se enquadrarem nas duas categorias de aplica es anteriores AndroMDA Este projecto n o comercial teve por objectivo inicial criar uma ferramenta utilizada por programadores da linguagem Java que facilitasse algumas tarefas rotineiras de escrita de c digo na plataforma J2EE a partir de modelos descritos em ficheiros XMI Posteriormente a ferramenta evoluiu abarcando a gerac o de c digo para outras plataformas No entanto pelo menos por enquanto ainda continua a ser utilizada quase exclusivamente para a gerac o de componentes J2EE O AndroMDA n o pretende ter qualquer esp cie de sincronizac o entre os modelos e o c digo gerado limita se apenas a facilitar essa gerac o Codagen Codagen Esta aplicac o pode ser integrada num CASE e g IBM Rational R
150. desempenho quando comparada com outras ferramentas comerciais Enterprise Architect Sparx Systems Ferramenta CASE que permite o desenho completo dos treze diagramas UML 2 0 Inclui uma maneira de realizar diversas transforma es de modelos designadas transformadas atrav s de templates criados numa linguagem pr pria A ferramenta n o elimina ou modifica elementos que n o tenham sido originalmente gerados permitindo acrescentar e manter P g 115 com seguranca c digo n o gerado A ferramenta presume que uma alterac o ao modelo sempre feita no n vel conceptual mais elevado sendo feita a sua propagac o ao s n vel is mais baixo s Existem diversas transforma es pr definidas e g DDL EJB Entity EJB Session Java XSD e CH que limitam se a transformar alguns aspectos estruturais dos modelos criados Permite tamb m a gerac o e a edic o de documentac o em formato RTF recorrendo a uma editor gr fico ff Hoteiszargo Diagrama de Classes ArgoUML Sn Ficheiro Editar Visualiza o Criar Arranjo Gera o Cr tica Ferramentas Ajuda B ajB 5s mm E aja BE B EE E centrado em Pacotes SOE e Bls m BB ate iB IE Ordenar Por Tipo Nome v T a Diagrama de Classes Diagrama de Casos de Utiliza Pd Sem nome Generalization nrPorta String T Sem nome Generalization estado String Sem nome Association tipoQuarto String Sem nome Associat
151. didos em tarefas simples e complexas por sua vez divididas em subtarefas O processo de inicia o serve para identificar as necessidades da organiza o os seus objectivos e as suas expectativas naquilo que diz respeito a este tipo de ferramentas Reconhece se assim a especificidade das necessidades de cada organiza o atrav s de factores t cnicos e n o t cnicos O ISO 14102 define 125 caracter sticas at micas organizadas numa hierarquia que podem ser consideradas e inclu das num processo de avalia o espec fico Uma das cr ticas apontadas a este standard a defini o das caracter sticas ser demasiado vaga Este ponto fundamental se for necess rio comparar avalia es realizadas por diferentes entidades Se o significado dado s caracter sticas for diferente mesmo que ligeiramente os dados n o podem ser comparados Infelizmente n o existe consenso na ind stria quanto terminologia a adoptar o que torna este problema muito comum Esta situa o usual numa rea do conhecimento nova como o caso desta Assim diferentes empresas mesmo utilizando o standard ISO 14102 ou outro qualquer podem chegar a resultados absolutos diferentes pesando diferentemente as caracter sticas identificadas O pr prio standard releva um outro problema inerente natureza da avalia o Mesmo considerando que as caracter sticas est o correctamente definidas a avalia o das mesmas por vezes subjectiva devido ao facto delas p
152. dois casos particulares Uma ac o de cria o implica uma rela o T sendo indicada por c tg Uma ac o de elimina o implica uma rela o T gt sendo indicada por a t De a torna se evidente que uma acc o genericamente n o uma aplicac o no sentido alg brico do termo Um evento materializado ap s existir conhecimento de uma acc o sobre um artefacto Esse conhecimento pode ser a priori ou a posteriori Como muitos dos artefactos s o produzidos por ferramentas espec ficas e exteriores a pr pria aplicac o de rastreabilidade esse conhecimento P g 75 variar consoante o nivel de controlo sobre os pr prios artefactos Caso exista um mecanismo que permita conhecer a inten o de realizar uma ac o sobre um artefacto bem como de interromper essa ac o esse conhecimento pode ser a priori Por m na generalidade dos casos poss vel assumir que o evento acontecer a posteriori Ac o De Sincroniza o age sobre d desencadeia origem Decis o De Sincronizac o 1 Artefacto Tar desino me requer Evento Rasto enumeration 1 TipoAccao Figura 3 11 Metamodelo do mecanismo de eventos sobre artefactos Como um rasto ele pr prio um artefacto poss vel considerar rastos sobre rastos bem como c Decis o de Sincronizac o Tem sito gt N o
153. dos de alguma forma e Mapeamento PIM PIM Neste caso os dois modelos s o independentes da tecnologia mas est o a n veis diferentes de abstrac o ou explicitam vis es diferentes sobre o sistema existindo por m depend ncias entre alguns elementos dos dois modelos e Mapeamento PIM PSM Neste caso um dos modelos independente da tecnologia e o outro dependente Os elementos que est o relacionados admitem um mapeamento que se traduz normalmente numa gera o de c digo no sentido PIM gt PSM Como exemplo tome se a deriva o de um diagrama de classes para um diagrama de tabelas e Mapeamento PSM PSM Ambos os modelos s o dependentes da tecnologia eventualmente diferente mas existe uma rela o entre alguns elementos dos dois modelos e g os nomes de algumas classes de um componente escrito em CH t m de ser iguais aos das classes escritas em Java num outro componente e Mapeamento PSM C digo A deriva o de um diagrama de tabelas para o c digo SQL correspondente cria o dessas mesmas tabelas um exemplo deste tipo de mapeamento Neste caso as altera es feitas estrutura da base de dados t m um mapeamento perfeito no diagrama de tabelas podendo este ser feito nos dois sentidos Existem consequ ncias do MDA a diversos n veis OMG 03 P g 26 e Implementa o uma nova infra estrutura de implementa o pode ser integrada atrav s da concep o j feita recorrendo se aos mo
154. e criado um ficheiro de texto cuja sintaxe definida no template O template dividido em parcelas de c digo execut vel e de texto literal O c digo execut vel incluido no interior de tags it gt lt H d HO H e lt H i D se em seguida um exemplo de um template criado para a gerac o de metamodelos a partir de um diagrama No exemplo indicado na Figura 4 6 definido o metamodelo de um fornecedor externo Database lt template nherits Microsoft VisualStudio TextTemplating VSHost ModelingTextTransformation language CE gt p Model name lt this ModelRoot Name gt gt lt output extension xml 4 lt Q MetamodelLanguage processor MetamodelLanguageDirectiveProcessor requires fileName Database mmt 4 lt import namespace System Collections Generic gt lt xml version 1 0 encoding utf 8 gt lt lt foreach ModelType type in this ModelRoot Types ModelClass modelClass type as ModelClass if modelClass null amp amp modelClass IsAbstract MC MetamodelLanguage InheritanceModifier Abstract d ModelClass name lt type Name gt lt if modelClass Kind EntryPoint gt kind EntryPoint 4 gt gt Attributes lt foreach string s in getAttributes modelClass gt Attribute name lt s to lt d P g 170 lt Attributes gt
155. e de conceitos A abordagem usual a de limitar o tratamento dos artefactos aos conceitos estritamente relevantes Por exemplo numa aplica o CH podem ser tidos em conta conceitos como Classe Vari vel de inst ncia M todo Todos estes conceitos t m uma rela o evidente com os elementos correspondentes dos diagramas de classes UML Pelo contr rio conceitos como atribuig o ou decisGo podem ser ignorados pelo menos numa primeira fase As consequ ncias negativas deste tipo de simplificac o dizem respeito a eventual producdo de c digo n o compil vel Tome se como exemplo o seguinte segmento de programa em Ct public class Pessoa public string nome public int idade 0 um P g 70 public class ColeccaoPessoas public List lt Pessoa gt lista new List lt Pessoa gt public void CriarPessoa Pessoa p new Pessoa p nome Console ReadLine lista Add p Console WriteLine Acrescentou 0 lista p nome i Considere se ainda o diagrama da Figura 3 8 no qual estdo representados alguns dos conceitos anteriormente indicados Pessoa lista ColeccaoPessoas nome string Y CriarPessoa void idade int 0 Figura 3 8 Diagrama de classes UMLreferente a um segmento de progama em C 1 Suponha se que o diagrama de classes passa a ser o da Figura 3 9 atrav s da mudanca do identificador da classe Pessoa para Cliente Ap s a substitui
156. e g pertencentes a uma l ngua natural s mbolos gr ficos como linhas e pol gonos definida implicitamente P g 59 Com a comparac o anterior demonstra se a necessidade da criac o do modelo da Figura 3 1 Mission fulfills I7 E influences hasan Environment System Architecture has is described by Tut 1 identifies E provides g Stakeholder 4 Architectural Description Rationale ex iz 1 4 is important to 1 identifies selects 1 1 7 organized by lt used to cover 3 c conforms to 3 Concern View point View To A aggregate has source participatesin 0 1 dest Mt establishes methods for Library Viewpoint de Model Figura 3 2 Infraestrutura conceptual IEEE 1471 adaptado de Hilliard 07 3 3 Relac es de depend ncia entre artefactos Conforme foi considerado anteriormente um artefacto pode conter outros artefactos Importa agora considerar as diversas rela es que se podem estabelecer entre esses artefactos tendo em vista acrescentar ao modelo da Figura 3 1 os respectivos conceitos Considera se que dois artefactos s o equivalentes quando t m a mesma representac o dos respectivos elementos do modelo conceitos Na Figura 3 3 mesmo considerando que as classes Person e Human representam o m
157. e n vel mais alto sejam verificadas assim como todas as rela es abaixo devem ser verificadas sempre que s o invocadas directamente ou transitivamente por um bloco where de uma outra relac o Uma relac o de nivel mais alto tem a palavra reservada top que a distingue sintacticamente transformation umlRdbms uml SimpleUML rdbms SimpleRDBMS top relation PackageToSchema top relation ClassToTable relation AttributeToColumn O dominio alvo determina se uma relac o deve ou n o ser garantida tal concretizado atrav s das palavras chave checkonly e enforced Quando uma transforma o garantida no sentido de um dominio checkonly este simplesmente verificado para se saber se satisfaz a rela o Quando a transforma o executada no sentido de um modelo enforced se a verifica o falha o modelo alvo alterado para que esta passe a ser verificada No exemplo seguinte o dom nio para o modelo uml est marcado como checkonly e o dom nio para o modelo rdbms est marcado enforce relation PackageToSchema map each package to a schema checkonly domain uml p Package name pn enforce domain rdbms s Schema name pn Se a execu o for no sentido do uml Figura 2 18 e existir um schema em rdbms para o qual n o existe um package com o mesmo nome no uml tal deve ser reportado como uma incoer ncia Assim sendo n o criado um package porque o modelo um n o garantido apenas a sua exis
158. e s mbolos que est o definidos na linguagem Ap s esta fase estar completa utiliza se o segundo componente o analisador sint ctico para produzir uma representac o em rvore do programa A representac o em rvore necess ria para que se consiga produzir o mapeamento entre o c digo propriamente dito e o modelo que lhe est subjacente assim possivel produzir as alterac es necess rias aos modelos ou gerar o c digo correspondente A implementa o dos parsers de linguagens de programa o foi feita recorrendo a uma representac o orientada por objectos dos elementos sint cticos identificados na sintaxe BNF bem como programa o do tratamento dos dados e dos comportamentos respectivos P g 169 Anexo Linguagem de Templates Uma das linguagens de programac o usadas durante a implementacdo do projecto a Text Templating Transformation Toolkit T4 Gienenow 08 Esta linguagem utiliza uma linguagem auxiliar CH ou VB NET para gerar c digo noutra linguagem qualquer O c digo da linguagem auxiliar inserido para realizar opera es que criam valores no ficheiro resultado O ficheiro de texto criado pode ter c digo noutra linguagem qualquer visto este ser um resultado da gerac o autom tica directa atrav s do template e do modelo criado no m dulo ReacT Designer Nesta linguagem pode ser usada uma linguagem de programac o como o CH ou o VB NET para criar c digo noutra linguagem qualquer Na verdad
159. e tem de estar terminada Como noutras metodologias na AE encontram se rela es conceptuais entre alguns dos artefactos produzidos e g DFDs L gicos e DFDs F sicos DFDs e descri o dos respectivos processos e arquivos de dados No entanto o tratamento da rastreabilidade como tal n o foi sequer abordado em ferramentas autom ticas STEP O desenvolvimento do STEP Standard for the Exchange of Product model data Schenck et al 94 foi iniciado em 1984 tendo sido tornado uma norma ISO 10303 em 1994 Foi criado com o objectivo de permitir a descri o e partilha de informa o de um produto ao longo do seu ciclo de vida usualmente em ind strias como a autom vel naval aeroespacial e constru o civil no entanto o seu mbito cedo foi alargado a diferentes reas Neste tipo de ind strias que envolvem um grande n mero de organiza es em cada projecto muito importante que todos os intervenientes partilhem os mesmos modelos principalmente de dados independentemente da tecnologia que cada um utiliza O STEP permite que um modelo criado numa dada ferramenta com uma nota o escolhida atrav s de uma certa metodologia seja partilhado com outra equipa fora ou dentro da organiza o que utilize ou n o a mesma metodologia nota o ou ferramenta Para isso foi criada a linguagem textual Express tamb m ela uma norma ISO 10303 11 para suportar o STEP O Express tornou o STEP como uma das primeiras linguagens de model
160. e uma fun o uma lista ordenada de express es que s o executadas em sequ ncia Uma func o pode alterar os pr prios par metros e g uma lista pode ser passada como par metro e os seus valores podem ser alterados dentro do corpo e o seu efeito ser vis vel depois do fim da chamada da opera o Uma fun o de selec o uma fun o que n o altera os seus par metros As fun es permitem escrever facilmente opera es de selec o na medida em que o utilizador n o est limitado a escrever apenas uma express o A palavra reservada return usada para sair ap s a fun o query Class isPersistent Boolean self kind persistent query Association isPersistent Boolean self source kind persistent and self destination kind persistent O exemplo seguinte mostra uma func o de pesquisa mais sofisticada definida usando um bloco de express es query Class checkConsistency typename String Boolean if not typename return false if cl self namespace lookForClass typename return false return self compareTypes cl Demonstra se em seguida a utiliza o de uma fun o com altera o dos par metros helper Package computeCandidates inout list List List if self nothingToAdd return list list self retrieveCandidates return list Pode ser definidas fun es sobre tipos primitivos como strings query String addUnderscores String concat self conc
161. e variar Considerando apenas a integrac o de c digo de uma linguagem de programac o orientada por objectos esta pode ser feita recorrendo a duas formas b sicas com alguns subcasos c digo gerado ligado e c digo gerado preenchido No caso do c digo gerado ligado as classes que constituem o c digo gerado s o mantidas inalteradas podendo existir uma refer ncia das classes escritas manualmente a estas e vice versa A gerac o de c digo ligado inclui os seguintes subcasos e As classes geradas chamam as classes n o geradas necess rio que o c digo n o gerado referenciado pelas classes n o geradas exista antes da gera o Normalmente este tipo de integra o aplica se a uma gera o de c digo que pode chamar bibliotecas ou pacotes de classes j existentes e As classes n o geradas chamam as classes geradas Neste caso presume se que o c digo gerado completado com outro n o gerado atrav s da sua chamada por outras classes escritas manualmente e As classes n o geradas herdam as classes geradas O c digo gerado pode definir um conjunto de propriedades e comportamentos que podem ser herdados pelas classes n o geradas e As classes geradas herdam as classes n o geradas Esta a situa o inversa da anterior e ainda poss vel em linguagens como o C a cria o de classes parciais que podem servir para separar a parte da classe gerada automaticamente do restante conte do P g 39 C digo
162. ealizar algum tipo de c lculo sobre eles mas n o s o parte do resultado esperado A nota o para as propriedades contextuais usa a palavra reservada property Pode ainda ser complementada com o qualificador intermediate se a propriedade for definida como uma propriedade interm dia da transforma o operacional intermediate property Class leafAttributes Sequence LeafAttribute MappingOperation Uma opera o de mapeamento uma opera o que implementa o mapeamento entre um ou mais modelos iniciais e um ou mais modelos finais Uma operac o de mapeamento pode ser dada apenas com a sua assinatura ou tamb m com a defini o de um corpo imperativo Quando n o exista corpo para a opera o esta denominada de opera o caixa preta Este tipo de operac es til para utilizar operac es implementadas noutras linguagens de programa o que de outra forma poderia ser dificil implementar em QVT e g opera es de an lise lexical ou sint ctica Uma opera o de mapeamento define sempre uma rela o onde cada dom nio da rela o corresponde a um par metro da transforma o A condi o when actua como uma pr condi o ou guarda dependendo do modo de invoca o da opera o de mapamento A condi o where actua como p s condi o para a opera o de mapeamento O corpo da opera o estruturado em tr s sec es opcionais A sec o de inicializa o usada para os c lculos anteriores pr pria instancia
163. ecess rias e Especifica o aplicacional Representa uma certa instancia o de uma especifica o arquitectural i e uma ferramenta sujeita s restri es da framework e Especifica o de rastreabilidade Representa a utiliza o de uma ferramenta que implemente a framework ReacT MDD num certo caso pr tico f cil comparar os n veis de especifica o descritos e os n veis conceptuais MDA Assim sendo poss vel comparar a especifica o de rastreabilidade com o N vel MO e g as ocorr ncias do modelo a especifica o aplicacional com o n vel M1 e g as defini es das inst ncias a especifica o arquitectural com o n vel M2 e g a estrutura dos conceitos e a especifica o conceptual com o n vel M3 e g os conceitos que nos permitem definir todos os conceitos do n vel M2 Pag 78 Na Secc o 4 2 descrita a forma de realizar a especificac o arquitectural atrav s de um conjunto de componentes que t m de existir segundo a framework ReacT MDD Seguidamente na Secc o 4 3 s o apresentados alguns aspectos de um prot tipo realizado em conformidade com esta framework 4 2 Arquitectura A descric o conceptual dada at este ponto independente de qualquer tecnologia Todavia a tecnologia pode ser um agente facilitador de uma implementac o de um prot tipo ou at de um produto final Os conceitos apresentados foram colocados em pr tica atrav s de uma framework cuja
164. ect Oriented Software Engineering Ivar Jacobson Magnus Christerson Patrik Johnsson e Gunnar Overgaard Addison Wesley ISBN 0201544350 1992 Jensen 04 Borland Delphi 2005 Reviewer s Guide Cary Jensen Jensen Data Systems 2004 Lenvedovszky et al 04 A Systematic Approach To Metamodeling Environments and Model Trasnformation Systems in VMTS Tihamer Lenvedovszky L szl Lengyel Gergely Mezei Hassau Charaf International Workshop on Graph Based Tools GraBaTs 04 Roma It lia October 2 2004 KBSI i IDEF Family of Methods Knowledge Based Systems Inc http www idef com default html KCSL i KCSL Jackson Workbench http www jacksonworkbench co uk P g 108 Kim et al 02 The complementary use of IDEF and UML modelling approaches Cheol Han Kim R H Weston A Hodgsonb and Kyung Huy Lee Elsevier Science 2002 King 88 Creating Effective Software Computer Program Design Using the Jackson Methodology David King Yourdon 1988 Kline et al 02 Empirical Study of Software Developers Experiences R Kline e A Seffah http citeseer ist psu edu 544831 html 2002 Laddad 03 AspectJ in Action Practical Aspect Oriented Programming Ramnivas Laddad Manning Publications 2003 Le Blanc et al 92 A Structured Approach to the Evaluation and Selection of CASE Tools Louis A Le Blanc e Willard M Korn Proceedings of the 1992 ACM SIGAPP Symposium on Applied Computing technological challenges of the 199
165. eeeesesaaaeaeees 62 Figura 3 5 Metamodelo do rasto cccccccnccononnnnnnnnnnnnononcnoncnnnnnnnnnnnnon nennen nnt nennen nennen nennen nennen 66 Figura 3 6 Dimens es da sincroniza o de artefactos decorrentes da abordagem MDA 69 Figura 3 7 Anota o de textos e utiliza o posterior em opera es de sincroniza o 70 Figura 3 8 Diagrama de classes UML referente a um segmento de progama em CH 1 71 Figura 3 9 Diagrama de classes UML referente a um segmento de progama em CH 2 71 Figura 3 10 Perspectivas sobre a cria o de rastos e artefactos oooooocccncccncononanononnnncnonnnnnannnnnnonoss 74 Figura 3 11 Metamodelo do mecanismo de eventos sobre artefactos 76 Figura 3 12 Tratamento dos eventos cccccccncncnnnnnnnnnnnnnnnnnnnnnnnnnononononnn nnn nennen nnn enne nennen nennen nennen 76 Figura 3 13 Metamodelo do processo de detec o de eventos essen 77 Figura 4 1 Elementos da framework ReacT MDD cs sscccccccescsesessseeceescesceeseneaeeeceecesseesessaseeeees 80 Figura 4 2 Arquitectura da framework ReacT MDD na plataforma NET atrav s do ReacT Workbench 4 earth erret ete tet nr eite teer e ER ERR 81 Figura 4 3 Defini o de uma restri o simples e teste com avalia o de uma subexpress o 82 Figura 4 4 Rela es entre os elementos da MEF CodePlex 10
166. eitos mais espec ficos e g transformac es operacionais operac es de mapeamento Como j referido usa o package ImperativeOCL que uma extens o ao OCL com construc es sint cticas comuns as linguagens de programa o imperativas O package QVTOperational especifica os seguintes conceitos OperationalTransformation Uma transforma o operacional representa a defini o de uma transformac o unidireccional expressada imperativamente Tem uma assinatura que indica qual ou quais os modelos envolvidos na transformac o e define uma operac o de entrada denominada main a qual representa o c digo inicial a ser executado para realizar a transformac o Uma transforma o operacional necessita de uma assinatura no entanto pode n o ter uma implementa o Permite se assim implementa es em caixa preta definidas fora do QVT Uma transformac o operacional pode estender ou aceder atrav s das palavras reservadas extend e access uma transformac o operacional j existente ou uma biblioteca existente ver classes ModuleImport Library P g 148 lt cnumcration ImportKind extension Modulelmport ii kind ImportKind DirzctionKind 1 mo dulelmp ort in E inout out ordered ordered modelPafameter Y ordered u sed ModelType ModelParameter kind DirectionKind relation ned Relation Transformation from QVTRe ation from
167. elos de interac o demonstrando rela es para um determinado cen rio e Uma vez a fase de an lise de dom nio terminada iniciada a fase de concep o que desenvolve a arquitectura do sistema A fase de concep o iterativa e consiste no mapeamento entre a concep o l gica e a concep o f sica onde s o estabelecidos detalhes como processos desempenho local tipos de dados estruturas de dados espec ficas visibilidade e distribui o Burback 98 ent o produzido um prot tipo que ser testado O processo iterado entre a concep o l gica concep o f sica prot tipo e teste Apesar da metodologia indicar a implementa o do prot tipo e o seu teste estes aspectos n o s o explicitados com grande detalhe Existem rela es l gicas entre alguns dos artefactos produzidos e g os modelos de interac o e modelos de objectos partilham da defini o das classes mas n o indicada nenhuma forma de manter a coer ncia entre os artefactos produzidos Object Modelling Technique A metodologia OMT foi criada por James Rumbaugh Rumbaugh et al 90 sendo precursora do UML tal como as duas metodologias anteriores A metodologia compreende as seguintes fases e An lise Defini o do problema e constru o dos modelos de Objectos Din mico e Funcional P g 18 e Concep o do sistema Organiza o do sistema em subsistemas defini o de quest es relacionadas com o armazenamento da informa
168. em constituir ferramentas para a manutenc o da coer ncia entre diferentes artefactos do sistema facilitando at a compreens o do mesmo Tendo em vista a contextualiza o das abordagens de transforma o de modelos bem como a caracterizac o da soluc o apresentada apresentada nesta secc o uma classificac o baseada em Czarnecki e Helsen Czarnecki et al 03 2 3 1 Classificac o das transformac es entre modelos Uma regra de transformac o pode ser vista como uma aplicac o sobre um conjunto partida left hand side ou LHS a um conjunto chegada right hand side ou RHS Tanto o LHS como o RHS podem ser representados usando se uma combinac o dos seguintes elementos 1 vari veis que guardam elementos dos modelos de partida e ou chegada 2 padr es que s o fragmentos dos modelos com zero ou mais elementos 3 express es l gicas declarativas e imperativas que permitem formalizar restri es aos modelos no primeiro caso e realizar c lculos e opera es sobre os modelos no segundo Tanto as vari veis como os padr es podem n o ser tipificados ou s lo sem ntica ou sintacticamente Caso seja sintacticamente tipificada a vari vel associada ao elemento do metamodelo cujas inst ncias dever conter Com vari veis tipificadas semanticamente poss vel realizar mapeamentos mais complexos Por exemplo sendo o tipo sint ctico de uma vari vel express o o seu tipo sem ntico poderia ser express o que
169. emissivo MEF 83 Merise 14 MOF 23 Netbeans Sun One Studio 118 121 Nucleus BridgePoint 116 120 Object Constraint Language OCL 29 OptimalJ 32 116 120 Parsers 168 Power Designer 117 120 QVT 40 Rastreabilidade 72 Rational Rose Suite 117 120 RHS e LHS 31 Sincronizac o 58 Horizontal 68 Interna 68 Vertical de Modelos 68 Vertical de Niveis 68 SSADM 13 STEP 16 Template Gera o autom tica com 36 Linguagem T4 170 Visual Paradigm for UML 117 121 Together 117 120 Visual Studio NET 118 121 UModel 2005 117 121 XDE 31 32 VIATRA 31 33 55 P g 175
170. en where yt varDeclaration identifier lt paramDeclaration gt lt paramDeclaration gt identifier transformation transformation transformation identifier modelDecl modelDecl extends identifier lt identifier gt E lt keyDecl gt lt relation gt lt query gt wy modelDecl lt modelId gt metaModelId metaModelId lt model Id gt lt identifier gt lt metaModel Id gt lt identifier gt keyDecl key classId propertyId lt propertyld gt lt classId gt lt identifier gt propertyId identifier relation top relation identifier overrides lt identifier gt lt primitiveTypeDomain gt lt typecs gt lt domain gt lt checkEnforceQualifier gt domain modelId identifier lt typeCs gt lt propertyTemplate gt oclExpressionCS J implementedby lt OperationCallExpCs gt ver lt primitiveTypeDomain gt primitive domain identifier lt typeCS gt checkEnforceQualifier checkonly enforce when when oclExpressionCS J where where oclExpressionCS J query query pathNameCS lt paramDeclaration gt lt paramDeclaration gt lt oclExpressionCs gt
171. entemente grande do produto anterior para poder ser considerado um novo produto Seguindo com uma evolu o da linguagem Pascal este ambiente de programa o permitia desenvolver aplica es baseadas em componentes atrav s de uma interface gr fica mais intuitiva levando a uma maior produtividade A vers o Delphi 2005 acrescenta a capacidade de se programar n o s na linguagem Delphi evolu o do Pascal como em CH HTML e SQL convergindo com outros IDEs no suporte a diferentes linguagens dentro do mesmo ambiente de programa o A ferramenta permite j o desenvolvimento cooperativo de aplica es atrav s da componente de gest o de vers es e perfis e um optimizador de c digo com cria o de testes para a plataforma NET Eclipse IBM WebSphere O projecto n o comercial Eclipse foi criado tendo como principal patrocinador a IBM O objectivo deste projecto criar um IDE gen rico que possa utilizar diversos compiladores da mesma linguagem ou de diferentes linguagens e editores integrados Atrav s de m dulos que s o acrescentados ao ambiente base o programador adiciona novas capacidades e g compilador de C editor de classes UML interpretador de OCL Esta ferramenta tem uma grande quantidade de m dulos dispon veis sendo a sua maior parte para a linguagem Java Na verdade a quase totalidade dos programadores que utilizam este IDE programam em Java A IBM utiliza muito do c digo desenvolvido no Eclipse na aplica o comercia
172. ento futuro Os fornecedores externos podem ser constru dos de uma forma modular em diferentes linguagens de programacdo sendo independentes entre si Fornecedores Relac es Eventos Rastos EOS QVT Metamodelos Motor de Motor de Motor Res T Desianer Eventos Rastreabilidade QVT 9 ReacT Workbench 4 ide Microsoft Visual Studio Figura 4 2 Arquitectura da framework ReacT MDD na plataforma NET atrav s do ReacT Workbench Os fornecedores externos podem incluir m dulos de acesso a outras ferramentas como SGBDs IDEs processadores de texto ferramentas de desenho gr fico ferramentas CASE entre outras Podem igualmente servir apenas de ligac o aos artefactos produzidos por cada uma destas ferramentas quando uma interac o com as ferramentas que produzem os artefactos mais dificil No que diz respeito aos artefactos de c digo i e produzidos atrav s de uma linguagem de programac o normalmente mais f cil tratar o artefacto directamente do que interagir com uma ferramenta neste caso um IDE Por outro lado no que diz respeito a uma base de dados relacional normalmente mais simples interagir com o SGBD do que com os dados propriamente ditos Na abordagem ReacT MDD em qualquer um dos casos anteriores existe um meta modelo que documenta e uniformiza o tratamento dos dados e estruturas de dados envolvidos O tratamento da conformidade dos artefactos em rela o a
173. erations new List lt String gt List lt String gt attributes new List lt String gt public void InvokeOperation string name params string values switch name case AddTable this AddTable values 0 break case RemoveTable this RemoveTable values 0 break case AddColumn this AddColumn values 0 break case RemoveColumn this RemoveColumn values 0 break case SetName this SetName values 0 break case Fill this Fill values 0 break default Console WriteLine Error break public String Name get set void AddTable String tableName void RemoveTable String tableName void AddColumn String tableName String columnName string dataType void RemoveColumn String tableName String columnName void SetName string name void Fill String pathName public List lt Table gt Tables get set Pag 173 Analise Esruturada 15 AndroMDA 31 119 121 API 34 ArgoUML 115 120 Artiso Visual Case 115 120 BOTL 32 BOUML 115 CASE 1 9 14 19 20 30 69 105 106 107 108 109 111 112 115 116 117 119 120 121 122 123 124 Avaliac o 122 Codagen 119 121 Delphi 118 121 Documentator 119 121 Eclipse IBM WebSphere 118 121 Enterprise Architect 115 120 GreAT 31 55 HBDS 17 IDEF 16 Information Engineering 14 Jackson Structured Programming 12 Jamda 32 LHS e RHS 31 Pag 174 ndice R
174. erface com o utilizador a l gica de neg cio o acesso aos dados e os pr prios dados Figura 5 6 O diagrama de instala o da Figura 5 7 representa os diferentes componentes aplicacionais relacionados com aspectos da infraestrutura tecnol gica P g 91 Interface com o Utilizador oo ASPX Ck A i EN 1 V L gica de Neg cio a Classes C A A Y Camada de Acesso a Dados E Classes C e SQL T i iy Dados pacco BD Oracle Figura 5 6 Arquitectura de software de n camadas do gestBarragens Na Figura 5 9 est representada a forma como os componentes da interface gr fica e g p ginas ASPX interagem atrav s das respectivas ac es que podem ser realizadas dentro de cada componente As relac es de coer ncia entre os artefactos classes C representados na figura ela pr pria um artefacto atrav s dos componentes respectivos que se comportam igualmente como artefactos conseguida de forma gen rica relacionando cada p gina aspx com um artefacto presente num modelo Por m neste caso em particular alguns dos componentes podem existir em diferentes diagramas o que obriga a criar a especificar melhor a relac o de coer ncia criando rastos espec ficos para estes componentes P g 92 Cliente Web Web Browser lacerta Inec pt Em
175. ervada object object s Schema name self name table self ownedElement gt map class2table No exemplo anterior a expressdo de objecto refere se a uma variavel existente denominada s a qual necessariamente tem de ser do tipo Schema A sem ntica desta expressdo a seguinte se a vari vel s tem um valor nulo criada uma inst ncia de Schema e atribui se esta a vari vel A lista de express es do corpo da express o de objecto ent o executada em sequ ncia A express o devolve o valor da vari vel s Se o valor de s tem uma vari vel nula n o ocorre a instanciac o em vez disso o corpo usado para actualizar o objecto existente No mbito de uma express o de objecto as propriedades da vari vel alvo s no exemplo dado podem ser acedidas directamente Por isso a express o de atribui o name self name O mesmo que s name self name As express es de objecto podem ocorrer no contexto de uma opera o de mapeamento No exemplo seguinte usada uma express o de objecto para garantir a exist ncia de um objecto da classe Schema quando exista um objecto da classe Package cujo o nome n o seja iniciado com o uon car cter P g 135 mapping Package packageToSchema result Schema when self name startingWith lt gt _ population object result Schema name self name table self ownedElement gt map class2table Como a opera o de mapeamento pac
176. es da interacc o Gerir Documentos A ferramenta CASE usada na documentac o do projecto foi o Enterprise Architect Sparx 10 Na Tabela 5 1 est o presentes para cada uma de tr s vers es do reposit rio os respectivos totais de artefactos que representam elementos conceptuais UML Embora existam outros elementos estes sdo os mais importantes em n mero de ocorr ncias Na vers o A foram introduzidos os elementos constantes da documentac o pr via manualmente e por importac o de artefactos existentes Na vers o B foram criados manualmente novos diagramas e foi feita a importac o de um conjunto de artefactos e g classes CH que levaram cria o de um elevado n mero de elementos UML Na vers o C os modelos foram refinados e foram eliminados muitos elementos UML j existentes que serviram apenas como base para a constru o de alguns diagramas e g diagramas de componentes 21 3 E 3 5 z Obviamente n o existe propriamente um resultado final na medida em que o projecto continuamente alterado ao longo do tempo Considera se aqui como a entrada em produ o do projecto como ponto de compara o P g 95 Artefactos Total Classes C 1815 Ficheiros ASPX 426 Ficheiros ASCX 52 Tabelas na BD 397 Documentos de apoio 5 manuais relat rios etc Diagramas UML 119 Tabela 5 2 Total de artefactos presentes no gestBarragens agregados por tipo Como foi referido anterior
177. es de guarda v lida o valor null imediatamente devolvido Caso contr rio o corpo do mapeamento cuja condi o de guarda v lida executado A assinatura do mapeamento com a disjun o deve estar conforme a assinatura dos P g 157 mapeamentos disjuntos Especificamente o resultado da disjun o tem de ser um super tipo do tipo do resultado dos mapemanetos compostos A forma gen rica da assinatura de um mapeamento a seguinte mapping inout lt contexttype gt lt mappingname gt lt parameters gt lt result parameters gt inherits lt rulerefs gt merges lt rulerefs gt disjuncts lt rulerefs gt refines lt rulerefs gt when lt exprs gt where lt exprs gt A vari vel lt contexttype gt s existe quando o mapeamento declara um par metro contextual Para os par metros resultado o sentido necess riamente out e n o explicitado Para todos os outros par metros o valor dado por omiss o in A declarac o seguinte um exemplo de operac o de mapeamento que define um par metro contextual do tipo Package e uma condic o de guarda Neste caso o mapeamento com uma implementac o em caixa preta na medida em que o corpo n o visivel mapping Package packageToSchema Schema when self name startingWith lt gt _ MappingParameter um par metro de uma opera o de mapeamento tendo um tipo de sentido que restringe as opera es que podem ser realizadas sobre ele
178. esas ab ana Abel EB Sd shed RR Le RAE ERAN sia TA ca adas 25 2 23 Extens es ao UME es a ette eut ken asda zsebeket e ager voe t PR eR Eee tess 28 2 24 OC tete reote sich redet Heres iie te Rt i iden i Era PRU UR va adido anda 29 2 3 Transforma es Entre Modelos e Gera o Autom tica essen 29 2 3 1 Classifica o das transforma es entre MOCEIOS scsscccccceessesssseeeceecessessesssseeeees 31 23 25 Geracao automi tica 4 o ES 35 2 4 Modelo ON Ptr e li 40 24 1 Arquitectura do O Tina daa 41 2 442 Ailinguagemide relacio 42 2 4 8 Correspond ncias entre padrOes ccccnconooooonnnnncnnnnnnnonononnnnnononananonononnnnnnnonannnnnnennnnoss 45 2 4 4 Chaves e cria o de objectos usando padr es ccsscceccesceeceeeceeeceecceeceeeeeeeeeseseeeeeeees 46 2 4 5 Restri es sobre express es e propaga o de altera es cccceseccccceeceececeeeeeeeeeeeeaees 48 2 4 6 Integra o de opera es caixa preta com rela es sese 49 247 Sem ntica das relac es ae etti eee ir ze eek ie e ates tie ta wed 49 2 4 8 Sem ntica da correspond ncia entre padr S cccncnococoonnnnncnnnononannnonnnnnnnnnanannnnnnnncnoss 51 2 5 Coment rios Finals ertet re ortae etre e Lagen an ee a boe e ee eese et eov eee elek 54 3 Rastreabilidade Reactiva 1eeee esee eee eeee esses eese eene enns nens n ensi etn than nnns sisse ss otn sns nss nasse nnns 57 3 1
179. esmo elemento pode se afirmar que os artefactos 1 e 2 ndo s o equivalentes visto terem o meta atributo nome com valores diferentes Person no primeiro caso e Human no segundo Artefacto 1 Artefacto 2 Artefacto 3 Person Human Human Name Name Name BirthDate BirthDate BirthDate Artefactos Artefactos Nao Equivalentes Equivalentes Figura 3 3 Equival ncia entre artefactos A rela o de equival ncia pouco interessante na medida em que demasiado restritiva caso se queira modelar dom nios de alguma complexidade Neste tipo de dom nios existe por vezes a necessidade de se criarem sin nimos para conceitos que s o usados sob vistas diferentes Nesse P g 60 caso o facto de os artefactos ndo serem equivalentes n o significa que os conceitos n o est o representados de forma coerente Na Figura 3 4 os artefactos 4 e 5 representam duas classes em diferentes artefactos que apesar de parecerem representar o mesmo conceito n o t m informa o associada que permita justificar essa afirmac o N o existe nenhuma relac o de coer ncia sobre os dois artefactos que os permita relacionar quanto ao elemento que representam Assim sendo n o podem ser consideradas coerentes Na verdade nem sequer est o relacionadas quanto a coer ncia o que diferente de n o serem coerentes A rela o de identidade definida por compara o atrav s do conceito de vari vel numa linguage
180. espectiva classe de transforma o A implementa o desta opera o tipicamente requer compilar a defini o da transforma o em tempo de execu o O exemplo seguinte ilustra uma poss vel utiliza o para este mecanismo A transforma o Pim2Psm transforma um modelo PIM num modelo PSM Neste ponto o modelo inicial PIM primeiramente anotado usando um conjunto ordenado de packages UML que definem as regras de transforma o a serem inferidas das anota es tendo por base um qualquer formalismo propriet rio orientado por UML Cada package UML definindo uma transforma o transformado na especifica o de acordo com o QVT Quando executada em sequ ncia cada uma das defini es de transforma o QVT acrescenta o seu pr prio conjunto de anota es ao modelo PIM No fim o PIM anotado convertido num modelo PSM usando uma transforma o AnnotadePim2 Psm transformation PimToPsm inout pim PIM in transfSpec UML out psm PSM access UmlGraphicToQvt in uml UML out qvt QVT access AnnotatedPimToPsm in pim PIM out psm PSM main transfSpec gt objectsOfType Package gt forEach umlSpec UML var qvtSpec OVT var retcode new UmlGraphicToQvt umlSpec qvtSpec transform if retcode failed log Generation of the OVT definition has failed umlSpec return if var transf qvtSpec asTransformation log Instanciation of the QVT definition has failed umlSpec return if transf transfo
181. etaClass MetaMetaAttr metaname String Nivel M3 Meta metamodelo MetaMetaAttr meta attributes List lt MetaAttrib gt Meta metaclass MetaAttrib MetaModel ClassTypes MetaClass Class MetaAttr name String P MetaAttr attributes List Attribute Nivel M2 Metam delo MetaClass Attribute Class Autom vel Attribute Matricula String Attribute Marca String Nivel M1 Modelo UML do SI Autom vel 23 45 SP Opel N vel MO Informag o Figura 2 4 Arquitectura do MOF em quatro n veis A especificac o do MOF inclui um conjunto limitado de conceitos de forma a tornar o standard suficientemente gen rico para abarcar todas as implementa es No entanto o MOF extens vel por heran a e composi o permitindo se assim definir um modelo de informa o mais rico que suporte outros tipos de conceitos P g 23 Com uma arquitectura com diversos niveis pode ser utilizado um mecanismo de reflexdo atrav s do conhecimento do nivel superior ao nivel que cont m os objectos a serem tratados Pode se assim extrair toda a metainformac o dos elementos de um diagrama e g os nomes e tipos de atributos das classes existentes conhecendo o metamodelo subjacente Esta quest o ser explorada com maior detalhe posteriormente sendo da maior import ncia para o presente trabalho PrimitiveType
182. etros de sa da Todos os par metros marcados com out incluindo os par metros do resultado t m o seu valor inicializado a nu11 Todos os valores n o nulos in ou inout excepto para os tipos primitivos s o passados por refer ncia No entanto n o poss vel alterar o valor de um objecto marcado como in Depois de passar os par metros o g nero de conformidade dos par metros verificada seguindo se a verifica o da condi o when Se uma destas verifica es inv lida devolvido o valor nu11 Se a condi o de guarda v lida verificado o rasto da rela o para se saber se a rela o ainda se mant m Se tal acontece os par metros out s o preenchidos usando os tuplos de rastreabilidade da rela o e o valor associado aos par metros de resultado devolvido De outra forma o corpo da rela o executado em quatro fases 1 iniciada a execu o da sec o de inicializa o sequencialmente nesta sec o usualmente s o encontradas atribui es invoca es de mapeamentos e selec es ou atribui es expl citas dos par metros de output 2 No fim da sec o de inicializa o executada uma sec o de instancia o impl cita que provoca a instancia o e o preenchimento de todos os par metros out que s o inst ncias de objectos e cujo o valor ainda nu11 o tuplo correspondente ao rasto da rela o preenchido a rela o considerada como v lida e a informa o de rastreabilidade fica dispo
183. ferramentas que produzem os artefactos da estrutura da aplicac o a interacc o pode tornar se mais dif cil de implementar P g 80 A escolha do ambiente de desenvolvimento Microsoft Visual Studio ao longo de diversas vers es deve se a integracdo j existente entre diversas ferramentas nele inclu das e g editor intellisense DSL Designer Uma dessas ferramentas o DSL Designer permitiu implementar o componente ReacT Designer e integr lo com a pr pria operac o do ambiente de desenvolvimento O ReacT Designer usado para construir graficamente os metamodelos inclu dos nos fornecedores externos implementados O ReacT Designer funciona como um template de solu o dentro do Visual Studio tendo uma forma de interagir semelhante aos restantes Foram produzidos diversos templates necess rios a operac o do ReacT Designer para diferentes metamodelos usados na pr pria implementa o Anexo 1 A implementa o dos exemplos estudados foi levada a cabo usando o ReacT Workbench que representa a ferramenta propriamente dita O pr prio ReacT Workbench pode ser visto como uma plataforma industrial Cusumano 10 visto fornecer as funda es comuns e a tecnologia de base que uma organiza o pode usar em diferentes projectos ou produtos neste caso aplica es A inclus o dos m dulos denominados fornecedores externos permite que a ferramenta consiga tratar um maior n mero de artefactos constituindo essa uma das reas de desenvolvim
184. fi INSTITUTO SUPERIOR INSTITUTO SUPERIOR T CNICO T CNICO UNIVERSIDADE T CNICA DE LISBOA ReacT MDD Rastreabilidade Reactiva no Desenvolvimento de Sistemas de Informac o Marco Bruno Correia Costa Mestre Disserta o para o Grau de Doutor em Engenharia Inform tica e de Computadores DOCUMENTO PROVIS RIO Marco de 2010 Disserta o orientada por Prof Doutor Alberto Rodrigues da Silva Professor Associado no Departamento de Engenharia Inform tica do Instituto Superior T cnico Lisboa 2 de Marco de 2010 Resumo A aproximac o emergente MDD Model Driven Development preconiza o desenvolvimento de c digo a partir de modelos eventualmente descritos pela linguagem UML Tanto o c digo produzido como todos os restantes artefactos sdo parte integrante do projecto de desenvolvimento opera o e manuten o da aplica o necess rio um mecanismo que permita a rastreabilidade de todos os artefactos ao longo de todas as fases do projecto independentemente do seu n vel conceptual As rela es que tornam os diferentes artefactos coerentes t m de ser mantidas preferencialmente de forma autom tica O modelo QVT Queries Views Tranformations define transforma es entre modelos usando metamodela o Prop e se neste trabalho de investiga o um modelo complementar ao QVT com os aspectos considerados necess rios rastreabilidade reactiva de artefactos de forma gen rica Com esta abordagem
185. forma o que envolva mais do que dois conjuntos Este tipo de transforma o composta um dos requisitos do QVT como ser mostrado na sec o 2 4 P g 31 corresponde ao inicial podem ser realizadas opera es sobre um subconjunto dos elementos existentes ou a criac o de novos elementos De qualquer forma uma aplicac o deste tipo pode permitir dois tipos de opera es sobre os elementos 1 opera es de cria o modifica o e elimina o dos elementos existentes ou 2 apenas a sua extens o n o permitindo assim a altera o ou elimina o Um regra tem de ser aplicada a um conjunto de elementos do modelo inicial Como esse conjunto pode ter mais do que um elemento a aplica o da regra a cada um dos elementos deve submeter se a uma estrat gia Esta estrat gia pode ser deterministica n o determin stica ou interactiva Uma estrat gia determin stica pode utilizar uma t cnica espec fica de percorrer cada um dos elementos necess rios considerando os como um grafo e aplicando um algoritmo de travessia S o tamb m aplicadas regras escolhendo os elementos atrav s de heur sticas ou atrav s de processamento concorrente O conjunto de elementos alvo usualmente determin stico No caso de uma modifica o no pr prio modelo inicial quando este coincide com o modelo alvo os elementos iniciais da transforma o podem tornar se os elementos alvo Os mecanismos de agendamento da execu o de regras de transforma
186. g refer ncia a informa o vinda de uma fonte externa A forma como esta verifica o feita usualmente um aspecto interno pr pria ferramenta pelo que dificilmente se consegue acrescentar novas funcionalidades que permitam a sistematiza o sen o a automatiza o desta actividade Em vez da manuten o de coer ncia atrav s de um qualquer componente caixa preta importante que esta actividade possa ser parametrizada adequando se s necessidades espec ficas de cada equipa de desenvolvimento An lise de sensibilidade A altera o estrutura de uma aplica o pode ter consequ ncias n o evidentes partida Como exemplo tome se uma altera o ao nome de uma classe Java N o s todas as refer ncias da aplica o a essa classe t m de ser alteradas o que suportado usualmente pela ferramenta de desenvolvimento como pode ser necess rio alterar todos os modelos que referenciam essa classe bem como toda a documenta o resultante Alternativamente pode tamb m ser necess rio deixar inalterados os nomes correspondentes em modelos que lhe dizem repeito estabelecendo se uma rela o entre eles Essa rela o entre artefactos com conte do diferente na medida em que podem ser outros atributos para al m do nome a serem alterados e g o tipo de acesso ap s ser estabelecida pode ser verificada e mantida Uma aparente pequena altera o pode dar origem a um vasto conjunto de altera es o que pode ser evitado
187. grupo de artefactos poss vel colocar a restri o adicional IsEnforced Esta restric o permite que os artefactos em quest o possam ser alterados automaticamente caso o estado de coer ncia entre eles passe a ser incoerente Nessa situac o o valor do rasto falso e invocado um evento que trata a ac o respectiva mi af ReacT Workbench T MEN File Edit View Tools Windows Help ag d as B gi Repository Traces Context a pati M 415 of 5 X Event Te Te B a puru Name Origin Context Origin Atefact Origin Atribute 999 Tm Target Atribute IsEnforce Tables must have domain classes Table Book has an explicit trace to C class Book gt Traces Status Figura 4 6 Defini o de rastos no ReacT Workbench P g 84 A Debugging Microsoft Visual Studio Experimental Hive gt Ea ad File Edit View Project Build Debug Data Tools Test Window Help do a adi 3 A B Debug Any CPU AREA EE Database mmt y A 4 2 NamedElement IG e g El Attributes Name m El Operations SetName string name Column A Fill String pathName DataType A E Attributes Attributes E Operations ZeroMany One El Operations ZeroMany 1910jdx3 SUUBJDBIO ssejo RES uoynjos i El Attributes One El Operations AddTable String tableName Table E Attributes RemoveTable String tableName AddCol
188. haria P g 2 Entre o momento em que uma tecnologia se torna disponivel e a sua adopc o pela industria existe geralmente um intervalo de tempo que tanto maior quanto menos evidentes sdo os ganhos no seu uso Com as ferramentas CASE tem se verificado alguma dificuldade na tomada de consci ncia da import ncia destas quest es pelas equipas de sistemas de informa o livari 96 Chervany et al 98 Foi apontado o facto de que as equipas em que este tipo de ferramentas ndo sdo obrigat rias tendem a n o us las mesmo se estas foram sugeridas e disponibilizadas Existem diversas causas para este facto que v o desde a dificuldade em aprender a operar as ferramentas Zettel 05 uma resist ncia a mudanca na pr pria forma de trabalhar ou um papel menor atribu do as estruturas organizacionais que gerem os sistemas de informac o Albizuri Romero 00 O facto de estas ferramentas implicarem investimentos significativos em recursos financeiros e humanos e em tempo de aprendizagem n o ajuda tamb m a sua adop o Em Kline 02 ainda referido o facto de programadores experientes terem uma atitude mais positiva do que programadores inexperientes apesar de ambos os grupos concordarem na dificuldade de aprendizagem do produto Uma ferramenta seja qual for pode resolver um certo problema correctamente mas se a sua utilizac o implicar um nivel de conhecimento demasiadamente alto medido em tempo e custo de aprendizagem esta deixa de faze
189. i o int d A EEG EE n 0 n de p ginas int cota string data de edi o date estado EstadoExemplar Figura 5 1 Diagrama de classes conceptual dos dados do empr stimo 1 O diagrama foi constru do na ferramenta Enterprise Architect que avisa o utilizador repetidamente cada vez que um identificador constru do com um car cter de espa o que dificulta a gera o directa Nesta ferramenta caso seja feita a gera o de artefactos de c digo C directamente a partir P g 86 deste diagrama o gerador inclui os espacos nos identificadores criando erros sint cticos bvios Como regra a gerac o de artefactos de c digo deve ser feita sobre os diagramas correspondentes aos modelos PSM sen o a sua qualidade est a partida comprometida O diagrama de classes conceptual serve para que o utilizador possa compreender os conceitos independentemente da tecnologia a adoptar Pode considerar se que o diagrama apresentado poderia estar enquadrado num modelo PIM segundo a terminologia MDA referida na sec o 2 2 2 Considere se agora um outro modelo PIM com os identificadores alterados para que a implementa o possa ser mais simples ou para que utilizadores j conhecedores dos pormenores do projecto possam ter uma ideia conceptual do problema Obra S cio Empr stimo efectua t tulo string n de s cio int AA data de sa
190. iados na propria definic o do UML situa se no nivel M3 Os niveis de especificac o do MOF n o dizem nada sobre o nivel conceptual dos elementos que est o a ser modelados Assim possivel ter um modelo A do nivel M2 que representa elementos de hardware coexistindo com um modelo B do n vel M1 que representa elementos conceptuais Nesse caso o modelo A poderia definir uma linguagem usada para modelar elementos de hardware enquanto o modelo B seria um dado modelo de neg cio Foi por isso necess rio identificar uma outra abstrac o que permitisse classificar os diversos modelos do tipo M1 naquilo que respeita sua depend ncia com a tecnologia 2 2 2 Abordagem MDA O standard Model Driven Architecture MDA da OMG tem como objectivo definir uma abordagem para o desenvolvimento de sistemas de informac o separando a modelac o do dom nio de neg cio do seu modelo espec fico para uma plataforma ou tecnologia Este conceito n o propriamente novo como foi referido anteriormente J Yourdon Yourdon et al 78 tinha separado em quatro fases as actividades de modelac o modelo f sico actual modelo l gico actual modelo l gico novo modelo f sico novo A separac o tinha como prop sito conseguir realizar uma nova implementac o modelo f sico novo numa tecnologia diferente da anteriormente utilizada desde que o dom nio se mantivesse inalterado No entanto o MDA representa um passo significativo no contexto actual na medida em que
191. iago Martins Helder Soares Marco Cust dio Novembro de 2006 Silva et al 07a Manual de Utilizador do GESTBARRAGENS Volume 1 Aspectos Gerais e de Suporte v3 0 Coordenadores Alberto Silva Helena Galhardas Eliane Portela Colaboradores Jos Barateiro Hugo Matos Jorge Goncalves Fevereiro de 2007 Silva et al 07b Manual de Utilizador do GESTBARRAGENS Volume 2 Observa es v3 0 Coordenadores Alberto Silva Helena Galhardas Eliane Portela Colaboradores Jos Barateiro Hugo Matos Jorge Gon alves Fevereiro de 2007 Silva et al 07c Manual de Utilizador do GESTBARRAGENS Volume 3 Outros M dulos e Aplica es v3 0 Coordenadores Alberto Silva Helena Galhardas Eliane Portela Colaboradores Jos Barateiro Hugo Matos Jorge Goncalves Tiago Martins Helder Soares Marco Cust dio Fevereiro de 2007 P g 111 Silva et al 08 gestBarragens Sistema Integrado de Gest o da Informac o para o Controlo de Seguran a de Barragens LNEC Especifica o T cnica do Sistema Alberto Rodrigues da Silva Marco Costa Luis de Sousa SlQuant 01 2008 Schenck et al 94 Information Modeling The Express Way Douglas Schenck Peter Wilson Oxford University Press ISBN 0195087143 1994 Sharp et al 03 Microsoft Visual C NET Step By Step John Sharp Jon Jagger Microsoft Press 2003 Sparx 10 Enterprise Architect Sparx Systems http www sparxsystems com au 2010 Stento et al 03 White Pape
192. icalRdbms inout rdbms RDBMS content of the transformation definition A declarac o seguinte define uma transformac o operacional designada Um12Rdbms com uma assinatura formada por dois par metros modelos uml e rdbms com tipos UML RDBMS respectivamente Define tamb m uma marca de metainformac o tag que indica o criador da transforma o transformation Uml2Rdbms in uml UML out rdbms RDBMS tag author Uml2Rdbms Pepe Os m dulos importados transforma es ou bibliotecas s o indicados na mesma instru o ap s os par metros dos modelos usando as palavras reservadas extends ou access As palavras transformation ou library podem ser usadas para documentarem o tipo de m dulo que est a ser importado transformation Uml2Rdbms in uml UML out rdbms RDBMS extends BasicUml2Rdbms extending a transformation extends library UMLUtilities UML extending a library access library MathLibrary accessing a math library Todas as declara es access podem estar em instru es diferentes n o fazendo parte necessariamente do cabe alho Uma transforma o operacional indica um refinamento de uma outra transforma o operacional atrav s da palavra reservada refines transformation Uml2Rdbms in uml UML out rdbms RDBMS refines R UML2RDBMS As classes interm dias e as propriedades interm dias de uma transforma o podem ser representadas usando as palavras reservadas property e class prefixadas
193. ida public interface IProviderContract String ProviderName get String Name get set void Fill params string values List lt String gt GetAttributeNames void SetAttribute string attKey List lt String gt value List String GetAttributeValue string attKey List String GetOperations void InvokeOperation string name params string values List String GetArtefactNames Um fornecedor externo implementado por uma biblioteca que depois usada num dos outros m dulos da ferramenta Dentro de cada fornecedor externo cada uma das classes referentes aos conceitos do metamodelo implementa a interface IProviderContract Dentro de cada biblioteca criada podem existir diversos conceitos que servem de raiz para a navegac o funcionando como a porta de entrada da biblioteca Nesse caso o componente ReacT Designer Figura 4 6 permite marcar o conceito como EntryPoint atrav s de uma metapropriedade denominada Kind O grafo criado pode ser uma rvore ou n o consoante as rela es existentes no respectivo metamodelo A interface IProviderContract implica que sejam implementadas propriedades para identificar cada um dos tipos de artefactos bem como a sua inst ncia O m todo Fill permite actualizar a representac o do artefacto O acesso aos dados espec ficos ao tipo de artefacto feito atrav s da invocac o de m todos que acedem e actualizam uma estrutura de dados que relaciona cada atributo
194. identificados i e pertencentes a um nivel conceptual inferior ao explicitado E g uma avaliac o de uma express o sobre as ocorr ncias do artefacto Classe UML diferente de uma avaliac o da mesma express o sobre o pr prio artefacto O n vel conceptual um valor num rico inteiro dado pela arquitectura MDA Para tal considera se uma aplica o elem a sendo elem AxZ A elem elem a ocorr ncias do artefacto a a um nivel imediatamente inferior 10 elem a a elem a defini o de um artefacto a a um n vel imediatamente superior ia Sendo Z o conjunto dos n meros relativos usualmente considerados na pr tica elem a significa o pr prio artefacto elem a representa todas as ocorr ncias do artefacto ao nivel conceptual imediatamente inferior e assim sucessivamente ainda poss vel entender elem a como sendo o artefacto que define o artefacto a A defini o de um rasto para dois artefactos em particular resulta evidente com as defini es j realizadas A definic o de um rasto entre dois grupos de artefactos igualmente poss vel se se considerar que um artefacto pode ser uma agregac o de outros artefactos Assim sendo a operac o elem a deve ser estendida para conter a enumerac o dos artefactos agregados Complementa se assim a definic o de elem a com a noc o de granularidade elem a sendo elem Ax Z xN gt At elem elem a elem a elem a
195. inal do mesmo aspx Pesquisar Documentos GBDPesquisarDocumentos a a z A aspx aspx Pesquisar Pesquisar Alterar Documento re so UA 5 1 Documentos GBDAlterarDocumento Adicionar Documento Adicionar i GBDAdicionarDocumento L 2 bog A Adicionar 1 pod pa 1 Documento ES Alterar ME i o A EE INN Alterar i 1 1 i Associar IN yd i A ma Associar a E Remover aspx Guardar apre Dissociar Associar Temas Associar Autores lt i gt GBDAssociarTemas Apagar GBDAssociarAutores a i 1 1 i i i 1 Associar sz z 1 1 1 Eu a PoE a aspx i LN Dissociar Associar Obras Associar a Pasta EK 8 Mo 1 Dissociar i GBDAssociarObra gt y gt Associar a Pasta Ku Associar GBDAssociarPasta r a i i i i 1 Gerir i uses Gerir 8 Empr stimo Visibilidade lt Retirar Acesso aspx lt lt ROUTE V aaa ASPX Pl Gerir Empr stimo a Gerir Visibilidade lt Dar GBDEmprestimo ax GBDVisibilidadeDocumento 1 Acesso T T 2 A i A EntityListDocumentos MN Lol E Devolver X Emprestar X aspx exemplares exemplares o snavgates Documents emprestados disponiveis GBDDocumento Figura 5 9 Diagrama de component
196. indicar quais s o os packages MOF que v o ser utilizados Tal pode P g 132 ser feito em tempo de execu o indicando se refer ncias aos ficheiros que cont m os metamodelos Alternativamente podem ser indicadas explicitamente as refer ncias aos metamodelos modeltype UML uses SimpleUml http omg qvt examples SimpleUml modeltype RDBMS strict uses SimpleRdbms A primeira declarac o indica que o tipo de modelo UML est definido no ficheiro correspondente atrav s da URL dada e assume a conformidade effective dada por omiss o Apesar de um modelo apontado pela vari vel uml ter que ser lido segundo esta defini o tal n o significa que tenha de ser instancia deste metamodelo em particular Basta que os seus conceitos estejam decritos no metamodelo que define o tipo UML para que seja v lido Na segunda declarac o o tipo de modelo RDBMS tem a express o strict associada Neste caso um modelo tem de explicitamente ser definido atrav s deste metamodelo para que possa ser considerado v lido Pode ainda ser acrescentado um bloco where que acrescenta restri es aceitac o do modelo como v lido segundo o metamodelo respectivo modeltype UML uses SimpleUml http omg qvt examples SimpleUml where self objectsOfType Class gt size gt 1 No exemplo anterior foi indicada uma nova defini o para o tipo de modelo UML que imp e a restri o de o modelo ter pelo menos uma classe D 2 Bibliotecas
197. init init section population population section end end section Em muitos casos algumas destas sec es podem n o existir A regra para interpretar um corpo que n o tenha a secc o population a seguinte 1 Se a operac o de mapeamento define um resultado P g 158 nico a lista de express es no corpo a lista de express es na expressdo do objecto impl cita 2 Se a operac o de mapeamento define mais do que um resultado a lista de express es no corpo a lista de express es da sec o de preenchimento que n o existe explicitamente Esta conven o facilita a escrita de especifica es concisas na medida em que a situa o em que ocorre apenas um valor de sa da muito comum Por vezes pode ser necess rio usar explicitamente a palavra population e g para alterar par metros inout De acordo com as regras anteriores a declara o mapping A AtoB B init mypropl myprop2 equivalente a mapping A AtoB B Init Ls population object result B mypropl myprop2 y z ResolveExp one Boolean isInverse Boolean isDeferred Boolean InstantiationExp from ImperativeOCL A ImperativeCallExp isVirtual Boolean MappingCallE xp isStnct Boolean res IveCond Owner cond tion inMapping 0 1 MappingOperation Figura E 3 QVT Operational Package Uti
198. ion temCasaDeBanho Boolean Sem nome Association precoActual float Sem nome Association Cliente Funcionario 3 estaOcupado Boolean confirma paga reserva 1 possui I reserva Sem nome Class Sem nome Class bool Pagamento o 1 getDataSaidaQ Date 727777777 Reserva duracao gt 0 pag Reserva precoA ctuals 0 CartaoCredito valor float Cliente data Date CodigoPostal tipo String Pagamento valor gt 0 Funcionario JPagamento tipo Dinheiro Cheque TransfBancaria Multibanco Credito Pagamento Perfil hd gt Ed Pessoa la ji gt amp Ed Quarta pd E i 4 TT TI As Diagram Por Priorida v 23 tens Apresenta o Fonte ARestric es AEstere tipo A Valores Marcados A Lista de Marcas ET Alto item Por Fazer 4 Propriedades 4 Documenta o o a E Atributo y A A elg T Modificavel gt E Baixo s adicion vel mud vel congelado Nome duracao Tipo int UML Profile for Java ly ES Multiplicidade v E y O estatico Dono erva modeloSemTitulo Valor Inicial Visibilidade il 36M used of 63M total Figura A 1 Ferramenta CASE Argo UML Optimal Compuware Como o nome indica uma ferramenta dirigida para a criac o de c digo Java
199. ional Rose IBM Conjunto de ferramentas CASE cada uma www Suite com um tipo diferente de utiliza o 306 ibm com softwa suportando gera o round trip para re rational sw diferentes linguagens bycategory subcateg ory SW710 html Together Borland Conjunto de ferramentas CASE cada uma P g 120 com um tipo diferente de utilizac o suportando sincroniza o simult nea entre o modelo e c digo CH e Java UModel 2005 Altova Ferramenta CASE com gera o www altova com pr bidireccional de c digo Java oducts_umodel html Visual Paradigm Visual Ferramenta CASE com gera o www visual for UML Paradigm bidireccional de c digo Java paradigm com IDEs Delphi Borland IDE para Delphi dialecto do Pascal e C permitindo a gerac o de c digo SQL e a sincronizac o do modelo da base de dados com o modelo de dados da aplicac o Eclipse IBM N o IDE gen rico para diferentes linguagens www eclipse org WebSphere comercial com capacidade de inclus o de diferentes IBM m dulos consoante as necessidades dos programadores Netbeans Sun N o IDE espec fico para a linguagem Java www netbeans org One Studio Microsystems Visual Studio NET comercial Sun Microsystems Microsoft extens vel atrav s de m dulos que podem ser acrescentados para realizarem diferentes tipos de acc es IDE que suporta diferentes linguagens espec fico para o desenvolvimento de aplica es na plataforma NET extens vel com a i
200. ionar artefactos j existentes No entanto as duas perspectivas s o necess rias visto ambas terem efeitos desej veis neste contexto Prop e se por isso uma perpectiva composta que agrega as duas anteriores ou seja atrav s da qual poss vel a criar novos artefactos a partir de rastos existentes b criar novos rastos a partir de artefactos existentes atrav s da descoberta de novas rela es de coer ncia c propagar rela es de coer ncia existentes para artefactos entretanto criados P g 74 3 7 Componente Reactiva Como foi referido tanto a rastreabilidade como a sincroniza o s o opera es que podem ser realizadas num determinado momento Existem tr s formas de agendar a execuc o destas opera es execu o num intervalo de tempo execu o em momentos pr determinados e execuc o atrav s de eventos Na execu o num intervalo de tempo esta pode ser repetida a cada intervalo de tempo constante O utilizador pode configurar o per odo da execu o para que a execu o da aplica o de sincroniza o n o implique um peso significativo no desempenho total do sistema Este per odo depender da quantidade de artefactos para os quais existem relac es de coer ncia definidas e do desempenho da aplicac o Com a execu o em momentos pr determinados poss vel ao utilizador desencade la manualmente nesse momento ou num conjunto de momentos pr determinados explicitamente Este mecanismo resume
201. jecto col Column foi substitu da por uma nota com o mesmo valor Ambas as formas t m o mesmo efeito pr tico Neste caso em particular a nota aumenta desnecessariamente o n mero de elementos gr ficos dificultando a leitura do diagrama no seu conjunto Nos exemplos anteriores todos os padr es s o compostos de objectos individuais e associa es entre eles A nota o suporta igualmente especifica es envolvendo conjuntos de objectos No diagrama de transforma o da Figura G 4 os atributos da classe UML Class s o representados por P g 165 uma colecc o A tabela relacional Table tem uma coluna que corresponde ao n mero de E 29 atributos da classe correspondente UML2Rel domain c Class n RDBMS domain de Ae 5 c t Table totcols 7 a size a Attribute Figura G 4 Utiliza o de um conjunto de elementos num diagrama de transforma o QVT O QVT inclui as seguintes conven es gr ficas a serem utilizadas em diagramas de transforma o Nota o Descri o Uma rela o entre os modelos m1 e m2 tendo MM1 e MM2 como metamodelos m1 MM1 m2 MM2 CCE CIE respectivamente Pode ser escrita uma letra C ou E referente as palavras reservadas Checkeable e Enforced Um template de objecto tendo o tipo C e domain
202. kage ToSchema n o tem uma sec o de inicializa o a vari vel result inicializada com uma nova inst ncia de Schema depois do controlo da execu o entrar na secc o population Assim quando a expressdo de objecto atingida esta actua sobre um objecto ja existente sendo realizada a sua modificac o D 5 Encadeamento e inclus o de operac es de mapeamento A defini o seguinte descreve uma opera o de mapeamento class2table que cria uma tabela do modelo relacional a partir de uma classe persistente UML No interior do corpo desta opera o s o ainda usados duas outras opera es definidas externamente A opera o attr2Column cria uma coluna a partir de um atributo e a opera o class2Key cria uma inst ncia de Key associada aos atributos prim rios da classe mapping Class class2table Table when self isPersistent name t_ self name column self attribute map attr2Column key self map class2key result column mapping Attribute attr2Column Column name self name type getSqlType self type mapping Class class2Key in cols Sequence Column Key name k_ self name column cols kind primary Gra as exist ncia das express es de objectos poss vel reescrever esta defini o usando uma nica opera o de mapeamento mapping Class class2table Table when self isPersistent name t_ self name column self attri
203. l m da paci ncia e simpatia com as quais me honrou A Rosinda pelo amor e apoio inultrapass vel que me deu durante todos estes anos 1 o A secuusenstensssdseidedeacedecteedessisnens 1 1 1 Enquadrarmento x estet tette titer A 1 1 2 Identifica o dos Problemas scssesscceccescessessseeceeceescesssnsaeeceeecessceseeseaeeeeeeeesceeseseuaeas 4 1 3 Tese e Objectivos de Investiga o essessssssesssseseeeeeeee eene enne eene eene enne enne 6 1 4 Descri o do Trabalho de INVEStiZAGdO ccc cessessesstesseeesseseceeseeeeeeeseeeesceeeeesecesceesceeeeeeeeeees 7 1 5 Organiza o da Disserta o saias ertet ee A he sues Aa tela Dee ege a 8 2 Estado de Arte s 11 2 1 Notac es Metodologias e Tecnologias de Desenvolvimento de Sistemas de Informac o 11 2 11 Metodologias e nota es cl ssicas csessesseceeceescessensaceeceeceesceeseasaeeeeeceseseeseasaaeeeees 12 2 1 2 Metodologias e nota es orientadas por objectos cccececcecccecceeceecececceeeeeeeeeeseeaeeeees 17 2 1 3 Ferramentas de apoio ao desenvolvimento de sistemas de informa o 19 2 2 Unified Modelling Language UML e Padr es Associados 0 0 0 ccceceesesssceceeceeseesssssaeeeaees 21 2 2 1 Meta Object Facility MOF oocccncnnnooononnnonncnnnnnnnonononnononnnnnnonnnnnnnnonnnnononnnnnnnnnnonoss 23 2 2 2 Abordagem MDRA 4 deci eid aao gue
204. l IBM WebSphere que garante maior estabilidade na sua execu o devido a uma verifica o acrescida do c digo utilizado Netbeans Sun One Studio O Netbeans compar vel ao Eclipse no sentido em que tamb m um projecto n o comercial suportado por uma empresa neste caso a Sun Microsystems No entanto ao contr rio do anterior este IDE foi especificamente concebido para desenvolver c digo na linguagem Java Al m da vers o n o comercial existe tamb m uma vers o comercializada pela Sun Microsystems denominada Sun One Studio que permite uma utiliza o mais simples de caracter sticas complexas e g utiliza o de bases de dados computa o distribu da liga o a servidores aplicacionais Visual Studio NET Microsoft Este IDE uma ferramenta de apoio ao desenvolvimento de aplica es na plataforma NET A ferramenta pode ser utilizada em qualquer linguagem de programa o que tenha um compilador NET Existem j mais de vinte linguagens com compiladores dispon veis para esta plataforma sendo as mais utilizadas o CH o VB NET e o C Todos os P g 118 compiladores desta plataforma geram c digo numa linguagem interm dia IL Intermediate Language que lida e compilada antes da execuc o em qualquer sistema operativo em que se tenha instalado a framework NET O Visual Studio NET pode ser estendido tanto quanto s linguagens usadas atrav s da inclus o de outros compiladores como de m dulos que podem
205. l c Class name n attribute a Attribute name an checkonly domain rl t Table name n column col Column name an Pag 164 A condic o where de uma relac o pode ser mostrada usando um rect ngulo Figura G 2 sendo o conte do da condi o escrito no interior desse rect ngulo A mesma figura representa a rela o PackageToSchema que estende a relac o anterior UML2Rel especificando que esta deve ser aplicada em todas as classes dentro de um package A condic o when quando necess ria pode ser indicada de uma forma similar Package ToSchema domain domain p Package s Schema name n ri RDBMS o ii uml1 UML ri Qu qe c Class t Table where UML2Rel c t Figura G 2 Diagrama de transforma o com condi o where Uma restric o pode ser criada sobre um objecto ou sobre um padr o Tal pode ser conseguido associando uma nota UML ao elemento a qual a restri o diz respeito UML2Rel domain domain c Class t Table name n 1 RDBMS Dio dd uml1 UML ys Me d gt O 1 a Attribute c kind 4 col Column persistent name an name an Figura G 3 Diagrama de transforma o QVT com restri es Na Figura G 3 a restric o name an que poderia estar como atributo do ob
206. l na pr tica esta actividade deve ser feita recorrendo a meios autom ticos que permitam uma tomada de decis o mais r pida bem como uma actualizac o dos artefactos correspondentes 3 4 Classificac o das Operac es de Sincronizac o Atrav s da abordagem MDA Secc o 2 2 2 caracterizam se os artefactos produzidos em quatro n veis Figura 3 6 Quanto ao nivel dos artefactos envolvidos pode se assim dividir a sincronizac o nas seguintes formas Sincroniza o Interna O conjunto de artefactos que descreve o modelo coerente entre si i e n o existe uma parte de um deles que contradiga qualquer uma das partes dos restantes Diz se que nestas condi es o modelo e em consequ ncia os seus artefactos est o internamente sincronizados Sincroniza o Horizontal Os artefactos dentro de cada n vel s o coerentes entre si i e n o existe nenhuma rela o de coer ncia entre artefactos do mesmo nivel que tenha o valor falso Sincronizacdo Vertical de Diagramas Dois artefactos A e B de n veis diferentes est o sincronizados i e n o existe nenhum artefacto X pertencente a A que negue uma relac o de coer ncia com outro artefacto Y pertencente ao artefacto B Diz se que nestas condic es dois diagramas est o verticalmente sincronizados Sincroniza o Vertical de N veis Dois n veis est o sincronizados i e qualquer diagrama de um dos n veis coerente com qualquer outro diagrama pertencente a outro n vel
207. lguns conceitos referidos posteriormente Para uma descri o mais exaustiva destas aplica es bem como das suas caracter sticas consulte se o Anexo A Tal como outras ferramentas de apoio ao desenvolvimento P g 8 de sistemas de informa o os CASE representam por si s um mercado competitivo onde operam algumas das mais importantes organiza es da ind stria inform tica No contexto do desenvolvimento dirigido por modelos MDE estas ferramentas t m um papel essencial No Anexo B proposta uma metodologia para a avaliac o e selecc o de ferramentas CASE Muitos dos artefactos produzidos ao longo do desenvolvimento s o no total ou parcialmente automaticamente Usualmente a produ o autom tica de artefactos a partir de outros denomina se de gerac o autom tica A gerac o autom tica recorre sempre a um conjunto de artefactos para gerar outros Caso os artefactos que servem de inicio ou de fim sejam referentes a modelos a gera o produz uma transforma o entre modelos ou entre modelos e c digo Assim sendo os diferentes padr es de gera o autom tica relacionam se com as transforma es entre modelos que na pr tica resultam normalmente na cria o ou altera o de artefactos a partir de outros no contexto da rastreabilidade Na terceira sec o do segundo cap tulo s o apresentados os diversos padr es de gera o autom tica e indicada uma classifica o de transforma es autom ticas Ainda no
208. liador n o se disperse em diferentes aspectos da ferramenta e a avaliac o seja mais justa O ltimo item promove a revis o cont nua do pr prio processo de avaliac o e selec o tendo em vista a melhoria da sua qualidade P g 126 Anexo C Sintaxe abstracta do QVT O metamodelo da linguagem de rela es est estruturado em tr s packages QVTBase OVTTemplate e oVTRelation O package QVTBase cont m um conjunto b sico de conceitos muitos deles anteriormente definidos nas especifica es EMOF e OCL que estruturam as tranforma es as suas regras e os seus modelos de partida e de fim Introduz tamb m a noc o de padr o como um conjunto de predicados sobre vari veis atrav s de express es OCL Estas classes sdo extendidas em packages espec ficos a cada linguagem de forma a fornecer uma sem ntica espec fica linguagem A sintaxe concreta da linguagem textual encontra se no Anexo C P g 162 dependenl depend On Domain isCheckable Boolean isEnforceable Boolean domain 1 rulc 1 tran stomaton Rule rule 0 1 transformation exlendedBy Figura C 1 Metamodelo do package QVTBase transforma es e regras O package ovTBase inclui os seguintes conceitos essenciais e Transformation Uma transforma o define a forma como um conjunto de modelos pode ser transformado num outro conjunto Cont m um conjunto de regras que especificam o seu com
209. liza o de opera es imperativas Os conceitos mais relevantes na utiliza o de opera es de mapeamento s o os seguintes ImperativeCallExp Uma express o de chamada imperativa representa a invoca o de uma qualquer opera o imperativa A menos que o atributo isScoped seja verdadeiro esta invoca o virtual i e a chamada da opera o depende do tipo do par metro contextual da mesma forma que nas linguagens Java C ou CH Uma chamada imperativa qualquer chamada a uma opera o onde o objecto receptor pode n o ser dado explicitamente A sintaxe gen rica P g 159 lt operationreference gt lt argl gt lt arg2 gt lt argN gt or lt source gt lt operationreference gt lt argl gt lt arg2 gt lt argN gt or lt source gt gt lt operationreference gt lt argl gt lt arg2 gt lt argN gt A terceira forma usada para opera es sobre colec es Quando exista ambiguidade necess rio qualificar os nomes das opera es com o contexto a que pertencem e g quando dois m dulos accessed definem opera es com o mesmo nome MappingCallExp Uma express o de chamada de mapeamento representa a invoca o de uma opera o de mapeamento Uma opera o de mapeamento pode ser invocada tanto em modo strict como em modo standard dependendo do valor da propriedade booleana strict Em modo strict a condi o when avaliada como uma pr condi o i e provo
210. los e g heran a de unidades em AST e composi o l gica e g QVT e Organiza o estrutural As regras podem estar organizadas de acordo com a linguagem fonte a linguagem alvo ou podem ter a sua estrutura independente destas Quanto direc o da transforma o as transforma es podem ser apenas unidireccionais ou bidireccionais As transforma es unidireccionais partem de um modelo fonte e criam ou alteram um modelo alvo As transforma es bidireccionais podem ser executadas em ambas as direc es As transforma es bidireccionais podem ser conseguidas definindo regras bidireccionais ou usando duas regras complementares unidireccionais uma para cada sentido da transforma o As regras de transforma o s o concebidas normalmente numa perspectiva funcional i e a partir de um input no modelo inicial obtem se um output no modelo final Um regra declarativa i e uma regra que utiliza apenas l gica declarativa e ou padr es pode ser aplicada por vezes na direc o inversa Este caso pouco comum comparativamente sendo o mais usual que a regra n o possa ser executada nas duas direc es Por outro lado a invertibilidade da transforma o depende n o s das regras de transforma o como da pr pria invertibilidade da sequ ncia de execu o das regras A invers o de um conjunto de regras pode resultar numa execu o sem fim ou sem sentido Resumidamente as abordagens de transforma o de modelos p
211. ltera o ou cria o de um determinado objecto alvo 3 poss vel invocar a express o em modo diferido i e a selec o dos alvos feita apenas no fim da execu o da transforma o A informa o de rastreabilidade para uma invoca o de uma opera o de mapeamento criada depois da execu o da sec o de inicializa o Esta informa o cont m um tuplo que guarda uma refer ncia opera o de mapeamento ou o que equivalente uma refer ncia rela o correspondente e o valor de cada par metro incluindo vari veis de contexto e vari veis de resultado A especifica o do QVT garante que a informa o de rastreabilidade tem de conhecer o tipo de sentido de cada par metro in out e inout bem como as posi es das vari veis e a sua rela o com os valores envolvidos Contudo n o existe na especifica o uma refer ncia ao facto de a pr pria defini o das opera es de mapeamento poder mudar e g com a inclus o de um novo par metro Neste caso seria necess rio guardar em tempo de execu o uma refer ncia vers o da assinatura da opera o que desencadeou a altera o ou cria o dos objectos P g 161 Anexo F Sintaxe Textual Concreta do QVT A linguagem textual de relac es do QVT tem a seguinte gram tica expressa atrav s de uma BNF lt topLevel gt lt filename gt import lt filename gt identifier ct varDeclaration domain wh
212. m de programa o como Java ou C Quando duas vari veis t m como valor o mesmo artefacto estas s o id nticas i e representam o mesmo artefacto Os artefactos 6 e 7 possuem informa o associada que permite afirmar a coer ncia entre eles Pelo contr rio os artefactos 8 e 9 sendo diferentes perspectivas da mesma classe ao terem uma defini o dos atributos diferente n o s o coerentes Para que a rela o de coer ncia seja melhor definida ser o considerados informalmente alguns conceitos Seja o conjunto dos artefactos a1 a an presentes num dado dom nio Q definido como o conjunto dos projectos tratados Considera se a aus ncia de artefactos designada 1 por ag ou artefacto nulo sendo age A Considera se uma express o E a sobre um conjunto de artefactos a qualquer express o poss vel no contexto da defini o desses artefactos sendo o seu valor calcul vel Uma express o E a compreende usualmente os valores dos tipos b sicos e g int string ou bool embora possa conter igualmente qualquer objecto cuja defini o exista nesse mbito bem como opera es aritm ticas l gicas ou outras que estejam definidas e g GetlD c representaria uma chamada a uma fun o GetID que devolve a identifica o do artefacto c Uma express o E a pode ser igualmente um valor constante num rico ou outro qualquer Considera se por V o conjunto de todos os valores poss veis para as express
213. m ntica da correspond ncia entre padr es De forma a simplificar a descri o desta sem ntica considerar se o alguns padr es explicitados atrav s dos seus modelos gr ficos Class Attribute Name attribute Kind Name Figura 2 21 Um modelo UML nivel 2 MOF A Figura 2 21 representa um modelo UML em que s o definidos de forma simplificada classes e atributos Trata se na verdade de um metamodelo ou seja um modelo de n vel M2 segundo a arquitectura MOF As suas inst ncias s o classes e atributos UML podendo ter eles pr prios por isso inst ncias Class Class Name c1 Name c2 Kind P Kind T Attribute Attribute Attribute Attribute Name cla1 Name a2 Name a3 Name a4 Figura 2 22 Um modelo com inst ncias UML nivel 1 MOF Tanto a Figura 2 22 como a Figura 2 23 representam os mesmos conceitos embora com diagramas diferentes No primeiro caso trata se de um diagrama de objectos derivado do diagrama de classes da Figura 2 21 Como as inst ncias representadas sdo elas pr prias conceitos UML o diagrama na verdade um isomorfismo da representac o da Figura 2 23 P g 51 c1 c2 kind P kind T c1a1 a3 a2 a4 Figura 2 23 Um modelo UML nivel 1 MOF Para simplificar a defini o desta sem ntica considerar se que um
214. m geradores de c digo est a levar a que o MDE Model Driven Engineering ou mais especificamente o MDD Model Driven Development se torne cada vez mais uma realidade Neste contexto supondo a verifica o de um cen rio em que a os processos de desenvolvimento e manuten o recorrem a modelos MDE b estes modelos s o produzidos atrav s de ferramentas autom ticas e c existe conhecimento adequado por parte dos intervenientes no projecto tanto do processo como das ferramentas envolvidas subsistem ainda os problemas que se descrevem em seguida P g 3 1 2 Identificac o dos Problemas Os problemas subjacentes a este trabalho podem ser analisados pelo menos segundo as seguintes perspectivas artefactos e entropia artefactos operacionais e conceptuais ferramentas e artefactos Artefactos e entropia O desenvolvimento de sistemas de informac o um campo suficientemente complexo para permitir a exist ncia de uma grande diversidade de ferramentas usadas ao longo do ciclo de vida das aplica es nomeadamente compiladores editores de texto editores gr ficos controladores de vers es instaladores produtores de instaladores geradores de c digo geradores de documentac o de c digo gestores de requisitos Todas estas ferramentas produzem elas pr prias novos dados que devem ser mantidos com as suas poss veis altera es Infelizmente a sua integrac o est longe de ser total e mesmo os produtos mais completo
215. m quest o a sua utiliza o noutro contexto pode ser dif cil ou impratic vel Pelo contr rio quando uma linguagem demasiado abstracta acaba por n o ter expressividade suficiente para que os diagramas produzidos sejam de alguma utilidade O UML est definido de uma forma suficientemente gen rica para permitir a utiliza o dos seus diagramas em diferentes contextos Existem ainda mecanismos de extensdo abordados em seguida que permitem enriquecer os diagramas UML dotando os assim de uma sem ntica mais rica P g 27 2 2 3 Extens es ao UML Os diagramas UML podem ser utilizados na maior parte dos casos sem ser necess rio recorrer a qualquer altera o sintaxe definida No entanto por vezes um diagrama pode n o transmitir facilmente a sem ntica do problema em causa O UML providencia um mecanismo de extens o que determina a forma como a linguagem pode ser enriquecida semanticamente Sendo assim desde que sejam cumpridas as normas OMG 03a um diagrama pode expressar melhor um certo dom nio e ao mesmo tempo assegura se que o diagrama continua a ser escrito desenhado em UML As extens es ao UML s o na verdade especializa es ou refinamentos do seu metamodelo e representam uma adi o sem ntica base n o poss vel alterar um elemento do metamodelo padr o O mecanismo de extens o mais importante o estere tipo que permite definir subclasses virtuais das metaclasses UML com novos metaatributos e uma sem
216. ma o que trate dos modelos UML evitando a cria o de diversas opera es de mapeamento com o mesmo fim No caso do exemplo Um 2RDBMS podem ser definidos construtores para Column e para Key constructor Column Column n String t String name n type t constructor Key Key n String primarycols Sequence Column name n column primarycols Com os dois construtores definidos pode ainda ser realizada outra variante da operacdo de mapeamento class2table mapping Class class2table Table when self isPersistent name t_ self name column self attribute gt new a Column a name getSqlType a type key new Key k_ self name t column kind primary Embora tal n o seja referido na norma n o ha nada que impe a uma implementa o da linguagem com construtores m ltiplos para uma mesma classe Neste caso a forma de desambiguar a chamada dever ser pelo n mero e tipo de par metros como ali s usual nas linguagens de programa o orientadas por objectos como CH ou Java 22 s A 22 T e E A A expressdo constructor operations da especificac o original do QVT foi substitu da por construtores na medida em que evidente o paralelismo entre esta constru o sint ctica e os construtores das linguagens de programa o como C Java ou CH P g 137 D 7 Func es Uma fun o realiza um certo conjunto de c lculos sobre um ou mais objectos e fornece um resultado O corpo d
217. ma vari vel ligada a um objecto como uma express o de template do padr o de dominio ou uma vari vel que obt m a sua ligac o de express es anteriores N o existem ocorr ncias de vari veis livres em lt expression gt Nenhuma outra express o tem vari veis livres sendo que todas as vari veis foram j ligadas em express es anteriores P g 48 Nas relac es o efeito de propagar uma alterac o de um modelo inicial para um modelo alvo semanticamente equivalente a executar a transformac o sem que o modelo alvo exista A sem ntica da criac o e eliminac o de objectos garante que apenas as partes necess rias de um modelo alvo s o afectadas pelas altera es 1 A sem ntica da selec o de objectos assegura que apenas os elementos do modelo que satisfazem as rela es que s o tocados 2 A selec o de objectos baseada em chaves assegura que os objectos existentes s o alterados quando necess rio 3 A sem ntica da elimina o garante que um objecto eliminado apenas quando nenhuma outra regra necessita que ele exista Para as transforma es que s o realizadas sobre o mesmo modelo i e o modelo candidato inicial e o modelo candidato final est o ligados ao mesmo modelo em tempo de execu o garante se que 1 Uma rela o reavaliada depois de cada modifica o induzida numa inst ncia do modelo 2 Uma avalia o de uma rela o termina quando todas as inst ncias do padr o satisfazem a rela o 2 4
218. mente segundo a abordagem ReacT MDD os diagramas podem ser considerados artefactos inseridos num outro denominado reposit rio Os diagramas de classes correspondentes modela o de dominio j existentes na documenta o anterior sofreram algumas altera es que visaram melhorar a sua qualidade no que diz respeito aos seguintes aspectos e Coer ncia entre vistas de diferentes n veis O modelo da base de dados nem sempre reflectia o modelo de dom nio Alguns modelos de dom nio foram alterados para que exista maior rela o entre estes e os modelos da base de dados e Normaliza o de nomea o A nomea o dos elementos foi normalizada e Refinamentos de concep o Os diagramas do modelo de dom nio foram produzidos por diferentes pessoas com estilos diferentes que tornam a leitura conjunta mais complexa O estilo foi uniformizado facilitando se assim a leitura dos referidos diagramas Neste mbito o ReacT MDD foi usado para e Obter os totais de elementos existentes Atrav s do fornecedor externo EA os diferentes reposit rios foram analisados no que diz respeito aos elementos relevantes e Criar algumas regras de coer ncia simples Foram criadas regras de coer ncia de teste para se conhecer o tempo de resposta num projecto com um elevado n mero de artefactos No ambiente de teste criado o tempo de resposta para uma altera o ao estado do sistema foi em m dia inferior a cinco segundos realizando se 40
219. mentos fundidos executada em sequ ncia ap s a sec o end As regras de compatibilidade entre o mapeamento que chama e aquele que chamado restringem os par metros do mapemanto complementar a estarem conforme os par metros que servem de base a fus o O exemplo seguinte demonstra uma defini o de transforma o que usa a fus o de mapeamentos Este estilo de escrita permite definir especificac es modulares onde podem ser tidos em conta o acoplamento e a coes o entre os mapeamentos Rule 1 in english A Foo should be transformed into an Atom and a Bar The name of the Bar is upperized and the name of the Bar is lowerized mapping Foo foo2atombar atom Atom bar Bar merges foo2barPersistence foo2atomFactory objec objec atom name A_ self name upper bar name B self name lower Rule 2 Persistent attributes of Foo are treated as volatile Bar properties mapping Foo foo2barPersistence atom Atom bar Bar when foo isPersistent object bar property self attribute map persistent2volatile Rule 3 An Atom factory should be created for each Atom and have the name of the associated Bar mapping Foo foo2atomFactory atom Atom bar Bar object bar factory object Factory name bar name Um mapeamento fundido n o invocado se a condi o de guarda n o satisfeita No exemplo dado a regra 3 tem a condi o foo is
220. metodologias anteriores mas no IE os aspectos de integrac o e a relac o com os processos funcionais s o fundamentais O IE foi definido por James Martin como um conjunto interligado de t cnicas formais na qual os modelos empresariais os modelos de processos e os P g 14 modelos de dados s o constru dos numa base xde conhecimento e s o usados para criar e manter os sistemas de processamento de dados Titan i O IE inicia se com o desenvolvimento do Modelo da Organiza o Martin 89b o qual usado para descrever e compreender a miss o e os objectivos da organizac o O modelo estabelece as raz es pelas quais as ac es s o realizadas e a forma de atingir a miss o O passo seguinte realizar os modelos de Dados e de Processos que servem para satisfazer os requisitos dos utilizadores e comunicar os conceitos de an lise e concep o entre as equipas de projecto Al m do estudo da organiza o durante o ciclo de vida do sistema s o constitu dos e mantidos tr s modelos Conceptual L gico e F sico correspondentes a tr s n veis de abstrac o atrav s dos quais se pode analisar o sistema de informa o O IE foi suportado por diversas ferramentas como o Information Engineering Workbench IEW da KnowledgeWare Information Engineering Facility IEF da Texas Instrument TI 87 e o Excelerator da Intersolv As duas primeiras aplica es podiam gerar c digo Cobol a partir de modelos de processos e esquemas
221. n vel para consulta posterior 3 A sec o de preenchimento ent o executada em sequ ncia 4 A sec o de finaliza o executada em sequ ncia realizando se os c lculos que devem acontecer ap s a devolu o dos valores de sa da por parte da opera o Execu o de um mapemanto que herda de um outro mapeamento Neste caso invoca se primeiro a sec o de inicializa o incluindo a sec o de instancia o impl cita invocando se ent o os mapeamentos herdados A invoca o dos mapeamentos herdados segue a sem ntica usual execpto para os par metros out que podem iniciar as invoca es com valores diferentes de null e g quando um par metro out foi alterado pela sec o de inicializa o do mapeamento que herda Execu o de um mapeamento com fus o de outros mapeamentos Os mapeamentos fundidos s o executados no fim da execu o do mapeamento que os chama Os par metros do mapeamento de maior n vel s o passados para os mapeamentos fundidos incluindo os valores actuais para os par metros out A conformidade dos par metros segue as regras de conformidade gen ricas Execu o de um mapeamento definido como disjun o de outros mapeamentos Uma invoca o de uma opera o de mapeamento definida como disjun o de outra opera o de mapeamento dada em dois passos primeiro as condi es de guarda dos mapeamentos disjuntos s o executadas at que uma das condi es seja v lida Se nenhuma das condi
222. na respectiva poca N o sendo exaustiva tanto em n mero como no tratamento de cada uma delas esta sec o coloca em relevo os aspectos importantes no contexto do estudo dos artefactos existentes e das suas poss veis rela es 2 1 1 Metodologias e nota es cl ssicas Jackson Structured Programming O M todo de Programa o Estruturada de Michael Jackson Jackson 75 King 88 desenvolvido no in cio da d cada de 1970 inicialmente como proposta de extens o ao Cobol tinha a sua aplica o na programa o de processos batch muitas vezes codificados nesta linguagem Neste tipo de programas em que existe uma forte correspond ncia entre a estrutura do programa e as estruturas de dados de input e output por um lado e por outro as opera es admitidas s o apenas as opera es b sicas sobre dados o m todo permite uma gera o da totalidade do c digo P g 12 O desenvolvimento pode ser apoiado por uma ferramenta existente KCSL i e pode se gerar c digo n o s em Cobol como noutras linguagens como C Pascal ou noutras linguagens imperativas O m todo teve grande sucesso tendo sido adoptado como standard pelo governo do Reino Unido No entanto tinha o seu campo de aplicac o muito limitado ao tipo de programas produzido na poca que excluiam a interactividade hoje existente na maior parte das aplicac es O mbito reduzido de aplicac o a par com o surgimento de outras abordagens limitou a utilizac o posterior deste
223. nclus o de outros m dulos msdn microsoft com vstudio Outras Ferramentas Codagen AndroMDA Documentator Codagen N o comercial Rippen de Conjunto de m dulos aplicacionais integrados numa ferramenta CASE que acrescentam capacidades de gera o autom tica de c digo Framework para a gera o de c digo para a plataforma J2EE a partir de modelos especificados na linguagem XMI ou convertidos para esta Gerador de documenta o para a ferramenta Rational Rose www codagen com www andromda org www rippen de P g 121 Anexo B Avaliac o de ferramentas CASE Existem algumas propostas quanto a comparac o e avaliac o de ferramentas CASE Para Ord n e Boive Ord n et al 01 a compara o pode ser feita quanto adequa o da ferramenta ao desenho de todos os elementos da linguagem gr fica neste caso o UML Estes autores partiram de um conjunto de ferramentas conhecidas e consideraram um conjunto de diagramas Tentaram ent o desenh los em cada uma das ferramentas comparando o resultado gr fico com aquilo que seria esperado Cada aspecto de um diagrama que n o podia ser desenhado foi anotado contribuindo para uma nota negativa da ferramenta Este m todo menos objectivo do que aparenta visto que o crit rio para se considerar uma ferramenta melhor do que outra resulta de um conjunto de elementos gr ficos n o desenhados independentemente da sua real import ncia Um element
224. niformidade no seu tratamento O HBDS continuou a ser utilizado e desenvolvido numa perspectiva acad mica tendo sido entretanto afastado em detrimento de outras metodologias Quanto aos artefactos poss vel integrar numa mesma ferramenta Costa 95 diferentes aspectos tradicionalmente tratados em ferramentas distintas e g armazenamento de dados conceptuais e operacionais l gica de neg cio gera o de interfaces Objectory A an lise de casos de utiliza o conhecida por m todo Objectory foi criada por Jacobson em 1992 como forma de aproximar as metodologias de desenvolvimento de sistemas de informa o s necessidades dos utilizadores S o essenciais a esta metodologia o conceito de actor e caso de utiliza o Um caso de utiliza o pode ser definido como um documento que descreve uma sequ ncia de eventos de um actor um agente externo usando um sistema para completar o processo segundo o seu criador Jacobson 92 O Objectory representa uma tentativa de encontrar uma representa o orientada por objectos de um sistema de informa o sob a perspectiva dos utilizadores desse sistema Actualmente muito utilizado para captar os requisitos dos utilizadores ao longo do desenvolvimento do sistema Woolridge 04 e deve estar sintonizada com a execu o final para que o sistema atinja o objectivo de cumprir as expectativas dos utilizadores A nota o de Jacobson foi integrada no UML Sec o 2 1 3 P g 17
225. ns de gera o autom tica O QVT tem em seguida uma sec o dedicada visto constituir um ponto de partida para conseguir atingir o objectivo da rastreabilidade entre artefactos 2 1 Nota es Metodologias e Tecnologias de Desenvolvimento de Sistemas de Informa o As nota es utilizadas para a modela o de sistemas de informa o evolu ram notavelmente nos ltimos quarenta anos do s culo XX Como quase todas as nota es surgiram como suporte a uma metodologia a sua evolu o est intimamente ligada ao desenvolvimento destas Nesta sec o dar se uma perspectiva hist rica desta evolu o com o intuito de melhor enquadrar o aparecimento do UML e a sua utiliza o actual no mbito deste trabalho At d cada de 1970 as metodologias de desenvolvimento de sistemas de informa o tinham o seu foco essencial na produ o de c digo de baixo n vel atrav s de requisitos bem conhecidos A codifica o de algoritmos em programas era feita seguindo se uma dada metodologia ou como ainda comum muitas vezes atrav s de processos ad hoc medida que os sistemas de informa o foram se tornando mais complexos merc por um lado do aumento das expectativas dos utilizadores e por outro do progresso tecnol gico na rea do hardware tornou se not rio que as metodologias tradicionais existentes n o podiam servir para produzir e manter facilmente os novos sistemas P g 11
226. nsforma es Operacionais e Tipos de Modelos Uma transforma o operacional representa a defini o de uma transforma o unidireccional que expressa de forma imperativa Define uma assinatura indicando os modelos envolvidos na transforma o e define uma opera o de entrada para a sua execu o denominada main Como uma classe uma transforma o operacional uma entidade instanci vel com propriedades e opera es O exemplo seguinte mostra a assinatura e o ponto de entrada de uma transforma o denominada Uml2Rdbms a qual transforma diagramas de classes UML em tabelas RDBMS transformation Uml2Rdbms in uml UML out rdbms RDBMS the entry point for the execution of the transformation main uml objectsOfType Package gt map packageToSchema A assinatura do exemplo anterior declara que um modelo rdbms do tipo RDBMS sera produzido a partir de um modelo uml do tipo UML A opera o de entrada main obt m os objectos do tipo Package e para cada um aplica a opera o de mapeamento denominada package ToSchema Neste caso as express es UML e RDBMS representam tipos de modelos Um tipo de modelo definido por um metamodelo um conjunto de packages MOF um g nero de conformidade strict ou effective e um conjunto opcional de condi es No exemplo dado tanto UML como RDBMS referem se a metamodelos impl citos Quando a sintaxe textual usada aquele que escreve a transformac o n o obrigado a
227. ntado textualmente assim considerado como c digo P g 35 Esta abordagem apresenta uma debilidade evidente na medida em que a l gica da gera o est no motor da gera o Assim se se quiser alterar a l gica da gera o necess rio ter acesso ao c digo fonte do motor da gerac o e recompil lo Esta abordagem muito limitativa n o sendo relevante para o presente trabalho Gerac o autom tica com templates Neste tipo de gera o a forma como a transforma o se d determinada num conjunto de ficheiros externos ao motor da gerac o Assim sendo qualquer alterac o que seja necess rio realizar sobre a transforma o dever implicar uma altera o dos templates de gera o Os templates de gerac o s o constru dos usualmente com linguagens declarativas como o XSLT e podem ser alterados com qualquer processador de texto No entanto a sua constru o e altera o s o processos quase totalmente manuais com alguma poss vel assist ncia dos processadores de XML o que leva a uma edi o lenta e pass vel de erro Neste tipo de gerac o os templates podem incidir sobre um subconjunto do modelo de input existindo uma filtragem pr via ao processo de gerac o Templates de Gerac o Motor da Gerac o Modelo de Output Modelo de Input y Figura 2 10 Elementos da gerac o autom tica com templates A produ o de um ger
228. ntes linguagens A solu o mais comum no in cio era encontrar um conjunto de regras de tradu o entre cada duas linguagens e produzir uma ferramenta para executar essa tarefa O pr prio processo de compila o cl ssica de uma linguagem de programa o de alto n vel envolve a tradu o de um programa escrito nessa linguagem para uma outra linguagem de n vel tecnol gico P g 29 mais baixo Evidentemente esta tradu o feita automaticamente na medida em que a linguagem de n vel mais alto est completamente especificada na linguagem de n vel mais baixo Com o aparecimento de diversos paradigmas de programac o e g linguagens imperativas funcionais l gicas a tradu o autom tica tornou se mais dif cil devido a n o existir um mapeamento directo entre os conceitos das diversas linguagens Nos casos em que as linguagens partilham grande parte dos seus metamodelos e g C e Java esta tarefa torna se mais simples existindo ferramentas que realizam a tradu o autom tica entre programas embora os resultados desta transforma o n o sejam pelo menos por enquanto completamente fi veis Estas ferramentas n o excluem a interven o humana na medida em que para programas razoavelmente complexos i e que envolvam caracter sticas espec ficas s linguagens estas ferramentas geram alguns erros de traduc o que t m de ser tratados manualmente Por outro lado devido ao facto de poderem existir diversas formas de produzir
229. ntica adicional O estere tipo ele pr prio uma metaclasse em UML Sendo assim um utilizador de uma ferramenta UML pode definir um estere tipo seguro que pode ser associado s classes do modelo de forma a posteriormente poderem ser tomadas decis es quanto seguran a de um subconjunto da informa o As marcas de valor especificam novos tipos de propriedades que podem ser associados aos elementos do modelo Os valores podem ser simples como inteiros ou cadeias de caracteres ou mais complexos como refer ncias a outros elementos do modelo As restri es s o o terceiro e ltimo elemento de extens o ao modelo e podem ser associadas a qualquer elemento do modelo permitindo que todas as inst ncias desse elemento possam herdar a restri o definida As restri es podem ser aplicadas ao metamodelo nomeadamente associadas a estere tipos sendo definidas atrav s de uma linguagem como o OCL iagged reference Tag datal aue Sting tagType Name mutolicty Mitipicity Figura 2 8 Metamodelo dos mecanismos de extens o do UML OMG 03a Por vezes criado um n mero significativo de extensdes passiveis de serem utilizadas noutros sistemas Para que esta metainformac o possa ser sistematizada foi definido o conceito de perfil P g 28 que um package estereotipado que cont m elementos do modelo especializados para um dado dominio atrav s de estere tipos marcas de valor e restri es
230. nto do projecto Alternativamente pode considerar se artefacto qualquer conjunto de s mbolos organizado segundo uma estrutura conhecida que existe num dado per odo de tempo num dado suporte com o prop sito de instanciar um conjunto de elementos do projecto Considera se que um artefacto pode incluir outros artefactos Por exemplo a representa o duma classe Pessoa num diagrama de classes Dom nio A pode ser considerada ela pr pria um artefacto inclu do noutro artefacto nesse caso No mesmo exemplo o elemento do projecto classe de dom nio Pessoa realizado atrav s do artefacto classe de dom nio Pessoa no diagrama de classes Dom nio A Um suporte qualquer meio em que possa existir um certo tipo de artefactos e g ficheiro de texto tabelas de defini o de uma base de dados num SGBD reposit rio de uma ferramenta CASE A granularidade do suporte pode variar consoante o tipo de artefacto em causa Considera se modelo um conjunto de elementos do projecto que podem incluir rela es entre eles elas pr prias sendo conceitos Um modelo uma simplifica o da realidade constitu da por um dom nio Neste contexto um modelo deve incluir todos os elementos relevantes do problema tratado pelo projecto e apenas estes Considera se vista ou perspectiva uma forma de seleccionar relacionar ou representar um conjunto de conceitos da aplica o A vista poder ser indicada resumidamente como qualific
231. o gr fico que n o esteja presente num produto e g a classe UML como caso extremo pode ser mais importante para a maioria dos utilizadores do que dois outros elementos e g liga es n rias concorr ncia no diagrama de sequ ncia de mensagens Uma via alternativa foi proposta por Geoff Beckworth Beckworth 93 onde a avaliac o feita tomando se um conjunto de objectivos que devem ser cumpridos pela ferramenta ideal Entram neste conjunto a poder suportar o ciclo de desenvolvimento em parte ou na sua totalidade b o uso de um reposit rio de informa o c o desenho de diagramas d a exist ncia do produto para a plataforma de hardware software necess ria e ter uma arquitectura de software aberta f ser compat vel com software j existente g suportar metodologias estruturadas h poder gerar prot tipos i usar um ciclo de desenvolvimento bem definido Eram ainda requisitos importantes ter custos baixos permitirem o desenvolvimento de aplica es de tempo real e serem utilizados por pessoas com diferentes n veis de conhecimento neste mbito eventualmente cada aplicac o pode servir um nivel de utilizadores A avalia o conta ainda com um uma matriz em que cada ferramenta cruzada com uma caracter stica relevante e g capacidade de trabalhar em rede Num conjunto grande de produtos esta matriz revela os produtos mais completos no que diz respeito as caracter sticas consideradas Segundo esta avalia o os
232. o atrav s da implementa o de Interfaces gen ricas Os fornecedores podem comunicar com diferentes aplica es eventualmente executadas em diferentes sistemas operativos Motor de Eventos O motor de eventos realiza a opera o de detec o de eventos e notifica o motor de rastreabilidade quando um evento acontece Entende se por framework um padr o ou infraestrutura conceptual reutiliz vel em diferentes casos podendo incluir aplica es bibliotecas de c digo linguagens interpretadas ou outros componentes tendo em vista relacionar os elementos existentes num dado projecto de desenvolvimento aplicacional P g 79 e Motor de Rastreabilidade O motor de rastreabilidade verifica o estado de coer ncia dos artefactos da aplicac o ap s a ocorr ncia de um evento e permite tomar decis es assistidas ou autom ticas quanto as implica es que esse evento tem nos mesmos O motor de rastreabilidade tem associado um m dulo de edi o e parsing de uma linguagem usada para definir os rastos entre artefactos Os componentes referidos bem como as rela es entre eles formam a framework ReacT MDD Reactive Traceability Model Driven Development Quando esta implementada chama se a ferramenta resultante aplicac o de rastreabilidade reactiva Modelador oe Parsers Rastreabilidade ReacT MDD Motor Moter es De Metamodelac o Fornecedores Externos Figura 4
233. o do tipo anterior sendo frequentemente utilizado para gerar c digo a partir de modelos UML Gerac o autom tica por uma API Em alguns casos uma aplicac o necessita de gerar um pequeno trecho de c digo que serve para cumprir uma func o muito espec fica P Ex na plataforma NET poss vel utilizando o Reflection Emit gerar uma classe em tempo de execu o do programa utiliz vel por si pr prio Gram tica ada e cor os de ms Programa cria ou Cliente chama P AFI modifica C digo Figura 2 12 Gera o autom tica atrav s de uma API Neste tipo de gera o n o s o utilizados templates e n o existe qualquer esp cie de modelo explicitamente Existe por m um programa que utiliza a API para criar ou modificar o c digo em quest o Este tipo de gera o tem uma utiliza o limitada a um n mero reduzido de casos Gera o autom tica por c digo inclu do A gera o autom tica por c digo inclu do usada quando existe uma parte do programa ou outro artefacto que comum a um certo conjunto de gera es p ex pode se compilar um c digo C para diversas plataformas Neste caso utiliza se uma pr compila o que acrescenta o c digo necess rio dentro dos pontos de variabilidade definidos A propor o de c digo vari vel deve ser P g 37 reduzida tanto quanto possivel para que o desempenho da gerac o e posterior compila
234. o ou uma mapeamento operacional a palavra self representa o par metro contextual No mbito de uma operac o contextual a palavra result representa o resultado podendo este ser um valor Unico ou um tuplo contendo os par metros declarados como resultado A palavra null um literal que pode ser atribu do a uma vari vel de qualquer tipo Pode ser explicitamente devolvida por uma operac o ou pode ser implicitamente devolvida quando o resultado n o indicado 27 E as V e e Esta parte da especifica o do QVT implica que mesmo as vari veis dos tipos b sicos possam receber o valor null o que nao usual nas linguagens de programac o como o Java ou C mais uma vez not ria a influ ncia de linguagens n o tipificadas como o Smalltalk P g 145 63 D 16 Caracter sticas avan adas defini o din mica e paralelismo Quando se trata com um processo MDA complexo pode ser necess rio definir transforma es que usam defini es de transforma es elas pr prias geradas automaticamente mesmo poss vel para uma defini o de uma transforma o ser o resultado de outra defini o de transforma o na medida em que um modelo QVT pode ser representado como um modelo A linguagem providencia uma opera o pr definida asTransformation que permite considerar uma defini o de transforma o um modelo tipificado atrav s de um tipo de modelo que aceita defini es de acordo com o QVT como uma inst ncia da r
235. o que efectivamente constru do corresponda ao projecto deve existir um acompanhamento da obra por parte de um t cnico especializado que emprega t cnicas de Engenharia para realizar essa actividade Neste contexto o acompanhamento totalmente autom tico P g 97 pelo menos por enquanto imposs vel visto que tem de existir uma verificac o de uma realidade fisica in loco O desenvolvimento de aplicac es um mbito com particularidades que o diferenciam de outras reas da Engenharia nomeadamente da Engenharia Civil Apenas naquilo que diz respeito a variabilidade das aplica es podem referir se os seguintes aspectos e As aplica es ap s come arem a ser usadas podem ser actualizadas com grande periodicidade e g di ria Um edif cio pode ser reparado ou sofrer altera es pontuais ao longo da sua vida til de dezenas ou centenas de anos e Ocasionalmente os requisitos das aplica es podem mudar podendo essa altera o envolver mudan as importantes nos conceitos ou nas tecnologias envolvidas As altera es aos requisitos de um edif cio podem ocorrer eventualmente embora essas altera es sejam menos frequentes e g criar mais uma faixa de rodagem numa ponte transformar um edif cio de escrit rios num centro comercial e Os diagramas que servem para representar os constituintes da aplica o e a sua funcionalidade n o t m uma linguagem completamente normalizada intuitiva e objectiva Existem diferen
236. o ser implementado com qualquer tecnologia dispon vel P g 25 e Modelos dependentes da tecnologia Platform Specific Models PSM Por exclus o s o aqueles dominios onde foi tomada uma qualquer op o tecnol gica seja ela de software ou hardware e C digo Considera se n o s o texto que constitui as aplica es antes de serem compiladas nos casos em que esta exista como tamb m outras descri es necess rias execu o do sistema e g ficheiros de configura o ou apenas documentos de car cter t cnico entre outros Para al m destes tr s n veis de modelos e do n vel de c digo o MDA inclui tamb m o conceito de mapeamento entre modelos e entre modelos e c digo Assume se como mapeamento entre modelos o conjunto de depend ncias que existem entre elementos de modelos distintos e que ser o tratadas com maior detalhe na sec o 2 4 Modelo QVT Pode considerar se o mapeamento entre modelos e c digo como um subconjunto do mapeamento entre modelos O conceito de mapeamento fundamental para a gera o autom tica de artefactos que se pretende que seja uma das principais vantagens do MDA Segundo esta abordagem existem v rios tipos de mapeamentos entre modelos de diferentes n veis nomeadamente e Mapeamento CIM PIM Neste caso os modelos PIM satisfazem os requisitos expressos nos modelos CIM e Mapeamento CIM CIM Dois modelos ou elementos de modelos CIM podem estar relaciona
237. o standard normalmente devido a uma diferen a de nomenclatura ou estavam distribu das por diversas caracter sticas do standard ou ainda definidas a diferentes n veis de abstrac o e com fins diferentes Foi tamb m produzido por Becker e Venturini Becker et al 97 um sistema autom tico de apoio decis o sobre a avalia o e a selec o de ferramentas CASE Este trabalho parte do standard IEEE 1209 IEEE 92 naquilo que diz respeito aos crit rios de avalia o e ao processo de decis o O processo de avalia o inicia se na fase de prepara o onde identificada a finalidade da avalia o bem como o mbito e eventuais restri es existentes Nesta fase s o escolhidas as caracter sticas de avalia o que podem ser as j definidas no standard cerca de 180 caracter sticas at micas organizadas numa hierarquia ou outros As caracter sticas que resultam em respostas num ricas booleanas ou enumera es s o mais facilmente enquadr veis numa avalia o quantitativa As caracter sticas que envolvem descri es textuais podem ser relevantes para a documenta o da avalia o e para a contextualiza o de outras caracter sticas Posteriormente s o determinadas as funcionalidades da ferramenta e a sua qualidade naquilo que diz respeito s caracter sticas enunciadas Para tal inicia se a procura de produtos candidatos avalia o qual segue se a avalia o propriamente dita Os resultados obtidos durante est
238. objectos do modelo n o podem mudar durante a avalia o No entanto o OCL pode ser usado em conjunto com outra linguagem nomeadamente o QVT para especificar opera es ou ac es que quando executadas alteram o estado do sistema este aspecto ser tratado com maior profundidade na Sec o 2 4 A linguagem OCL tipificada i e os objectos OCL t m de pertencer a um dos tipos existentes sejam estes predefinidos ou definidos no modelo Existem diferentes projectos e g OCLE Chiorean 05 KMF Akehurst et al 04 MMT Clark et al 2001 que implementam subconjuntos do OCL tendo por fim a constru o de metamodelos a valida o e a an lise de coer ncia entre estes a conformidade dos modelos com os metamodelos entre outras caracter sticas consoante os casos A complexidade da sistematiza o das actividades de metamodela o usando o MOF tem levado a que as ferramentas nesta rea estejam ainda numa fase de investiga o apesar de j existir um esfor o consider vel nesta rea pelo menos desde o 2000 Dresden Hussman et al 00 e USE Richters et al 00 Gogolla et al 07 2 3 Transforma es Entre Modelos e Gera o Autom tica medida que t m emergido novas linguagens de programa o descri o de dados e processos modela o bem como de outras actividades inerentes ao desenvolvimento de aplica es tem surgido a necessidade de em certos casos fazer a convers o entre artefactos descritos em difere
239. odelo P g 144 while v cond body is a shorthand for compute v while cond body A express o forEach um ciclo imperativo que pode tamb m iterar sobre um bloco e opcionalmente pode realizar um filtro sobre os elementos da lista self ownedElement gt forEach i i isKindof Actor range 2 8 gt forEach i Dentro de ciclos imperativos possivel utilizar se break e continue A combinac o de compute e de forEach permite definir opera es imperativas xcollect e xselect assim como outras opera es de manipulac o de alto nivel A linguagem define igualmente uma constru o do tipo if then else que n o est restringida como a constru o sint ctica correspondente em OCL na medida em que n o estritamente necess rio existir else A nota o a seguinte var x if self name startsWith _ 0 lseif self type isPrimitive while res 0 res lt 10 3 else 1 Em geral ndo obrigat rio usar esta expressdo de controlo apenas em express es Pode ser usadas como usual nas linguagens imperativas if x 0 list gt forEach i if continue 6 2 D 15 Outras palavras reservadas A palavra this representa a inst ncia que est a ser definida pela transforma o Pode ser usada implicitamente para se referir propriedades da classe de transforma o ou s suas opera es Numa operac o contextual uma func o de selecc
240. odem ser divididas em dois grupos abordagens modelo c digo e abordagens modelo modelo Estes dois grupos s o agregam os seguintes tipos de abordagens 5 P n a A Sie E A palavra direc o de onde s o derivadas as palavras unidireccional e bidireccional tomada no seu sentido lato lado para onde algu m se dirige Texto 2007 tendo por isso o mesmo significado neste contexto da palavra sentido P g 33 Abordagens Modelo C digo e Abordagens baseadas na travessia de modelos Consistem em implementar um mecanismo que percorre cada um dos elementos do modelo gerando c digo para um ficheiro de texto Ex Jamda Epsilon Rose et al 08 e Abordagens baseadas em templates Grande parte das ferramentas MDA suportam gera o de c digo a partir de modelos atrav s de templates Abordagens Modelo Modelo e Abordagens de manipula o directa Estas abordagens fornecem uma representa o interna dos modelos e uma API de manipula o S o usualmente implementadas como uma framework orientada por objectos que pode conter defini es gen ricas para as transforma es e g classes abstractas ou interfaces para as transforma es As regras de transforma o s o por isso implementadas pelo pr prio utilizador utilizando uma linguagem de programa o como o Java O c digo produzido compilado juntamente com o c digo da framework produzindo o gerador e g Jamda e Abordagens relacionais Nestas abord
241. odol gico e notacional D se assim na primeira sec o deste cap tulo uma perspectiva da evolu o hist rica das nota es e metodologias de desenvolvimento de sistemas de informa o ReacT MDD Rastreabilidade Reactiva Rastreabilidade Gera o de C digo QVT UML Notac es e Metodologias Figura 1 3 Enguadramento conceptual dos diferentes cap tulos da dissertac o Actualmente o UML Unified Modelling Language reconhecidamente a linguagem padr o na modelac o de sistemas de informac o Este facto tem levado a um grande desenvolvimento de t cnicas e ferramentas que gravitam em torno dos padr es estabelecidos pela OMG Object Management Group O modelo proposto tem por base alguns destes padr es que s o abordados na segunda seccdo do mesmo cap tulo A actividade de desenvolver sistemas de informac o envolve diferentes componentes conceptuais e operacionais apoiando se em diversos tipos de ferramentas Estas ferramentas s o usadas por tipos de utilizadores diferentes consoante a sua participac o num projecto Uma grande variedade de necessidades por parte dos utilizadores levou a uma oferta variada de ferramentas com caracer sticas e potencialidades espec ficas Na terceira secc o do mesmo cap tulo descreve se sumariamente alguns destes tipos de ferramentas Esta apenas uma refer ncia introdut ria que visa contextualizar a
242. om nio aliado a uma boa t cnica de modelac o pode atingir esse objectivo Embora existam cr ticas quanto aos artefactos produzidos pela modelac o em UML e g Bell 08 esta apresenta se como a opc o mais conhecida e usada neste sector O UML est organizado numa arquitectura com quatro n veis conceptuais na qual cada n vel conceptual descreve os elementos do n vel inferior P ex os elementos de um sistema de informa o podem ser descritos por um conjunto de diagramas escritos em UML os diagramas UML s o definidos atrav s do metamodelo UML o metamodelo UML explicitado atrav s do meta metamodelo MOF descrito em seguida 2 2 1 Meta Object Facility MOF A especificac o MOF 2 0 OMG 06 que substituiu o MOF 1 4 OMG 02 define uma linguagem abstracta e uma infra estrutura para suportar construir e gerir metamodelos independentemente da tecnologia adoptada Um metamodelo uma linguagem abstracta para um determinado tipo de metainformac o O MOF define tamb m uma infra estrutura para implementar reposit rios que guardam metainforma o e g modelos descrita por metamodelos Al m de outros elementos a especifica o MOF inclui uma defini o do meta metamodelo MOF isto uma linguagem abstracta para especificar os metamodelos MOF bem como um formato XML Metadata Interchange XMI para permitir a transfer ncia de metainformac o entre diversos sistemas Meta Metamodel MetaModel Meta metaclass M
243. ompleto quanto poss vel No entanto nem sempre as linguagens de programa o utilizadas s o orientadas por objectos ou mesmo imperativas Dershem et al 95 As aplicac es podem tamb m conter segmentos de c digo escritos em linguagens declarativas e g SQL funcionais e g Lisp ou l gicas e g Prolog As rela es de coer ncia encontradas entre os diagramas e o c digo podem ser mais ou menos abrangentes consoante as linguagens de programac o t m elas pr prias conceitos an logos aos metamodelos dos modelos usados Conforme foi indicado naquilo que diz respeito a sincronizac o os artefactos CIM podem ser tratados como os artefactos PIM ou PSM desde que possuam um metamodelo suficientemente bem definido No entanto o caso de estudo realizado focou se nos tipos de sincronizac o que est o diferenciados na Figura 3 6 nomeadamente PIM PIM PIM PSM e PSM Code 3 5 Rastreabilidade O significado usual do termo rastreabilidade demasiado vago quando aplicado ao contexto dos sistemas de informa o Defini es como a possibilidade de identificar a origem de um produto e de reconstituir o seu percurso desde a produ o at distribui o Porto 08 ou a capacidade de relacionar cronologicamente entidades univocamente identific veis e de uma forma relevante Wikipedia 08 t m de ser contextualizadas para que o seu significado possa ser compreendido Considerando os conceitos anteriormente definidos em
244. ons Mapeamentos Transforma o Rela esParaN cleo Operacionais RelationsToCore Caixa Negra Operational Black Box Mappings N cleo 1 Figura 2 17 Rela es entre os metamodelos QVT A linguagem de Mapeamentos Operacionais foi criada para permitir a implementac o de uma forma imperativa Fornece extens es ao OCL que produzem alterac es nos valores tratados tornando esta linguagem mais pr xima das linguagens imperativas As implementa es caixa preta podem ser derivadas das Rela es e podem ser usadas para enriquecer a linguagem padr o com novas funcionalidades espec ficas a um dado contexto de modelac o Por outro lado permitem que algumas partes da transformac o possam ser opacas i e que os detalhes da sua implementac o n o sejam vis veis para o utilizador De acordo com a analogia anterior a capacidade de invocar implementa es caixa preta e Mapeamentos Operacionais podem ser consideradas equivalentes a invocar operac es via o Java Native Interface ONI Podem ser considerados os seguintes cen rios de execu o do QVT transforma es para a verifica o que os modelos est o relacionados de uma forma especificada transforma es num nico sentido transforma es em dois ou mais sentidos capacidade de estabelecer rela es entre modelos pr existentes quando desenvolvidos manualmente ou atrav s de outra ferramenta ou mecanismo modifica es in
245. org cgi bin apps doc ptc 05 11 01 pdf 1 de Novembro de 2005 OMG 06 Meta Object Facility MOF Core Specification version 2 1 1 Object Management Group http www omg org cgi bin doc formal 06 01 01 1 de Janeiro de 2006 OMG 07 Unified Modeling Language UML version 2 1 1 Object Management Group http www omg org cgi bin doc formal 07 02 05 5 de Fevereiro de 2007 Paige 07 Metamodel Based Model Conformance and Multiview Consistency Checking Richard F Paige ACM Transactions on Software Engineering and Methodology Vol 16 N 3 Article 11 Julho de 2007 Patterson O1 nvestigating XSLT The XML transformation language Linda May Patterson IBM Developer Toolbox Technical Magazine 1 de Agosto de 2001 Perini et al 05 Automating Model Transformations in Agent Oriented Modelling Anna Perini Angelo Susi Proceedings of 6th International Workshop AOSE 2005 Utrecht NL 25 26 de Julho de 2005 Porto 08 Dicion rio da L ngua Portuguesa Porto Editora ISBN 13 978 972 0 01343 9 2008 P g 110 QVTP 03 Revised submission for MOF 2 0 Query Views Transformations RFP QVT Partners Vers 1 1 http qvtp org 18 de Agosto de 2003 Ramsin et al 08 Process Centered Review of Object Oriented Software Development Methodologies Raman Ramsin Richard F Paige ACM Computing Surveys 40 1 Article 3 Fevereiro de 2008 Richters et al 00 Validating UML models and OCL constraints Mark Richters e Martin Gogolla
246. orma a garantir que as transforma es s o executadas as express es que ocorrem numa rela o t m de satisfazer as seguintes condi es e Deve ser poss vel organizar as express es que ocorrem no bloco when no dom nio inicial e no bloco where numa ordem sequencial que cont m apenas os seguintes tipos de express es Uma express o da forma lt object gt lt property gt lt variable gt Onde lt variable gt uma variavel livre e lt object gt pode ser uma variavel ligada a uma expressdo de template do dominio oposto ou uma vari vel que obt m a sua ligac o de uma express o anterior na ordem das express es Uma expressdo da forma lt object gt lt property gt lt expression gt Onde lt object gt pode ser tanto uma variavel ligada a uma expressdo de templates de objectos de um padr o de dominio ou uma vari vel que obt m a sua ligac o de uma expressdo anterior na ordem das express es N o existem ocorr ncias de vari veis livres em expression todas as vari veis t m de estar ligadas nas express es anteriores Nenhuma outra express o tem vari veis livres sendo que todas as vari veis foram j ligadas em express es anteriores e Deve ser poss vel organizar as express es que ocorrem no dom nio alvo numa ordem sequencial que cont m os seguintes tipos de express es Uma express o da forma lt object gt lt property gt lt expression gt Onde lt object gt pode ser tanto u
247. os de artefactos considera se R a aj sendo R Ax A R 13 e pode ler se como O conjunto de rastos entre os artefactos a e ay NE a r E E Na defini o anterior o operador R ax ay a partir de dois artefactos devolve um conjunto de rastos R que pode ser vazio caso n o existam rastos que relacionem ambos os artefactos na ordem especificada Pode considerar se ainda como subcaso do anterior R a sendo R A gt R 14 que se l como O conjunto de rastos entre o artefacto a e outro qualquer ro t t ci si A Na defini o anterior R a ag representa um conjunto de rastos que pode ser vazio caso n o existam rastos que relacionem o artefacto a com outros artefactos sendo a o artefacto que faz parte do termo esquerdo da relac o de coer ncia De forma an loga representa se R ag ay 15 sendo R A gt R P g 65 E pode ler se como O conjunto de rastos entre qualquer artefacto e o artefacto ay A express o anterior representa um conjunto de rastos que pode ser vazio caso n o existam rastos que relacionem qualquer artefacto com o artefacto a sendo a o termo direito da relac o de coer ncia Conceitos Artefacto A 1 destino 1 origem Rasto Figura 3 5 Metamodelo do rasto Um rasto r pode ser considerado o rasto transitivo de dois rastos r e r se as express es que os definem verificam a seguinte relac o
248. os metamodelos um aspecto que sai do mbito deste trabalho existindo j um estudo aprofundado nesta rea Paige 07 O ReacT Workbench integra um analisador de QVT correspondente ao componente da framework Motor QVT que permite explicitar as restri es e os rastos existentes entre os diferentes artefactos O analisador foi programado em C bem como a quase totalidade do ReacT Workbench e est em conformidade com a sintaxe definida pela OMG OMG 05a A defini o da sintaxe foi realizada segundo uma BNF Aho 06 sendo geradas as tabelas de conceitos necess rias Posteriormente foi P g 81 x implementado o comportamento de cada uma das constru es sint cticas definidas levando constru o de uma linguagem que permite o comportamento reactivo s ReacT Workbench QVT Parser ME File Build Constraint Eid X context Company inv self stockPrice gt 0 See New Delete Evaluate Results True Figura 4 3 Defini o de uma restri o simples e teste com avalia o de uma subexpress o Os artefactos existentes em diferentes suportes sdo acedidos fisicamente atrav s de contextos Cada contexto definido atrav s do nome pelo qual ser referido em c digo da localiza o de um artefacto ou grupo de artefactos que pode estar eventualmente vazio num dado momento e do tipo de fornecedor externo O contexto representa a ligac o do grupo de artefactos sobre o
249. os par metros passados como argumentos devem estar em conformidade com os tipos dos modelos par metros A conformidade definida de duas formas strict e effective Quando a conformidade strict os objectos do dom nio do modelo devem ser necessariamente inst ncias das classes do metamodelo associado Quando a conformidade effective qualquer objecto no dom nio do modelo que tem um tipo que se refere a um tipo do metamodelo tem de conter as propriedades definidas no respectivo metamodelo com os tipos de dados compat veis A liga o entre os tipos de diferentes metamodelos baseada na compara o de nomes excepto para uma renomea o dada pela anota o alias A conformidade efectiva pemite que sejam definidas transforma es flex veis aplicadas a metamodelos semelhantes E g se uma transforma o definida em UML 1 4 mas n o usa nenhum dos elementos espec ficos ao UML 1 4 pode ser tamb m usada com modelos do UML 1 3 Em ambos os casos strict e effective a conformidade de modelos implica tamb m a conformidade com a regras de correcta cria o dos metamodelos associados E g se o UML 1 4 o metamodelo as regras de correcta cria o s o regras que est o definidas no documento de especifica o formal da OMG Para restringir o conjunto dos modelos participantes um tipo de modelo pode especificar uma lista outras condi es expressas como express es OCL que necessitam de serem v lidas para os modelos participantes
250. ose para permitir capacidades acrescidas de gerac o de c digo O principal interesse da ferramenta o de permitir a gerac o dos modelos PSM modelos espec ficos a plataforma a partir de modelos PIM modelos independentes da plataforma Segundo a abordagem Codagen todas as decis es tomadas ao nivel do PIM s o mantidas no PSM tal como estas s o tamb m mantidas na gerac o de c digo posterior Esta abordagem pressup e a utilizac o de um processo de desenvolvimento conhecido como em cascata i e caso uma decisdo patente no PSM seja contestada por um programador necess rio primeiro verificar o PIM gerar o s PSM s e o c digo associado quando necess rio sendo apenas nesse momento seguro alterar o c digo Sem que este cuidado seja tomado corre se o risco de as alterac es serem eliminadas por uma gerac o de c digo posterior Os modelos PSM incluem pontos de extensibilidade ao n vel do c digo que permitem ao programador codificar a parte do problema que n o foi coberta pelo PSM sem correr o risco de perder essas altera es posteriormente Esta ferramenta realiza os dois tipos de gerac o PIM para PSM e PSM para c digo acrescentando metainforma o aos diagramas do nivel mais elevado Pode at acontecer que a informac o que acrescentada ao PIM possa pertencer ao PSM o que contraria a pr pria definic o dos dois modelos Documentator Rippen de Esta aplicac o produz a documentac o de um projecto de sistemas de info
251. owner MappingBody ConstructorBody RelationDomain from QV TRelation Relation from QVTRelation 0 Figura E 2 QVT Operational Package Defini o de caracter sticas imperativas Os conceitos mais importantes expressos na defini o de caracter sticas imperativas da linguagem de mapeamentos operacionais s o os seguintes ImperativeOperation Uma opera o imperativa estende a no o geral de opera o MOF com a capacidade de definir um corpo imperativo e uma assinatura mais enriquecida A acrescentar aos par metros usuais de uma opera o MOF uma opera o imperativa pode declarar um par metro de contexto e zero ou mais par metros de resultado O Par metro de contexto denominado self tem um tipo designado de tipo de contexto da opera o Estes par metros aplicam se uniformemente a fun es de selec o ou a opera es de mapeamento Uma opera o imperativa pertence a uma transforma o operacional ou a uma biblioteca Uma opera o imperativa pode sobrepor se a uma outra definida num n vel superior da rvore de heran a Neste caso o nome da opera o mais espec fica tem de ser o mesmo da opera o gen rica e a sua assinatura tem de ser compat vel i e t m de ter o mesmo n mero de par metros e cada um deles tem de estar comforme com o tipo do par metro correspondente na opera o gen rica Uma opera o imperativa que define um contexto na sua assinatura denominada opera
252. paradigmas de programa o e modela o levou a altera es metodol gicas importantes no processo de desenvolvimento medida que os sistemas de informa o se foram tornando mais complexos e de maior dimens o surgiu a necessidade de encontrar formas de os desenvolver sistematicamente O aparecimento das metodologias de desenvolvimento de sistemas de informa o tornou estes mais simples de produzir e manter bem como reduziu os custos a m dio e longo prazo melhorando ainda a sua qualidade Em geral as tarefas que anteriormente se realizavam ad hoc passaram a ser desempenhadas atrav s de um processo definido de desenvolvimento As vantagens da utiliza o de muitas destas metodologias e g sistematiza o documenta o melhoria na qualidade e redu o de custos a longo prazo t m sido reconhecidas ao longo do tempo pela ind stria A par da cria o de novas metodologias foram concebidas ferramentas de apoio modela o de sistemas denominadas CASE Computer Aided Systems Engineering Durante a d cada de 1980 surgiram diversos produtos que ap s um sucesso inicial acabaram por n o ter grande aceita o O hardware parecia n o acompanhar o desenvolvimento do software tornando estas aplica es lentas e dif ceis de utilizar Actualmente as ferramentas CASE atingiram j a fase em que a sua utiliza o passou a ser reconhecida como importante mas ainda n o como essencial Encontram se num est dio que permite j
253. passar fase de gera o autom tica de c digo Herrington 2003 a partir de modelos embora esta caracter stica ainda n o esteja vulgarizada 1A sigla CASE tamb m descrita como Computer Aided Software Engineering Embora exista um conjunto de ferramentas que est o pr ximas da especifica o de c digo sendo neste caso correcta a descri o anterior existem tamb m ferramentas centradas na modela o do neg cio ou do contexto em que os programas funcionam Nesse sentido perfeitamente poss vel que estas ferramentas sirvam para especificar reas do neg cio que nem sequer est o automatizadas P g 1 A aceitac o gradual destas tecnologias pode ser ilustrada por diferentes estudos realizados nos ltimos anos Em 1992 Nosek et al 92 apenas 24 das empresas de sistemas de informa o usavam ferramentas CASE Em 2003 segundo um inqu rito realizado a 183 empresas na rea do desenvolvimento de sistemas de informac o Welsh 03 mais de metade 55 utilizavam j ferramentas de modelac o Por outro lado menos de um terco 31 referiram que usavam capacidades de gerac o autom tica que se limita normalmente a gerac o da estrutura das classes ou dos esquemas de bases de dados relacionais Entretanto algumas das tecnologias envolvidas no processo de desenvolvimento chegaram j a um ponto de consider vel maturidade S o exemplos destas tecnologias os sistemas de bases de dados relacionais as interfaces gr ficas
254. pectivos artefactos operacionais Desta forma fica comprometida a rastreabilidade dos artefactos neste contexto introdut rio simplificadamente identificada como a capacidade de encontrar os artefactos relacionados com um dado artefacto base em diferentes fases do desenvolvimento Por outro lado quando as aplica es entram na fase de operacionaliza o a gera o autom tica de c digo pode ser posta em causa pela exist ncia de dados de produ o A interrup o parcial ou total da gera o tem de ser acompanhada por restri es equivalentes nos artefactos pertencentes aos n veis conceptuais superiores Da mesma forma a integra o de uma dada aplica o num conjunto mais vasto de aplica es legadas tem de ter em conta as limita es de evolu o das mesmas P g 5 Ferramentas e artefactos Devido a heterogeneidade das fontes dos artefactos envolvidos produzidos a partir de todas as ferramentas necess rias ao desenvolvimento de sistemas de informa o a sua integra o constitui um problema para as equipas de desenvolvimento Mesmo em pequenos projectos caso se utilize um grande n mero de ferramentas o esfor o de manter actualizada a informa o de suporte ao desenvolvimento pode revelar se imprevistamente alto ou mesmo impratic vel Por outro lado mesmo com a opera o de uma nica ferramenta e g num IDE Integrated Development Environment podem existir diversos artefactos cuja coer ncia tem de ser mantida e
255. pendente Lisboa 2003 Costa et al 05 Aspectos de Sincroniza o em Modelos UML Marco Costa Alberto Rodrigues da Silva Actas da 62 Confer ncia da Associa o Portuguesa de Sistemas de Informa o CAPSI 2005 Braganca 2005 Costa et al 07 RT MDD Framework A Practical Approach Marco Costa Alberto Rodrigues da Silva 3rd ECMDA Traceability Workshop Haifa Israel 2007 Costa et al 07 Synchronization Issues in UML Models Marco Costa Alberto Rodrigues da Silva 9th International Conference on Enterprise Information Systems Funchal Portugal 2007 Cusumano 2010 Technology Strategy and Management The Evolution of Platform Thinking Michael Cusumano Communications of the ACM Vol 53 Nr 1 Janeiro de 2010 Czarnecki et al 03 Classification of Model Transformation Approaches Krsysztof Czarnecki Simon Helsen OOPSLA 03 Workshop on Generative Techniques in the Context of Model Driven Architecture 2003 Dahl et al 66 SIMULA an ALGOL Based Simulation Language Ole Johan Dahl Kristen Nygaard Communications of the ACM Vol 9 9 ISSN 0001 0782 Setembro de 1966 Dahl et al il How Object Oriented Programming Started Ole Johan Dahl Kristen Nygaard http heim ifi uio no kristen FORSKNINGSDOK_MAPPE F_OO_start html Davis 98 Mapping between CDIF and EXPRESS for a Study Period on Mapping Modelling Languages for Analysis amp Design Hugh Davis OOPSLA 98 Workshop on Model Engineering Methods and Tools
256. perty name value e A express o das partes associadas express o do template de colec o e Uma express o indicando que nenhuma colec o vazia e A express o where associada a cada express o de template Considerando se o seguinte padr o especificado atrav s da sintaxe concreta Class name X attribute Attribute name X Y O modelo de inst ncias para o exemplo acima dado pela Figura 2 24 Para simplificar o diagrama a estrutura detalhada da express o OCL foi substituida por uma expressdo de vari veis e uma nota representando a expressdo completa O modelo de inst ncias apresenta duas express es de templates de objectos correspondendo a Class e a Attribute O n correspondente a Class est associado a dois n s que s o items de template de propriedade correspondentes s duas propriedades name e attribute A estrutura do padr o correspondente a Figura 2 24 pode ser dada textualmente por Pattern dummy Class dummyl Attribute dummy2 attribute dummy dummyl freevars X Y where dummy name X and dummyl name X Y No exemplo anterior evidente a maior simplicidade da descric o textual quando comparada com a estrutura gr fica do padr o correspondente A definic o de uma DSL para o tratamento de padr es um dos poss veis desenvolvimentos futuros desta rea A descri o do QVT dada at este ponto independente da tecnologia usada para implementar uma ferramenta deste tipo
257. podem ser feitos sem que os modelos sejam actualizados As consequ ncias para o futuro da aplica o s o o desfasamento entre os modelos que deveriam traduzir uma realidade entretanto alterada e o c digo que deveria instanciar uma solu o entretanto desactualizada Nesse caso estando os modelos desactualizados de nada servem constituindo apenas um conjunto de esquemas e textos desalinhados com a realidade Por m medida que forem sendo produzidas novas altera es a complexidade das aplica es for aumentando as solu es encontradas tornarem se cada vez mais particulares e as equipas forem enquadrando novos elementos ser cada vez mais question vel a op o tomada Neste ponto pode j ser tarde demais para se voltar a actualizar os modelos anteriormente criados Pode at ser mais simples criar uma nova aplica o de raiz eliminando os erros de concep o entretanto encontrados Apesar desta constata o a experi ncia mostra que nem sempre existe uma consci ncia por parte dos profissionais do sector para a import ncia da totalidade dos artefactos livari 96 O problema n o se resume a tornar a documenta o de uma aplica o coerente com a aplica o propriamente dita tanto no que diz respeito s suas funcionalidades como ao c digo execut vel respectivo Pode acontecer igualmente que duas aplica es partilhem uma parte de um modelo conceptual que deve tamb m ser mantido e ambas devem reflectir eventuais altera
258. portamento aquando da execuc o e executada sobre um conjunto de modelos com tipos ja definidos Sintacticamente uma Transformation uma subclasse tanto de Package como de Class Como Package fornece um espa o de nomea o para as regras nela contidas Como Class pode definir propriedades e opera es propriedades para especificar valores de configura o P g 127 caso existam necess rios em tempo de execu o e opera es para implementar funcionalidades necess rias quando necess rias requeridas pela transforma o Uma transforma o pode estender outra transforma o tendo a extens o a propriedade transitiva TypedModel Um modelo tipificado especifica um par metro tipificado de uma transforma o Em tempo de execu o um modelo que passado para a transforma o pelo seu nome s pode conter elementos cujos os tipos sejam especificados no conjunto de packages associados ao modelo Em tempo de execu o uma transforma o sempre executada num sentido i e escolhendo um dos modelos como alvo da transforma o Um modelo alvo pode ser produzido a partir de um ou mais modelos fonte sendo que nestes casos a transforma o pode necessitar que a selec o de elementos num modelo restrinja a selec o de elementos noutro modelo Esta situa o pode ser modelada atrav s de um modelo tipificado que declara uma depend ncia noutro modelo Domain Um dom nio especifica um conjunto de elementos de um modelo
259. portante que uma parte consider vel da equipa de avalia o inclua elementos internos organiza o preferencialmente com grande experi ncia e Os avaliadores devem inquirir os especialistas sobre cada uma das ferramentas estudadas Cada avaliador deve inquirir apenas um grupo de caracter sticas que lhe s o atribu das Pretende se assim diminuir o risco de uma diferen a de perspectiva poder diminuir a qualidade dos dados obtidos Esta actividade deve ser feita tanto quanto poss vel sem que existam grandes intervalos entre as inquiri es idealmente no mesmo dia tarde ou manh e Para o processo de selec o s o definidos os valores para a pondera o das caracter ticas Esta actividade reveste se da maior import ncia devendo ser baseada quando poss vel em experi ncias anteriores e Ap s a ferramenta ser escolhida devem ser realizados alguns projectos e deve ser revista a avalia o anteriormente feita luz da experi ncia entretanto adquirida As caracter sticas e os seus valores de pondera o devem igualmente ser revistos para que uma avalia o posterior tenha ainda maior qualidade P g 125 A diferenciac o entre os especialistas e os avaliadores tem como objectivo reduzir a subjectividade da avaliac o atrav s de diferentes perspectivas sobre o mesmo produto Por outro lado o facto de cada avaliador centrar se apenas num grupo tanto quanto possivel reduzido de caracteristicas contribui para que o ava
260. r Persistent Data Development Tools Validate the Model Driven Architecture Approach Ruth Stento ObjectStore http www omg org registration registration ruth stento wp htm 2003 Tardieu et al 83 La m thode Merise Tome 1 Principes et outils Hubert Tardieu Arnold Rochfeld Ren Colletti Editions d organisation Paris 1983 Texto 07 Diciondrio da Lingua Portuguesa Texto Editores 2007 TI 87 Texas Instruments Announces Commercial Availability of Integrated CASE Tools to Automate Information Systems Life Cycle Texas Instruments http www ti com corp docs company history case shtml 1987 Titan i SRC amp Information Enginnering Titan Systems Corporation http www srcorp com factsheets info_eng pdf Tratt 03 QVT The High Level Scope Lawrence Tratt http qvtp org 30 de Maio de 2003 UMT QVT 05 UML Model Transformation Tool http umt qvt sourceforge net 2005 Vanhoof et al 05 Supporting Modular Transformation Units with Precise Transformation Traceability Metadata Bert Vanhoof Yolande Berbers ECMDA Traceability Workshop 7 10 November 2005 Nurenberg Germany SINTEF pp 15 27 2005 Varro 02 Automated Program Generation for and by Model Transformation Systems Daniel Varro Proc AGT 2002 Workshop on Applied Graph Transformation 2002 Voelter 03 A Catalog of Patterns for Program Generation Markus Voelter 2003 04 V 1 6 http www voelter de publications patterns html Yourdon et al
261. r prias dizerem respeito a uma realidade subjectiva Como exemplo tome se o crit rio usabilidade Dois P g 123 utilizadores avaliadores com diferentes niveis de experi ncia conhecimento pr vio da ferramenta em particular interesse por reas de conhecimento etc poder o avaliar com resultados distintos o mesmo produto Por outro lado estas caracter sticas subjectivas s o muitas vezes as mais importantes para a avaliac o no seu conjunto e g a usabilidade Existem assim duas formas de se ultrapassar este problema 1 a caracter stica pode ser substituida por um conjunto de subcaracter sticas at micas com maior objectividade ou 2 a caracter stica pode ser acompanhada por uma m trica espec fica que al m de concretizar a sua sem ntica define a avaliac o de forma mais objectiva A dimens o temporal evidencia a reduzida perenidade das listas de caracter sticas Estas podem evoluir ao longo do tempo incluindo novas caracter sticas eliminando algumas das existentes ou mesmo alterando o significado das existentes a medida que a tecnologia evolui e v o sendo acrescentadas inovac es as ferramentas existentes Por m as maiores dificuldades dizem respeito pr pria estruturac o das caracter sticas Lundell et al 02 presentes no standard Atrav s de diversos estudos de campo os mesmos autores verificaram que algumas caracter sticas consideradas importantes pelas organiza es estudadas ou n o estavam consideradas n
262. r diversas chaves tal como no modelo relacional No exemplo dado na relac o ClassToTable pode ser necess rio especificar que nos modelos simpleRDBMS uma tabela univocamente identificada por duas propriedades que podem ser o seu nome propriedade name e o esquema a qual pertence propriedade schema conforme a express o key Table schema name As chaves podem ser usadas no momento da criac o do objecto e g se uma express o de templates de objectos tem propriedades correspondentes a uma chave da classe associada ent o a chave usada para localizar um objecto no modelo Um novo objecto apenas criado quando um objecto correspondente n o existe P g 47 No exemplo dado considere se que existe uma classe persistente com o nome foo no modelo uml e uma tabela com o mesmo nome no schema correspondente do modelo rdbms n o tendo a tabela no entanto valores para as propriedades column e primaryKey Neste caso o modelo rdbms n o tem uma correspond ncia para o padr o associado a Table na medida em que duas das suas propriedades n o correspondem sendo necess rio criar objectos que satisfa am a rela o No entanto como a tabela existente corresponde no que diz respeito s propriedades chave name e schema n o h necessidade de criar uma nova tabela basta actualizar as ocorr ncias das propriedades column e primaryKey da tabela 2 4 5 Restri es sobre express es e propaga o de altera es De f
263. r mostrar blocos de c digo Um dos objectivos deste componente o de facilitar a edic o disponibilizando automatismos que aceleram ou simplificam a producdo de c digo e g atalhos de teclas macros pr definidas ou definidas pelo utilizador cria o de elementos a partir de templates Existem ainda editores gr ficos que facilitam a constru o das interfaces gr ficas ao permitirem o desenho dessas interfaces mostrando as com o aspecto final Os editores gr ficos podem tamb m facilitar a gest o dos eventos relacionados com a interface gr fica associados aplica o e incluir elementos n o gr ficos que reduzem o tempo de codifica o e g liga o a uma tabela de uma base de dados Note se que os editores gr ficos geram automaticamente o c digo que representa cada um dos objectos gr ficos vis veis Para al m destes componentes pode se considerar o ambiente propriamente dito que normalmente constitu do por uma aplicac o com uma ou mais reas de trabalho respons vel pela gest o dos ficheiros produzidos pelos editores 2 2 Unified Modelling Language UML e Padr es Associados Al m das metodologias e nota es anteriormente referidas existiam ainda muitas outras menos conhecidas por diversos motivos e g terem aplica es espec ficas a um dado conjunto de contextos ou terem sido desenvolvidas para o uso pr prio de uma organizac o cada grande empresa de consultoria tem normalmente uma metodologia pr pria ou
264. r sentido Por enquanto necess rio um esforco na formac o em duas vertentes a conceptual e a operacional Se importante os utilizadores destas ferramentas conhecerem a forma de trabalhar com elas neste caso em particular tanto ou mais adquirirem os conhecimentos te ricos e metodol gicos necess rios Apesar de envolver custos significativos tanto financeiros como em tempo a formac o acad mica e profissional desempenha aqui um papel essencial para a consciencializac o por parte dos profissionais do sector da necessidade de utilizac o das boas pr ticas anteriores No mbito das ferramentas CASE a sua utilizac o s tem efeitos pr ticos positivos quando os seus utilizadores possuem o conhecimento te rico inerente s nota es e metodologias adoptadas Por outro lado tal como tem acontecido com a generalidade das aplica es correntemente usadas em diferentes dom nios tamb m as ferramentas CASE dever o tornar se mais simples de utilizar com a produ o de interfaces gr ficas cada vez mais intuitivas A par com a produ o de novas linguagens e ferramentas de programa o e modela o tem existido uma altera o dos n veis conceptuais tratados por estas Schmidt 06 Os aspectos t cnicos relevantes para a modela o e programa o de um programa abarcam progressivamente elementos sist micos de n veis mais elevados de abstrac o e complexidade Assim o surgimento de DSLs Domain Specific Languages a par co
265. ra num estado coerente com os demais a qualidade dos artefactos no seu todo que fica comprometida As decis es sobre a aplica o deixam de ser determin sticas i e deixa de haver uma certeza sobre o pr prio estado actual dos artefactos da aplica o As decis es s o tomadas com alguma probabilidade de se adequarem ao verdadeiro estado do sistema estando eventualmente j ultrapassadas Neste contexto necess rio um mecanismo que permita impor regras que mantenham a coer ncia entre os artefactos semelhan a de outras ind strias existentes A import ncia deste problema pode ser facilmente verificada se se analisar aquilo que se passa na Constru o Civil e g com a constru o de um edif cio Se um arquitecto realizar um projecto e n o existir algu m que verifique a sua execu o podem existir desvios significativos em rela o quilo que foi determinado inicialmente Estes desvios podem levar inclusivamente a um aspecto diferente daquele que o arquitecto tinha em mente quando produziu o projecto ou mesmo a erros estruturais que eventualmente podem ter consequ ncias negativas para o trabalho posterior Uma ac o t o simples como acrescentar uma tomada numa parede j terminada necessita que os esquemas que localizam as redes e g el ctrica dados gua saneamento do edif cio estejam actualizadas Quando tal n o acontece podem existir acidentes eventualmente com risco para o executante da acc o Para que aquil
266. ra ou na declarac o access ou extends de uma transforma o ou biblioteca No exemplo seguinte os nomes dos s mbolos UML e RDBMS s o necessariamente tipos de modelos n o sendo por isso necess rio estar a declar los explicitamente transformation Uml2Rdbms in uml UML out rdbms RDBMS Quando um tipo de modelo explicitamente declarado a sintaxe a seguinte modeltype modeltypeid conformance uses lt packageid gt lt uri gt where lt expressions gt Outras condi es podem usar a vari vel self que esta implicitamente definida no bloco where e se refere conceptualmente a uma inst ncia do tipo do modelo i e um modelo A declara o seguinte indica que um tipo de modelo usa para a sua defini o um package existente chamado SimpleUml fornecendo a sua URI A segunda declarac o apenas explicita uma URI e indica uma conformidade strict modeltype UML uses SimpleUml http omg qvt samples SimpleUml modeltype RDBMS strict uses http omg qvt samples SimpleRdbms transformation Uml2Rdbms in uml UML out rdbms RDBMS Um tipo de modelo pode ter o mesmo nome que uma definic o de metamodelo Se n o existe uma defini o expl cita do tipo do modelo tal equivalente a declarar um tipo de modelo cujo o metamodelo referido o dado metamodelo Neste caso a conformidade efectiva do tipo de modelo assumida metamodel SimpleUML metamodel SimpleRDBMS transformation Uml2Rdbms
267. re modelos bem como a sua manipulac o Os modelos podem ou n o ser guardados em XMI e n o a manipulac o a esse nivel que mais importante de explicitar Na verdade para isso j existia o XSLT como anteriormente referido A manipulac o dos elementos conceptuais que fazem parte do metamodelo do UML essa sim necess ria para este novo tipo de manipula o O QVT Queries Views and Transformations foi mais uma concretiza o por parte da OMG de criar um standard que identificasse uma maneira de se expressar transforma es entre modelos de forma simples de entender para os utilizadores e execut vel para os computadores Tratt 03 A sigla QVT denomina tr s conceitos e Pesquisa Query Tendo um artefacto como input pode se seleccionar um subconjunto dos seus elementos atrav s de uma dada condic o I Alguns ambientes de desenvolvimento como o Microsoft Visual Studio usam multiplas abordagens de gerac o autom tica consoante o o tipo de artefacto em quest o P g 40 e Vista View um modelo derivado de outros modelos e Transforma o Transformation Tendo como input um modelo pode se alter lo ou criar um novo a partir deste Apesar de a denominac o do QVT estar dependente destes tr s conceitos o terceiro o aspecto essencial A defini o das transforma es deve ter algumas caracter sticas que s o importantes para a sua aceita o Os artefactos gerados diagramas c digo descri es
268. relacional numa base de dados usada pela aplica o Desta classifica o resulta que as altera es ao sistema i e aos artefactos que constituem a aplicac o podem ser realizadas sobre qualquer um dos dois tipos anteriores Essas altera es sobre um dado artefacto podem implicar a altera o de outros artefactos que estejam com ele relacionados mesmo que estes sejam de diferentes tipos de artefactos Quando as altera es s o feitas sobre artefactos conceptuais muito prov vel que estas tenham de ser propagadas para os artefactos operacionais correspondentes Os processos de gera o autom tica favorecem este tipo de altera es permitindo em muitos casos uma actualiza o simples dos artefactos operacionais subjacentes Modelo Modelo Modelo Modelo vers o ultrapassado vers o 1 vers o 2 amp amp C digo C digo vers o 1 vers o 2 C digo g C digo versao 5 41 versao n Figura 1 2 Desactualiza o dos modelos por actualiza o do c digo No entanto e por outro lado das altera es sobre artefactos operacionais normalmente mais frequentes podem advir incoer ncias entre estes e os artefactos conceptuais caso n o sejam acauteladas as ac es necess rias Destas incoer ncias resulta um bvio desalinhamento entre a documenta o do sistema os artefactos conceptuais e os res
269. rias sobre os objectos criar ou ent o seleccionar e modificar caso os objectos j existam e alterar as propriedades necess rias Se um objecto seleccionado do P g 50 modelo ou criado de raiz depende se o modelo cont m j um objecto que corresponde as propriedades chave caso existam especificadas no template defini o de objectos um erro se a avalia o da express o de template resulta numa atribui o de um valor a uma propriedade j atribu da por outra regra dentro da execu o da mesma transforma o indicando uma especifica o incoerente Para tipos primitivos os valores entram em conflito quando s o diferentes Uma atribui o de um objecto com uma liga o de multiplicidade 1 entra em conflito se o objecto a ser atribu do diferente daquele que j existe Da mesma forma para cada liga o v lida de vari veis do padr o do dom nio k que satisfazem a condi o do dom nio k se n o existe uma liga o v lida entre as vari veis do bloco when e os dom nios iniciais que satisfazem essa condi o when os padr es dos dom nios iniciais e a condi o where e pelo menos um dos dominios est marcado como checkonly ou enforce que garante a avalia o ent o devem ser eliminados os objectos ligados a vari veis do dom nio k quando a seguinte condi o satisfeita apagar um objecto apenas se n o for necess ria a sua exist ncia por outra liga o v lida nos dom nios iniciais 2 4 8 Se
270. rigues da Silva Anais Cient ficos da Universidade Independente Lisboa 2003 ReacT MDD Rastreabilidade Reactiva de Artefactos no Desenvolvimento de Sistemas de Informa o Marco Costa Alberto Rodrigues da Silva Revista Lus ada Tecnologias de Informa o 1 2010 Universidade Lusiada Editora 2010 P g 100 Relat rios T cnicos gestBarragens Sistema Integrado de Gest o da Informac o para o Controlo de Seguranca de Barragens LNEC Especifica o T cnica do Sistema Alberto Rodrigues da Silva Marco Costa Luis de Sousa SlQuant 01 2008 P g 101 Indice de Figuras Figura 1 1 Diagrama com elementos relacionados explicitamente e diagrama com elementos relacionados implicitamente cccccccccccnnnnnnncnnonnnonnnononononononono conoce nennen nennen seen eene eese eene eene 4 Figura 1 2 Desactualiza o dos modelos por actualiza o do c digo siemens 5 Figura 1 3 Enquadramento conceptual dos diferentes cap tulos da disserta o 8 Figura 2 1 Alguns marcos importantes na rea do desenvolvimento de sistemas de informac o 12 Figura 2 2 Pacotes UML2 que suportam os modelos estruturais do UML sees 22 Figura 2 3 Pacotes UML2 que suportam os diferentes tipos de diagramas em UML 22 Figura 2 4 Arquitectura do MOF em quatro n veis cccccccccesssesessseeeceeecesceeseneaeeeseecesseesas
271. ring morada string dataEdicao DateTime 0 estado 1 enumeration EstadoExemplar Figura 5 3 Diagrama de classes dependente da plataforma NET e da linguagem C O diagrama da Figura 3 3 representa uma implementa o espec fica da linguagem CH Como vis vel o tipo date foi substituido por DateTime acrescentou se uma operac o GetExemplares que devolve uma lista de objectos da classe Exemplar est o vis veis os pormenores de implementac o das relac es entre as classes e destas com os tipos enumerados a forma como os objectos s o guardados vis vel atrav s da classe Repositorio que s existe neste diagrama as classes que n o t m identificadores expl citos como nrSocio na classe Socio t m um identificador id que facilita a rela o destas classes com uma base de dados relacional Esta implementa o apenas uma de muitas que poss vel concretizar com este tipo de tecnologia Alterando a forma como a navega o entre as classes se processa ou como s o guardados os objectos mesmo sem alterar a tecnologia poss vel alterar completamente a solu o Como o diagrama reproduz j uma solu o poss vel gerar automaticamente c digo CH a partir deste O c digo produzido directamente pela ferramenta apresenta ainda diversos erros de gera o que t m de ser resolvidos para que a implementa o seja correcta Tome se como exemplo a gera o da classe Edicao da qual em
272. rm pimModel psmModel failed log failed transformation for package spec umlSpec return O exemplo dado embora correcto sintacticamente tem a atribuic o var transf que simultaneamente uma defini o de vari vel uma atribui o propriamente dita e a devolu o de um valor booleano Como o contexto da vari vel a opera o main uma solu o mais estruturada seria declar la juntamente com as restantes vari veis da opera o e inicializ la com o valor null Uma outra caracter stica avan ada a execu o em concorr ncia das diversas transforma es Estas s o teis quando n o existem restri es de sequ ncia sobre um conjunto de transforma es contidas numa nica Em termos de execu o invocar a transforma o de alto n vel funciona como criar um conjunto de subprocessos para realizam a tarefa A sincroniza o realizada esperando pelas vari veis que s o devolvidas pela execu o das subtransforma es P g 146 No exemplo seguinte transforma se um modelo de requisitos num modelo PSM decompondo o em dois modelos interm dios PIM um para a interface grafica e outro para o comportamento e fundindo os depois no modelo PSM transformation Req2Psm inout pim REQ out psm PSM access Req2Pimgui in req REQ out pimGui PIM access Req2Pimbehavior in req REQ out pimBehavior PIM access Pim2Psm in pimGui PIM in pimBehavior PIM out psm PSM main
273. rmac o atrav s de t cnicas de gerac o autom tica a partir de um modelo constru do na aplicac o IBM Rational Rose Os elementos gr ficos da documentac o produzida e g tipos de letra formatac o de tabelas diagramas podem ser alterados atrav s de templates P g 119 Produto Fabricante Tipo Refer ncia Web Ferramentas CASE ArgoUML Tigris org Ferramenta CASE open source com argouml tigris org gera o de c digo Java ou outras linguagens recorrendo a extens es a partir de um subconjunto dos diagramas UML Artiso Visual AMD Ferramenta CASE com gera o www visualcase com Case bidireccional de c digo Java centrada em aplica es com acesso a SGBDs relacionais Enterprise Sparx Systems Ferramenta CASE com gera o para www sparxsystems c Architect diversas linguagens de programa o e om au transforma o de modelos atrav s de templates Nucleus Accelerated Ferramenta CASE com gera o argouml tigris org BridgePoint Technology autom tica de programas a partir de perfil UML e action language Optimal Compuware Ferramenta CASE com capacidade de www compuware co transforma o entre modelos tal como m products optimalj entre modelos e c digo utilizando um metamodelo Power Designer Sybase Conjunto de ferramentas CASE www sybase com pr orientadas para o desenvolvimento de oducts development aplica es centradas em dados integration powerde implementadas em diversas linguagens e signer SGBDRs Rat
274. ro No primeiro caso apresentado um dominio de aplicac o denominado Biblioteca com um n mero reduzido de artefactos e de f cil compreens o No segundo caso apresentado um dominio real com um grande n mero de artefactos Embora de forma diferente ambos os casos de utilizac o contribuiram para entender as potencialidades e as dificuldades na utiliza o do ReacT Workbench 5 1 Caso de Estudo Biblioteca Considere se um dom nio simplificado dos empr stimos de uma biblioteca onde importante conhecer quais as obras existentes as suas edi es os exemplares existentes fisicamente bem como os s cios e os empr stimos realizados O diagrama Figura 5 1 revela as estruturas de dados a n vel conceptual do dom nio descrito Os identificadores das classes foram propositadamente deixados com acentos e caracteres normalmente n o usados na implementac o Trata se de um diagrama conceptual em que o conhecimento do problema deve ser o mais evidente poss vel A legibilidade deste diagrama importante na medida em que pode servir para comunicar com intervenientes com pouco conhecimento t cnico Obra S cio Empr stimo efectua t tulo string n de s cio int A data de sa da date autor string nome string 1 0 data de entrada date data de cria o date morada string 0 1 3 Edi o Editora Exemplar One Stim _ n mero de ed
275. rs para diferentes linguagens de programa o ou descri o e Cria o de interfaces gr ficas que optimizem a cria o de rastos entre artefactos quer atrav s de editores de texto optimizados quer atrav s de ferramentas gr ficas P g 99 Publicac es Cient ficas e Congressos Nacionais e Internacionais Congressos Nacionais Aspectos de Sincroniza o em Modelos UML Marco Costa Alberto Rodrigues da Silva Actas da 62 Confer ncia da Associac o Portuguesa de Sistemas de Informac o CAPSI 2005 Braganca 2005 Congressos Internacionais XIS Generative Programming Techniques Alberto Rodrigues da Silva Goncalo Lemos Tiago Matias Marco Costa Generative Programming and Component Engineering GPCE O3 Erfurt Germany 2003 RT MDD Framework A Practical Approach Marco Costa Alberto Rodrigues da Silva 3rd European Conference on Model Driven Architecture ECMDA Traceability Workshop Haifa Israel 2007 Synchronization Issues in UML Models Marco Costa Alberto Rodrigues da Silva 9th International Conference on Enterprise Information Systems ICEIS Funchal Portugal 2007 ReacT MDD Reactive Traceability in Model Driven Development Marco Costa Alberto Rodrigues da Silva 12th International Conference on Enterprise Information Systems ICEIS Funchal Portugal 2010 em fase de aprovac o Publicac es Cient ficas Arquitecturas de Sistemas de Informa o e a Iniciativa MDA Marco Costa Alberto Rod
276. rsas rela es entre alguns elementos conceptuais de diferentes modelos e g um Arquivo de Informac o de um DFD esta associado a uma Estrutura de Dados Logica que representa um subconjunto da Estrutura de Dados L gica do sistema completo Considerando a vers o original do SSADM verifica se que tal como noutras abordagens do mesmo per odo esta centra se na compreensdo e documentac o de um dominio tendo em vista a implementa o de uma ou mais aplica es nesse mbito A documenta o pode englobar um n mero consider vel de descric es textuais em lingua natural Em consequ ncia previligia o sentido da cria o gera o de artefactos dos modelos para o c digo e n o o inverso poss vel considerar alguma rastreabilidade dos artefactos produzidos embora na pr tica este aspecto fosse tratado de forma manual Merise O m todo Merise nasceu igualmente das necessidades de um governo neste caso o franc s O Minist rio da Ind stria franc s procurava uma metodologia que permitisse ao servico p blico desenvolver projectos de sistemas de informa o dentro do tempo e do or amento previstos Tardieu et al 83 O projecto foi iniciado em 1977 e culminou num m todo que inclui diversas vis es do sistema de informa o como o Modelo Conceptual de Dados CDM para conceber bases de dados envolvendo uma notac o pr pria para o diagrama de entidade associac o Nesta metodologia s o seguidas seis etapas Sistema de Informac o
277. rtefacto apesar de ter sido produzido em duas ferramentas diferentes Enterprise Architect e Visual Studio A ferramenta permite igualmente realizar a rastreabilidade dos artefactos nomeadamente atrav s das rela es de coer ncia que foram introduzidas A verifica o do c digo MSIL n o foi feita por este ser gerado e verificado pelo IDE Microsoft Visual Studio a partir dos artefactos de c digo fonte escritos em CH 5 2 Caso de Estudo gestBarragens O projecto gestBarragens Sistema Integrado de Gest o da Informa o para o Controlo de Seguran a de Barragens Silva et al 08 serviu tamb m para verificar o interesse pr tico do problema tratado bem como para fornecer dados de um contexto real a este trabalho Trata se de um conjunto de aplica es integradas que gerem informa o t cnica sobre as barragens existentes em Portugal permitindo conhecer o estado e a evolu o das condi es f sicas das mesmas O gestBarragens Silva et al 08 suporta os seguintes processos o processo de observa o de grandezas f sicas a partir da explora o manual ou autom tica dos sistemas de observa o instalados nas barragens o processo inerente s inspec es visuais realizadas periodicamente por interven o humana o processo de gest o e consulta geral da informa o patrimonial e documental relacionada com as barragens e o processo de detec o de situa es de anomalia nos dados observados que pode implicar a tomada de
278. s Element element 0 A A j i import i 1 Extension Tag name String value String Figura 2 5 Metamodelo MOF dos elementos que permitem associar marcas de valor aos elementos de qualquer diagrama MOF Os modelos MOF permitem definir elementos de metamodelos que possuem propriedades e opera es de uma forma coerente com um diagrama de classes UML Permitem ainda anotar cada um dos elementos do metamodelo com informa o que pode ser relevante para a documenta o do mesmo Um exemplo de metamodelo MOF encontra se na Figura 2 5 onde o diagrama apresentado define alguns elementos dos pr prios diagramas MOF Neste caso foi definido o pr prio mecanismo que permite associar informac o textual a cada elemento de um metamodelo MOF Assim sendo o diagrama um metamodelo que define os pr prios conceitos que podem ser utilizados nele pr prio o que neste caso particular n o acontece metamodel MOF A M3 M2 import metamodel UML Figura 2 6 Rela o conceptual entre as especifica es do UML e do MOF P g 24 A especificac o do UML utiliza os conceitos definidos pelo MOF para definir os metamodelos correspondentes Figura 2 6 A especificac o do UML na medida em que define os elementos conceptuais que s o usados para definir modelos encontra se no nivel M2 Como o MOF define os conceitos que sdo instanc
279. s n o cobrem todas as necessidades Os artefactos gerados i e os produtos resultantes da utilizac o de cada ferramenta tornam se assim em mais um aspecto a ter em conta no pr prio processo de desenvolvimento Considerando o processo de desenvolvimento de uma perspectiva sist mica o aumento de artefactos pode indiciar um aumento da entropia do sistema Por m o n mero de artefactos por si s n o um problema Se existirem ferramentas que os interligam de forma autom tica relacionando os inequivocamente Figura 1 1 os conjuntos entretanto criados comportam se como um elemento integrado naquilo que diz respeito sua coer ncia mantendo se constante a entropia do sistema segundo a mesma analogia A e LOI E e lt O e y she T O A L BA ye gt XN As Figura 1 1 Diagrama com elementos relacionados explicitamente e diagrama com elementos relacionados implicitamente Normalmente se o n mero de artefactos n o constitui por si s um problema j o mesmo n o se pode dizer dos seus tipos Ao introduzir se um novo tipo de artefactos pode ser necess rio assegurar a rela o com os demais tipos Neste ponto podem surgir dificuldades se a rela o for mantida de uma forma manual i e com a interven o de um operador humano Tome se como exemplo um cen rio em que existe uma ferramenta de gest o de requisitos a
280. s podem existir tamb m outras depend ncias definidas manualmente e g um par metro de entrada de um m todo de uma classe pode estar dependente do nome de uma classe do mesmo modelo e C digo Modelo Um elemento do modelo pode estar dependente de um elemento do c digo e vice versa Neste tipo de depend ncia n o basta tratar a representa o do modelo necess rio tamb m que exista uma representa o em mem ria do pr prio c digo Isso pode ser conseguido recorrendo se a um parser que a partir de uma gram tica da linguagem e do ficheiro fonte produz uma representa o em objectos dos elementos sinct ticos existentes no c digo Estes elementos do c digo podem ent o ser mapeados em elementos do modelo recorrendo se a um conjunto de regras de coer ncia j definidas Estas regras podem ser instancia es de outras P g 69 mais gen ricas ou podem ser definidas caso a caso Este tipo de depend ncia poderia ser considerado um caso particular das depend ncias intermodelos se ndo se distinguisse o c digo dos modelos e e C digo C digo Este tipo de rela es podem ser transformados em duas rela es do tipo anterior facilitando se a sua implementa o A sincroniza o envolvendo gera o de c digo e transforma es entre modelos consoante o s n vel is MDA em que se situa apresenta diferentes aspectos que podem levantar problemas de implementa o de maior ou menor grau
281. s vindos de dois m dulos diferentes podem ser distinguidos qualificando os No entanto um s mbolo local tem sempre preced ncia sobre os s mbolos importados ModelParameter Um modelo par metro um par metro para uma transforma o operacional Desta forma um conjunto ordenado de modelos par metros formam a assinatura da transforma o Cada modelo par metro refere se implicitamente a um modelo que participa numa selec o ou numa transforma o Cada modelo par metro cont m uma indica o explicitando o efeito da execu o do m dulo sobre o modelo in significa que as altera es n o s o permitidas inout significa que o modelo pode ser alterado out significa que o modelo deve ser criado Estes par metros modelos s o globalmente acess veis dentro da transforma o Cada modelo par metro P g 151 tem um tipo ModelType Os modelos par metros s o anotados como simples par metros na assinatura da transforma o Se o sentido da transforma o n o fornecido o valor in assumido por omiss o ModelType Cada modelo par metro tem um tipo de modelo o qual definido ou referenciado por uma transforma o ou por uma biblioteca Um tipo de modelo definido por um metamodelo um tipo de conformidade e um conjunto opcional de restri es O metamodelo define um conjunto de classes e de propriedades de elementos que s o esperados pelas transforma es Quando uma transforma o operacional instanciada
282. seguida se reproduz um segmento ap s reformata o using BibliotecaPSM1 namespace BibliotecaPSM1 public class Edicao public int id public int nrEdicao public int nrPaginas public DateTime dataEdicao public Exemplar exemplares public Editora editora public Edicao end Edicao end namespace BibliotecaPSM1 P g 88 O gerador n o respeitou a implementac o do atributo Exemplares como uma lista dando lhe o tipo Exemplar A pr pria gerac o deste atributo como lista poderia ser feita de diversas formas e g List lt Exemplar gt ArrayList Exemplar ou outro agregado de objectos nenhuma delas como a que foi realizada Este facto significa que cada vez que o c digo for gerado o erro ser repetido tendo de ser revisto e corrigido manualmente S ent o a coer ncia dos artefactos gerados com os artefactos conceptuais assegurada Com este exemplo de evidente simplicidade foram gerados cinco tipos de artefactos Figura 5 4 que na verdade representam tr s diagramas e oito ficheiros com classes CH e um ficheiro com c digo MSIL Microsoft Intermediate Language Microsoft 10 eventualmente incoerentes Foi criado um fornecedor EnterpriseArchitect que actua como uma ligac o aos artefactos criados por esta ferramenta O fornecedor neste caso permite apenas conhecer o estado actual dos artefactos criados Uma implementa o mais abrangente poderia interagir com a ferramenta provocando
283. segundo cap tulo apresentado o modelo QVT Queries Views and Transformations que uma das propostas existentes na transforma o entre modelos e constituiu a base para o presente trabalho No Cap tulo 3 apresentada uma proposta que concretiza a investiga o realizada no que diz respeito aos aspectos te ricos No in cio do cap tulo s o apresentados os conceitos b sicos no que diz respeito rastreabilidade reactiva sendo estes aprofundados gradualmente ao longo do cap tulo O texto envolve a utiliza o de diferentes tipos de express o e g diagramas UML express es formais e descri es textuais para introduzir e definir os conceitos referidos A apresenta o dos conceitos envolve uma defini o alternativa a outras existentes sendo estas referidas e comparadas S o ainda explicadas no mesmo cap tulo as diferen as entre as perspectivas usualmente adoptadas e a abordagem ReacT MDD No Cap tulo 4 s o mostrados aspectos t cnicos e arquitecturais da framework ReacT MDD bem como de um prot tipo constru do em conformidade constituindo esta uma das contribui es deste trabalho de investiga o No Cap tulo 5 s o explicados dois casos de estudo que permitiram retirar conclus es quanto viabilidade da abordagem ReacT MDD Os dois casos t m prop sitos diferentes no primeiro caso desenvolvido um exemplo simples que permite a compreens o da abordagem enquanto no segundo caso referida uma aplica o
284. sse class Uma ETO especificada por uma colec o de itens de template de propriedade que correspondem a diferentes atributos da classe referenciada where 130 1 0 1 owner j match TN TemplateExp referre dColle dionType templateExp 0 1 X A ee listContainer 0 1 0 1 objectTemplateExp ObjectTemplateExp CollectionTemplateExp kind CollectionKind objContainer 1 1 B part colle tion Templ ateExp propertyitem Property Templateltem Im a refemedClass qref rredProperty propertyltem 14 E E Figura C 2 Metamodelo do Package QVTTemplate CollectionTemplateExp Uma express o de template de colec o ETC especifica um padr o que corresponde a uma colecc o de elementos O tipo da colecc o resultante dado pelo tipo da coleccdo referenciada Uma ETC pode ser especificada de tr s formas diferentes i e por enumera o por compreens o ou por selec o dos membros Sintacticamente estes tr s modos s o indicados com as palavras reservadas Enumeration Comprehension e MemberSelection no atributo kind A interpretac o do modelo nos tr s casos referidos a seguinte e Enumerac o O conjunto de express es das partes especifica exacatamente os elementos que devem pertencer a colecc o P g 129 e Compreens o A express o de compara o que pode ser uma vari vel ou um template
285. st dio de desenvolvimento do prot tipo n o permite tirar conclus es no que diz respeito a uma quantifica o de eventuais ganhos de produtividade resultantes da sua utiliza o Por m foi conseguida uma uniformiza o no tratamento dos fornecedores externos para al m dos conceitos usados que facilitam e melhoram a qualidade do tratamento da rastreabilidade reactiva Com esta abordagem permite se que sejam utilizadas t cnicas mais pr ximas da Engenharia no desenvolvimento e manuten o de sistemas de informa o N o se trata de limitar a criatividade ou a liberdade de desenvolver solu es engenhosas para os problemas que v o surgindo Trata se isso sim de uma forma de criar e manter mais facilmente com melhor qualidade e com menores custos os projectos de sistemas de informa o 6 1 Trabalho Futuro O trabalho futuro centrar se a nas seguintes reas e Cria o de fornecedores externos para a ferramenta ReacT Workbench Implementa o de liga es a outras ferramentas como SGBD ferramentas CASE e processadores de texto e Defini o e implementa o de metamodelos mais abrangentes Cria o e aperfei oamento dos metamodelos necess rios execu o da ferramenta ReacT Workbench tendo em vista o tratamento de um maior n mero de artefactos bem como de um tratamento mais aprofundado e Cria o de parsers para diferentes linguagens de programa o Inclus o atrav s de fornecedores externos de parse
286. t ncia verificada No entanto se a transforma o for executada no sentido inverso Figura 2 19 para cada package existente em uml a rela o verifica se existe um schema com o mesmo P g 44 nome e caso n o exista criado um novo schema nesse modelo com o nome dado pn Se a transformac o for executada tamb m no sentido do rdbms mas n o existe um package com o mesmo nome em uml esse esquema eliminado do modelo rdbms Genericamente numa transforma o caso existam ac es estas s o sempre produzidas sobre o dominio alvo Transformac o Transformag o gt gt Modelo Alvo Modelo Alvo Modelo Inicial enforce enforce a a O Modelo Inicial Figura 2 19 Efeitos de uma transformac o sobre um modelo alvo QVT marcado com a palavra reservada enforced 2 4 3 Correspond ncias entre padr es No exemplo dado da rela o ClassToTable existem diversas express es de templates de objectos object template expressions que s o usadas para realizar compara es nos dominios respectivos A seguinte express o de template de objectos est associada ao dom nio uml domain uml c Class namespace p Package kind Persistent name cn Uma correspond ncia entre express es de templates resulta numa ligac o de elementos do modelo candidato a vari veis declaradas pelo dominio Uma correspond ncia entre express es pode ser realizada num contexto em que algumas
287. tamb m importada uma outra bilbioteca MathUtils cuja implementac o pode ter sido realizada noutra linguagem diferente do QVT D 3 Operac es de mapeamento Uma opera o de mapeamento uma opera o que implementa um mapeamento entre um ou mais modelos iniciais e um ou mais modelos finais Uma opra o de mapeamento sintacticamente descrita por uma assinatura uma condi o de guarda when um corpo do mapeamento e uma p s condi o where Uma opera o de mapeamento um refinamento do conceito de rela o anteriormente dado A opera o de mapeamento package ToSchema definida em seguida mostra a forma como um package UML deve ser transformado num esquema relacional mapping Package packageToSchema Schema when self name startingWith lt gt _ name self name table self ownedElement gt map class2table A relac o impl cita associada a esta operac o de mapeamento tem a seguinte estrutura relation REL_PackageToSchema checkonly domain uml self Package enforce domain rdbms result Schema when self name startingWith lt gt _ A operac o de mapeamento packageToSchema comporta se como qualquer operac o que seja definida na metaclasse Package A variavel self refere se a instancia da metaclasse Package que foi passada para a operac o A condic o when restringe o mbito da execuc o do corpo No exemplo un dado se o nome de um package for inici
288. tas tendem a esbater se com a permuta de caracter sticas entre os dois tipos Existem assim IDEs com caracter sticas das ferramentas CASE e g Microsoft Visual Studio NET IBM Eclipse ou ferramentas CASE com capacidades anteriormente caracter sticas dos IDEs e g Borland Together IBM Rational Rose P g 19 Ferramentas CASE Segundo o Software Engineering Institute SEI 05 uma ferramenta CASE pode ser definida como um produto de software destinado a suportar uma ou mais actividades de engenharia no mbito de um processo de desenvolvimento Esta defini o suficientemente gen rica para abarcar ferramentas t o diferentes como compiladores aplica es de gest o de configura es sistemas de gest o de bases de dados etc No entanto se se definir os constituintes e funcionalidades de uma ferramenta CASE a distin o deste tipo de ferramentas torna se evidente Uma ferramenta CASE tem obrigatoriamente de conter um reposit rio comum de informac o que guarda toda o conhecimento existente sobre o sistema em causa O principal objectivo deste componente o de evitar a redund ncia e a duplica o de esfor os permitindo a utiliza o de um elemento conceptual definido atrav s da ferramenta em diversos diagramas descri es listas tabelas etc Os elementos conceptuais podem relacionar se entre si num ou mais diagramas sem que exista redund ncia no reposit rio Existem v rias formas deste reposit rio ser guardado e
289. te esta verifica o importante pois garante que os diagramas produzidos cumprem as normas definidas pela linguagem tamb m frequente este tipo de ferramentas conseguirem apresentar relat rios ou tabelas que relacionam de uma forma til e actualizada os elementos guardados no reposit rio Estes artefactos podem servir para validar os modelos criados levando esta valida o a uma nova itera o no processo de desenvolvimento Podem tamb m ser usados para documentar o sistema modelado facilitando a sua compreens o por parte de quem ainda n o o conhece completamente ou servindo de fonte produ o de outros documentos No entanto talvez a caracter stica mais importante deste tipo de ferramentas seja o facto de elas lidarem com os modelos n o com as ocorr ncias destes especificando os atrav s dos seus elementos constituintes e das rela es entre estes a diversos n veis de abstrac o P g 20 Ambientes de Desenvolvimento Integrado IDE Um IDE um conjunto integrado de ferramentas que permite a codificac o e compilac o de um programa ou parte dele recorrendo a uma ou mais linguagens de programa o e compiladores associados Um IDE possui um editor de texto que permite realizar a introduc o e alterac o do c digo numa linguagem de programa o e g CH Java C Este editor pode ter uma maior ou menor complexidade consoante utiliza caracter sticas gr ficas e g tipo de letra cores bot es para esconde
290. tes processos metodologias nota es tipos de ferramentas e paradigmas de programa o evoluindo continuamente e A tecnologia envolvida na produ o de aplica es muda mais rapidamente do que em qualquer outra ind stria sendo grande parte dela constitu da por outras aplica es A variabilidade traduzida em actualiza o evolu o ou manuten o revela que as aplica es devem ser consideradas segundo uma perspectiva din mica Uma aplica o n o um produto que depois de acabado usado at ser substitu do por outro Pelo contr rio pode considerar se que uma aplica o evolui eventualmente atrav s de vers es das suas partes ao longo do tempo at deixar de ser mantida e utilizada Como as aplica es s o materializadas em artefactos s o estes que t m de ser verificados e actualizados para que a aplica o evolua correctamente As altera es de estado relevantes neste contexto s o aquelas que dizem respeito estrutura da aplica o Assim sendo cada altera o a um artefacto conceptual ou operacional deve ser verificada na ptica da coer ncia A capacidade de rastrear artefactos ou seja de seguir rela es entre um dado artefacto e os demais s poss vel se estes estiverem sincronizados Por isso enquadrou se a rastreabilidade numa componente reactiva em que a coer ncia verificada e s o tomadas decis es quanto sua manuten o Esta verifica o juntamente com a capaci
291. tipificado com interesse para uma regra A classe Domain abstracta sendo as suas subclasses concretas respons veis por especificar o mecanismo exacto pelo qual um conjunto de elementos do modelo podem ser especificados Pode ser especificado como um padr o indicado atrav s de um grafo um conjunto de vari veis e restri es ou por outro mecanismo ajustado para o efeito Um dom nio pode ser marcado como checkable e enforceable conforme j referido Rule Uma regra especifica a forma como os elementos do modelo especificados pelos seus dom nios est o relacionados uns com os outros e a forma como os elementos de um dom nio devem ser computados a partir dos elementos dos outros dom nios A class Rule uma classe abstracta cujas subclasses concretas s o respons veis por especificar a sem ntica exacta de como os dom nios est o relacionados Uma regra pode reimplementar uma outra regra A reimplementa o executada quando as condi es derivadas s o verificadas A sem ntica exacta da deriva o espec fica subclasse Function Uma fun o uma opera o sem efeitos colaterais perten a de uma transforma o Uma fun o produz necessariamente o mesmo resultado cada vez que invocada com determinados argumentos podendo ser especificada atrav s duma express o OCL ou ter uma implementa o de caixa preta FunctionParameter Os par metros de fun o representam as vari veis que s o usadas como argumentos
292. tratada atrav s de ferramentas dedicadas a esse fim operadas autonomamente ou integrada em ferramentas j existentes O prot tipo criado usa a primeira abordagem tratando uniformemente artefactos de diferentes tipos conceptuais e operacionais bem como as rela es entre estes S o ainda tratados dois casos de estudo que consubstanciam e validam preliminarmente a abordagem permitindo retirar conclus es sobre a pr tica da mesma O trabalho resultante est suportado por um estudo das metodologias e nota es historicamente mais relevantes neste contexto sendo a sua s ntese um contributo para o enquadramento da solu o encontrada A P g 7 utiliza o de diferentes ferramentas ao longo da referida investiga o contribuiu para a compreens o das potencialidades de cada uma bem como para as dificuldades resultantes do seu uso 1 5 Organiza o da Disserta o Na escrita da disserta o s o tomadas diversas op es de fundo que s o contextualizadas e justificadas progressivamente ao longo dos seus diferentes cap tulos Genericamente a disserta o evolui dos conceitos para a pr tica e do geral para o particular No Cap tulo 2 feito um enquadramento hist rico e conceptual do trabalho Devido ao facto das actividades inerentes ao desenvolvimento deste tipo de sistemas serem relativamente recentes nota se por vezes em trabalhos t cnicos e cient ficos uma tend ncia para ser ocultada a sua evolu o a n vel met
293. trav s da qual s o definidos os requisitos t cnicos de uma aplica o e g ter que usar os dados de uma tabela pertencente a uma base de dados existente Apesar de os requisitos serem tratados automaticamente pela ferramenta que os relaciona entre si a sua rela o com os demais mantida manualmente no exemplo dado a altera o da estrutura da tabela ou da sem ntica das suas colunas teria de ser verificada aquando da utiliza o da dita ferramenta de gest o de requisitos P g 4 Artefactos operacionais e conceptuais Uma outra forma porventura mais especifica e concreta de analisar o problema anteriormente descrito sera considerar uma aplicac o desenvolvida atrav s de um processo envolvendo o uso de modelos ao longo de diversas fases Os modelos criados podem referir se a diversos niveis conceptuais sendo o sistema modelado subjacente o mesmo Considere se a divisdo dos artefactos do sistema aplicacional em dois tipos artefactos conceptuais e artefactos operacionais O primeiro tipo representa todos os artefactos que ndo est o directamente envolvidos na operac o do sistema tais como classe de dom nio tabela relacional contida num diagrama de tabelas descric o de um requisito Por outro lado os artefactos operacionais representam todos os elementos que contribuem directa ou indirectamente para a operac o da aplicac o e g classe CH da aplicac o em c digo fonte indirectamente ou bin rio directamente tabela
294. uml n o existe uma correspond ncia v lida no dom nio rdbms como o dominio rdbms garantido com a palavra reservada enforced neste caso os objectos s o criados e as propriedades s o especificadas tal como indicado na express o de template associada ao dom nio rdbms Da mesma forma para cada correspond ncia v lida do dom nio rdbms deve existir pelo menos uma correspond ncia v lida do dom nio um que satisfaz o bloco where tal acontece porque o dom nio uml est marcado com a palavra reservada checkonly Se essa correspond ncia no dom nio uml n o existir ter de se eliminar os objectos rdbms presentes na correspond ncia 2 4 4 Chaves e cria o de objectos usando padr es Uma express o de templates de objectos pode servir para a cria o de objectos num modelo Quando para uma correspond ncia v lida no padr o do dom nio fonte n o existe uma correspond ncia v lida no padr o do dom nio alvo ent o as express es de templates de objectos do dom nio alvo s o usadas como base para a cria o de objectos no modelo alvo Por exemplo quando a rela o ClassToTable executada com o rdbms como modelo alvo a seguinte express o de templates de objectos serve parcialmente como base para a cria o de objectos no modelo rdbms t Table schema s Schema name cn column cl Column name cn _tid type NUMBER primaryKey k PrimaryKey name cn _pk column c1 Este template indica que uma tabel
295. umn String tableName String columnName string dataType RemoveColumn String tableName String columnName sayuadold fe El Operations AddColumn String columnName String dataType RemoveColumn String columnName ZeroMany 4 m Error List 30 Errors A 1 Warninall i 0 Messages r Error List Output Ready Figura 4 7 Metamodelo do contexto Database O metamodelo criado utiliza a no o de heran a entre tipos de artefactos representados por conceitos do metamodelo A heran a posteriormente seguida na gera o dos artefactos que realizam a rela o entre o metamodelo e os fornecedores externos O ReacT Workbench enquanto prot tipo permitiu conhecer as potencialidade e as dificuldades de implementa o de uma ferramenta em conformidade com a plataforma ReacT MDD Entre as maiores dificuldades talvez a mais relevante seja o facto de integrar tecnologias de reas t o diversas como os analisadores de linguagens de programa o os SGBDs relacionais as ferramentas CASE e a metamodela o Foram realizados dois casos de estudo que ser o explicitados em seguida tendo em vista a compreens o da utiliza o desta framework no mbito do desenvolvimento de aplica es P g 85 5 Casos de Estudo Com o intuito de validar o trabalho realizado s o apresentados dois casos pr ticos com caracteristicas muito diferentes um do out
296. univocamente uma inst ncia da classe no contexto de um modelo Uma classe pode ter diversas chaves da mesma forma que uma tabela no modelo relacional RelationImplementation Uma implementa o de rela o especifica uma implementa o operacional em caixa preta opcional para garantir o dom nio da relac o A operac o caixa preta invocada apenas quando a rela o executada na direc o do modelo tipado associado ao dom nio que deve garantido e a rela o avaliada como falsa A opera o invocada respons vel por realizar as altera es necess rias ao modelo de forma a satisfazer a rela o especificada Existe uma excep o em tempo de execu o se a rela o avaliada como falsa depois da opera o ser executada A assinatura da opera o pode ser derivada da especifica o de dom nio da rela o i e um par metro de sa da correspondente ao dom nio garantido e um par metro de entrada correspondente a cada um dos outros dom nios P g 131 Anexo D Linguagem de mapeamentos operacionais do QVT A linguagem de mapeamentos operacionais do QVT permite definir transforma es usando uma abordagem imperativa atrav s de transforma es operacionais bem como complementa as transforma es relacionais com opera es imperativas que implementam as rela es abordagem h brida Nesta sec o foi feito um resumo da linguagem bem como uma descri o resumida da sua sintaxe e da sua sem ntica D 1 Tra
297. uportam a fase de implementac o do processo de desenvolvimento e g Eclipse IBM WebSphere Borland JBuilder NetBeans IDE Sun One Studio Oracle JDeveloper BEA WebLogic Workshop Esta ferramenta consegue desenhar todos os diagramas do UML 2 0 P g 117 Durante o desenvolvimento de aplica es muitos dos artefactos s o produzidos por IDEs que se t m tornado ao longo dos anos cada vez mais completos naquilo que diz respeito a relac o entre os artefactos produzidos E g poss vel encontrar verifica es de integridade do c digo ainda que algo rudimentares como no caso do Visual Studio quando verificada a data do ficheiro fonte de uma sec o de c digo na fase de edi o Delphi Borland Em 1983 a Borland criou um IDE para a cria o de programas na linguagem Pascal denominado ent o de Turbo Pascal Jensen 2004 Era composto de um editor em modo texto com reduzidas capacidades gr ficas executado no sistema operativo MSDOS e de um compilador de Pascal O Turbo Pascal teve uma evolu o continuada nos anos seguintes tendo se tornado no ambiente de programa o mais utilizado para esta linguagem Foram sendo acrescentadas capacidades ao longo dos anos hoje presentes na quase totalidade dos IDEs como o texto colorido consoante a sintaxe um modelo de programa o orientada por objectos e um editor com capacidades gr ficas acrescidas Em Fevereiro de 1995 a Borland lan ou o Delphi consistindo numa evolu o sufici
298. ut parameter of the rule init result self destination resolveone Table foreignKey self map asso2ForeignKey column result foreignKey column P g 139 A operac o resolveone inpecciona os dados de rastreabilidade para verificar se existe uma inst ncia de Table criada pela associa o com a classe alvo e que satisfa a a condi o booleana No caso apresentado a condic o ser do tipo Table a notac o ZTable um atalho para isKindOf Table Existem tr s variantes para a resolucdo O operador invresolve realiza o tratamento inverso isto procura os objectos que foram respons veis pela criac o do objecto passado como argumento do contexto O operador resolveln procura os objectos alvo criados de um objecto fonte atrav s de uma nica opera o de mapeamento No exemplo seguinte ilustra se esta utiliza o a partir de uma lista de classes Java inst ncias de Jclass que t m um campo denominado packageName indicando o nome do package a que pertencem a transforma o Jclass2Jpackage cria um package Java package para cada nome de package que encontrado na lista de classes Java transformation JClass2JPackage inout javamodel JAVA main javamodel objectsOfType JClass jclass2jpackage mapping Class jclass2jpackage JPackage init result resolveln jclass2jpackage true select plself package p name first if result then return name self package
299. xto da classe self o objecto que recebe a chamada da opera o EntryOperation Uma opera o de entrada o ponto de entrada na execu o da transforma o O seu corpo cont m uma lista ordenada de express es que devem ser executadas em sequ ncia A transforma o apenas pode definir uma opera o de entrada Uma opera o de entrada n o tem par metros podendo apenas aceder a todas as propriedades ou par metros globais da transforma o e s vari veis locais definidas por si tal como todas as restantes opera es A nota o para a opera o de entrada similar s outras opera es tendo esta o nome main transformation UmlCleaning inout uml UML main uml objectsOfType Package map cleanPackage Helper Uma fun o uma opera o que realiza um c lculo sobre um ou mais elementos e fornece um resultado O corpo de uma func o uma lista ordenada de express es que s o executadas em sequ ncia Quando mais do que um resultado declarado na assinatura da func o a invocac o da opera o devolve um tuplo A menos que a propriedade isQuery seja verdadeira uma fun o pode ter efeitos colaterais nos par metros e g uma lista pode ser passada e alterada no corpo da fun o e esse efeito pode ser vis vel ap s a execu o da fun o No entanto n o poss vel criar ou alterar objectos numa fun o exceptuando para os tipos pr definidos como conjuntos tuplos e para propriedades interm
300. yperGraph Based Data Structure Ashinsa Bopearachchi http membres lycos fr coursderecreation HBDS BASE Bouill i Fuzziness Structuring and Processing in an Object Oriented GIS Francois Bouill http www sbg ac at geo agit papers94 bouille htm Burback 98 The Booch Methodology Ronald LeRoi Burback http www db stanford edu burback watersluice node55 html 1998 Chen 75 The Entity Relationship Model Toward a Unified View of Data Peter P Chen Proc of the Int Conf on Very Large Data Bases Sept 22 24 1975 Framingham Massachusetts USA Chervany et al 98 CASE tools understanding the reasons for non use Norman Chervany Diane Lending ACM SIG Computer Personnel Volume 19 Issue 2 Abril de 1998 Chiorean 05 OCLE 2 0 User Manual Dan Chiorean http Ici cs ubbcluj ro ocle 2005 CodePlex 10 Managed Extensibility Framework Documentation CodePlex http mef codeplex com wikipage title Overview amp referringTitle Documentation 2010 CommentCaMarche 08 MERISE Initiation la conception de syst mes d information CommentCaMarche net http www commentcamarche net merise concintro php3 Costa 95 Dissertac o de Licenciatura em Matem ticas Aplicadas Ramo de Inform tica Marco Costa Universidade Lus ada de Lisboa 1995 P g 106 Costa et al 03a Arquitecturas de Sistemas de Informacdo e a Iniciativa MDA Marco Costa Alberto Rodrigues da Silva Anais Cientificos da Universidade Inde

Download Pdf Manuals

image

Related Search

Related Contents

  AO SERVIÇO DA NATUREzA  ASUS K553MA PG8770 User's Manual  HotHammer 2 - DF  取扱説明書 保証書添付 保 存 用  Supermicro PWS-1K41P-1R power supply unit  SBP 01 - Grifo  Aton CL118 DUO  Sennheiser Microphone MKH 80 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file