Escolar Documentos
Profissional Documentos
Cultura Documentos
! "$#&%'")(
*,+.-/"$01(
23+145-/"$#6"87
Dados
Resultados
Algoritmos
Objetos
e
do Mundo Real
Problema
Operaes
do
Objetos do
Mundo Real
Mundo Real
gap
Mapeamento
ao Domnio de
Solues
semntico
Solues
por
Computador
Objetos
Operaes
Interpretao
dos Resultados
Dados de
do
Algoritmos
Sada
Abstratos
Abstratas
> confiabilidade,
>
UDh">3OC59B2`X B>U3;">3OU5SB RJ2B 15 B8g B q /,B 9" <8HxhH C< C < EFB8H
q <5f"$e g \H Z [ U
X !
3w*36E H/y< *SxP,B13OH $z5 :=<9B5S "S1B 2"$<2;B
x$B12
D
B q B 2~#9B{HSX
E SB1243rQBz $ l #{yEFB8H
xC2$E B1 5>">3 B
D>B871By 95
D>EFQ">3OH B HJ9E
Ref#
Funo
R1.9
Mostra descrio
e preo de item
registrado
D
Categoria Atributo
evidente
Detalhes e Categoria
Restries
R 2.4
% E 71B513OrQB "IU 1< 513;"SB ,B2~#>IHu3w DPE B15G\H
D9E U*12$ B h <5> EFS B12 Z
on B8g \" U DPNHGxNH B9E , q BSNHQX 92MNHSVpU3B87CE^B B{H
"9<y $ 5xNH
Modelo da fase de anlise
Modelo de
Casos de
Usos
Casos de Usos
- alto nvel
- essencial
Diagramas de
Casos de Usos
Modelo
Conceitual
Modelo do
Comportamento
do Sistema
Diagramas
Diagramas de
Estruturas
Estticas
Sequncia
do Sistema
p/ Conceitos
do Domnio
esttico
Contratos p/
Operaes do
Sistema
Modelo de
Estados
Diagramas
de Estados
p/ Conceitos
e Casos de
Usos
Casos de Uso
estendido
essencial
Casos de Uso
real
J
Janelas
Relatrios
Casos de
Teste
Diagramas
de Caso de
Uso
Diagramas
de Interao
Mtodos
Modelo
Conceitual
Diagramas
Glossrio
de Classe
Definio
de Classes
e Interfaces
Diagrama
Sequncias
Contratos
Diagramas
de Estados
Diagramas
de Pacotes
Base de
Dados
SQL
"
#$%&
4 )5
6
< %=8>)@!?8 A
B
!
('*)+,-./01)32,
7)598:)5:;'
('*)+,-.C8!D FE#G8F
)H,-I:JK8F
ML
N ,)321O$FEP)+QRS
,T)H., UV8F
WJG
X&8F,YV
: E;;Z,-.
6L "
\[]:;';
^_'*)+,&
` 1)a,Y
ab8F
1Z)H!
L>95xhH
95Bo">e B{g }VS."93OHIg \H D9E j+- 5B{g IHGcB8g D9EFIH 95G\H Z
W., )+Q
('*)+,-./0,)321
FEP)+QR ;I
,9a
('*)+,-.C8!D %E;G8F
W )H., T:
8F
ML N 1)32,O$%E )+Q S
,T)H.,
V8F
b\$&8F,YC
: E;;Z,-.
6L
"
\[]:;';
_'*)+!-
` 1)a,Y!
#b8F
, )H.,
>)598)5:;'1V%,98:) '
6?8,
,A %& ;L 1/ L / L
"
#$%&
$
W
1 )H.
6
< %=8>)@!?8 A
B
4 5)
6
@,
, 8:) &
` ,-.
1
" !?8 A
1
" .
a
L MQV8--
O8F
Z&8-
:9
; 8!'*)+,-.I8!D-%E#
8&1)32,8
W )H., Ub8
W
L N 8&1)32, X%EP)+QRG8-9#
)H.,
"
F !
,Q=b
)+Q.,I
!L
)H., A
;$F,-9
,
LLLLL
T
ZS1
8-
O"
'*)+Q=b1-.
aX% \)5,)8:) ;
8--
E,,-.%UR2:., -
1
WY F ) `
E1!;'
$% ;Z
;6?8!
1A %
)+Q.,I
$,' 8:)+
W9a
"
#$%&
$
W
1 )H.
6
< %=8>)@!?8 A
B
4 )5
6
@,
, 8:) &
, 98:) b
" ,?8
,A % " .
a$%
` ,-.
1
A
4
%
1Q U
)+Q.,I
1)8-
4"
+ "$47
+ 7 7
3;95c3MdU"QB$E BSEFIH
DzB$E^B "SBzyB BSE)V 3;95c3MdU"QB$E NH D9E ".\H,H,NH :=<> $2
+ 77
3;95c3MdU"QB$E L>$5SNH
zG$E 5{hH B8NH :=<>B13OH H3OH,$ B
1/L> EFIH\D$U5z$E
`a 26<{HGjE^B <y "IC5+ <5x "QB8H,NH {< HNH zD B$E^B <y
H3OHGG$ BpV BxyEK\H EK$2;B>">3OC59By $5S 95 jEF B xEF\H
"QB8H,NHT <{HNH
Comprar itens
Caixa
Cliente
Registro
Retornar Itens
Comprados
fluxo de
caso de uso
informao
ator
;9
p
Linha de venda
Item
Registro de venda
0..1
quantidade
1..*
Associao
*
Armazenado em
Contido em
1
Venda
Atributo
Estoque
data
hora
endereco
nome
1
Filiais de
Pago por
Registra
1..*
Pagamento
1
Posto
Comercial
quantia
B9E^B 3;$5Sj3MdC"SB9EA"IC5>".93kxhHQX
( i<8HJ"SB9E DPE 58U IHT$ IHJ"$Ev3^"$
e g \HG
zj<9B3HQX
t +.4 "
(' 7 4+ 7 "SBzyB " + HB8g ByD9EKR
HJ$5SBzNH Z
<13;yBz}X a D9EF.">3H B{
g yB 2436587C<9B{71$ 59BS <1E^B2
3H,B
BGI7hEv3B{HT
)8F
,&( `
C5>".>3MxNH
Y F
,
) A
F !&8:)H[P8-6!?8
1A %%/ %=8>)@!?8 A
8F
P)+ -&
-
0/P%=8!>)@?8 -A
\
X
-
R;- 6,?8
,A %& X%, ` a/ : E;;Z,-.
;6?8! A
\
%
; &(8-,)321#/],)5'
,.
X&8:)51)+,&I1b8F
)+ & %Q.
/W `
8
P)+ ,
% &8:)H[P8-6?8 A
$
)5-A
-R$
, )+Q.,I &U -
#>)%6!?8 A
8-X
8!& )H.
B/68F
-R$
W'
1CR - [P8F
O , $%
8
W98 )H
,U;Y QR-.
,&
@
Z
#$E;;1)%6,?8
,A %& 8) , $ -%/!:X;Z,-.
` ,9a-
` !-
,& `
a
0/B98),-.%%/ ` ,9aa/ $
;Y!
X
8 %
1=!
M,
- ,-.
;
X
-
0/ $%! ` ;9
X%EWJ U\
W' )8- & $F.
a
Z, 8-
a>) #/M8-;98F!';Z,-.
8&-; '
,E,
6 $
M&
, V8-& ; '
,E1
0/ :X.%US8-- '
1E,
8
W-R-.
,T' FE#1)+%/ C[]:;6?8--&(8F
-R-.
I J;Y:;' D
! ` )@F?8
1& '*)5;D:b1b8!& )H.
I :
1)+%/ *' ) ` $
,& I; : ;';
,$FE#91
B/ I; : ;'#\$,:$
Voo
Voo
Aeroporto
ou ??
destino
nome
Posto
Comercial
1
Registra
*
Venda
Loja
Registra
1
*
Venda
Item
Especificao
de Produto
descrio
preo
ou
descrio
preo
UPC
UPC
nmero serial
Item
Descreve
1
nmero serial
melhor
Voo
data
hora
nmero
Vos para
*
Aeroporto
1 nome
ou
melhor
Voo
data
hora
Descreve
vos para
*
Aeroporto
1
nome
O
X\'
, EP)8&b )H! ` , a ` ,9#
%QV
[ )8-;Z!-T8F
W& )ab, ] E,)5$
`
FQ '
1E )8-;Z,& 8
W- )a ,
1%=8!>)@?8 A
"
"
"
"
"
X
8& =;'
,E,
)5 A
)H.,
b
1%=8!>)@?8 A
F=8!>)@!?8 A
`
a
`
a
"
"
"
"
"
"
"
8F
;D &8:)1
B/ $FEP)+QR9
0/T$,'-9
,
8
WZ,$8:) ;'
'
Z,YX
\
J;Y:;' D
1
` , a !
,Q
],)5'
,.
8:) K ! $
;
I ;Y ; 1)#9
!, 8:)+
W;'
!:X;Z,-.
G
GE1!$,98:) 1)5'
!
` )5-A
b8
W ;
,)8-S8F
P8!'*)+,-. 8-1)32,
%QC
$!'98:)+
:9
T I R;- 6!?8 A
T1 a E,)5$
)8 F
I^R; 6?8 -A
X,'98:)+
:9a ;I
- R R;- 6!?8 A
E#Z,-.
` ,9a
X
&2#)5Z
O P8:)#9 8:)a9
" %Q
"
1V
W ` ) A
8:) , $-
Registra
Comercial 1
nome
Venda
multiplicidade
*
1..*
1..40
uma ou mais
5
T
3,5,8
uma a quarenta
exatamente 5
exatamente 3 ou 5 ou 8
Loja
1
Contm
1..*
Posto
Comercial
Registra
1
Pago por
Venda
1..*
Paga/to
(1)
Cia
1
Emprega
1..*
Pessoa
1
Atribuida a
1
Voo
Atribuido a
*
Avio
Supervisiona
(2)
Vos p/
(associao
0..1
Voo
Aeroporto
*
Vos de
mltipla)
(3)
Exemplos de Associaes
D
A
8F
!
,Q
,&
ZS1 %
;a/Z,$
1V.,' @
WYXS,' F
M8F
# $,X,
W,6,?8
,A %U ` ;'*)a6?8 A
B
' % ,
& $
, & >)5Y -
,& $W?8
1 $
WZ
M8:)+
:1)+8F
,
5) H8:)+
V , b5) -
$ ,$%!-=
Z
M%ab8F
a $,-.
;- )a9
8F
a-
: E;;Z,-.
Venda
Atributos
data
hora inicio: Hora
Registradora
nome
posto atual
Registradora
nome
Posto
Comercial
1 nmero
Usa
1
(1)
Voo
destino
Voo
Vos para
1
Aeroporto
1
(2)
Especificao
de Produto
UPC
Especificao
de Produto
upc : UPC
Estoque
1 Endereo
Estoque
endereo: Endereo
Exemplo: Uso de Atributos Puros
Pagamento
robusto o suficiente
quantia: Numero
Pagamento
Tem quantia
Est em
Quantidade
Unidade
*
1 quantia: Numero *
1
Pagamento
quantia: Qtidade
!
O >
23&4056-87905
Q (- /96R&
V &4WB&!X-(/4+.
V &4WB&!X-(/4+.^]`_7<&B/4+a=`&Rb*cd+a=,6R&16-
2S/92E-9=T+.
2S/92E-9=T+.
&3+$>=feB71+Y
]j]k]j]
]j]k]j]
;;
"I=
[ y<
Ev3; 58
L>$5SNH
"\E EKP
")( - 4(
(
! +
+
+1 0
")(
7
! "
% + 0
+
X <y L>95
z,9E 59B 719E^Bz D$yE < BxE D>B$E^B H3OHGG$
<y B UDh$EFBf">e B8g "\U <y B EFIHIDPNHG,B
+14(
(' 7
7
! " +
( X
UDh$EFBf">e B8g
"I= KE \HIDPNHB B < /Lz$5x h H3OHGG$ B
7
7
! "
: Sistema
Caixa
entrar item(UPC, qtidade)
Repetir
venda fim()
at no ter
mais itens
efetuar pagamento(quantia)
texto explicando
controle, lgica
iterao
evento do sistema
Tipo X
Operao1 ()
Operaes do tipo
Operao2 ()
O
: Sistema
Caixa
venda fim()
efetuar pagamento(quantia)
: Sistema
Caixa
entrar item(UPC, qtidade)
venda fim()
efetuar pagamento(quantia)
Limite do sistema
Diagrama de Sequncias Mostrando o Limite do Sistema
J
Z
W
F !
; Y1)5'*)a %&
4 )5
6
@,
, 8:) &
, &
28F%F
,A %C
Haa
9)@,?8
,A %&
1 Q
9)@,?8
,A %&
ZCa
!!6!?8 A
:
ZF X
1
$%
W Y1)5'*) 9%UG,$! 8;>)a
ZC
)5
8F
98F)H.
B/M8' VC
$/
)5-.,
>98
;6?8!
1A %U
, )+Q.,Ia/M8--
1U
1UF8
!= U $
F.
B/W;' E,
a>)HRZ
,%/
F;' D %U )5;' ,Z!-=B!?8 A
8-
,UR2!8 ,,8:)+
:1)+
Z, E,, $%E )+Q X
1 , ` ) 91
1
:
@
aJ1
)+Q,I
-R$
,U )+Q.,I
;!
, )@,?8
,A %
WYXS
FQ=91
aG
W,6?8 A
%Q9
O
\ )+Q,I
1
! b)5
a
!!6!?8 A
BL
Z
W
F !
;Y1)5'*)a %&
4 5)
6
@,
, 8:) &
&
,
28F%F
,A %C
Haa
9)@,?8
,A %&
1 Q
9)@,?8
,A %&
;6?8!
1A %& L / ;L !P/ ;L
8-
, 1
,&
,-
98F%
O ;IOY:-S1ba
1
;A "
@
# ` ; '*)a
Z
1QR_ZE
1V! $
` S8
W;D-&8F, ` ;'
aO
Lbb8F
-
` a/ ;IO
` ,9a Q)5 Q ; 8:)
@
) 8>) 9a
Lb 8F
WJ
` a/T
` ,9a
@
P) -
8) 9a 8F
1Q.
8
WZ,$8:) ;' ;I
M8:) 6?8 -A
@
)a%Q=Y!,' &8)a
!L ., a '*)5;D:b ( !9a @
) 8!7) 9
Q)5 Q ; 98:) C8!>) 9a
L ., a '*)5;D ( , a @
) -
8) 9
8F
W
WJ
1
) B!?8 A
FQ=;Y,' &8:)#
L N -R>)5Y -.
., a '*)5;D (!9aML ;- )a9 $%8F,Y!
` ;'
# Z
M)H[P8-6?8 -A
K -R>)5Y &
L ., a '*)5;D:G (!9a
@
P)
M8:)
8F
;I &8:)
[P8-6?8 -A
X
-
0/ Y:
` ;'
a a -
1 ) 6?8 -A
L
) 1,- )H[8- W
,6,?8
,A %
, 98)
)+Q !I
J
)+Q,I
LOG8-9aG
W,6?8 -A
\,98
W-R9#a/8
W QR 1)5
!LG8
WZ&8 F=8!$ `
#G
!!6!?8 A
) -EWI
1
8F
-R-.
,91
T W!?8 A
X% !
;Y1)5'*)#9%%/-
G$
1 )H.
LG8
W;' !?8 A
1
1 8F
W )@,?8
,A %%/B%=8!X ` ,9
a;6?8--
1VFQ=91
,
WY F.
1T
Z
M,'
8F
98F)H :;'
LG1%=8!$ `
, 8
W9P)@,?8
1A F : %E ,)5-F &8 -FE1
#>) & 8!>) B!?8 A
$,Z
!?8 A
)5 Q ;
98:) %/VZ
P)H[8-B!?8 A
-R>)5Y -.
,%/
8) 6,?8
,A % % Q=Y!,' &8)a \$
1)a &L
1 8F
9)@,?8
,A % A
&8'6,?8
,A % 1
% Q9
)+Q,I
A
6,?8
,A % G.
WI /P1 ` , FQ=
:- 9
BL
LG1%=8!$ ` O
8F
9)@,?8
,A %
8F
9)@,?8
,A % A
.%Q9
,&L
LK' ,
8) 6,?8
,A %&L
>-.
1
)5
aX;-.%
)5!
#X;-.
-
$&8:)+ ;
;A
!
Caso de Uso
entrar item
Comprar Itens
(upc,
qtidade)
Ps-condies
Sistema
Sequncias
Tpicas de
comea ....
Caso de Uso
entrar item
venda fim()
Eventos
1. Este caso
efetuar
pagamento
(quantia)
Diagrama
de Sequncias
do Sistema
venda fim()
efetuar pagamento
Ps-condies
Operaes
do Sistema
1. ....
Contratos
O
Artefato da Anlise
Questes Respondidas
Casos de Uso
Modelo Conceitual
Diagrama de Sequencias
do Sistema
Contratos
Modelo do Projeto
Modelo de
Modelo
Casos de
de
Arquitetura
Uso (Projeto)
Modelo de
Comporta/o
Modelo
de
de Objetos
Classes
Diagrama
de Classes
Casos de Uso
Reais
Diagramas
de Pacote
Diagramas
de Interao
Diagrama de
Diagramas
Contratos p/
Mtodos e
Operaes
Casos de Uso
de ???
Modelo de
Estados
(Projeto)
Diagramas
de Estado p/
Classes
9
Atores:
Cliente, Caixa
Propsito
Resumo:
Tipo:
Referncias
pincipal e real
Funes: R1.1, R1.3, R2.1
Object Store
UPC
Qtidade
Preo
Desconto
Total
EntrarItem
VendaFim
EfetuarPaga/o
Resposta
.......
mensagem1()
Instncia
Classe A
1:mensagem2()
2:mensagem3()
Instncia
Classe B
Diagrama de Sequncia
Instncia
Instncia
Classe A
Classe B
mensagem1()
mensagem2()
mensagem3()
I
t jEv3w*1<136E EFIHIDPC58H By*36243;yB>IHQX D>B9E , U3 q "9362 3w DPE R
,B5S,
t <
p~2~3O}X <{H
H B5> EK\HIDPC58H By*h3w243;yBz\H DAN H "\C5>C3 "$e g \H NH "\C5SR
jE^BSNH V B IHJ"$Ev3^">e B8g "QB8H, <8H, "IU DPC5x
36513;">3B2`VfD9E +-, U*,+-NH 365,9E^B{7C365>h D>B$E^B "\U D12/,B$E
B{H|,B$EF q B{H Z
entraritem(upc,qtidade)
entrar item
(upc,
qtidade)
Posto
Comercial
efetuarpagamento(quantia)
Operao venda fim
Ps-condies
Posto
Comercial
1. ....
Diagrama
de Sequncias
do Sistema
Contratos
Diagrama de
Colaborao
Venda
:Venda
classe
sl:Venda
instncia
instncia
identificada
parmetro
mensagem
direo msg
1:efetuarPagato(quantia:Dinheiro)
msg1()
:PostoComercial
:Venda
link (instncia da associao)
Tipo de retorno
1:tot:=total():Integer
msg1()
:PostoComercial
:Venda
Valor de retorno
retorno :=mensagem(parmetro:TipoParmetro):TipoRetorno
msg1()
:PostoComercial
iterao
1*:li:=proximoItem():ItensdeVenda
:Venda
clusula de iterao
msg1()
msg1()
:A
1*:[i:=1..10] msg2()
:B
:Venda
msg1()
{
for i:=1 to 10
{
B.msg2()
C.msg3()
}
2*:[i:=1..10] msg3()
:C
as clusulas
so iguais
contm mltiplas
mensagens
msg1()
1:create()
:PostoComercial
:Venda
msg1()
:PostoComercial
um objeto envia
msg p/ ele mesmo
1:zerar()
msg1()
:PostoComercial
1:mensagem1()
2:mensagem2()
3:mensagem3()
:Venda
segunda
1:msg2()
:B
terceira
1.1:msg3()
2.1:msg5()
2:msg4()
:C
quarta
quinta
2.2:msg6()
sexta
:D
1:[novavenda] create()
:Venda
teste
1.1:create()
:ItensdeVenda
:E
incondicional
2:msg6()
msg1()
:A
1a e 1b so mutuamente exclusivas
1a:[teste1] msg2()
:B
1a.1:msg3()
:D
1b.1:msg5()
:C
msg1()
1:create()
4:imprima()
:Venda
2:adicionaEleto(sl)
3:s:=size():int
sl:ItensdeVenda
:ItensdeVenda
1:d1:=today():Date
Data
*,+
7 0
(
"$#6"
(
+
<y B "$2;B{HHJhX
(
+14 X H By*h9E H,=*>EF NH HJ9<8H yBzNHQV H,U*9EF U*,+-NH
EF92;B>">3C59BzNHQV H,U*9EF "IC3OH B8H :U<> 92 DP "SB12;"9<2;B$E C<
9Ev3kL9B$E Z
( +14 X 36513;"93B$EiBf"$e g \H 95jEF U<S E NH U*,+-/xNHQV "IU5S E 9R
2;B$E "I!yEK$5>B$E Bc3kL13;yB>1\H $ C<jE NH U*,+-NH
+ 77
X IH\DNQ">3B243OHG,BVf"9Ev3B>E)V
B 2W,B "\IHB8g }V *>B3 >
B>"IUD12;By $5x}VC"IU5S E C2 Z
(
4 7 +
*
( " 7
(' 7
R
Q -</<6&
),+-<! 6- Q <- /<6&
0:"-S2<= 2E& 2<? &1A Z6 V $LR6i74+.
R
Iii
0 &e- +Y%+5&HRW-($'&H6&#[9-</<6&
0 &e- 0:7Be +Y%+5&HR6B- 2E&96&Z=T+.-(!
0 &e-K"($'-2S? 6 "%$D674+.
t:=total()
Especificao
* Descrito por 1 do Produto
descrio
preo
UPC
Venda
data
hora
total()
2:st:=subtotal()
:ItensdeVenda
sli:ItensdeVenda
novos mtodos
2.1:p:=preo()
:Especificao
do Produto
Itens de
Venda
qtidade
subtotal()
Especificao
do Produto
descrio
preo
UPC
preo()
J .
X t Ev3w*1<>B B "$2;B{HHJ B EF\HIDPC58H B*362~3;yBz
L
E$%E;G
Y F
,U "
!L
8F
- !
"
G
WY F.
1U "
11
) )5
@
a IB!?8 A
8>) 6!?8 A
"
X
criarItemdeVenda(qtidade)
:Venda
1:create(qtidade)
:ItensdeVenda
Venda
data
hora
criarItem
deVenda()
total()
novo mtodo
!" # %$&
')(+*-, ./*1032547698;: < =>6?:1@ ./*1@A<CBD6E*18"F
HGJKMI L ON P QSR 6UT50+V R <CBC2"*18;BWV3TX69476ZY3VAY[<CB 2AV R V :5V R V[8 R
efetuaPagato()
1:create()
:PostoComercial
p:Pagato
2:adicionaPagato()
:Venda
efetuaPagato()
:PostoComercial
1:efetuaPagato()
:Venda
1.1:create()
:Pagato
;
#
` <
A<a8 Q * YX* DB 6?B Q <a` V < # 5: < R VYX* "2 * R 03` V Q * R
P ^ V[` V Y3V Y5< V32 R <oB)<+8 Q V ^Aj V;l * '6U8 Q < R V^ < ^C*_` *
0;B0 V # R 6?*fF 58 V;l * [Y <
< QmR V Q V R <
<a8 Q *B|YX* B6?B Q <"` V
entrarItem(UPC,qtidade)
???
Posto Comercial
......
Sistema
fimVenda()
entrarItem()
efetuarPagto()
fimVenda()
entrarItem()
efetuarPagto()
operaes encontradas
durante a anlise do
comportamento do
sistema
Object Store
UPC
Qtidade
Preo
Desconto
Total
Seleciona
EntrarIten
VendaFim
EfetuarPaga/o
cone
coneEnterItem()
Camada de
Apresentao
(Java Applet)
Camada do
Domnio
:PostoApplet
1:enterItem(upc,qtidade)
:Posto
1.1:criaLinhaItem(upc,qtidade)
Comercial
:Venda
controle
;
#
r sut v!px yzN P 25476h^ V ^aj *Xl <oB } 0A< R < ^c<aTd<"` ` bB : Y[< 03`
BD6?B Q <a` V <S\ Q < R 8;* i' 85V;l * <\f6?B Q < 698 Q < R VA^c<^C*_` * 0 BC0 V # R 6?*3F
X\ N B6?B Q <"` V;B Y[< Q <a4E<c^o*_` 0[856Z^ V ^aj *5l <CB
t Hv GJMK I y L t N Y5< < 856 R 03` V ^+4hVBiBW< 2AV R V ^ VAY3V ^o*_` V[8AYX* V
^C*w` * ` < # Q *pYX* <S\a< ^+0 Q V R
^o*18 QSR *14ZVAYX* R ^ R 6hV R V # 03` V
698;B Q V5e 8A^A6gV Y3V ^a4ZV;BiB)< ^C* RR <oBC2"*18AY5<a8 Q < V ` Bi: YX* <
<a8 Q *
YX* BD6?B Q <a` V < <+8=
56hV R V # V ` <a8;BWV:5<a` <\"<c^a0 Q V R V ^a4ZV;BiB)<
^C*w` V[8YX*
Comando
executar()
Comando-1
Comando-2
Comando-3
executar()
executar()
executar()
polimorfismo
msgdeControle(msgReg)
:ControledeMsg
1a[msgReg.tipo=1]: create(msgReg)
1b[msgReg.tipo=2]: create(msgReg)
2:executar()
c:Comando-1
c:Comando-2
c:Comando
{ V R V V c< R 03`
$
a %$
0 Q 69476 c< V;B R <CBC2"*18;BWV3TX69476ZY3VAY5<oB < 2*# B ^C*18AY_6^"j *Xl <CB XY *B
^C*18 QSR V Q *B < 0BW< ^ V;Bi*B Y[< 0;iB *B ^C*_` * 2a*_8 Q * [Y <
2V R Q 6ZY3V
< R 1* 0 V c<
R R < < R <+e 8A^+6hV V _* 0 QmR * *_Ti~< Q *
:PostoComercial
Especialista
3:criaLinhaItem(spec,qtidade)
1:[novavenda] create()
2:spec:=especificacao(upc)
:Venda
3.2:addEleto(sl)
1.1:create()
:Ctalogo de
de Produtos
3.1:create()
sl:ItensdeVenda
2.1:spec:=find(upc)
:ItensdeVenda
:Especificao
de Produto
VendaFim()
Especialista
:PostoComercial
1:tornarCompleta()
:Venda
:ItensdeVenda
Especialista
s1:ItensdeVenda
2.1:p:=preo()
:Especificao
do Produto
1:efetuaPagato()
:Venda
1.1:create()
Baixo Acoplamento
Alta Coeso
:Pagato
efetuaPagato()
:PostoComercial
1:efetuaPagato()
s:Venda
2:adicionarVenda(s)
Especialista
1.1:create()
:Estoque
:Pagato
2.1:adicionar(s)
Venda Completa:Venda
s:Venda
1:q:=quantia()
:Pagato
2:t:=total()
0BqV R{ VAY R *Xl <CB P 4 Q V ./*p<oBDV;l * < % VX6\A* P ^C*w2X4hV[` <+8 Q *
create()
1:create()
2:p:=getPosto():PostoComercial
:PostApplet
estoque:
Estoque
p=estoque.getPosto
create()
:Estoque
2:create(cp)
:PostoComercial
1:create()
1.2:carregaEspProd()
cp:Ctalogo
de Produto
1.2.2*:adicionar(ep)
1.1:create()
Especificao de Produto
1.2.1*:create(upc,preo,descrio) ep:Especificao
de Produto
&
/
%$X
iT ~< Q *B Y[V ^V[` VY3V Y[< 3V 2 R <CB)<a8 Q Vk^Aj Vl * 8XV;l * Y[<
<"`
Q < R R <CBo2a*_8BqV[TX69476hY[VAY[<CB 4*# : 6h^ V;B V;B 8;*BbBWVB <oB)^C*_4@+VB
R <CB0[4 Q V R V;l * <\ Q <+8;BD6UTX69476hY[VAY[< V ^+Z4 V R 6ZY3V[Y < < ` V[8[0 Q <+856UTX6946
Y3VY[<
Qtidade
Preo
Desconto
Total
EntrarIten
VendaFim
EfetuarPaga/o
Seleciona
cone
coneEnterItem()
Camada de
Apresentao
(Java Applet)
Camada do
Domnio
:PostApplet
t:=total():Float
entrarItem(upc,qtidade)
p:Posto
Comercial
criaLinhaItem(upc,qtidade)
venda:Venda
Uma vez que PostApplet tem uma conexo com uma instncia de posto p
ele pode enviar uma mensagem, por exemplo entrarItem
$f /
4 *p^ V[49` <+8 Q < Y[< ^+4ZV R VY3V N < # 03` *wT~< Q * 4 *p^V54fY5< 30 `
` < # Q *pYX* Y5< P 03` V 6U8B Q V[e 8^+6hV 4?*p^ V[4 < # ^ R h6 VAY3V V *_0 a< 4E<
B)< R V # 03`
+V[4 * R Y5< R < Q * R 8;*
1: 4 *_TAV[4 N < #
X6EB#
A<+4 1: 4 *_TAV[49` <a8 Q < ;0 BWV B)< 03` V
AV R 6 V=#
<a4:_4 *_TAV54 2AV R V V R ` V c<a8+V R 30 ` V 96 8;B Q V5e 8A^+6hV
2a*_0^o* R <c^o*_` <a8AY[VAY3V
Exemplos de Visibilidade
entrarItem(upc,qtidade)
Por parmetro
3:criarItemVenda(espec,qtidade)
1:[novavenda] create()
:PostoComercial
2:espec:=especificacao(upc)
cp:Ctalogo
de Produtos
:Venda
3.1:create(espec,qtidade)
Visibilidade Local
retorno de objeto
sl:ItensdeVenda
2.1:espec:=find(upc)
:Especificao
de Produto
Por atributo
Class PostoComercial
{ ...
private CatalogodeProdutos cp;
...
}
construtor ...ItensdeVenda(espec,qtidade)
{
...
prod=espec;
...
}
# $d$X%$
VY_6Z^+6?*18+V R *dB ` < # Q *pYX*BYX*B|Y_6hV;: R V[` VB|Y[< 698 Q < R Vk^Aj Vl *
V Y_6Z^+6?*18+V RQ 6U2"*B Y5< V QmR 6HTX0 Q *B V 2V R V[e ` < QmR * < R < Q * R 8;*B
Y5< ` < # Q *pYX*B
V Y_6Z^+6?*18+V R 8+V=
A<C:5V3TX69476ZY3VAY5< } 0A< 698AY_6Z^V V Y_6 R <w^Aj V;l * Y[<
< # Q *pYX*B ^ R <V Q < < Y[< VA^c<oBiBi*B V;*B V QSR 6UT50 Q *B 2a*
Y5<"` BW< R *_` 6 Q h6 Yd*dB
entrarItem()
registra
Venda
1
data
hora
navegabilidade estaCompleta:boolean
conexo
unidirecional
registrarItem()
mtodos
ausncia de
navegabilidade
no conexo de
Venda para Posto
informao
sobre o tipo
entrarItem()
VendaFim()
efetuarPagato()
Venda
Pagato
data
hora
estaCompleta:boolean
quantia
registrarItem()
efetuarPagato()
tornarCompleta()
total()
Ctalogo de
Produtos
ItensdeVenda
qtidade:Integer
subtotal():Quantidade
Especificao
do Produto
especificao()
descrio:Text
preo:Quantidade
upc:UPC
Estoque
endereo:Endereo
tipo de atributos
nome:Text
adicionarVenda(s:Venda)
tipo de parmetros
Estoque
Ctalogo de
Produtos
Usa
1 endereo:Endereo
Especificao
do Produto
Contm
nome:Text
1
especificao()
adicionarVenda(s:Venda)
descrio:Text
preo:Quantidade
1..* upc:UPC
1
1
Filiais de
Venda
descreve
data
hora
estaCompleta:boolean
Posto
Comercial
1
Registra 1
entrarItem()
VendaFim()
efetuarPagato()
registrarItem()
efetuarPagato()
tornarCompleta()
total()
1
*
*
ItensdeVenda
Contm
1..* qtidade:Integer
subtotal():Quantidade
Pago por
1
Registros-completos
Pagato
Posto sabe sobre Especificao do Produto
quantia
J
$ /
03T i.4hVBiBW<CB
V B03T ^+4ZV;BiB)< Q <"` V QmR 6HTX0 Q *B VY_6Z^+6?*18+VX6EBY[< 698 Q < R <oBiB)<
B03T ^+4ZV;BiB)<
698 Q < R <oBiB)<
Q <a`
VAY_6Z^A6E*18+VX6?B
Y[<
V B03T ^+4hVBiBW<B)< o^ *_` 2"* R Q V Y16 < R <a8 Q <Y3V B032d< R ^a4ZV;BiB)<
*10 Y3VB *10 QSR V;B BC[0 T ^+4ZV;BiB)<oB
J
$ /
032d< R b.4ZVBbB)<
Q *pY3V;B|V;B B03T ^a4ZV;BiB)<CB "2 *BiB0A<"` 03` V ;V BiBi* ^A6hV ^Aj V;l * ^o*
` 03` } 0A< 2"*pY[< R V # B)< RR <a4ZV^+6?*18+VAY[V V B 032d< R ^+4ZV;BiB)<
Pagamento
A vista
A crdito
Cheque
ou
Pagamento
A vista
A crdito
Cheque
Com Cheque
Pagamento
1
cada pagato
tratado diferentemente
Com dinheiro
Pagamento
quantia: Dinheiro
A crdito
associaes adicionais
Com Cheque
Crdito com
Pago com
1
Carto
Cheque
+< 0;B V QmR 6HTX0 Q *B <oB Q V;l * R <+4hV^+6?*18+VYX*B V 03` V ;V BiBi*
^A6gVk^Aj Vl * <+8 QmR <>*10 QmR *dBYd*16?B^C*18A^ <A6 Q *B V Y3V } 0A[V 4cB)<a0 Q <"` 2"*
Y[<
X6hY[V < # Y[<a2d<a8Y[<a8 Q <
d\f6?B Q < 03` V V;BiBi*p^+6hV ^Aj V;l * ` 056 Q *B 2V R V ` 0X6 Q *B <+8 QSR <
*B|YX* 6?B ^C*18A^ <A6 Q *B<a8=
*_4
56ZYX*B
Autorizao
endereo
1..* nome
telefone
nome
endereo
Contrato de
Servio
id-transao
Companhia
Emprega
Um conceito associativo
atributos relacionados
associao
Tempo de vida dependente
da associao
Pessoa
Emprego
salrio
# 0[` Q 6H2a* Y[< V;BiBi* ^A6hV ^Aj V;l * 0 Q 69476 VY3V 2AV R V ` * Y5<a4ZV R
R <+4ZVA^A6E*18+V[` +< 8 Q *B Q *pYX* q2AV R Q <
<\f6?B Q < 03` V ^C*_` 2a*dBD6^Aj V;l * # BD6h^ V *10 4 *# : 6Z^V
V54 :_0[` V B 2 R *_2 R 6Z< [Y VAY[<CB <
*10 *_2d< R V ^aj *Xl <oB Yd* ^C*_`
2a*dB Q * )B < V[2574 6h^ V3` ;V B 2V R Q <oB
*_2d< R Vk^"j *Xl <CB 5Y < ^ R <V Q < V ^C*w2 V Y[<+4E< Q < 5Y <
A<a` Q V3` T <a# ` B)< R V352 476Z^VY3V;B V;B A2 V R Q < Yw0 R V[8 Q < V V;)B <
[Y < 2 R *S~< Q *
Agregao/ Composio
Mo
Dedo
1
0..7
agregao de composio
Pacotes UML
Elemento UML
*
agregao de compartilhamento
# $d$d
$"
classe abstrata
em itlico
no existem
instncias
mtodop abstrato
no implementado
Pagamento
quantia: Dinheiro
Com dinheiro
A crdito
Com Cheque
Com dinheiro
A crdito
Com Cheque
Com dinheiro
A crdito
Com Cheque
tipo abstrato
6
56?BDV;l * YX*
QSR <oe B^V[` VY3V;B N
"
$a
{ * R <S\"<a` 254 * V
VYX*B
P R ` V c<+8+V[` <+8 Q * N % V[8^o* Y[<
P B Y_6 < R <+8 Q <oB ^ V[` VY3V;B 2a* Y5<"` B)< R Y_6?B QmR 6UT50*#ZY[V;B
<a` Y_6 < R <+8 Q <CB 2 R *p^ C< BiBi*dB V[03` <+8 Q V Y[<oB)<a` 2<a8[@* < 698
* R ` V ^Aj V;l * ^C*_` 2 V R Q 6994 @AVAY3V 8[03` BD6EB Q <"` V ^+476Z<a8 Q < B)< R
X6
YX* R
%$
$a
Exemplo
Domnio
Vendas
Produtos
Camadas e Parties
Domnio
Vendas
Camadas
Verticias
Produtos
Servios
Interface com
B.D. Relacional
Comunicao
Interface com
B.D.O.Objetos
Relatrios
Parties Horizontais
%$
#
Vendas
Produtos
Pagamentos
Kernel
Posto
Comercial
Estoque
Gerente
Vendas
Venda
Itensde
Venda
Caixa
Cliente
Produtos
Item
Catlogo de
Produtos
Especificao
de Produto
Pagamentos
Autorizao
Pagamento
Cheque
Com dinheiro
A crdito
Com Cheque
Carto
` *B QmR V
Arquitetura Detalhada
Apresentao
Domnio
servios
alto-nvel
Interface com
B.D. Relacional
Comunicao
Interface com
B.D.O.Objetos
Frameworks de Aplicaes
Bibliotecas de Suporte
orientados
a objetos
servios
baixo-nvel
orientados
notao para um
pacote em UML
B.D.
Relacional
Relatrios
ou no a objetos
B.D. O
Objetos
a %$ #
$a .
"%$
My s y t
rsut v!px yzN <a2AV R V R V32 R <oB)<+8 Q V ^Aj V;l * Y3V ^ V3` VAY3V XY *
YX*_` #98X6E* 2AV R V V[03` <+8 Q V RR <+0;Bi* < _Y 6U` 698[056 R 6U` 2AVA^ Q * [Y <
` 0AY3V[8k^j VB
Qtidade
Preo
Desconto
Total
EntrarIten
VendaFim
EfetuarPaga/o
Camada de
Apresentao
(Java Applet)
1:enterItem(upc,qtidade)
Camada do
Domnio
1:displaymensagem(msg)
:Posto
Comercial
:Posto
Comercial
Acoplamento do Domnio
a camada Viso: pior
$
$a
{ *pY[< )B < R N
96 8 Q < R 8;* N 03` V ` Bi: :X< R VAY3V Y[<+8 QSR * YX*B 476U` 6 Q <CB YX*
BD6?B Q <a` V
<\ Q < R 8* N X: < R VAYX* * R V Yd*dB 476U` 6 Q <CB YX* BD6EB Q <"` V V <S\ N
` Bb: <a8%
56hVAY3V "2 * R 03` V Q * R
Q <"` "2 * R V54 N X: < R VAYX* ^C*w` * 2AVBiBqV R YX* Q <"` "2 * V *10 2"* R
;@ * R V *10 3Y V Q V <oCB 2d<c^1# <1^ V
YX*B 5Y < 03` *wT~< Q * < * C^ *w` 2"* R Q V3` <a8 Q * Y[< 0[` *_Ti~< Q *
^C*w` * R o< BC2"*B Q V V 0[` <
a< 8 Q *
{ *pY[< B)< R V[25476Z^VYX* V ^ V;Bi*B Y[< 0Bb*B V ^+4ZV;BiB)<oB V ^o*18
^c<+6 Q *dB
entrarItem
Espera
Venda
Entrada
Itens
vendaFim
eventos externos
efetuaPagato
Espera
Pagato
estados
transies
y
t K St v y px
y t
s y1v
/
#
>
Exemplo - Atributos
Especificao
de Produto
ItensdeVenda
Descrito por
qtidade:Integer
*
subtotal():Quantidade
descrio:Text
preo:Quantidade
upc:UPC
atributo referncia
Looks-in
especificao()
Venda
1
data
hora
estaCompleta:boolean
Posto
Comercial
1
Registra 1
registrarItem()
efetuarPagato()
tornarCompleta()
total()
entrarItem()
VendaFim()
efetuarPagato()
Venda
data
hora
estaCompleta:boolean
ItensdeVenda
Contm
1
registrarItem()
efetuarPagato()
tornarCompleta()
total()
1..* qtidade:Integer
subtotal()
Estoque
1 endereo:Endereo
Usa
1
Especificao 2
do Produto
Ctalogo de
3
Produtos
Contm
nome:Text
1
1 especificao()
adicionarVenda(s:Venda)
descrio:Text
preo:Quantidade
1..* upc:UPC
1
Filiais de
Procura-em
1
Venda
data
hora
estaCompleta:boolean
Posto
6
Comercial
1
entrarItem()
VendaFim()
efetuarPagato()
Registra 1
ItensdeVenda
Contm
1
registrarItem()
efetuarPagato()
tornarCompleta()
total()
*
Registros-completos
descreve
1..* qtidade:Integer
subtotal():Quantidade
1
Pago por
1
Pagato
quantia