Master
2022/2023
Advanced Software Design
Type:
Compulsory course (System and Software Engineering)
Area of studies:
Software Engineering
Delivered by:
School of Software Engineering
Where:
Faculty of Computer Science
When:
1 year, 1, 2 module
Mode of studies:
offline
Open to:
students of one campus
Master’s programme:
Software and Systems Engineering
Language:
English
ECTS credits:
6
Contact hours:
66
Course Syllabus
Abstract
The course learning objective is to understand modern software design and practice design and modeling methods in a team project. The students will be introduced to designing microservices applications using domain-driven design and UML2. A course project divided into two assignments will help practice analysis and design methods as part of a team. The course will be most relevant to software engineers, systems analysts and future software development leaders.
Learning Objectives
- Experience modern software design as a systematic and rational approach
- Have an opportunity to apply software design methods in a study project under supervision
- Get deeper understanding of software requirements and quality definition, modeling with UML2 and structural approaches, domain driven design and microservices architecture through practice and collaborative learning
Expected Learning Outcomes
- Get deeper understanding of software requirements and quality definition, modeling and UML2, domain driven design and microservices architecture through practice and collaborative learning.
Course Contents
- Software quality and requirements
- Software requirements. Part 2
- Object oriented design.
- Introduction to Domain Driven Design (DDD)
- Responsibility Driven Design for DDD
- Advanced UML2 behavior modeling
- Structured modeling and design
- Resource-oriented modeling for microservices
- Microservices architecture (MSA)
- Data design for microservices
- Detailed design for microservices
- SOLID design principles
- Measurements and metrics of software design
- Course summary and trending topics
Interim Assessment
- 2022/2023 1st module0.35 * Practice + 0.45 * Team project + 0.1 * Essay + 0.1 * Attendance
- 2022/2023 2nd module0.1 * Essay + 0.45 * Team project + 0.1 * Attendance + 0.35 * Practice
Bibliography
Recommended Core Bibliography
- Sam Newman. (2021). Building Microservices. O’Reilly Media.
- Vaughn Vernon. (2013). Implementing Domain-Driven Design. Addison-Wesley Professional.
- Vernon, V. (2016). Domain-Driven Design Distilled. Addison-Wesley Professional.
Recommended Additional Bibliography
- David Budgen. (2020). Software Design : Creating Solutions for Ill-Structured Problems. Chapman and Hall/CRC.
- Freeman, E., Freeman, E., Sierra, K., & Bates, B. (2004). Head First Design Patterns : A Brain-Friendly Guide. Sebastopol, CA: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415229
- Robert C. Martin. (2017). Clean Architecture : A Craftsman’s Guide to Software Structure and Design. Prentice Hall.
- Sommerville, I. (2012). Software engineering. Slovenia, Europe: Addison-Wesley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.4626A10B