• 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,

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

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