![Page 1: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/1.jpg)
Análise e Projeto Orientados por Objetos
Edirlei Soares de Lima
Apresentação da Disciplina
![Page 2: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/2.jpg)
Objetivos da Disciplina
• Apresentar e discutir técnicas avançadas de Análise e Projeto de Software empregadas no processo de desenvolvimento, focando no reuso e na flexibilidade do desenvolvido com Orientação a Objetos.
• Ao final do curso, os alunos devem ser capazes de:
– Transformar o resultado de uma análise orientada a objetos em um projeto flexível e reutilizável;
– Reconhecer situações onde padrões de projeto devem ser aplicados;
![Page 3: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/3.jpg)
Introdução
Saber programar ≠ saber fazer um bom software
• O que é bom software?
– Extensível, reutilizável, bom desempenho, ...
• Programação orientada a objetos garante isso?
– Não, mas um bom projeto (OO) garante!
![Page 4: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/4.jpg)
Desenvolvimento Orientado por Objetos
• Análise OO: se dedica a desenvolver um modelo orientado a objeto do domínio da aplicação. – Os objetos identificados refletem entidades e operações associadas
com o problema a ser resolvido.
• Projeto OO: se dedica a desenvolver um modelo orientado a objeto de um sistema de software para implementar os requisitos. – Os objetos em um projeto OO estão relacionados à solução do
problema que está sendo resolvido.
• Programação OO: realiza um projeto de software em uma linguagem de programação OO.
![Page 5: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/5.jpg)
Processo de Desenvolvimento
![Page 6: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/6.jpg)
Cenário Exemplo
![Page 7: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/7.jpg)
Cenário Exemplo
• Você implementou o sistema...
• Mas e se agora:
– Shoppings pudessem ser compostos?
– Novas formas de pagamento se tornassem disponíveis?
– Um serviço de busca de produtos tivesse que ser disponibilizado só aos clientes?
– O gerente de uma loja fosse cliente de outra loja?
– A forma de armazenamento dos dados fosse alterada?
– ...
![Page 8: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/8.jpg)
Cenário Exemplo
• Criar um projeto flexível é o segredo para gerenciar melhor as alterações de software – Mudança de requisitos são frequentes
– Mudança é a norma, não a exceção!
• A expressão “E SE...” deve ser algo presente durante o projeto do software – E se algum ator for adicionado?
– E se uma nova funcionalidade for adicionada?
– E se o sistema for utilizado em outro contexto?
– …
![Page 9: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/9.jpg)
Análise e Projeto?
• Análise: – Modela o problema;
– Atividades necessárias para entender o domínio do problema (o que deve ser feito);
– Enfatiza a investigação do problema e dos seus requisitos.
• Projeto: – Modela a solução satisfazendo os
requisitos;
– Atividades de criação (como pode ser feito);
– Em última instância, projetos podem ser implementados.
![Page 10: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/10.jpg)
Analise e Projeto Orientados por Objetos?
• Análise Orientada a Objetos: Objetivo é encontrar e descrever os objetos (ou conceitos) no domínio do problema.
• Projeto Orientado a Objetos: Enfatiza a definição dos objetos de software e como eles colaboram para a satisfação dos requisitos.
![Page 11: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/11.jpg)
Padrões de Projeto de Software
• Problemas no desenvolvimento de software se repetem...
– Bons desenvolvedores aplicam boas soluções para resolve-los.
• Por que não reutilizar as boas soluções em outros projetos?
– Padrões de software!
• É fundamental ter um repertório de soluções, de Padrões de Projeto.
![Page 12: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/12.jpg)
O que são padrões de Software?
• Um padrão de software consiste na descrição de um problema que ocorre com frequência e a base de uma solução para este problema.
• Baseia-se na reutilização de ideias... não de código!
![Page 13: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/13.jpg)
Programa da Disciplina
• Parte 1 – Análise e Projeto Orientados por Objetos
• Parte 2 – Padrões de Projeto GRASP
• Parte 3 – Padrões GoF (Gang of Four)
• Parte 4 – Projeto Prático
![Page 14: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/14.jpg)
Critério de Avaliação
• Avaliação Teórica:
– Prova teórica envolvendo o conteúdo teórico e prático apresentado durante as aulas;
• Avaliação Prática:
– Trabalhos e exercícios desenvolvidos em grupo ou individualmente;
– Apresentação em aula;
![Page 15: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/15.jpg)
Critério de Avaliação
• G1:
– Prova: 8.0
– Trabalhos e Exercícios: 2.0
• G2:
– Prova: 3.0
– Trabalho Final: 7.0
• Media Final = (G1 + G2)/2
![Page 16: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/16.jpg)
Pré-Requisitos
• Engenharia de Software
• Programação Orientada a Objetos
![Page 17: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/17.jpg)
Material das Aulas
• Página do Curso:
– www.inf.puc-rio.br/~elima/poo/
• Contato:
![Page 18: Análise e Projeto Orientados por Objetosedirlei.3dgb.com.br/aulas/poo/POO_Aula_00_Apresentacao_2015.pdf · • Programação OO: ... •Parte 3 – Padrões GoF ... • Erich Gamma,](https://reader031.vdocuments.site/reader031/viewer/2022022615/5ba1b7eb09d3f2766b8cfc75/html5/thumbnails/18.jpg)
Bibliografia Principal
• Craig Larman. Utilizando UML e Padrões, 3ª Edição, Bookman, 2007.
• Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides. Padrões de Projeto, Bookman, 2010.