Sunteți pe pagina 1din 39

Diagrama de Classes

Prof Cassiana Fagundes da Silva



Material adaptado dos slides do Prof. Luiz Antonio M. Pereira
Diagrama de Classes - Motivao
Durante as nossas conversas com o cliente a respeito do novo
sistema, relacionamos, alm dos requisitos:
As informaes que tratam de "coisas" ou conceitos com os quais
os colaboradores em uma organizao lidam no dia a dia;
Os relacionamentos que os conceitos mantm entre si;
Restries/regras diversas...
3
Diagrama de Classes - Motivao
Uma descrio textual no apropriada porque
Os conceitos tipicamente possuem muitos detalhes;
Os conceitos usualmente se relacionam de formas intrincadas e
obedecendo regras ou restries complexas.

Diagramas de classes so bons para essas descries.
4
Diagrama de Classes - Conceitos
5
Diagrama de Classes - Conceitos
uma viso esttica do sistema.

Descreve relaes atemporais entre elementos do domnio.

Compe-se de classes, relacionamentos entre elas, restries, etc.

6
Diagrama de Classes - Conceitos
Tambm podem modelar o domnio sob trs perspectivas:
Conceitual.
Especificao.
Implementao.

Cada perspectiva representa o domnio com graus diferentes de
abstrao
7
Diagrama de Classes - Conceitos
Na perspectiva conceitual queremos:
Representar abstraes;
Independncia de implementaes;
Representar informaes do mini-mundo;
Facilidade de comunicao.
8
Diagrama de Classes - Conceitos
Na medida em que se caminha em direo implementao ...

... dotamos nosso modelo de mais detalhes (perspectiva de
especificao). Ento
Representamos as navegabilidades;
Definimos os tipos e visibilidades dos atributos.
...
9
Diagrama de Classes - Conceitos
Antes de iniciarmos a implementao devemos ter todos os detalhes
definidos


Na perspectiva de implementao, onde representamos:
As operaes get/set;
As operaes/atributos protected e privatee demais detalhes
necessrios implementao na LP escolhida, etc.


10
Elementos do
Diagrama de Classes
Diagrama de Classes Classes
12
Diagrama de Classes Classes
Classes:
Cada classe deve ter um nome (centralizado, iniciando por
maiscula e em negrito) que a diferencie de outras classes
(substantivos ou expresses breves);
Retngulos compartimentados ou no, dependendo da
perspectiva;
Mais compartimentos podem ser criados para acomodao de
regras de negcios, restries, responsabilidades, etc.
13
Diagrama de Classes Atributos
14
Diagrama de Classes Atributos
Atributos:
Alinhados esquerda, no segundo compartimento (e se no
houver atributos?);
Sintaxe UML: visibilidade nome: tipo = valor_default
{propriedade}
Visibilidade = + (public), # (protected), - (private)
Visibilidade, tipos e valores default podem ser omitidos
(perspectiva!);

Multiplicidade (qdo. for o caso) entra depois do nome. Ex:
... +contato[0..1]:string ...
15
Diagrama de Classes Atributos
Propriedade: {changeable|addOnly|frozen};
changeable: no h restries p/ modificao do atributo;
addOnly: novos valores podem ser adicionados quando
multiplicidade > 1;
frozen: atributo no pode ser modificado aps iniciao do objeto
(const em C);
Default = changeable

16
Diagrama de Classes Operaes
Colocadas no terceiro compartimento, na perspectiva de
especificao em diante (diagramas conceituais de classes
usualmente no apresentam operaes)
17
Diagrama de Classes Operaes
Operaes:
So processos que a classe sabe realizar;
Alinhados esquerda, no terceiro compartimento (e se no
houver operaes?);
Sintaxe UML: visibilidade nome (lista_parmetros):
expresso_de_tipo_de_retorno {propriedade}
Visibilidade: (vide atributos);
Lista_de_parmetros: separados por ,, com a seguinte sintaxe:
{in|out|inout} nome : tipo = valor_default
Expresso_de_tipo_de_retorno: lista de tipos de retorno
separados por , (so permitidos vrios tipos de retorno);

18
Diagrama de Classes Associaes
19
Diagrama de Classes Associaes
Associaes:
Representam relaes entre ocorrncias de classes;
Quando a navegabilidade representada significa que os objetos
da classe origem tm a responsabilidade de determinar os objetos
da classe destino aos quais esto relacionados;
Navegabilidades so normalmente associadas a questes de
performance e facilidade de implementao;
So usualmente deixadas para a perspectiva de especificao.
20
Diagrama de Classes - Associaes
21
Diagrama de Classes - Associaes
Navegabilidades podem ser:
Uni-direcionais;
Bidirecionais;
Indeterminadas.

Notao:
Uni-direcional: uma seta;
Bidirecional: _ _ _ _ setas ... ou nenhuma seta (convenciona-se
para o projeto).

22
Diagrama de Classes - Associaes
23
Diagrama de Classes - Associaes
24
Diagrama de Classes - Associaes
25
Diagrama de Classes - Associaes
Semntica do * sozinho: 0 a

Possibilidades:
1..*
2..3
2..3, 5..7, 15..20
26
Diagrama de Classes - Associaes
27
Diagrama de Classes - Associaes
Pontas das associaes chamam-se papis;
Pontas podem ser rotuladas.
Quando rtulos existem estes do nomes aos papis. Quando no
existentes, os papis levam o nome das classes alvo.
28
Diagrama de Classes - Associaes
Pode haver auto-associao. Exemplos:
29
Diagrama de Classes - Generalizao
30
Diagrama de Classes - Generalizao
Generalizao:
Atributos e operaes comuns ficam na super-classe;
Diferenas vo para as sub-classes que herdam da super-classe
atributos e operaes comuns;
L-se um tipo de
31
Diagrama de Classes - Generalizao
32
Diagrama de Classes - Generalizao
33
Diagrama de Classes - Generalizao
34
Diagrama de Classes - Generalizao
Parties
Completo (complete): as especializaes geram TODAS as
instncias dos objetos (cobertura total).
Incompleto (incomplete): objetos podem ser instncias das
especializaes ou da generalizao (cobertura parcial).
Disjunto (disjoint): instncias so de um tipo OU (exclusivo) de
outro.
Sobreposto (overlapping): instncias podem ser de um tipo E de
outro (s).
35
Diagrama de Classes - Generalizao
Parties - Exemplos
36
Diagrama de Classes - Agregao
Agregao:
o relacionamento todo-parte;
Provida de quase nenhuma semntica (placebo de modelagem -
Rumbaugh);
L-se


Exemplos
37
Diagrama de Classes - Agregao
38
Diagrama de Classes - Agregao
39
Dvidas
40

S-ar putea să vă placă și