Kies de Nederlandse taal
Course module: 192111332
Design of Software Architectures
Course info
Course module192111332
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact V. Zaytsev
dr. G. Caltais
Examiner V. Zaytsev
Contactperson for the course V. Zaytsev
Academic year2022
Starting block
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
After completing this course successfully, the student can:
  • Motivate why software architecture is important for developing high quality software.
  • Apply the process for deriving the key concerns for the software architecture (concern analysis)
  • Set up an architecture description and the tasks to achieve it.
  • Apply the process for creating software architecture based on solution domains .
  • Apply well-known architectural patterns in the design of an architecture.
  • Analyze software architectures using scenario-based architecture analysis techniques.
  • Apply these techniques and methods for any software design problem.
Software architecture forms the bridge between customer needs, technological constraints, and the development process. Software architecture is about the main decisions that define the working of a system and it’s fit to the environment. Architecture decisions determine the structure and style of the system, and the main guidelines for its realization. A fundamental difference between software architecture and software implementation is: within the context of software architecture, architects focus on the major concerns of the stakeholders, the fundamental patterns and structures so that an architecture fulfils various quality trade-offs (quality, style, and structure are the focus) whereas in software implementation the focus is mainly realizing the functionality of software (functionality is the focus).
The course has some characteristics that the student should be aware of:
  • The teaching method of this course adopts an interactive approach where the schedule of the lectures and project meetings are interchangeable so that the course is steered according to the performance of the students.
  • The course hours can be used interchangeably for lectures, presentations, project meetings, group meetings and/or for self-study; the schedule updates will be announced at least one week before the date.
  • During the course, the performance of individual students and their groups will be followed closely for the purpose of increasing the performance of students, if possible.
  • The attendance is compulsory unless a permission is granted by the lecturer.

The course starts with a discussion on what software architecture is and what role it plays in the development process. After that, the analysis of the system context will addressed in stakeholder analysis, acquiring useful concerns and architecture requirements, and exploring the technological system environment. Via architecture styles and design patterns, an architecture defines the system structure and determines its intended quality. Finally, scenario-based architecture analysis techniques and an practical assessment method will be presented to evaluate the architecture and come up with improvements.
Assumed previous knowledge
Basic modeling knowledge via some language like UML, ER, or Archimate.
This is not a very technical course about the internal workings and construction of software. But, the student must be able to relate to software technology.
Participating study
Master Computer Science
Required materials
Recommended materials
Will be downloaded from the website.
Instructional modes
Presence dutyYes

Project supervised
Presence dutyYes

Assignments, Presentations

Kies de Nederlandse taal