Escolar Documentos
Profissional Documentos
Cultura Documentos
Driven
Engineering
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Slides
originais
elaborados
pelos
Vinicius
Cardoso
Garcia
(UFPE)
e
prof.
Daniel
Lucrdio
(UFSCar)
O
autor
permite
o
uso
e
a
modicao
dos
slides
para
ns
did-cos
Referncias
Notas
de
aulas
baseadas
em
Lucrdio
et
al.
Desenvolvimento
Web
orientado
a
modelos:
conceitos,
ferramentas
e
tcnicas,
Webmedia
2009.
hSp://www2.dc.ufscar.br/~daniel/
Desenvolvimento
de
So7ware
Como
feito?
Anlise
de
um
problema/processo/sistema
Desenvolvimento
de
uma
soluo
SoYware
+
no-soYware
Testes/validao
Desenvolvimento
de
So7ware
Como
feito?
Anlise
de
um
problema/processo/sistema
Desenvolvimento
de
uma
soluo
SoYware
+
no-soYware
Testes/validao
Implementao
Soluo
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
5
A
Realidade
Anlise Problema
Soluo
Implementao
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
6
A
Realidade
Modelagem
algo
posi-vo...
Arquitetos
(algumas
vezes)
usam
UML
para
criar
modelos
de
alto
nvel
So
usados
em
um
primeiro
momento
Discusses,
idias,
etc
(anlise)
Pense
um
pouco
Considere
os
seguintes
requisitos
para
um
soYware
Preciso
escrever
Al
mundo!
na
tela
AL
MUNDO
VERSO
1
public satic void main(String args[]) { System.out.println(Al mundo!); }
10
Pense
um
pouco
Considere
os
seguintes
requisitos
para
um
soYware
Preciso
escrever
Al
mundo!
na
tela
No
futuro,
deve
ser
possvel
u-lizar
outras
mensagens,
alm
de
Al
mundo!
11
AL
MUNDO
VERSO
2
public static void main(String args[]) { if(args.length > 0) imprimeMensagem(args[0]); else imprimeMensagem(Al mundo!); } public static void imprimeMensagem(String mensagem) { System.out.println(mensagem); }
12
Pense
um
pouco
Considere
os
seguintes
requisitos
para
um
soYware:
Preciso
escrever
Al
mundo!
na
tela
No
futuro,
deve
ser
possvel
u-lizar
outras
mensagens,
alm
de
Al
mundo!
Deve
ser
possvel
usar
diferentes
cores
13
AL MUNDO - VERSO 3
14
Pense
um
pouco
Considere
os
seguintes
requisitos
para
um
soYware:
Preciso
escrever
Al
mundo!
na
tela
No
futuro,
deve
ser
possvel
u-lizar
outras
mensagens,
alm
de
Al
mundo!
Deve
ser
possvel
usar
diferentes
cores
Deve
ser
possvel
usar
diferentes
disposi-vos
(celular,
monitor,
projetor,
palm,
etc.)
15
AL MUNDO VERSO 4
16
Pense
um
pouco
Considere
os
seguintes
requisitos
para
um
soYware:
Preciso
escrever
Al
mundo!
na
tela
No
futuro,
deve
ser
possvel
u-lizar
outras
mensagens,
alm
de
Al
mundo!
Deve
ser
possvel
usar
diferentes
cores
Deve
ser
possvel
usar
diferentes
disposi-vos
(celular,
monitor,
projetor,
palm,
etc.)
Deve
ser
possvel
enviar
a
mensagem
remotamente,
pela
Internet
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
17
AL MUNDO VERSO 5
18
Pense
um
pouco
Economia Trabalho
mental
dos
desenvolvedores
Finanas Jogos Alimentos Aeronutica Turismo Domnio
do
problema
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
OO
SGBDs
Domnio
de
TI
19
Complexidade
Complexidade
inerente
vs
complexidade
acidental
Ex.:
Classes
abstratas,
herana,
polimorsmo,
constantes,
programao
reexiva,,
mtodos
da
classe
String...
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
20
Complexidade
Complexidade
inerente
Impossvel
descartar
A
menos
que
voc
tenha
uma
boa
lbia
Resolver
sua
brigao
Complexidade
acidental
possvel
contornar/reduzir
Frameworks,
padres,
etc.
21
Complexidade
Acidental
Entrevistar
cliente
Fazer
documento
de
requisitos
Abrir
ferramenta
de
modelagem
(UML)
Aprender
UML
Representar
o
problema
em
UML
Aprender
UML
Discu-r
problema
em
cima
dos
modelos
Projetar
soluo
Representar
soluo
em
UML
Aprender
UML
Gerar
prot-pos
com
regras
de
negcio
Testar
e
Implantar
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
22
Complexidade
Acidental
Complexidade
Entrevistar
cliente
Fazer
documento
de
requisitos
Abrir
ferramenta
de
modelagem
(UML)
Aprender
UML
Representar
o
problema
em
UML
Aprender
UML
DiscuXr
problema
em
cima
dos
modelos
Projetar
soluo
Representar
soluo
em
UML
Aprender
UML
Gerar
protXpos
com
automaXcamente
Adaptar
protXpos
Completar
protXpos
com
regras
de
negcio
X
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
In Ac X X X X X X X X X X X X X
Testar e Implantar
23
24
25
26
Uma
soluo
Modelagem
Reu-lizao
Produ-vidade
Manutenibilidade
Validao
/
o-mizao
Portabilidade
Alta
complexidade
(MDD) Model-Driven Development (MDSD) Model-Driven SoYware Development (MDE) Model-Driven Engineering
31
Desenvolvimento
convencional
Economia
Finanas
Jogos
Alimentos
<%@
page
language="java>
<%@taglib
prex="c
uri="jsp/jstl/core
%>
<html>
<struts-cong>
<head>
...
<form-bean>
...
<ac-on>
...
</struts-cong>
CREATE
TABLE
Map(
id
INTEGER
PK
....
)
#include
"demoextension.h"
int
AEEClsCreateInstance(void
**ppObj)
{
*ppObj
=
NULL;
if(
ClsId
==
AEECLSID)
...
import
java.u-l.*;
public
synchronized
replicateData()
{
...
}
32
33
34
35
36
.java
AL, char AH, 0Eh 10h AX
.asm
.bin
37 37
000100010010100010011100100101010001011010111000101001001111001001001 110101001010101000010100101010111101010011111100010010010110100101100 010100111110110101010100010001001010001001110010010101000101101011100 010100100111100100100111010100101010100001001011110101001111110001001 001011010010110001010011111011010101010001000100101000100111001001010 100010110101110001010010011110010010011101010010101010000101010111101 010011111100010010010110100101100010100111110110101010100010001001010 001001110010010101000101101011100010100100111100100100111010100101010 100001010101111010100111111000100100101101001011000101001111101101010 101000100010010100010011100100101010001011010111000101001001111001001 001110101001010101000010110010101011110101001111110001001001011010010 110001010011111011010101011001010010110010001011111000101010100101111 100001010010100010011101010101100111111010101000001001010100010101010 100101010101010101110100101010100001010101111010100111111000100100101 101001011000101001111101101010101000100010010100010011100100101010001 011010111000101001001111001001001110101001010101000010110010101011110 101001111110001001001011010010110001010011111011010101011001010010110 010001011111000101010100101111100001010010100010011101010101100111111 010101000001001010100010101010100101010101010101110100101010100001010 101111010100111111000100100101101001011000101001111101101010101000100 010010100010011100100101010001011010111000101001001111001001001110101 001010101000010110010101011110101001111110001001001011010010110001010 011111011010101011001010010110010001011111000101010100101111100001010 010100010011101010101100111111010101000001001010100010101010100101010 1010101011111100101
AX
INTpublic int soma 53 10h (int a, int b) { int resultado 92 a + b; AX = + return AX,BX resultado; 10h AX
INT}
145
R1, 1Eh
38
.math
.java
Microso7 Access
40
41
42
Elementos
Ferramenta de modelagem Outros modelos Modelo
Mecanismo para executar transformaes Ferramenta para definir transformaes Transformao Cdigofonte
43
Elementos
Exemplo
do
Netbeans
No
possvel
alterar
a
ferramenta
de
modelagem
No
possvel
alterar
a
transformao
44
Vantagens
Um
nico
modelo
pode
dar
origem
a
diferentes
implementaes,
linguagens
ou
plataformas
Permite
capturar
o
conhecimento
do
domnio
de
forma
clara
Ficando
disponvel
para
os
desenvolvedores
Esconde
detalhes
de
implementao
durante
o
desenvolvimento
de
solues
Um
nico
modelo
pode
gerar
uma
grande
quan-dade
e
diversidade
de
cdigo
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
45
Vantagens
Especialistas
do
domnio
tm
um
papel
mais
a-vo
no
processo
Maior
ecincia
no
desenvolvimento
Maior
qualidade
no
produto/processo
Geradores
no
produzem
erros
acidentais
Modelos
esto
sempre
atualizados
46
Desvantagens
Maior
rigidezno
soYware
produzido
Alta
complexidade
dos
artefatos
necessrios
(transformadores,
etc)
Questo
do
desempenho
O-mizao
autom-ca
vs
cdigo
escrito
manualmente
48
MDD
Estgio
1
hSp://www.voelter.de/services/mdsd-tutorial.html
49
MDD
Estgio
2
hSp://www.voelter.de/services/mdsd-tutorial.html
50
51
Vanderbilt
University
MIC
(Model
Integrated
Compu-ng)
MicrosoY
SoYware
Factories
Eclipse
Modeling
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
52
OMG
-
MDA
Model-Driven
Architecture
Surgiu
em
2001
Baseada
em
padres
(standards)
Obje-vo
Especicar
um
sistema
de
forma
independente
de
plataforma
Especicar
plataformas
Escolher
uma
plataforma
para
o
sistema
Transformar
a
especicao
genrica
em
uma
especicao
especca
de
plataforma
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
53
54
55
56
Transformaes MDA
57
Padres
MDA
UML
Unied
Modeling
Language
MOF
Meta-Object
Facility
CWM
Common
Warehouse
Metamodel
XMI
XML
Metadata
Interchange
QVT
Query
/
Views
/
Transforma-ons
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
58
Padres
MDA
MOF
Formato
XML
XMI
UML
CWM
Outros metamodelos
Modelos UML
Modelos
de
dados
Modelo
Dados1.xmi
Outros
modelos
Modelo
Qualquer1.xmi
Modelo UML1.xmi
Modelo UML2.xmi
Modelo
Qualquer2.xmi
59
Padres
MDA
MOF
Metamodelo A
Metamodelo B
Modelos A
QVT Modelos B
Consultas
Transformaes
60
MDA
-
Sumrio
Uma
srie
de
especicaes
Foco
em
portabilidade,
independncia
de
plataforma
No
dene
uma
metodologia
No
dene
ferramentas
Porm
foi
uma
das
inicia-vas
fundamentais
para
o
surgimento
do
paradigma
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
61
MIC
Model
Integrated
Compu-ng
Pesquisa
da
Vanderbilt
University
Trs
elementos
principais
Tecnologia
para
modelagem
especca
de
domnio
Conjunto
de
ferramentas
para
modelagem
Framework
para
anlise
formal,
vericao
e
transformao
de
modelos
So7ware
Factories
Jack
Greeneld,
Keith
Short,
Steve
Cook,
and
Stuart
Kent.
SoYware
Factories:
Assembling
Applica-ons
with
PaSerns,
Models,
Frameworks
and
Tools.
Wiley,
2004.
Abordagem
para
desenvolvimento
de
soYware
Reu-lizao
sistem-ca
MDD
tem
um
papel
importante
63
So7ware
Factories
Pense
em
uma
fbrica
tradicional
Estrutura
projetada
para
produzir
uma
determinada
famlia
ou
linha
de
produtos
Trs
elementos
Esquemada
fbrica
de
soYware:
descreve
o
que
necessrio
para
construir
os
produtos
da
fbrica
Template
da
fbrica:
uma
instncia
do
esquema
Ambiente
extensvel:
ferramentas
u-lizadas
para
a
produo,
conguradas
atravs
do
template
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
64
66
Eclipse
Modeling
Srie
de
ferramentase
prot-pos
Origem
e
inuncia
do
MOF
Linha
prpria
INRIA
-
Ins-tut
Na-onal
de
Recherche
en
Informa-que
et
en
Automa-que
-
Frana
Universidade
de
Nantes
-
Frana
Borland
IBM
67
UML2Tools
68
Sumrio
Manutenibilidade
Anlise
Problema
Modelagem
Soluo
Implementao
Alta
complexidade
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
Soluo
70
Ferramenta de modelagem
Transformaes
Produto
Desenvolvedor
Compiladores
Benecios
71
DSL
UML
MIC
SoYware
factories
TMF
MDA
[if977]
Engenharia
de
SoYware
-
SI
-
CIn
-
UFPE
Eclipse
72