Você está na página 1de 46

Modelagem OO

com UML
Vtor E. Silva Souza
(vitorsouza@inf.ufes.br)
http://www.inf.ufes.br/
~

vitorsouza

Departamento de Informtica
Centro Tecnolgico
Universidade Federal do Esprito Santo
Modelos
- Manelra de pro[eLar, comunlcar, documenLar, eLc.
solues compuLaclonals,
- ulversos nlvels, por exemplo:
- CnLologlas (modelos generlcos, de domlnlo),
- 8equlslLos (foco em um problema),
- ro[eLo / arqulLeLura (foco em uma soluo).
- Lssenclals para o desenvolvlmenLo
de soware,
- Asslm como o desenvolvlmenLo,
Lambem seguem os paradlgmas
(esLruLurado, CC, eLc.).
Malo 2013 Modelagem ConcelLual com uML 2
unled Modellng Language
- adro de facLo" para especlcar, vlsuallzar,
documenLar e consLrulr arLefaLos de um slsLema
desenvolvldo sob o paradlgma CrlenLado a Cb[eLos,
- nasceu na 8auonal Soware, desde 1997 e um padro
da Cb[ecL ManagemenL Croup (CMC),
- 8econhecldo pela lSC em 2000,
- 1eve orlgem em Lrs ouLros meLodos:
- CM1 (8umbaugh eL al., 1994),
- MeLodo de 8ooch (8ooch, 1994),
- MeLodo CCSL (!acobson, 1992).
- verso aLual: 2.4.1 (2011).
Malo 2013 Modelagem ConcelLual com uML 3
ulagramas da uML
- de Casos de uso,
- de Classes,
- de Cb[eLos,
- de LsLruLura ComposLa,
- de Sequncla,
- de Comunlcao,
- de LsLados,
- de Auvldades,
- de ComponenLes,
- de lmplanLao,
- de acoLes,
- de lnLerface Ceral,
- de 1empo.
Malo 2013 Modelagem ConcelLual com uML 4
Modelagem unlcada?
- A noLao e unlcada: quase Lodo desenvolvedor de
soware conhece ao menos parLe da uML,
- A declso de qual arLefaLo (dlagrama) produzlr, porem,
depende do processo denldo para o pro[eLo,
- ro[eLos dlferenLes, necessldades dlferenLes.
- ode ser uullzada em dlferenLes processos de
desenvolvlmenLo orlenLados a ob[eLos, em Lodas as
eLapas do clclo de desenvolvlmenLo.
- Lxemplo: domlnlo, requlslLos, arqulLeLura, eLc.
Malo 2013 Modelagem ConcelLual com uML 3
Lxemplo: ulagrama de Casos de uso
- Modela as
funclonalldades do
slsLema,
- CapLura uplcas
lnLeraes usurlo -
slsLema,
- usurlos so aLores,
- ALores e casos de uso so
assoclados,
- Cada caso e descrlLo em
deLalhes separadamenLe.
Malo 2013 Modelagem ConcelLual com uML 6
Lxemplo: o ulagrama de Classes
Malo 2013 Modelagem ConcelLual com uML 7
Classe
Nome
Atributos
Operaes
Classe
Abstrata
Herana
Agregao
Associao (e
suas cardinalidades)
Classe
Associativa
Representa as classes relevantes (abstrao!) para
o domnio, problema ou soluo.
Lxemplo: ulagrama de LsLados
- 8epresenLa dlferenLes
esLados em que um
ob[eLo pode esLar,
- loco em uma classe de
ob[eLos especlca (no
exemplo, edldo),
- CapLura a dlnmlca de
um slsLema, com foco
numa classe.
Malo 2013 Modelagem ConcelLual com uML 8
Lxemplo: ulagrama de Sequncla
- 1ambem capLura a dlnmlca de um slsLema,
- orem, o foco e em uma funo especlca.
Malo 2013 Modelagem ConcelLual com uML 9
!"#$%&'$! $)*+*,-&
Modelagem ConcelLual com uML
Malo 2013 Modelagem ConcelLual com uML 10
Modelagem esLuca
- CenLrada no dlagrama de classes:
- ldenucao de classes,
- Lspeclcao de hlerarqulas de generallzao /
especlallzao,
- ldenucao de subslsLemas,
- ldenucao de assoclaes e aLrlbuLos.
Malo 2013 Modelagem ConcelLual com uML 11
Lembre-se: na orientao a objetos modelamos
classes, portanto este diagrama central!
Classes: nlvels de absLrao
- CnLologlas:
- Modelagem de concelLos de um domlnlo,
relaclonando-os com concelLos fundamenLals,
- Anllse (de requlslLos) de slsLemas:
- Modelagem de concelLos especlcos do problema
anallsado,
- ro[eLo (arqulLeLural) de slsLemas:
- Modelos de apllcao (servlos), lnLerface grca
com o usurlo, perslsLncla de dados, eLc.
- Modelos de domlnlo mals deLalhados.
Malo 2013 Modelagem ConcelLual com uML 12
8epresenLao de classes
Malo 2013 Modelagem ConcelLual com uML 13
Nome da Classe
<Lista de atributos>
<Lista de operaes>
Se estiver em itlico, a classe abstrata.
Sintaxe: <escopo> <nome> : <tipo> =
<valor default>
Escopo:
- privado
+ pblico
# protegido
Sintaxe: <escopo> <nome> (<parmetros>) :
<tipo>

<parmetros> = lista de pares <nome> :
<tipo>, separada por vrgula.

Representao
em UML
Dependendo do nvel de abstrao, alguns detalhes podem ser
omitidos (ex.: tipo e escopo na fase de anlise).
Perana (lnherlLance)
- uevem modelar relaes e-um-upo-de",
- Subclasses devem suporLar Loda a funclonalldade das
superclasses e posslvelmenLe mals,
- lunclonalldade comum a dlversas classes deve esLar o
mals alLo posslvel na hlerarqula,
- Classes absLraLas no podem herdar de classes
concreLas.
Malo 2013 Modelagem ConcelLual com uML 14
G
e
n
e
r
a
l
i
z
a

o

E
s
p
e
c
i
a
l
i
z
a

o

Separao em subslsLemas / mdulos
- ro[eLos grandes podem conLer cenLenas de classes e
esLruLuras dlversas,
- ulvlso das classes em pacoLes:
- Coleo de classes que colaboram enLre sl,
- Con[unLo coeso de responsabllldades,
Calxa preLa.
- vanLagens:
- laclllLa o enLendlmenLo para lelLores,
- Auxllla na organlzao de grupos de Lrabalho,
- Crganlza a documenLao,
- Lm suma, faclllLa a manuLeno.
Malo 2013 Modelagem ConcelLual com uML 13
acoLes (packages)
- odem ser usados para organlzar dlversos upos de
elemenLos de modelos, lncluslve dlagramas lnLelros,
- MulLo uullzados para organlzar classes em mdulos, da
mesma forma que ser felLo em !ava/C++,
- L posslvel represenLar relao de dependncla enLre
pacoLes:
Malo 2013 Modelagem ConcelLual com uML 16
Assoclaes (assoclauons)
- 8elaclonamenLo enLre classes e represenLado por
assoclaes, agregaes e composles,
- Assoclaes podem lndlcar cardlnalldade (cardlnallLy):
Malo 2013 Modelagem ConcelLual com uML 17
Um e somente um.
Objetos da ClasseA podem se
relacionar com no mnimo zero e no
mximo trs objetos da ClasseB.
Nenhum, um, ou vrios.
apels (roles)
- lndlcam o papel que a classe desempenha na
assoclao (so usados subsLanuvos),
- L opclonal, usado quando melhora o enLendlmenLo do
modelo,
- SlnLaxe: <escopo> <nome>.
Malo 2013 Modelagem ConcelLual com uML 18
Classes assoclauvas (assoclauon class)
- uullzadas quando a assoclao possul aLrlbuLos,
- Comuns em relaes n-para-n.
Malo 2013 Modelagem ConcelLual com uML 19
8elaclonamenLos recurslvos
- erfelLamenLe legals,
- CeralmenLe pedem denlo de papels.
Malo 2013 Modelagem ConcelLual com uML 20
Assoclaes n-rlas
- Assoclaes enLre Lrs ou mals classes,
- LxLremamenLe raras, mulLas vezes as ferramenLas CASL
nem do suporLe,
- odem ser subsuLuldas por uma nova classe e n
assoclaes.
Malo 2013 Modelagem ConcelLual com uML 21
Agregao e composlo
- ! esLudadas anLerlormenLe...
- Adlclonam um losango a slnLaxe, na exLremldade da
classe que represenLa o Lodo:
Malo 2013 Modelagem ConcelLual com uML 22
ALrlbuLos (aurlbuLes)
- ALrlbuLos so lnformaes de esLado (proprledades)
para o qual cada ob[eLo em uma classe Lem seu valor,
- MulLo slmllares as assoclaes:
- Como aLrlbuLos Lm um upo, podemos conslderar
que so assoclaes com um upo,
- ara upos prlmluvos denlmos aLrlbuLos, do
conLrrlo modelamos uma assoclao,
- Lm uluma lnsLncla, assoclaes e aLrlbuLos so
lmplemenLados da mesma forma,
- ALrlbuLos e assoclaes denem uma classe.
Malo 2013 Modelagem ConcelLual com uML 23
Lspeclcao de aLrlbuLos
- Lscolha um nome com slgnlcado,
- Slga um padro de nomenclaLura,
- lnclua-o na modelagem de classes:
Malo 2013 Modelagem ConcelLual com uML 24
ALrlbuLos e hlerarqulas de classe
- ALeno a hlerarqulas de classes:
- ALrlbuLos generlcos cam mals aclma na hlerarqula,
- or ouLro lado, se ele no se apllca a algumas
subclasses, deve ser Lrazldo para balxo, somenLe
para as classes aproprladas.
- 8evlso da hlerarqula:
- uescoberLa de aLrlbuLos nos leva a um melhor
enLendlmenLo, o que posslvelmenLe lmpllcar
revlso de hlerarqulas.
Malo 2013 Modelagem ConcelLual com uML 23
Lxemplo
Arquivo
path
nome
InfoNaoDigital
localizacao
Gerencia
dtInicio
dtFim
Essa classe de associao guarda as
relaes de gerncia entre um
funcionrio e uma rea de um Job. Se
dtFim nulo, o funcionrio o gerente
atual daquela rea de Job. S pode
haver um gerente atual por rea de Job.
Essa classe de associao guarda as relaes de designao entre um funcionrio
e uma rea de um Job. ehAceito indica que o funcionri o aceitou trabalhar naquela
rea. Se dtFim nulo, o funcionrio ainda est designado quel a rea do Job. Caso
contrrio, regi stra o perodo em que o funcionrio trabal hou naquel a rea de job.
Designacao
dtEnvio
dtRecebi mento
dtInicio
dtFim
texto
ehAceito
motivoRejeicao
obterTexto()
aceitar()
rejeitar()
atribuirDtInicio()
atribuirDtRecebi mento()
Area
nome
AreaJob
prazo
status
criar()
atribuirGerente()
obterNovasDesignacoes()
0..n 1 0..n 1
Funci onario
(f rom ControleInterno)
0..n
0..n
0..n
+Gerente
0..n
0..n
0..n
0..n
+Designado
0..n
0..n
0..n
0..n
+Funo
0..n
InformacaoAreaJob
dtInsercao
descricao
0..n
1
0..n
1
1
0..n
1
0..n
Malo 2013 Modelagem ConcelLual com uML 26
Modelo de domnio
Anlise de requisitos

Sistema de gerncia de
jobs em uma agncia
publicitria.
Lxemplo
Malo 2013 Modelagem ConcelLual com uML 27
Modelo de domnio
Projeto arquitetural

Sistema de gerncia de
jobs em uma agncia
publicitria.
Lxemplo
Malo 2013 Modelagem ConcelLual com uML 28
JanCadastrarFuncionario
JanCadastrar
(f rom UtilitarioInterf aceGraf ica)
javax.swing.JOptionPane
(f rom UtilitarioInterf aceGraf ica)
Modelos de interface com o
usurio e de controle

Projeto arquitetural do mesmo
sistema anterior.
Lxemplo
DP_ControleJob
GD_ControleJob
GT_ControleJob
IU_ControleJob
UtilitarioPessoa
(from Utilitario)
UtilitarioInterface
Grafica
(from Utilitario)
GT_ControleArea
(from ControleArea)
GT_Comunicacao
(from Comunicacao)
UtilitarioGerencia
Dados
(from Utilitario)
DP_ControleInterno
(from ControleInterno)
DP_ControleArea
(from ControleArea)
Malo 2013 Modelagem ConcelLual com uML 29
Diagrama de pacotes.

Projeto arquitetural do mesmo
sistema anterior.
!"#$%&'$! #,./!,-&
Modelagem ConcelLual com uML
Malo 2013 Modelagem ConcelLual com uML 30
ComporLamenLo dlnmlco
- Cs dlagramas de classes represenLam apenas
elemenLos esLucos, dados,
- L preclso, alnda, represenLar o comporLamenLo da
apllcao em funo do Lempo e de evenLos
especlcos,
- Modelar o comporLamenLo:
- lndlca como o slsLema lr responder a evenLos ou
esumulos exLernos,
- Auxllla o processo de descoberLa das operaes das
classes do slsLema.
Malo 2013 Modelagem ConcelLual com uML 31
Modelos da uML
- ulagramas de LsLados:
- uescrevem os esLados posslvels pelos quals um
parucular ob[eLo pode passar e suas Lransles,
esumulos e auvldades,
- loco em uma classe especlca.
- ulagramas de lnLerao:
- uescrevem como grupos de ob[eLos colaboram enLre
sl em um cerLo comporLamenLo,
- Lnvolve vrlas classes, foco em um comporLamenLo
(funclonalldade) especlco.
Malo 2013 Modelagem ConcelLual com uML 32
ulagrama de Mqulna de LsLados
- Slmllar ao ulagrama de 1ranslo de LsLados (u1L), do
paradlgma LsLruLurado,
- ConsLruldo para uma unlca classe,
- MosLra o comporLamenLo dos ob[eLos desLa classe ao
longo do Lempo:
- LsLados posslvels,
- LvenLos que alLeram esLado,
- CaracLerlsucas de cada esLado,
- LLc.
Malo 2013 Modelagem ConcelLual com uML 33
noLao
Malo 2013 Modelagem ConcelLual com uML 34
Estado Inicial
Estado Final
Transio
Estado
LsLados
- nome: deve descrever claramenLe o esLado,
- Auvldades:
- ue enLrada: ocorrem ao enLrarmos no esLado,
- ue salda: ocorrem ao salrmos do esLado,
- Convenclonal: ocorrem enquanLo o ob[eLo esuver
naquele esLado.
Malo 2013 Modelagem ConcelLual com uML 33
LsLados lnlclal e nal
- Cs esLados llgados ao esLado lnlclal so aqueles nos
quals o ob[eLo pode esLar logo quando for consLruldo,
- Se houver mals de um, deve-se especlcar condles
de enLrada em cada esLado,
- Cs esLados llgados a um esLado nal so aqueles dos
quals o ob[eLo no mals salr,
- no e obrlgaLrlo Ler e pode Ler mals de um,
- um esLado llgado a um esLado nal no pode Ler
Lransles para ouLros esLados.
Malo 2013 Modelagem ConcelLual com uML 36
1ransles
- lndlcam a posslbllldade de lr de um esLado a ouLro,
- LvenLo: evenLo exLerno que mouvou a Lranslo,
- Condlo de guarda: condlo necessrla para
efeLuar a Lranslo (alem do evenLo),
- Ao: ao reallzada duranLe a Lranslo.
Malo 2013 Modelagem ConcelLual com uML 37
Ao x auvldade
- Ao x auvldade convenclonal:
- uma ao ocorre duranLe a Lranslo (ela e aLmlca),
- uma auvldade ocorre enquanLo o ob[eLo permanece
no esLado (quando ela acabar, ele muda de esLado),
- Ao x auvldades de enLrada/salda:
- Caso s ha[a uma Lranslo de enLrada/salda, no h
dlferena na pruca.
Malo 2013 Modelagem ConcelLual com uML 38
Lxemplos
Malo 2013 Modelagem ConcelLual com uML 39
Ao ser criado, o objeto da classe em questo
encontra-se no estado E-1.
Se o objeto estiver no estado E-1 e
ocorrer o evento E, se a condio C =
true, ocorre a ao A e o objeto passa
para o estado E-2.
Enquanto estiver no estado E-1, o objeto
realiza a atividade A. Ao terminar a atividade
A, automaticamente ele muda para o estado
E-2.
Lxemplo
Malo 2013 Modelagem ConcelLual com uML 40
ulagramas de lnLerao
- A[udam a compreender e capLurar o uxo global de
conLrole,
- Modelam um con[unLo de ob[eLos e as mensagens que
Lrocam,
- loco em uma funclonalldade especlca (caso de uso),
- uols upos de dlagrama (duas vlses):
- ulagrama de Sequncla (Lemporal): foco no Lempo e
no conLrole,
- ulagrama de Colaborao (esLruLural): nfase na
organlzao dos ob[eLos.
Malo 2013 Modelagem ConcelLual com uML 41
ulagrama de sequncla - noLao
Malo 2013 Modelagem ConcelLual com uML 42
F
L
U
X
O
Retorno
Linha de vida do objeto
Marcador de iterao
Escopo
Classe
Objeto
Lxemplo
Malo 2013 Modelagem ConcelLual com uML 43
referncia a um objeto
Lxemplo
Malo 2013 Modelagem ConcelLual com uML 44
ulagrama de colaborao - exemplo
Malo 2013 Modelagem ConcelLual com uML 43
01234456789:5;9<;6=9>?4
Malo 2013 Modelagem ConcelLual com uML 46

Você também pode gostar