Padrões de Desenho (Design Patterns)
|
|
- Wagner Melgaço Coimbra
- 8 Há anos
- Visualizações:
Transcrição
1 Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan Shalloway e James R. Trott, Addison Wesley, 2ª Ed., 2005: Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, e John Vlissides, Addison-Wesley Professional, 1ª Ed., 1995 Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and the Unified Process, Craig Larman, Prentice Hall PTR; 2ª Ed., 2001 Patterns and Software: Essential Concepts and Terminology, 2 1
2 Estruturas podem ser diferentes mas resolverem o mesmo problema marcar uma entrada Padrão? Christopher Alexander, planeamento urbanístico e arquitectura Olhando para as estruturas que resolvem problemas semelhantes, Alexander achava que podia encontrar as semelhanças entre desenhos que tinham grande qualidade. A estas semelhanças chamou PADRÕES Padrões são soluções para um problema num contexto Cada padrão descreve um problema que ocorre várias vezes no nosso ambiente e a parte fundamental da solução desse problema, de tal forma que se pode usar a solução milhões de vezes, sem repetir da mesma maneira duas vezes 3 Padrões Segundo Alexander a descrição de um padrão envolve 4 componentes: O nome do padrão O objectivo do padrão, o problema que resolve Como se consegue obter As restrições e forças a considerar para o obter 4 2
3 De Padrões de Arquitectura para padrões de Desenho de Software Soluções de software descritas em termos de objectos e interfaces em vez de paredes e portas O que é verdadeiro para padrões de arquitectura também é verdadeiro para desenho de software? Há problemas no software que ocorrem várias vezes que poderiam ser resolvidos mais ou menos da mesma maneira? Será possível desenhar software em termos de padrões, criando determinadas soluções baseadas nestes padrões 5 Padrões breve história Christopher Alexander The Timeless Way of Building, 1979 A pattern language: towns, buildings, construction, Conferência OOPSLA, Ward Cunningham e Kent Beck Jim Coplien, 1991: C++ Idioms GoF = Gang of Four = Erich Gamma, Richard Helm, Ralph Johnson, e John Vlissides, 1995 Design Patterns Aplica a ideia de padrões ao desenho de software chama-lhe padrões de desenho Descreve uma estrutura para catalogar e descrever padrões de desenho Cataloga 23 padrões Postula estratégias e aproximações OO baseadas em padrões de desenho 6 3
4 Principais características de um padrão Nome: Nome único que identifica o padrão Intenção: O objectivo do padrão; o que faz o padrão? Problema: O problema que o padrão tenta resolver Solução: Como o padrão fornece uma solução para o problema no contexto em que este aparece Participantes e colaboradores: As entidades envolvidas no padrão e como se interligam Consequências: Como é que o padrão suporta os seus objectivos? Quais as consequências da utilização do padrão? Implementação: Como é que o padrão pode ser implementado? Que técnicas se devem usar para implementar o padrão? Há aspectos dependentes de linguagens? Estrutura genérica: Um diagrama standard que mostre a estrutura típica do padrão 7 Porque estudar padrões de desenho? Desenhar software reutilizável Especialistas em desenho software OO não começam sempre do zero a construir um sistema Reutilizam soluções que já provaram funcionar Quando encontram uma boa solução usam-na várias vezes Desenhar com base em experiência anterior 8 4
5 Porque estudar padrões de desenho? Sensação de já ter resolvido um problema igual, sem saber exactamente onde e como Se lembrasse os detalhes desse problema e como tinha sido resolvido, poder-se-ia reutilizar esse conhecimento, em vez de o redescobrir de novo Normalmente não registamos as experiências para outros usarem Encontrar algo que permita partilhar as experiências 9 Porque estudar padrões de desenho? Reutilizar soluções Definir uma terminologia comum Padrões dão uma perspectiva de mais alto nível do problema, evitando os pormenores numa fase demasiado cedo do desenvolvimento Melhorar a manutenção e modificação do código 10 5
6 Classificação de padrões segundo GoF Fonte: Gamma et al Criação de objectos Composição das classes ou objectos Caracterizam a forma como as classes ou objectos interactuam e distribuem responsabilidades 11 Padrão FACADE (fachada) Intenção: Fornecer uma interface unificada para um conjunto de interfaces num subsistema. Define uma interface de alto nível que torna o subsistema mais fácil de usar (GoF) 12 6
7 Principais características do Padrão FACADE Intenção: Simplificar o uso de um sistema existente. Precisa de definir a uma interface Problema: Só é preciso usar uma parte do sistema, ou pretende-se interactuar com o sistema de uma dada maneira Solução: Apresenta uma nova interface para o cliente do sistema existente Participantes e colaboradores: Facade e classes do sistema; clientes comunicam com o sistema mandando mensagens ao Facade, que as reenvia para o subsistema apropriado. Os clientes que usam o Facade não precisam de aceder directamente aos objectos do subsistema Consequências: Simplifica o uso do sistema existente; promove um fraco acoplamento entre o subsistema e os seus clientes; contudo como facade não é completo, alguma funcionalidade pode não estar disponível para o cliente Implementação: Definir uma nova classe (ou classes) que tem a interface requerida. Colocar a nova classe a usar o sistema existente. 13 Principais características do Padrão FACADE Estrutura genérica: 14 7
8 15 Aplicação do padrão Facade Não é preciso usar toda a funcionalidade do sistema complexo, e podese criar uma classe que contenha todas as regras para aceder a esse sistema. Se este é um subconjunto do sistema original, a API (application programming interface) criada é muito mais simples Pretende-se encapsular o sistema original Monitorar utilização do sistema Trocar sistemas Pretende-se usar a funcionalidade do sistema original, mas também adicionar alguma O custo de escrever esta nova classe é menor do que o custo de todos terem que aprender o sistema original, ou menor do que se iria gastar em manutenção no futuro Facade põe uma nova interface (fachada) em frente do sistema original 16 8
9 Padrão ADAPTER (adaptador) Converte a interface de uma classe numa outra interface que o cliente espera. Permite que as classes trabalhem em conjunto, o que não poderiam fazer por motivos de incompatibilidades de interface (GoF) Usar Polimorfismo 17 Como fazer? Pretende-se agora adicionar uma nova forma Circulo Necessário implementar métodos display, fill e undisplay Melhor: alguém tem uma classe que se pode usar XXCircle +setlocation() +getlocation() +displayit() +fillit() +setitscolor() +undisplayit() 18 9
10 Padrão Adapter Não se pode usar a classe XXCircle directamente porque: Temos nomes e listas de parâmetros diferentes Não se pode derivar de Shape Podia modificar XXCircle efeitos laterais Em vez de mudar, adaptá-la 19 Implementar o padrão Adapter Circle contém XXCircle Class Circle extends Shape { private XXCircle MyXXCircle; Public Circle () { myxxcircle = new XXCircle(); } Void public display() { myxxcircle.displayit(); } } 20 10
11 Principais características do Padrão Adapter Intenção: casa o comportamento de um objecto existente fora do nosso controlo, com uma dada interface Problema: Um sistema que tem o comportamento e os dados certos mas uma interface errada; tipicamente usado quando se tem que fazer que algo derive de uma classe abstracta Solução: Fornece um invólucro (empacotador) com a interface desejada Participantes e colaboradores: O Adapter adapta a interface de um Adaptado para casar com a do alvo do Adapter (a classe da qual deriva); isto permite que o Cliente use o Adapatdo como se ele fosse um tipo do alvo Consequências: Permite que objectos preexistentes encaixem em estruturas de novas classes, sem estarem limitados pelas suas interfaces Implementação: Contém a classe existente numa outra classe. Fazer com que a classe que contém case com a interface requerida e chame os métodos da classe contida 21 Principais características do Padrão Adapter Estrutura genérica: Object Adapter um objecto (adaptador) contém outro objecto (adaptado) Class Adapter usando herança múltipla 22 11
12 Comparar os padrões Facade e Adapter Facade Adapter Há classes preexistentes? Sim Sim Há uma interface que também é preciso desenhar? Há um objecto que deve ter comportamento polimorfo? È necessária uma interface mais simples? Não Não Sim Sim Provavelment e Não Ambos são Wrappers empacotadores Um Facade simplifica uma interface Um Adapter converte uma interface existente numa outra 23 Padrão Strategy (estratégia) Sistema de comércio electrónico Processar encomendas em diferentes países» Preencher a encomenda» Calcular taxas» Processar a encomenda e emitir um recibo Desenhar com mudança na mente não é tentar antecipar a natureza exacta da mudança, mas sim assumir que haverá mudanças, e tentar antecipar onde elas ocorrerão Novos requisitos alterar a forma de cálculo das taxas; calcular taxas para clientes de outros países adicionar novas regras de cálculo Como fazer? 24 12
13 Copy + paste Switches Herança Segundo GoF Considerar o que deve ser variável no desenho e encapsular o conceito que varia Favorecer agregação-objecto em vez de herança-classe 25 No exemplo regras de cálculo das taxas variam Para encapsular deverá criar-se uma classe abstracta que define conceptualmente como se calcula uma taxa, derivando-se classes concretas para cada variação 26 13
14 Favorecer agregação em vez de herança 27 Padrão Strategy Definir uma família de algoritmos, encapsular cada um, e torná-los permutáveis; permite que o algoritmo varie independentemente do clientes que o usam (GoF) Baseado nos princípios: Objectos têm responsabilidades Implementações diferentes, específicas destas responsabilidades são manifestadas através do polimorfismo Há a necessidade de gerir diferentes implementações do que é, conceptualmente, o mesmo algoritmo Boa prática de desenho separar os comportamentos do domínio do problema uns dos outros alterar a classe responsável por um comportamento sem alterar outras 28 14
15 Principais características do Padrão Strategy Intenção: Permite usar diferentes regras de negócio ou algoritmos dependendo do contexto onde ocorrem Problema: A selecção do algoritmo a ser aplicado depende de um pedido do cliente ou dos dados que estão a ser usados. Se apenas houver uma regra, que não muda, então não é necessário o Strategy Solução: Separar a selecção do algoritmo da sua implementação. Permitir que a selecção seja feita com base no contexto Participantes e colaboradores: Strategy especifica como são usados os diferentes algoritmos ConcreteStrategies implementam esses algoritmos Context usa um dado ConcreteStrategy com uma referência do tipo Strategy. Startegy e Context interagem para implementar o algoritmo escolhido. O Context reencaminha o pedido do seu cliente para o Strategy Consequências: Define uma família de algoritmos Permite eliminar switches e/ou condições Todos os algoritmos têm que ter a mesma interface 29 Principais características do Padrão Strategy Implementação: Fazer com que a classe que usa o algoritmo (context) contenha uma classe abstracta (Strategy) que tem um método abstracto que especifica como chamar o algoritmo. Cada classe derivada implementa o algoritmo como pretendido Estrutura genérica: 30 15
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 maisPadrões de projeto 1
Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisProgramação 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 maisPadrõ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 maisJ930. 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 maisAutoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Leia mais1Introduçã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 maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Apresentação da Disciplina Edirlei Soares de Lima Objetivos da Disciplina Apresentar e discutir técnicas avançadas de Análise e Projeto de
Leia maisCurso - 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 maisProgramaçã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 maisPadrões de Software (Software Patterns)
Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Motivação! Exemplo Estratégia MVC! Forma
Leia maisPadrõ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 maisDesenho de Software. Desenho de Software 1
Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules
Leia maisPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele
Leia maisProf. Me. Marcos Echevarria
Prof. Me. Marcos Echevarria Grandes sistemas de software nunca são concluídos, eles simplesmente continuam evoluindo. Engenharia de Software 2 --------------------------------------------------- Engenharia
Leia maisDiagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)
Diagrama de Classes Diagrama de Classes Modelo de classes de especificação Perspectiva de Projeto Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição
Leia maisDesign 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 maisDesign Patterns na plataforma Java
Design Patterns na plataforma Java Uma experiência no processo de migração para.net João Saraiva Instituto Superior Técnico / INESC-ID (Grupo de Sistemas de Informação) Sumário Apresentação de alguns padrões
Leia maisProgramação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação
Última actualização: 25 de Outubro de 2008 Ano Lectivo 2008/2009 1º Semestre ção com Objectos ção Centrada em Objectos Docente: Paulo Leocádio Web: www.uac.pt/~pleocadio E-mail: pleocadio@uac.pt : Competências:
Leia maisTópicos Avançados em Engenharia de Software
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Programa de Pós-Graduação em Ciência da Computação Tópicos Avançados em Engenharia de Software Padrões e Frameworks (Aula 01-
Leia maisUML - Unified Modeling Language
UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisEngenharia 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 maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia maisO que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?
O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação
Leia maisRock In Rio - Lisboa
Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisProf.ª Esp. Talita Pagani
Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design
Leia maisUma Noção Intuitiva dos Padrões de Desenho de Software
1 1 Uma Noção Intuitiva dos Padrões de Desenho de Software Prof. Dr. Italo S. Vega italo@pucsp.br 5 de dezembro de 2001 São Paulo, SP 2 Agenda Motivação (5 min.) Padrões (20 min.) Exemplo (10 min.) Conclusões
Leia maisNotas de Aula 04: Casos de uso de um sistema
Notas de Aula 04: Casos de uso de um sistema Objetivos da aula: Aprender os elementos básicos da modelagem por casos de uso Utilizar as associações entre casos de uso, atores e demais artefatos Compreender
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisPADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE
PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE Nelson Ribeiro de Carvalho Júnior 1 RESUMO Atualmente o cenário mundial cuja dependência do software está cada vez mais evidente requer que
Leia maisPadrõ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 maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisPasteur 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 maisCasos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso
Casos de Uso O que é Casos de Uso Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente externo) usando o sistema para completar, do início
Leia maisFelipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)
UML Felipe Denis M. de Oliveira Fonte: Alice e Carlos Rodrigo (Internet) 1 Programação O que é UML? Por quê UML? Benefícios Diagramas Use Case Class State Interaction Sequence Collaboration Activity Physical
Leia maisUML Aspectos de projetos em Diagramas de classes
UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada
Leia maisZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011
Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição
Leia maisReuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia maisXP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br
XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso
Leia maisOrientaçã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 maisUNIVERSIDADE 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 maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisFábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Leia maisProcessos de Desenvolvimento de Software. Prof. Hélio Engholm Jr
Processos de Desenvolvimento de Software Objetivos Descrever o processo de desenvolvimento de software Orientado a Objetos (Object Oriented Software Development - OOSD) Descrever como a modelagem suporta
Leia maisFrameworks. Pasteur Ottoni de Miranda Junior
Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem
Leia maisPadrõ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 maisResolução da lista de exercícios de casos de uso
Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se
Leia maisGereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
Leia maisAnálise e Projeto Orientados a Objeto
Análise e Projeto Orientados a Objeto Objetivos Comparar e contrastar Análise e Projeto Definir O que vamos fazer na disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente
Leia maisAnálise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br
Análise de Sistemas Visão Geral: Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas
Leia maisNOKIA. Em destaque LEE FEINBERG
Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões
Leia maisArquitecturas de Software Licenciatura em Engenharia Informática e de Computadores
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisPlaneamento da Produção
Regula o funcionamento da ao nível operacional através de decisões do tipo o que, quando e quanto produzir ou comprar estratégico do negócio estratégico do negócio estratégico da estratégico da agregado
Leia mais2 Engenharia de Software
20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite
Leia maisProgramação em papel quadriculado
4 NOME DA AULA: Programação em papel quadriculado Tempo de aula: 45 60 minutos Tempo de preparação: 10 minutos Objetivo principal: ajudar os alunos a entender como a codificação funciona. RESUMO Ao "programar"
Leia maisDecorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA
Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento
Leia maisO modelo de balanced scorecard
O modelo de balanced scorecard Existe um modelo chamado balanced scorecard que pode ser útil para medir o grau de cumprimento da nossa missão. Trata-se de um conjunto de medidas quantificáveis, cuidadosamente
Leia maisDesenvolvendo Software Livre com Programação extrema
Desenvolvendo Software Livre com Programação extrema Dairton Bassi FISL 7.0 abril/2006 Panorama sobre o Desenvolvimento de Software A sociedade demanda: Grande quantidade de sistemas/aplicações Sistemas
Leia maisEngenharia Informática
Escola Superior de Ciência e Tecnologia Engenharia Informática Análise de Sistemas Informáticos 3º ano Exame 12 de Julho de 2006 Docentes: José Correia e João Paulo Rodrigues Duração: 90 m; Tolerância:
Leia maisEngenharia 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 maisTópicos em Engenharia de Computação
Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Engenharia Eletrônica MATRIZ FUNDAMENTAÇÃO LEGAL (Resolução do COEPP que aprovou a matriz curricular
Leia maisAnálise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com
Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como
Leia maisPADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR
FACULDADE DE CIÊNCIAS APLICADAS SAGRADO CORAÇÃO DIRETORIA DE ENSINO SUPERIOR COORDENAÇÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO GUSTAVO ANDRÉ DE FREITAS RILIANE ALPOIM PARIS RODRIGO SILVA DE SOUZA PADRÕES
Leia maisSISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária
SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA
Leia maisUML & Padrões Aula 7. UML & Padrões - Profª Kelly C C Silva
UML & Padrões Aula 7 UML & Padrões - Profª Kelly C C Silva Divisão das classes do Modelo de Análise Jacobson propõe a divisão das classes do Modelo de Análise de acordo com os seguintes estereótipos: entidades
Leia maisEXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Leia maisBPMN Business Process Modeling Notation
BPMN Business Process Modeling Notation Business Process Modeling Notation Página 1 Objetivo O objetivo deste curso é apresentar os elementos da notação de modelagem de processos de negócio BPMN 1.1 (Business
Leia maisPadrão Arquitetura em Camadas
Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização
Leia mais4.1. UML Diagramas de casos de uso
Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema
Leia maisMIG - Metadados para Informação Geográfica
MIG - Metadados para Informação Geográfica Introdução à Norma ISO 19115 Henrique Silva, Instituto Geográfico Português, hsilva@igeo.pt Lisboa, 14 de Fevereiro de 2008 Metadados para Informação Geográfica
Leia maisMVC e Camadas - Fragmental Bliki
1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura
Leia maisPadrões. Projeto (Design) de Software
Padrões Projeto de Softwares Categorias de Padrões Processo de Tradução de modelos de análise (isentos de tecnologia, lógicos) para modelos de projeto (development-ready, físicos) Qual a Tecnologia Alvo
Leia maisEngenharia 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 maisEngenharia de Requisitos Estudo de Caso
Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este
Leia maisDefinição de Processos
Definição de Processos Introdução Prof Ms Vinícius Costa de Souza www.inf.unisinos.br/~vinicius viniciuscs@unisinos.br Agenda Processos Definição Componentes Documentação Características Aplicações Nomenclaturas
Leia maisBanco de Dados I Introdução
Banco de Dados I Introdução Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) IFSul Campus Charqueadas Sumário da aula Avaliações Visão geral da disciplina Introdução Histórico Porque
Leia maisCAP. I ERROS EM CÁLCULO NUMÉRICO
CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção
Leia maisProposta para a Implementação do Cadastro de um Log de Auditoria Baseada em Padrões de Projeto
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Trabalho de Diplomação Gabriel Augusto Gimenes 9881 André Marcos Silva (Orientador) Trabalho de Diplomação Proposta para a Implementação
Leia maisRoteiro 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 maisUNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisSOFTWARE PATTERNS: FUNDAMENTOS, TIPOS E DESCRIÇÃO Sérgio Teixeira de Carvalho
SOFTWARE PATTERNS: FUNDAMENTOS, TIPOS E DESCRIÇÃO Sérgio Teixeira de Carvalho Sérgio Teixeira de Carvalho SOFTWARE PATTERNS: FUNDAMENTOS, TIPOS E DESCRIÇÃO Sérgio Teixeira de Carvalho 1 Resumo Especialistas,
Leia maisMODELAGEM DE SISTEMA Apresentação
MODELAGEM DE SISTEMA Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Apresentação da Disciplina Apresentação da Disciplina Apresentação da Disciplina
Leia mais4.1.3. Diagrama de contexto
4.1.3. Diagrama de contexto 1 2 Diagrama de contexto O diagrama de contexto deve mostrar as relações estabelecidas entre o sistema e o meio ambiente, apresentando o sistema com um único processo As entradas
Leia maisIntroduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA
Introduçãoa Engenhariade Software Prof. Anderson Cavalcanti UFRN-CT-DCA O que é Software? O que é software? São programas de computadores, em suas diversas formas, e a documentação associada. Um programa
Leia maisProfa. Thienne Johnson
Profa. Thienne Johnson E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison- Wesley, 1995. Conhecido como GoF (Gang of Four) Versão
Leia maisAspectos 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