• Nenhum resultado encontrado

link da apresentação

N/A
N/A
Protected

Academic year: 2021

Share "link da apresentação"

Copied!
33
0
0

Texto

(1)

DIAGRAMA DE

CLASSES

OS ELEMENTOS BÁSICOS PROFESSOR RENATO DE PIERRI

(2)

Diagrama de Classes - tópicos

• Propriedades: atributos e associações • Multiplicidade

• Interpretação de propriedades em programas • Associações bidirecionais

• Operações • Generalização • Palavras chaves • Responsabilidades

• Operações e atributos estáticos

• Interfaces e classes abstratas • Read Only e Frozen

• Objetos de referência e de valor • Associações qualificadas

• Classificação e generalização

• Classificação múltipla e dinâmica • Classe de associação

• Classe de template (parametrizada) • Enumerações

(3)

Propriedades: atributos e associações

• Mais utilizado é o diagrama de classes

• mostram as

• Propriedades

• Operações

• restrições

(4)

Propriedades: atributos e associações

• Propriedades estruturais

• Atributos

• Associações

(5)

• Atributos

• É uma linha de texto dentro da classe

visibilidade nome tipo multiplicidade = valor padrão {lista de propriedades} - nome: String [1] = “vira-lata” {readOnly}

Somente “nome” é necessário

“visibilidade” indica se é público (+) ou privado (-).

“nome” Corresponde ao nome de um campo em linguagem de programação. “tipo” Corresponde ao tipo de um campo.

“valor padrão” É o valor padrão do campo quando um novo objeto é criado.

(6)

• Associações

• É uma linha cheia entre duas classes da origem para o destino. • Permite mostrar a multiplicidade

• Quando usar, depende do contexto:

• Atributos – coisas pequenas (data, valor, booleanos) • Associações – informações mais significativas

(7)

• Multiplicidade indica quantos objetos uma propriedade pode ter, p.ex:

• O campo datadeRecebimento pode ter zero ou uma data de recebimento

• O campo éPré-Pago, booleano só pode ter um valor

• O campo itensdeLinha pode ter nenhuma LinhadePedido e não há limite superior para

o campo LinhadePedido, lembrando que o campo é ordenado (ordered)

• Multiplicidade traz o conceito de limite inferior e superior, p. ex: [0..1], [4..25].

• Se for importante, usar {ordered}, {unordered}, {unique}, {nonunique}, {bag} (coleção)

(8)

• Não há uma maneira única de interpretar no código as propriedades do UML. • Uma propriedade do UML é associada a um campo no código (mais comum). • (implementação focada no diagrama)

(9)

• Implementação focada na interface

• Se vale dos métodos de leitura

(10)

• Propriedades inversamente vinculadas

• Pode usar a seta para indicar a vinculação

• Pode-se utilizar um verbo para indicar a vinculação

(11)

• Ações que a classe realiza:

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

propriedades}

• “visibilidade” é público (+) ou privado (-) – há outros tipos

• “nome” é uma sequência de caracteres

• “lista-de-parâmetros” é uma lista de parâmetros da operação

• “tipo-de-retorno” é o valor retornado se tiver algum

• “lista-de-propriedades” indica os valores que aceitam a operação

(12)

• Lista de parâmetros usa notação semelhante:

• direção nome: tipo = valor-por-omissão

• “Nome”, “tipo” e “valor-por-omissão” são iguais aos dos atributos

• “direção” indica se é entrada (in), saída (out) ou ambos (inout).

• +saldoEm (data: Date) : Dinheiro

(13)

• Mostrada como texto entre << e >>

• Se você precisa de um modelo não previsto na UML, utilize um simbolo

da UML existente e marque-o com a palavra chave.

• Algumas palavras chaves são abreviadas

• <<interface>> <<I>>

• {abstract} {A}

(14)

• Detalhar a função de uma classe

• Utilizar comentários no próprio compartimento da classe.

(15)

• Atributos que se aplicam a uma classe

• próximo_pedido

• atendimento_corrente

• Atributo estático é sublinhado.

• Utilizar comentários no próprio compartimento da classe.

(16)

• Agregação – “parte de”

• Carece de semântica – evitar usar

• Composição. boa para mostrar

• propriedades que tem valor

• propriedades para objetos de valor

• propriedades que tem forte

participação e ou exclusiva em outros

componentes específicos.

(17)

• Calculada a partir de outros valores

• Data de início – Data término – /Duração

(18)

• Classe abstrata não pode ser instanciada diretamente • Faz o instanciamento de uma subclasse.

• A classe abstrata contém operações abstratas (sem implementação)

• Classe e ou operações abstratas são exibidas em itálico ou usando o rótulo {abstract}. • A interface corresponde às interfaces do C# e Java – usa <<interface>>

• Uma classe pode fornecer uma interface. Basta implementar um subtipo da interface • Uma classe exige uma interface se precisa que a interface seja instanciada para

funcionar.

(19)

Diagrama de Classes – Interfaces e classes abstratas

• Classe abstrata não pode ser instanciada diretamente

• Faz o instanciamento de uma subclasse.

• A classe abstrata contém operações abstratas (sem implementação)

• Classe e ou operações abstratas são exibidas em itálico ou usando o rótulo {abstract}.

• A interface corresponde às interfaces do C# e Java – usa <<interface>>

• Uma classe pode fornecer uma interface. Basta implementar um subtipo da interface

(20)

Diagrama de Classes – Interfaces e classes abstratas

(21)

Diagrama de Classes – Read Only e Frozen

• ReadOnly – Propriedade que somente pode ser lida e não pode ser atualizada

• Frozen – O valor da propriedade não pode ser alterado durante o tempo de vida de um objeto. Foi retirada na UML 2.0

(22)

Diagrama de Classes – Objetos de referência e de valor

• Objetos tem identidade. É verdade mas...

• É mais importante para objetos de referência do que para objetos de valor. • Objeto de referência, Cliente p. ex:

• Identidade é relevante porque há necessidade de identificar o cliente. • Pode haver duplicidade ou não

• Objeto de valor, Data, p.ex:

• Pode ter vários objetos com a mesma data

• Para saber se duas datas são iguais, é mais importante comparar o que elas representam do que o valor em si.

• A data é um objeto e não pode ser compartilhada

(23)

Diagrama de Classes – Associações qualificadas

• Equivalente da UML, em programação, a estruturas do tipo chave - valor

• arrays associativos • mapeamentos

• hashing • dicionários

class Pedido...

public LinhadePedido obterItemdeLinha(Produto umProduto); public void adicionarItemdeLinha(Número quantidade, Produto paraProduto);

(24)

Diagrama de Classes – Classificação e generalização

• Ao comentar sobre subtipagem, é comum usar o relacionamento “é um”. • Considere:

1. Shep é um Border Collie.

2. Um Border Collie é um Cachorro. 3. Cachorros são Animais.

4. Border Collie é uma Raça. 5. Cachorro é uma Espécie.

• Combine 1 com 2 – Ok • Combine 2 com 3 – Ok

• Combine 1 com 2 com 3 – Temos Shep é um animal – Ok.

Generalização – o tipo Border Collie é um subtipo do tipo Cachorro. Classificação – o objeto Shep é uma instância do tipo Border Collie A generalização é transitiva; a classificação, não.

Posso combinar a classificação seguida de uma generalização, mas não o contrário.

(25)

Diagrama de Classes – Classificação múltipla

• Classificação única

• Cada objeto pertence à sua classe

• Classificação múltipla

• Objeto é descrito por vários tipos

• Não é necessariamente conectado por herança • Não é a mesma coisa

que herança múltipla • Precisa especificar quais

(26)

Diagrama de Classes – Classificação dinâmica

• Classificação dinâmica

• Conta corrente sem saldo muda seu comportamento

• Várias funções são sobrecritas (“retirar”, “fechar”, “cálculo do saldo” ...)

• Na classificação dinâmica, muda-se a classe dentro da estrutura de

subtipagem

• Classificação estática não admite essa operação.

(27)

Diagrama de Classes – Classe de associação

(28)

Diagrama de Classes – Classe de template (parametrizada)

• C++ possui classe parametrizada, ou template • Está prevista sua inserção em Java e C#

• Serve para definir comportamento para conjuntos em geral, por exemplo:

class Conjunto <T>{

void insert (T novoElemento); void remove (T umElemento); }

A partir da criação do template, posso criar conjuntos baseado nesse template:

(29)

Diagrama de Classes: Enumerações

• Mostra um conjunto fixo de valores

• Não possui nenhum valor além de seu valor simbólico

• Utiliza a palavra chave <<enumeration>>

(30)

Diagrama de Classes: Classe ativa

• Possui instâncias e cada instância executa e controla sua própria linha de execução e controle.

• Processador de comandos é um bom exemplo. Recebe um objeto de comando e o executa.

(31)

Diagrama de Classes: Visibilidade

• Simples, mas pode assumir aspectos complexos. • Elementos públicos e privados

• +Public, -Private, ~Package e #Protected não é a mesma coisa em todas linguagens • Utilizar de acordo com as regras da linguagem que fará a implementação.

(32)

Diagrama de Classes: Mensagens

• UML não define chamadas de mensagem nos diagramas de classe.

• Setas com as mensagens que um objeto envia para outro objeto.

• Abrangem múltiplos casos de uso • Não é normativo.

• Diagrama de comunicação

(33)

BIBLIOGRAFIA

FOWLER, Martin. UML Essencial: Um breve guia para a linguagem-padrão de modelagem de objetos. 3. ed. São Paulo: Bookman, 2005. 167 p.

Referências

Documentos relacionados

Um estudo placebo-controlado (PRAISE) para avaliar pacientes portadores de insuficiência cardíaca classes NYHA III e IV recebendo digoxina, diuréticos e inibidores

Eu sou grato por tudo que tenho O tesouro maior deste mundo Me foi dado como herança eterna Maior prova de um amor tão profundo Tenho vida, alegria em todo tempo Tenho amigos,

A sociedade contemporânea está imersa em um espaço técnico-cientifico-informacional, cuja gênese de construção é moldada pelas novas tecnologias, programas virtuais e

Após a pega da medula - Neste momento, o paciente estará sob uso de medicamentos imunossupressores para que não ocorra a rejeição da medula óssea doada.. Durante este período,

Mudar mentalidades e proporcionar conhecimento para que as equipes de vendas dos promotores de feiras sejam mais eficientes e produtivas e assim maximizar os

Este índice é composto de 11 questões sobre dor, desconforto e função, sendo seis questões sobre dor e desconforto (sendo uma destas distintas para joelho e

Cortesia da Galeria Barbara Gladstone, Nova Iorque.. (©Photo

preta ou azul. Tenha muito cuidado com o cartão de respostas, pois o mesmo não poderá ser substituído. Somente uma corresponde adequadamente ao quesito proposto. Você só deve