parte7 - diagrama de classes.pptx
TRANSCRIPT
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
1/90
Diagrama de Classes
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
2/90
Objetivos
• Prover respostas para as seguintesperguntas: – Em um nível alto de abstração, que
objetos constituem o sistema emquestão?
– uais são as classes candidatas? –
Como as classes do sistema estãorelacionadas entre si? – uais são as responsabilidades de cada
classe?
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
3/90
!odelo de Classes de "n#lise$"n#lise do Domínio%
• &epresenta termos do domínio doneg'cio(
• )d*ias, coisas, e conceitos no mundoreal(
• Descreve o problema representado pelo sistema a ser desenvolvido, semconsiderar características da soluçãoa ser utilizada.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
4/90
Classes•
+ma classe descreve seus objetosatrav*s de atributos e operações. – "tributos correspondem s
in-ormaç.es que um objeto arma/ena( – Operaç.es correspondem s aç.es
que um objeto sabe reali/ar(• Detal0amento utili/ado depende do
est#gio de desenvolvimento e do nívelde abstração desejado(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
5/90
E1emplo
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
6/90
"ssociaç.es
• Para representar o -ato de que objetospodem se relacionar uns com os outros,utili/amos associaç.es(
•
+ma associação representa relacionamentosque são -ormados entre objetos durante ae1ecução do sistema(
• Embora as associaç.es sejam representadas
entre classes do diagrama, tais associaç.esrepresentam ligaç.es possíveis entre osobjetos das classes envolvidas(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
7/90
2otação para associaç.es
• 2a +!3 associaç.es sãorepresentadas por uma lin0a queliga as classes cujos objetos serelacionam(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
8/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
9/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
10/90
Participação
• +ma característica de uma associaçãoque indica a necessidade $ou não% dae1ist4ncia desta associação entre
objetos(• " participação pode ser obrigatória ou
opcional. –
5e o valor mínimo da multiplicidade de umaassociação * igual a 6 $um%, signi7ca que aparticipação * obrigat'ria
– Caso contr#rio, a participação * opcional(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
11/90
"cess'rios para associaç.es
• " +!3 de7ne tr4s recursos de notação paraassociaç.es: – Nome da associação: fornece algum signicado
semântico a mesma.
– Direção de leitura: indica como a associação deveser lida
– Papel: para representar um papel especíco emuma associação.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
12/90
Classe associativa•
Classe que est# ligada a uma associação,em ve/ de estar ligada a outras classes(• +sada quando duas ou mais classes estão
associadas, e * necess#rio manter
in-ormaç.es sobre esta associação(• 5in8nimo: classe de associação
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
13/90
"ssociaç.es n9#rias
• De7ne9se o grau de uma associação como aquantidade de classes envolvidas namesma.
•
2a notação da +!3, as lin0as de umaassociação n!ria se interceptam em umlosango.
• 2a grande maioria dos casos pr#ticos demodelagem, as associaç.es normalmente sãobin!rias.
• uando o grau de uma associação * igual atr4s, di/emos que a mesma * tern!ria.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
14/90
E1emplo de associaçãotern#ria
• 2a notação da +!3, as lin0as de umaassociação n9#ria se interceptam emum losango nomeado(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
15/90
"ssociaç.es ree1ivas
• "ssociação que representa ligaç.es entre objetosque pertencem a uma mesma classe( – Não indica que um objeto se associa a ele
próprio.
• " de7nição de pap*is * importante para evitarambig;idades na leitura da associação( – Cada objeto tem um papel distinto na
associação(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
16/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
17/90
E1emplo
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
18/90
"gregaç.es e composiç.es 9di-erenças
• Destruição de objetos – 2a agregação, a destruição de um objeto
todo não implica necessariamente na
destruição do objeto parte(• Pertin4ncia
– 2a composição, os objetos parte pertencema um nico todo(
– Em uma agregação, pode ser que ummesmo objeto participe como componentede v#rios outros objetos(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
19/90
"gregação e "ssociação
• E1iste pouca di-erença sem@nticaentre agregação e associação(
• 2a pr#tica, agregação * usadararamente(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
20/90
&estriç.es sobreassociaç.es
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
21/90
Aenerali/ação eEspeciali/ação
• &elacionamentos entre classes(• Esses denotam relaç.es de generalidade
ou especi7cidade entre as classes
envolvidas( – O conceito mamí!ero mais genrico que o
conceito ser "umano.
– O conceito carro mais especí#co que oconceito veículo.
• Esse * o c0amado relacionamento de"erança.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
22/90
Berminologia• subclasse X superclasse .• classe base X classe "erdeira .
• classe de especialização X classe de
generalização .• 2otação de7nida pela +!3
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
23/90
erança de associaç.es•
2ão somente atributos e operaç.es, mastamb*m associaç.es são 0erdadas pelassubclasses(
• 2o e1emplo abai1o, cada subclasse est#
associada a Pedido, por 0erança(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
24/90
Propriedade da erança
• #ransitividade: uma classe em uma"ierarquia "erda propriedades erelacionamentos de todos os seus ancestrais. – " 0erança pode ser aplicada em v#rios níveis, dando
origem a "ierarquia de generalização. – +ma classe que 0erda propriedades de uma outra
classe pode ela pr'pria servir como superclasse(
• $ssimetria: dadas duas classes $ e %& se $
for uma generali'ação de %& então % não pode ser uma generali'ação de $. – Ou seja, não pode "aver ciclos em uma "ierarquia de
generalização.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
25/90
E1emplo de 0erança
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
26/90
Classes "bstratas
• +sualmente, a e1ist4ncia de umaclasse se justi7ca pelo -ato de 0avera possibilidade de gerar inst@ncias
da mesma – Essas são as classes concretas.
• 2o entanto, podem e1istir classes
que não geram inst@ncias diretas( – Essas são as classes abstratas.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
27/90
Classes "bstratas
• Classes abstratas são utili/adas paraorgani/ar e simpli7car uma 0ierarquia degenerali/ação(
•
Propriedades comuns podem serorgani/adas e de7nidas em uma classeabstrata a partir da qual as primeiras0erdam(
• 5ubclasses de uma classe abstrata tamb*mpodem ser abstratas, mas a 0ierarquia deveterminar em uma ou mais classes concretas(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
28/90
2otação para classesabstratas
• 2a +!3, uma classe abstrata *representada com o seu nome em it$lico.
• 2o e1emplo a seguir, Conta
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
29/90
Diagrama de Objetos
• " +!3 de7ne um segundo tipo dediagrama estrutural, o diagrama deobjetos(
• Pode ser visto com uma inst@ncia dediagramas de classes
• &epresenta uma -otogra7a do sistemaem um certo momento( – e1ibe as ligaç.es -ormadas entre objetos
con-orme estes interagem e os valores dosseus atributos(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
30/90
E1emplo F Diagrama deObjetos
P e d i d oI t e m P e d i d oP r o d u t o
n o m e G H C a d e r n o ! Hd e s c r i ç ã o G H C a d e r n o e m e s p i r a l t a m a n 0 o m * d i o Hp r e ç o + n i t # r i o G I ,J Kd e s c o n t o G 6 J
p r o d u t o L K : P r o d u t o
n o m e G H C a n e t a E 5 M Hd e s c r i ç ã o G H C a n e t a e s - e r o g r # 7 c a J m m Hp r e ç o + n i t # r i o G 6 ,L Kd e s c o n t o G L
p r o d u t o 6 L : P r o d u t o
n o m e G H E s q u a d r o H
d e s c r i ç ã o G H E s q u a d r o d e a c r í l i c o L K c m Hp r e ç o + n i t # r i o G L ,N Jd e s c o n t o G 6 K
p r o d u t o K O : P r o d u t o
q u a n t i d a d e G L K
i t e m L : ) t e m P e d i d o
q u a n t i d a d e G
i t e m 6 : ) t e m P e d i d o
q u a n t i d a d e G 6
i t e m N : ) t e m P e d i d o
d a t a G 6 N Q K R Q L K K L0 o r a G 6 K :K K a m
P e d i d o 6 : P e d i d o
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
31/90
B*cnicas de )denti7cação de Objetos,"tributos e !*todos
• E1istem t*cnicas $de uso nãoe1clusivo% usadas para identi7carclasses: – Categorias de Conceitos – "n#lise Be1tual de "bbott $ %bbot &e'tual %nal(sis)
–
"n#lise de Casos de +so
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
32/90
Categorias de Conceitos
• Conceitos concretos: edi-ícios, carros, salas de aula(• Papéis desempen0ados por seres 0umanos:
pro-essores, alunos, empregados, clientes(• Eventos, ou seja, ocorr4ncias em uma data e em uma
0ora particulares: reuni.es, pedidos, aterrisagens,aulas(
• Lugares: #reas reservadas para pessoas ou coisas:escrit'rios, 7liais, locais de pouso, salas de aula(
•
Organizações: coleç.es de pessoas ou de recursos:departamentos, projetos, campan0as, turmas(• Conceitos abstratos: princípios ou id*ias não
tangíveis: reservas, vendas, inscriç.es, boleto(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
33/90
"n#lise Be1tual de "bbott
• )denti7car termos da narrativa de casos deuso e documento de requisitos que podemsugerir classes, atributos, operaç.es(
•
Montes de in-ormação: documento derequisitos, modelos do neg'cio, gloss#rios,con0ecimento sobre o domínio(
• 2omes $substantivos e adjetivos% que
aparecem no mesmo são destacados(• "p's isso, os sin8nimos são removidos(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
34/90
"n#lise Be1tual de "bbott$cont(%
• Cada termo remanescente seencai1a em uma das situaç.es aseguir: – O termo se torna uma classeS – O termo se torna um atributoS – O termo não tem relev@ncia alguma
com o 5T(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
35/90
"n#lise Be1tual de "bbott$cont(%
• B*cnica de identi7cação de operaç.es e deassociaç.es: destacar verbos no te1to(
• Uerbos de ação $calcular, con7rmar, cancelar,
comprar, -ec0ar, estimar, depositar, sacar%são operaç.es em potencial(• Uerbos com sentido de ter são potenciais
agregaç.es ou composiç.es(
• Uerbos com sentido de ser sãogenerali/aç.es em potencial(
• Demais verbos são associaç.es em potencial(
#
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
36/90
"n#lise Be1tual de "bbott$cont(%
• O resultado $as classes candidatas% depende deos documentos utili/ados como -onte seremcompletos(
• " t*cnica pode levar identi7cação de diversasclasses candidatas que não gerarão classes(
• " an#lise do te1to de um documento pode nãoidenti7car uma classe importante(
•
Em linguagem natural, as variaç.es ling;ísticase as -ormas de e1pressar uma mesma id*ia sãobastante numerosas(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
37/90
"n#lise de Casos de +so
• Caso particular da "B"(• B*cnica preconi/ada pelo &+P(• Casos de uso como ponto de partida(
– " reali/ação de um caso de uso *responsabilidade de um conjunto de objetos quedevem colaborar para produ/ir o resultadodaquele caso de uso(
–
"plica9se a t*cnica para identi7car as classesnecess#rias produção do comportamento queest# documentado na descrição do caso de uso(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
38/90
"n#lise de Casos de +so
• Procedimento de aplicação: – Estudar a descrição te1tual de cada caso de uso
para identi7car classes candidatas( – Para cada caso de uso, o te1to $u1os principal,
alternativos e de e1ceção, p's9condiç.es e pr*9condiç.es% * analisado(
– )denti7car classes que possam -ornecer ocomportamento do mesmo(
– 2a medida em que os casos de uso sãoanalisados, as classes são identi7cadas(
• Pode9se categorizar as classes.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
39/90
Categori/ação de Classes
• Objetos de entidade : usualmente objetosdo domínio do problema
• Objetos de -ronteira : atores interagem
com esses objetos• Objetos de controle : servem como
intermedi#rios entre objetos de -ronteira ede entidade, de7nindo o comportamento
de um caso de uso especí7co(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
40/90
Categori/ação de Classes
• Categori/ação proposta por Vacobson(
– Possui correspond4ncia $mas não
equival4nciaW% com o padrão dearquitetura model*vie+*controller -/)
• Estere'tipos na +!3: XboundarYZ,
XentitYZ, XcontrolZ
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
41/90
Objetos de Entidade
• &eposit'rio para informações e as regras deneg(cio manipuladas pelo sistema.
• &epresentam conceitos do domínio do neg'cio(• Características
– 2ormalmente arma/enam in-ormaç.es persistentes( – U#rias inst@ncias da mesma entidade e1istindo no sistema( – Participam de v#rios casos de uso(
• E1emplo: –
+m objeto 0edido participa dos casos de uso 1ealizar0edido e %tualizar 2stoque. – Este objeto pode e1istir por diversos anos ou mesmo tanto
quanto o pr'prio sistema(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
42/90
Objetos de Mronteira
• Comunicação do sistema com os atores( – tradu/em os eventos gerados por um ator em
eventos relevantes ao sistema – tamb*m são respons#veis por apresentar os
resultados de uma interação dos objetos(• E1istem para que o sistema se comunique com
o mundo e1terior(• # dois tipos principais de objetos de -ronteira:
– Os que se comunicam com o usu#rio $atores0umanos%: relat'rios, inter-ace gr#7ca(
– Os que se comunicam com atores não90umanos
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
43/90
Objetos de Controle
• 5ão a ponte de comunicação entre objetos de-ronteira e objetos de entidade(
• &espons#veis por controlar a l'gica de e1ecuçãocorrespondente a casos de uso(
• Decidem o que o sistema deve -a/er quando umevento de sistema ocorre( – "gem como controladores dos outros objetos para a
reali/ação de um caso de uso(
• Bradu/em eventos de sistema em operaçõesque devem ser realizadas pelos demaisobjetos.
) t@ i d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
44/90
)mport@ncia daCategori/ação
• " categori/ação
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
45/90
)mport@ncia daCategori/ação
• " import@ncia dessa categori/açãoest# relacionada capacidade deadaptação a eventuais mudanças( – 5e cada objeto tem atribuiç.es
especí7cas dentro do sistema, mudançaspodem ser menos comple1as e maislocali/adas(
– +ma modi7cação em uma parte dosistema tem menos possibilidades deresultar em mudanças em outras partes(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
46/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
47/90
!odelo de "n#lise no Processo)terativo e )ncremental
• Em um desenvolvimento dirigido acasos de uso, ap's a descrição doscasos de uso, * possível iniciar a
identi7cação de classes(• "s classes identi7cadas são re7nadas
para retirar inconsist4ncias e
redund@ncias(• "s classes são documentadas e o
diagrama de classes inicial *
construído(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
48/90
!odelo de "n#lise no Processo)terativo e )ncremental $cont(%
• "s construç.es do modelo de casos de usoe do modelo de classes são retroativasuma sobre a outra( –
2ovos casos de uso podem ser identi7cados – Pode9se identi7car a necessidade de
modi7cação de casos de uso pree1istentes(
• Depois que a primeira versão do modelo de
classes de an#lise est# completa, retornarao modelo de casos de uso e veri7car aconsist4ncia entre os dois modelos(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
49/90
!odelo de "n#lise no Processo)terativo e )ncremental $cont(%
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
50/90
Classes de Projeto
• O modelo de classes de projeto éresultante de re#namentos no modelo declasses de an$lise.
• Esse modelo * construído em paralelo com omodelo de interações. – " construção do modelo de interações gera
inormações para a transormaç%o do modelode classes de an$lise no modelo de classes de
projeto.• O modelo de classes de projeto cont*m detal0es
teis para a implementaç%o das classes.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
51/90
"spectos a considerar na -ase de projeto
• "dição de novas classes ao modelo• Especi7cação de atributos,
operaç.es e de associaç.es• Descrever re7namentos e conceitos
relacionados 0erança, classesabstratas, )nter-aces, polimor7smo(
ã
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
52/90
Especi7cação de classes de-ronteira
• 2ão atribuir a essas classesresponsabilidades relativas l'gica doneg'cio(
•
Classes de -ronteira devem apenas servircomo: – Ponto de captação ou – Ponto de apresentação de in-ormaç.es(
• " nica intelig4ncia que essas classesdevem ter * a que permite a elas reali/arema comunicação com o ambiente do sistema(
i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
53/90
Especi7cação de classes de-ronteira $cont(%
• # diversas ra/.es para isso: – 5e o sistema tiver que ser implantado
em outro ambiente, as modi7caç.es
resultantes sobre seu -uncionamentoseriam mínimas( – O sistema pode dar suporte a diversas
-ormas de interação com seu ambiente( – Essa separação resulta em mel0or
coesão.
E i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
54/90
Especi7cação de classes de-ronteira $cont(%
• Durante a an#lise, considera9se que0# uma nica classe de -ronteirapara cada ator(
• 2o projeto, algumas dessas classespodem resultar em v#rias outras(
E i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
55/90
Especi7cação de classes de-ronteira $cont(%
• Clientes TE< cl#ssicos – Classes de -ronteira são p#ginas B!3(
• Clientes stand9alone – &ecomend#vel que os desenvolvedores
pesquisem os recursos -ornecidos pelo
ambiente de programação sendoutili/ado( E1( 5[ingQVMC
E i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
56/90
Especi7cação de classes de-ronteira $cont(%
• " maioria das classes de entidadenormalmente permanece na passagemda an#lise ao projeto(
• Classes de entidade são normalmenteas primeiras classes a seremidenti7cadas, na an#lise de domínio(
•
Deve9se identi7car quais delas geramobjetos que devem ser persistentes(
E i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
57/90
Especi7cação de classes de-ronteira $cont(%
• Como identi7car cada um de seus objetosunicamente( – E1( um objeto da classe "luno * unicamente
identi7cado pelo valor de sua matrícula(
• +m identicador de implementação& quenão tem correspondente com atributoalgum do domínio& pode ser criado. – Possibilidade de manipular identi7cadores de
maneira uni-orme e e7ciente( – !aior -acilidade quando objetos devem ser
mapeados para um 5A
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
58/90
Especi7cação de classes deentidade
• " maioria das classes de entidadenormalmente permanece na passagemda an#lise ao projeto(
• Classes de entidade são normalmenteas primeiras classes a seremidenti7cadas, na an#lise de domínio(
•
Deve9se identi7car quais delas geramobjetos que devem ser persistentes(
E i7 ã d l d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
59/90
Especi7cação de classes deentidade
• Como identi7car cada um de seusobjetos unicamente( – E1( um objeto da classe "luno *
unicamente identi7cado pelo valor de suamatrícula(
• +m identicador deimplementação& que não temcorrespondente com atributoalgum do domínio& pode ser criado.
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
60/90
Especi7cação de classes de controle
• 2ormalmente associado a um casode uso
• O controle pode ser particionado em
duas ou mais outras classes paracontrolar diversos aspectos dasolução(
• Evitar a criação de uma nica classecom bai1a coesão e altoacoplamento(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
61/90
Especi7cação de classes de controle
• E1emplos dos aspectos de umaaplicação cuja coordenação * deresponsabilidade das classes de
controle: – produção de valores para
preenc0imento de controles da inter-ace
gr#7ca, – autenticação de usu#rios, – controle de acesso a -uncionalidades do
sistema
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
62/90
Especi7cação de classes de controle
• &esponsabilidades de controlador decaso de uso: – Coordenar a reali/ação de casos de uso( –
5ervir como canal de comunicação entreobjetos de -ronteira e objetos de entidade( – Comunicar com outros controladores( – !apear aç.es do usu#rio para mensagens a
serem enviadas a objetos de entidade( – !anipular e1ceç.es provenientes das
classes de entidades(
Especi7cação de outras
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
63/90
Especi7cação de outrasclasses
• "l*m do re7namento de classes pree1istentes,diversos outros aspectos demandam aidenti7cação de novas classes durante o projeto( – Persist4ncia de objetos – Distribuição e comunicação $&!), CO&
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
64/90
&e7namento de atributos e m*todos
• Os atributos e m*todos de uma classe a0abilitam a cumprir com suasresponsabilidades(
•
"tributos: permitem que uma classearma/ene in-ormaç.es necess#rias reali/ação de suas tare-as(
• !*todos: são -unç.es que manipulam os
valores do atributos, com o objetivo deatender s mensagens que o objetorecebe(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
65/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
66/90
Uisibilidade
• uali7cadores de visibilidade aplic#veis aatributos tamb*m podem ser aplicados aoperaç.es( –
( visibilidade p)blica – * visibilidade protegida
– + visibilidade privativa
• O real signi7cado depende da linguagem
de programação em questão(• O conjunto das operaç.es pblicas de uma
classe * c0amado de interace
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
67/90
Projeto de m*todos
• !*todos de criação e destruição deobjetos
• !*todos de acesso $get=Qset=%• Outros m*todos:
– Ualores derivados, -ormatação,conversão,((((
• "lguns m*todos devem ter umaoperação inversa 'bvia – 0abilitar e desabilitarS tornarUisível e
tornar)nvisívelS adicionar e removerS
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
68/90
Detal0amento de m*todos
• Diagramas de interação -ornecem umindicativo sobre como m*todos devem serimplementados(
•
Como complemento, notas e1plicativastamb*m são teis no esclarecimento decomo um m*todo deve ser implementado(
• O diagrama de atividades tamb*m pode
ser usado para detal0ar a l'gica de-uncionamento de m*todos maiscomple1os(
)mplementação de
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
69/90
)mplementação deassociaç.es
• # tr4s casos, em -unção daconectividade: 6:6, 6:2 e 2:!
• Para uma associação 6:6 entre duas
classes " e < : – 5e a navegabilidade * unidirecional no
sentido de " para
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
70/90
Conectividade 6:6
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
71/90
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
72/90
Classe parametri/ada
• +ma coleção pode ser representadaem um diagrama de classes atrav*suma classe parametrizada.
• De-(: * uma classe utili/ada parade7nir outras classes(
• Possui operaç.es ou atributos cuja
de7nição * -eita em -unção de um oumais par@metros(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
73/90
Conectividade 6:2
• Mormas alternativas pararepresentação de uma associaçãocuja conectividade * 6:2(
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
74/90
Conectividade 6:2 $Cont%
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
75/90
Conectividade 2:!
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
76/90
Classes "ssociativas
i d
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
77/90
Bipos de erança
• Com relação quantidade desuperclasses que certa classe podeter( – "erança m)ltipla – "erança simples
. li ' 7
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
78/90
Operaç.es polim'r7cas
• +ma subclasse 0erda todas as propriedades desua superclasse que ten0am visibilidadepblica ou protegida(
• Pode ser que o comportamento de algumaoperação 0erdada seja di-erente para asubclasse(
• 2esse caso, a subclasse deve rede7nir ocomportamento da operação( – " assinatura da operação * reutili/ada( – !as, a implementação da operação $ou seja, seu
m*todo+ * diferente.
Operaç.es polim'r7cas
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
79/90
Operaç.es polim'r7cas$Cont%
• Operaç.es polim'r7cas são aquelasque possuem mais de umaimplementação(
• " assinatura * repetida na$s%subclasse$s% para en-ati/ar arede7nição de implementação(
• O objetivo de manter a assinatura *garantir que as subclasses ten0amuma inter-ace em comum(
Operaç.es polim'r7cas
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
80/90
Operaç.es polim'r7cas$Cont%
• 5e duas ou mais subclasses implementamuma operação polim'r7ca, a mensagempara ativar essa operação * a mesma paratodas essas classes(
• 2o envio da mensagem, o remetente nãoprecisa saber qual a verdadeira classe decada objeto, pois eles aceitam a mesma
mensagem(• " di-erença * que os mtodos da operação
são di!erentes em cada subclasse.
Operaç.es polim'r7cas 9
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
81/90
Operaç.es polim'r7cas e1emplo
O . li ' 7
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
82/90
Operaç.es polim'r7cas
Operaç.es polim'r7cas tamb*m podeme1istir em classes abstratas(
Operaç.es polim'r7cas
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
83/90
Operaç.es polim'r7cas$cont%
• Operaç.es polim'r7cas implementam oprinc,pio do polimor#smo- – dois ou mais objetos respondem a
mesma mensagem de -ormas
di-erentes(
E í i
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
84/90
E1ercícios
• Para cada especi7cação a seguir,projete dois diagramas de classes: – De an#lise – De projeto
C . t di i li
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
85/90
Convenç.es nesta disciplina
• Classes de "n#lise – !*todos HsimplesH – "tributos sem tipo – "ssociaç.es nomeadas –
Cardinalidades de7nidas – Classes de entidade
• Projeto – !*todos comple1os $relativos a duas ou mais classes% – !*todos com atributos e valores de retorno – "tributos com tipo $inclusive criados% e visibilidade – Classes de -ronteira e de controle $com m*todos% – Projetado duranteQap's os modelos din@micos
• +m 7lme tem obrigatoriamente ao menos
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
86/90
uma c'pia, mas pode possuir diversas delas(• +ma c'pia re-ere9se e1clusivamente a um
determinado 7lme(• +m s'cio pode reali/ar muitas locaç.es
enquanto permanecer s'cio da locadora, mas
uma locação re-ere9se unicamente a umdeterminado s'cio• Cada locação deve obrigatoriamente
re-erenciar9se ao menos a uma c'pia de um
7lme, podendo re-erenciar9se a muitasc'pias(
• +ma c'pia pode ter sido locada diversasve/es, em *pocas di-erentes obviamente
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
87/90
• !odelar a situação usando umdiagrama de classes: +ma pessoaao longo da vida, tem v#rios
empregos, em empresas di-erentes(Para a Previd4ncia, * importantesaber a data de admissão e a data
de rescisão de contrato com cadauma dessas Empresas
• +m cliente pode possuir muitos animais, mas um animalpertence a um nico cliente " clínica precisa de in-ormaç.es a
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
88/90
pertence a um nico cliente( " clínica precisa de in-ormaç.es arespeito de cada cliente, como nome, endereço, e tele-one(
• +m animal pertence a uma nica esp*cie, por*m podem 0aver
diversos animais cadastrados de uma determinada esp*cie(• ] preciso manter in-ormaç.es a respeito de cada animal j#
tratado, como nome, se1o, idade e esp*cie• +m animal pode reali/ar diversos tratamentos, mas um
tratamento * reali/ado e1lusivamente por um animal(• Cada tratamento possui ao menos uma consulta, mas pode
possuir muitas consultas( +ma determinada consulta re-ere9see1clusivamente a um determinado tratamento( Cada consultadeve arma/enar in-ormaç.es como a data em que -oi reali/ada, oveterin#rio que atendeu o animal e o resumo da consulta(
• +m veterin#rio pode reali/ar muitas consultas, por*m umaconsulta deve ser reali/ada por somente um veterin#rio
• Em uma consulta podem ser marcados e1ames para o animal( Onmero de e1ames possíveis em uma consulta * indeterminado,mas precisa ser registrado(
• +ma universidade possui dois tipos de -uncion#rios: pro-essores et*cnico9administrativos( uando são contratados, * necess#rio
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
89/90
*c co ad s a os ua do são co a ados, * ecess# ocadastrar seu nome, tele-one, endereço, CPM $que deve ser v#lido%, e adata de contratação $que tamb*m precisa ser validada%(
• Para o pro-essor deve ser cadastrado tamb*m a titulação, #rea de
pesquisa, e o tipo de contrato $LK 0oras, IK 0oras ou Dedicaçãoe1clusiva%(
• +m -uncion#rio possui obrigatoriamente um nico cargo( O cargo possuium título e um sal#rio( O sal#rio do cargo pode ser aumentado apenasuma ve/ por ano(
•
+m pro-essor pode não ministrar disciplinas em um semestre, ouministrar at* no m#1imo N disciplinas(• " disciplina pertence a um curso, ou a v#rios cursos( Por e1emplo,
C#lculo 6 * uma disciplina ministrada em v#rios cursos di-erentes da#rea de e1atas(
• +m curso possui muitas disciplinas( Para o cadastro da disciplina, deve9se in-ormar o nome da disciplina, a carga 0or#ria, e o tipo da disciplina(
• +m curso pode ser de graduação ou de p's9graduação( O curso possuium nome e uma #rea $e1( E1atas%( Cursos de p's9graduação podem serde L tipos lato ou stricto sensu(
• Cursos stricto senso devem ter a nota da C"PE5 e a grande #rea a qual
pertencem(
Projetar um diagrama de classes para um sistemasimples de reserva e ocupação de quartos para um
-
8/16/2019 Parte7 - Diagrama de Classes.pptx
90/90
simples de reserva e ocupação de quartos para um0otel( O sistema deve arma/enar reservas -eitas porum -uncion#rio de um ou mais quartos para umdeterminado cliente( O -uncion#rio deve ser capa/de: veri7car se um quarto est# ocupado ou não,inserir ou alterar os dados de um cliente, reali/ar areserva de um quarto para um cliente( Considere os
atributos de todas as classes como privados( Cadacliente e -uncion#rio deve possuir: nome, rg, CPM,endereço, tele-one( Deve ser possível identi7car aquantidade de ocupaç.es j# reali/adas pelos
clientes( +m quarto pode ser simples ou lu1o e deveindicar o nmero de camas e o tipo de cada umadelas $solteiro ou casal%( Cada quarto deve terapenas um -rigobar que tem um contedo de