A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Domínios, Grau de Dependência e Coesão

Apresentações semelhantes


Apresentação em tema: "Domínios, Grau de Dependência e Coesão"— Transcrição da apresentação:

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


Carregar ppt "Domínios, Grau de Dependência e Coesão"

Apresentações semelhantes


Anúncios Google