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:
- Dr. Truong Ho-Quang (truongh@chalmers.se) - main responsible for course content and coordination
- Dr. Sam Jobara (jobara@chalmers.se)
- Guest Lecturers
Teaching Assistant:
- Mazen Mohamad (mazenm@chalmers.se)
- Rashad Kamsheh (rashadse@hotmail.com)
Student representatives:
- Lukas Berglund (lukas.v.berglund98@gmail.com)
- Fahd Debbiche (gusdebfa@student.gu.se)
- Mihaela Grubii (mihaellagrubii@gmail.com)
- Dinesh Bhandari (dbhandari23@gmail.com)
- Wei Guo (gwei@student.chalmers.se)
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
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 |
Truong Ho-Quang | |
3 |
L2 |
Thu, 21 Jan |
13:15 – 15:00 |
Architecting Process & Views |
Ch 1 & 2 (BCK) |
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 |
Truong Ho-Quang |
5 |
L4 |
Mon, 1 Feb |
10:15 – 12:00 |
Architectural Styles P1 |
Lecture Slides |
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 |
Ch 15 & 16 (BCK03) |
Sam Jobara |
6 |
L6 |
Mon, 8 Feb |
10:15 – 12:00 |
Architectural Styles P3 |
Lecture Slides |
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 |
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:
- [BCK12] Bass, P. Clements, R. Kazman, 2012. Software Architecture in Practice, 3rd Edition, SEI Series in Software Engineering, Addison-Wesley.
- Abd-Allah, A., 1997. Extending reliability block diagrams to software architectures. System, 97(80), p.93.
- Spitznagel, Bridget, and David Garlan. "Architecture-based performance analysis." Proceedings of the 1998 Conference on Software Engineering and Knowledge Engineering. 1998.
- Role Steretypes in Software Design Characterizing Classes by Rebecca Wirfs-Brock
Background reading:
- A Brief Tour of Responsibility Driven Design (Slides & Explanation) by Rebecca Wirfs-Brock
- [WBM03] Wirfs-Brock, R. and McKean, A., 2003. Object design: roles, responsibilities, and collaborations. Addison-Wesley Professional.
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 |
---|---|---|