Ferramentas de Suporte a MDD: Um Quadro Comparativo Monique Soares Page 1 Agenda • Introdução • Desenvolvimento de Software Dirigido a Modelos • Ferramentas MDA • Outras Ferramentas MDA • Quadro Comparativo • Conclusões Page 2 Introdução • Modelar é uma atividade essencial em Engenharia de Software • MDD vem representando um papel central no processo de Engenharia de Software • MDD oferece: – – – – Maior produtividade Portabilidade Menor custo Facilidade na evolução do software Page 3 Introdução • O objetivo do artigo é: – Apresentar uma descrição de algumas ferramentas que suportam MDD – Fazer um quadro comparativo que explana as principais características de uma ferramenta que suporta MDD. Page 4 Desenvolvimento de Software Dirigido a Modelos • Maior nível de abstração oferece melhoria da produtividade e aplicações fáceis de escrever; • Criação de aplicações muito mais complexas, sem aumentar a carga de trabalho de gerenciamento do projeto; • Construindo aplicações mais rápidas, mais baratas e com maior qualidade. Page 5 Desenvolvimento de Software Dirigido a Modelos • Com MDD: – O usuário trabalha com um PIM; – Seleciona uma plataforma alvo específica; – Uma ferramenta gera o código. • A produtividade é aumentada – É a auto-geração quem cuida do código Page 6 Desenvolvimento de Software Dirigido a Modelos • Principais vantagens em se utilizar MDD: – – – – Maior produtividade; Aumento da portabilidade; Interoperabilidade; Menor custo; • A principal ideia em MDD: – A transformação de modelos de maiores níveis de abstração em modelos mais concretos até se obter o código do sistema. Page 7 Desenvolvimento de Software Dirigido a Modelos • MDA – – – – Instância do processo MDD; Definida em 2001 pelo OMG; Explora a teoria básica do MDD. Provê uma abordagem aberta e neutra para o desafio dos negócios e mudanças tecnológicas; • Os PIM’s podem ser transformados através do MDA em praticamente qualquer plataforma. Page 8 Desenvolvimento de Software Dirigido a Modelos • Visão geral do padrão MDA Page 9 Ferramentas MDA • MOSKitt (Modeling Software Kit - Kit de Modelagem de Software) – – – – – Construída sobre o Eclipse Permite edição gráfica de modelos; Suporta persistência; Suporta trabalho em time e versão de modelos. Transformação de Modelo, Rastreabilidade e Sincronização. Page 10 Ferramentas MDA • OLIVANOVA – Distribuído comercialmente – Modelagem em UML – Linguagem Formal de especificação de sistemas de informação – OASIS – Composta de duas ferramentas: • Modelador • Máquina de Transformação Page 11 Ferramentas MDA • AndroMDA – Desenvolvida sobre o Eclipse; – Possibilita a definição de transformação de modelos PIM para PSM para depois atingir a geração de código fonte – Validação de restrições em OCL – É possível gerar componentes para várias linguagens Page 12 Outras Ferramentas MDA • Borland Together – Permite criar modelos de processo de negócio (BPMN) – Suporte a OCL • MaRiSa-MDD – Definição de metamodelos em KM3 – Transformações entre modelos orientados a aspectos das fases de requisitos, arquitetura e projeto detalhado Page 13 Outras Ferramentas MDA • ObjectiF – Modelagem de processos de negócio – Transformações de modelo para código e vice versa • Objecteering Mda Modeler – Define transformações de modelos e gera código – Ferramenta de modelagem gráfica Page 14 Outras Ferramentas MDA • Kennedy Carter – Ferramentas de modelagem e teste – Ferramenta de geração de código Page 15 Quadro Comparativo Page 16 Conclusões • Muitas ferramentas que suportam o MDD; • Grande maioria utiliza a UML como linguagem para modelagem; • Grande quantidade de ferramentas free; • O quadro comparativo apresentado pode crescer e agregar mais características desejadas, ligadas a MDD ou a ferramentas para apoio ao processo de engenharia de software. Page 17