Sunteți pe pagina 1din 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. de Classes uma representao da estrutura e relaes das classes que servem de modelo para os objetos.

Diagrama

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

Os mesmos usados para os atributos O nome do mtodo deve expressar a ao que realiza, por exemplo incluirAluno(). No deve possuir espaos e nem comear com dgitos Dever vir entre parnteses e separados por vrgula. 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.

Nome

Lista de parmetros

Tipo de retorno

ASSOCIAO ENTRE CLASSES


Para

representar o fato de que objetos podem se relacionar uns com os outros, utiliza-se a associao. que duas classes possuem uma ligao (link), significando por exemplo que elas "conhecem uma a outra.

Representa

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 Apenas Um Zero ou Muitos Um ou Muitos Zero ou Um Intervalo Especfico Simbologia 1..1 (ou 1) (ou em branco) 0..* (ou *) 1..* 0..1 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. para representar conexes que guardam uma relao todo-parte entre si. uma agregao, um objeto est contido no outro, ao contrrio de uma associao. se puder usar uma agregao, uma associao tambm poder ser utilizada.

Utilizada

Em

Onde

AGREGAO
Caractersticas

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

Empresa 1

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. objetivo identificar classes-me, chamadas gerais e classes-filhas, chamadas especializadas. ser capaz de incorporar os atributos e mtodos de uma outra classe previamente definida

Seu

Significa

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 Arroz Feijo Acar Carne Unidade Qtd Ms 5Kg Kg 5Kg Kg 2 6 3 6 Qtd Preo Compra estimado 1 6 2 7,5 10,00 3,50 3,60 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 Arroz Arroz Arroz Feijo Feijo Ms de compra Julho Agosto Julho Agosto Valor 7,00 6,80 2,10 3,50 Supermercado XXX YYY XXX XXX YYY

Setembro 10,00

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. A que classe pertence esse mtodo? Comente com seus colegas como seria o algoritmo para a implementao desse mtodos

c)

e)

SOLUO

b)

obterMercadoMaisVantajoso(mes: int):Supermercado Classe HistoricoCompra

d)

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

c)

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

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