Padrões. Projeto (Design) de Software



Documentos relacionados
Padrões de projeto 1

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Documento de Arquitetura

O Processo de Desenvolvimento de Software

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

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

Categorias de Padrões

Processo de Desenvolvimento de Software. Engenharia de Software.

Introdução ao Design

2 Engenharia de Software

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

GBD PROF. ANDREZA S. AREÃO

MVC e Camadas - Fragmental Bliki

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

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

Padrões de Projeto WEB e o MVC

Engenharia de Software na Prática Hélio Engholm Jr.

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

SISTEMA GERENCIADOR DE BANCO DE DADOS

Introdução à Engenharia de Software

Engenharia de Requisitos

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Fábrica de Software 29/04/2015

Documento de Projeto de Sistema

Padrões de Interação com o Usuário

Concepção e Elaboração

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Padrão Arquitetura em Camadas

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

2 a Lista de Exercícios

Modelo para Documento de. Especificação de Requisitos de Software

UFG - Instituto de Informática

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

Modelagem de Processos. Prof.: Fernando Ascani

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

Padrões GoF. Leonardo Gresta Paulino Murta

Modelo para Documento de. Especificação de Requisitos de Software

Figura 1 - Arquitetura multi-camadas do SIE

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Documento de Projeto de Software

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Engenharia de Software

ENGENHARIA DE SOFTWARE I

REQUISITOS. Prof. Msc. Hélio Esperidião

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Frameworks O que é um framework?

Gerenciamento de Níveis de Serviço

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

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

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

Curso ITIL Foundation. Introdução a ITIL. ITIL Introduction. Instrutor: Fernando Palma fernando.palma@gmail.com

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Wesley Vaz, MSc., CISA

Gerenciamento de Problemas

Análise e Projeto Orientados por Objetos

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Processos Técnicos - Aulas 4 e 5

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

Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Projeto de Arquitetura

BEM-VINDO. Apresentação Inicial. Por favor, descreva o seu atual conhecimento sobre Governança de TI.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Análise e Projeto de Software

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

PLANO DE GERENCIAMENTO DO PROJETO

Conjunto de recursos (humanos e materiais), processos e metodologias estruturados de forma semelhante à indústria tradicional.

Engenharia de Software II

Análise e Projeto Orientados por Objetos

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

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Relatório do GPES. Arquitetura Geral do Framework

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

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Oficina de Gestão de Portifólio

PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO (PROENG) ASSESSORIA DE DESENVOLVIMENTO ASSESSORIA JURÍDICA

Introdução à Computação

Fatores de Qualidade de Software

Transcrição:

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 ideal ou disponível? Como acomodar restrições e requisitos não funcionais na Infra-estrutura real que estará disponível? Quais serão os procedimentos da produção (back-ups, espelhamento, segurança, etc...) Que padrões definir, estabelecer e como garantir e controlar o cumprimento destes padrões 1

Processo de Tradução de modelos de análise (isentos de tecnologia, lógicos) para modelos de projeto (development-ready, físicos) Como fazer valer os SLAs e padrões (ITIL, COBiT), acordados c/ cliente? Como manter a coerência e a rastreabilidade com os modelos de análise? Como fazer tudo isso com qualidade, manutenibilidade, extensiblilidade, flexibilidade e reusabilidade (usando coisas prontas)??? Palavra de ordem: trade-off (tomar decisões...) Reusabilidade Característica desejável de bons projetos Partes de um projeto em andamento devem ser projetada para reaproveitamento futuro Re-uso de partes projetadas no projeto anterior Design Patterns: Reusabilidade Conceitual, geralmente requerer adaptação ao contexto FrameWorks: Reusabilidade de Código (classes, componentes e sub-sistemas) prontos (Ready-to-use) 2

Flexibilidade Característica desejável de um projeto de software, reflete a capacidade de um pattern ou framework alterar suas funcionalidades em função das necessidades de uma aplicação específica que pretende usá-lo. Extensibilidade Característica desejável de um projeto de software, reflete a possibilidade de alteração (manutenibilidade) e de evolução de um framework ou pattern. 3

Encapsulamento Característica de bons projeto, no qual agrupa-se e blinda-se um conjunto de elementos de código/design, fornecendo aos demais elementos um meio de acesso (interface) bem clara para ser acessado. os elementos com bom encapsulamento devem ser projetados para possuir uma forte relação interna (alta coesão) e uma interface clara que facilite seu uso pelos demais (fraco acoplamento) Encapsulamento Projeto OO Projeto Clássico Nível 1 Métodos Linhas de código Nível 2 Classe / Objeto Funções/Subprogramas Nível 3 Componente Biblioteca Nível 4 Sub-Sistema Sub-Sistema Nível 5 Serviço (SOA) Serviço (SOA) 4

Acoplamento Medida de projetos de software Mede a dependência entre partes (elementos) do projeto de uma aplicação Quanto mais baixo for o grau de acoplamento entre seus elementos (módulos, bibliotecas, componentes, sub-sistemas), mais qualidade tem o projeto do software Coesão Medida de projetos de software Mede a associação funcional entres os elementos internos de um elemento do software (módulos, bibliotecas, componentes, sub-sistemas) Quanto mais alto o grau de coesão, mais qualidade tem o projeto do software. 5

Categorias Padrões Arquiteturais Expressam um esquema estrutural fundamental para sistemas de software Provêem um conjunto de subsistemas fundamentais, especificam suas responsabilidades e incluem regras e guias para a organização dos relacionamentos entre eles Categorias Padrões de Projeto Provêem um esquema para refinamento dos subsistemas ou componentes de um sistema de software ou dos relacionamentos entre eles. Descrevem uma estrutura recorrente comum de componentes de comunicação que solucionam um problema de projeto geral dentro de um contexto particular 6

Categorias Idiomas São um padrão de nível baixo específico de uma linguagem de programação Descrevem como implementar aspectos particulares de componentes ou de relacionamentos entre eles usando as características de uma dada linguagem Categorias de Patterns Categorias de patterns definidos por GoF (grupo de 4 Gamma e colegas) Creational (de Criação) Structural (Estruturais) Behavioral (Comportamentais) Outros autores desenvolveram outros patterns Basic (boas práticas para programação OO) Collectional (manutenção de coleções de objetos) Concurrency (lidam c/ concorrência, race conditions) Persistência (ex: DAO) 7

Categorias de Patterns Creational (de Criação) Mecanismos para Criação de Objetos Structural (Estruturais) Delegação de responsabilidades para outros objetos. Facilita desenvolvimento em camadas Behavioral (Comportamentais) Atribuição de responsabilidade entre diferentes objetos, a maioria em tempo de execução Collectional (Coleções) Coleções de objetos Concurrency Mecanismos p/ evitar concorrência, race-conditions, deadlocks 8