Modelos formais em MDA Modelo independente de computação (IM) Modelo independente de plataforma (PIM) Modelo específico de plataforma (PSM) Modelo de definição de plataforma (PDM) 39
IM (omputation Independent Model) Às vezes chamado de modelo de domínio ou modelo de negócio ão apresenta detalhes da estrutura do sistema Foco nos requisitos Mapeamento bastante difícil Serve como ponte entre expert do domínio e analista/projetista Uso de BPM (Business Process Modeling otation) sugerido pelo OMG como parte do IM 40
PIM (Platform Independent Model) Permite descrição do sistema sobre uma máquina virtual, neutra tecnologicamente, que oferece um conjunto de serviços de interesse para esse sistema Extensões que possibilitem o mapeamento para PSM são definidas em UM por meio de perfis Serviços de interesse podem ser definidos em termos de certos estilos arquiteturais Ex.: serviços orientados a objetos, serviços orientados a eventos... 41
PSM (Platform Specific Model) ombina a especificação de um sistema no PIM com outras extensões UM (marcas, metamodelos etc.) que especificam como esse sistema usa um tipo de plataforma específico Ex.: estereótipo <<EntityBean>> para indicar persistência de componentes EJB em um banco de dados 42
PDM (Platform Definition Model) Representa os diferentes tipos de elementos oferecidos ao sistema pela plataforma Ex: Modelo de componentes EJB oferece elementos como Interfaces Home e Object, SessionBeans, EntityBeans etc. 43
Relação entre modelos MDA 44
Transformação entre modelos Transformações podem ser definidas entre (meta)modelos Definidas em termos de mapeamentos do modelo origem para elementos do modelo destino Modelos podem ser de mesmo nível ou não Ex.: modelo UM -> documento XM Person age: integer <uclass name= Person > <uattribute name= age type= integer /> </uclass> 45
Transformação de modelos em MDA usando marcas PIM Mecanismos de marcação UM -Estereótipos -Anotações... Marcas PIM Transformação Mapeamento Mapa Plataforma Plataf. PSM 46
Transformação de modelos usando metamodelos PIM inguagem usada Metamodelo p/ PIM inguagem origem MOF Especificação de transformação Transformação PSM inguagem usada Metamodelo p/ PSM inguagem destino QVT (ou hard-coded na ferramenta) Definição de transformações usando metamodelos permite melhor reuso das especificações de transformações 47
Exemplo: Documentos e esquemas XM Esquema XM (modelo) <element name= uclass content= > <attribute name= name value= cname /> <element name= uattribute content= > <attribute name= name value= aname /> <attribute name= type value= atype /> </element> </element> Documento XM (instância do modelo) <uclass name= Person > <uattribute name= age type= integer /> </uclass> 48
Transformação de metamodelos UM -> XM Especificação de transformação inguagem origem inguagem destino MM UM MM XM lass name : String 1 owner attr * Attribute name : String type : String child * Element name : String content : String 0..1 parent 1 * attr Attribute name : String value : String 49
Exemplo: transformação de metamodelos UM -> XM :XM.Element :UM.lass name= cname attr owner :UM.Attribute name= aname type= atype :XM.Attribute name= name value= aname attr name= uclass content= child :XM.Element name= uattribute content= attr attr :XM.Attribute name= name value= cname :XM.Attribute name= type value= atype Person age: integer <uclass name= Person > <uattribute name= age type= integer /> </uclass> 50
Ainda sobre transformações... Podem ser efetuadas tanto sobre modelos estruturais (diagramas de classe) quanto modelos comportamentais (diagramas de casos de uso, de atividades e de estados) Modelos comportamentais permitem codificar a lógica de negócios do sistema (ou grande parte dela) diretamente no PIM/PSM 51
Demonstração... AndroMDA 3.2 (www.andromda.org) Suporte à modelos de estrutura e de comportamento Suporte a J2EE e.et Baseada em templates de geração de código (não QVT!!!) Versão 4.0 (beta) dá suporte a AT (similar a QVT) 52