Course syllabus

Welcome!

DAT220 / DIT544 Advanced software architecture lp3 VT21 (7.5 hp)

Course is offered by the department of Computer Science and Engineering

Teaching in Times of Corona

Dear students,

Due to the ongoing Corona crisis, we made the following decisions about DAT220/DIT544 after performing a risk analysis.

  • All lectures will be online (as live sessions, zoom links are available on the internal schedule page)
  • All supervision sessions and meetings with your TA will be online through video-calls (we will provide zoom rooms for that)
  • All course activities will happen considering Stockholm's timezone.

Kind regards

Truong Ho-Quang

Contact details

Course examiner: Assoc. Prof. Dr. Eric Knauss (eric.knauss@cse.gu.se)

Course's teachers:

Teaching Assistant:

Student representatives:

Final Exam Canvas page

The Canvas page of the final exam is available in this link: https://chalmers.instructure.com/courses/14340 
(If you have registered for the exam but have not had access to the page, please contact CSE student office at student_office.cse@chalmers.se for help).

Course purpose

The course will
1) explain basic concepts and definitions from the area of software architecture

2) explain advanced methods and techniques for design and analysis of complex software systems

Schedule

TimeEdit

Any updates to the schedule will be announced in class at the start of each lecture.

Planned Lectures (L) and Supervision (S) sessions:  

Week Date Time Lecture Learning Resources Responsible persons

3

L1

Wed, 20 Jan

10:15 – 12:00

Introduction & Organization

Lecture Slides

Truong Ho-Quang

3

L2

Thu, 21 Jan

13:15 – 15:00

Architecting Process & Views

Lecture Slides

Ch 1 & 2 (BCK)
Ch 1, 2, & 3 (RW12)

Truong Ho-Quang

4

Tue, 26 Jan

10:15 – 12:00

Skip

 

4

S1

Wed, 27 Jan

10:15 – 12:00

<< Supervision: Launch Assignment 1>>

Slides Supervisors + Teachers

4

L3

Thu, 28 Jan

13:15 - 15:00

Roles/Responsibilities & Functional Decomposition

Lecture Slides
Ch 1, 2, & 4 (WBM03) 

Truong Ho-Quang

5

L4

Mon, 1 Feb

10:15 – 12:00

Architectural Styles P1

Lecture Slides
Ch 13 (BCK) & Papers

Truong Ho-Quang

5

S2

Wed, 3 Jan

10:15 – 12:00

<< Supervision/Assignment>>

Supervisors + Teachers

5

L5

Thu, 4 Jan

13:15 – 15:00

Architectural Styles P2

Lecture Slides

Ch 15 & 16 (BCK03)
Ch 1, 2, 14, & 17 (RF20)

Sam Jobara

6

L6

Mon, 8 Feb

10:15 – 12:00

Architectural Styles P3

Lecture Slides
Ch 13 (BCK) & Papers

Truong Ho-Quang

6

S3

Wed, 10 Feb

13:15 – 15:00

<< Supervision/Assignment>>

Supervisors + Teachers

6

L7

Thu, 11 Feb

13:15 – 15:00

Design Principles (Maintainability, Modifiability)

Lecture Slides Truong Ho-Quang

7

L8

Mon, 15 Feb

13:15 – 15:00

Architectural Tactics & Analysis

Lecture Slides
Ch 4 - 14 (BCK03)
Truong Ho-Quang

7

S4

Wed, 17 Feb

10:15 – 12:00

<< Supervision/Assignment>>

Example Solution A1T1 Slides
Introduction to MQTT
Supervisors + Teachers

7

L9

Thu, 18 Feb

13:15 – 15:00

Architecture Evaluation

Lecture Slides

Truong Ho-Quang

8

L10

Mon, 22 Feb

13:15 – 15:00

Reverse Engineering & Correspondence

Lecture Slides Truong Ho-Quang

8

S5

Wed, 24 Feb

13:15 – 15:00

<< Supervision/Assignment>>

Supervisors + Teachers

8

L11

Thu, 25 Feb

13:15 – 15:00

Guest Lecture 1: Embedded Systems & IOT Architecture

Lecture Slides David Tuan Nghia Ngo (SKF)

9

L12

Mon, 1 Mar

13:15 – 15:00

Guest Lecture 2: Architecture Transition Towards a Future Architecture Thinking at Volvo

Lecture Slides
Extra Read
Anders Magnusson (Volvo AB.)

9

S6

Wed, 3 Mar

10:15 – 12:00

<< Supervision/Assignment>>

Supervisors + Teachers

9

L13

Thu, 4 Mar

13:15 – 15:00

Exam Practice

Slides
Video Recording
Teachers

10

Thu, 11 Mar

Whole day

Group presentation of Assignment 1

11

Exam

 

Course literature

Main textbook is:

Background reading:

We also use references from the following books:

  • [MD96] Mary, S. and David, G., 1996. Software architecture: perspectives on an emerging discipline. Prentice-Hall.
  • [RF20] Richards, M. and Ford, N., 2020. Fundamentals of Software Architecture : An Engineering Approach. O'Reilly Media, Inc.
  • [TR05] Lethbridge, T.C. and Laganière, R., 2005. Object-Oriented Software Engineering: Practical Software Development using UML and Java. New York: McGraw-Hill.
  • [RW12] Rozanski, N. and Woods, E., 2012. Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley.

Course design

The main source of knowledge transfer for this course are the lectures and assignments.
The lectures will discuss topics from the book - but generally, extend beyond the contents of the book.
There will be two types assignments (explained below).

  • lectures: take place mostly twice a week - see schedule. Lecture slides will be uploaded on Canvas after the lecture.
  • assignments/exercises: there will be 2 types of assignments: one type for getting practical experience with implementing architectural styles and the other type is for practising architectural design. For the latter, we will work with 'cases'. Students will be asked to review and provide feedback on the assignments of assignments by their peer students.
    Assignments will be uploaded on Canvas.
  • laboratory/supervision: on  the sessions that are scheduled on Wednesdays, TA's will be around to answer questions and guide the students on their assignments. This is also where students will get feedback on both types of assignments.

Missing a deadline: means a 'fail' for the assignment.

Changes made since the last occasion

Updates on slides and new assignments.

Learning objectives and syllabus

Learning objectives:

 - Understand the role and applicability of methods for evaluating architectures
 - Describe inter-dependencies among quality-attributes and understand how they affect architecting
 - Develop an ability to assess an architecture quantitatively and qualitatively
 - Develop architectural models using ADLs, and understand the intentionality of models throughout the system life-cycle
 - Conduct incremental and multi-fidelity architecture-centric verification and validation
 - Understand the characteristics and challenges of architecting system-of-systems and ultra-large-scale systems
 - Distinguish between software architecture, system architecture, and run-time architectures.

Link to the syllabus on Studieportalen Study plan

Syllabus for DIT544 (GU) - http://kursplaner.gu.se/pdf/kurs/en/DIT544

Syllabus for DAT220 (Chalmers) - https://student.portal.chalmers.se/en/chalmersstudies/courseinformation/Pages/SearchCourse.aspx?course_id=27697&parsergrp=3 

Examination form

Description of the examination:

  • Components of the examination:
    - written remote exam: this tests i) your understanding of basic concepts and definitions,
    ii) the student's ability to apply architectural reasoning and architecture design to (simplified) case studies.
    - Design Assignments: assess skills in designing and modeling of architecures
    - Implementation Assignment: assess skills for translating (high level/architectural) concepts to implementation level (source code) concepts - in both directions.
  • It is compulsory to hand in all assignments. All assignments must be a pass.
    If an assignment is not passed, then the student will get one grace period of a week to update his assignment and hand this revision in. There will be no option for a second revision as part of this course.
  • aids permitted during examinations: dictionary and ruler. Please write exam with a pen (not a pencil). Pencils are allowed for drawing diagrams during the exam.

Sample final exam

Course summary:

Date Details Due