Projeto de software Estrutura do software e arquitetura SWEBOK

Documentos relacionados
Padrões de projeto 1

Análise e Projeto Orientados por Objetos

1Introdução Helder da Rocha

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha

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

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

Padrões de Projeto de Software

Programação Estruturada Orientada a Objetos

Programação Orientada a Objetos

Prof. Esp. Fabiano Taguchi

Laboratório de programação II

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Padrões de Análise. Martin Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, Osvaldo Kotaro Takai João Eduardo Ferreira

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

Design Patterns. Viviane Torres da Silva

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

Reutilização de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Engenharia de Software II

Padrões. Projeto (Design) de Software

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

Capítulo 2. Orientação a Objetos

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

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

Definindo um padrão para arquitetura Web

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

Arquitetura de Software: Introdução

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Mo#vação. Objec#vo. Estudar uma abordagem de desenvolvimento de so9ware orientada pelos objectos. Linguagens usadas: UML (Unified Modeling Language)

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

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

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

Análise e Projeto Orientados por Objetos

Levantamento, Análise e Gestão Requisitos. Aula 03

Requisitos de sistemas

Padrões de Desenho (Design Patterns)

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

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

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

Engenharia de Software

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

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

Requisitos de Sistemas

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

Arquitetura de Software

Interface vs. Implementação Herança vs. Composição

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico

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

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Projeto Orientado a Objetos

Programação orientada a objetos

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

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

Complexidade do Software

Problemas na Manutenção

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Como Modelar com UML 2

Requisitos de Software e UML Básico. Janaína Horácio

Prototype, um Design Patterns de Criação

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

RUP RATIONAL UNIFIED PROCESS

Técnicas para Reutilização de Software

Unidade I MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

UML. Rodrigo Leite Durães.

Engenharia Reversa e Reengenharia Software 13/05/2015

Tópicos Avançados em Engenharia de Software

Padrões de Design. Jair C Leite

ENGENHARIA DE SOFTWARE

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Rational Unified Process (RUP)

Panorâmica da Programação Orientada a Objetos

Engenharia de Software

Conceitos de Programação Orientada a Objetos

INE 5417 Engenharia de Software I

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

English version at the end of this document

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Sobre a KTEC KTEC Escola de Tecnologia

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Engenharia de Software II

Padrões de Projeto de Software Orientado a Objetos

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Arquitetura de Software: Introdução

Padrões GRASP. Leonardo Gresta Paulino Murta

Prof.ª Esp. Talita Pagani

Modulo II Padrões GRASP

Transcrição:

Projeto de software Estrutura do software e arquitetura SWEBOK

SWEBOK Design Patterns Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas da engenharia Design Patterns, ou Padrões de Projeto Padrões para alcançar objetivos na engenharia de software usando classes e métodos em linguagens orientadas a objeto Inspirado em "A Pattern Language" de Christopher Alexander, sobre padrões de arquitetura de cidades, casas e prédios

SWEBOK Design Patterns Repertório de soluções e princípios ajudam os desenvolvedores a criar software codificados em um formato estruturado Nome Problema que soluciona Solução do problema Consequência Objetivo: codificar conhecimento (knowing) existente de uma forma que possa ser reaplicado em contextos diferentes

Design Patterns Cada padrão descreve um problema que ocorre repetidamente no nosso dia-adia, uma solução para este problema, de forma que se pode usar a solução um milhão de vezes sem faze-la igual uma única vez Por que usar Design Patterns? suportam reuso orientado a objeto em alto nível de abstração provêm um framework que guia as restrições de projetos orientados a objetos. 5

Por que aprender padrões? Aprender com a experiência dos outros Identificar problemas comuns em engenharia de software e utilizar soluções testadas e bem documentadas Utilizar soluções que têm um nome: facilita a comunicação, compreensão e documentação Aprender a programar bem com orientação a objetos Os 23 padrões de projeto "clássicos" utilizam as melhores práticas em OO para atingir os resultados desejados Desenvolver software de melhor qualidade Os padrões utilizam eficientemente polimorfismo, herança, modularidade, composição, abstração para construir código reutilizável, eficiente, de alta coesão e baixo acoplamento 6

Por que aprender padrões? Vocabulário comum Faz o sistema ficar menos complexo ao permitir que se fale em um nível mais alto de abstração Ajuda na documentação e na aprendizagem Conhecendo os padrões de projeto torna mais fácil a compreensão de sistemas existentes "As pessoas que estão aprendendo POO frequentemente reclamam que os sistemas com os quais trabalham usam herança de forma complexa e que é difícil de seguir o fluxo de controle. Geralmente a causa disto é que eles não entendem os padrões do sistema" [GoF] Aprender os padrões ajudam um novato a agir mais como um especialista 7

Arquitetura vs. Design Patterns ARQUITETURA Framework de alto nível para estrutura uma aplicação. Ex: client-servidor usando RPC organização em 3 camadas arquitetura distribuída baseada em SOA Define o sistema em termos de componentes computacionais e suas iterações. DESIGN PATTERNS Nível mais inferior que arquitetura Objetos/Interfaces Reusáveis que resolvem problemas internos da aplicação. Ex: Como posso tornar o subsistema X desacoplado do subsistema Y? 8

Elementos de um padrão Nome Problema Quando aplicar o padrão, em que condições? Solução Descrição abstrata de um problema e como usar os elementos disponíveis (classes e objetos) para solucioná-lo Consequências Custos e benefícios de se aplicar o padrão Impacto na flexibilidade, extensibilidade, portabilidade e eficiência do sistema 9

SWEBOK Design Patterns Padrões GRASP Padrões GOF

Padrões GRASP Introduzidos por Craig Lairman em seu livro Applying UML and Patterns General Responsibility and Assignment Software Patterns Descrevem os princípios fundamentais da atribuição de responsabilidades a objetos, expressas na forma de padrões Exploram os princípios fundamentais de OO 5 padrões fundamentais 4 padrões avançados Quem conhece padrões GRASP, pode-se dizer que compreende o paradigma OO 11

SWEBOK Design Patterns Padrões GRASP Padrões GOF

Padrões clássicos ou GoF Livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm (Gang of Four) descreve 23 padrões de design Soluções genéricas para os problemas mais comuns do desenvolvimento de software OO Clássico da literatura OO. Continua atual. Não são invenções. São documentações de soluções obtidas através das experiências de sucesso na indústria de software, principalmente de projetos em C++ e SmalTalk 13

Gof x GRASP Padrões GRASP refletem práticas mais pontuais da aplicação de técnicas OO Padrões Gof exploram soluções mais específicas Padrões GRASP ocorrem na implementação de vários padrões GoF