Modulo I Princípios e Padrões de Projeto de SW em Java

Documentos relacionados
Módulo III Padrões GOF: Bridge

Modulo II Padrões GRASP

ESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO

PADRÕES DE PROJETO: DESIGN PATTERNS

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

IV. CONTEÚDO PROGRAMÁTICO

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Reutilização de Software

Programação Estruturada Orientada a Objetos

Técnicas para Reutilização de Software

Introdução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

PLANO DE ENSINO CURSO: BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Padrões de Projeto. Prof. Jefersson Alex dos Santos

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

UFG - Instituto de Informática

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Análise e Projetos de Sistemas - INF014

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

Introdução a Orientação a Objetos e UML

I. Dados Identificadores Tecnologia em Análise e Desenvolvimento de Sistemas Análise E Projeto de Sistemas Eduardo Jesus Coppola

Plano de Ensino PROGRAMAÇÃO ORIENTADA A OBJETOS

INTRODUÇÃO À ORIENTAÇÃO A OBJETOS E UML

Padrões de projeto 1

Arquitectura de Sistemas de Software

Ambiente de Desenvolvimento Integrado (IDE)

SISMO - Sistemas e Mobilidade Departamento de Informática / UFMA. Junho de 2008

Aula 8 Especificação de Requisitos

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

MODELOS DE PROCESSO. Isac Aguiar isacaguiar.com.br

:: aula 8. :: Desenvolveremos as seguintes habilidades nesta aula:

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Princípios de Análise e Projeto Orientados a Objetos com UML

I. Dados Identificadores Tecnologia em Análise e Desenvolvimento de Sistemas

INF1404 MODELAGEM DE SISTEMAS

UML Unified Modeling Language Linguagem de Modelagem Unificada

English version at the end of this document

INF1404 MODELAGEM DE SISTEMAS

De uma forma ampla, o profissional egresso deverá ser capaz de desempenhar as seguintes funções:

Padrões de Arquitetura de Software. Leandro Tonietto Unisinos fev-09

UNIVERSIDADE PRESBITERIANA MACKENZIE

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Organizando Processos de Requisitos

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Programação orientada a objetos

Padrões de Software (Software Patterns)

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Programação Orientada a Objeto

Unidade: Introdução à POO (Programação Orientada a Objetos)

Universidade Estadual de Ponta Grossa PRÓ-REITORIA DE GRADUAÇÃO DIVISÃO DE ENSINO

Aula 1 Introdução à Orientação a Objetos (OO) e UML

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Documento de uso exclusivo da unidade, não possui valor legal. 28/06/ :43:00. Matéria: Carga Horária Total. Prática: 44 Campo: 44

Engenharia de Software

Programação III 2016/1

Profª. Juliana Pinheiro Campos ENG10082 Programação II Créditos: Prof. Gustavo Willam Pereira e Prof.

Programação Orientada a Objetos

Arquitetura de Software: Introdução

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Universidade Federal de Minas Gerais Colégio Técnico Plano de Ensino

Aula 9 Especificação de Requisitos

Análise e Projeto de Software Parte I. Marcos Dósea

UML. Rodrigo Leite Durães.

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Análise e Projeto Orientados a Objeto

Padrões Arquiteturais. Silvia Regina Vergilio

As Visões. Visões arquiteturais (revisão)

Conceitos de Programação Orientada a Objetos

Conceitos de Orientação a Objetos

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Arquitetura de Software

SOFTWARE PATTERNS: FUNDAMENTOS, TIPOS E DESCRIÇÃO Sérgio Teixeira de Carvalho

Padrões de Projeto de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

Programação Orientada a Objetos

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Arquitetura de Software: Introdução

Desenvolvimento das Camadas Lógica e Persistência do Projeto SIAP-F

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

Objetivo do Curso. Introdução à Interação Humano-Computador. Professora: Raquel Oliveira Prates

Licenciatura em Informática

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Design de Software e Projeto Arquitetural de Software. Prof. Edison A M Morais prof@edison.eti.br

Desenho de Software. Sumário

Teoria Geral dos Sistemas

Considerações sobre Projeto Orientado a Objetos: Manipulação Formal das Técnicas

Introdução à Análise e Projeto de Sistemas

Transcrição:

Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Princípios e Padrões de Projeto de SW Princípios de Projeto de SW Padrões de SW Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 2 1

Bibliografia Craig Larman, Utilizando UML e Padrões, Ed Bookman Eric Gamma, et ali, Padrões de Projeto, Ed Bookman Martin Fowler, Analysis Patterns - Reusable Object Models, Addison-Wesley,1997 Martin Fowler, Refatoração - Aperfeiçoando o projeto de código existente, Ed Bookman Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 3 Livros Core Java 2, Cay S. Horstmann, Gary Cornell Volume 1 (Fundamentos) Volume 2 (Características Avançadas) Java: Como Programar, Deitel & Deitel Thinking in Patterns with JAVA, Bruce Eckel Gratuito. http://www.mindview.net/books/tij/ Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 4 2

POO-Java Princípios De Projeto de SW Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 5 Reuso de Software Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código, decisões de projeto, bibliotecas de funções e classes, componentes etc.) já testados e validados Formas de reutilização Anos 70: Subrotinas, Módulos Anos 80: Biblioteca de classes, Geradores de aplicações Anos 90: Componentes, Frameworks, Padrões de software Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 6 3

POO-Java Padrões de Software Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 7 Padrões de software Desde o início do desenvolvimento de sistemas de SW, diversos sistemas foram desenvolvidos. Uma parte desses foi bem sucedida, outra parte não... À medida que esses projetos foram realizados, os desenvolvedores foram colecionando diversas soluções bem sucedidas para problemas recorrentes no desenvolvimento de software. Desta forma, quando o mesmo problema ocorria, a equipe de desenvolvimento já tinha uma solução genérica (re)aplicável a ele. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 8 4

O que são padrões de software Um padrão (pattern) é uma descrição das características de uma solução comprovada para um problema recorrente, onde os elementos essenciais são considerados e os detalhes irrelevantes são omitidos. (Gamma et al, 1995) Problema recorrente; descrição da solução; elementos essenciais Permitem que os desenvolvedores concentrem seus esforços nos aspectos inéditos do problema. Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 9 O que são padrões de software Analogia: jogo de xadrez. Diversos mestres já elaboraram jogadas geniais. Essas jogadas foram catalogadas e passaram a ser utilizadas por outros jogadores. O mesmo acontece no desenvolvimento de software. Desenvolvedores experientes criaram soluções para diversos problemas relacionados ao desenvolvimento de software. Essas jogadas (padrões) também foram catalogadas. Esses padrões são agora utilizados por outros desenvolvedores quando estes se deparam com problemas semelhantes. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 10 5

Histórico Historicamente, o conceito de padrões não foi concebido por profissionais da área de computação. Um arquiteto civil, Christopher Alexander escreveu (1970) dois livros sobre padrões de projeto para a arquitetura civil. The timeless way of building (1977) A pattern language (1979) Christopher Alexander Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 11 Problema vs solução É importante notar que um padrão descreve as características essenciais de uma solução para um determinado problema. Na maioria das vezes, a solução deve ser adaptada para a situação específica na qual o padrão está sendo aplicado. Cada padrão descreve um problema que ocorre freqüentemente no nosso ambiente, e então descreve o núcleo de uma solução para tal problema. Esse núcleo pode ser utilizado um milhão de vezes, sem que haja duas formas de utilização iguais. Christopher Alexander (1977) Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 12 6

Níveis de abstração e padrões Existem padrões catalogados em diversos níveis de abstração análise, projeto (design), arquitetura. Padrões de análise (Analysis Patterns) Úteis na modelagem de domínio Apóiam o reuso de idéias durante a fase de análise Podem se aplicar a um único domínio ou a vários domínios Padrões de projeto (Design Patterns) Úteis no desenho (solução) Padrões arquiteturais (Architectural Patterns) Úteis na definição dos elementos arquiteturais de um sistemas (subsistemas, camadas, etc.) Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 13 Conclusões Desenvolver SW é difícil. Desenvolver SW reutilizável e ainda mais difícil. Padrões facilitam o reuso de projetos e arquiteturas de sucesso. OOP = ferramenta. Ter um martelo não faz de ninguém um arquiteto. Estudar padrões de software é uma necessidade para desenvolvedores de software que almejam qualidade em seu trabalho. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 14 7

Conclusões Em última análise, padrões de software são manifestações e aplicações dos fundamentos da orientação a objetos. Foco nas responsabilidades dos objetos, e não em como implementá-los. Identificação do que é variável no desenho, e posterior encapsulamento dessa parte. Adição de camadas entre coisas que podem mudar de forma independente uma da outra (indireção). Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 15 8