Diagrama de Classes -...

42
Régis Simão – Diagrama de Classes 1/42 Diagrama de Classes Régis Patrick Silva Simão

Transcript of Diagrama de Classes -...

Page 1: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 1/42

Diagrama de Classes

Régis Patrick Silva Simão

Page 2: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 2/42

Agenda

Introdução

Objetos

Classes

Atributos

Operações & Métodos

Relacionamentos

Relacionamento: Associação

Nome de Relacionamento

Papeis de Relacionamento

Multiplicidade

Navegabilidade

Classes de Associação

Associações OU

Relacionamento: Agregação

Relacionamento: Composição

Relacionamento: Generalização

Restrições

Interface

Relacionamento: Realização

Relacionamento: Dependência

Pacote

Estereótipos

Bibliografia

Page 3: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 3/42

No mundo real, manuseiam-se objetos.

Com o intuito de diminuir a distância entre o mundo real e mundo da solução, modelam-se os elementos manuseados pelos sistemas como objetos.

O diagrama de classe modela a estrutura estática do sistema, isto é, os objetos manipulados por um sistema e seus relacionamentos.

Introdução

Page 4: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 4/42

Objetos

Número: 991Num. Série: 123Marca: Motorola

Número: 992Num. Série: 124Marca: Motorola

Número: 994Num. Série: 126Marca: Motorola

Número: 993Num. Série: 127Marca: Motorola

Page 5: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 5/42

São elementos mapeados do mundo real.

Possuem:

Informações;

Comportamentos;

Identidade única e

Relacionamentos.

Tem natureza dinâmica.

Objetos

Page 6: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 6/42

Classes

Número: 991Num. Série: 123Marca: Motorola

Número: 992Num. Série: 124Marca: Motorola

Número: 994Num. Série: 126Marca: Motorola

Número: 993Num. Série: 127Marca: Motorola

Page 7: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 7/42

Classe é a definição dos objetos, define:

Informações que os objetos devem possuir: atributos

Comportamento que os objetos podem executar: operações

Tem natureza estática.

Os relacionamentos entre as classes definem os relacionamentos que os objetos podem possuir.

O compartimento do nome da classe é sempre obrigatório, mas os compartimentos de atributos e operações são opcionais.

Classes

Page 8: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 8/42

Definem as informações que os objetos devem ter.

Visibilidade:

Privado (-) somente o próprio objeto tem acesso aos atributos privados

Público (+) qualquer outro objeto pode acessar os atributos públicos

Protegido (#) usado em relacionamento de generalização (herança), somente a própria classe e as classe filhas têm acesso aos métodos protegidos da classe pai

Atributos

Page 9: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 9/42

Recomendação: use atributos privados, obrigue o acesso a eles somente através de operações.

Sintaxe padrão:

Atributos

visibilidade nome: tipo [Multiplicidade] = valor-inicial

Page 10: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 10/42

Representam os comportamentos dos objetos

A operação é somente a descrição do comportamento (a assinatura do método)

O método é a implementação da operação

Operações e Métodos

Page 11: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 11/42

Visibilidade:

Privado (-) somente o próprio objeto tem acesso aos métodos privados

Público (+) qualquer outro objeto pode invocar os atributos públicos

Protegido (#) usado em relacionamento de generalização (herança), somente a própria classe e as classe filhas têm acesso aos métodos protegidos da classe pai

Sintaxe padrão:

Operações e Métodos

visibilidade nome (lista de parâmetros) : tipo-de-retorno

Page 12: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 12/42

Tipos de Operações:

Construtora

Operação que cria e/ou inicializa um objeto

Primeira operação executada

Executada no momento em que o objeto é instanciado

Seletora

Pode ler, mas não alterar o estado do objeto

Modificadora

Pode alterar o estado do objeto

Destrutora

Operação que finaliza um objeto

Última operação executada

Executada no momento em que o objeto é destruído

Operações e Métodos

Page 13: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 13/42

Os tipos de relacionamentos são:

Associação

Agregação

Composição

Generalização

Dependência

Realização

Um relacionamento também possuem informações, como:

Nome

Papeis

Multiplicidades

Outros

Relacionamentos

Page 14: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 14/42

Relacionamento: Associação

Relacionamento mais comum entre classes.

Mapeia o relacionamento entre os objetos do mundo real.

Represente uma dependência estrutural, pois, na implementação, uma classe pode ter atributos do tipo da outra classe. Isto dependerá da navegabilidade.

Page 15: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 15/42

Associação Unária.

Associação Binária.

Associação Ternária ou

Associação N-ária.

Relacionamento: Associação

Professor

Disciplina

Curso

Page 16: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 16/42

Identifica um relacionamento.

Pode-se usar um nome ou um verbo para nomear um relacionamento. O verbo deve ser usado juntamente com a navegabilidade para indicar o sentido de leitura do relacionamento.

Recomendação: somente use nomes de relacionamentos quando não tiver claro o significado do relacionamento. Cuidado para não poluir o diagrama.

Nome de Relacionamento

Page 17: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 17/42

Papeis de Relacionamento

Identifica a função que um objeto da classes assume no relacionamento.

Deve ser um substantivo.

Também possui visibilidade, pois, em caso de geração de código, este substantivo será o nome do atributo dentro da outra classe. Isto também depende da navegabilidade.

Page 18: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 18/42

Multiplicidade

Indica quantos objetos de uma classe participam do relacionamento com um objeto da outra classe.

Valores mais comuns:

1 – exatamente um

5 – exatamente cinco

0..1 – zero ou um

0..* – zero ou mais

* – zero ou mais

1..* – um ou mais

m..n – de m a n

3..5 – de 3 a 5

Page 19: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 19/42

Navegabilidade

Indica que dado um objeto pode-se alcançar outro objeto.

Na implementação, a navegabilidade vai definir se um uma classe juntamente com seu papel irão gerar um atributo dentro da outra classe.

Page 20: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 20/42

Semanticamente: Considerando duas classes, A e B, que se relacionam, a navegabilidade de A para B indica que a partir de um objeto de A pode-se obter rapidamente os objetos de B que se relacionam com o objeto de A.

Caso não haja navegabilidade de B para A, para se obter os objetos de A que se relacionam com um objeto de B, deve-se percorrer todos os objetos de A, perguntando se o objeto de B está associado aquele determinado objeto de A.

Navegabilidade

Classe A Classe B

Page 21: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 21/42

Unidirecional:

Indeterminada ou Bidirecional:

Navegabilidade

Page 22: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 22/42

Quando se usa a navegabilidade, ganha-se desempenho, pois, rapidamente se alcança outros objetos.

Mas perde-se em quantidade de espaço, pois exige-se mais ponteiros para referenciar os outros objetos.

Recomendação: não se preocupe com a navegabilidade logo de início, deixe para decidir a navegabilidade após os diagramas de seqüência, pois, você terá uma melhor visão de que objetos deseja-se alcançar.

Navegabilidade

Page 23: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 23/42

Quando existem atributos que são próprios do relacionamento, não pertencendo especificamente a uma das classes que participam do relacionamento.

A classe de associação tem as mesmas características de qualquer outra classe. Tem atributos, operações e relacionamentos.

Classes de Associação

Page 24: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 24/42

Associação OU

É o conceito de OU exclusivo.

Uma classe A pode ser relacionar com várias outras classes.

Mas quando se diz que estes relacionamentos pertencem a uma associação OU, cada objeto da classe A somente pode se relacionar com os objetos de uma mesma classes.

Page 25: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 25/42

Relacionamento: Agregação

Caso particular de associação

Representa um relacionamento do tipo Todo-Parte.

A vida do objeto parte não depende da vida do objeto todo.

Um objeto parte pode ser compartilhado por vários objetos “todos” (Agregação por Referência).

Também representa uma dependência estrutural, podendo gerar um atributo do tipo da classe “parte” dentro da classe que representa o todo.

Page 26: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 26/42

Relacionamento: Composição

Caso particular de agregação

Também representa um relacionamento do tipo Todo-Parte.

A vida do objeto parte depende da vida do objeto todo.

Um objeto parte não pode ser compartilhado por vários todos (Agregação por Valor).

Também representa uma dependência estrutural, sempre gera um atributo do tipo da classe parte dentro da classe que representa o todo.

Page 27: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 27/42

Relacionamento entre itens gerais e tipos mais específicos

Classe Mãe/Superclasse x Classe Filha/Subclasse

Relacionamento do tipo “é-um”

Subclasses herdam atributos, operações e relacionamentos da superclasse

Necessária para o polimorfismo

Relacionamento: Generalização

Page 28: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 28/42

Relacionamento: Generalização

Que subclasses são da mesma categoria?

Forma organizada por categoria

Page 29: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 29/42

Restrições

É um dos mecanismos de extensão da UML.

Indica uma restrição sobre um elemento da UML. Por exemplo, sobre associações onde gera a Associação OU.

Deve vir entre chaves ({,}), como {ou}.

Page 30: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 30/42

Restrições no relacionamento de Generalização:

Completo ou Incompleto: usado para indicar se todas as classes filhas de uma herança estão modeladas ou não.

Disjunção ou Sobreposição: usada para indicar se existem objetos de uma classe filha que também pode ser enquadrados como objeto de outra classe filha.

Restrições

Page 31: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 31/42

Exercício

Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Exercícios

Page 32: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 32/42

Interface

É uma classe que possui somente operações e relacionamentos do tipo Implementação e Dependência.

Isto é, não define atributos nem métodos.

Permite a utilização de chamadas polimórficas sem a utilização de herança.

Forma comum Forma estendida

Page 33: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 33/42

É um relacionamento entre uma interface e uma classe, onde a classe é obrigada a implementar os serviços definidos pela interface.

Entre interfaces, o relacionamento passa a ser a Generalização, pois a interface filha herda os serviços da interface mãe.

Relacionamento: Realização ou Implementação

Forma comum Forma estendida

Page 34: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 34/42

Usado quando uma classe depende de outra para realizar suas funções (comportamentos).

Representa uma dependência comportamental e não estrutural.

Na implementação, a dependência comportamental pode ocorrer através da passagem de um parâmetro ou de um objeto local de um método, do uso de objeto global ou classe abstrata, etc.

Relacionamento: Dependência

Page 35: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 35/42

Exemplo de uso de Dependência entre interfaces.

Relacionamento: Dependência

Page 36: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 36/42

Um pacote é um mecanismo de propósito geral para a organização de elementos em grupo.

Na modelagem, um pacote pode conter: classes, visões, relacionamentos, outros pacotes, etc

Em um sistema, um pacote contém um conjunto de classes e interfaces.

Pacote

Apresentacao+ frmInscricao

curso

+ Aluno+ Curso- Materia+ Pessoa

+ Professor

Controle

Page 37: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 37/42

O relacionamento entre pacotes é a Dependência.

Um pacote também possui o conceito de encapsulamento. Para isso, as classes também possui a informação sobre visibilidade:

Pública (+)

Classes que podem ser exportadas para outros pacotes

Privada (-)

Classes que não são exportadas

Pacote

curso

+ Aluno+ Curso- Materia+ Pessoa

+ Professor

Page 38: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 38/42

É um outro mecanismo de extensão da UML.

Serve para classificar os elementos (Categorizar), criando novos conceitos ou elementos não definidos na UML.

Exemplos:

Estereótipo de Relacionamento entre Casos de Uso:

Include

Extend

Estereótipo

Page 39: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 39/42

Exemplos:

Estereótipo de Classes

Boundary (Fronteira)

Control (Controle)

Entity (Entidade)

Estereótipo

Page 40: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 40/42

Exercício

Desenhe o diagrama de classes para o sistema de Vídeo Locadora

Exercícios

Page 41: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 41/42

FOWLER, Martin. UML Essencial. 3a. edição. Bookman, 2005.

BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML – Guia do Usuário. Campus, 2000.

Bibliografia

Page 42: Diagrama de Classes - regissimao.com.brregissimao.com.br/wp-content/uploads/2014/03/UML-05-Diagrama-de... · Desenhe o diagrama de classes para o sistema de Assinatura de Revistas

Régis Simão – Diagrama de Classes 42/42

FIM!!!