Você está na página 1de 34

Modelagem Prof. Me.

Leandro Borges
de Processos
Aula 08 - Diagrama de Classes
Diagramas de Classes

 Um diagrama de classes descreve os tipos de objetos


presentes no sistema e o s vários tipos de relacionamentos
estáticos existentes entre eles.

 Mostram as propriedades e as operações de uma classe e as


restrições que se aplicam à maneira como os objetos estão
conectados.

A UML utiliza a palavra característica como um termo geral


que cobre as propriedades e operações de uma classe.
Diagramas de Classes

A maioria dos diagramas UML que vejo é composta por diagramas de


classes.

 Amplamente usado!

 Está sujeito à maior variação de conceitos de modelagem!

 Embora os elementos básicos sejam necessários para todo mundo, os


conceitos avançados são utilizados com menos frequência.

 Dois tipos de diagramas...


básicos e avançados
Diagrama de Classes
Simples
Diagrama de Classes

Nome da classe

Atributos

Operações
Propriedades

 Representam as características estruturais de


uma classe.
 Sãoum conceito simples, mas possuem duas
notações distintas:
Atributos
Associações
 Obs.:
 Emboraelas pareçam bastante diferentes em um
diagrama, na realidade elas são a mesma coisa.
Atributos

A notação de atributo descreve uma


propriedade como uma linha de texto dentro
da caixa de classe em si.
 Ex:
- nome: String[1] = "Sem título" {readyOnly}

 Somente o nome é necessário!


Atributos

- nome: String[1] = "Sem título" {readyOnly}

 Esse marcador de visibilidade indica se o atributo é público (+) ou privado


(-).
O nome do atributo – como a classe se refere ao atributo – corresponde
aproximadamente ao nome de um campo em uma linguagem de
programação.
O tipo do atributo indica uma restrição sobre o tipo de objeto que pode ser
colocado no atributo.
O valor-por-omissão é o valor do objeto novo criado, caso o atributo não
seja especificado durante a criação.
O item {lista de propriedades} permite que você indique propriedades
adicionais para o atributo.
Se isso estiver ausente, supõe-se que o atributo é modificável!
Atributos
Associações

 Uma associação é uma linha cheia entre duas


classes, direcionada da classe de origem para a
classe de destino.

O nome da propriedade fica no destino final da


associação, junto com sua multiplicidade.

O destino final da associação vinculada à classe


que é o tipo da propriedade.
Associações

 Umoutra maneira de anotar uma


propriedade!

 Praticamenteas mesmas informações que


você pode exibir em um atributo aparecem
em uma associação.
Associações
Quando usar uma ou outra?

 Atributospara coisas pequenas, como d atas ou


valores booleanos.

 Associaçõespara classes mais significativas,


como clientes e pedidos.

A escolha está muito mais relacionada à ênfase


do que a qualquer significado subjacente!
Multiplicidade

A multiplicidade de uma propriedade é uma indicação


de quantos objetos podem preencher a propriedade.

 As multiplicidades mais comuns são:


1 (Um pedido deve ter exatamente um cliente)
0..1 (Um cliente corporativo pode ter ou não um único
representante de vendas)
* (Um cliente não precisa fazer um Pedido e não existe
nenhum limite superior para o número de Pedidos que
um Cliente pode fazer – zero ou mais pedidos)
Multiplicidade
Associações Bidirecionais

 Umaassociação bidirecional é um par de


propriedades inversamente vinculadas.

O vínculo inverso entre elas significa que, se


você seguir as duas propriedades, deverá
retornar a um conjunto que contém seu ponto
de partida.
Associações Bidirecionais
Associações Bidirecionais

 Como uma alternativa à denominação de uma


associação por meio de uma propriedade,
muitas pessoas, gostam de rotular uma
associação utilizando um verbo para que o
relacionamento possa ser usado em uma
frase.
Associações Bidirecionais - Diferenças

A natureza bidirecional da associação fica evidente pelas setas


de navegabilidade nas duas extremidades da associação

A UML permite usar essa forma para indicar uma associação


bidirecional ou quando você não está mostrando navegabilidade
Operações

 Operações são as ações que uma classe sabe


realizar.

 Correspondem claramente aos métodos presentes


em uma classe.

A sintaxe completa da UML para as operações é


visibilidade nome (lista-de-parâmetros): tipo-de-
retorno {lista-de-propriedades}
Operações

O marcador visibilidade é público (+) ou privado (-).


O nome é uma sequência de caracteres.
A lista-de-parâmetros é a lista de parâmetros da operação.
Otipo-de-retorno é o tipo do valor retornado, se houver
um.
A lista-de-propriedades indica os valores de propriedade
que se aplicam à operação dada.

 Ex.: + saldoEm (data: Date): Dinheiro


Generalização

 Um exemplo típico de generalização é o que


envolve clientes e pessoas físicas e jurídicas
de uma empresa.

 Elastêm diferenças mas também muitas


semelhanças. As semelhanças podem ser
colocadas em uma classe geral Cliente (o
supertipo), com Cliente Pessoa Física e
Cliente Pessoa Jurídica como subtipos.
Generalização

 Podemos dizer que Cliente Pessoa Jurídica é um subtipo de Cliente.


...um tipo especial de Cliente.

 Tudo
que dissermos sobre um Cliente – associações, atributos, operações –
também é verdadeiro para um Cliente Pessoa Jurídica.

 Em uma perspectiva de software, a interpretação óbvia é a herança: o


Cliente Pessoa Jurídica é uma subclasse de Cliente.

 Nasprincipais linguagens orientadas a objetos, a subclasse herda todos os


recursos da superclasse e pode sobrepor todos os métodos da superclasse.
Notas e Comentários

 Notas são comentários nos diagramas.


 Asnotas podem ser isoladas ou vinculadas, com
uma linha tracejada, aos elementos que estão
sendo comentados.
 podem aparecer em qualquer tipo de diagrama.
Dependência

 Umadependência entre dois elementos existe se


mudanças na definição de um elemento (o fornecedor)
podem causar mudanças ao outro (o cliente).

 Nas classes, as dependências existem por várias razões:


uma classe envia uma mensagem para outra
uma c lasse tem outra como parte de seus dados
uma classe menciona uma outra como um parâmetro de
uma operação
Dependência

 Cuidado!

 Seas dependências saírem de controle, cada


alteração em um sistema terá um amplo efeito
de propagação à medida que mais coisas
tiverem que mudar.

 Quanto maior a propagação, mais difícil é a


alteração de qualquer coisa.
Dependência

A UML permite representar dependências


entre todos os tipos de elementos.

A classe Plano de Benefícios é dependente da


classe Funcionários: um objeto do domínio
que captura o comportamento essencial do
sistema. Isso significa que, se a classe
Funcionário mudar sua interface, a classe
Plano de Benefícios talvez tenha que mudar.
Dependência
Dependência

 Importante!

 Uma subclasse é dependente de sua superclasse, mas não o contrário.

 Tentar
mostrar todas as dependências em um diagrama de classes é
uma perda de tempo.
Existem muitas e elas mudam demais.

 Sejaseletivo e mostre dependências somente quando elas forem


diretamente relevantes para o assunto específico que você quer
transmitir.
Quando utilizar Diagramas de Classes?

 Os
diagramas de classes são a espinha dorsal da
UML.

 Você irá utilizá-los o tempo todo!

 Porém...
 Diagramas
de classes são tão ricos que podem ser
complexos demais para usar.
E isso pode ser um problema!
Dicas

 Não tente utilizar todas as notações de que você dispõe.

 Comece com o simples...


Classes, associações, atributos e generalização.

 Não desenhe modelos para tudo!

 Concentre-se nas áreas principais...


É melhor ter poucos diagramas que você utiliza e os mantém
atualizados do que ter muitos modelos esquecidos e obsoletos.
Trabalho de UML

 Desenvolver um projeto para um quiosque de venda de sorvetes, onde um cliente usando um cartão de crédito,
um cartão de débito ou dinheiro pode comprar até três diferentes produtos (cada um com várias unidades). O
quiosque tem uma variedade de até 100 produtos diferentes a venda. Após a escolha dos produtos e das
quantidades de cada produto por parte do cliente em um terminal de auto atendimento, o sistema calcula o valor
total e solicita a informação de qual a forma de pagamento. O cliente informa a forma de pagamento e se for
cartão (débito ou crédito), o cliente tem que inserir o cartão no dispositivo de leitura e digitar a senha e fica
aguardando a confirmação do sistema da operadora do cartão; e se for dinheiro, ele vai inserir o dinheiro no
dispositivo de recebimento, uma nota de cada vez até completar o pagamento, se tiver troco, o mesmo será
disponibilizado na caixa de saída. Completado o pagamento, a nota de venda é impressa para o funcionário e
que vai disponibilizar os produtos pedidos no guichê de atendimento. O cliente recebe os produtos e a nota fiscal
das mãos do funcionário.

 Faça:

a) Definição dos requisitos;


b) Os Diagramas de casos de uso necessários e a sua descrição;
c) Os Diagramas de classes;
d) Os Diagramas de estado.
Referências…

UML Essencial: Um Breve Guia para Linguagem Padrão, 3. ed.


Martin Fowler

https://integrada.minhabiblioteca.com.br/books/9788560031382

Você também pode gostar