Buscar

5 Diagrama de Classe

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Diagrama de Classe 
Livro: UML 2.0 – Uma abordagem prática 
Autor: Gilleanes T. A. Guedes 
Capítulo 4 
 
Diagrama de Classes 
 O diagrama de classes é um dos mais importantes e mais 
utilizados da UML. 
 
 Seu principal enfoque está em permitir a visualização das 
classes que comporão o sistema com seus respectivos 
atributos e métodos, bem como em demonstrar como as 
classes do diagrama de relacionam, complementam e 
transmitem informações entre si. 
Diagrama de Classes 
 Esse diagrama apresenta uma visão estática de como as 
classes estão organizadas, preocupando-se em como 
definir a estrutura lógica das mesmas. 
 
 O diagrama de classes serve ainda como base para a 
construção da maioria dos outros diagramas da 
linguagem UML. 
 
 Basicamente, o diagrama de classes é composto por suas 
classes e pelas associações existente entre elas, ou seja, o 
relacionamentos entre as classes. 
Diagrama de Classes 
 Alguns métodos de desenvolvimento de software 
recomendam que se utilize o diagrama de classes ainda 
durante a fase de análise, produzindo-se um modelo 
conceitual a respeito das informações necessárias ao 
software. 
 
 Somente na fase de projeto torna-se o modelo conceitual 
do diagrama de classes e produz-se o modelo de domínio 
que já enfoca na solução do problema. 
Atributos e Métodos 
 Os métodos são declarados no diagrama de classes, 
identificando os possíveis parâmetros que são por ele 
recebidos e os possíveis valores por ele retornados. 
 
 Entretanto o diagrama de classes não se preocupa em 
definir as etapas que tais métodos deverão percorrer 
quando forem chamados, sendo esta uma função 
atribuída a outros diagramas. 
Atributos e Métodos 
 Exemplo de diagrama de 
classe: 
 Retângulo com três 
divisões; 
 Visibilidade; 
 Tipos de Retorno. 
Atributos e Métodos 
 Exemplo de diagrama 
de classe: 
 Parâmetros dos 
métodos. 
Diagrama de Classes Refletido em JAVA 
public class Conta_comum { 
 protected long nro_conta; 
 protected Date dt_abertura; 
 protected Date dt_encerramento; 
 protected int situacao; 
 protected int senha; 
 protected double saldo; 
 
 public long abrirConta(int senha) 
{ 
 return 0; 
 } 
 public int consultarConta(long nro_conta) 
{ 
 return 0; 
 } 
public int validarSenha(int senha) 
{ 
 return 0; 
} 
public double saldoConta() 
{ 
 return 0; 
} 
 public int sacarValor(double valor) 
{ 
 return 0; 
} 
public int depositarValor(long 
nro_conta, double valor) 
{ 
 return 0; 
} 
 public int encerrarConta() 
{ 
 return 0; 
} 
public String extratoConta() 
{ 
 return ""; 
} 
Características Extras 
Atributos que sofrem 
algum tipo de cálculo. 
Valores Iniciais 
Multiplicidade 
Relacionamento ou Associações 
 As classes costumam ter relacionamentos entre si, 
chamados associações, que permitem que elas 
compartilhem informações entre si e colaborarem para a 
execução dos processos executados pelo sistema. 
 
 As associações são representadas por linhas ligando as 
classes envolvidas. Essas linhas podem ter nomes ou 
títulos para auxiliar a compreensão do tipo de vínculo 
estabelecido entre os objetos das classes envolvidas nas 
associações. 
Associações Unárias ou Reflexivas 
 Este tipo de associação ocorre quando existe um 
relacionamento de um objeto de uma classe com objetos 
da mesma classe. 
Multiplicidade 
Multiplicidade Significado 
0..1 No mínimo zero (nenhum )e no máximo um. Indica que os objetos das 
classes associadas não precisam obrigatoriamente estar relacionados, mas 
se houver relacionamento indica que apenas uma instância da classe 
relaciona-se com as instância da outra classe (ou da outra extremidade da 
associação, se esta for unária. 
1..1 Um e somente um. Indica que apenas um objeto da classe relaciona-se com 
os objetos da outra classe. 
0..* No mínimo nenhum e no máximo muitos. Indica que pode ou não haver 
instâncias da classe participando do relacionamento 
* Muitos. Indica que muitos objetos da classe envolvida na associação. 
1..* No mínimo um e no máximo muitos. Indica que há pelo menos um objeto 
envolvido no relacionamento, podendo haver muitos objetos envolvidos. 
3..5 No mínimo três e no máximo cinco. Estabelece que existem pelo menos 
três instâncias envolvidas no relacionamento e que podem ser quatro ou 
cinco as instâncias envolvidas, mas não mais do que isso. 
Papéis 
 Informações extras que 
podem ajudar a explicar a 
função de um objeto. 
 
 O uso de papéis pode 
facilitar a compreensão da 
associação existente, mas 
nem sempre é necessário, 
e seu uso excessivo pode 
deixar os diagramas 
visualmente muito 
poluidos. 
Associação Binária 
 Associações binárias ocorrem quando são identificados 
relacionamentos entre objetos de duas classes distintas. 
Navegabilidade 
 A navegabilidade é representada por uma seta em uma 
das extremidades da associação, identificando o sentido 
em que as informações são transmitidas entre os objetos 
das classes envolvidas, ou seja, o sentido em que os 
métodos poderão ser disparados. 
Associação Ternária ou N-ária 
 Associações ternárias ou n-árias são associações que 
conectam objetos de mais de duas classes. São 
representadas pelo losango para onde convergem todas 
as ligações da associação. 
Exercícios 
 Estudo de caso: Sistema de Controle de Cinema 
Agregação 
 Agregação é um tipo especial de associação onde se tenta 
demonstrar que as informações de um objeto (chamado 
objeto-todo) precisam ser complementadas pelas 
informações contidas em um mais objetos de outra classe 
(chamados objetos-parte). 
Agregação 
 A associação de agregação pode, em muitos casos, ser 
substituída por uma associação binária simples, 
dependendo da visão de quem faz a modelagem. 
 
 A função principal de uma associação do tipo agregação é 
identificar a obrigatoriedade de uma complementação 
das informações de um objeto-todo por seus objetos-
parte, quando este for consultado. Já uma associação 
binária essa obrigatoriedade não está explícita. 
Composição 
 Uma associação do tipo composição constitui-se uma 
variação da agregação, onde é apresentado um vínculo 
mais forte entre os objetos-todo e os objetos-parte, 
procurando demonstrar que os objetos-parte tem de 
estar associados a um único objeto-todo. 
 
 Em uma composição os objetos-parte não podem ser 
destruídos por um objeto diferente do objeto-todo ao 
qual estão relacionados. 
Composição 
Quando usar composição ou agregação? 
 
 
 
 
 
 
 
 
 Quem é composição e quem é agregação? 
Quando usar composição ou agregação? 
 Na Agregação, a existência do Objeto-Parte faz sentido, 
mesmo não existindo o Objeto-Todo. Vejamos o exemplo 
Time-Atleta: 
Quando usar composição ou agregação? 
 Já a Composição é uma agregação mais forte; nela, a 
existência do Objeto-Parte NÃO faz sentido se o Objeto-
Todo não existir. 
Generalização/Especialização 
 O objetivo dessa associação é representar a ocorrência de 
herança entre as classes, identificando as classes-mãe (ou 
superclasses), chamadas gerais, e classes-filhas (ou 
subclasses), chamadas especializadas, demonstrando a 
hierarquia entre as classes e possivelmente métodos 
polimórficos nas classes especializadas. 
 
 A generalização/especialização ocorre quando existem 
duas ou mais classes com características semelhantes. 
Generalização/Especialização 
 Para evitar ter de declarar atributos e/ou métodos 
idênticos e como uma forma de reaproveitar código, cria-
se uma classe geral em que são declarados os atributos e 
métodos comuns a todas as classes envolvidas no 
processo e, então, declaram-se classes especializadas 
ligadas à classe geral, que herdam todas as suas 
características, podendo ter atributos e método próprios. 
Generalização/Especialização 
 Além disso, métodos podem ser redeclarados em uma 
classe especializada com o mesmo nome, mas 
comportando-se de forma diferente, não sendo, portanto, 
necessáriomodificar o código-fonte do sistema em 
relação às chamadas de métodos das classes 
especializadas, pois o nome do método não mudou, 
somente foi redeclarado em uma classe especializada, e 
só se comporta de maneira diferente quando for 
chamado por objetos dessa classe. 
Generalização/Especialização 
 
Classe Associativa 
 Classes associativas são aquelas produzidas quando da 
ocorrência de associações que tenham multiplicidade 
muitos (*) em todas as suas extremidades. 
 
 As classes associativas são necessárias nos casos em que 
existem atributos relacionados à associação que não 
podem ser armazenados por nenhuma das classes 
envolvidas. 
Classe Associativa 
Classe Associativa 
 No caso do exemplo anterior temos a seguinte situação: 
um ator atua em um filme e tem um único papel. 
 
 E se um ator interpretasse mais de um papel em um 
mesmo filme? 
Exercícios 
 Estudo de caso: Sistema de Controle Bancário 
Dependência 
 Este relacionamento, como o próprio nome diz, identifica 
certo grau de dependência de uma classe em relação à 
outra. 
Realização 
 Uma realização é um tipo de relacionamento especial que 
mistura características dos relacionamentos de 
generalização e dependência, sendo usada para 
identificar classes responsáveis por executar funções para 
outras classes. 
Interfaces 
 Podemos definir como interface o contrato entre a classe 
e o mundo exterior. Quando uma classe implementa uma 
interface, se compromete a fornecer o comportamento 
publicado por esta interface. 
 
 As interfaces podem ser de dois tipos: 
 Interfaces fornecidas 
 Interfaces requeridas 
Interfaces Requeridas 
 Este tipo de interface descreve os serviços que outras 
classes devem fornecer a uma determinada classe, que 
não precisa ter conhecimento de quais classes 
implementam esses serviços. 
Interfaces Fornecidas 
 Uma interface fornecida descreve um serviço 
implementado por uma classe. Ao implementar uma 
interface, uma classe suporta o conjunto de 
características contidas por esta e obedece às suas 
restrições. 
Interfaces 
 É comum que uma interface fornecida em uma classe seja 
um interface requerida em outra, podendo facilmente 
ocorrer de ambas as interfaces surgirem juntas. 
Restrições 
 Restrições constituem-se em informações extras que 
definem condições a serem validadas durante a 
implementação dos métodos de uma classe, das 
associações entre as classes ou mesmo de seus atributos. 
 
 As restrições são representadas por textos limitados por 
chaves. 
 
 Restrições podem ser usadas para detalhar requisitos 
não-funcionais, incluindo regras de negócio. 
Restrições 
Estereótipos do Diagrama de Classe 
 Estereótipos são uma maneira de destacar determinados 
componentes do diagrama, tornando explícito que tais 
componentes executam alguma função um pouco 
diferente dos demais componentes apresentados no 
diagrama. 
 Há três estereótipos mais utilizados no diagrama de 
classe: 
 <<entity>> 
 <<boundary>> 
 <<control>> 
Estereótipo <<entity>> 
 O estereótipo <<entity>> tem por objetivo tornar 
explícito que uma classe é uma entidade, ou seja, a classe 
contém informações recebidas e armazenada pelo 
sistema ou gerada por meio deste. 
 
 Também fornecem a informação de que normalmente 
terão muitos objetos e que os mesmo possivelmente 
terão um período de vida longa, isto é, existe a 
possibilidade de que os objetos dessas classes precisem 
ser persistidos, ou seja preservados fisicamente de 
alguma maneira. 
Estereótipo <<entity>> 
 Um problema de se utilizar esse estereótipo é que ele 
esconde os atributos e métodos da classe. 
Estereótipo <<boundary>> 
 O estereótipo <<boundary>>, também conhecido como 
estereótipo de fronteira, identifica uma classe que serve 
de comunicação entre os atores externos e o sistema 
propriamente dito. 
 
Estereótipo <<control>> 
 O estereótipo <<control>> identifica classes que servem 
de intermédio entre as classes <<boundary>> e as demais 
classes do sistema. Objetos <<control>> são responsáveis 
pro interpretar os eventos ocorridos sobre os objetos 
<<boundary>>, como movimento do mouse, 
pressionamento do botão. 
Exercícios 
 Estudo de caso: Sistema de Controle de Clube Social 
Exercícios 
 Estudo de caso: Sistema de Locação de Veículos

Continue navegando