Projeto de Software Orientado a Objeto

Período: 2002.1

As Pessoas A Disciplina A Avaliação Outros
Professor Objetivos Forma de avaliação Datas Importantes
Alunos Programa Notas dos Alunos Lista de Discussão
  Plano de Aulas   Recursos
  Bibliografia Projeto  
  Material da disciplina (html on-line) Auto Avaliação  
  Material HTML zipado Gabaritos  
  Material da disciplina (pdf) Comentários sobre os Projetos  
    Novos requisitos para Milestone 3   
  Material adicional Avaliação da disciplina  

Professor: Jacques Philippe Sauvé

Horários das Aulas e de Atendimento a Alunos pelo Professor

Alunos

Aluno Observação
Alex Sandro da Cunha Rêgo  
Ana Carolina de Jesus Maia  
Andrey Elisio Monteiro Brito  
Carlos Alan Peres da Silva  
Cássio Leonardo Rodrigues  
Cesar Rocha Vasconcelos  
Cidinha Costa Gouveia  
Claudivan Cruz Lopes  
Daniel Scherer  

Edemberg Rocha da Silva

 
Elizeu Lourenço dos Santos Neto  
Eloi Rocha Neto  
Emerson Ferreira da Araújo Lima  
Germano Barros Nascimento  
Gustavo Eulalio Miranda Cabral  
Hyggo Oliveira de Almeida  
Luana Bezerra Batista  
Marzina Vidal Negreiros bezerra  
Nazareno Ferreira de Andrade  
Pablo Suarez  
Pasqueline L. Dantas  
Raphael S. Andrade  
Ricardo Rubens Gomes Nunes Filho  

Plano de Aulas

Dia Real Assunto Planejado
18 de março de 2001  

Verificar a habilidade de programação dos alunos (se sabem OO, se programam muito, em que linguagens)
Anunciar URL da disciplina: http://jacques.dsc.ufpb.br/cursos/2002.1/poo/index.htm
Ler o livro e o material da HP antes das aulas
Falar da auto-avaliação
Pedir para não imprimir nas impressoras da Universidade
Avisar para todos olharem as datas importantes
Objetivos da disciplina
Programa da disciplina
Projetos e critérios de avaliação

1. Introdução

1.1 Introdução a um processo de desenvolvimento
1.2 Da análise ao projeto

20 março   2. Design Patterns
2.1 O que são Design Patterns?
2.2 Elementos essenciais de um Design Pattern
2.3 Padrões para atribuir responsabilidades: Expert
2.4 Padrões para atribuir responsabilidades: Creator
25 março  

2.5 Padrões para atribuir responsabilidades: Baixo Acoplamento
2.6 Padrões para atribuir responsabilidades: Alta Coesão

27 março   [Buffer de contingência para as aulas]
1 abril  

2.7 Design Pattern básico: Interfaces e polimorfismo
2.8 Design Pattern básico: Herança versus composição

3 abril  

2.9 Padrões arquiteturais: Camadas, partições, MVC

8 abril  

2.9 Padrões arquiteturais: Camadas, partições, MVC

10 abril  

2.10 Design Pattern: Factory Method
2.11
Design Pattern: Singleton

22 abril  

2.12 Design Pattern: Abstract Factory
2.13
Design Pattern: Iterator

24 abril   [Buffer de contingência para as aulas]
29 abril  

2.14 Design Pattern: Composite
2.15
Design Pattern: Strategy

6 maio  

2.16 Design Pattern: Decorator
2.17
Design Pattern: Template Method

8 maio  

2.18 Design Pattern: Observer

13 maio  

2.18 Design Pattern: Observer

15 maio  

2.19 Comentários finais sobre Design Patterns

20 maio   [Buffer de contingência para as aulas]

Bibliografia

Atenção! Este é um curso de pós-graduação e exige-se que você leia o material associado à disciplina antes das aulas. Por este motivo, as aulas terão um ritmo rápido. Leva suas dúvidas para a aula.

Leia pelo menos um livro sobre Análise e Projeto OO, pelo menos um livro sobre UML e pelo menos um livro sobre Java. Quem não fizer isto dificilmente poderá acompanhar a disciplina. Quem o fizer aprenderá muito.

Bibliografia sobre OO

  1. Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, Helm, Johnson e Vlissides, Addison-Wesley, 1995.
    Tradução: Padrões de Projeto, Soluções Reutilizáveis de Software Orientado a Objetos, Ed. Bookman, Porto Alegre, 2000.
    Este é nosso livro principal.
  2. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, Larman, Prentice-Hall, 1998.
    Este livro está disponível em português pela Bookman.
    Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a Objetos. Larman, C. Porto Alegre: Bookman, 2000.
  3. Refactoring : Improving the Design of Existing Code, Fowler, Beck, Brant, Opdyke, Roberts, Addison-Wesley, 1999.
  4. Object-Oriented Modeling and Design for Database Applications, Blaha e Premerlani, Prentice Hall, 1998.
  5. Anti-Patterns: Refactoring Software, Architectures, and Projects in Crisis, Brown, Mowbray, Malveau, McCormick, Wiley, 1998.
  6. Database Design for Smarties, Muller, Morgan Kaufmann Publishers, 1999.
  7. Java Design, Coad, Prentice Hall, 1997.
  8. Object Oriented Analysis and Design with Applications, 2nd Ed. Booch, Benjamin/Cummings, 1994.
  9. Object-Oriented Modeling and Design, Rumbaugh, Blaha, Premerlani, Eddy e Lorensen. Prentice Hall, 1991.
  10. Object-Oriented Software Engineering, Jacobson, Christerson, Jonsson e Overgaard. Addison-Wesley, 1992.
  11. Object-Oriented Systems Analysis, Shlaer e Mellor. Yourdon Press, 1988.
  12. Designing Object-Oriented Software, Wirfs-Brock, Wilkerson e. Wiener. Prentice Hall, 1990.
  13. Mastering Object-Oriented Design in C++, Horstmann, John Wiley, 1995.
  14. The CRC Card Book, Bellin e Simone, Addison-Wesley, 1997.
  15. Object Solutions - Managing the Object-Oriented Project, Booch, Addison-Wesley, 1996.
  16. Surviving Object-Oriented Projects - A Manager's Guide, Cockburn, Addison-Wesley,1998.
  17. Analysis Patterns - Reusable Object Models, Fowler, Addison-Wesley,1997.
  18. Software Reuse - Architecture, Process, and Organization for Business Success, Jacobson, Griss e Jonsson, Addison-Wesley,1997.
  19. Software Project Management - A Unified Framework, Royce, Addison-Wesley,1998.
  20. Applying Use Cases, Schneider e Winters, Addison-Wesley,1998.
  21. Enterprise Computing with Objects - From Client/Server Environments to the Intertnet, Shan e Earle, Addison-Wesley,1998.

Bibliografia sobre UML

  1. UML Distilled: Applying the Standard Modeling Language, Fowler, Addison-Wesley, 1998.
  2. UML Toolkit, Eriksson e Penker, John Wiley, 1998.
  3. The Unified Software Development Process, Jacobson, Booch, Rumbaugh, Addison-Wesley, 1999.
  4. The Unified Modeling Language User Guide, Booch, Rumbaugh, Jacobson, Addison-Wesley, 1999.
  5. The Unified Modeling Language Reference Manual, Rumbaugh, Booch, Jacobson, Addison-Wesley, 1999.
  6. Objects, Components, and Frameworks with UML - The Catalysis Approach, D'Souza e Wills, Addison-Wesley,1999.
  7. Real-Time UML - Developing Efficient Objects for Embedded Systems, Douglass, Addison-Wesley,1998.
  8. Visual Modeling with Rational Rose and UML, Quatrani, Addison-Wesley,1998.
  9. The Object Constraint Language - Precise Modeling with UML, Warmer e Kleppe, Addison-Wesley,1999.

Bibliografia sobre Projeto Arquitetural

  1. Software Architecture - Perspectives on an Emerging Discipline, Shaw and Garlan, Prentice Hall, 1996.

Bibliografia sobre Java

  1. Thinking In Java : The Definitive Introduction To Object-Oriented Programming The Language Of The World Wide Web, Bruce Eckel, Prentice Hall, 1998.
  2. Efective Java, Joshua Bloch.
  3. Core Java 2: Volume I - Fundamentals, Horstmann e Cornell, Prentice-Hall, 1999.
  4. The Java Programming Language, Arnold e Gosling, Addison-Wesley, 1998.
  5. ... e centenas de outros livros

Avaliação

O curso é baseado em grande parte num projeto completo. Um projeto está descrito aqui mas você poderá desenvolver outro projeto se assim desejar (e se assim me convencer!). Caso seja algo associado a seu trabalho de dissertação de mestrado, você deverá trabalhar sozinho. Caso contrário, poderá formar equipe com uma (e apenas uma) pessoa. O projeto é importante e você deverá trabalhar duro para completá-lo. É assim que vai aprender algo.

A avaliação será feita com mini-testes dados esporadicamente durante as aulas e com o projeto. O projeto será avaliado através de milestones distintos descritos no enunciado do projeto.

Os pesos atribuídos aos vários eventos de avaliação são indicados abaixo. A completude e qualidade da informação (programas, modelos, etc.) são avaliadas. Alunos podem faltar a até 15% dos mini-testes, sem prejuízo. Perde-se 5% do valor da nota dada ao projeto para cada dia de atraso na entrega.

Evento de Avaliação Peso
Mini-testes 40%
Milestone 1 20%
Milestone 2 20%
Milestone 3 20%

Datas Importantes

Evento Data limite
Milestone 1 08/04/2002
Milestone 2 06/05/2002
Milestone 3 27/05/2002

Recursos

Sobre Orientação a Objetos em Geral

Sobre o Framework de Testes JUNIT (para Java)

Sobre a UML

Sobre Processos de Desenvolvimento

Sobre Extreme Programming

Sobre o Rational Unified Process (RUP)

Sobre Java

Sobre "Boa Programação"

Sobre Mapeamento OO-Relacional

Sobre Refactoring

Sobre Frameworks

Sobre Design Patterns e AntiPatterns

Sobre Pedagogical Patterns

Sobre Testing Patterns