Desenvolvimento de Software
Dirigido a Modelos
Agenda:
Benefícios
Conceitos
Pontos de Vistas MDA : CIM,PIM, PSM
Transformações e Mapeamentos em MDA
Transformações por Metamodelos
Transformações com UML Profile
Metamodelo MDA
Padrões OMG e a Arquitetura MDA
Abordagens MDD: OO-Method e AndroMDA
O Programa FastStart da OMG
Problemas e Desafios dos Processos MDD
Almir Buarque
Conceitos Iniciais
• Modelo
Um modelo de um sistema é a sua representação
( especificação) funcional, estrutural e comportamental.
• Dirigido a Modelos
Porque provê meios de usar modelos para direcionar o curso
de entendimento, projeto, construção, distribuição, operação,
manutenção e modificação de um sistema.
• Arquitetura
Arquitetura de um sistema é a especificação de suas partes e
conectores, além das regras de interação dessas partes
usando os conectores.
Conceitos Iniciais
• Plataforma
Uma plataforma é um conjunto de subsistemas e tecnologias
que provê um conjunto coerente de funcionalidade através de
interfaces e padrões de uso especificados, que qualquer
aplicação (sistema) suportada por essa plataforma pode usar,
sem ter que saber detalhes de como essa funcionalidade
provida pela plataforma é implementada.
• Ponto de Vista
Um ponto de vista de um sistema é uma técnica de abstração,
usando um conjunto selecionado de conceitos arquiteturais e
regras de estruturação que visa focar ou representar um
aspecto (característica) dentro desse sistema.
Conceitos Iniciais
• Arquitetura Dirigida a Modelos (MDA)
Arquitetura anunciada pelo grupo OMG em 2001 com o
propósito de especificar sistemas através de Modelos e
atender, de modo satisfatório, a necessidade cada vez mais
emergente de:
 realizar manutenções em




aplicações
integrá-las com outros sistemas
mudar suas infra-estruturas
alterar seus requisitos
lidar com a frequente evolução e criação de novas tecnologias
Benefícios do Desenvolvimento de
Software Dirigido por Modelos
•
•
•
•
•
•
•
Interoperabilidade
Portabilidade
Produtividade - Automatização
Facilita Manutenção
Validação/Verificação
Melhor Qualidade do Produto
Redução de Custo e Esforço Desenvolvimento
Pontos de Vista MDA
• CIM – Modelo Independente de Computação
-
É uma visão do sistema a partir de um ponto de vista
(viewpoint) independente de computação. O CIM não mostra
detalhes da estrutura dos sistemas, sendo usualmente
chamado de modelo de domínio ou modelo de negócio e usa,
em sua especificação, um vocabulário familiar aos usuários do
domínio (problema) em questão.
• PIM – Modelo Independente de Plataforma
- Foca na operação do sistema (modelo computacional), mas
escondendo os detalhes necessários para implantar esse
modelo numa plataforma específica. O PIM é único para o
sistema e não muda quando se varia de uma plataforma para
outra.
Pontos de Vista MDA
• PSM – Modelo Específico de Plataforma
 Este modelo é uma visão do sistema que agrega
características e elementos constituintes de uma plataforma
específica, contendo informações da tecnologia utilizada na
aplicação como a linguagem de programação, os
componentes de middleware, a arquitetura de hardware e de
software.
 Para que isso seja possível é necessário o suporte de
ferramentas que façam o mapeamendo adequado de uma
especificação abstrata (PIM) para uma determinada
plataforma.
Transformações e Mapeamentos em
MDA
Outras Transformações
Possíveis:
 PSM => PIM (Engenharia
Reversa)
 PIM => PIM, PSM => PSM
(Modelos de mesmo nível )
 Implementação => PSM
(Engenharia Reversa)
 PIM => Implementação
 PIM => CIM ( Eng. Reversa)
Transformações por metamodelos
• Transformações podem usar
diferentes técnicas:
 UML Profiles, uso de padrões (patterns),
marcas (markings), metamodelos e
transformações automáticas( algoritmos )
 Numa transformação por Metamodelos,
como ilustrado na figura, modelo 1 é
transformado num modelo 2, usando
como entrada do processo o metamodelo
A do modelo 1 e produzindo o modelo 2
expresso em seu metamodelo B
 Regras de mapeamentos precisas devem
ser de definidas para que essa
transformação seja possível.
Transformações com UML Profile
• Em 2001, o OMG publicou a
UML 2.0:
– Action Semantics
– Modelagem de processos de negócios,
, arquiteturas distribuídas e sistemas
heterogêneos
– UML Profiles
 UML Profile é um mecanismo de
extensão
UML
que
auxilia
a
transformação de modelos , por
exemplo , de PIM para PSM específicos
UML Profiles da OMG
Atualmente muitas extensões já estão padronizadas pela OMG,
algumas estão em processo de padronização e outras ainda em
discussão
O Metamodelo MDA
Padrões OMG e a Arquitetura MDA
Camada Núcleo MDA - PIM
• Unified Modeling Language (UML): padrão que define uma
linguagem de modelagem geral orientada a objetos para
especificação, construção e documentação de artefatos de
sistemas complexos de software.
• Common Warehouse Metamodel (CWM): padrão para
armazenamento de dados que permite fácil manipulação
dos mesmos entre ferramentas e plataformas de
armazenamento em ambientes heterogêneos distribuídos.
• Meta Object Facility (MOF): padrão que define uma
linguagem abstrata para definição de linguagens de
modelagem (metamodelos). Ela é utilizada para descrever
modelos da UML, CWM e do próprio MOF, além de definir
o formato de intercâmbio para modelos, base do padrão
XMI (XML Metadata Interchange).
2ª Camada MDA - PSM
• XML Metadata Interchange (XMI): padrão para o
intercâmbio de modelos através do mapeamento
da linguagem definida pelo padrão MOF para o
padrão XML do World Wide Web Consortium
(W3C).
• Common Object Request Broker Architecture
(CORBA): arquitetura que estabelece e simplifica
a troca de dados entre sistemas distribuídos.
• Na camada PSM, pode-se ter também outros
padrões como JAVA EJB, Microsoft . NET, etc.
3ª Camada MDA - Serviços
• Na camada mais externa, são exibidos os
serviços que a maioria dos domínios de
aplicações necessitam:
– Sistemas críticos de segurança, E-commerce,
Financeiro, Saúde, Educação,etc...
• Esses serviços podem ser de segurança,
persistência,
controle
de
transações,
tratamentos de eventos, diretórios, etc.
Abordagens MDD
• OO-Method
• AndroMDA
OO-Method
Breve Histórico
• A primeira versão do OO-Method foi introduzida em 1992
através da tese de PhD de Oscar Pastor, juntamente com a
da linguagem formal de especificação de sistemas de
informação – OASIS
• O método cobre todas a fases do processo de
desenvolvimento de software, das fases iniciais de obtenção
de requisitos, projeto e geração do produto final de software
numa plataforma específica.
• O centro do desenvolvimento do software dirigido por
modelos do OO-Method é o Esquema (Modelo) Conceitual ,
conforme afirmação do Prof. Antoni Olivé (2005)
“Para desenvolver um sistema de informação é necessário e
suficiente definir seu esquema conceitual”
OO-Method
• Toni Morgan, defende a idéia de usar “ Extreme NonPrograming”
como argumento de que a principal
atividade no desenvolvimento de software é modelagem, e
não programação, pois modelagem está no espaço do
problema, enquanto programar está no espaço da solução.
•
O objetivo final é tornar verdadeira a sentença:
“ Modelo é o Código“, ao invés de “ o Código é o Modelo “
• Modelo Conceitual Executável: representa de modo
completo e consistente todos os aspectos estáticos,
dinânicos e de interação (interface usuário) de um sistema
– é compilado através de um compilador de Modelos.
XP versus XNP(MDD)
XP
XNP
Key skill
programming
analysis
Rapid delivery
increment every 2 weeks
complete system in 2
hours
Maintenance
change code,
re-test
change model,
regenerate
Quality
assurance
repeated test/debug,
skilled programmers
architecture, automation
Human view
program code
(only)
model extracts
(various formats)
Motto
The code is the model
The model is the code
O processo básico de transformação
Trasnformações e Mapeamentos
MDA X OO-Method
Modelos OO-Method
 Modelo Objeto: Diagrama de Classes:
• Classes
•
•
– Atributos
– Precondições e Serviços
– Restrições de Integridade
Relacionamento entre as Classes
– Associação, Agregação e Composição
– Herança
Agentes
 Modelo Dinâmico:
•
•
Diagrama de Transição de Estado – Ciclo de vida dos objetos
Diagrama de Interação de Objeto
- Especifica as interações válidas entre os objetos através das transações,
operações e gatilhos
Modelos OO-Method
• Modelo Funcional
O modelo funcional especifica os aspectos funcionais do
sistema através de:
– Descrição de como a execução dos eventos mudam o valor
dos atributos das classes.
– Acesso a dados de acordo com o Modelo Objeto
– Definição de lógica seqüencial, Manipulação de classes,
objetos e relacionamentos
– Uso de operadores lógicos, aritméticos
• Modelo de Apresentação
O modelo da apresentação especifica os requisitos de
Interface de Usuário, modelando uma interface abstrata que é
independente de plataforma ou dispositivo.
Modelo de Apresentação
OLIVANOVA
• OO-Method é implementado através do produto
OlivaNova da Care Technologies, composto de duas
ferramentas:
 O modelador que permite:
–
–
–
–
–
–
Modelar objetos e negócios;
Modelar dados;
Modelar integração;
Modelar sistemas legados;
Modelar regras e limitações;
Definir conceitualmente interfaces do usuário;
 A máquina de transformação que implementa todo o
processo de compilação de modelos do OO-Method, gerando
código fonte na plataforma de destino.
OLIVANOVA x Outras Ferramentas MDD
Borland
Together
Compuware
OptimalJ®
.NET® 1.1/2.0 Target
Platform
yes
J2EE™ Target Platform
COM+ Target Platform
Multi Database
(any RDBMS)
Bussines Logic in Model
no
IBM
Rational
Software
Architect
yes
Sparx
Systems
Enterprise
Architect
yes
OLIVANOVA
The
Programming
Machine
yes
yes
to some
extent*
yes
yes
no
yes
no
yes
yes
yes
yes
yes
to some
extent*
yes
yes
no
no
no
no
yes
Model Driven Application
generation 100%:
Complete Application
source code, Database
Script, Full Documentation,
On-Line Help
Model Driven GUI
Generation: Rich Client
and/or Web Client
Model Driven Generation of
Data Access Layer
Model Driven Generation of
User Roles, User
Authentication and Access
Rights
no
no
no
no
yes
no
no
no
no
yes
no
no
no
no
yes
no
no
no
no
yes
Model Driven Generation of
Role specific Views
3rd Party / Legacy
Systems Integration
(e.g. SAP)
XMI import/export
Eclipse® support
no
no
no
no
yes
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
yes
yes
yes
Visual Studio 2005®
support
AndroMDA
• Ferramenta MDA Open Source (www.andromda.org/ )
• Está desenvolvida sobre Eclipse.
• Suporta arquiteturas como Spring, EJB, .Net, Hibernate,
Struts, WebServices.
• É possível gerar componentes para qualquer linguagem: Java,
.Net, HTML, PHP, C++, etc
• Pode ser utilizada pelos servidores de aplicação Jboss e
TomCat.
• suporta UML2.0.
AndroMDA
 Cartuchos: São Plugins que AndroMDA utiliza para fazer a transformação de um
modelo PIM > PSM em várias plataformas diferentes .
- Para cada plataforma(tecnologia) PSM alvo é necessário o desenvolvimento de
um cartucho que basicamente consiste na criação de um UML Profile .
 A ferramenta de melhor aceitação para modelar em UML e fazer a importação do
metamodelo UML em XMI é a MagicDraw. Porém outras ferramentas podem ser
utilizadas: Poseidon UML, Argo UML, Jude UML, Visual UML, etc.
 Versão 4.0 (Preview) do AndroMDA
– permite a criação e utilização de metamodelos no padrão EMF (Eclipse Model
Framework) , possibilitando transformação de modelos PIM( não apenas UML)
para modelos PSM , além de geração de código fonte.
– ATL ( Atlas Transformation Language) – Linguagem para transformações
modelo-modelo (similar a QVT )
– MOFScript para transformações model-text.
• OpenMDX( www.openmdx.org): principal concorrente open source do AndroMDA
Lições Aprendidas na adoção de soluções MDA
 Muitas organizações que, nos últimos anos, vêm utilizando com sucesso
soluções MDA, perceberam que um conjunto de práticas e passos
consistentes devem ser levados em conta em se adotar um processo MDD
automatizado:
1.
2.
3.
4.
5.
6.
Examinar os modelos atualmente usados na empresa no seu processo de
desenvolvimento e a conexão/correlação semântica entre os elementos
desses modelos.
Identificar as transformações candidatas para automação
Especificar (documentar) os requisitos dessas transformações
Criar os UML Profiles necessários
Desenvolver o código da(s)s transformação(coes)
Esboçar documentos de uso, empacotar e distribuir
O Programa FastStart da OMG
• Recentemente, o grupo OMG lançou o programa “FastStart” para ajudar as
organizações aprenderem sobre MDA e aplicar MDA nas arquiteturas de
seus sistemas, na integração dos sistemas e nos seus processos de
desenvolvimento de software.
• Durante programa FastStart , a organização recebe consultores da OMG
para realizarem as seguintes atividades:
– Análise inicial MDA
– Revisão da Arquitetura Empresarial MDA
– Plano de Transição MDA
– Seminários Executivos MDA
– Prática MDA
• Essas atividades geralmente duram 5 semanas e visam capacitar a
empresa em MDA para que ela própria, sem ajuda de provedores externos,
desenvolva seu processo MDA/MDD
Problemas e Desafios dos Processos
MDD
• Suporte a modelos orientados a “goals”, negócios, agentes e
aspectos.
• Elevação dos níveis de abstrações dos modelos
• Melhor precisão semântica dos modelos em relação às
características estáticas, dinâmicas e de apresentação (interaçãousuário) dos sistemas;
• Melhores mapeamentos entre os modelos;
• Melhor transformação automática de modelos (automação);
• Melhor suporte à Validação de Modelos;
• Melhor integração com as plataformas específicas (PSM);
• Melhor e maior percentagem de código fonte gerado;
• Melhor suporte à rastreabilidade;
• Melhor suporte à engenharia reversa
• Suporte à computação autonômica
• Melhor Suporte a Testes Dirigido a Modelos
• Suporte a requisitos não-funcionais
Considerações Finais
• O Processo MDD ainda está na sua infância
– Nem as linguagens (modelos) e nem as ferramentas se
desenvolveram o suficiente para concretizar todas as suas
promessas feitas.
– O processo MDA, padronizado pela OMG, é apenas uma
referência e pode suportar qualquer outro processo
específico de desenvolvimento de software existente (RUP,
XP, OPEN, Agentes, Aspectos, Formais, etc.) desde que se
adapte e seja dado um foco especial em modelos e suas
transformações.
– Especialistas em Engenharia de Software e a própria
OMG, apostam que MDD/MDA será o processo mais
utilizado pelas Empresas nos próximos anos (futuro).
FIM
Download

MDD_CIN - Centro de Informática da UFPE