1
DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL
1ª PARTE
DIAGRAMA
CLASSE, ATRIBUTO E OPERAÇÃO
ASSOCIAÇÃO
CLASSE ASSOCIATIVA
AGREGAÇÃO E COMPOSIÇÃO
RESTRIÇÕES
ELABORANDO O DIAGRAMA
2
I . DIAGRAMA DE CLASSES
Possibilita uma visão estática do sistema Ao elaborarmos um diagrama de classe devemos fazê-lo
numa única perspectiva: conceitual ou de implementação Seguindo a perspectiva conceitual, os objetos do modelo
devem ser conceitos do domínio da aplicação e não conceitos de implementação computacional.
3
Estado, Comportamento e I dentidade de Objetos
4
5
6
7
Diagrama de Classes (com perspectiva conceitual)
Item faturadoquantFaturada Livro
isbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega
Item pedidoquantidadePedidapreçoCobrado
1
0..*
1
0..*
ClientecódigoCPFnomeendereçotelefone [0..1]eMail [0..1]
PedidonumPedidodataEmissão
nomePresenteado [0..1]endereçoEntrega
dataCancelamento [0..1]status
1..*1..*
1..*1 1..*1 faz ->
FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]dataCancelamento [0..1]
status
1..*0..* 1..*0..*
1
0..*
1
0..*
{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }
8
I I . CLASSE, ATRIBUTO E OPERAÇÃO
CLASSE
Na abordagem orientada a objetos os dados sãosubdivididos em objetos
Cada objeto tem sua própria identidade. Assim, doispedidos, no sistema de controle de pedidos, por maissemelhanças que contenham constituem cada um, umúnico objeto
Objetos com a mesma estrutura de dados (atributos),com o mesmo comportamento (operações) erelacionamentos são agrupados numa classe.
9
Classe é uma abstração que descreve propriedadesimportantes para uma aplicação e ignora as restantes.
É representada através de um retângulo, com espaçopara descrição do nome, dos atributos e dasoperações:
nome
atributos
operações
Pedido
numPedidodataEmissãonomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]status
10
Elicitação de Classes na Etapa de Análise Responsabilidades Empacotamento de Classes (Responsabilidades comuns
ou semelhantes) Colaborações Mútuas Cuidado: Análise x Projeto (Conceito x I mplementação)
11
Exercício: Elicitar as Classes do Sistema da Petrobrás
12
ATRIBUTO
Atributo: é uma propriedade de uma classe.
O atributo dataEmissão da classe Pedido significaque um objeto pedido possui data de emissão. Esteatributo também indica que um objeto pedido podedizer, a quem solicitar, sua data de emissão e temalguma forma de modifi cá-lo através de uma operação.
13
Sintaxe completa de um atributo:
[visibilidade] nome [ [multiplicidade] ] [:tipo] [= valor inicial] [{propriedade}]
Se o diagrama está sendo elaborado com umaperspectiva conceitual basta representar o nome doatributo e a sua multiplicidade, que indica a quantidademínima e máxima de ocorrências daquele atributo emum objeto.
14
Opções de multiplicidade:
1 – exatamente uma ocorrência0..1 – zero ou uma1..* - uma ou mais0..* - zero ou mais* - zero ou mais
É possível também determinar o númeroexato de ocorrências. Por exemplo, 2..6
15
Pedido tem seis atributos:- numPedido, dataEmissão, endereçoEntrega e status têm
uma única ocorrência. Neste caso não é necessário indicara multiplicidade.
- nomePresenteado: multiplicidade mínima = zero, já quenem sempre há presenteado
- dataCancelamento: multiplicidade mínima = zero, já quenem sempre o pedido é cancelado
Pedido
numPedidodataEmissãonomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]status
16
OPERAÇÃO Operação: um serviço que pode ser solicitado por algum
objeto da classe. Por exemplo, um objeto pedido pode solicitar o seu cancelamento.
Uma classe pode ter várias operações ou nenhuma O motivo de não serem descritas operações na classe Pedido
não é o f ato de não haver operações. Optamos por incluir operações somente na etapa de Projeto quando o diagrama de classes f or elaborado com uma perspectiva de implementação.
17
Faz pedidoCenário principal: Venda realizada com sucesso por umnovo cliente1. Cliente informa dados pessoais (cpf , nome, endereço,
telefone e e-mail) e endereço de entrega2. Cliente informa a lista dos livros desejados e
respectivas quantidades3. Sistema armazena além dos dados f ornecidos pelo
cliente, a data de emissão do pedido e o preço cobradopor cada livro, já que pode ser dado algum desconto eo valor cobrado não será o de tabela
4. Sistema envia ao cliente a confirmação da venda com onúmero de seu pedido, seu código, a lista dos itenspedidos com quantidade e preço de cada item e o preçototal do pedido.
Exemplo
18
ClientecódigoCPFnomeendereçoTelefone [0..1]eMail [0..1]
PedidonumPedidodataEmissão
endereçoEntrega
Item pedidoquantidadePedidapreçoCobrado
LivroisbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega
Obs: A classe livro faz parte de outro subsistema.
19
Faz pedido para presentear
1. Cliente informa dados pessoais (cpf , nome,endereço, telefone e e-mail)
Cliente informa dados do presenteado:nome e endereço de entrega
Continua a partir do passo 2.
20
Pedido
numPedidodataEmissão
nomePresenteado [0..1]endereçoEntrega
21
Fatura pedidoCenário principal: f aturamento de pelo menos um item do pedido
1. Funcionário seleciona um pedido que não tenha sido integralmenteatendido (f aturado)
2. Sistema verifica a quantidade pendente (quantidadePedida -quantidadeAtendidaTotal) de cada item(Extend – Comunicaatraso)
3. Sistema cria uma fatura com o número da f atura, a data deemissão, a data limite de pagamento e a quantidade de cada item.4. Sistema emite a f atura que deverá ser encaminhada ao cliente
juntamente com os livros. A f atura deverá conter:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário cobrado
- Preço total
22
Obs: A quantidade f aturada de cada item (livro) está
limitada ao que há em estoque. Caso não possa ser f eitoum atendimento completo neste momento, maisadiante, logo que haja o item em estoque, será criadauma nova f atura.
Uma f atura f az ref erência a um e apenas um pedido.No entanto ela pode estar atendendo apenasparcialmente àquele pedido.
23
Item faturadoquantFaturada Livro
isbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega
ClientecódigoCPFnomeendereçotelefoneeMail
Item pedidoquantidadePedidapreçoCobrado
FaturanumFaturadataEmissãodataVencimento
status
PedidonumPedidodataEmissão
nomePresenteado [0..1]endereçoEntrega
status
{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }
24
Comunica atraso
Sistema verifica que um ou mais itens pedidosnão poderão ser entregues e que não há previsãode entrega.
Sistema comunica ao cliente o atrasodescrevendo o número do pedido e os itens paraos quais não há previsão de entrega.
25
Diminui quantidade de um item do pedidoCenário principal: Quantidade diminuida
1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida
pedido)5. Cliente informa o item a ser reduzido6. Sistema apresenta ao cliente a quantidade pendente
(quantidade pedida – quantidade f aturada)7. Cliente informa a nova quantidade (no máximo a
quantidade pendente)8. Sistema armazena a nova quantidade9. Sistema envia ao cliente a confi rmação da alteração
realizada
26
Diminui quantidade de um item do pedidoCenário alternativo: Pedido de redução de item érecusado por já ter sido totalmente f aturado
6. Sistema comunica ao cliente: o item não pode ser reduzido por ter sido
completamente f aturado caso deseje realmente esta redução o cliente
deverá solicitar o cancelamento parcial ou totalda f atura. Esse pedido será avaliado pelogerente.
Os passos seguintes não são realizados
27
Solicita cancelamento de pedidoCenário principal: Pedido cancelado por não haver f atura emitida
1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida pedido)5. Sistema cancela o pedido (não há nenhuma fatura emitida para
ele) e armazena a data de cancelamento
6. Sistema envia ao cliente a confirmação do cancelamentosolicitado.
28
Pedido
numPedidodataEmissão
nomePresenteado [0..1]endereçoEntrega
dataCancelamento [0..1]status
29
Solicita cancelamento de pedidoCenário alternativo: Pedido não pode ser cancelado por já tersido emitida pelo menos uma f atura
5. Sistema comunica ao cliente: o pedido não pode ser cancelado por já ter sido emitida
pelo menos uma f atura. o cliente deverá solicitar o cancelamento das f aturas já
emitidas caso deseje cancelar o pedido.
Os passos seguintes não são realizados
30
Valida pedido
1. Sistema verifica a existência do número do pedido2. Sistema envia ao cliente os dados relativos a seu
pedido: a lista dos itens pedidos com quantidade e preço
unitário de cada item e o preço total do pedido a lista das f aturas emitidas contendo para cada
fatura:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário
- Preço total
31
Solicita cancelamento de f aturaCenário principal: Solicitação de cancelamento integral da f aturarealizada com sucesso
1. Cliente informa seu código2. Sistema valida código3. Cliente informa número da f atura4. Sistema verifica a existência deste número5. Sistema envia ao cliente os dados da f atura, contendo: a data de
emissão, o preço total e para cada item: a quantidade e o preçounitário
6. Cliente solicita o cancelamento integral da f atura
7. Sistema armazena a solicitação de cancelamento da f atura e adata da solicitação
8. Sistema envia ao cliente a confirmação do cadastramento desua solicitação e a informação de que o seu pedido só seráanalisado quando a Empresa receber os livros relativos à f atura.
32
FaturanumFaturadataEmissãodataVencimento
dataPedidoCancelamento [0,1]
status
33
Paga f aturaCenário principal: Pagamento da última f atura de umpedido
1. Cliente paga a f atura2. Sistema armazena o número da f atura, o valor pago e
a data de pagamento.3. Sistema f echa o pedido relacionado à f atura (f oi paga
a última f atura de um pedido)4. Sistema envia ao cliente a confirmação de pagamento
da fatura
34
FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]
status
35
Avalia cancelamento de f aturaCenário principal: Gerente cancela a f atura e automaticamente écancelado o pedido
1. Gerente analisa o pedido de solicitação de cancelamento deuma f atura
2. Gerente cancela a f atura3. Sistema armazena a data de cancelamento e atualiza o estoque,
considerando a devolução dos livros4. Sistema cancela o pedido (todas as f aturas de um pedido
foram canceladas)5. Sistema envia ao cliente notificação do cancelamento da
fatura e do pedido
36
FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]dataCancelamento [0..1]
status
37
A operação é especificada através de sua assinatura (que contém o nome, tipo de todos os parâmetros e o tipo do valor a ser retornado) além de outras características, como visibilidade. Mas esses detalhes serão vistos na etapa de Projeto.
Caso operações sejam incluídas no diagrama de classes
elaborado com uma perspectiva conceitual, devem apenas indicar as responsabilidades principais da classe.
38
Exercício : Liste os atributos das Classes do Sistema da Petrobrás
39
Sua empresa foi solicitada para o desenvolvimento de um software para controle de um hospital. Este Hospital possui 5 centros: CTI, Emergência, Maternidade, Pediatria e Clinica Geral. Cada um destes centros possui uma série de características, tais como número de leitos, número de médicos, capacidade de espera, horários de atendimento, etc. Um paciente (que também deve possuir uma série de atributos), ao chegar, deve ser encaminhado para um destes centros, mas antes deve passar pela recepção do hospital para que sua ficha seja preenchida no sistema e para que o sistema, além de registrá-lo, realize o encaminhamento para o centro e respectivo médico responsável. Devem haver prioridades de atendimento ao paciente, sendo um dos atributos a gravidade do caso (esta gravidade deve variar de 1 a 5). Caso seu problema não se adeque, o hospital possui convênio com outros hospitais, aos quais encaminhará estes pacientes. Este encaminhamento será efetuado por uma das ambulâncias do primeiro hospital. Os médicos do hospital possuem diversas caracteristicas, tais como nome, especialidade, CRM, turno. Enfermeiros são outros elementos distintos e também devem possuir uma serie de características.
Exercício : Elabore as Classes para o problema abaixo:
40
RELACI ONAMENTOS
41
Relacionamentos - Dependências Dependência: Relacionamento de Utilização
Pode usar como assinatura, por exemplo
42
Relacionamentos - Generalização Todo - Parte
43
Relacionamentos - Associação
Associação: representa o relacionamento entre instâncias de classes. Especifica que um objeto de uma classe está ligado a um objeto de outra classe.
Exemplo: f az é o nome da associação. Pode ser utilizada uma seta para indicar uma direção para este nome de f orma a f acilitar a leitura e entendimento. Neste caso leríamos cliente f az pedido. Quando não há dúvidas com relação ao nome da associação, ele pode ser omitido.
Cliente
códigoCPFnomeendereçotelefone [0..1]eMail [0..1]
1..*1 faz ->
Pedido
numPedidodataEmissão
nomePresenteado [0..1]endereçoEntrega
dataCancelamento [0..1]status
44
Relacionamentos - Associação
Nome Opcional Direção do Nome
45
Associações possuem multiplicidades que indicam oslimites mínimos e máximos para a participação dosobjetos. No exemplo anterior, a associação entrecliente e pedido pode ser lida da seguinte f orma: cadacliente pode ter f eito um ou mais pedidos e cadapedido necessariamente é de apenas um cliente.
Opções de multiplicidade:1 – exatamente 10..1 – zero ou um1..* - um ou mais0..* - zero ou mais* - zero ou maisÉ possível também determinar o número exato. Por
exemplo, 2..6
46
Uma associação binária liga os objetos de exatamente duasclasses, como a associação entre Cliente e Pedido.
Uma associação binária, de acordo com a UML, pode tambémrepresentar o relacionamento dos objetos de uma mesmaclasse como no exemplo a seguir no qual existe umrelacionamento de gerência. Neste caso em particular umempregado pode ter nenhum ou no máximo um gerente e umgerente pode ter de um a vários subordinados.
Empregado
1..*
0..1
gerente
subordinado
0..1
1..*
47
A c lasse que par t ic ipa d e uma assoc iação desempenhaum papel nest e r elac ionament o.
E mpr egado pode d esempenhar o papel d e ger ent e ousubor d inado.
N o caso em que o c lient e f az ped ido, não há dúvidas comr elação a esses papéis, mas pod em haver s it uações comoest a ac ima em que sej a impor t ant e dest acá- los.
Empregado
1..*
0..1
gerente
subordinado
0..1
1..*
Papéis:
48
I V. CLASSE ASSOCIATIVA
Utilizada em situações em que uma associação tempropriedades, como por exemplo, atributos.
49
Em nosso caso exemplo, quando é criada uma f atura deveser descrita qual a quantidade f aturada de cada item queserá enviado ao cliente. A quantidade f aturada de cadaitem não poderia ficar em f atura e nem em item pedidoporque f az ref erência a uma determinada associaçãofatura – item pedido, ou seja é um atributo da associação.
Fatura
numFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]
dataPedidoCancelamento[0..1]dataCancelamento [0..1]
status
1..*0..*
Item pedido
quantidadePedidapreçoCobrado
quantFaturada ??
50
Classe associativa
Fatura
numFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]
dataPedidoCancelamento [0..1]dataCancelamento [0..1]
status
Item faturado
quantFaturada
Item pedido
quantidadePedidapreçoCobrado1..*0..* 1..*0..*
A solução é colocar numa classe associativa o atributoquantFaturada, que descreve a quantidade que f oi f aturada.
51
Uma classe associativa é uma associação que tempropriedades de classe. Assim, podem seracrescentados a esta classe: atributos,operações e associações (com outras classes oucom ela própria)