Você está na página 1de 38

MODELAGEM VISUAL DE OBJETOS COM

UML
DIAGRAMA DE CLASSES

lucelia.com@gmail.com

Externamente ao sistema, os atores visualizam


resultados de clculos, relatrios produzidos,
confirmaes de requisies solicitadas, etc.
Internamente, os objetos do sistema colaboram uns
com os outros para produzir os resultados
esperados pelos atores.
O Diagrama de Classes apresenta como as
classes
interagem
entre
si
e
qual
a
responsabilidade de cada classe na realizao das
operaes solicitadas pelos atores.

DEFINIES
Classe

um grupo de objetos, sendo que cada


objeto um exemplo de um determinado grupo.

Diagrama

de Classes uma representao da


estrutura e relaes das classes que servem de
modelo para os objetos.

AS CLASSES DO DIAGRAMA
POSSUEM:

Nome

Sempre deve
maiscula

ser

iniciado

com

letra

Atributos
Visibilidade ou nvel de encapsulamento
Nome
(deve ser iniciado com letra
minscula)
Tipo de dados

AS CLASSES DO DIAGRAMA
POSSUEM:

Operaes ou mtodos
Visibilidade ou nvel de encapsulamento
Nome (deve ser iniciado com letra minscula)
Lista de parmetros (se houver)
Tipo de retorno

Associaes entre si
Nome (opcional)
Multiplicidades
Navegabilidade (opcional)

EXEMPLO DIAGRAMA DE CLASSES

ATRIBUTOS
Visibilidade

ou nvel de encapsulamento

- private (privado)
# protected (protegido)
+ public (pblico)
(em branco) default (pacote)
Nome

Demonstram as caractersticas dos objetos

Tipo

de dados

So os mesmos tipos usados em Java: String,


boolean, int, float, double, Date, etc

OPERAES OU MTODOS

Visibilidade ou nvel de encapsulamento

Nome

O nome do mtodo deve expressar a ao que realiza, por


exemplo incluirAluno(). No deve possuir espaos e nem
comear com dgitos

Lista de parmetros

Os mesmos usados para os atributos

Dever vir entre parnteses e separados por vrgula.

Tipo de retorno

Informa que tipo de dado o mtodo dever retornar aps a


sua execuo.
Se o mtodo no retornar nada, dever ser usada a palavra
void no tipo de retorno.

ASSOCIAO ENTRE CLASSES


Para

representar o fato de que objetos podem


se relacionar uns com os outros, utiliza-se a
associao.

Representa

que duas classes possuem uma


ligao (link), significando por exemplo que elas
"conhecem uma a outra.

ASSOCIAO
Representada atravs de um segmento de reta ligando as classes cujos
objetos se relacionam.

Nome da Associao

Quando usado, dever ser escrito junto linha que representa a associao,
normalmente um verbo (no obrigatrio).

Multiplicidades

Cada associao em um diagrama de classes possui duas


multiplicidades, uma em cada extremo da linha de associao.
Navegabilidade ou direo de leitura

indica como a associao deve ser lida

OPES DE MULTIPLICIDADE
Nome

Simbologia

Apenas Um

1..1 (ou 1) (ou


em branco)

Zero ou Muitos

0..* (ou *)

Um ou Muitos

1..*

Zero ou Um

0..1

Intervalo Especfico

li..ls

EXEMPLO - NOME DE ASSOCIAO,


MULTIPLICIDADE, DIREO DE LEITURA E
PAPIS

CLASSE ASSOCIATIVA

uma classe que est ligada a uma associao, ao invs de estar


ligada a outras classes.

normalmente necessria quando duas ou mais classes esto


associadas, e necessrio manter informaes sobre esta
associao (histrico).

Emprego
salrio
dataContratao
Pessoa
nome
telefone
endereo

*
empregado

*
empregador

Empresa
razoSocial
endereo

AGREGAO

um caso especial de associao e, conseqentemente,


multiplicidades, nome da associao e papis, podem ser
usados normalmente.

Utilizada

para representar conexes que guardam uma


relao todo-parte entre si.

Em

uma agregao, um objeto est contido no outro, ao


contrrio de uma associao.

Onde

se puder usar uma agregao, uma associao


tambm poder ser utilizada.

AGREGAO
Caractersticas

particulares:
Agregaes so assimtricas: se
um objeto A parte de um objeto
B, B no pode ser parte de A.

Empresa

Todo

1..*
Departamento

Parte

NOTAO PARA UMA AGREGAO


Representada

atravs de uma linha conectando as


classes relacionadas, com um losango perto da classe
que representa o todo.
Exemplo:

ESPECIALIZAO/GENERALIZAO

um tipo de relacionamento similar associao de


mesmo nome em um Diagrama de Casos de Uso.

Seu

objetivo identificar classes-me, chamadas


gerais e classes-filhas, chamadas especializadas.

Significa

ser capaz de incorporar os atributos e


mtodos de uma outra classe previamente definida

EXEMPLO DE
ESPECIALIZAO/GENERALIZAO

DIAGRAMA DE CLASSES
Demonstra

sistema.

a estrutura esttica das classes de um

Na

fase de anlise, tendo em mos o diagrama de


casos de uso, podemos definir o diagrama de classes
do sistema.

modelo de classes evolui durante o desenvolvimento


do sistema.

medida que o sistema desenvolvido, o modelo de


classes pode ser incrementado com novos detalhes.

EXEMPLO - CONTROLE DE CURSOS


Desenvolva o Diagrama de Classes para um sistema de
cursos de informtica equivalente ao mdulo de matrcula de
acordo com os seguintes fatos:

Um curso pode ter muitas turmas, no entanto, uma turma se


relaciona exclusivamente com um nico curso.

Uma turma pode ter diversos alunos matriculados, no entanto


uma matrcula refere-se exclusivamente a uma determinada
turma. Cada turma tem um nmero mnimo de matrculas
para iniciar o curso.

Um aluno pode realizar muitas matrculas, mas cada


matrcula refere-se exclusivamente a uma turma especfica e
a um nico aluno.

EXEMPLO DE DIAGRAMA DE
CLASSES

CATEGORIZAO BCE

A categorizao propostas por Jacobson implica


que cada objeto especialista em realizar um dos
trs tipos de tarefas, a saber:
Comunicar-se com os atores (fronteira)
Manter as informaes (entidade)
Coordenar a realizao de um caso de uso (controle)

EXEMPLO DIAGRAMA DE CLASSES


USANDO BCE

EXEMPLO DIAGRAMA DE CLASSES


USANDO BCE

EXERCCIOS
1.

Luclia controla em Excel uma planilha com a sua lista de


compras mensal. Ela cadastra o nome do produto, a
unidade de compra, a quantidade prevista para um ms, a
quantidade que efetivamente ser comprada, o preo
estimado (atualizado todo ms) e o valor total de cada
compra.
Produto

Unidade Qtd
Ms

Qtd
Preo
Compra estimado

Arroz

5Kg

10,00

Feijo

Kg

3,50

Acar

5Kg

3,60

Carne

Kg

7,5

11,00

Identifique as classes, atributos,


relacionamentos desse cenrio

mtodos

NOTAS
A quantidade de compra pode variar em virtude de
sobra de um ms para o outro, ou da necessidade
de um gasto maior no ms. Por exemplo: um
almoo em famlia.
As compras so feitas pela prpria Luclia. Por
esse motivo, ela no v necessidade de relacionar
as marcas dos produtos.
Mensalmente, Luclia analisa o quanto pagou por
cada produto, e se achar necessrio, atualiza o
preo estimado de cada produto

SOLUO

EXERCCIOS
1.

Luclia no tem mais tempo de fazer as compras


pessoalmente. Precisou detalhar o produto, de forma a
lhe permitir delegar essa tarefa a outra pessoa. Alm
disso, no quer que paguem um valor absurdo por algum
produto. Sendo assim, incluiu em sua planilha as colunas
preo mximo j comprado e preo mximo a pagar
no ms corrente, onde esta ltima coluna calculada a
partir da coluna anterior acrescida de 5%. O preo
mximo j comprado inserido na planilha, a partir das
compras efetivamente j realizadas

Quais so os atributos e/ou mtodos que precisam ser


includos nas classes do exerccio anterior para refletir
o novo cenrio?

SOLUO

Foram inseridos os atributos:


precoMaxComprado e precoMaxAPagar e
foi excludo o atributo:
precoEstimado, essa informao ser obtida agora por
meio do atributo precoMaxComprado

EXERCCIOS
1.

Luclia est assustada com a variao do preo de um


supermercado para outro. Tem feito compras (ou pedido
para fazer) em at trs supermercados diferentes. Sendo
assim, resolveu melhorar sua planilha. Criou uma segunda
planilha que contm o preo mais baixo que ela encontrou
num determinado ms, indicando a que supermercado
pertence.
Produto

Ms de
compra

Valor

Supermercado

Arroz

Julho

7,00

XXX

Arroz

Agosto

6,80

YYY

Arroz

Setembro 10,00

XXX

Feijo

Julho

2,10

XXX

Feijo

Agosto

3,50

YYY

EXERCCIOS
1.

(Continuao)

Quais so os atributos e/ou mtodos que precisam ser


includos nas classes do exerccio anterior para refletir
o novo cenrio? Verifique se h necessidade de criar
novas classes.

COMENTRIOS DA SOLUO

A atributo precoMaxComprado no mais lanado


manualmente pelo usurio. Agora, ele obtido pelo
mtodo: CalcularMaiorValor(p1: Produto), que
verifica o maior valor pago dentre os ltimos meses
para o produto em questo.

Cada histrico de compra est associado a um


supermercado e a um produto. Isso cria os
relacionamentos da classe HistoricoCompra com a
classe Produto e a classe Supermercado. Na
classe HistoricoCompra que se armazena o valor
pago a cada ms, indicando em que supermercado
foi feita a compra.

SOLUO

EXERCCIOS
1.

Luclia quer saber qual o supermercado apresentou mais


produtos baratos, num determinado ms.

a)

A resoluo dessa situao se d por meio da incluso de um


mtodo. Sugira um nome para esse mtodo, indicando sua
assinatura.

c)

A que classe pertence esse mtodo?

e)

Comente com seus colegas como seria o algoritmo para a


implementao desse mtodos

SOLUO

b)

obterMercadoMaisVantajoso(mes: int):Supermercado

d)

Classe HistoricoCompra

EXERCCIOS
Luclia deseja desconsiderar o preo de um determinado
ms para clculos de maior ou menor valor, ou ainda do
supermercado mais vantajoso.
Exemplos:
1.

a)

Saber qual o Supermercado apresentou mais produtos baratos,


num determinado ms. Supondo que ela comprou um produto
numa promoo que ofereceu 50% de desconto, esse valor no
pode ser parmetro para suas compras futuras.

c)

Para calcular o precoMaximoComprado, a aplicao pega o


maior valor. Vamos supor que um determinado produto teve
queda de preo. Isso significa que os meses de preo alto no
podem ser considerados para a prxima compra

Em que classe deve ser includo um atributo para resolver


essa questo e qual o tipo desse atributo?

SOLUO

Classe: HistoricoCompra

Atributo: validoParaAnalise:boolean

CLASSE FINAL

Você também pode gostar