Buscar

Introdução aos Padrões de Projeto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Análise e Projeto de Sistemas II
Material das Aulas disponível no AVA
Aula 2
MSc. Karen Figueiredo – karen@ic.ufmt.br
Introdução aos 
Padrões de Projeto
Reuso de Software
2
Contexto:
 Maioria das Engenharias
 Composição de componentes existentes
 Componentes usados em outros projetos
 Engenharia de Software
 Antes
 Focado no desenvolvimento original
 Agora
 Processo de desenvolvimento baseado em um reuso de 
software
 Software com melhor qualidade
 Desenvolvimento mais rápido
 Menor custo
Reuso de Software
3
 Tipos:
 Reuso de Sistemas
 Incorporação de um sistema, sem alterá-lo, em outro sistema 
(COTS - commercial off-the-shelf)
 Desenvolvimento de famílias de aplicações
 Reuso de Componentes
 Subsistemas de uma aplicação
 Reuso de Objetos e Funções
 Objetos simples e bem definidos
 Funções/Operações
Reuso de Software
4
 Vantagens:
 Confiabilidade Crescente
 Toda vez que um software é utilizado, ele é novamente testado
 Componentes já utilizados e testados em outros sistemas são 
mais confiáveis que novos componentes
 Risco de Processo Reduzido
 A margem de erro dos custos de reuso é menor que dos custos 
de desenvolvimento
 Uso Efetivo de Especialistas
 Especialista desenvolve software reutilizável encapsulando seu 
conhecimento
 Desenvolvimento Acelerado
 Redução do tempo de desenvolvimento e de validação
Reuso de Software
5
 Problemas:
 Custos de Manutenção
 Dificuldade de adaptar componentes sem o código fonte
 Falta de Ferramentas de Suporte
 Ferramentas CASE podem não suportar desenvolvimento com 
reuso
 Síndrome do “não foi inventado aqui”
 Falta de confiança
 Desenvolver é mais desafiador para a equipe
 Criar e Manter uma biblioteca de Componentes
 Exige esforço - Classificar, catalogar, recuperar, etc.
 Busca de Novos Componentes
 Exige esforço - Encontrar, entender, adaptar, etc.
Reuso de Software
6
 Visões do Reuso:
Reuso de Software
7
 Visões do Reuso:
 Padrões de Projeto
 Abstrações genéricas que ocorrem nas aplicações
 Desenvolvimento Baseado em Componentes
 Sistemas desenvolvidos pela integração de componentes
 Frameworks
 Coleção de classes abstratas e concretas que podem ser 
adaptadas e estendidas para a criação de aplicações
 Empacotamento de Sistemas Legados
 Interfaces podem ser definidas para prover acesso a sistemas 
legados
 Sistemas Orientados a Serviços
 Sistemas desenvolvidos pela ligação com serviços 
compartilhados
Reuso de Software
8
 Visões do Reuso:
 Linhas de Produto de Aplicação
 Tipo de aplicação generalizada em uma arquitetura comum que 
pode ser adaptada de diferentes modos para clientes diferentes
 Integração de COTS
 Sistemas desenvolvidos pela integração de aplicações 
existentes
 Aplicações Verticais Configuráveis
 Desenvolvimento de um sistema genérico que pode ser 
configurável para um sistema específico
 Biblioteca de Programas
 Bibliotecas de classes e funções comumente usadas
 Geradores de Programas
 Geração automática de software
Padrões de Projeto
9
 Definição:
Padrões de Projeto
10
 Definição:
Padrões de Projeto
11
 Definição:
 Forma de reusar conhecimento abstrato sobre um 
problema e sua solução
 Suficientemente abstrato para ser reusado sob diferentes 
contextos
 Aplicáveis em problemas bem conhecidos
 Soluções que funcionam, tornando-se receitas para situações 
similares
 Frequentemente usa características da OO como 
herança e polimorfismo
Padrões de Projeto
12
 Os Padrões por GoF:
 Inspirados em “A Pattern
Language” de Christopher 
Alexander
 Padrões de arquiteturas de cidades, 
casas e prédios
 Design Patterns: Elements Of
Reusable Object-Oriented
Software
 Catálogo publicado em 1994
 Gamma, Vlissides, Jonhson e Helm
(The Gang of Four - GoF)
 23 padrões de projeto
Padrões de Projeto
13
 Os Padrões por GoF:
 “Projetar software orientado a objetos é difícil, mas 
projetar software reutilizável orientado a objetos é ainda 
mais difícil.”
 Identificar objetos
 Granularidade corrreta
 Definir interfaces
 Relacionamentos
 Requisitos futuros
 Uma coisa que os melhores projetistas sabem que não 
devem fazer é começar algo do zero
 Nenhum dos padrões do livro são novos ou não testados
Padrões de Projeto
14
 Benefícios:
 Aprendizagem com a experiência dos outros
 Identificação de problemas comuns de projeto de software
 Utilização de soluções testadas e bem documentadas
 Ajuda um novato a agir como um mais experiente
 Produção de bons projetos OO
 Normalmente utilizam boas práticas OO
 Utilizam polimorfismo, herança e composição
 Vocabulário comum
 Ajuda na documentação
 Ajuda na conversão de um modelo de análise em um 
modelo de implementação
 Aumento da produtividade
Padrões de Projeto
15
 Composição:
 Nome
 Problema
 Quando aplicar o padrão e em que condições
 Solução
 Como usar os elementos disponíveis (classes, objetos, 
relacionamentos) para solucionar o problema
 Consequências
 Custos e benefícios
 Impactos (flexibilidade, reusabilidade, eficiência, etc)
Padrões de Projeto
16
 Categorias dos Padrões:
 Padrões de Criação
 Abstraem o processo de instanciação
 Tornam um sistema independente da forma como os objetos 
são criados, compostos e representados
Padrões de Projeto
17
 Categorias dos Padrões:
 Padrões Estruturais
 Lidam com a composição de classes o objetos para formar 
grandes estruturas no sistema
Padrões de Projeto
18
 Categorias dos Padrões:
 Padrões Comportamentais
 Caracterizam a forma como classes ou objetos interagem
 Distribuem responsabilidade
Padrões de Projeto
19
 23 Padrões GoF:

Outros materiais