PROGRAMA
1. Introdução à Análise e Projeto Orientados a Objeto
1.1 Construindo Arquiteturas de Software: Lidando com a Complexidade
1.2 O que é modelagem?
1.3 Análise e Projeto como Atividades
1.4 O que é Orientação a Objeto?
1.5 Por que Queremos Orientação a Objeto?
1.6 Linguagens para Modelagem: UML
1.7 Um Processo de Desenvolvimento de Software
2. Levantamento de Requisitos e Modelagem de Use Cases
2.1 A Fase de Levantamento de Requisitos
2.2 Levantando Requisitos Funcionais com a Modelagem de Use Cases
2.3 Estudo de Caso: Um Sistema de Controle de Biblioteca
3. Uma Breve Introdução a Objetos Usando Exemplos em Java
3.1 Buzzwords em Java
3.2 Mecanismos Simples
3.3 Usando Objetos
3.4 Tomadas de Decisão
3.5 Laços e Coleções
3.6 Definição de Classes
3.7 Tratamento de Exceções
3.8 Herança e Polimorfismo
3.9 Interfaces
4. Um Estudo de Caso com UML e o Processo Unificado
4.1 Uma Breve Descrição do Processo Unificado
4.2 Modelos, Views e Diagramas em UML
4.3 Requisitos e o Modelo de Use Case
4.4 O Modelo de Análise de Domínio4.4.1 O Business Package
4.4.2 O GUI Package4.5.1 O Projeto da Arquitetura
4.5.2 O Database Package
4.5.3 O Business Objects Package
4.5.4 O User Interface Package
4.5.5 O Projeto da Interface do Usuário4.6 Implementação
5. Algumas Técnicas de Análise e Projeto Orientados a Objeto
5.1 Problemas Básicos de Análise e Projeto
5.2 O que é uma Boa Decomposição?
5.3 Como Achar Classes e Distribuir Responsabilidades?
5.4 Interfaces
5.5 Acoplamento
5.6 Coesão
5.7 Composição Versus Herança
6. Design Patterns, Refactoring, Extreme Programming e Frameworks
6.1 Padrões de Projeto (Design Patterns)
6.2 Refactoring
6.3 Extreme Programming
6.4 Frameworks