• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Master 2022/2023

Advanced Software Design

Type: Compulsory course (System and Software Engineering)
Area of studies: Software Engineering
When: 1 year, 1, 2 module
Mode of studies: offline
Open to: students of one campus
Instructors: Хританков Антон Сергеевич, Якушева Софья Федоровна
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

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

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

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
Assessment Elements

Assessment Elements

  • non-blocking Attendance
  • non-blocking Team project
  • non-blocking Essay
  • non-blocking Practice
Interim Assessment

Interim Assessment

  • 2022/2023 1st module
    0.35 * Practice + 0.45 * Team project + 0.1 * Essay + 0.1 * Attendance
  • 2022/2023 2nd module
    0.1 * Essay + 0.45 * Team project + 0.1 * Attendance + 0.35 * Practice
Bibliography

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