Análise e Projeto Orientados  
por Objetos  
Apresentação da Disciplina  
Edirlei Soares de Lima  
<edirlei@iprj.uerj.br>  
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;  
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!  
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.  
Processo de Desenvolvimento  
Cenário Exemplo  
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?  
...  
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?  
…
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.  
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.  
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.  
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!  
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  
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;  
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  
Pré-Requisitos  
•
•
Engenharia de Software  
Programação Orientada a Objetos  
Material das Aulas  
•
•
Página do Curso:  
–
www.inf.puc-rio.br/~elima/poo/  
Contato:  
–
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.