MAC 413/5715 - Tópicos de Programação
Orientada a Objetos
Aula 1 - 10/08/2005
Conteúdo do Curso
- Revisão de conceitos básicos de POO
- padrões POSA I, II e III
- padrões de análise de software
- Anti-padrões
- Arcabouços
- Modelagem OO
- Cartões CRC
- Arquitetura de Software
- Sistemas criados usando padrões e arcabouços
(Choices, ...)
- Teste de software OO
- Programação Genérica (Templates, C++
STL, Java Generics)
- Programação Orientada a Aspectos (AspectJ)
- Reflexão Computacional
- Escrita de Padrões
- Effective Java, Effective C++ (se sobrar tempo)
Metodologia de Trabalho
- Aulas expositivas dadas pelo professor
- Seminários apresentados pelos alunos
- Discussão de textos
- Exercícios em sala de aula e no laboratórioPLoP (2
aulas)
- DesignFest (3 aulas)
Conceitos Básicos de Programação Orientada a
Objetos
- objetos = estruturas de dados + código
- classes (definem tipos)
- herança
- hierarquia de classes
- herança simples vs. herança múltipla
- classe abstrata vs. classe concreta
- interface
- terminologia
- método, função
- chamada de função, invocação de
método,
envio de mensagem
- subclasse, superclasse, mãe/parent, filha,
subtipo,
supertipo
- generalização, especialização,
especializar = to subclass
- em C++, classe abstrata pura é *quase* uma interface
- polimorfismo: capacidade de uma entidade de assumir
múltiplas
formas
- mesmo nome de método mas com assinatura diferente
- implementações diferentes para a mesma interface
- paramétrico
- tipos parametrizados, formas (templates), programação
genérica (generic programming)
- em C++: STL (Standard Template Library)
- em Java: optaram por não colocar por simplicidade
- herança de interface vs. herança de
implementaçao
- tipos <> classes
- em Java: implements e extends
- delegação
- sempre podemos escolher entre herança e
delegação
- arcabouços (frameworks)
- pontos quentes (hot spots)
- padrões de projeto de software (software design patterns
)
Próxima Aula
Página de MAC 413/5715
Página do Fabio
Página do DCC