Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

Documentos relacionados
Model Driven Development (MDD)

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Desenvolvimento Dirigido por Modelos: Ferramentas

Introdução à Análise e Projeto de Sistemas

Modelagem/Arquitetura de Software

Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG

INF1013 MODELAGEM DE SOFTWARE

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

EMMANUEL DA COSTA GALO MODEL DRIVEN ARCHITECTURE-MDA E UM ESTUDO DE CASO

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

UML - Unified Modeling Language

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Desenvolvimento Java com ferramentas IBM

Engenharia de Software

Prof. Me. Sérgio Carlos Portari Júnior

UML Unified Modeling Language Linguagem de Modelagem Unificada

Capítulo 5 Modelação do Sistema 1

Modelagem de Processos de Negócio Aula 4 Projeto de Modelagem Andréa Magalhães Magdaleno

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Requisitos de Software e UML Básico. Janaína Horácio

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Modelagem de dados geográficos utilizando um perfil UML alinhado a padrões internacionais e à abordagem MDA

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

RUP RATIONAL UNIFIED PROCESS

Análise de Sistemas. Aula 5

Rui Miguel Silva Couto

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Rational Unified Process (RUP)

Transformando Modelos da MDA com o apoio de Componentes de Software

UML. Adriano J. Holanda 21/3/

Viabilidade de Construção de Software com MDD e MDA

Transforms: Um Ambiente de Apoio a Modelagem e Execução de Processos de Software Dirigido por Modelos

Introdução à Gestão de Processos de Negócios

Model Driven Architecture-MDA e um estudo de caso.

Transformação de modelos em processos de desenvolvimento de software

Transcrição:

Model Driven Architecture Centro de Informática/UFPE Fernando Trinta

Roteiro Contexto Introdução Conceitos MDA Platform Independent Model Platform Specific Model Transformations Consequências Promessas Conclusões

Engenharia de Software Hoje Problema da produtividade Sistemas cada vez mais complexos Grande número de tecnologias envolvidas Equipes médias/grandes Ênfase na codificação Problema de Portabilidade Portar sistemas entre diferentes tecnologias é uma tarefa árdua Padrões de Projeto, Componentes, Middleware ajudam, mas não são suficientes para resolver o problema!!!

Engenharia de Software Hoje Problema de Interoperabilidade Sistemas legados, fusões entre empresas implicam na necessidade de interoperabilidade entre diferentes sistemas Problema da Documentação Modelos utilizados apenas na fase inicial de concepção dos sistemas Unified Modeling Language Padrão de facto para modelagens de sistemas Durante implementação, ênfase no código produzido Possíveis mudanças de requisitos são realizadas diretamente sobre código

Engenharia de Software Tradicional

Model Driven Architecture Proposta do Object Managment Group: Objetivo: Portabilidade e Interoperabilidade de aplicações através do uso de modelos que utilizem linguagens formaisf Design once, build it on any platform Segundo MDA Guide: Abordagem para especificação de sistemas de TI que busca separar a especificação da funcionalidade do sistema, da especificação da implementação desta funcionalidade sobre alguma plataforma específica

MDA Pattern Um modelo independente de plataforma (PIM) é criado, e partindo de suas definições são gerados modelos para plataformas específicas(psm), através da definição de transformação entre estes modelos. O PSM por sua vez é transformado em código.

Outra visão da MDA Pattern

Engenharia de Software - MDA

Conceitos chaves: Model Driven Architecture Um modelo é a especificação formal da função, estrutura e/ou comportamento sistema Exemplos: Codigo Fonte Uma especificação UML

Model Driven Architecture PIM - Platform Independent Model: Modelos que representam a funcionalidade do sistema, sem representações inerentes a qual plataforma onde o sistema será desenvolvido. Possivelmente UML como linguagem

Model Driven Architecture PSM - Platform Specific Model: Representam um PIM, voltado para alguma plataforma específica CORBA, Enteprise JavaBeans, Microsoft.NET Usode UML Profiles Profiles Extensões UML para representar uma plataforma específica CCM Profile EJB Profile

Exemplo PSM Model Driven Architecture

Model Driven Architecture Código Java, C#, SQL Transformações: geração automática de um modelo a partir de outro modelo, baseado em uma definição de transformações PIM! PSM PIM! PIM PIM! PSM PIM! PSM Aplicações: Refactoring, Normalização

Model Driven Architecture Refactoring mapeia mapeia mapeia MODELO CORBA MODELO EJB OUTROS

Transformações Definição de transformação : conjunto de regras que descrevem como um modelo original é transformado em outro modelo Regra de transformação : descrição de como um ou mais construtores na linguagem do modelo original deve(m) ser transformado(s) em um ou mais construtores na linguagem do modelo destino Linguagem de definição de transformação : A linguagem na qual as definições das transformações são descritas.

Exemplo Transformação PIM PSM Regras de Transformação (1) Para cada atributo público attributename : Type da classe classname no PIM, devem ser gerados atributos e operações no modelo destino seguindo a regras abaixo:: Um atributo privado com o mesmo do nome/tipo original: attributename : Type Uma operação pública cujo nome deve ser precedido pela palavra get, seguido pelo nome do atributo com a primeira letra maiscula. Esta operação deve ter tipo de retorno igual ao tipo do atributo original getattributename() : Type

Outro Exemplo PIM PSM Regras de Transformação: (1) Para cada associação, há um atributo privado com o mesmo nome na classe destino (2) Se a multiplicidade da associação for igual a zero ou um, o tipo deste atributo é igual a classe do lado original da associação. Se a multiplicidade for igual a zero ou mais, o tipo do atributo deve ser igual ao tipo Set. (3)

Exemplo Linguagem de Transformação Transformation PublicToPrivateAttributes (UML, UML) { params setterprefix: String = 'set'; getterprefix: String = 'get'; source sourceattribute : UML::Attribute; target targetattribute : UML::Attribute; getter : UML::Operation; setter : UML::Operation; source condition sourceattribute.visibility = VisibilityKind::public; target condition targetattribute.visibility = VisibilityKind::private and setter.name = setterprefix.concat(targetattribute.name) and setter.parameters->exists( p p.name = targetattribute.name and p.type = targetattribute.type) and setter.type = OclVoid and getter.name = getterprefix.concat(targetattribute.name) and getter.parameters->isempty() and getter.type = targetattribute.type and targetattribute.class = setter.class and targetattribute.class = getter.class; bidirectional; mapping sourceattribute.name <~> targetattribute.name; sourceattribute.type <~> targetattribute.type; }

Características desejáveis para Transformações MDA 1. Tunability (Controle) Controle manual, condições sobre as transformações, parâmetros sobre transformações 2. Rastreabilidade 3. Consistência Incremental 4. Bidirecionalidade (difícil!) Apenas uma transformação. Duas transformações, sendo uma a inversa da outra. Tranformações podem ocorrer ambos sentidos, mas é necessário manter os modelos origem e destino consistentes

Modelos MDA Uso de linguagens bem-definidas Forma (sintaxe) e significado (semântica) bem definidas. Requisitos necessários para interpretação automática por computadores, ie, sem ambiguidades MDA não é restrita apenas à UML Segundo OMG, UML + OCL é a melhor opção para definição de modelos Opções como só UML ou semântica de ações seriam alternativas, porém apresentam problemas

Produtividade A maior parte do código pode ser gerado Benefícios - MDA Portabilidade (Preservaçã ção o do conhecimento) Transformaçã ção o para diversos PSM Manutenção e Documentaçã ção Modelos não n o abandonados (rastreabilidade 100%) Separação de interesse Foco no desenvolvimento de um PIM Transformações guardam detalhes técnicos Interoperabilidade Geraçã ção o de bridges entre os modelos

Interoperabilidade Classes Entidades Class Pessoa Tabelas em Bancos de Dados Relacionais Tabela PESSOA

MDA & Processos de Desenvolvimento MDA não específica um processo específico para seu uso OMG não se preocupa com padronização de processos Modelos já possuem um importante papel no RUP Extremme Programming poderia se tornar Extremme Modelling

Novos papeis Analista PIM Necessidades do negócio Modelo de negócio Construtor PSM Detalhes da plataformas Arquiteturas Desenvolvedor de definição de transformações Escrita e compra

MDA hoje Uso de Padrões OMG para implementação MDA UML (Definições de Modelos) OCL Object Constraint Language Linguagem para melhoria da definição de modelos UML através de restrições MOF Meta Object Facility Definições de linguagens OMG está num processo para definição de uma linguagem padrão para definição de transformações

Ferramentas MDA Nenhuma implementa MDA por completo IO Software ArcStyler Disponível para download (Trial) Uso de Cartridges ComponentX Versão Full & Free OptimalJ VersãoTrial MDA Metanology Plugin para uso com Eclipse

Referências - Livros MDA Explained: The Pratice and Promise of Model Driven Architecture Convergent Architecture Building Model- Driven J2EE Systems with UML The Object Constraint Language 2 nd Edition Executable UML A Foundation for Model-Driven Architecture

Referências Artigose Sites MDA website http://www.omg.org/mda Artigos MDA Guide (Versão Maio 2003)