Lectures
Lectures will be conducted online. The link to join the online lectures will be available in Moodle from September 2025.
- Lectures: Fridays 10:15-12:00, Online (via Moodle)
The handouts and materials are partly from last year's lecture (2024). Notice: Updated slides, videos, and materials will be posted on Moodle.
- Lecture 1 (05-Sep-2025) - Introduction to Software Engineering
- Course Organization
- Overview of Software Engineering
- Background / Motivation of Homework Assignment 1
- Lecture 2 (12-Sep-2025) - Requirements Engineering I
- Additional Study Materials:
- Lean requirements (by Atlasssian)
- Hints on how to write testable requirements
- A series of You Tube videos by Lars Bilde explaining the steps from first interviews with stakeholders to user stories, tasks, and sprint planning (note: these videos promote the use of the commercial tool ScrumWise - any other backlog management and sprint planning tool may be used instead):
- Initial user stories extracted from interview
- First backlog items (user stories)
- Finding more User Stories from existing User Stories (e.g., by splitting up)
- Splitting User Stories into Tasks?
- General remarks about the right level of backlog planning detail
- Planning the first (or next) sprint
- Time tracking with the Task Board
- Sprint Burndown Chart
- Additional Study Materials:
- Lecture 3 (19-Sep-2025) - Requirements Engineering II
- Additional Study Materials:
- Lecture 4 (26-Sep-2025) - Analysis
- Additional Study Materials:
- Old but still very informative summary on how to come up with a domain model: http://csis.pace.edu/~marchese/CS616/Lec5/se_l5a.htm
- UML notation: (wikipedia-link)
- Domain modelling rules - with examples: (link)
- Agile domain modelling - with example: (link)
- Seven information 'smells' of domain modelling - with example: (link)
- Additional Study Materials:
- Lecture 5 (3-Oct-2025) - Development Infrastructure - Development/Build/Collaboration Tools
- Topics:
- Basics of IDE (focus on IntelliJ IDEA) -- short recap
- Build scripts (focus on Gradle) -- short recap
- Version control (focus on Git)
- Build scripts (focus on Gradle)
- Issue tracker (focus on Bitbucket)
- Communication tools (focus on Bitbucket wiki)
- Links to descriptions/tutorials on how branching works in Git and what types of workflows are useful:
- Topics:
- Lecture 6 (10-Oct-2025) - Continuous Development & Integration - by Kristiina Rahkema
- Lecture 7 (17-Oct-2025) - Project Estimation / Architecture and Design I
- Lecture 8 (24-Oct-2025) - Architecture and Design II
- Additional Materials:
- Eric Freeman and Elisabeth Robson : Head First Design Patterns: A Brain-Friendly Guide (2nd Edition) , 2021
- Alexander Shvets: Dive Into Design Patterns , 2018
- In the Object-Oriented Programming course you probably learned already about object-oriented design principles. Here is a summary: OO design principles revisited (apologies for the spamming with advertisements)
- Two videos on the architectural pattern MVC:
- Here is a link to a series of mini-tutorials (~15 min each) by Derek Banas about design patterns: (link)
- Code examples:
- Code example of a simple MVC implementation in Java: MVC example
- Code example of Publisher/Subcriber pattern without Observer Pattern, with Observer Pattern, and with PropertyChangeListener (relevant since Java9): Publisher-Subscriber (Observer Pattern) example
- Examples of Java implementations of design patterns: (link)
- Attribute-Driven Design method by SEI: ADD and ADD Example
- Software Architecture QuickGuide: Link to Guide
- Additional Materials:
- Lecture 9 (31-Oct-2025) - Verification and Validation (Testing) I - by Dietmar Pfahl
- Additional Materials:
- JUnit5 User Guide
- Free Coursera Tutorial on Java Unit Testing using JUnit5: https://www.coursera.org/learn/unit-testing-in-java/ungradedLti/BDxG6/unit-testing-in-java
- Additional Materials:
- Lecture 10 (07-Nov-2025) - Verification and Validation (Testing) II - by Dietmar Pfahl
- Additional Materials:
- Link to TDD/BDD Tool Cucumber Tutorial: https://toolsqa.com/cucumber-tutorial
- The Open Worldwide Application Security Project (OWASP) - Top 10 Security Risks: https://owasp.org/www-project-top-ten/
- Additional Materials:
- Lecture 11 (14-Nov-2025) - Refactoring (and TDD)
- Additional Materials:
- Link to book on TDD and ATDD (=BDD): (TDD book) -- Note: you have to create an account to be able to read all chapters (it's free of charge)
- Link to an explanation of TDD
- List of Refactorings for Code Smells: (link)
- Additional Materials:
- Lecture 12 (21-Nov-2025) - Agile/Lean Methods I
- https://scrumguides.org/scrum-guide.htmlwithm Guide
- Agile life-cycle models
- Interesting videos about the agile/lean software development approach at Spotify (13 min each):
- Lecture 13 (28-Nov-2025): Guest Lecture by Luis Cruz (Assistant Professor at TU Delft), Topic Sustainable/Green Software Engineering
- Lecture 14 (05-Dec-2025): Course wrap-up, review and exam preparation (with training quiz)