6.170 Revisão para a Prova

Tamanho: px
Começar a partir da página:

Download "6.170 Revisão para a Prova"

Transcrição

1 6.170 Revisão para a Prova Tópicos: 1. Desacoplamento 2. Abstração de dados 3. Funções de Abstração e Invariantes de Representação 4. Abstração de Iteração & Iteradores 5. Modelos de Objeto e Invariantes 6. Igualdade, Cópia e Visões Padrões de Projeto 9. Subtipagem 10. Estudos de Casos Desacoplamento Aula 2, Aula 3, Capítulo 1, Capítulo 13:1-3, Capítulo 2 Decomposição DivisãodoTrabalho Reuso Análise Modular Alteração Localizada Projeto Top Down vs. Modularização Desacoplamento Aula 2: Usos, Dependências, Especificações, MDDs Diagrama de Usos: Árvores, Camadas, Ciclos Raciocínio Reuso Ordem de Construção Dependências & Especificações; Módulos de Diagrama de Dependência para o Suposições em Menor Número e Menos Sérias o Avaliando Alterações

2 o o Comunicação Implementações Múltiplas Desacoplamento Aula 2: MDDs, Técnicas MDDs o Partes de especificação o Partes de implementação o Satisfaz, depende, relacionamentos de dependência fraca Técnicas o Façade: uma nova parte de implementação entre dois conjuntos de partes o Escondendo a representação: evite mencionar como os dados são representados o Polimorfismo: muitas formas o Callbacks: resolução de referências a procedimentos em tempo de execução Desacoplamento Aula 3: Java Namespace, Controle de Acesso Java Namespace o Packages {Interfaces, Classes} {métodos, nomes de campos} Controle de Acesso o public: acesso de qualquer lugar o protected: acessado de dentro do pacote ou por subclasses de fora do pacote o padrão: acessado de dentro do pacote o private: apenas de dentro da própria classe Desacoplamento Aula 3: Linguagens Seguras, Interfaces Linguagens Seguras o Uma parte só deve depender de outra se o fizer explicitamente referenciando a outra parte o Tipagem Forte: acesso ao tipo t no programa texto é garantido em tempo de execução o Checagem de tipos em tempo de compilação: static typing Interfaces: subtipagem mais flexível o Expressa especificação pura o Permite várias partes de especificação em uma parte de implementação Desacoplamento

3 Aula 3: Instrumentação de um Programa Abstração por Parametrização Desacoplamento com Interfaces Interfaces vs. Classes Abstratas Campos estáticos Aula 4, Aula 5, Capítulo 3-5, Capítulo 9 Especificações o Pré-condição (requires) Obrigação sobre o cliente (aquele que invoca o método) Se for omitido: true; não requer nada o Pós-condição (effects) Obrigação sobre o desenvolvedor Não pode ser omitido o Condição Estrutural (modified) Descreve todos os estados alterados Se for omitido: não modifica nada Aula 4: Especificação Especificação Operacional: uma série de passos realizados pelo método Especificação Declarativa: não fornece detalhes dos passos intermediários (preferivelmente) Exceções & Pré-condições (decisões) o Pré-condições: custo da checagem, escopo do método o Checagem através de certificações em tempo de execução o Se violada, jogar exceção (não mencionada na especificação) Aula 4: Especificações Macetes o Returns: não modifica nada, e retorna um valor o Throws: condição e exceção, ambos, fornecidos na cláusula throws; não modifica

4 nada Ordem de Especificação: uma especificação A é tão rígida quanto uma especificação B se: o A pré-condição de A nãoétãorígidaquantoadeb o A pós-condição de A não é menos rígida do que a de B, para os estados que satisfazem a pré-condição de B o (é sempre possível tornar a pré-condição menos rígida; e sempre possível tornar a pós-condição mais rígida) Aula 4: Especificações Julgando especificações o Coerente o Informativa o Rígida o suficiente o Não rígida o suficiente Firewall crucial entre implementador e cliente Aula 5: Tipos Abstratos : o tipo é caracterizado pelas operações que você pode realizar sobre ele Mutáveis: podem ser alterados; fornecem operações que quando executadas fazem com que os resultados de outras operações sobre o mesmo objeto sejam diferentes (Vectors) Imutáveis: não podem ser alterados (Strings) Aula 5: tipos abstratos Operações (T = tipo abstrato, t = algum outro tipo) Construtores: t -> T Produtores: T, t -> T Modificadores: T, t -> void Observadores: T, t -> t Exemplo: listas

5 Aula 5: tipos abstratos Projetando um tipo abstrato Poucas operações simples que podem ser combinadas de maneiras poderosas As operações devem ter propósitos bem definidos, comportamento coerente A definição das operações deve ser adequada O tipo pode ser genérico (lista, conjunto, grafo) ou específico de domínio (mapa de estrada, o banco de dados de empregados, a agenda de telefones), mas não os dois ao mesmo tempo Aula 5: Tipos Abstratos Representação: a classe que implementa o tipo abstrato fornece uma representação Independência de representação Garantindo que um tipo abstrato é independente de representação Alterações na representação não devem afetar a utilização do código Exposição de representação A representação é passada para o cliente Permite-se acesso direto do cliente à representação Necessita de uma cuidadosa disciplina de programação Aula 5: Tipos Abstratos Mecanismos de linguagem Campos private: previnem o acesso à representação Interfaces: independência de representação Interfaces: independência de representação (List -> ArrayList, LinkedList) o Campos não estáticos não são permitidos o Não podem ter construtores Aula 6: Funções de Abstração & Invariantes Rep Invariante Rep (IR) Restriçãoquecaracterizaseumainterfacedeumtipoabstratodedadosestábemformada ou não (do ponto de vista da representação) IR: Object -> Boolean Algumas propriedades do modelo de objeto não estão na IR Algumas propriedades do IR não estão no modelo de objeto (primitivas, por exemplo)

6 Aula 6: Funções de Abstração & Invariantes Rep Raciocínio indutivo Invariante Rep: torna o raciocínio modular possível Os métodos construtores criam um objeto que satisfaz a invariante Os métodos produtores preservam a invariante Os métodos modificadores mantêm a invariante Rep Os métodos observadores não realizam alterações, portanto, a invariante é mantida Aula 6: Funções de Abstração & Invariantes Rep Função de Abstração: interpreta a representação Objetos concretos: verdadeiros objetos da implementação Objetos abstratos: objetos matemáticos que correspondem à forma como a especificação do tipo abstrato define seus valores Função de abstração: função entre os domínios concreto e abstrato Pode ser parcial Diferentes representações possuem diferentes funções de abstração Aula 6: Funções de Abstração & Invariantes Rep Efeitos colaterais benevolentes: permitem que os métodos observadores alterem a representação desde que os valores abstratos sejam preservados IRs: o Raciocínio modular o Ajuda a identificar erros Função de abstração: especifica como a representação de um tipo abstrato de dados é interpretada como um valor abstrato Aula 7: Abstração de iteração e iteradores Exposição de representação: faça com que o método remove() jogue UnsupportedOperationException Refira-se ao capítulo 6 do texto

7 Modelos de Objetos & Invariantes Aula 8, Capítulo 12:1 Modelo de objeto: descrição de uma coleção de configurações Classificação de objetos Relacionamentos entre objetos Subconjuntos (implementa, estende) Relacionamentos e rótulos Multiplicidade: como muitos objetos em uma classe podem estar relacionados com um determinadoobjetoemoutraclasse Capacidade de alteração: como os estados podem ser alterados Modelos de Objetos & Invariantes Símbolos de multiplicidade: o (>= 0) o +(>=1) o?(0or1) o!(exactly1) Source -> Target o Final da flecha: quantos alvos (objetos no final da flecha) estão associados com cada fonte (objeto no início da flecha)? o Início da flecha: quantas fontes podem ser mapeadas para o alvo? Diagramas de instância Modelos de Objetos & Invariantes Modelos de Objetos de Programas Pontos de vista abstratos e concretos o Função de abstração: pode demonstrar como os valores concretos são interpretados como valores abstratos o Invariante de Representação: os modelos de objeto são um tipo de IR - uma restriçãoválidadurantetodaaexistênciadoprograma o Exposição de representação: um tipo abstrato de dados fornece acesso direto a um dos objetos abrangidos pelo contorno de abrangência da invariante de representação Igualdade, Cópia e Visões Aula 9, Ch5:5-7 O contrato da classe Object o equals() o hashcode()

8 Propriedades da igualdade (Point e ColorPoint) o Reflexiva o Simétrica o Transitiva Hashing: se dois objetos são equals() -> devem ter o mesmo hashcode() Igualdade, Cópia e Visões Cópia o Raza: os campos apontam para os mesmos objetos para os quais o objeto original apontava o Profunda Interface Cloneable Igualdade entre elementos e containers o A solução de Liskov: Equals - equivalência de comportamento Similar - equivalência de observação Igualdade, Cópia e Visões Exposição de representação: o contorno inclui a classe dos elementos (LinkedList, por exemplo) o Alteração de chaves hash Visões o Objetos distintos que oferecem diferentes tipos de acesso para a estrutura de dados subjacente o Tanto a visão quanto a estrutura subjacente podem ser modificadas Aula 10, Aula 11, Chapter 10 Executando o programa e observando seu comportamento Dijkstra: "A atividade de teste pode revelar a presença de erros mas nunca sua ausência" Não se pode depender apenas da análise dinâmica - são necessárias boas especificações de projeto Aula 10: programação defensiva Diretivas o Inserção de checagens redundantes: certificações em tempo de execução

9 o o Ao passo que você escreve o código Onde? No início de um procedimento (pré-condição) No final de um procedimento complicado (pós-condição) Quando uma operação puder gerar (ou sofrer) um efeito externo Aula 10: Programação defensiva Interceptando exceções comuns o NullPointerException o ArrayIndexOutOfBoundsException o ClassCastException Checagem da invariante rep o public void repcheck() throws (runtime expn) Framework de certificação o public static void assert(boolean b, String loc) o Assert.assert(, "MyClass.myMethod"); Aula 10: Programação defensiva Certificações em subclasses Respondendo a falhas o Concerto: complicado, mais bugs, você conhece causa -> você poderia tê-la evitado? o Execute ações especiais: depende do sistema -> difícil determinar um conjunto de ações o Abandone a execução: depende do programa; compilador vs processador de texto Aula 11: A atividade de testes Considerações a respeito dos testes o Propriedades que você quer testar (domínio do problema, conhecimento do programa) o Módulos que você quer testar (críticos, complexos e propensos a mau funcionamento) o Como gerar casos de teste o Como checar os resultados o Como saber que o trabalho está terminado

10 Aula 11: Testes de regressão Suítes de teste que podem ser reexecutadas Test-first programming: construção de testes de regressão antes que o código da aplicação esteja escrito (programação extrema) Aula 11: Normas S(t, P(t)) = false; t é um caso de teste falho C: Suite, Program, Spec -> boolean C: Suite, Spec -> boolean é baseado em uma norma specification-based; black box C: Suite, Program -> boolean é baseado em uma norma program-based; glass box Aula 11: Subdomínios Subdomínios: de visões do espaço de dados de entrada o Determinam se uma suíte de testes é boa o suficiente o Guiam a atividade de testes para regiões mais propensas a bugs Subdomínios reveladores Aula 11: Normas de subdomínio Statement Coverage: toda sentença deve ser executada pelo menos uma vez Decision Coverage: toda as extremidades do grafo do fluxo de controle devem ser executadas Condition Coverage: expressões booleanas devem ser resolvidas para true e para false, MCDC Boundary testing: testes extremos para expressões condicionais Normas specification-based: apenas em termos de subdomínios o Conjunto vazio, não vazio e contém elemento, não vazio e não contém elemento Aula 11: Viabilidade Uma norma é viável se é possível satisfazê-la Utilize normas specification-based para guiar o desenvolvimento da suíte de testes Utilize normas program-based para avaliar as suítes de teste (o quanto do código está sendo coberto pela atividade de teste)

11 Padrões de Projeto Aula 12, Aula 13, Aula 14, Chapter 15 Até aqui: o Encapsulamento (escondendo a representação dos dados) o Subclasses (herança) o Iteração o Exceções Não utilize padrões de projeto prematuramente Complexidade diminui a capacidade de compreensão Padrões de Projeto Aula 12: Padrões de criação Factories (Usinas) o Métodos Factory: métodos que fabricam um objeto de um tipo particular o Objetos Factory: objetos que encapsulam métodos do tipo factory o Protótipo: o objeto pode clonar assim mesmo (método clone()), objeto passado através de um método (ao invés de um objeto factory) Padrões de Projeto Aula 12: Padrões de criação Compartilhamento o Singleton: existe apenas um objeto da classe o Interning: reutiliza objetos ao invés de criar novos; adequado apenas para objetos imutáveis o Flyweight: (generalização do interning), pode ser utilizado se boa parte do objeto é imutável Estados intrínsecos vs estados 'extrínsecos' Utilizado apenas caso o espaço seja o gargalo do sistema Padrões de Projeto Aula 13: Padrões comportamentais Comunicação multi-modo o Observer: mantém uma lista de Observers (que implementam uma interface específica) que devem ser notificados quando ocorrerem alterações de estado; necessita dos métodos observadores add e remove

12 o o Blackboard: (generalização do padrão observer); múltiplas fontes de dados e múltiplos visualizadores; assíncrono Repositório de mensagens que pode ser lido e escrito por todos os processos Interoperabilidade; formato de mensagem bem compreensível Mediator: (intermediário entre Observer e Blackboard); desacopla informação, mas não controle, síncrono Padrões de Projeto Aula 13: Composites (objetos compostos) de varredura Suporta muitas operações diferentes Realizam operações em subpartes de um composite Interpreter: agrupa operações de um objeto de um tipo particular Procedural agrupa todo o código que implementa uma determinada operação Visitor: varredura em profundidade em uma estrutura hierárquica; os nós aceitam Visitors; os Visitors visitam Nodes (nós) Padrões de Projeto Aula 14: Padrões estruturais Wrappers Padrão Funcionalidade Interface Adaptor Mesma Diferente (interoperabilidade) Decorator Diferente Mesma (estende) Proxy Mesma Mesma (controles ou limites) Padrões de Projeto Aula 14: Padrões estruturais Implementação de Wrappers o Subclasses o Delegação: armazena um objeto em um campo; implementação mais adequada de wrappers Composição o Permite que um cliente manipule uma unidade ou uma coleção de unidades da mesma forma

13 Subtipagem Aula 15, Capítulo 7 MDDs Princípio de substituição o Assinaturas o Métodos Requer menos/contravariância Garante mais/covariância o Propriedades Subclasses do Java vs. subtipos Interface o Garante o comportamento com aqueles que estão compartilhando o código o Herança múltipla Estudo de Caso: API de coleções do Java A hierarquia de tipos o Interfaces: Collection, Set, SortedSet, List o Implementações baseadas em estruturas hierarquias esqueléticas: AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList o Implementações concretas: TreeSet, HashSet, ArrayList, LinkedList Estrutura paralela Interfaces vs classes abstratas Estudo de Caso: Java Collections API Aula 16, Capítulo 13, Capítulo 14 Métodos opcionais: throws UnsupportedOperationException Polimorfismo Implementações baseadas em hierarquias esqueléticas ('métodos template' e 'métodos hook') Capacidade, alocação, garbage collection Cópias, conversões, Wrappers Coleções ordenadas: Comparable vs. Comparator Visões Estudo de Caso: JUnit Aula 17

14 MDD: totalmente conectado Padrões do projeto o Método Template o Command o Composite o Observer Suítes de teste utilizando reflexão em Java Estudo de Caso: Tagger Aula 18 Aspectos de Projeto o Ações o Referências cruzadas o Mapas de propriedades o Numeração automática o Visão de planilhas de estilos o Enumerações Type-safe Requisitos de qualidade Densidadedepadrões Modelos de Objetos Conceituais Aula 19, Capítulo Átomo: o Indivisível o Imutável o Não interpretável Conjunto: coleção de átomos o Domínios: conjuntos que não possuem superconjuntos o Relação: determina uma relação entre dois átomos o Transposição: ~relação o Fechamento transitivo: +relação Fechamento reflexivo: *relação Relações ternárias Relações indexadas Modelos de Objetos Conceituais

15 Exemplos o Tipos do Java: Object, Var, Type o Meta modelo: notação gráfica de modelagem de objeto o Numeração: Tagger Estratégia de Projeto Aula 20 Processo de desenvolvimento o Análise de programas (modelos de objeto e operações) o Projeto (codificar modelo de objeto, diagrama de dependência modular, especificações dos módulos) o Implementação Testes o Testes de regressão o Certificações em tempo de execução o Invariantes de representação Estratégia de Projeto Propriedades de projeto Capacidade de extensão o Suficiência sobre modelos de objeto o Localidade e desacoplamento Confiabilidade o Modelagem cuidadosa o Revisão, análise, testes Eficiência o Modelo de objeto o Não seja tendencioso o Otimização o Escolha das representações Estratégia de Projeto Transformações de modelos de objetos Introduzindo uma generalização (subconjuntos) Inserindo uma coleção Invertendo um relacionamento Movendo um relacionamento Tabela de relacionamentos

16 Adicionando estados redundantes Decompondo relacionamentos mutáveis Interpolando uma interface Eliminando conjuntos dinâmicos

Aula 11: Análise Dinâmica - 2a. parte

Aula 11: Análise Dinâmica - 2a. parte Aula 11: Análise Dinâmica - 2a. parte Nesta aula, continuaremos nossa discussão a respeito da análise dinâmica, focando na atividade de teste. Iremos dar uma breve olhada em algumas das noções básicas

Leia mais

Aula 16: Estudo de Caso: A API de Coleções do Java

Aula 16: Estudo de Caso: A API de Coleções do Java Aula 16: Estudo de Caso: A API de Coleções do Java Você não pode ser um programador Java competente sem compreender as partes cruciais da biblioteca Java. Os tipos básicos estão todos em java.lang, e são

Leia mais

Aula 10: Análise Dinâmica - 1a. Parte

Aula 10: Análise Dinâmica - 1a. Parte Aula 10: Análise Dinâmica - 1a. Parte A melhor forma de garantir a qualidade do software que você constrói é projetando-o cuidadosamente desde o início. Desta forma, as partes se encaixarão mais perfeitamente,

Leia mais

Aula 9: Igualdade entre objetos, Cópia de objetos e Visões

Aula 9: Igualdade entre objetos, Cópia de objetos e Visões Aula 9: Igualdade entre objetos, Cópia de objetos e Visões 9.1 O Contrato da Classe Object Toda classe estende a classe Object e, portanto, herda também todos os seus métodos. Dois destes métodos são particularmente

Leia mais

Subtipos e Subclasses

Subtipos 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 mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

Aula 3: Desacoplamento 2ª. Parte

Aula 3: Desacoplamento 2ª. Parte Aula 3: Desacoplamento 2ª. Parte Na última aula, nós falamos a respeito da importância das dependências entre as partes do programa em um projeto de software. Uma boa linguagem de programação permite a

Leia mais

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do

Leia mais

Padrões de Projeto Curso 6170 Aulas 12 a 14

Padrões de Projeto Curso 6170 Aulas 12 a 14 Padrões de Projeto Curso 6170 Aulas 12 a 14 1. Padrões de projeto Um padrão de projeto é:. uma solução padrão para um problema comum de programação. uma técnica capaz de tornar o código mais flexível ao

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programaçã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 mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

Leia mais

Padrões Comportamentais

Padrões Comportamentais Padrões Comportamentais Formulário para Descrição de Padrões Nome e Classificação Intenção Também Conhecido Como Motivação Aplicabilidade Estrutura Participantes Colaboradores Conseqüências Implementação

Leia mais

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Curso - Padrões de Projeto Módulo 1: Introdução

Curso - Padrões de Projeto Módulo 1: Introdução Curso - Padrões de Projeto Módulo 1: Introduçã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 mais

Programação Orientada a Objetos. Padrões de Criação

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo GENERICS (Tipos Parametrizados, Classes Parametrizadas) : têm o objectivo de tornar as Colecções seguras em termos

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 8 Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Everton Coimbra de Araújo Orientação a Objetos com Java Simples, Fácil e Eficiente Visual Books Sumário Prefácio... 11 Introdução... 13 1 Introdução à Orientação a Objetos... 17 1.1 Conceitualização...

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Projeto

Leia mais

Reuso com Herança a e Composiçã

Reuso 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 mais

3. PARADIGMA ORIENTADO A OBJETOS

3. 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 mais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais Especialização em web com interfaces ricas Padrões de Projeto - Estruturais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê? Bibliografia Desenvolvimento Orientado a Objetos Prof.: Edson dos Santos Cordeiro LARMAN, Graig. Utilizando UML e padrões. Porto Alegre: Bookman, 2000. STAA, Arndt von. Programação modular. Rio de Janeiro:

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA

UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA EDITAL DO PROGRAMA DE CERTIFICAÇÕES EM COMPUTAÇÃO MACK COMPUTING CERTIFICATION MCC 2º SEMESTRE DE 2014 O Diretor da Faculdade de Computação e Informática (FCI), no uso de suas atribuições estatutárias

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

Boas Práticas de Programação

Boas Práticas de Programação Boas Práticas de Programação João Arthur Brunet Monteiro Mestrando em Informática - COPIN 25/10/2008 João Arthur Brunet Monteiro 1/ 27 Roteiro Introdução 1 Introdução Objetivos Contextualização 2 Práticas

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

Leia mais

Padrão Básico de Projeto: Interfaces e Polimorfismo

Padrã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 mais

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM Java 2ª Edição n Sumário VII Sumário CAPÍTULO 1 Introdução ao Java... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java como Plataforma... 6 Finalidade...

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

Padrões clássicos ou padrões GoF O livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Modulo IIa Extra: Object

Modulo IIa Extra: Object Modulo IIa Extra: Object Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA Ismael H. F. Santos,

Leia mais

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: 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 mais

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Seminário - C# DSO II Desenvolvimento de Sistemas Orientados a Objetos 2 Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Roteiro Breve Histórico Plataforma.NET Características da Linguagem Sintaxe Versões

Leia mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)

Leia mais

Aula 17: Estudo de Caso: JUnit

Aula 17: Estudo de Caso: JUnit Aula 17: Estudo de Caso: JUnit O framework JUnit o qual você tem usado para testar seu próprio código no curso 6170 merece, ele próprio, ser estudado. Ele foi desenvolvido por Kent Beck e Erich Gamma.

Leia mais

Programação Orientada a Objetos em Java. Herança

Programaçã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 mais

Programa do Módulo 2. Fundações do Modelo Objeto

Programa do Módulo 2. Fundações do Modelo Objeto 2.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) Processo Unificado (RUP) Fundações do Modelo Objeto 2.2 Programação Orientada a Objetos: é um método de

Leia mais

Java Coleções. Rodrigo C. de Azevedo

Java Coleções. Rodrigo C. de Azevedo Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer

Leia mais

Aula 20: Estratégia de Projeto

Aula 20: Estratégia de Projeto Aula 20: Estratégia de Projeto Esta aula reúne algumas das idéias que foram discutidas em aulas anteriores: modelos de objetos de problemas e código, módulos de diagramas de dependência, e padrões de projeto.

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia 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 mais

Padrões de Desenho. ---------Engenharia de Software---------

Padrões de Desenho. ---------Engenharia de Software--------- Padrões de Desenho Objectivos: Compreender o que são os padrões de desenho? Vantagens e desvantagens em usar os padrões de desenho? Qual o formato de um padrão de desenho? Conhecer as varias secções de

Leia mais

Técnicas de Programação Avançada TCC-00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo

Técnicas de Programação Avançada TCC-00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Técnicas de Programação Avançada TCC-00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo:Introdução a Frameworks para Aplicações Baseado em Building Application Frameworks Mohamed E. Fayad

Leia mais

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma Pasteur Ottoni de Miranda Junior Alguns Padrões de Projeto Gamma Padrões Gamma de Projeto(ou Gang-of-Four, gof) Os padrões gof foram publicados por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides

Leia mais

Curso - 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 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 mais

Decorator 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. 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 mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 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 mais

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas Especialização em web com interfaces ricas Padrões de Projeto - Comportamentais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Computação II Orientação a Objetos

Computaçã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 mais

ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS

ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ANDREIA TRAVAGLIA Uberlândia, Dezembro/2001. ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ANDREIA TRAVAGLIA Monografia

Leia mais

Tópicos em Engenharia de Computação

Tó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 mais

Categorias de Padrões

Categorias de Padrões Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas

Leia mais

formação em programação em c/c++

formação em programação em c/c++ formação em programação em c/c++ O Treinamento de Programação em C/C++ com duração de 20 semanas (média de 6 meses), preparará o aluno para programar em duas das linguagens mais poderosas da computação.

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML 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 mais

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2 BCC221 Programação Orientada a Objetos Prof. Marco Antonio M. Carvalho 2014/2 Site da disciplina: http://www.decom.ufop.br/marco/ Moodle: www.decom.ufop.br/moodle Lista de e- mails: bcc221- decom@googlegroups.com

Leia mais

Programação com Objectos

Programação com Objectos Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é

Leia mais

MÓDULO Modelagem de classes de projeto

MÓDULO Modelagem de classes de projeto MÓDULO Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há nada mais para adicionar, mas quando não há nada mais para retirar. -Eric Raymond, The Cathedral and the Bazaar

Leia mais

Classes Abstratas e Interfaces

Classes 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 mais

PADRÕ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. 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 mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama 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 mais

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Linguagem de Modelagem Unificada A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem para especificação, É uma linguagem para

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Dois clientes com a mesma data de pagamento não podem compartilhar instâncias

Dois clientes com a mesma data de pagamento não podem compartilhar instâncias Capítulo 3. Tópicos de Orientação a Objetos correr o risco de cair na armadilha da quebra de encapsulamento e alto acoplamento. Repare que, desta forma, o acoplamento é bem menor, nenhuma das classes precisa

Leia mais

Programação Modular em C++

Programação Modular em C++ 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 autor @Roberto S. Bigonha Princípios de

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

Programação por Objectos. Java

Programaçã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 mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

SCE 186- Engenharia de Software

SCE 186- Engenharia de Software Reuso de Software SCE 186- Engenharia de Software Profa Rosana T. Vaccare Braga (parte do material elaborado com base no tutorial sobre reuso da Profa. Claudia Werner) 1 Sumário Introdução Benefícios X

Leia mais

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML 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 Espírito Santo Modelos Maneira

Leia mais

Arquitetura de Software e Atributos de Qualidade

Arquitetura de Software e Atributos de Qualidade Arquitetura de Software e Atributos de Qualidade Jair C Leite Requisitos e atributos de qualidade Requisitos Características, atributos, propriedades e restrições associadas ao software. Requisitos funcionais

Leia mais

Profº. Enrique Pimentel Leite de Oliveira

Profº. 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 mais

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB GLAUBER VOLKMER SILVIO DANILO DE OLIVEIRA MARÇAL DE LIMA HOKAMA Resumo. Os padrões de projetos tratam

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Prototype, um Design Patterns de Criação

Prototype, 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 mais

Tópicos de Orientação a Objetos

Tópicos de Orientação a Objetos Capítulo 3 Tópicos de Orientação a Objetos Um bom design de software visa a uma arquitetura flexível que permita futuras alterações, facilite a produção de código organizado e legível, maximizando seu

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Orientaçã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 mais

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os

Leia mais