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

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

Encapsulamento e Congeneridade1. 2 Estrutura de Encapsulamento zEvolução do software convencional: yInstruções de máquina yLinhas de código de um montador.

Apresentações semelhantes


Apresentação em tema: "Encapsulamento e Congeneridade1. 2 Estrutura de Encapsulamento zEvolução do software convencional: yInstruções de máquina yLinhas de código de um montador."— Transcrição da apresentação:

1 Encapsulamento e Congeneridade1

2 2 Estrutura de Encapsulamento zEvolução do software convencional: yInstruções de máquina yLinhas de código de um montador assembler yProcedimentos e funções calcularRaizQuadrada!!!

3 Encapsulamento e Congeneridade3 Níveis de encapsulamento linhas primárias de código módulo procedural estrutura classe/objeto Nível 0 Nível 1 Nível 2

4 Encapsulamento e Congeneridade4 Níveis mais altos: zNíveis 3 e 4 >pacotes e componentes! zEx 1: classes de áreas de negócios (agrupadas horizontalmente): passageiro, aeroporto, funcionário, aeronave, … zEx 2: implementar um assunto (agrupadas verticalmente): passageiro, reserva, etapa, assento, …

5 Encapsulamento e Congeneridade5 Critérios de desenho X Níveis de encapsulamento PARA: DE: construção de nível 0 (linhas de código) construção de nível 1 (procedimento) construção de nível 0 (linhas de código) Programação estruturada Fan-Out construção de nível 1 (procedimento) CoesãoAcoplamento Nível 1

6 Encapsulamento e Congeneridade6 … (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

7 Encapsulamento e Congeneridade7 Congeneridade Do latim connascence : ‘nascidos juntos’ - elementos congêneres -

8 Encapsulamento e Congeneridade8 … em software zA congeneridade entre elementos A e B significa: 1.que uma mudança em A implica em mudança em B, ou pelo menos verificação cuidadosa, para preservar a exatidão global 2.que existem mudanças que exigiriam que, tanto A quanto B, fossem mudados juntos para preservar a exatidão geral

9 Encapsulamento e Congeneridade9 Variedades de congeneridade Ex: int i; //linha A i := 7; //linha B Se a linha A fosse mudada para char i; > congeneridade de tipo! Se a linha A fosse mudada para int j; > congeneridade de nome!

10 Encapsulamento e Congeneridade10 Congeneridade explícita X implícita: zExplícita: ex anterior (compilador resolve!) zImplícita: X: JUMP Y+38 … Y: CLEAR R1 … // 38 bytes de código existentes CLEAR R2 // Esta é a instrução para onde “salta” …

11 Encapsulamento e Congeneridade11 Observações: 1.Dois elementos de software não precisam se comunicar entre si a fim de serem congêneres (ex anterior!) 2.A congeneridade pode ser direcional: Se A se referir a B > unidirecional Se B também se referir a A > bidirecional 3.Algumas formas não são direcionais. Por ex: se A e B utilizarem o mesmo algorítmo!

12 Encapsulamento e Congeneridade12 Lista de congeneridade (não exaustiva): zCongeneridade de nome zCongeneridade de tipo ou classe zCongeneridade de convenção zCongeneridade de algoritmo zCongeneridade de posição zCongeneridade de execução zCongeneridade temporal zCongeneridade de valor zCongeneridade de identidade

13 Encapsulamento e Congeneridade13 Congeneridade de nome: zEx anterior: duas ou mais linhas de código se referindo à mesma variável zUma subclasse que herda uma variável da superclasse. Se o nome mudar em uma deve mudar na outra, para preservar a exatidão!

14 Encapsulamento e Congeneridade14 Congeneridade de tipo ou classe: zExemplo já visto. O tipo ou a classe de um objeto deve ser preservado ao longo de sua vida!

15 Encapsulamento e Congeneridade15 Congeneridade de convenção zEx 1: NúmeroDeConta: - n os positivos: conta de pessoas - n os negativos: contas de empresas - zeros: contas de departamentos (!) z“Hominóide” >> direção: - 0=norte; 1=leste; 2=sul; 3=oeste - N=norte; L=leste; S=sul; O=oeste - 0=norte; 90=leste; 180=sul; 270=oeste

16 Encapsulamento e Congeneridade16 Congeneridade de algoritmo zEx: pesquisa em uma tabela de hash Todos os algoritmos que criam ou atualizam ou consultam a tabela devem proceder da mesma forma!

17 Encapsulamento e Congeneridade17 Congeneridade de posição zSequencial: as instruções devem aparecer na ordem correta zAdjacente: devem estar próximas umas das outras zDe parâmetros: formais X atuais zDinâmica: baseada no modelo de execução dos objetos

18 Encapsulamento e Congeneridade18 Congeneridade de execução zSemelhante à congeneridade de posição em situação de execução! (incialização de variáveis, …)

19 Encapsulamento e Congeneridade19 Congeneridade temporal zCaracterística de tempo real: “desligar um aparelho de Raio-X deve ser executada n milisegundos com relação à instrução para ligá-lo”

20 Encapsulamento e Congeneridade20 Congeneridade de valor zEx1: indicadorInferior, indicadorSuperior em uma lista zEx2: movimentar um canto de um retângulo zEx3: dados redundantes em um banco de dados

21 Encapsulamento e Congeneridade21 Congeneridade de identidade zTípica da OO: obj1 >> variável aponta para obj3 obj2 >> variável aponta para obj3 Então obj3 deve ser único!

22 Encapsulamento e Congeneridade22 Contrageneridade: zCongeneridade de diferença ou negativa: int i; int j; alterar i para j!!!


Carregar ppt "Encapsulamento e Congeneridade1. 2 Estrutura de Encapsulamento zEvolução do software convencional: yInstruções de máquina yLinhas de código de um montador."

Apresentações semelhantes


Anúncios Google