Você está na página 1de 95

  

 



! "$#&%'")(




*,+.-/"$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

Quanto mais prximo estiver o espao de solues do espao de problemas


mais fcil ser o desenvolvimento.
> compreenso ,

> confiabilidade,

> facilidade de manuteno

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

 

 
   
     
 
 

       ! "$#  % & ' ()% *,+-."/ & 01$2436587


' ."9#513;:=<>?  A@ < >* B1<87C#
 D>EF/G95> IHJ"$EK/L>9E  01$2MNH  H/3OHGP B *>B8HJQBSR
NHT$ U*,+-NHQVU:=<> 95L8C2WL>$ X
YZ [ HJ"\UDP ]A$E^B12`_Uab95c3OdC"QBf">e B8g  hhHi"9243;$5GIHS_1% *,+-j3kL8NH
lUZ m < 5f"$e g \H  no3OH,$ BpX  :U<>  H3OH,$ B G$ :=<>
q B8r.9E
sUZut jEv3w*1<xNH h no3OH,$ BpX :=<9B243;yBz\H 5B{g  q <5>">3OC59B13OH
,B13OH|"IU }X q B>">362~3;yBzIH  <8H,}VfD12;B,B q E B{H  n}% V
G$ DP  EK\HIDPNHBpVpC29EB 5>">3B B q B12~#9B8HQVC," Z

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

 
  >   

    
     
 

L13;95GX D9EF."93OH B JH 9E EFQB243OrQB>B   <8H/< B Ev3O L>


H B*h$E :U<> 92B    $
Q"9<,B>yB Z [
CX "SB12;"9<2;B$E x$B12 

< B "IU D>E^B

"9<2WBpX D9EF."93OH B H 9 EEFSB1243rQBzyB   8< H/< B E3 5B8g  L>


H B*h$E:=<z 92;B   
P."9<BzyB Z [ U
X B$E  B{r.$59B9E B>NH

$ < B$EF:U<13kL8 Z

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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

 
   

 D
       
 

 T 5>."QIH,HC1B Ev3O}VCIH  +)B>


G$ DP  EK\HIDPNHBpX HJI7C<5>NH
365G9E q Bz"QhX   5>Q".IHH01B Ev3O <8H B9E  95<8H

B q B 2~#9B{HSX
E SB1243rQBz $ l #{yEFB8H

xC2$E B1 5>">3 B

D>B871By 95

D>EFQ">3OH B HJ9E

D2BSB q E B8H  n}% X 365>uH i'

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON


     
    


  
 

Ref#

Funo

R1.9

Mostra descrio
e preo de item
registrado

 D
   

Categoria Atributo

evidente

Detalhes e Categoria
Restries

tempo de 5 segundos necessrio


resposta

R 2.4

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

  
        
 
% 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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON



 
     
 

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

Dependncias entre Artefatos

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   



 



      

 

  

{B H  H,}X   <y B 59B$EvE^Bc3kL9B :=<z 1\HJ"9EF/Lz B


HJQ:U<$$ 5z"93B  $5Lz$5xNH  <y BxE (B8795G 
z,9E 58y?
<8H B5z  H/3OHGP B DzB$E^B "\U D12/,B$E|<y D9E ".\H,H, Z noB8g 
IHG0C Ev3B8H  <8H,NHT <y H3OHGG$ B Z


 
 

" 
#$%&
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., U V8F
WJG
X&8F,YV
: E;;Z,-.
6L "
\[]:;';
^_'*)+,&
` 1)a,Y
ab8F

1Z)H! 

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

B{HNH   H,NH DP$ HJ9E)X

t 2Wx  WL>$2`X IHJ"$E3 ">e B8g  *9EK/L>


[ H,95>U3;}X 1\HJ"9Ev3^">e B{g  B126#>B>yB D>B8H,H, B D>B{H,H NH

L>95xhH

E 3w5z"93wD>B12 X "I= <y  *>B8H,B5G 3w DPE ,B5G Z [


Z
"IU D>E^B$E3kG$58H

nC."$<15> B E3}X "\E EK  B3OH E^B$E^B 95G Z [ U


X "SBzyB8HjE^B$E

< D9E =<x

% Dh">3OU5>B2`X DP U< 5B8g  B>"IU5S,."Q9E Z[


UXD>B{7B 95x

"IU "QB$E cB8g 

[ H,H 95>">3B2`X243kLEF  B12~#>\H  GQ"958C2MN7C3B  3w D12R

 95Bo">e B{g }VS."93OHIg \H  D9E j+- 5B{g  IHGcB8g  D9EFIH 95G\H Z

@ QB2`XIHJ"$E3 "$e g \H $ G$E NHT D9E j+-/x Z

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

  




W.,  )+Q 
('*)+,-./0,)321
 FEP)+QR  ;I
  ,9 a
  ('*)+,-.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:)  &

  , 98:) b 

` ,-.
1

" !?8  A
1
" .
a
L MQV8--
  
O8F
Z&8-
:9 
; 8!'*)+,-.I8!D-%E#

8&1)32,8
W )H., U b8
W
L N 8&1)32, X%EP)+QRG8-9 # )H.,

 
  " 

I ) ` , I1)+ "; Z% Z


)H,

1)32,b,-RK#;- ) a9 ;L


LLLL

F !
,Q=b 

)+Q.,I

!L

< F., b)5V


$&8F

)H!
b9 )8:)+
:S
)H.,  ` !9 aML
< %=8>)@!?8  A
K XWF?8


)H.,   A
;$F ,- 9 
,
LLLLL

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

       T

  


 
   


ZS 1
8- 
O " 

'*)+Q=b 1-.
aX%   \)5,)8:) ;
8--
  

 E,,-.%UR2:., -
1

WY  F ) `
E1!;'
$%  ;Z

;L >)598:)5:'5/a &8 ;9  >)+


\

,8)+
W:'
WL $ ;';
b%  !98:) ;'

;6?8!
1A % 
 )+Q.,I $,' 8:)+
W9 a 

 
 

" 
#$%&

 $
W
1  )H.
6

< %=8>)@!?8  A
B
4 )5
6

 
@, , 8:)  &
  , 98:) b 

" ,?8
,A %  " .
a$%

  , 98:)  



` ,-.
1

 A
4

% 
1Q  U 

)+Q.,I

 1)8- 

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON


        

4"

+ "$47

+  7 7


   



X *zB8HJSBz P BSEFIH

3;95c3MdU"QB$E BSEFIH
DzB$E^B "SBzyB BSE)V 3;95c3MdU"QB$E NH D9E ".\H,H,NH :=<> $2

36513;">3B U< D>B9E c3">3wD>B


! + -
0 7


+   77

X*>B8HJQB> P /Lz$5xNH

3;95c3MdU"QB$E L>$5SNH 
zG$E 5{hH B8NH :=<>B13OH  H3OH,$ B

1/L> EFIH\D$U5z$E

EK$2;B>">3OC59B$E NHTL>95xhHTB BxEF\H  "QB8H,NHT <{HNH

 D9E 0".IHH, IHJ"$EFL>  3651">3 B{ d  V <y B


HJQ:U<$$ 5z"93BL>95xhHQV8Bo"Pe g IH C< jE^B5{H Bo"Pe g IHi5>.".\H,HCB Ev3B{H
D>B9E^B D9E =<8r>36E U< "I= D12B9E B12M7U< B "IC3OH B D>B$EFB B
E 71B513OrQBo">e B{g  C< BxyE Z
 "QB8H,  <{H   <y B IH "9Ev3^">e B8
g   <y D>E "QIH,H}V
 3w5z"$2~<13  <13kNH D>B8H,H,NH Z  B8g  <j36243Or SB RJ2M D>B9E^B \HJ"9EFL>$E
<y D>B8H,H, C< Bc3kL13;yB>1 1 <y D9E 0".IHH, Z [
Z a  D9Ev3w 36E
EF."93w*P   <y D>B8H,H,  "\U D9E^B$E 3kG$58H Z


"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

     

   

 

`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

Diagram de caso de Uso

fluxo de
caso de uso

informao
ator

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

;9

  
 

  
 p


@ $D9EFIH 95,Bf">e B8g   "IC5>"Q>3kNH 58 U ~513O  


D1E U*12$ B
L>  NH E^B9E)X "IU5z"Q>3kNHQV B8H,H,0">3Bf"$e g \H $5S EF "\CS5 R
".93kxhH  BjEv3w*1<xNHT "\C5>".93kxNH Z
Conceito

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

Modelo Conceitual - Exemplo

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

  
  

[  <y B 3; > 3 BpVU"\03OH B C< U*,+-   <5> EFQB2 Z


 P* U  01$2M "IU5z"Q>3k <9B12}L> H/<yDh9EF\Hc3w B9E 
5i<  9E    "\C5>".>3MxNH Z


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


@ 92;B0C Ev3OhHQV EF."93w*PNHQVT," 5 B8g  1 /L>$ B D>B$EF.".$E


85   92O "\C5>".>3Mj<9B12 B  958NH U: <> HJ- +)By $ E3ML>B>NH
  C<jE^B{H q C5GIH Z


"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON



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
-

' -E#$F& '


 a/W ,X
W
aX.

R;- 6,?8
,A %& X% , ` a/ : E;;Z,-.

;6?8! A
\  % 
; &(8-,)321#/],)5'
,.

X&8:)51)+,&I 1b8F
)+  & %Q.
  /W `


8
P)+   ,

% &8:)H[P8-6?8  A

$


)5-A

$&8)51)+,-.%&)H! %/     E,)5$


,

-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,-.
 ` ,9 a-
 ` !-
,& `
a
0/B98) ,-.%%/ ` ,9 aa/ $
;Y!

X
8 % 
1=!
M ,
 -   ,-.

 ,   ` !9 ,9 1

;

X
- 
0/ $% ! ` ;9 

X%EWJ U\
W'   )8- & $F.
a
 Z, 8- 
a>) #/M8-;98F!';Z,-.




8&-; '
,E,
6 $
M &
, V8-& ; '
,E1
0/ :X.%U S8-- '
1E,

8
W-R-.
,T' FE#1)+%/ C[]:;6?8--&(8F
-R-.
I J;Y:;' D

 ! ` )@F?8
1& '*)5;D:b 1b8! & )H.

I :
 1)+%/ *' ) ` $
,& I; : ;'; 
,$FE#9 1
B/ I; : ;'# \$,:$

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Cn  8L "S 5B{g   IHJ"$EK/L>


"\U y<  i5 y<  9 E 
C< G
8 58  <5z EFQB 2`V D9E PL>BL>926 95G  H 9 ESB y< 
"IU5z"Q>3k


Voo

Voo

Aeroporto

ou ??

destino

nome

 I" C5>"Q>3k DP 51B8g  IHB9E 365>"IE EF}V DP


ByDN$59B{H 5B8g  JH 9E < j362
+

Posto
Comercial
1
Registra
*
Venda

Loja
Registra

1
*

Venda

Conceitos Similares com Diferentes Nomes



C5>".93kxhH  j3wDP \HIDh."93MdC"SBo">e B{g $1\HJ"9Ev3^">e B{g  


"IC3OH B8HQX B>U3;">3OU5SB RJ2ONH D>B$EFB EF.=<8r>36E EF.=<5>0B1 5>">3 B  365SR
q E Bf">e B8g  =<yD1243;"SBzyB U< :=<9B5z 365 q E Bf">e B8g    Dh9EFU3;yB
HJ B "IC3OH B IHJ"$Ev3k,B q E EF$ $L13;yB


"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

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

Descrito por Descrio de


Voo
1
*
nmero

Descreve
vos para
*

Aeroporto
1

nome

Exemplo- Conceitos do Tipo Especificao/ Descrio

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

O       


on B8g  EF92Bz"93OC59B 95xhH 95 EK "IU5z"Q>3kNHu:U<> 365>U3;"QBy


B2M7C<y B DP9E NH B  365,9EFIH,H B15G "IU5z
yB{g  Z
& <2Wc3 D2~3;">3;yB>hX /df5> :=<9B5SB{H 3658H B 5>">3B8H  <y
c3 D$ t D$01P H 9EAB8H,H,"93B>B8H B < B 3658H B 5>">3B  <y
c3 D$ 
 Ev3k1$ E3 D>B$EFB \HJ"IU2~#9B yB8H B{H,H">3Bf"$e 1
g IHQX
(  "IC5#>."93w $5x  <y EF$2;Bz"93OC59By 95 D9EF.">3H B
HJ$ED9EK\HJ9E L9B>h (,EFI7UEFB 5>Q".IHH3;yBz 1 H By*h9E ?
 HB8g  3w DPE ,B5S,IH D>B$E^B "\U D9EF.$5z$E "\C5>".>3MxNH
3w D$yE B15,IHTh U 653
    $2~#8EA3;95j3MdC"SB9E "\C5>".93kxNHu:=<> B8H,H,0">3Bf"$e g \H Z
& <13kB{H1$2;B8H DP$ xE 59B$E   92M "IC5>"Q>3k <>B2P"\C5SR
q <{H Z [ L13k, B{H,H">3Bf"$e 1g IH EF.=<5>yB15G\H  9Ev3kL B Lz93OH Z

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

BjE^BL I HT1 <y B 243H,B  B8H,H,"93Bo"Pe g IH

  )8&b       ` )5-A


 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

"   ;I '*)5;D:  R;  B!?8  A



 $,'&
 >)+
^ 
I -.,6?8! A
 $,'-
 >)+
\I; -!6?8! 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
T 1 a    E,)5$
 )8 F
 
 I^R;  6?8 -A
X,'98:)+
:9 a  ;I
- R R;- 6!?8  A


 E#Z,-.
 ` ,9 a
 
 X
&2#)5Z
O P8:) #9   8:) a9 
" %Q

"


 
1  V 

W ` )  A
 8:)  , $-

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

direo da seta nao tem significado


apenas indica direo para leitura
Posto

Registra

Comercial 1

nome

Venda

multiplicidade
*

1..*

1..40

zero ou mais (muitas)

uma ou mais

5
T
3,5,8

uma a quarenta

exatamente 5

exatamente 3 ou 5 ou 8

Notao para associaes

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

 D
 

 BjEv3w*1<x   <y L9B2ME 2)N 703;"\ D>B$E^B < =*G+)x Z


 Ev3k1$ E3 D>B$EFB \HJ"IU2~#9B  BjEv3w*1<xNH
( Bz:=<>92;IH|:=<> H/<87$EKP C< 3w D1243;"QBy
5>Q".IHH3;yBz
 2$ *>E^B5f"Qe B Z
 L>$ HJ9E!H3  D12IH C<uL9B12MyEK\H D1<E hH (D9Ev3w 3kc3kL8NHc?
 5B{g  EFPD>EF\HJ95G <y BS Ev3w*1<S "IU  "9#9BSL> \HxR
jE^B87>3wEFB
 EF$D9EFIHJ$5,B$E BjEv3w*1<xNH D9E3  3kj3kL8NH "\U  5B8g 
D9Ev3w 3kj3kL8NH HJhX


  A
8F
!
,Q
,&
ZS 1 % 
;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


I 1) a9 

a- 

: E;;Z,-.

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Venda
Atributos
data
hora inicio: Hora

Notao para Atributos

no deve ser usado como chave estrangeira


no um atributo simples

Registradora
nome
posto atual
Registradora
nome

Posto
Comercial
1 nmero

Usa
1
(1)

Voo

destino um conceito complexo

destino

Voo

Vos para
1

Aeroporto
1

(2)

Exemplos de Usos de Atributos

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Especificao
de Produto

UPC

Especificao
de Produto
upc : UPC

Estoque

1 Endereo

Estoque
endereo: Endereo
Exemplo: Uso de Atributos Puros

possvel mas nao

Pagamento

robusto o suficiente

quantia: Numero

Pagamento

Tem quantia
Est em
Quantidade
Unidade
*
1 quantia: Numero *
1

Pagamento

quantidade um valor puro


OK mostrar como atributo

quantia: Qtidade

Para modelar quantidades - valores de dados puros

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

    



  
     
 !


O3 HG,B$Eu"IU5z"Q>3kNH Q" B5zU3;yBxNH R 243H,B   \" C5>".>3MxNH 


3;95c3MdU"QBf">e B8g   58U  IH 59B8H q ^E B8HJIH :U><  1\ HJ"9EF/Lz NH
EKQ:=<3H3kxhH

\HJ95#9B$E   92M "IC5>"Q>3k <>B2


t C3">3OC59B$E B{H B8H,H,"93Bo"Pe g IH 5>.".\H,HCB Ev3B{H DzB$E^B EF92;BSR

">3OC59By $5SNH :=<> HB8g  5>."QIH,HC1B Ev3ONH D9EK\HJ9E L9B$E

t C3">3OC59B$EiNH BS E3 *<NH 5>Q".IHH01B Ev3OhH D>B9E^B D9EF.95>"$#z$E

365 q E Bo"Pe g IH HU*9EK hH EF.:=<13OH3MxNH

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

  O   >  

3 H,B xNH h H G$E  N H :=<z EKQ:=<z$EF$ 1B 2O7C<y B 


8R
D1243;"SBo">e B{g  DzB$E^B  $ 2~#8E^B9E B \" U <513;"SBo">e B{g   EFQ U<8r>36E  B 2 R
95,95>U3;NH
 
!#"%$'&($*),+.-(/10

 

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]

  



6-:0;2<$>=@2(? &4A 6BC"%$D2E-:050FG6-87!
2(HI=J-</1+.-K$L-3&HI=,ME&($N7B!O&P2:!#"%$'&
7!O&U+$'&/90;&2(? &4A
"(&4WB&B!X-</1+YZ&\[=,0+&
gh_i7<&B/4+a=J&8&"%$L-S0F-(/4+5&16&Z"-<HT
2(HI=J-</1+.-K"<&($'&\C"(&4WB&B!X-</1+Y
]j]j]k]

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

      


;;

"I= 

      

IHJ"$EK/L>9E  :=<>  H/3OHGP B q B{r HJP HJ D9EK\"9<yD>B$E

 

[  y< 
Ev3; 58
L>$5SNH
"\E EKP

")( - 4(

(


! +
+

+1 0  ")( 

7

! "

% + 0


+ 

yB> ".$5B Ev3O (G3658H B1 5>"93B U< "SB 365#{ Dh$EK"\E R


 <5> EFQB2 ?  <y "QB8H,  <8H, Z & NHjE^B NH
:=<> hH BSEFIH 
zG$Ev58NH 79E^By V B EF1P :=<>
 /Lz$5xNHT95jEF H3OHGG$ B{H

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

! "

 9 5 EFB>yB


B Zu[ 2  36513;">3 B

$Q"9<,B>yB

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

sistema como uma


caixa preta
Ator

Comprar Itens - Verso 1

: 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

Diagrama de Sequncia de Sistemas

Tipo X
Operao1 ()

Operaes do tipo

Operao2 ()

Notao para Operaes

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   



 
  

    
O


     
   
 

m B8r.9E <y U 3B{7UEFBy B DzB$E^B <y B HJ.:=<$9 5>">3 B j6D3;"SB 


L>$5SNH DzB$E^B <y "SB{H  <8H,}X
YZ 1\HJ95#> <y B 2~365#>B EFPD>EF\HJ95,B5>  H/3OHGP B "I= 
< B "QB13
NB D>FE /,B
lUZ ;3 95c3MdU:=<z Q" B>B B xE =: <> U 36EFB 95G UDh$EFB 
H3OH,$ B Z IH 95#> y<  B ~2 365#>B B DzB$E c36E  "SBzyB BSE Z
sUZ hTG
z L>$5SNH j6D3;"INH ( "QB8H,  <8H, IH,95>U3;y?
3;95c3MdU:=<z /L>95xNH :=<> HB8g  79E^B>hhH DPE"QB>yB <y
hhHTBxEF\H Z a`2~<8H EF R hH 58 U3B{7UEFBy B Z
}Z % hD ">3OU5>B26 95GV 63 5>"$2~<9B  G
zx h "QB8H,  <8H, B8
2;Bz  U3B87CE^B B Z
"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

: Sistema
Caixa

Para todos os itens, o Caixa registra


UPC e quantidade

entrar item(UPC, qtidade)

Para completar a entrada de um item, o


Caixa indica que a venda est completa

venda fim()

O Caixa conta ao Cliente o total e


o Cliente faz o pagamento com o Caixa

efetuar pagamento(quantia)

O Caixa registra a quantia recebida

Diagrama de Sequncias do Sistema com Texto de Caso de Uso

Comprar Itens - Verso 1

: Sistema

Caixa
entrar item(UPC, qtidade)

venda fim()

efetuar pagamento(quantia)

Limite do sistema
Diagrama de Sequncias Mostrando o Limite do Sistema

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

    J  

C5jE^BxNH IH "9EFL>$   q 93kx yB8H UDh9E^Bo"Pe g IH 


H3OHGG$ B  B,+ <>yBy B /d 5136E HJ9< "IU D$yE B 95x Z
[  1Q"92;B$E^BSj3kL8}V DPEF:U<>  365,9EFIH,H  \HpB 58 :=<>
B>"IC5GQ".$ESB  5B{g  "I=  3OH,H, HJ$ESB EKSB12~3OrQBz Z noB8g 

D9EFIH,HNH P G9E NH  D9EI   DAN H "IC5>U3^"Pe g IH Z


Z 
W
 F !
  ; Y1)5'*) a %&
4 )5
6


 
@, , 8:)  &

,  &

28F% F
,A %C
  H aa
     
9 )@,?8
,A %&

1  Q

9 )@,?8
,A %&


 


ZC a
!!6!?8  A
 : 
ZF X
1
$% 
W  Y1)5'*) 9 %UG ,$! 8;>) a 

ZC 
 )5
 8F
98F)H.
B/M8'   V C

 $/
)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 , ` ) 9 1
1
:
@
aJ 1
 )+Q,I 
-R$
,U )+Q.,I  
 ;!
, )@,?8
,A % 
WYXS
FQ=9 1

 )+Q!IG;-.% # 2:&


8 6!?8  A

aG
W,6?8  A

%Q 9 
O 
\ )+Q,I

1 

 !  b)5
a
!!6!?8  A
BL

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON


Z 
W
F !
  ;Y1)5'*) a %&


4 5) 
6
 
@, , 8:)  &

  &
,
28F% F
,A %C


  H aa
     
9 )@,?8
,A %&

1  Q
9 )@,?8
,A %&

  
     
  

,-R()H!  ;!8 ;Y, :- ) #9 ; )5-.)5$



$%E )+Q J
 ; )H.,  ` ,9 ab
9 )8:)+
  '
 ` ,9 #Z
,Q J
$WF?8
\b F=8!>)@!?8  A

)H.,
 )+Q!I

;6?8!
1A %& L / ;L !P/ ;L 
8- 
, 1  
,& 
 ,-
98F% 
O ;IOY:- S 1b a 
1
     ;A "


@
# ` ; '*) a
Z
1QR_Z E 1V! $

 `    S8
W;D-&8F, ` ;'
a O




Lb b8F
   -
` a/ ;IO
`   ,9 a Q)5 Q ; 8:) 
@
) 8>) 9 a
Lb   8F
WJ  
` a/T
`   ,9 a
@
P) - 
8) 9 a 8F



1Q.
8
WZ,$8:) ;'  ;I  
M8:) 6?8 -A

@
)a%Q=Y!,' &8) a
!L  ., a '*)5;D:b  ( !9 a @

) 8!7) 9 
Q)5 Q ; 98:) C8!>) 9 a 
 L ., a '*)5;D  ( , a @

) - 
8) 9 
8F
W 
WJ   
1 



 ) B!?8  A
FQ=;Y,' &8:) #
L N -R>)5Y -.
., a '*)5;D  (!9 aML ;- ) a9  $%8F,Y! 
` ;'
#  Z
M )H[P8-6?8 -A
K   -R>)5Y &

L  ., a '*)5;D:G  (!9 a
@
P)   
M8:)  
8F
 ;I   &8:) 
[P8-6?8 -A
  X
-
0/ Y:    

` ;'
a a     -
1  ) 6?8 -A

FQ=;Y,' &8:) #

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   



L

) 1,- )H[8-   W

,6,?8
,A %
  , 98)   

 )+Q !I

    J

 )+Q,I

LOG8-9 aG
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-.

,9 1
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=9 1
,
WY  F.
1T
Z

M ,'
8F
98F)H :;'

LG 1%=8!$ `  
,   8
W9 P)@,?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
% Q 9 

 )+Q,I
  A
6,?8
,A % G.
WI /P 1 ` , FQ=
:-   9 
BL


LG 1%=8!$ ` O
     8F
9 )@,?8
,A %

     8F
9 )@,?8
,A %   A


.%Q 9 
,&L

LK' ,  
8) 6,?8
,A %&L

>-.
1

8!7)  )5 Q ;


98:) -

)5
aX ;-.%


)5!
#X ;-.

-

$&8:)+ ;

;A

 !

%Q=Y!,' &8 ,   




"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Caso de Uso

entrar item

Comprar Itens

(upc,
qtidade)

Ps-condies
Sistema

Sequncias
Tpicas de

comea ....

Caso de Uso

1. Se uma nova .....

entrar item

venda fim()

Eventos
1. Este caso

Operao entrar item

efetuar
pagamento
(quantia)

Diagrama
de Sequncias
do Sistema

venda fim()

Operao venda fim

efetuar pagamento

Ps-condies

Operaes
do Sistema

1. ....

Contratos

Contratos e Outros Artefatos

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

    O
   


Artefato da Anlise

 


Questes Respondidas

Casos de Uso

Quais os processos do domnio?

Modelo Conceitual

Qauis os conceitos, termos?

Diagrama de Sequencias
do Sistema

Quais os eventos do sistema e


as operaes?

Contratos

O que as operaes do sistema


fazem?

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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

    

9



  

I HJ"$EK/L>$ 1B 2O7C<y  ,B2~#>  3w D2;$ $5,Bf">e B8g  


"QB8H,  <8H, VU$ G $E  NH  GQ"958C2Mh703B <c362~3OrQBzyB Z
Caso de Uso

Compra Itens (verso 1 )

Atores:

Cliente, Caixa

Propsito

Registrar uma venda e seu pagamento

Resumo:

Um Cliente chega para compra. O


Caixa registra os itens de compra e
recebe o pagamento. Ao final o Cliente
vai embora

Tipo:
Referncias

pincipal e real
Funes: R1.1, R1.3, R2.1

Object Store
UPC

Qtidade

Preo

Desconto

Total
EntrarItem

VendaFim

EfetuarPaga/o

Sequncia Tpica de Eventos


Ao dos Atores
.......

Resposta
.......

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON



      

     

`a 26<{HGjE^B "IU  U*,+-NH 63 5G$E^B{7P L13B  9 58H B87958H


 "IU  EFQB243OrQBy ,B$EK q B8H Z t H DAN HxR-"IC5>U3^"Pe g IH  NH "\C5SR
jE^BxNH HB8g  "9<y D9Ev3;yB{H Z
Diagrama de Colaborao

mensagem1()

Instncia
Classe A

1:mensagem2()
2:mensagem3()

Instncia
Classe B

Diagrama de Sequncia

Instncia

Instncia

Classe A

Classe B

mensagem1()
mensagem2()
mensagem3()

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   


     

 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 

D>BS)G$Ev58H :=<> HB8g  U36EF E3r.IH 


D>Ev365>"96D3ONH B HJ9EF$ ByD2~3;"QB>NH

E 3 B9E <y U3B87CE^B B >D B$E^B|"SBzyB=DN$E^Bo">e B{g   H 3HGP B_


DzB$E^B "SBzyB  H,7  UhD $EFBf">e B8g   H/3OHGP BV q 8B r.9E<y
C3 B{7CE^By B "I= $2;B HJ$z5  B  H,7 36513;"93B12

nC  U3B{7UEFBy B dC"SB9E "IU D12


9}V C3ML3BSR  $ U3BSR

7CE^B B{H  958EF\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

t D2~3;:=<z D>B>=E 1g IH D>B9E^B q B{r.$E <y

P* U D9E j+- 


DzB$E^B \H,By*h92Q".9E NH   x0hhH  UDh$EFBf"$e 1g IH  "QB>yB
U*,+- Z
"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

entraritem(upc,qtidade)
entrar item
(upc,
qtidade)

Operao entrar item


Ps-condies

Posto
Comercial

1. Se uma nova .....


venda fim()
efetuar
pagamento
(quantia)

efetuarpagamento(quantia)
Operao venda fim
Ps-condies

Posto
Comercial

1. ....

Diagrama
de Sequncias
do Sistema

Contratos

Diagrama de
Colaborao

Diagramas de Colaborao e Outros Artefatos

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Notao para o 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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Ilustrando Iteraes em Diagramas de Colaborao

msg1()
:PostoComercial

iterao
1*:li:=proximoItem():ItensdeVenda

:Venda

clusula de iterao

msg1()

:PostoComercial 1*:[i:=1..10] li:=proximoItem():ItensdeVenda

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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Diagrama de Colaborao - Notaes/Exemplos

criando uma instncia


parmetro opcional

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

vrias mensagens pelo mesmo link

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Ilustrando Sequenciamento de Mensagens

msg externa (no numerada)


primeira
msg1()
:A

segunda
1:msg2()

:B

terceira
1.1:msg3()
2.1:msg5()

2:msg4()

:C

quarta

quinta

2.2:msg6()
sexta
:D

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Ilustrando Mensagens Condicionais


msg1()
:PostoComercial

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()

1b:[not teste1] msg4()

:D

1b.1:msg5()

:C

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Ilustrando Mensagens para MultiObjetos


msg p/ um elemento

msg1()

1:create()
4:imprima()

:Venda

2:adicionaEleto(sl)
3:s:=size():int

sl:ItensdeVenda

:ItensdeVenda

msgs para o multi-objeto


multi-objeto

Ilustrando Mensagens para Classes


msg1()
:Venda

1:d1:=today():Date

Data

msg p/ uma classe

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

  



*,+

7 0
 (

"$#6"

( 
 +

C5 EFBx C< U*9Ev3O71Bf">e B8g  

<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 "9<y D9EF$ B{H EFIHIDPC58H By*36243;yB>IH Z

X "IC5J$  1\HJ"9Ev3^"Pe g IH  <y 


  
<y B    :=<> DP HJ$E <c3w243OrQB>B $ U3 q 9EF$5S,IH
"IU5S,
zxhH Z
 U3MdC"SB
3i9 3B8H  #>9<E MHj3;"QB8H 
!3OH,95G\H D>B$E^B
BjEv3w*1<136E EFIHIDPC58H By*36243;yB>IH B =*G+)xhH Z
4 7 +

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 

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   

 
      
 

X t  Ev3w*1<>B y<  B EF\HIDPC58H B*362~3;yBz B <y B


"92B{H,H  :=<> DPNHH/<13 B 365 q  E Bf">e B8g  5>.".\H,HCB Ev3B D>B$E^B
"9<y D>E  R 2;B Z
47 #)+
( X
<>$ L>9Ev3B HJ$E EFIH\D$U5{HCSB L>92 DPE
"QB2"$<12B9Eo xP,B2 R 7$E^B12N1 <y B L>$5zyB   
    
! 7/#


 (' 7

       

          

 R
Q -</<6&
),+-<! 6- Q <- /<6&
 0:"-S2<= 2E& 2<? &1A Z6 V $LR6i74+.

 
R  Ii i

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

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

Parte do Modelo Conceitual


Venda
data
hora
Contm
1..*
Itens de
Venda
qtidade

t:=total()

Especificao
* Descrito por 1 do Produto
descrio
preo
UPC

1*:[for each] sli:=next()


:Venda

Venda
data
hora
total()

2:st:=subtotal()

:ItensdeVenda

sli:ItensdeVenda
novos mtodos
2.1:p:=preo()
:Especificao
do Produto

Para Calcular o Total de Uma Venda

Itens de
Venda
qtidade
subtotal()

Especificao
do Produto
descrio
preo
UPC
preo()

"! $#&%(')'+*,.-0/1'324-657,8# '  29;:-<5>=(/4'324-%3?A@  20,.-B:DCFGIE ;-H JKMLON

   

 
 J  . 


    X t  Ev3w*1<>B B "$2;B{HHJ  B EF\HIDPC58H B*362~3;yBz

 "9Ev3B$E <y B 3658H B 5>">3B yB "$2;B{HHJ t HJX


L

L

 E$%E;G
Y  F 
,U  "




!L

8F
- ! 

"

 I  ,: )5 Q ;


98:)   1 "

  G
WY  F.
1U  "

1  1
 ) )5
@
a IB!?8  A

&8FF   >) 


F !&8:) '*)+Q= :8!>)  " 

  


8>) 6!?8  A

 "

 


>< $ L>9Ev3B JH $E FE IH\D$U5{HCSB L>92 DPE


"9Ev3B$E B 3658H B1 5>"93B yB "92;B8H,HJ a;GP   $5zyB    
 
 
 

 X

           

       

criarItemdeVenda(qtidade)
:Venda
1:create(qtidade)
:ItensdeVenda

Venda
data
hora
criarItem
deVenda()
total()
novo mtodo

Para Criar uma Linha de Item de Venda

 !#"%$&$(')+*-,.$0/1*324)5 $  /6879*:;2=<%,1$0/1*>"0?@  /-)+*A7BDEGC 8F *H:IKJML

   
      
!" # %$&
')(+*-, ./*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

Q 6 R TAV56]\+* VA^C*_254ZV3` a< 8 Q * 'b` <cY[< V 698AY[<a2d<+8AYf<+e 8A^A6gV Y3V


^+4hVBiBW< <a` R <+4hVk^Aj Vl * V 1* 0 mQ R V;BnF < V54 Q V ^o*p<CBDV;l * 'b` <cY_6ZY3V
Y[< R <+4ZVA^A6?*_8AV3` <a8 Q * <a8 QSR < V B R <CBo2a*_8BqV[TX69476hY[VAY[<CBY5< 03` V
^+4hVBiBW<-F
rsut wv px yzN|{ V R V < L 6 Q V R} 0A< V ^+4ZV;BiB)< B)<~V N
LbiSS!)oC)CAi bzS -iHb/nb
LqgmDJ-n9mS5;qbD ]bo
LqgmDSw9Si)oS i/-iHb/nb
LqgmDiS

onc _-5DD m+M wA D X oAnc


[u

n ahHg+o? ACgHgHD  "Wd

efetuaPagato()
1:create()

:PostoComercial

p:Pagato

2:adicionaPagato()
:Venda

efetuaPagato()
:PostoComercial

1:efetuaPagato()

:Venda

1.1:create()

:Pagato

Ilustrando Alta Coeso e Baixo Acoplamento

n ahHg+o? ACgHgHD  "Wd

 ; # M A# 

t Hv GJMK I y L t N P mQ R 6UT50AV R <CBo2a*_8BqV[TX69476hY[VAY[<CB A2 V R V 476ZY3V R


^C*w` ` <a8;BWV:5<+8;B [Y < <
A<a8 Q *B YX* B6?B Q <"` V V 0[` V a^ 4ZV;BiB)<
} 0A< N
LSn9S ]S - m
LSn9S o$Em A b
LSn9S/ ESi)>b>)D>bi)DDq n9C
n > WSCD C
LSn9S i 9-)DC&n7uq DS)Sim D ]S
mD iiDb  9-)DC5DibD b
rsut !v px zy N " A0 <a` [Y <
A< R 6hV B)< R R <CBo2a*_8B$V%#
A<+4 2"* R
476ZY3V R ^C*w` 30 ` <
A<a8 Q * YX* DB 6?B Q <a` V'&
M n+kW"X5+ ( p *),+ou [ k D.-oX
-S _+w/1( 0"J_+ [DnDzA M 20"Dku X D 43
[.5&z5 c( -XA 1+q SwDq769[8 S 5 uD
" 0A<a` Y[<
A< R 6hV B)< R * ^C*18 QSR *14hVYX* R 2AV R V <
A<+8 Q *B YX*
BD6?B Q <a` V Q V56?B|^C*_` * <a8 QmR V R:ZQ <a` < ; <+8AY3V=<` &

n ahHg+o? ACgHgHD  "Wd

  ;


#


 


)B < * ` <CBC` * ^o*18 SQ R *14ZVAYX* R A2 V R V Q * Yd*dBJ*B<


A<a8 Q *B
YX* B6?B Q <"` V ;8 * ` <oCB ` * ^ ;V Bi* Y[< 0;iB *


.4ZVBbB)<CB YX* Q 6U2"* ~V[8<a4ZV V V[2[254E< Q V V[25476h^ V ^aj *Xl <oB V


YX*p^+03` <+8 Q * 8XV;l * Y[<
< R 6hV[` R < V[476 V R3Q V R < VB V;BiBi* ^A6hVAY3VBV
<
A<a8 Q *B YX* B6?B Q <"` V 4hVB V32<a8+VB R <c^c<"Td<a` < Y[<a4E<C:5V3`
*B|<
A<+8 Q *B V* ^C*18 QmR *_4ZVYX* R






` <
A<a8 Q * YX* DB 6?B Q <a` V < # 5: < R VYX* "2 * R 03` V Q * R


` o^ *18 QSR *14ZVAYX* R 85V;l * Y5<


A< Q < R ` 50 6 Q *B>V mQ R 6UT50 Q *B<
8A<a` ` V58 Q < R 698 * R ` V ^Aj V;l * Bi*_T R < * dY *w` #58 6?* YX* 2 R *_T54E<a` V


>` ^o*18 QSR *14ZVAYX* R 8XV;l * Y[<


A< R <V5476 V R ` 056 Q VB Q V R <
VB V V32d<+8+V;B Y[<+4E<o: V # )4ZV;B








>` T"*_` 2 R *S~< Q * Y[<


< Y[V R 5
6ZY3V ;V *B _* Ti~< Q *B V
V QSR 6UT505698AYd* )4@A<CB R <oBC2"*18;BWV[TX6946ZY3VY[<CB V V Q < # ` <CoB ` * )B < +< 4Z<CB
* R <a` B)< R <CB 698+V[8X6H` VAYd*dB 8;* ` 0[8AYd* R < V[4




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


n ahHg+o? ACgHgHD  "Wd

entrarItem(UPC,qtidade)

???

posto comercial, loja, caixa ....

Posto Comercial
......

Sistema
fimVenda()
entrarItem()
efetuarPagto()

fimVenda()
entrarItem()
efetuarPagto()

operaes encontradas
durante a anlise do
comportamento do
sistema

alocao das operaes


do sistema durante projeto
usando o padro Controle

Exemplificando o Uso do Padro Controle

n ahHg+o? ACgHgHD  "Wd

Object Store
UPC

Qtidade

Preo

Desconto

Total

Seleciona

EntrarIten

VendaFim

EfetuarPaga/o

cone
coneEnterItem()

Camada de
Apresentao
(Java Applet)

Camada do
Domnio

:PostoApplet

msg de um evento do sistema

1:enterItem(upc,qtidade)

:Posto
1.1:criaLinhaItem(upc,qtidade)
Comercial

:Venda

controle

Acoplando a Camada de Apresentao do Domnio

n ahHg+o? ACgHgHD  "Wd

  ;

#


 


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*


n ahHg+o? ACgHgHD  "Wd

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

Usando os Padres Comando e Controlador

n ahHg+o? ACgHgHD  "Wd


  
{ V R V V c< R 03`

$


 

 a %$


6hV;: R V3` V Y[< : 8 Q < R Vk^Aj Vl * N




 

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


<CB)^o*14@+V V ^+4ZV;BiB)< } 0< ^o*18 QSR *14ZV R V # * BD6EB Q <"` V V V[25476Z^V R


2VAY R Vl * ^C1* 8 SQ R *14Z<


2 V R V ^ VAY[V *_2d< R V ^Aj V;l * < \f6?B Q < 0[`


*_2d< R Vk^Aj Vl *
AV56MB)< R [0 ` V ` a< 8BqV:X<"`

^o*18 QSR V Q * V 03` V




B)<a2AV R V ^Aj V;l * YX* ` *pY[<a4 * Y[<


56?BDV;l * N
85V;l * < #
R <oBC2"*18;BWV[TX6946ZY3VY[< YX*B*wT~< Q *dBYd* Yd*w` #8 # * BW< ^C*w` 0
8X6h^ V R <"` ^C*w` * 0;B0 V # R 6?* '6E:18;* R V RR <CBo2a*_8BqV[TX69476hY[VAY[<CB
Y5< V32 R <oB)<+8 Q V ^Aj V;l * YX*B Y3VYX*B 8;* Y_6?BC254ZV V ` V;B Q *pY3V
698 * R ` Vk^Aj Vl * Yd* YX*_` #98X6E* Y[< *_Ti~< Q *B Q <"` } 0A< B)< R
` *B QmR VY3V"F




2 V R V 03` _* Ti~< Q * <a8=


X6gV R 03` V ` Bi: V 1* 0 QmR * < #
8< ^co< BiB$V # R 6E* X
6EBD6UTX69476ZY3VAY[< N A@ V3TX69476ZY3VAY[< Y[< 0[` _* Ti~< Q *

< R 1* 0 V c<
R R < < R <+e 8A^+6hV V _* 0 QmR * *_Ti~< Q *




n ahHg+o? ACgHgHD  "Wd

Diagrama de Colaborao para EntrarItem


Controlador
Criador
entrarItem(upc,qtidade)

: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

Diagrama de Colaborao para VendaFim


Controlador

VendaFim()

Especialista

:PostoComercial

1:tornarCompleta()

:Venda

n ahHg+o? ACgHgHD  "Wd

Diagrama de Colaborao para Calcular o Total de Venda


t:=total()

1*:[for each] sli:=next()


:Venda
2:st:=subtotal()

:ItensdeVenda

Especialista
s1:ItensdeVenda
2.1:p:=preo()
:Especificao
do Produto

Diagrama de Colaborao para Efetuar Pagamento


efetuaPagato()
:PostoComercial

1:efetuaPagato()

:Venda

1.1:create()
Baixo Acoplamento
Alta Coeso
:Pagato

n ahHg+o? ACgHgHD  "Wd

Diagrama de Colaborao para Registrar Venda

efetuaPagato()
:PostoComercial

1:efetuaPagato()

s:Venda

2:adicionarVenda(s)
Especialista

1.1:create()

:Estoque
:Pagato
2.1:adicionar(s)
Venda Completa:Venda

Diagrama de Colaborao para Efetuar Balano


b:=balance()

s:Venda

1:q:=quantia()

:Pagato

2:t:=total()

n ahHg+o? ACgHgHD  "Wd




$d S  


$   %$   $

   


. R h6 V B)< 03` ^VBb* Y[< 0;Bi* B Q V R Q 2




+< 0 1Y 6gV: R V3` V Y[< ^C*_4ZV[T"* R V ^Aj V;l * Y[<


< WB < R ^ R 6gVYX*
2"* R 0[# 4 Q 6U` * V R <"2 R <oB)<+8 Q V58AYX* * } 0A< VA^C*18 Q <c^c< } 0+V58AYX* *
_* Ti~< Q * 69856Z^A6h[V 4MYd* 2 R *_T54E<a` V < # ^ R 6hVYX*


" 0A<a` Y[<


A< R 6hV BW< R * *_Ti~< Q * 6U8X6h^A6hV[4pYd* BD6?B Q <a` V'&
^+4hVBiBW< R "< 2 R <oB)<+8 Q V[8AYX* Q *pY3V V 698 * R ` V ^Aj V;l * 4 *# : 6Z^V
YX* B6?B Q <"` V


^+4ZV;BiB)< R <a2 R <CB)<a8 Q V[8YX* V * R :5V5856 V ^Aj V;l *






0BqV R{ VAY R *Xl <CB P 4 Q V ./*p<oBDV;l * < % VX6\A* P ^C*w2X4hV[` <+8 Q *


n ahHg+o? ACgHgHD  "Wd

create()

1:create()
2:p:=getPosto():PostoComercial

:PostApplet

estoque:
Estoque

public class PostApplet extends Applet


public void init()
{

p=estoque.getPosto

estoque o objeto inicial do domnio


e o construtor Store cria os outros objetos.

Criao dos Objetos Iniciais do Domnio

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

n ahHg+o? ACgHgHD  "Wd

 & 


 




/
  %$X 

   


` V *_2d< R V ^Aj V;l * Y[< B Q V R Q >2 2"*pY[< BW< RN




0[` V ` <+8;BWV;:X<"`  ^ R < V Q < 2AV R V * *_Ti~< Q * 6U8X6h^A6hV[4




B)< * *wT~< Q * 96 856Z^+6hV[4 < # * ^C*_8 QmR *14ZVAYd* R V 03` V ` <a8;BWV:5<a`


 R 058 2AV R V 3
0 ` *_Ti~< Q * 69856Z^+6hV[4/< # <+8=
56hVAY3V


< 03` V 698 Q < R VA^c< Yd* ;0 B0 V # R 6?* <oB Q 6


A< R <+8=
;*14
56ZY3V <+4hV
< # R <oBC2"*18;B$V=#
<a42"* R 6U8X6h^A6hV R V ^ R 6hV ^Aj V;l * YX* *wT~< Q * 69856Z^+6hV54f<
*10 QSR *B V;BiBi*p^+6hVAYd*dB


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


n ahHg+o? ACgHgHD  "Wd

Conectando a Camada de Apresentao a do Domnio


Object Store
UPC

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

n ahHg+o? ACgHgHD  "Wd

 $f / 

=JV3TX69476ZY3VAY5<Y[< 03` *wT~< Q * P


< R *10 V c< R R < < R <ae 8^+6hV
V 03` *_0 QmR * *_Ti~< Q *  { V R V P +< 8=
56hV R 03` V ` Bi: 2AV R V
 V 
Y[<
< B)< R
56?B #
A<a4pV P




2a* R V QmR 6UT50 Q * N




< # 03` V QmR 6UT50 Q * Y[< P




a2 * R 2AV R V[e ` < QSR * N


Y5< P


< # 03` 2V R V[e ` < QmR * Y[< 0[` ` < # Q *pYX*




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

n ahHg+o? ACgHgHD  "Wd

Exemplos de Visibilidade
entrarItem(upc,qtidade)

Por parmetro

3:criarItemVenda(espec,qtidade)
1:[novavenda] create()
:PostoComercial
2:espec:=especificacao(upc)
cp:Ctalogo
de Produtos

Parmetro para Atributo

: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;
...
}

PostoComercial .... entrarItem(upc,qtididade)


{
...
espec=cp.especificacao(upc);
...
}

Venda ... criarItemVenda(espec,qtidade)


{
...
sl=new ItensdeVenda(espec,qtidade)
...
}

construtor ...ItensdeVenda(espec,qtidade)
{
...
prod=espec;
...
}

n ahHg+o? ACgHgHD  "Wd

 

  

 #  $d$X%$

p* Y[<+4?* ./*_8^ <A6 Q 0+V54 MB Q <a8Y_6ZYX* AV ^ R <C# B)^+6U` * [Y <


` < # Q *pYX*B V Q 6U2"*B YX*B V SQ R 6UT50 Q *B V
5?6 BD6UTX69476hY[VAY[< <
8+V%
A<o:5V[TX6946ZY3VY[< V 698A^+4056 V
5?6 BDV;l * Y[< 2 R *S~< Q * V[4 <a# ` Y3V

56?BDV;l * Y5< YX*_` #856?*




./*_` * V c< R 0[` Y_6hV;: R V3` V Y[< ^a4ZV;BiB)<CB N


 

Z6 Y[<+8 Q 6 <_^ V R Q *pY3VB VB ^a4ZV;BiB)<CB A2 V R Q 6Z^+6U2AV58 Q <oB Y3V


Bi*140 ^Aj V;l * V QmR V=
<C# BYd*dB|Y_6hV;: R V3` V;B Y[< C^ *14ZV3T"* R Vk^Aj Vl *


Y5<oB)<+8[@+V R * Y_6hV;: R V[` V




^C*_2X6hV R *B V QmR 6UT50 Q *B




VY_6Z^+6?*18+V R *dB ` < # Q *pYX*BYX*B|Y_6hV;: R V[` VB|Y[< 698 Q < R Vk^Aj Vl *

n ahHg+o? ACgHgHD  "Wd

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




VY_6Z^+6?*18+V R V;B VBiBb*p^A6hV ^aj *5l <CB 8A< ^c<CBbB V # R 6hV;B V


56?B6UTX69476ZY3VAY5<


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

X6EBD6UTX69476ZY3VAY[< 2"* R V QmR 6HTX0 Q *




VY_6Z^+6?*18+V R )B < Q VB "2 *18 Q 96 49@AVAY3VB 698AY_6Z^V58AYX*


X6EBD6UTX69476ZY3VAY[<
} 0A< 8XVl * < # 2"* R V QSR 6UT50 Q *


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




B Q 6U2"*B 2"*pY[<a` B)< R ` *B QSR VAYX*B _* 2d^A6E*18+V549` +< 8 Q <


^+4ZV;BiB)<oB 2"*pY[<a` B)< R Y[< Q V549@AVAY3VB V* ` Vc# \f6U` * d2 <+8
BWV58AYX* 8AV 6H` 254E<a` <+8 Q V ^Aj V;l *




n ahHg+o? ACgHgHD  "Wd

Exemplo - Diagrama de Classes


Posto
Comercial 1

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

Modelo Conceitual apenas apresenta abstraes.


No apresenta componentes de software

n ahHg+o? ACgHgHD  "Wd

Mtodos so derivados do diagrama de colaborao


Posto
Comercial

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

tipo de retorno para mtodos

Estoque
endereo:Endereo

tipo de atributos

nome:Text
adicionarVenda(s:Venda)
tipo de parmetros

n ahHg+o? ACgHgHD  "Wd

Exemplo - Visibilidades que no so por Atributo

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

para visibilidade por parmetro, global,


ou localmente declarada

n ahHg+o? ACgHgHD  "Wd

 J

  

  



 
$ /  


" 0+V[8YX* 2AV R Q 6h^A6?*18+V R <a`




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`

VBbBi*p^A6gVk^"j *Xl <CB

VAY_6Z^A6E*18+VX6?B

Y[<

V B03T ^+4ZV;BiB)< )B < R V # ` V[8X6H2X0[4ZVAY3V *10 0;BWVAY3V Y[< ` V[8<+6 R V


Y16 < R <a8 Q <Y3V B032 < R ^+4hVBiBW<*10 Y3VBJ*10 QSR V;B B03T ^+4hVBiBW<CB




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




n ahHg+o? ACgHgHD  "Wd

 J

  

  


 
$ /  


" 0+V[8YX* ^ R 6hV R 03` V




032d< R b.4ZVBbB)<


VB a2 * Q <+8A^+6hVX6EBB03T ^a4ZVBbB)<CB R <"2 R <oB)<+8 Q V[`


AV R 6hV ^aj *Xl <oB Y[<
0[` o^ *18A^c<A6 Q * B6U` 694hV R


VB B03T ^+4hVBiBW<CB BqV Q 6?B V c<"`




 



V R <C: R V b 6EB V




Q *pY3V;B VBBC0[T ^+4ZV;BiB)<oB|2"*BiB0A<a` 0[` V QmR 6UT50 Q * ^C*w` 03`


} 0A< 2"*pY[< R V # B)< R <S\p2 R <oBiBi* 8AV BC0[2d< R +^ 4ZV;BiB)<


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


n ahHg+o? ACgHgHD  "Wd

Notao para Generalizao/Especializao - UML

Pagamento

A vista

A crdito

Cheque

ou

Pagamento

A vista

A crdito

Cheque

n ahHg+o? ACgHgHD  "Wd

Justificativa para Sub-classes de Pagamento


super-classe
existe atributo comum

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

n ahHg+o? ACgHgHD  "Wd




k $d$  



$X$  [





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

 < R V[49` <a8 Q < Bi*_` <+8 Q < 03` V

698;B Q V5e 8A^A6gV [Y < 30 `


^C*_8^ <A6 Q * VBiBb*p^A6hV Q 6
* <S\36EB Q < a< 8 QmR < *B Yd*16?B _* Ti~< Q *B
2AV R Q Z6 ^A6U2AV[8 Q <CB|Y3V VBbBi*p^A6gVk^Aj Vl *


n ahHg+o? ACgHgHD  "Wd

Conceito Associativo - Exemplo


Loja

Autorizao
endereo
1..* nome
telefone

Autoriza pagatos -via

nome
endereo

Contrato de
Servio
id-transao

Companhia

Uma pessoa pode ser


empregado em vrias
companhias

Emprega

Um conceito associativo
atributos relacionados
associao
Tempo de vida dependente
da associao

Pessoa

Emprego
salrio

n ahHg+o? ACgHgHD  "Wd



 


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



t x  t  pK I y L t N V 2 V R Q < d2 < R Q <+8A^c< V32d<+8+V;B V 03`


0[# 8X6h^C* ^C*_` 2"*B Q *
t x M y s  v
py_x St N V 2AV R Q < 2a* Y5< 2d< R Q <+8A^c< R V
` V56?B|Y[< 03` C^ *w` 2"*B Q *
./*_` * 6ZY[<+8 Q 6 <1^V RN
* Q <a` 2"* 5Y < 5
6ZY3V Y3V 2AV R Q < < # 476U` 6 Q VAYX* V;* Q <a` 2"* Y[<

X6hY[V YX* ^Cw* ` "2 *B 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 *




n ahHg+o? ACgHgHD  "Wd

Agregao/ Composio

Mo

Dedo
1

0..7

agregao de composio

Pacotes UML

Elemento UML
*

agregao de compartilhamento

n ahHg+o? ACgHgHD  "Wd

#  $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

cada membro T tmabm membro de um sub-tipo

n ahHg+o? ACgHgHD  "Wd




6
56?BDV;l * YX*
QSR <oe B^V[` VY3V;B N


    "   


6?B Q <a` V <"` .%V3` VAY[V;B

$a

{ * R <S\"<a` 254 * V

P 2 R <oB)<+8 Q Vk^Aj Vl * N ~V[8A<+4ZV;B V R <+4ZV Q * # R 6?*dB


P 25476Z^ V ^Aj V;l * ( *# : 6h^ V N
2AV:[V[` <+8 Q *B

R <o: 6?B QmR V R


A<+8AY3V;B V V50 Q * R 6 V R


 VYX*B
P R ` V c<+8+V[` <+8 Q * N % V[8^o* Y[<


{ *BiBD6HTd6U476 Q V R <+0;Bi*  2"*pY[< uB)< B)<"2AV R V ^ V3` VAY3V [Y <


P 25476Z^Vk^Aj Vl * ( *# : 6Z^V <a` 1Y 6 < R <a8 Q C< B ^o*_` 2"*18A<+8 Q <CBVB)< R <a`
R <+0;BWVAYX*B




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




6 < R <+8 Q <oB < } 50 6U2d<CB ' <CBC2d<c^+6hV[476?B Q VBnF Y[<CB)<a8%


;*14
< YX*
R VB|<a` Y_6 < R <+8 Q C< B ^ V[` VY3V;B


n ahHg+o? ACgHgHD  "Wd

  %$ 


$a

` 2AV^o* Q < < # 03` ^C*_8i~q058 Q * [Y < <+4Z<a` a< 8 Q *B XY *


` * Y5<a4 * Q V56?B ^o*_` * a^ 4ZV;BiB)<CB V ^VBi*dB Y5< 0 Bb*B V Y_h6 V;: R V[` V B
[Y < ^C*14ZV3T"* R Vk^Aj Vl * < *10 QSR *B 2VA^C* Q <CB




Notao para Pacotes em UML


Vendas

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

n ahHg+o? ACgHgHD  "Wd

  %$ 
#

 













Os pacotes so agrupados logicamente num diagrama


Conceitos do Domnio
Kernel

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

n ahHg+o? ACgHgHD  "Wd

  


   %$     "/  


   $""


` V V R } 056 Q < Q 0 R V ` 5V 6?B [Y < Q 5V 4@+VAY3V

56?BD6UTX6946ZY3VY[< +< 8 QmR < * B Y_6 R <+8 Q o< B 2AVAC^ * Q <CB




` *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

n ahHg+o? ACgHgHD  "Wd

 a %$   #


$a  .
  "%$


   



r y s y L t |t x  7t  s   yMK I y L t



t Mv t   y L t My s y t 

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



t vHGJKMI y L t N P %B ^+4ZV;BiB)<oB 3Y VV32 R <CB)<a8 Q Vk^Aj Vl * 8XVl * ` V58 Q <ae `


Y3VYX*B V V[2d<a8AV;B R < V[476 V3`  V V^o*_254ZV3` <+8 Q * ` #58 6U` * Y[<
*_Ti~< Q *B|YX* YX*_` #856?* ^C*_` ~V[8A+< 4ZV;B Y3V V32 R <oB)<+8 Q VkA^ j Vl *


{ < R ` 6 Q < ` 0[# 4 Q 6U254ZVB < 8;*'


+VB
56?Bo*Xl <CB A2 V R V V 3V 2 R <
B)<a8 Q Vk^Aj Vl * < Y[<oB)<+8=
;*14
56U` <+8 Q * B)<a2AV R VYX* Y3;V B ^V[` V3Y V;B V
V[0[` <+8 Q V[8AYX* ^C* <CBDV;l *


n ahHg+o? ACgHgHD  "Wd

Conectando a Camada de Apresentao a de Domnio


Object Store
UPC

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

melhor:Viso para Domnio


Separao OK

:Posto
Comercial

Acoplamento do Domnio
a camada Viso: pior

n ahHg+o? ACgHgHD  "Wd

 

   $ 

$a 

St < # 0[` V *p^C* RR <ae 8^+6hV BD6?:1856 <_^ [V 8 Q <

{ *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

  y t N < # V ^C*18AY_6^Aj V;l * Y[< 0[`

` *w` <+8 Q * V *10 Q <a` 2"* <+8 QSR < <


A<+8 Q *B
 y s y_x y

*wT~< Q * 8[03` Y3VYX*

  y t N R <"2 R <oB)<+8 Q V <


A<a8 Q *B V <oB Q 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



n ahHg+o? ACgHgHD  "Wd

Diagrama de Estados para Casos de Usos

entrarItem

Espera
Venda

Entrada
Itens
vendaFim

eventos externos

efetuaPagato

Espera
Pagato

estados

transies

  y
 


t K  St v y    px
  y t

^ V;Bi*B [Y < 0Bb*B


' V32[254E< Q B 698 ;V=
AV V
< Q ^-F V ^C*18 QmR *_4ZVXY * R <oB
<+8;B V < Q ^

s y1v 


V B6?B Q <"` ;V B V ~V[8A<+4ZV;B V V325476Z^Vk^Aj Vl *

P 52 25476h^ V Q 6?*18  * Y5<a4 B 698  ` 5V 44 Q V[4 V


V QSR V[8;BWVk^"j *Xl <CB V _Y 6?BC2"*BD6 Q 6
;*B N ` p* Y


n ahHg+o? ACgHgHD  "Wd




  /


 


#


>  


Exemplo - Atributos

Especificao
de Produto
ItensdeVenda

Descrito por

qtidade:Integer
*
subtotal():Quantidade

descrio:Text
preo:Quantidade
upc:UPC

public class ItensdeVenda


{ ...
public float subtotal();
private int qtidade;
atributo simples
private EspecificacaodeProduto espec;

atributo referncia

Diagramas de classes e diagramas de colaborao so utilizados


para gerar cdigo

n ahHg+o? ACgHgHD  "Wd

A classe Posto Comercial e o Mtodo entrarItens


Ctalogo de
1 Produtos

Looks-in

especificao()

Venda
1

data
hora
estaCompleta:boolean

Posto
Comercial
1

Registra 1
registrarItem()
efetuarPagato()
tornarCompleta()
total()

entrarItem()
VendaFim()
efetuarPagato()

public void entrarItem(int upc, int qtidade)


{
if (isNovaVenda())
{ venda = new Venda; }
EspecificacaodeProduto espec =
cp.espec(upc);
venda.registrarItem(espec,qtidade);

public class PostoComercial


{ public PostoComercial (CatalogodeProdutos cp);
public void VendaFim();
public void entrarItem(int upc, int qtidade);
public efetuaPagato(float cash);
private CatalogodeProdutos cp;
private Venda venda;

n ahHg+o? ACgHgHD  "Wd

Cdigo com Coleo de Classes - Visibilidade

Cuidar Navegabilidade e Visibilidade

Venda
data
hora
estaCompleta:boolean

ItensdeVenda
Contm
1

registrarItem()
efetuarPagato()
tornarCompleta()
total()

1..* qtidade:Integer

subtotal()

public class Venda


{
...
private Vector itens;

visibilidade para todos os itens

n ahHg+o? ACgHgHD  "Wd

Possvel Ordem de Implementao para as Classes

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

n ahHg+o? ACgHgHD  "Wd

Você também pode gostar