Encapsulamento e Congeneridade

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Parte 1: Organização de Computadores
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Análise e Desenvolvimento de Sistemas
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Redes de computadores II
Paulo Marques Hernâni Pedroso
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Teste de Software.
Paradigmas de Linguagens Conceitos Básicos
Conjuntos disjuntos Objectivo
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Projeto de Software Orientado a Objetos
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Arquitetura de Computadores
Linguagens de Programação
Projeto da Camada de Domínio
Modelagem de Interações
Revisão da Linguagem C.
Algoritmos e Programação
Diagramas de Sequência e Comunicação
Diagramas de Seqüência
Linguagens Orientadas a Objeto
O Fluxo de Implementação
DIAGRAMA DE CLASSE Modelagem de Software
Sobrecarga e Encapsulamento
Programação Orientada à Objetos
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Introdução a Programação
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Prof. Ricardo Santos PONTEIROS
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Classes, Objetos, Atributos e Métodos JAVA
UNIDADE 2 UML MODELAGEM TEMPORAL
Análise Léxica.
Geração de Código aula-12-geração-de-código.pdf.
SISTEMAS DISTRIBUIDOS Aula 4
A abordagem de banco de dados para gerenciamento de dados
Unidade Central De Processamento: Processador
Análise Orientada Objeto
Programação de PIC em C Exposição das funções básicas para
Aula Prática 4 Monitoria IP/CC (~if669).
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
8088 Assembly Software Básico Mitsuo Takaki.
Fundamentos de linguagens de programação
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Modificadores Programação II.
Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento.
Conjuntos - 1 Conjuntos disjuntos Objectivo ° resolver eficientemente o problema da equivalência ° estrutura de dados simples (vector) ° implementação.
Introdução à Programação
O que devem fazer os Microprocessadores ?
Arquitetura de Computadores
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
20/04/2017 Orientação a Objetos 1 1.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
EXERCÍCIOS THOBER CORADI DETOFENO, MSC. Aula 13 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Influencias sobre o Projeto da Linguagem
Linguagem de Programação
COMPILADORES 07 Prof. Marcos.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Funções Passagem por valor e por referência passo a passo.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Transcrição da apresentação:

Encapsulamento e Congeneridade

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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