Desenvolvimento de Software Dirigido a Modelos Monique Soares
Agenda Introdução Arquitetura Dirigida a Modelos Abordagens MDD Problemas e Desafios dos Processos MDD Considerações Finais
Objetivo Geral do Capítulo Apresentar o processo MDD padronizado pela MDA do OMG e sua relevância para a elevação da qualidade do processo de Engenharia de Software e do produto.
Introdução Modelar é uma atividade essencial da Engenharia de Software Na década de 1970 os métodos formais difundiram o desenvolvimento de software a partir de modelos formais matemáticos Em 2001 o OMG especificou a MDA, definindo assim uma nova instância do processo MDD
Maior qualidade do produto Introdução Principais argumentos para a utilização de MDD: Maior produtividade; Portabilidade; Interoperabilidade; Menor custo; Mais facilidade na evolução do software Maior qualidade do produto
Introdução Isso ocorre pelas seguintes razões: Principal idéia em MDD: transformação de modelos de maiores níveis de abstração em modelos mais concretos, até se obter o código do sistema Desenvolvimento inicial e modificações futuras devem ser efetuados apenas no modelo mais abstrato
Introdução Indústrias de software e empresas de ferramentas CASE transmitem as falsas idéias de que: em MDD com um “click” obtém-se todas as transformações de modelos até se chegar ao produto final de software Gerar código é o principal objetivo MDD Quando de fato o principal objetivo MDD é transformar modelos.
Introdução Não há um consenso na comunidade acadêmica sobre qual modelo de maior nível de abstração é mais adequado para se modelar um sistema
Arquitetura Dirigida a Modelos Conceitos Básicos: Modelo: representação funcional, estrutural e comportamental Dirigido a Modelos: Provê meios de usar modelos para direcionar o curso de entendimento Arquitetura: Especificação de partes e conectores de um sistema Ponto de Vista: Uma técnica de abstração
Arquitetura Dirigida a Modelos Conceitos Básicos: Plataforma : Conjunto de subsistemas e tecnologias que provê um conjunto coerente de funcionalidade Pontos de Vista (Modelos) MDA: Modelo Independente de Computação (CIM) Modelo Independente de Plataforma (PIM) Modelo Específico de Plataforma (PSM) Transformações (Mapeamentos) Transformações e Mapeamentos em MDA
Arquitetura Dirigida a Modelos Transformações em MDA
Arquitetura Dirigida a Modelos Metamodelo MDA
Arquitetura Dirigida a Modelos Transformações de Mapeamentos por Metamodelos
Arquitetura Dirigida a Modelos Padrões OMG e a Arquitetura MDA MDA visa proporcionar benefícios como: Aumentar a produtividade; Melhorar a portabilidade; Interoperabilidade Para atingir esses objetivos e separar os níveis de abstração, MDA foi definida pela OMG em três camadas
Arquitetura Dirigida a Modelos Padrões OMG e a Arquitetura MDA
Abordagens MDD OO-Method Primeira versão em 1992 na tese de PhD de Oscar Pastor, juntamente com OASIS Cobre todas as fases de desenvolvimento de software O centro do desenvolvimento de sofware dirigido por modelos é o Esquema Conceitual, fundamentado na seguinte afirmação do professor Antoni Olivé: “Para desenvolver um sistema de informação é necessário e suficiente definir seu esquema conceitual”
Abordagens MDD OO-Method O Processo Básico de Transformação Distinção clara entre o espaço problema e solução
Abordagens MDD OO-Method Comparação com MDA Propriedades do OO-Method ausentes na MDA O processo de compilação de modelos; Modelos do esquema conceitual computacionalmente completos
Abordagens MDD OO-Method O Modelo Conceitual modelo objeto, Quatro visões que representam os requisitos funcionais: modelo objeto, modelo dinâmico, modelo funcional e modelo de apresentação
Abordagens MDD OO-Method O Modelo Conceitual modelo objeto Quatro visões que representam os requisitos funcionais: modelo objeto Especifica as propriedades estáticas do sistema, definido pelo diagrama de configuração de classe
Abordagens MDD OO-Method O Modelo Conceitual modelo dinâmico Quatro visões que representam os requisitos funcionais: modelo dinâmico Representa o comportamento do sistema, especificando suas propriedades dinâmicas através de dois diagramas: Diagrama de Transição de Estado Diagrama de Interação de Objeto
Abordagens MDD OO-Method O Modelo Conceitual modelo funcional Quatro visões que representam os requisitos funcionais: modelo funcional Especifica o relacionamento estático e dinâmico através de: Definição semântica relacionada às transações de estado Descrição de como a execução dos eventos muda o valor dos atributos das classes
Abordagens MDD OO-Method O Modelo Conceitual modelo de apresentação Quatro visões que representam os requisitos funcionais: modelo de apresentação Especifica os requisitos de interface de usuário, modelando uma interface abstrata que é independente de plataforma
Abordagens MDD OO-Method O Modelo Conceitual Suporte a interoperabilidade e interface do sistema modelado com outros sistemas externos Com os quatro modelos básicos do esquema conceitual tem-se toda a infra-estrutura necessária para representar o sistema no contexto do espaço problema
Abordagens MDD OO-Method O Compilador de Modelos O OO-Method segue o processo ideal MDD de transformação de modelos Precisa transformar o modelo conceitual em um modelo de implementação Compilador de Esquema Conceitual => Máquina de virtual de programação O OO-Method trata de modo completo e preciso todos os aspectos da compilação de modelo
Abordagens MDD OO-Method OLIVANOVA É uma ferramenta de apoio ao OO-Method Care Technologies É composta de duas principais ferramentas: o modelador e a máquina de transformação
Abordagens MDD AndroMDA É uma ferramenta MDA OpenSource; 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 É possível gerar componentes para várias linguagens
Abordagens MDD AndroMDA Não provê recursos de definição abstrata de interface usuário Usa conceito de sincronização de modelos (PIM e PSM) Trata questões de rastreabilidade e validação de modelos de forma limitada
Problemas e Desafios dos Processos MDD Visão Geral Nível de maturidade insuficiente para se ter um produto final de software com qualidade e 100% gerado automaticamente a partir dos requisitos Muitos desafios devem ser superados MDA é apenas uma referência, pode ser usada por outro processo de desenvolvimento de software
Problemas e Desafios dos Processos MDD Lições Aprendidas na Adoção de Soluções MDA Muitas organizações perceberam um conjunto de práticas e passos consistentes: Examinar os modelos atualmente usados na empresa; Identificar as transformações candidatas para a automação; Especificar os requisitos dessas transformações; Criar os UML Profiles necessários; Desenvolver o código da transformação; Esboçar documentos de uso, empacotar e distribuir
Problemas e Desafios dos Processos MDD O Programa FastStart da OMG Foi lançado pelo OMG Ajuda as organizações a aprender e aplicar MDA Na arquitetura de seus sistemas Na integração dos sistemas Nos seus processos de desenvolvimento de software
Considerações Finais MDD, conforme a arquitetura MDA, foi concebido para alcançar os seguintes benefícios: Produtividade Qualidade Interoperabilidade Portabilidade Redução de Custos
Considerações Finais Outros processos de desenvolvimento de software também tem essas metas Nenhum deles consegue alcançá-las com mais efetividade do que o processo dirigido a modelos Em MDD já está explícita a idéia de automatização
Dúvidas