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

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

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

Apresentações semelhantes


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

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

2 Domínios e Coesão2 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

3 Domínios e Coesão3 Classificação das Classes: zDomínio de Aplicação: yClasses gerenciadoras de eventos yClasses reconhecedoras de eventos zDomínio de negócios: yClasses de relacionamento yClasses de papel yClasses de atributo

4 Domínios e Coesão4 … zDomínio de arquitetura yClasses de interface humana yClasses de manipulação de banco de dados yClasses de comunicação de máquina zDomínio de base: yClasses semânticas yClasses estruturais yClasses fundamentais

5 Domínios e Coesão5 O domínio de base: zUtilizáveis em várias aplicações, em indústrias diferentes e em ampla faixa de arquiteturas de computador: yfundamentais: Booleano, Char, Real, … yestruturais: Pilha, Fila, Lista, Conjunto, … ysemânticas: Data, Hora, Ângulo, Dinheiro, Massa, …

6 Domínios e Coesão6 O domínio de arquitetura: zReutilização limitada a uma única arquitetura de computador: ycomunicação de máquina: Porta, MáquinaRemota, … ymanipulação de banco de dados: Negociação, Backup, … yinterface humana: Janela, BotãoDeComando, …

7 Domínios e Coesão7 O domínio de negócios: zÚteis em muitas aplicações, mas restritas a uma área de negócios: yde atributos: Saldo, TemperaturaDoCorpo, … yde papel: Cliente, Paciente, … yde relacionamento: TitularidadeDeConta, SupervisãoDePaciente, …

8 Domínios e Coesão8 O domínio de aplicação: zUtilizada em uma única aplicação ou em aplicações afins: yreconhecedoras de eventos: MonitorDeTemperaturaDePaciente, … ygerenciadoras de eventos: AquecimentoDePacienteHipotérmico, …

9 Domínios e Coesão9 Domínio de classes e suas reutilizações: zDomínio de aplicação yGerenciadora de eventos yReconhecedora de eventos zDomínio de negócios yRelacionamento yPapel yAtributo zDomínio de arquitetura yInterface humana yBanco de dados yComunicação de máquina zDomínio de base ySemântica yEstrutura yFundamental Baixa reutilização Alta reutilização Média reutilização

10 Domínios e Coesão10 A origem das classes em cada domínio zDe onde vêm as classes? yDomínio de base >> compradas de um distribuidor! [custo de desenvolver 1000 vezes maior!] Eventualmente, podem ser acrescidas algumas classes próprias.

11 Domínios e Coesão11... zDomínio de arquitetura: Similar ao domínio de base, com as observações: yTalvez você tenha de adquirir do fornecedor da infra- estrutura de hardware e software yPodem existir incompatibilidades de classes provenientes dos diversos distribuidores yA biblioteca de base pode ser incompatível com as bibliotecas de arquitetura yÉ provável que a bilbioteca de arquitetura precise de modificações

12 Domínios e Coesão12... zDomínio de negócio: yBastante difíceis de comprar! (distribuidores gerais não têm habilidade; mercado é difícel de contentar) yBoa análise e desenho resultarão em grau elevado de reutilização

13 Domínios e Coesão13 … zDomínio de aplicação: yReutilização pequena! {não se preocupe muito com isto} yPodem 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.

14 Domínios e Coesão14 Gráu de dependência: zO conjunto de classes referenciadas por uma determinada classe: zC é herdeira de D zC tem atributo de D zC tem argumento de entrada de D zC é uma variável de D zC tem uma classe amiga D (C++) zC tem um método que envia mensagem com argumento retornado de D zC tem método com variável local de D zC supre D com parâmetro de classe real em classe parametrizada

15 Domínios e Coesão15 Conjunto classe-referência direto: C C2C2 C3C3 C1C1 3

16 Domínios e Coesão16 Conjunto classe-referência indireto: C C2C3C1 C11C12C21C31C32 F1F2F3F4 12

17 Domínios e Coesão17 Utilização do grau de dependência: zFornece uma medida da sofisticação da classe [quanto está acima do domínio de base!] zClasses de domínios mais altos tem alto grau de dependência indireto (mais baixos > baixo grau) zGrau inesperado pode indicar deficiência de desenho (coesão X desenho do nada)

18 Domínios e Coesão18 Lei de Deméter [projeto --] zPara um obj da classe C, e qualquer op, cada objeto destinatário de mensagem deve ser: 1.O próprio obj (self /super; this; current) 2.Objeto referenciado na assinatura de op 3.Objeto referenciado por variável de obj 4.Objeto criado por op 5.Objeto referenciado por variável global

19 Domínios e Coesão19 Coesão de Classe: zÉ a medida da inter-relação das características (atributos e operações) da interface externa de uma classe zBaixa coesão: características disparatadas; zAlta coesão: características contribuem para abstração de tipo implementada pela classe

20 Domínios e Coesão20 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) NIVEL 0 (linhas código) Programação estruturada Fan-out de mensagem __ NIVEL 1 (operação) Coesão Acoplamento __ NIVEL 2 (classe) __ Coesão de classe Acoplamento de classe

21 Domínios e Coesão21 Anomalias de coesão: zCoesão de instância mista zCoesão de domínio misto zCoesão de papel misto

22 Domínios e Coesão22 Coesão de instância mista: zAlgumas características são indefinidas para alguns objetos da classe. zPor ex: Classe Vendedor fred é comissionado: fred.LançarPorcentagemComis; mary não é comissionada: Xmary.LançarPorcentagemComis;

23 Domínios e Coesão23 solução: Vendedor Vendedor Comissionado /porcentagemDeComis:. Vendedor Não Comis.

24 Domínios e Coesão24 Coesão de domínio misto: zContém um elemento que cria dependência em relação a classe extrínseca de domínio diferente zExtrínseca: Elefante e Pessoa zIntrínseca: Data à Pessoa {data de nascimento}

25 Domínios e Coesão25 exemplo: Real arcTang: Ângulo equivalenteEmCelsius: TemperaturaEmCelsius quantiaEmEuro: DinheiroEuropeu

26 Domínios e Coesão26 Coesão de papel misto (a menos problemática!): zContém um elemento que cria dependência com classe extrínseca no mesmo domínio zEx: Pessoa e o atributo númeroDeCachorrosPossuidos

27 Domínios e Coesão27 Problemas: zSe uma aplicação não trata com cachorros? – as pessoas continuam com o atributo númeroDeCachorrosPossuidos? zE, como proceder com: númeroDeBarcosPossuidos, númeroDeGatosPossuidos, númeroDeSaposPossuidos?


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

Apresentações semelhantes


Anúncios Google