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

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

Encapsulamento e Congeneridade

Apresentações semelhantes


Apresentação em tema: "Encapsulamento e Congeneridade"— Transcrição da apresentação:

1 Encapsulamento e Congeneridade

2 Estrutura de Encapsulamento
Evolução do software convencional: Instruções de máquina Linhas de código de um montador assembler Procedimentos e funções calcularRaizQuadrada!!! Encapsulamento e Congeneridade

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

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

5 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) Programação estruturada Fan-Out Coesão Acoplamento Nível 1 Encapsulamento e Congeneridade

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

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

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

9 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! Encapsulamento e Congeneridade

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

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

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

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

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

15 Congeneridade de convenção
Ex 1: NúmeroDeConta: - nos positivos: conta de pessoas - nos negativos: contas de empresas - zeros: contas de departamentos (!) “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 Encapsulamento e Congeneridade

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

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

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

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

20 Congeneridade de valor
Ex1: indicadorInferior, indicadorSuperior em uma lista Ex2: movimentar um canto de um retângulo Ex3: dados redundantes em um banco de dados Encapsulamento e Congeneridade

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

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


Carregar ppt "Encapsulamento e Congeneridade"

Apresentações semelhantes


Anúncios Google