• Nenhum resultado encontrado

UML - 05 - Diagrama de Classes

N/A
N/A
Protected

Academic year: 2021

Share "UML - 05 - Diagrama de Classes"

Copied!
42
0
0

Texto

(1)

Diagrama de Classes

(2)

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

(3)

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.

(4)

Objetos

Número: 991 Num. Série: 123 Marca: Motorola Número: 992 Num. Série: 124 Marca: Motorola Número: 994 Num. Série: 126 Marca: Motorola Número: 993 Num. Série: 127 Marca: Motorola

(5)

São elementos mapeados do mundo real.Possuem:Informações;Comportamentos;Identidade única e  Relacionamentos.

Tem natureza dinâmica.

(6)

Classes

Número: 991 Num. Série: 123 Marca: Motorola Número: 992 Num. Série: 124 Marca: Motorola Número: 994 Num. Série: 126 Marca: Motorola Número: 993 Num. Série: 127 Marca: Motorola

(7)

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.

(8)

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

(9)

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

Sintaxe padrão:

Atributos

(10)

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

(11)

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

(12)

Tipos de Operações:

Construtora

Operação que cria e/ou inicializa um objetoPrimeira 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

(13)

Os tipos de relacionamentos são:Associação  Agregação  ComposiçãoGeneralizaçãoDependência  Realização

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

Nome  Papeis

MultiplicidadesOutros

(14)

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.

(15)

Associação Unária.Associação Binária.Associação Ternária ouAssociação N-ária.

Relacionamento: Associação

Profes sor Disciplina Curso

(16)

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.

(17)

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.

(18)

Multiplicidade

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

Valores mais comuns:

1 – exatamente um5 – exatamente cinco0..1 – zero ou um0..* – zero ou mais* – zero ou mais1..* – um ou maism..n – de m a n3..5 – de 3 a 5

(19)

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.

(20)

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

(21)

Unidirecional:

Indeterminada ou Bidirecional:

(22)

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.

(23)

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.

(24)

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

(25)

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”

(26)

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.

(27)

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

(28)

Relacionamento: Generalização

Que subclasses são da mesma categoria?

(29)

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}.

(30)

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.

(31)

Exercício

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

(32)

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.

(33)

É 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

(34)

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.

(35)

Exemplo de uso de Dependência entre interfaces.

(36)

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

(37)

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

(38)

É 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

(39)

Exemplos:Estereótipo de ClassesBoundary (Fronteira)Control (Controle)Entity (Entidade)

Estereótipo

(40)

Exercício

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

(41)

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

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

(42)

Referências

Documentos relacionados

Se há algo que é certo na vida da universidade, e particularmente da Católica, é que enquanto instituição–acontecimento o seu trabalho se define por uma incompletude

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

- Criar programa de formação continuada para os servidores públicos, promovendo uma nova dinâmica organizacional baseada na promoção da qualificação e no desenvolvimento

Os roedores (Rattus norvergicus, Rattus rattus e Mus musculus) são os principais responsáveis pela contaminação do ambiente por leptospiras, pois são portadores

“De outra parte, em se tratando de arguição de negativa de prestação jurisdicional, o prequestionamento tem de estar revelado nos embargos de declaração, ou seja, a parte

- Superaquecimento estático (SS) é definido como o superaquecimento no qual a válvula permanece fechada e acima do qual a válvula começa abrir; - Superaquecimento de abertura (OS) é