Embed
Email

Desenvolvimento de Software Dirigido a Modelos

Document Sample

Shared by: pptfiles
Categories
Tags
Stats
views:
8
posted:
11/16/2011
language:
pages:
35
Desenvolvimento de Software

Agenda:

Dirigido a Modelos

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 Non-

Programing” 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, change model,

re-test regenerate

Quality repeated test/debug, architecture, automation

assurance skilled programmers

Human view program code model extracts

(only) (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 Compuware IBM Sparx OLIVANOVA

Together OptimalJ® Rational Systems The

Software Enterprise Programming

Architect Architect Machine

.NET® 1.1/2.0 Target yes no yes yes yes

Platform

J2EE™ Target Platform yes yes yes yes yes

COM+ Target Platform to some no no to some yes

extent* extent*

Multi Database yes yes yes yes yes

(any RDBMS)

Bussines Logic in Model no no no no yes

Model Driven Application no no no no yes

generation 100%:

Complete Application

source code, Database

Script, Full Documentation,

On-Line Help

Model Driven GUI no no no no yes

Generation: Rich Client

and/or Web Client

Model Driven Generation of no no no no yes

Data Access Layer

Model Driven Generation of no no no no yes

User Roles, User

Authentication and Access

Rights

Model Driven Generation of no no no no yes

Role specific Views

3rd Party / Legacy no no no no yes

Systems Integration

(e.g. SAP)

XMI import/export yes yes yes yes yes

Eclipse® support yes yes yes yes yes

Visual Studio 2005® yes no yes yes yes

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. 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.

2. Identificar as transformações candidatas para automação

3. Especificar (documentar) os requisitos dessas transformações

4. Criar os UML Profiles necessários

5. Desenvolver o código da(s)s transformação(coes)

6. 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ção-

usuá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


Related docs
Other docs by pptfiles
Introduction to Human Resource Management_1_
Views: 1  |  Downloads: 0
Introduction to Groundwater management
Views: 0  |  Downloads: 0
Introduction to Financial Management_18_
Views: 0  |  Downloads: 0
INTRODUCING BSI MANAGEMENT SYSTEMS_1_
Views: 1  |  Downloads: 0
INTERNATIONAL MANAGEMENT_3_
Views: 0  |  Downloads: 0
International Management_2_
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!