O conteúdo da disciplina seguirá a ordem abaixo. Alguns pontos serão apresentados em mais de uma aula.

  1. Apresentação da disciplina
  2. Introdução ao projeto de software; princípios de um projeto bem elaborado; estrutura de módulos de software
  3. Métodos de especificação de um projeto; formato de modelos de especificação
  4. Projeto de arquitetura de software; participantes; arquiteto de software
  5. Estilos de arquitetura de software (fluxo de dados; chamada e retorno; componentes independentes; máquinas virtuais; centrados em dados)
  6. Padrão MVC (Modelo-Visão-Controlador)
  7. Serviços SOA e RESTful
  8. Projeto SOA e composição de serviços
  9. Microserviços web
  10. Demonstração de APIs REST
  11. Projeto orientado a objetos
  12. Geração de código orientado a objetos
  13. UML (Unified Modeling Language): descrição, objetivos, principais diagramas
    1. Diagramas de classe (aulas teóricas e práticas, utilizando Eclipse)
    2. Diagrams de interação: colaboração e sequência (aulas teóricas e práticas, utilizando Eclipse)
  14. Padrões GRASP (General Responsibility Assignment Patterns)
  15. Padrões GoF (Gang of Four; Design Patterns)
  16. Linguagens de projeto de software: uso e projeto de linguagens
  17. Gestão de elementos de um projeto
  18. Aulas práticas utilizando framework Loopback

A bibliografia da disciplina está disponível na página principal. Todos os livros da lista contém material sobre design de software. Entretanto, 3 livros bases principais foram usados na organização do conteúdo.

  • Arquitetura de projeto de software, estilos, MVC: Sommerville, I., Software Engineering. Addison-Wesley, 1996
  • UML, padrões GRASP, GoF: Larman, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design Prentice-Hall, New Jersey – USA, 1997
  • Geração de código, gestão de modelos: Model-Driven Software Engineering in Practiceby Marco Brambilla, Jordi Cabot, Manuel Wimmer Morgan & Claypool, 2012, 182 pages