Calendarização
Semana 1 (14/02)
Aula T01
Parte 1: Introdução
- Introdução a Engenharia de Software
- Logística
- Prémio Celfocus
- Slides
- Capítulo 1 de Sommerville
- Capítulo 1 de SE at Google
Parte 2: Gestão de código com Git
Semana 2 (19/02)
Aula T02 (slides)
Parte 1: Scrum
Parte 2: Introdução a testes e integração contínua
- Guia CI GitLab
- Introdução do capítulo 8 do Sommerville
- Build the Right Product (António Rito Silva's Companion)
Aula T03 (slides)
Parte 1: Testes de unidade
- Processo de teste (Test Process (António Rito Silva's Companion))
- Testes de caixa aberta/fechada (Black and White-box (António Rito Silva's Companion))
- Duplos de teste (capítulo 8.1.1 Sommerville)
- Spock interaction-based testing
- Mocks aren't Stubs
Parte 2: Revisão código
- GitLab Merge Request Review (Youtube video, 2:06)
- Capítulo 24.3 Sommerville
- Google: how to do a code review
- Coding standards
- Static analysis
Semana 3 (26/02)
Aula T04 (slides)
Parte 1: Cobertura de testes
- Capítulo 8.1.2 Sommerville
Parte 2: Testes de objecto e componente
- Teste de componentes: capítulo 8.1.3 Sommerville
- Testes primeiro: capítulo 3.2.3 Somerville
Aula T05 (slides)
Parte 1: Refactorização (slides)
- Refactoring (António Rito Silva's Companion)
- Capítulos 3.2.2, 8.2 e 9.3.3 Somerville
- Demonstração de uma refatorização: Caso Especial (Introduce Null Object)
Parte 2: Reutilização de código (slides)
- Reuse (António Rito Silva's Companion)
- Capítulos 7.2 e 15
Semana 4 (04/03)
Aula T06
- Demonstração de uma refatorização complexa: o exemplo do VideoStore (repositório com código, slides)
Aula T07 (slides)
Desenho de software: coesão e ligação
- Capítulo 7.1 Sommerville
- Design as Structure in the companion
- Slides: What is Software Design?
- Slides: Coupling and Cohesion
- Slides: Interfaces and Abstractions (in the companion)
- Slides: Design Process - Top Down
- Slides: Design Principles
Semana 5 (11/03)
Aula T08 (slides)
Arquitectura de software
- Capítulo 6 Sommerville
- Design and Architecture in the companion
- Slides: Introdução
- Slides: Padrões arquitecturais
- Slides: Padrões aplicacionais
Engenharia de requisitos (slides)
- Capítulo 4 Sommerville
- Requirements Engineering in the companion
- Template da Volere
Aula T09
Parte 1: Engenharia de requisitos (continuação)
Parte 2: Caso de estudo de arquitectura de software
- Orador convidado: Bruno Mourão (MC Sonae) [Slides]
Semana 6 (18/03)
Aula T10 (slides)
- Capítulos 1 e 9 de PEAA (Patterns of Enterprise Application Architecture): Layering
- Slides: Enterprise Applications Layers
- Capítulo 9 de PEAA: Domain Logic Patterns
- Slides: Domain Logic Patterns
- Catálogo de PEAA (sumário): https://martinfowler.com/eaaCatalog
Aula T11
- Capítulo 10 de PEAA: Data Source Architectural Patterns
- Slides: Data Source Architectural Patterns
- Capítulo 11 de PEAA: Object-Relational Behavioral Patterns
- Slides: Object-Relational Behavioral Patterns
- Catálogo de PEAA (sumário): https://martinfowler.com/eaaCatalog
Semana 6 (18/03)
Aula T12
- Capítulo 14 de PEAA: Web Presentation Patters
- Slides: Web Presentation Patterns
- Capítulo 15 de PEAA: Distribution Patterns
- Slides: Distribution Patterns
- Capítulo 12 de PEAA: Object-Relational Structural Patterns
- Slides: Object-Relational Structural Patterns
- Catálogo de PEAA (sumário): https://martinfowler.com/eaaCatalog
Material de apoio
Os slides do livro estão disponíveis em: https://software-engineering-book.com/slides/.António Rito Silva's Software Engineering Companion: https://antonioritosilva.org/software-engineering-companion/