Projeto de Software Orientado a Objeto

Período: 2001.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 Lista de Exercícios Recursos
  Bibliografia Projeto  
  Material da disciplina (html on-line) Auto Avaliação  
  Material HTML zipado
Pegue isso também (design patterns)
Gabaritos  
  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
Adriano Fábio Q. Brito  
Alexandre Nóbrega Duarte  
Carina Machado de Farias  
Daniel Paranhos da Slva  
Eder Pazinatto  
Erick Baptista Passos  
Francisco Petrônio A. de Medeiros  
José Amâncio Macedo Santos  
José de Castro Neto  
Josué Toebe  
Márcio Ferreira Barros  
Pedro Barbosa Cordeiro  
Philip Stephen Medcraft  
Plácido Marinho Dias  
Ricardo Santos de Oliveira  
Vanessa Farias Dantas Freire  

Plano de Aulas

Dia Real Assunto Planejado
19 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://vulcano.dsc.ufpb.br/jacques/cursos/2001.1/poo/index.htm
Ler o livro e o material da HP antes das aulas
Falar da auto-avaliação
Não tem aula durante o período 16/04 a 18/04
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

21 março   2. Projeto Arquitetural

2.1 Da análise ao projeto
2.2 Projeto arquitetural

26 março  

2.2 Projeto arquitetural

3. Projeto de Baixo Nível - Padrões Básicos

3.1 Padrões para atribuir responsabilidades

28 março   [Buffer de contingência para as aulas]
2 abril  

3.1 Padrões para atribuir responsabilidades

4 abril  

3.2 Esquema de banco de dados e mapeamento OO-Relacional

9 abril  

3.2 Esquema de banco de dados e mapeamento OO-Relacional

11 abril  

3.3 Polimorfismo
3.4 Interfaces
3.5 Composição versus herança

23 abril   4. Projeto de Baixo Nível - Design Patterns

4.1 O que são Design Patterns?
4.2 Elementos essenciais de um Design Pattern
4.3 Design Pattern: Factory Method

25 abril   [Buffer de contingência para as aulas]
30 abril  

4.4 Design Pattern: Singleton
4.5 Design Pattern: Abstract Factory

2 maio  

4.6 Design Pattern: Iterator
4.7 Design Pattern: Composite

7 maio  

4.8 Design Pattern: Strategy
4.9 Design Pattern: Decorator

9 maio  

4.10 Design Pattern: Template Method
4.11 Design Pattern: Observer

14 maio  

4.12 Comentários finais sobre Design Patterns

16 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.
  3. Object-Oriented Modeling and Design for Database Applications, Blaha e Premerlani, Prentice Hall, 1998.
  4. Database Design for Smarties, Muller, Morgan Kaufmann Publishers, 1999.
  5. Object Oriented Analysis and Design with Applications, 2nd Ed. Booch, Benjamin/Cummings, 1994.
  6. Object-Oriented Modeling and Design, Rumbaugh, Blaha, Premerlani, Eddy e Lorensen. Prentice Hall, 1991.
  7. Object-Oriented Software Engineering, Jacobson, Christerson, Jonsson e Overgaard. Addison-Wesley, 1992.
  8. Object-Oriented Systems Analysis, Shlaer e Mellor. Yourdon Press, 1988.
  9. Designing Object-Oriented Software, Wirfs-Brock, Wilkerson e. Wiener. Prentice Hall, 1990.
  10. Mastering Object-Oriented Design in C++, Horstmann, John Wiley, 1995.
  11. The CRC Card Book, Bellin e Simone, Addison-Wesley, 1997.
  12. Object Solutions - Managing the Object-Oriented Project, Booch, Addison-Wesley, 1996.
  13. Surviving Object-Oriented Projects - A Manager's Guide, Cockburn, Addison-Wesley,1998.
  14. Analysis Patterns - Reusable Object Models, Fowler, Addison-Wesley,1997.
  15. Software Reuse - Architecture, Process, and Organization for Business Success, Jacobson, Griss e Jonsson, Addison-Wesley,1997.
  16. Software Project Management - A Unified Framework, Royce, Addison-Wesley,1998.
  17. Applying Use Cases, Schneider e Winters, Addison-Wesley,1998.
  18. 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. Core Java 2: Volume I - Fundamentals, Horstmann e Cornell, Prentice-Hall, 1999.
  3. The Java Programming Language, Arnold e Gosling, Addison-Wesley, 1998.
  4. ... 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 15%
Milestone 2 15%
Milestone 3 15%
Milestone 4 15%

Datas Importantes

Evento Data limite
Milestone 1 02/04/2001
Milestone 2 16/04/2001
Milestone 3 30/04/2001
Milestone 4 16/05/2001

Recursos

Um Estudo de Caso Completo

Sobre Processos de Desenvolvimento

Sobre Orientação a Objetos em Geral

Sobre o Framework de Testes JUNIT (para Java)

Sobre a UML

Sobre o Rational Unified Process (RUP)

Sobre Java

Sobre "Boa Programação"

Sobre Mapeamento OO-Relacional

Sobre Refactoring

Sobre Frameworks

Sobre Extreme Programming

Sobre Design Patterns

Sobre Pedagogical Patterns

Sobre Testing Patterns