Title: Desenvolvimento de Software Dirigido a Modelos
1Desenvolvimento de Software Dirigido a Modelos
2Agenda
- Introdução
- Arquitetura Dirigida a Modelos
- Abordagens MDD
- Problemas e Desafios dos Processos MDD
- Considerações Finais
3Objetivo 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.
4Introduçã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
5Introduçã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
6Introduçã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
7Introduçã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.
8Introduçã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
9Arquitetura 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
10Arquitetura 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
11Arquitetura Dirigida a Modelos
12Arquitetura Dirigida a Modelos
13Arquitetura Dirigida a Modelos
- Transformações de Mapeamentos por Metamodelos
14Arquitetura 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
15Arquitetura Dirigida a Modelos
- Padrões OMG e a Arquitetura MDA
16Abordagens 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
17Abordagens MDD
- OO-Method
- O Processo Básico de Transformação
- Distinção clara entre o espaço problema e solução
18Abordagens 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
19Abordagens MDD
- OO-Method
- O Modelo Conceitual
- Quatro visões que representam os requisitos
funcionais - modelo objeto,
- modelo dinâmico,
- modelo funcional e
- modelo de apresentação
20Abordagens MDD
- OO-Method
- O Modelo Conceitual
- 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
21Abordagens MDD
- OO-Method
- O Modelo Conceitual
- 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
22Abordagens MDD
- OO-Method
- O Modelo Conceitual
- 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
23Abordagens MDD
- OO-Method
- O Modelo Conceitual
- 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
24Abordagens 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
25Abordagens 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 gt Máquina de
virtual de programação - O OO-Method trata de modo completo e preciso
todos os aspectos da compilação de modelo
26Abordagens 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
27Abordagens 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
28Abordagens 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
29Problemas 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
30Problemas 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
31Problemas 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
32Considerações Finais
- MDD, conforme a arquitetura MDA, foi concebido
para alcançar os seguintes benefícios - Produtividade
- Qualidade
- Interoperabilidade
- Portabilidade
- Redução de Custos
33Consideraçõ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
34Dúvidas