Programação Modular em C++
|
|
- Benedicto Belmonte de Almeida
- 8 Há anos
- Visualizações:
Transcrição
1 Programação Modular em C++ Princípios de Projeto Orientado por Objetos Roberto da Silva Bigonha Todos os direitos reservados Proibida a cópia sem autorização do S. Bigonha Princípios de Projeto OO C++ 1
2 Princípio de Projeto #1 Baixa Conectividade Todo módulo deve comunicar-se com um número mínimo de outros módulos 2
3 Modelo das 100 Lâmpadas As lâmpadas podem ser conectadas a qualquer outra Toda lâmpada acesa tem a probabilidade de 50% de desligar-se no próximo segundo Toda lâmpada apagada e que estiver conectada diretamente a pelo menos uma lâmpada acesa tem a probabilidade de 50% de acender-se no próximo segundo Toda lâmpada apagada assim permanece enquanto estiver conectada diretamente a somente lâmpadas apagadas Inicialmente todas as lâmpadas estão acesas 3
4 Modelo das 100 Lâmpadas... Considere três casos: 100 lâmpadas desconectadas 100 lâmpadas completamente conectadas 100 lâmpadas conectadas em grupos de 10 Suponhamos que: cada lâmpada representa um módulo Apagar ou acender uma lâmpada equivale ao ato de modificar a interface de um módulo 4
5 100 Lâmpadas Desconectadas Em quantos segundos 100 lâmpadas acessas atingem estabilidade? Como não há lâmpadas conectadas, a metade delas apaga-se no próximo segundo Como as 50 lâmpadas não estão conectadas, elas nunca se re-acenderão No próximo segundo, mais 25 lâmpadas apagamse Em 7 segundos, todas as lâmpadas estarão apagadas ( 50, 25, 12, 6, 3, 2 e 1) Equilíbrio atingido em 7 segundos 5
6 Lâmpadas Conectadas em Grupos de 10 Particione o conjunto de 100 lâmpadas em 10 grupos de 10, todas conectadas em cada grupo Em quantos segundos o sistema atinge estabilidade? Equilíbrio em 20 minutos 6
7 Todas as 100 Lâmpadas Conectadas 100 lâmpadas completamente conectadas Toda lâmpada tem 99 conexões Em quanto tempo todas se apagam? Equilíbrio em 10^22 anos 7
8 Conectividade X Complexidade HIPÓTESES: Conectividade tem relação direta com complexidade Aumento do grau de conectividade implica em aumento do custo de manutenção 8
9 Princípio de Projeto #2 Interface Pequena Banda de comunicação entre módulos deve ser mínima 9
10 Princípio da Interface Pequena Se dois módulos não podem evitar de se comunicarem, então a comunicação entre eles deve ser a mínima possível. O controle do volume e tipo de comunicação entre módulos é fundamental para obter sistemas modulares Contra-Exemplos: grande área de variáveis globais A melhor forma de comunicação entre módulos deve ser via parâmetros por valor 10
11 Princípio de Projeto #3 Interface Explícita Comunicação entre módulos deve ser óbvia pela simples inspeção dos módulos 11
12 Princípio da Interface Explícita Se dois módulos A e B se comunicam, então este fato deve ser evidente pela simples inspeção do texto de A ou B Princípio relacionado com o seguinte critério: Inteligibilidade: Como entender comportamento de um módulo que é influenciado por outro módulo de forma indireta? 12
13 Princípio de Projeto #4 Encapsulação Minimize a acessibilidade externa de classes e métodos 13
14 O Papel da Encapsulação Encapsulação é um recurso para definir os serviços que uma classe torna disponíveis para seus clientes Há dois tipos de clientes para cada classe (módulo): cliente externo cliente descendente Interface com cliente externo: public Interface com cliente descendente: protected (normalmente acoplamento por conteúdo) Proteção de dados: private 14
15 Encapsulação Encapsulação serve para separar a interface contratual de sua implementação. Encapsulação é um mecanismo usado para esconder os dados, estruturas internas e detalhes de implementação de um objeto, forçando que toda interação seja via operações da interface pública. Classes nunca devem expor seus detalhes de implementação. 15
16 Dados Sempre Privados Use sempre membros privados Se inevitável, use acessores e modificadores Por exemplo, public: double peso; deve, no mínimo, ser substituído por private: double peso; public: double getpeso( ){return peso;} void setpeso(double peso) { this->peso = peso; } 16
17 Princípio de Projeto #5 Abertura-Fechamento Entidades de software devem ser implementadas de forma a nunca terem que ser modificadas, mas apenas estendidas (Bertrand Meyer) 17
18 Abertura e Fechamento Módulo fechado é um compilado e armazenado na biblioteca de módulos Módulo deve ser fechado somente quando tiver uma interface bem definida e estável Mas, frequentemente, fecha-se um módulo porque não se pode esperar o levantamento de toda informação sobre o uso do módulo Módulo é fechado para modificações, quando julga-se que se atingiu estabilidade O módulo é adaptado somente via extensões, quando for necessário 18
19 Bom módulo deve ser: Abertura e Fechamento fechado para modificações, porém deve estar sempre aberto para incorporar novas extensões Extensões típicas são: inclusão de novos campos. inclusão de novas funções ou serviços 19
20 O Princípio Aberto-Fechado Módulos que conformam-se com OCP são: abertos para extensão: fechados para modificação 20
21 Princípio de Projeto #6 Substituição de Liskov (LSP) Funções que usam referências para objetos de uma classe devem ser capazes de referenciar objetos das subclasses dessa classe sem saberem (Barbara Liskov) 21
22 Contrato de Classe Contrato de uma classe é a coleção dos métodos e campos por ela exportados Pré-condições e pós-condições dos elementos exportados fazem parte do contrato Campos e métodos privados não fazem parte do contrato Contrato é o que o projetista da classe promete que ela fará. 22
23 Condições de Execução de um Método Pré-Condição: Condição a ser satisfeita pelos valores dos parâmetros do método e o estado do objeto no momento de entrada do método Pós-Condição: Condição a ser satisfeita pelo estado objeto produzido e pelo valor retornado pelo método 23
24 Cumprimento do Contrato Pré-Condição define as condições sob as quais a chamada a uma rotina é legítima. Pós-Condição define as condições que a rotina deve garantir no seu retorno. O retorno normal de um método significa cumprimento do contrato. Falhas no cumprimento do contrato devem sempre causar lançamento de exceções. 24
25 Programação por Contrato O relacionamento entre uma classe e seus clientes é uma relação de direitos e obrigações É uma relação vinculada a idéia de contrato Deve-se definir cláusulas de pré-condição e de póscondição para todo método r Regra Básica do Contrato: Se o usuário se comprometer a chamar o método r com sua pré-condição satisfeita, então r garante devolver um estado final com sua pós-condição satisfeita, ou então informa explicitamente seu insucesso. 25
26 Conceito de Subcontratação A definição de subclasse equivale a estender o contrato da superclasse O contrato herdado pode ser redefinido desde que não viole o contrato da superclasse Na redefinição da implementação de um contrato pode-se enfraquecer as pré-condições e fortalecer as pós-condições de métodos Condição mais fraca é menos restrita Condição mais forte é mais restrita 26
27 Fortalecimento de Pré-Condições Exemplo: substituir caixa-humano por caixaeletrônico Caixa-Humano: autoriza retiradas até R$50,00 sem verificar existência de fundos Caixa-Eletrônico: não as autoriza Há violação do contrato, porque fortaleceu-se indevidamente a pré-condição do método Fortalecimento da pré-condição tem impacto nos módulos cliente 27
28 Enfraquecimento de Pós-Condições Ex: método retorna um inteiro no intervalo [10,20] O valor retornado pode ser usado para indexar arranjos cujo tamanho seja menor ou igual a 20 Problema: método redefinido retorna um valor entre 1 e 100, violando contrato Enfraquecimento da pós-condição tem impacto nos módulos clientes 28
29 Sumário do Princípio de Liskov Para satisfazer o princípio de Liskov (LSP), toda subclasse deve ter o comportamento que os clientes esperam de sua respectiva superclasse Em termos de contrato, uma classe derivada é substituta de uma classe base se: Pré-condições de seus métodos redefinidos nunca são mais fortes que as dos respectivos métodos da classe base Pós-condições de seus métodos redefinidos nunca são mais fracas que as dos respectivos métodos da classe base 29
30 Princípio de Projeto #7 Preferência à Composição Composição é preferível a Herança 30
31 Composição Método de reúso no qual novas funcões são obtidas por composição com outros objetos As novas funções são obtidas por delegação de funções aos objetos da composição Composição dá-se por agregação ou por conhecimento: 1. Agregação quando um objeto possui responsabilidades sobre outros e todos possuem mesmo tempo de vida 2. Conhecimento quando um objeto faz referências a outros objetos independentes 31
32 Implementação da Composição Composição pode ser implementada por valor por referência Exemplo de ambas as formas: class A {B x; C *y; }; Objetos que formam a composição são chamados de objetos contidos A classe que os contém chama-se compositora 32
33 Vantagens da Composição Objetos contidos são acessados pela classe compositora somente através de suas interfaces É um reúso caixa-preta: detalhes internos dos objetos contidos não são visíveis Boa encapsulação Menos dependência em relação à implementação dos objetos contidos A composição é dinamicamente definida, porque as referências aos objetos contidos são obtidas durante a execução 33
34 Desvantagens da Composição Perda de reusabilidade 34
35 Herança Método de reúso no qual novas classes são obtidas pela extensão de classes existentes A classe generalizada (superclasse) define explicitamente os métodos e atributos comuns A classe especializada (subclasse) estende a implementação com atributos e métodos adicionais Herança pode ser de classe ou de interface 35
36 Vantagens de Herança Fácil gerar novas implementações, porque reúso é facilitado Fácil modificar ou estender as implementações que são reusadas 36
37 Desvantagens de Herança Herança possibilita violar encapsulação, porque detalhes (protected) da superclasse podem estar expostos na subclasse Herança permite reúso de caixa-branca, porque detalhes da superclasse podem ser visíveis nas subclasses Subclasses podem ter que ser mudadas quando altera-se sua superclasse 37
38 Relação Um Tipo Especial de Classe Médico: operações virtuais Doença consulta(paciente&) Remédio receita(doença) Classe Cardiologista : operações Doença consulta(paciente&) Remédio receita(doença) Resultado opera(paciente&) Na relação é um tipo especial de, Cardiologista é de fato uma especialização de Médico POLIMORFISMO: Um cardiologista é um tipo especial de Médico, que pode ser usado onde um médico for desejado. 38
39 Relação Pode Exercer o Papel de Classe Real representada por um float e oferece as seguintes operações virtuais: soma, sub mult, div Classe Complexo representada por dois floats e oferece as seguintes operações: soma, sub mult, div Na relação pode exercer o papel de, Complexo é visto como uma especialização de Real, não é de fato POLIMORFISMO: Um complexo pode ser usado onde um real for desejado, por pode exercer o papel de Real, mas não é Real 39
40 Relação Pode Exercer o Papel de Classe Ponto representada por um par ordenado e oferece as seguintes operações vituais: hide show move Classe Segmento representada por dois pares ordenados e oferece as seguintes operações: hide show move length Na relaçao pode exercer o papel de, Segmento é visto como uma especialização de Ponto POLIMORFISMO: Um segmento pode ser usado onde um ponto for desejado, mas não é Ponto 40
41 Reúso de Implementação (move) class Ponto { float x1, y1 ; public: virtual void adjust(float x,float y){...}; Ponto(float a,float b){x1 = a; y1 = b;}; virtual void hide( ) {... }; virtual void show( ) {... } virtual void move(float x, y ) { hide( ); adjust(x,y); show( ); } } 41
42 Reúso de Implementação (move) class Segmento: public Ponto { float x2, y2; public: void adjust(float x, float y) {... }; Segmento(float a,float b, float c,float d):ponto(a,b) { x2 = c; y2 = d; } void hide( ) {... }; void show ( ) {... }; int length( ) {... }; } 42
43 Uso de Composição class Segmento { Ponto p1, p2 public: void adjust(float x, float y) {... }; Segmento(float a,float b, float c,float d):p1(a,b),p2(c,d){} void hide(){p1.hide();...p2.hide();... }; void show () {... }; int length() {... }; void move(float x, y ) { hide( ); adjust(x,y); show( ); } } 43
44 Herança X Composição Herança para criação de subtipos: Subclasse corresponde a subconjunto Exemplo: Cardiologista é subconjunto de Médico Herança para reúso de implementação : Subclasse pode não corresponder a subconjunto. Exemplo: Complexo não é subconjunto de Real MELHOR AINDA: Use Composição em vez de herança nestes casos 44
45 Sumário do Princípio Composição e herança são importantes métodos de reúso Use herança com cuidado, sem abusos Projeto pode ser simplificado com uso de composição Composição e herança devem cooperar-se O princípio fundamental é: Prefira composição à herança 45
46 Princípio de Projeto #8 Programação Para Interface Programação deve basear-se em interface e nunca na implementação de classe 46
47 Interfaces Uma interface é o conjunto de métodos que um objeto sabe que pode chamar de outro A interface é um subconjunto dos métodos que uma classe implementa Um objeto é conhecido via sua interface Interface expressa a propriedade de ser um de Um objeto pode então ter muitas interfaces Um tipo é uma interface específica de um objeto Diferentes objetos podem ter o mesmo tipo Um mesmo objeto pode ter diferentes tipos 47
48 Herança X Subtipagem Herança de classe: implementação de um objeto é definida em termos da implementação de outro Subtipagem: descrição de quando um objeto pode ser usado no lugar de um outro Herança em C++ significa herança de classe e herança de interface Herança de interface de C++ é obtida herdando-se de classe abstrata pura Java tem construções distintas para cada caso A construção de interface de Java facilita expressar e implementar projetos focados na interface de S. Bigonha Princípios de Projeto OO C++ 48
49 Benefícios de Interfaces Clientes não precisam preocupar-se com a classe específica do objeto que se está usando Um objeto pode ser dinamicamente substituído por outro de diferente classe Conexões entre objetos não precisam fixar as classes dos objetos, aumentando a flexibilidade Confere menor grau de acoplamento de classes Aumenta grau de reúso de classes Facilita composição, porque objetos contidos podem ser de quaisquer classes que implementem a S. Bigonha Princípios de Projeto OO C++ 49
50 Exemplo 1: Interface class Maneuverable { public: virtual void left( ) = 0 ; virtual void right( ) = 0 ; virtual void forward( ) = 0 ; virtual void reverse( ) = 0 ; virtual void climb( ) = 0 ; virtual void dive( ) = 0 ; virtual void setspeed(double speed) = 0 ; virtual double getspeed( ) = 0 ; S. Bigonha Princípios de Projeto OO C++ 50
51 Exemplo 1: Interface class Car: public Maneurable{ código }; class Boat: public Maneurable{ }; código class Submarine: public Maneurable{ }; S. Bigonha Princípios de Projeto OO C++ 51
52 Exemplo 1 : Interface Um método travel de uma outra classe pode dirigir um veículo do tipo Maneurable sem se preocupar com sua real classe (Car, Boat, Submarine) void travel(maneurable& vehicle) { vehicle.setspeed(35.0); vehicle.forward(); vehicle.left(); vehicle.climb(); S. Bigonha Princípios de Projeto OO C++ 52
53 Sumário do Princípio Todo objeto deve ter seu tipo definido por uma Interface Os usuários de um objeto somente devem conhecêlo por sua interface O princípio fundamental: O uso de um objeto deve sempre independer de sua S. Bigonha Princípios de Projeto OO C++ 53
54 Princípio de Projeto #9 Segregação de Interfaces Interfaces mais específicas são melhores que interfaces de propósito S. Bigonha Princípios de Projeto OO C++ 54
55 Exemplo de Interface Poluída Considere um sistema de segurança para portas Portas podem ser trancadas ou não Portas sabem quando estão abertas ou não class Porta { public: virtual void fecha( ){ } virtual void abre( ) { } virtual bool portaaberta( ) { } } S. Bigonha Princípios de Projeto OO C++ 55
56 Porta de Segurança Certas portas, e.g., as de Cofre, somente podem ser abertas em determinados horários class PortaDeCofre: public Porta { public: }; void definehorario ( ){ } bool podeabrir( ) { } As Portas são usadas em todo o sistema class Predio { }; Porta porta[100]; ; porta[i] = new P S. Bigonha Princípios de Projeto OO C++ 56
57 Melhoria da Segurança do Cofre Deseja-se então acrescentar ao sistema a capacidade de as portas de cofre dispararem alarme se ficarem abertas além de um certo tempo Suponha que já exista implementada a classe Temporizador, que não se pode alterar Deseja-se usar o temporarizador com o mínino de alteração no S. Bigonha Princípios de Projeto OO C++ 57
58 O Temporizador class Temporizador { }; public:void registra(int t,monitorado* c){ }... C->disparaAlarme();... class Monitorado { }; public: virtual disparaalarme( ){... } Método registra toma nota do objeto monitorado c, o qual será automaticamente notificado, via chamada ao seu método disparaalarme, após decorrido o tempo t de S. Bigonha Princípios de Projeto OO C++ 58
59 Alarme Temporizado nas Portas Somente objetos do tipo Monitorado podem ser passados ao método registra Portanto objetos Porta não podem ser passados ao método registra Uma solução, para contornar esta dificuldade, é tornar a classe Porta uma extensão da classe Monitorado Em consequência, Porta agora passa a ter o método disparaalarme em sua S. Bigonha Princípios de Projeto OO C++ 59
60 Hierarquia dos Monitorados Monitorado Porta S. Bigonha Princípios de Projeto OO C++ 60
61 A Poluição Uma classe é obrigada a ter em sua interface um ou mais métodos somente porque uma de suas subclasses precisa deste comportamento Considerando que estes métodos nada têm a ver com a classe, pode-se considerar sua presença como um poluente Esta é a síndrome da Interface S. Bigonha Princípios de Projeto OO C++ 61
62 Solução com Herança Múltipla class Porta { public: virtual void fecha( ){ } virtual void abre( ) { } virtual bool portaaberta( ) { } }; class PortaDeCofre: public Porta, public Monitorado { public: void definehorario ( ){ } public bool podeabrir( ) { } public void disparaalarme( ) { } S. Bigonha Princípios de Projeto OO C++ 62
63 Solução com Composição... class Porta { public: virtual void fecha( ){ } virtual void abre( ) { } virtual bool portaaberta( ) { } }; class PortaDeCofre: public Porta { public: void definehorario ( ){ } bool podeabrir( ) { } void disparaalarme( ) { } S. Bigonha Princípios de Projeto OO C++ 63
64 Solução com Composição... class MeuMonitorado: public Monitorado { PortaDeCofre* p; public: MeuMonitorado(PortaDeCofre* p){this->p=p;} void disparaalarme(){p->disparaalarme( );} };... int tempo = 100; Temporizador t = Temporizador( ); PortaDeCofre* p = new PortaDeCofre( ); MeuMonitorado* m = new MeuMonitorado(p); t.registra(tempo, S. Bigonha Princípios de Projeto OO C++ 64
65 Princípio de Projeto #10 Única Responsabilidade: Nunca deve haver mais de um motivo para uma classe ser S. Bigonha Princípios de Projeto OO C++ 65
66 Responsabilidades de Classe Cada responsabilidade constitui-se uma dimensão de mudanças Se uma classe tem mais de uma responsabilidade, então haverá mais de uma razão para alterá-la Quanto mais responsabilidades houver numa classe, mais frágil torna-se o S. Bigonha Princípios de Projeto OO C++ 66
67 Exemplo 1: Violação do Princípio Considere o projeto da classe Retangulo: Aplicação Geométrica Retangulo desenha () double area() Aplicação Gráfica GUI Implicações: Aplicações geométricas têm que ter o GUI disponível, apesar de não precisar dele Mudanças nas aplicações gráficas têm impacto nas aplicações geométricas (retestes, recompilação, S. Bigonha Princípios de Projeto OO C++ 67
68 Solução do Exemplo 1 Criar uma classe para cada responsabilidade: Aplicação Geometrica Aplicação Gráfica Retângulo Geométrico double area() Retângulo desenha () GUI Agora, mudanças feitas na apresentação gráfica do Retangulo não afetam as aplicações S. Bigonha Princípios de Projeto OO C++ 68
Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
Leia maisPadrão Básico de Projeto: Herança versus Composição
Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),
Leia maisHerança. Alberto Costa Neto DComp - UFS
Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais
Leia maisPadrão Básico de Projeto: Interfaces e Polimorfismo
Padrão Básico de Projeto: Interfaces e Polimorfismo Herança de implementação versus herança de interface Há uma diferença grande entre uma classe e seu tipo A classe define ambos um tipo e uma implementação
Leia maisUML Aspectos de projetos em Diagramas de classes
UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada
Leia maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia maisCurso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais
Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia mais2 Engenharia de Software
20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite
Leia maisATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS
ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisProgramação Orientada a Objetos. Encapsulamento
Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências
Leia maisEXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Leia maisProgramação Orientada a Objetos em Java. Herança
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato
Leia maisProgramação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço
Leia maisDesenho de Software. Desenho de Software 1
Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules
Leia maisReuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Leia mais3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Leia maisHerança. Algoritmos e Programação II. Aula 5 Herança
Algoritmos e Programação II Aula 5 Herança *Adaptado do material do Prof. Júlio Machado Herança Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com
Leia maisPolimorfismo. Prof. Leonardo Barreto Campos 1
Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções
Leia maisProgramação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
Leia maisTópicos em Engenharia de Computação
Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisDecorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA
Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisProgramação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Classes Abstratas Técnico em Informática, M.Sc. Classes Abstratas 2 Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus
Leia maisOrientação a Objetos com Java
Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;
Leia mais7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 6 Polimorfismo Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof.
Leia maisUML: Diagrama de Casos de Uso, Diagrama de Classes
UML: Diagrama de Casos de Uso, Diagrama de Classes Diagrama de Casos de Uso O modelo de casos de uso visa responder a pergunta: Que usos (funcionalidades) o sistema terá? ou Para que aplicações o sistema
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Leia maisSubtipos e Subclasses
Subtipos e Subclasses Aula 15 do curso 6.170 15 de outubro de 2001 Sumário 1Subtipos 32 2 Exemplo: Bicicletas 33 3 Exemplo: Quadrado e retângulo 37 4 Princípio de substituição 38 5 Subclasses e subtipos
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisPROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br
PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
Leia maisGuia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Leia maisProfº. Enrique Pimentel Leite de Oliveira
Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam
Leia maisResolução da lista de exercícios de casos de uso
Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se
Leia maisModelagem de Casos de Uso (Parte 1)
Modelagem de Casos de Uso (Parte 1) Roteiro Introdução Descrição: Sistema de Ponto de Vendas Casos de Usos Atores Fluxo de Eventos Cenários Formato de Documentação de Casos de Uso Diagramas de Casos de
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisPadrões de projeto 1
Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisOrganizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP
Organizando Classes em Pacotes Profa. Thienne Johnson EACH/USP Criando e usando pacotes Nomeando um pacote Usando membros de pacotes Gerenciando arquivos Exercícios Usando pacotes no Eclipse Tutorial da
Leia maisTécnicas de Programação II
Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.
Leia maisADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie
1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição
Leia maisPOO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Leia maisIntrodução à Programação. Interface, Polimorfismo e Dynamic Binding
Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)
Leia maisCapítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos O FOCO NO MUNDO REAL Orientação a objetos A orientação a objetos (OO) foi concebida na década de 70. Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já implementava
Leia maisEngenharia de Software II
Engenharia de Software II Aula 10 http://www.ic.uff.br/~bianca/engsoft2/ Aula 10-24/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14
Leia maisAs principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:
SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva
Leia maisSumário. Uma visão mais clara da UML
Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia maisEngenharia de software para desenvolvimento com LabVIEW: Validação
Engenharia de software para desenvolvimento com LabVIEW: Orientação a Objetos, Statechart e Validação André Pereira Engenheiro de Vendas (Grande São Paulo) Alexsander Loula Coordenador Suporte Técnico
Leia maisProgramação com Objectos. Processamento de Dados I. 4. Classes Abstractas
Programação com Objectos Processamento de Dados I 4. Classes Abstractas 1 Conceito de classe abstracta Declaração de uma classe abstracta Implicações e características das classes abstractas Utilização
Leia maisPADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.
PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?
Leia maisProgramação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP
Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente
Leia maisClasses Abstratas e Interfaces
Classes Abstratas e Interfaces Programação Orientada a Objetos Java Prof. Geraldo Braz Junior Principais conceitos Classes abstratas Interfaces Herança múltipla 2 Simulações (1) Programas são normalmente
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Leia maisPara construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.
Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na
Leia maisOrientação a Objeto e UML Questões 2014 Prof. Felipe Leite
Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Pessoal, fiz uma coletânea das questões mais recentes de concursos públicos de TODO o Brasil de várias bancas diferentes sobre os assuntos Orientação
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisObjetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único
Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas Rafael Vargas Mesquita http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/ Herança O que é herança? Herdar é derivar características de gerações precedentes.
Leia maisModelagemde Software Orientadaa Objetos com UML
Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para
Leia maisProf. Marcelo Henrique dos Santos
ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em
Leia maisCurso de Licenciatura em Informática
Curso de Licenciatura em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita EXERCÍCIOS SOBRE MODELAGEM DE CASOS DE USO Exercício 1: construa um Diagrama de Casos de
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisRoteamento e Comutação
Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede
Leia maisFundamentos de Banco de Dados e Modelagem de Dados
Abril - 2015 Universidade Federal de Mato Grosso Instituto de Computação Pós Graduação Lato Sensu em Banco de Dados Fundamentos de Banco de Dados e Modelagem de Dados Prof. Dr. Josiel Maimone de Figueiredo
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisProgramação com Objectos Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos)
LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico (201001040900) 1/10 LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos) Nome:
Leia maisUnidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisTabela de roteamento
Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar
Leia maisCapítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo
Leia mais3 SCS: Sistema de Componentes de Software
3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira
ORIENTAÇÃO A OBJETOS 1 Professora Lucélia Oliveira CONCEITOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 2 ORIENTAÇÃO A OBJETOS Abstração
Leia maisHerança e Polimorfismo de Inclusão
Herança e Polimorfismo de Inclusão Sérgio Queiroz de Medeiros sergio@ufs.br 29 de maio de 2012 1 Polimorfismo Ad-hoc Coerção Sobrecarga (Overloading) Universal Paramétrico Inclusão 2 Herança Herança é
Leia maisJava. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia mais3. PARADIGMA ORIENTADO A OBJETOS
Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a
Leia maisCurso - Padrões de Projeto Módulo 2: Padrões de Criação
Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação
Leia maisRelacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto
Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II Padrões de Projeto Padrão Decorator (Decorador) Adiciona responsabilidades de forma
Leia maisDiagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.
1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para
Leia maisManual de Instalação... 2 RECURSOS DESTE RELÓGIO... 3 1 - REGISTRANDO O ACESSO... 4 1.1 Acesso através de cartão de código de barras:...
0 Conteúdo Manual de Instalação... 2 RECURSOS DESTE RELÓGIO... 3 1 - REGISTRANDO O ACESSO... 4 1.1 Acesso através de cartão de código de barras:... 4 1.2 Acesso através do teclado (digitando a matrícula):...
Leia maisIntrodução à orientação a objetos. João Tito Almeida Vianna 25/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 25/05/2013 Roteiro Aula 2 Motivação Revisão dos conceitos da aula 1 Preparação para os exercícios Exercícios propostos 2 Motivação A orientação
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Leia maisProgramas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos
OO -Objetos, classes, atributos, métodos, estado, comportamento e identidade (Slide) Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Programas eram lineares e com poucos
Leia maisMétodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes
Métodos de Construção de Software: Orientação a Objetos Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Problemas com Modelagem Funcional Falta de aproximação de conceitos com o mundo real
Leia mais