Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Domínios, Grau de Dependência e Coesão
Domínios e Coesão
2
Domínios de Classes: As classes têm complexidade e características diferentes. Variam com a área de negócios, área de indústria, etc. Vamos tentar classificar as classes em grandes “domínios” Domínios e Coesão
3
Classificação das Classes:
Domínio de Aplicação: Classes gerenciadoras de eventos Classes reconhecedoras de eventos Domínio de negócios: Classes de relacionamento Classes de papel Classes de atributo Domínios e Coesão
4
… Domínio de arquitetura Domínio de base: Classes de interface humana
Classes de manipulação de banco de dados Classes de comunicação de máquina Domínio de base: Classes semânticas Classes estruturais Classes fundamentais Domínios e Coesão
5
O domínio de base: Utilizáveis em várias aplicações, em indústrias diferentes e em ampla faixa de arquiteturas de computador: fundamentais: Booleano, Char, Real, … estruturais: Pilha, Fila, Lista, Conjunto, … semânticas: Data, Hora, Ângulo, Dinheiro, Massa, … Domínios e Coesão
6
O domínio de arquitetura:
Reutilização limitada a uma única arquitetura de computador: comunicação de máquina: Porta, MáquinaRemota, … manipulação de banco de dados: Negociação, Backup, … interface humana: Janela, BotãoDeComando, … Domínios e Coesão
7
O domínio de negócios: Úteis em muitas aplicações, mas restritas a uma área de negócios: de atributos: Saldo, TemperaturaDoCorpo, … de papel: Cliente, Paciente, … de relacionamento: TitularidadeDeConta, SupervisãoDePaciente, … Domínios e Coesão
8
O domínio de aplicação:
Utilizada em uma única aplicação ou em aplicações afins: reconhecedoras de eventos: MonitorDeTemperaturaDePaciente, … gerenciadoras de eventos: AquecimentoDePacienteHipotérmico, … Domínios e Coesão
9
Domínio de classes e suas reutilizações:
Domínio de aplicação Gerenciadora de eventos Reconhecedora de eventos Domínio de negócios Relacionamento Papel Atributo Domínio de arquitetura Interface humana Banco de dados Comunicação de máquina Domínio de base Semântica Estrutura Fundamental Baixa reutilização Média reutilização Alta reutilização Domínios e Coesão
10
A origem das classes em cada domínio
De onde vêm as classes? Domínio de base >> “compradas” de um distribuidor! [custo de desenvolver 1000 vezes maior!] Eventualmente, podem ser acrescidas algumas classes próprias. Domínios e Coesão
11
... Domínio de arquitetura: Similar ao domínio de base, com as observações: Talvez você tenha de adquirir do fornecedor da infra-estrutura de hardware e software Podem existir incompatibilidades de classes provenientes dos diversos distribuidores A biblioteca de base pode ser incompatível com as bibliotecas de arquitetura É provável que a bilbioteca de arquitetura precise de modificações Domínios e Coesão
12
... Domínio de negócio: Bastante difíceis de comprar! (distribuidores gerais não têm habilidade; mercado é difícel de contentar) Boa análise e desenho resultarão em grau elevado de reutilização Domínios e Coesão
13
… Domínio de aplicação:
Reutilização pequena! {não se preocupe muito com isto} Podem ser implementadas como procedimentos convencionais, ou pacote de utilidade. Por ex: AquecimentoDePacienteHipotérmico: - procedimento; única operação de classe; ou operação da classe Paciente. Domínios e Coesão
14
Gráu de dependência: O conjunto de classes referenciadas por uma determinada classe: C tem um método que envia mensagem com argumento retornado de D C tem método com variável local de D C supre D com parâmetro de classe real em classe parametrizada C é herdeira de D C tem atributo de D C tem argumento de entrada de D C é uma variável de D C tem uma classe amiga D (C++) Domínios e Coesão
15
Conjunto classe-referência direto:
3 Domínios e Coesão
16
Conjunto classe-referência indireto:
12 Domínios e Coesão
17
Utilização do grau de dependência:
Fornece uma medida da sofisticação da classe [quanto está acima do domínio de base!] Classes de domínios mais altos tem alto grau de dependência indireto (mais baixos > baixo grau) Grau inesperado pode indicar deficiência de desenho (coesão X desenho do nada) Domínios e Coesão
18
Lei de Deméter [projeto --]
Para um obj da classe C, e qualquer op, cada objeto destinatário de mensagem deve ser: O próprio obj (self /super; this; current) Objeto referenciado na assinatura de op Objeto referenciado por variável de obj Objeto criado por op Objeto referenciado por variável global Domínios e Coesão
19
Coesão de Classe: É a medida da inter-relação das características (atributos e operações) da interface externa de uma classe Baixa coesão: características disparatadas; Alta coesão: características contribuem para abstração de tipo implementada pela classe Domínios e Coesão
20
Critérios de desenho X Níveis de encapsulamento (nível 2)
PARA: DE: NIVEL 0 (linhas código) NIVEL 1 (operação) NIVEL 2 (classe) Programação estruturada Fan-out de mensagem __ Coesão Acoplamento Coesão de classe Acoplamento de classe Domínios e Coesão
21
Anomalias de coesão: Coesão de instância mista Coesão de domínio misto
Coesão de papel misto Domínios e Coesão
22
Coesão de instância mista:
Algumas características são indefinidas para alguns objetos da classe. Por ex: Classe Vendedor fred é comissionado: fred.LançarPorcentagemComis; mary não é comissionada: X mary.LançarPorcentagemComis; Domínios e Coesão
23
Vendedor Comissionado
solução: Vendedor Vendedor Comissionado Vendedor Não Comis. /porcentagemDeComis: . Domínios e Coesão
24
Coesão de domínio misto:
Contém um elemento que cria dependência em relação a classe extrínseca de domínio diferente Extrínseca: Elefante e Pessoa Intrínseca: Data à Pessoa {data de nascimento} Domínios e Coesão
25
exemplo: Real arcTang: Ângulo
equivalenteEmCelsius: TemperaturaEmCelsius quantiaEmEuro: DinheiroEuropeu Domínios e Coesão
26
Coesão de papel misto (a menos problemática!):
Contém um elemento que cria dependência com classe extrínseca no mesmo domínio Ex: Pessoa e o atributo númeroDeCachorrosPossuidos Domínios e Coesão
27
Problemas: Se uma aplicação não trata com cachorros? – as pessoas continuam com o atributo númeroDeCachorrosPossuidos? E, como proceder com: númeroDeBarcosPossuidos, númeroDeGatosPossuidos, númeroDeSaposPossuidos? Domínios e Coesão
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.