Davide Vega D'Aurelio

1DL242 - Advanced Software Design

The objective of this course is to give advanced theoretical and practical knowledge for designing good software.

The main content of the course that we cover are principles and methods for software design with a special focus on object-oriented analysis and design; which includes topics such as domain modelling, software architecture, class and object modelling, behavioural modelling, design patterns, General Responsibility Assignment Software Principles (GRASP) design principles, design evaluation and improvement, and refactoring.

However, the specific list of learning objectives are flexible and open toa discussion. Therefore, if some students are interested on going deeper on some topics or, they want to add some related content that would not be originally covered, it can be done.