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

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

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

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

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

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

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

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

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

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 [email protected] 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

2 Diagrama de Caso de Uso

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

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

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

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Técnicas de Programação II

Té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 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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Tecnologias Web. Padrões de Projeto - Camada de Apresentação Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller

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

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

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

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

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

BSI UFRPE Prof. Gustavo Callou [email protected]

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou [email protected] 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

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

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

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

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

Padrões GoF. Leonardo Gresta Paulino Murta [email protected]

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta [email protected] 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

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

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: Introdução à Orientação a Objetos Introdução Paradigmas de programação Programação Estruturada Composição

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

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

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

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi [email protected] 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha ([email protected])

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 ([email protected]) 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

Especificação do 3º Trabalho

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

1Introdução Helder da Rocha ([email protected])

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha ([email protected]) 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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf ([email protected]) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

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

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

Orientação a Objetos

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano 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

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

Padrões de projeto 1

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

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

Análise e Projeto Orientados por Objetos

Aná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 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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. [email protected] DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai [email protected] DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite [email protected]

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite [email protected] Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

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

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos [email protected] Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

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

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

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

Análise e Projeto Orientados por Objetos

Aná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 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

Engenharia de Software

Engenharia de Software Engenharia de Requisitos Cap. 06 e 07 Sommerville 8 ed. REQUISITOS DE SOFTWARE» Requisitos são descrições de serviços fornecidos pelo sistema e suas restrições operacionais. REQUISITOS DE USUÁRIOS: Sã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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos ([email protected]) 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 ([email protected]) 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 à 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

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]

PROGRAMAÇÃ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. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 4 a série Programação Orientada a Objetos A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Modelagem de Casos de Uso (Parte 1)

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

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Capí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. 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 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

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

Uma Abordagem usando PU

Uma Abordagem usando PU Uma Abordagem usando PU Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Baseada em: Rational Software Corpotation G. Booch, Ivar Jacobson,

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2007/2008 Requisitos para a 1 a entrega Loja Virtual 1 Introdução O enunciado base do projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. 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 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

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

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha ([email protected]) 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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II RELATÓRIO TÉCNICO ADORILSON BEZERRA DE ARAÚJO ANDRÉ GUSTAVO

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