1. Metodologias de desenvolvimento de software orientado a objetos.
2. Arquitetura de software.
3. Padrões de desenho e análise de software orientado a objetos.
4. Anti-padrões.
5. Refatoramento: técnicas sistemáticas para melhorar o desenho de software pré-existente.
6. Linguagens, sistemas e aplicações orientados a objetos.
7. Tecnologia de componentes.