Buscar

Overview DDM

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
Desenvolvimento Dirigido a 
Modelos (DDM) - 
Visão Geral 
Franklin Ramalho 
Universidade Federal de Campina Grande - 
UFCG 
 DDM-UFCG 
2 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para MDA 
 
- Arquitetura MDA 
 
- Aplicações 
 
- Simples Exemplo 
 
 DDM-UFCG 
3 
Desenvolvimento de Software Tradicional 
• Desenvolvimento de Software x Desenvolvimento de 
Hardware 
 
– Progressos em Desenvolvimento de Hardware tem sido exponencial 
ao contrário do desenvolvimento de software 
 
• Desenvolver software é uma tarefa laboriosa 
– Sistemas grandes e complexos 
– Requisitos mudam constantemente 
– Novas tecnologias 
– Falta de documentação, etc 
 DDM-UFCG 
4 
Ciclo de Vida em Desenvolvimento de Software 
tradicional 
requisitos 
análise 
projeto 
implementação 
testes 
Texto 
diagramas e 
texto 
Diagramas e 
texto 
código 
Atalho 
Processo iterativo 
Em teoria 
 DDM-UFCG 
5 
Desenvolvimento de Software Tradicional 
• Principais problemas: 
 
– Produtividade 
 
– Portabilidade 
 
– Interoperabilidade 
 
– Documentação 
 
 DDM-UFCG 
6 
Problema da Produtividade 
requisitos 
análise 
projeto 
implementação 
testes 
Texto 
diagramas e 
texto 
Diagramas e 
texto 
código 
Atalho 
Processo iterativo 
Em teoria 
Manutenção 
implementação 
testes 
• O que fazer se o código possuir mais de 20000 linhas? 
2 
 DDM-UFCG 
7 
Problema da Portabilidade 
• A cada ano novas tecnologias aparecem 
– Java, XML, HTML, SOAP, UML, J2EE, .NET, JSP, ASP, Flash, Web 
Services, etc. 
 
• Empresas precisam seguir estas novas tecnologias 
– A tecnologia é solicitada pelo cliente 
– A tecnologia soluciona problemas reais 
– Fornecedores de ferramentas não dão mais suporte à antigas 
tecnologias 
 
• Diferentes versões de uma mesma tecnologia 
 
 DDM-UFCG 
8 
Problema Interoperabilidade 
• Sistemas de software raramente executam isolados de 
outros 
 DDM-UFCG 
9 
Problema da Documentação 
• Tarefa tardia dentro do processo de desenvolvimento de 
software tradicional 
– Principal tarefa é produzir código 
– Documentar retarda o desenvolvimento do software 
– Documentação resultante é de baixíssima qualidade (quando existe 
alguma!) 
 
• Documentação gerada a partir do código 
– Eiffel, Java, etc. 
 
• Mas, documentação é parte do código e este é parte da 
documentação. 
 DDM-UFCG 
10 
Sincronizando e capturando informação 
Vida 
útil 
extensa 
Equipe 
grande e 
rotativa 
 
 
 
Múltiplas 
versões 
 
 
 
 Tarefas 
 distribuídas 
 
Sistemas 
Complexos 
Modelos 
 
1
0 
 DDM-UFCG 
11 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para MDA 
 
- Arquitetura MDA 
 
- Simples Exemplo 
 
- Aplicações 
 DDM-UFCG 
12 
• Desenvolvimento Dirigido por Modelos (DDM) 
– MDD (Model-Driven Development) 
– MDE (Model-Driven Engineering) 
 
 
Desenvolvimento Dirigido por Modelos 
Técnica de eng. de software consistindo da aplicação de 
modelos e suas tecnologias no intuito de aumentar o nível de 
abstração sobre o qual desenvolvedores criam e evoluem 
software, com o objetivo de simplificar e formalizar as várias 
atividades e tarefas envolvidas no ciclo de vida de 
 um software. 
1
2 
3 
 DDM-UFCG 
13 
• Desenhistas 
– Modelos para facilitar o entendimento do código 
– Seletivo 
 
• Projetistas 
– Arquitetos de software semelhantes a arquitetos da 
construção civil 
– Sem interferência dos programadores 
 
• Programadores de modelo 
– Modelos como linguagem de desenvolvimento com 
semântica executável 
– Modelos como linguagem executável 
Comunidade DDM 
 DDM-UFCG 
14 
Prática tradicional: 
Desenhistas e projetistas 
Abstração 
Executabilidade 
UML + LN 
Requisitos da 
Aplicação 
Modelo 
UML 
 
Código 
Fonte 
Código 
Binário 
Mistura de 2 questões 
Ortogonais: refinamento de 
negócio e tradução para 
uma plataforma 
Produtividade 
Portabilidade 
Interoperabilidade 
Documentação 
 DDM-UFCG 
15 
Abstração 
Executabilidade 
UML/OCL 
CIM - Negócio 
UML/OCL 
PIM – 
Especificação 
da aplicação 
Perfis 
UML/OCL 
PSM – 
Realização 
da aplicação 
Código 
Fonte 
Código 
Binário 
Padrões de 
tradução de 
modelos 
Padrões de 
refinamento de 
modelos 
DDM: programadores de modelos 
UML/OCL 
PIM – 
Realização 
da aplicação 
Produtividade 
Portabilidade 
Interoperabilidade 
Documentação 
 DDM-UFCG 
16 
• MDA (Model Driven Architecture) – Uma realização 
particular de DDM 
– Iniciativa da OMG (Object Management Group) 
– 1997: Lançamento 
– 2000: Definição 
– 2007: Aperfeiçoamento e ampla utilização 
 
• Outras: 
– Agile Model-Driven Development (AMDD) 
– Domain-Oriented Programming (DOP) 
– Microsoft’s Software Factories 
 
• Predomínio e padrões tornam MDA o carro-chefe de 
DDM 
GMF/UFCG SBES 2007 
MDA 
16 
 DDM-UFCG 
17 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para DDM 
 
- Arquitetura DDM 
 
- Simples Exemplo 
 
- Aplicações 
 DDM-UFCG 
18 
MDA - Princípios 
• Modelos passam a ser a força motriz no processo de desenvolvimento 
de software 
– Diferentes níveis de abstração 
– Diferentes fases do ciclo de desenvolvimento de uma aplicação 
– Apresentação visual amigável 
– Formais 
– Persistentes 
 
• Meta-modelos descrevendo modelos 
 
• Transformações definem como mapear modelos 
 
• Engenhos de transformação executam definições de transformações 
 
• Alto grau de automação do código 
4 
 DDM-UFCG 
19 
MDA - Ciclo de Vida 
requisitos 
análise 
projeto 
implementação 
testes 
Texto + 
 modelos 
modelos 
modelos 
código 
Processo DDM 
 DDM-UFCG 
20 
MDA - Ciclo de Vida 
requisitos 
análise 
testes 
CIM 
PIM 
código 
PSM 
 
Transformações 
PIM-PSM 
 
TOOL 
 
Transformações 
PSM-código 
 
TOOL 
A 
U 
T 
O 
M 
A 
T 
 I 
C 
A 
 
Processo 
Iterativo 
PIM parcial 
 
Transformações 
CIM-PIM 
 
TOOL 
 DDM-UFCG 
21 
Tipos de Modelos 
Modelo de requisitos: 
Define o domínio onde o 
sistema será desenvolvido, 
serviços e entidades 
envolvidas 
Modelo de análise e 
Projeto: define a 
arquitetura do sistema 
Modelo de realização: 
define como o sistema é 
desenvolvido 
Código do sistema 
[Fig. Blanc] 
 DDM-UFCG 
22 
Meta-modelo 
• Um meta-modelo é um modelo que descreve um modelo 
– Ex: Meta-modelo de UML, meta-modelo de Java, meta-modelo de 
redes de Petri, etc. 
 
• Um modelo é uma instância de um meta-modelo 
 
• Meta-linguagem é a linguagem usada para descrever meta-
modelos 
 
• Meta-modelos 
– Base para especificação de transformações 
 DDM-UFCG 
23Meta-modelos 
Meta-modelo 
Modelo 
Linguagem 
é escrito em 
é definido por 
é escrito em 
Meta-linguagem 
GMF/UFCG SBES 2007 2
3 
 DDM-UFCG 
24 
Exemplo de meta-modelo 
actor 
 
+name 
0 ..1 
system 
 
+name 
PedirItem 
ValidatarCartao 
e-Store 
Modelo UML: 
Diagrama de Casos 
de Uso 
Meta-Modelo de 
Casos de Uso 
useCase 
 
+title 
1 .. * 
0 ..* 
extends 
includes 
5 
 DDM-UFCG 
25 
Exemplo de codificação XMI 
system 
+name 
 * 
pedirItem 
validarCartao 
0 ..* 
extends 
includes 
useCase 
 
+title 
e-Store 
0 ..1 
actor 
+name 
<umlModel> 
 <useCase id = “uc1”> 
 <title visib = pub> “pedirItem” </title> 
 </useCase> 
 <useCase id = “uc2”> 
 <title visib = pub> “validarCartao” </title> 
 </useCase> 
 <actor id = “a1”> 
 <name visib = pub> “Cliente” </name> 
 </actor> 
… 
<actor2useCase id = “a12uc1”> 
 <in idref = “a1”/> <out idref = “uc1”/> 
 </actor2useCase> 
 <actor2useCase id = “a12uc2”> 
 <in idref = “a1”/> <out idref = “uc2”/> 
 </actor2useCase> 
</umlModel> 
Cliente 
 DDM-UFCG 
26 
Transformação entre modelos 
• Grande esforço é empregado nas transformações 
 
• Definição de transformação: conjunto de regras que 
juntas descrevem como um modelo fonte é 
transformado em um modelo destino. 
 
• Regra de transformação: descrição de como um ou mais 
elementos do modelo fonte pode ser transformado em 
um ou mais elementos do modelo destino. 
 
• Linguagem de transformação: Linguagem na qual as 
definições de transformações são escritas. 
 DDM-UFCG 
27 
Transformação entre modelos 
PIM 
PSM PSM 
code code 
CIM 
transformação 
transformação 
transformação 
transformação transformação 
transformação 
transformação 
 DDM-UFCG 
28 
Transformação entre modelos 
PIM PSM code 
• Transformações entre linguagens idênticas: 
– Refactoring (modelo ou código) 
– Normalização (modelos E-R) 
Definições de 
 transformação 
Definições de 
 transformação 
Engenho de 
transformação 
Engenho de 
transformação 
[Fig., Kleppe et al.] 
 DDM-UFCG 
29 
• Atlas Transformation Language (ATL) 
– Versão 3.0 
– ATLAS group - LINA & INRIA, Nantes 
– http://www.eclipse.org/m2m/atl/ 
 
• Uma linguagem para especificação de transformação de modelos 
 
• Linguagem amplamente baseada em OCL 
 
• Expressões OCL válidas tornam-se expressões ATL válidas 
– Com algumas restrições 
 
• Ferramenta com suporte para execução de transformações ATL 
integrada ao Eclipse: ATL-DT 
ATL 
 DDM-UFCG 
30 
 Transformações declarativas 
 
 Especificam para quais tipos de modelos de entrada que os 
modelos de saída devem ser gerados 
 
 Especificam como os modelos de saída devem ser gerados a 
partir dos modelos de entrada 
 
 Baseado em pattern matching 
 
 Especifica como os modelos de saída devem ser 
inicializados 
ATL - Matched Rules 
6 
 DDM-UFCG 
31 
ATL - Matched rules 
Padrão do modelos fonte a ser casado 
Padrão do modelo destino 
A ser gerado 
Meta-modelo de entrada 
Matched rule 
Elemento do 
Meta-modelo de 
entrada 
GMF/UFCG SBES 2007 3
1 
rule ClassUML2ClassJava { 
 from 
 c : UML!Class 
 to 
 p : Java!Class ( 
 name <- c.name, 
 superclass <- s), 
 s : Java!Class ( 
 name <- c.superclass.name) 
} 
 DDM-UFCG 
32 
• Baseada em programação OO 
– JMI (Java Metadata Interface) JCP 
– EMF (Eclipse Modeling Framework) Eclipse 
 
 
 
 
• Baseada em XML 
– XMI 
 
 
APIs de Manipulação de Modelos 
Meta-Modelo 
Modelo 
Interface Java 
Objetos Java 
Meta-Modelo 
Modelo 
XML Schema 
ou DTD 
Documentos 
XML 
GMF/UFCG SBES 2007 3
2 
 DDM-UFCG 
33 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para MDA 
 
- Arquitetura MDA 
 
- Simples Exemplo 
 
- Aplicações 
 DDM-UFCG 
34 
Padrões da OMG 
• Meta-modelo: MOF (Meta Object Facility) 
 
• Modelos: UML (Unified Modelling Language) 
 
• Linguagem semi-formal para tornar meta-modelos MOF e modelos UML 
mais precisos: OCL (Object Constraint Language) 
 
• Linguagem textual para interoperabilidade e persistência de modelos e 
meta-modelos: XMI (XML Model Interchange) 
 
• Linguagem de transformação e manipulação de modelos: QVT (Query, 
View and Transformation) 
 
• Linguagem de transformação textual: 
 MOF2Text (MOF Model To Text Transformation Language) 
 
 DDM-UFCG 
35 
Padrões da OMG 
• Cada um dos padrões OMG é descrito através: 
– Sintaxe abstrata (meta-modelo) 
– Sintaxe concreta (textual) 
– Semântica formal 
 
 
• Semântica formal de muitos formalismos da OMG 
ainda permanece incompleta 
 DDM-UFCG 
36 
• SPEM 
 
• Semântica de Ações 
 
• CORBA 
 
• Vários perfis, como o U2TP (testes) 
 
• Etc. 
Outros padrões da OMG 
7 
 DDM-UFCG 
37 
Outras linguagens 
• Modelos 
– Redes de Petri 
– Alloy 
• Meta-modelos 
– Ecore 
– Kermeta 
– KM3 
• Linguagem de transformação 
– ATL 
• Persistência e interoperabilidade entre (meta-)modelos 
– JMI 
– EMF 
– MDR 
 DDM-UFCG 
38 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para MDA 
 
- Arquitetura MDA 
 
- Aplicações 
 DDM-UFCG 
39 
MDE Languages 
Aplicação 
Transformation 
Engine 
Transformation 
Engine 
Transformation 
Engine 
Definições de 
transformação 
Rule 
X{...} 
Definições de 
transformação 
Rule 
X{...} 
Definições de 
transformação 
Rule 
X{...} 
PIM PSM 
Code CIM 
Meta- 
model 
Meta- 
model 
UML and OCL 
QVT, ATL, Flora, ATL-DT 
Meta- 
meta-model 
MOF, XMI, KM3, Ecore 
UML Profiles 
MOF2Text, MOFScript 
 DDM-UFCG 
40 
Model-Driven Engineering 
Abstraction 
Scale 
Executability 
Scale 
UML + NL 
Application 
Requirements 
UML 
Model 
 Source 
Code 
 Virtual 
Machine 
Code 
 Binary 
Code 
Current Standard Practice: 
Object-Oriented Development 
Mix 2 orthogonal concerns: 
business refinement and 
translation to platform 
 DDM-UFCG 
41 
DDM Hoje: 
Programadores UML 
Abstração 
Executabilidade 
UML/OCL 
Requisitos 
UML/OCL 
Especificação 
da aplicação 
UML/OCL 
Realização da 
aplicação 
Perfis 
UML/OCL 
Realização da 
aplicação 
Código 
Fonte 
Código 
Binário 
Compilação manual 
 DDM-UFCG 
42 
Abstração 
Executabilidade 
UML/OCL 
CIM - Negócio 
UML/OCL 
PIM – 
Especificação 
da aplicação 
Perfis 
UML/OCL 
PSM – 
Realização 
da aplicação 
Código 
Fonte 
Código 
Binário 
Padrões de 
tradução de 
modelos 
Padrões de 
refinamento de 
modelos 
DDM em Breve: 
Programadores UML 
UML/OCL 
PIM – 
Realização 
da aplicação 
Produtividade 
Portabilidade 
Interoperabilidade 
Documentação 
8 
 DDM-UFCG 
43 
Voltando ao Desenvolvimento de 
SoftwareTradicional 
• Com DDM: 
– Produtividade 
• Automação na geração de código 
• Abstração de detalhes de implementação no PIM 
• Melhor compreensão nos requisitos 
 
– Portabilidade 
• Tudo especificado no PIM é portável 
• Plug-ins para diferentes plataformas 
 
– Interoperabilidade 
• Transformações entre diferentes PSMs 
 
– Documentação 
• PIM é a própria documentação de alto nível 
• PIM não é abandonado 
 DDM-UFCG 
44 
Agenda 
- Motivação 
 
- O que é DDM? 
 
- Princípios 
 
- Padrões da OMG para MDA 
 
- Arquitetura MDA 
 
- Simples Exemplo 
 
- Aplicações 
 DDM-UFCG 
45 
Aplicações 
• Engenharia de Software 
– Geração de código 
– Engenharia Reversa 
– Processos de Desenvolvimento 
 
• Banco de Dados 
– Geração de modelos de dados 
– Geração e implementação de consultas 
– Interoperabilidade de Dados 
 
• Métodos Formais 
– Formalização de linguagens 
– Sincronização entre formalismos matemáticos e modelos abstratos 
 
• Etc... 
 
 DDM-UFCG 
46 
Como aprender novos conceitos e 
tecnologias da Eng. De Soft? 
QVT 
MOF 
Meta-modelo 
Transformações 
XMI 
PIM 
PSM 
CIM 
ATL 
MDA 
Zoom 
OCL 2.0 
OMG 
EMF 
Ecore 
Perfis 
KM3 
Meta-meta modelo 
Semântica de Ações 
ATL-DT OptimaJ 
AndroMDA 
UML 2.0 
UML2TP 
KobrA 
 DDM-UFCG 
47 
Estudo de Caso 
 DDM-UFCG 
48 
Meta-modelo simplificado para UML 
9 
 DDM-UFCG 
49 
Meta-modelo simplificado para 
Esquemas relacionais de BD 
 DDM-UFCG 
50 
UML2BD 
1. Todo pacote UML corresponde a um esquema 
2. Toda classe dentro de um pacote UML corresponde à 
uma tabela do esquema relacional 
3. Toda propriedade de uma classe corresponde à uma 
coluna dentro da tabela 
• Se o tipo da propriedade é uma classe UML, a coluna deve ser 
uma chave estrangeira 
• Se o tipo da propriedade é um tipo de dados UML, a coluna é 
do tipo correspondente 
4. Todo tipo de dados UML dentro de um pacote 
apresenta um tipo de dados correspondente dentro do 
esquema 
 DDM-UFCG 
51 
Transformação baseada em programação 
• Linguagem: Java 
 
• Framework provendo interfaces: EMF 
 
• Necessário: Transformar meta-modelos MOF em Ecore 
 
• Aplicação das regras de geração de interfaces 
 DDM-UFCG 
52 
Interfaces geradas p/ meta-modelo UML 
• UMLPackage – obtido a partir da EClass UMLPackage 
– getElements() 
 
• Classifier – obtido a partir da EClass Classifier 
– getName() 
– setName() 
 
• Class – obtido a partir da EClass Class 
– getProps() 
– getName() 
– setName() 
 DDM-UFCG 
53 
Interfaces geradas p/ meta-modelo BD 
• Schema – obtido a partir da EClass Schema 
– getTables() 
 
• Table – obtido a partir da EClass Table 
– getColumns() 
– setColumns() 
 
• Column – obtido a partir da EClass Column 
– getType() 
– setType() 
– getName() 
– setName() 
 DDM-UFCG 
54 
Interfaces geradas p/ meta-modelo BD 
• Type – obtido a partir da EClass Type 
– getName() 
– setName() 
 
• ForeignKey – obtido a partir da EClass ForeignKey 
– getRegTable() 
– setRefTable() 
 
• BDFactory – obtido a partir da EPackage BD 
– createSchema(), createTable(), createColumn(), etc. 
10 
 DDM-UFCG 
55 
Transformação baseada em programação 
public void UMLPackage2Schema(UMLPackage pc){ 
Schema sh = BDFactoryImpl.eINSTANCE.createSchema(); 
for (Iterator it = pc.getElements().iterator(); it.hasNext();){ 
 Object next = it.next(); 
 if ( next instanceOf uml.Class) { 
 sh.getTables().add(Class2Table((uml.Class) next)); 
 } 
 else if (next instanceOf DataType) { 
 dataType2Type((DataType) next); 
 } 
} 
} 
Mapeando um pacote UML para um esquema relacional 
[Blanc, 2005] 
 DDM-UFCG 
56 
Transformação baseada em programação 
public Table Class2Table(uml.Class c){ 
Table tab = BDFactoryImpl.eINSTANCE.createTable(); 
tab.setName(c.getName()); 
for (Iterator it = c.getProps().iterator(); it.hasNext();){ 
 Property next = (Property) it.next(); 
 tab.getColumns().add(property2Column(next)); 
} 
ClassTable.put(c, tab); 
if (keyRef.containsKey(c)){ 
 Vector keys = (Vector) keyRef.get(c); 
 for (Iterator it = keys.iterator(); it.hasNext();){ 
 ForeignKey current = (ForeignKey) it.next(); 
 current.setRefTable(tab) 
 } 
} 
return tab; 
} 
Mapeando uma classe UML para uma tabela relacional 
[Blanc, 2005] 
 DDM-UFCG 
57 
Transformação baseada em programação 
public Type dataType2Type(DataType dt){ 
Type t = BDFactoryImpl.eINSTANCE.createType(); 
t.setName(dt.getName()); 
datatypeType.put(dt, t); 
if (colType.containsKey(dt)){ 
 Vector keys = (Vector) colType.get(dt); 
 for (Iterator it = keys.iterator(); it.hasNext();){ 
 Column current = (Column) it.next(); 
 current.setType(t); 
 } 
} 
return t; 
} 
Mapeando um tipo de dados UML para um tipo de 
dados em um esquema relacional 
[Blanc, 2005] 
 DDM-UFCG 
58 
O que poderemos aprender? 
• Operações e Repositórios de Modelos 
 
• Técnicas e fundamentos de Transformações de Modelos 
 
• Transformações Textuais 
 
• ATL 
 
• MOFScript 
 
 
 DDM-UFCG 
59 
Referências 
• OMG Specifications. http://www.omg.org 
 
• MDA explained (The model-driven architecture: practice and 
promise). Kleppe, A., Warmer, J. and Bast, W. Object-
Technology Series. Addison-Wesley. 2003. 
 
• MDA en action (Ingénérie logicielle guidée par les modèles). 
Blanc, X. Eyrolles. 2005.

Continue navegando