Course syllabus
Welcome!
DIT344 Software Architecture lp1 HT20 (7.5 hp)
Course is offered by the Department of Computer Science and Engineering during Study Period 1.
Teaching in Times of Corona
Dear students,
Due to the ongoing Corona crisis, we made the following decisions about DIT344 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 TAs 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
Course evaluation
The course evaluation has now been completed. You find the evalutaion questionaire and the course evaluation meeting protocol below:
https://chalmers.instructure.com/courses/10359/files?preview=994243
https://chalmers.instructure.com/courses/10359/files?preview=994244
Contact details
Course examiner: Eric Knauss (eric.knauss@cse.gu.se)
Course's teachers:
- Truong Ho-Quang (truongh@chalmers.se) - main responsible for course content and coordination
- Sam Jobara (jobara@chalmers.se)
Supervisors:
- Al-Amir Adegbuji-Onikoyi (gusadegal@student.gu.se)
- Katalin Ferenc (gusfereka@student.gu.se)
- Talha Hussain (gustalhhu@student.gu.se)
- Stanko Jankovic (gusjankost@student.gu.se)
- Adelric Wong (guswonad@student.gu.se)
Student representatives:
- Clementine Jensen, gusjensecl@student.gu.se
- Emil Gustafsson, gusgusemay@student.gu.se
- Victoria Vu, gusvuvij@student.gu.se
- Karam Khatib, guskarkh@student.gu.se
- David Börjesson, gusbordac@student.gu.se
Course purpose
The main purpose of this course is to teach the basic knowledge from the area of software architecture: students should be familiar with the main concepts/definitions and have basic skills in designing and analysing software architectures.
Mid-course meeting
The mid-course meeting is organized on Friday, Oct. 16., 2020.
Participants are:
- Truong Ho-Quang, truongh@chalmers.se, teacher
- Clementine Jensen, gusjensecl@student.gu.se, student representative
- Emil Gustafsson, gusgusemay@student.gu.se, student representative
- Victoria Vu, gusvuvij@student.gu.se, student representative
Meeting notes are available here.
Course Schedule
Course schedule is published on TimeEdit.
Planned Lectures (L) and Supervision (S) sessions:
Week | Date | Time | Lecture | Reading | Responsible persons | |
36 | L1 |
Wed, 2 Sept |
13:15 – 15:00 |
Introduction & Organization |
|
Truong Ho-Quang |
37 | L2 |
Wed, 9 Sept |
13:15 – 15:00 |
Architecting Process & Views |
Ch 1 & 2 (BCK) |
Truong Ho-Quang |
37 | S1 |
Thu, 10 Sept |
10:15 – 12:00 |
<< Supervision/Assignment>> |
|
Supervisors + Teachers |
38 | L3 |
Wed, 16 Sept |
13:15 - 15:00 |
Requirements & Quality Attributes |
Ch 3 & 4 (BCK) |
Sam Jobara |
38 |
S2 |
Thu, 17 Sept |
10:15 – 12:00 |
<< Supervision/Assignment>> |
|
Supervisors + Teachers |
38 |
L4 |
Fri, 18 Sept |
13:15 – 15:00 |
Architectural Tactics & Roles and Responsibilities |
Ch 5 - Ch 11 (BCK03) |
Truong Ho-Quang |
39 |
S3 |
Wed, 23 Sept |
13:15 – 15:00 |
<< Supervision/Assignment>> |
Supervisors + Teachers | |
39 |
L5 |
Thu, 24 Sept |
10:15 – 12:00 |
Functional Decomposition & Architectural Styles P1 |
Ch 13 (BCK) |
Truong Ho-Quang |
39 |
L6 |
Fri, 25 Sept |
13:15 – 15:00 |
Architectural Styles P2 |
|
Truong Ho-Quang |
40 |
S4 |
Wed, 30 Sept |
13:15 – 15:00 |
<< Supervision/Assignment>> |
Supervisors + Teachers | |
40 |
L7 |
Thu, 1 Oct |
10:15 – 12:00 |
Architectural Styles P3 |
Ch 15 & 16 (BCK03) Ch 1, 2, 14, & 17 (RF20) |
Sam Jobara |
40 |
L8 |
Fri, 2 Oct |
13:15 – 15:00 |
Guest Lecture: Scaling DevOps – GitHub’s Journey from 500+ to 1500+ People |
Johannes Nicolai - Principal Solution Engineer at Github | |
41 |
S5 |
Wed, 7 Oct |
13:15 – 15:00 |
<< Supervision/Assignment>> |
|
Supervisors + Teachers |
41 |
L9 |
Thu, 8 Oct |
10:15 – 12:00 |
Current Industrial SW Architecture Issues: Software Architectures of Blockchain with Case Study |
Sam Jobara | |
42 | L10 |
Wed, 14 Oct |
13:15 – 15:00 |
Design Principles |
Michel R.V. Chaudron | |
42 |
S6 |
Thu, 15 Oct |
10:15 – 12:00 |
<< Supervision/Assignment>> |
|
Supervisors + Teachers |
42 |
L11 |
Fri, 16 Oct |
13:15 – 15:00 |
Guest Lecture: Architecture Thinking at Volvo and Architecture Transition Towards a Future |
|
Anders Magnusson - System Architect at Volvo Truck |
43 |
L12 |
Wed, 21 Oct |
13:15 – 15:00 |
Clarification: Forces & Drivers, Deployment Diagram, Example Solution for Assignment 1 |
|
Truong Ho-Quang |
43 |
L13 |
Thu, 22 Oct |
10:15 – 12:00 |
Architecture Evaluation |
Ch 21 (BCK03) | Truong Ho-Quang |
43 |
Fri, 23 Oct |
13:15 – 15:00 |
<<TBD>> Exam practice |
Teachers | ||
44 | Exam |
30 Oct |
8:30 – 12:30 |
Course literature
The main reference for this course is this book:
- [BCK03]: Software Architecture in Practice (3rd Edition) (SEI Series in Software Engineering)
by Len Bass, Paul Clements, Rick Kazman
Publisher: Addison-Wesley, 2012
Website for the book: https://sites.google.com/site/softwarearchitectureinpractice/
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.
- [WBM03] Wirfs-Brock, R. and McKean, A., 2003. Object design: roles, responsibilities, and collaborations. Addison-Wesley Professional.
- [RW12] Rozanski, N. and Woods, E., 2012. Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley.
Further reading
- Here is an example of an industrial software architecture document: HP_architecture_template_v13_withexamples.pdf
- Here is another nice book. I esp. recommend Chapter 10 which illustrates some deployment tactics: Large-scale software architecture, Garland
Other texts will be supplied during the course.
Course design
Lectures:
For the main concepts/definitions: these are discuss and explained during the lectures and read in the corresponding chapters of the BCK-book. Students are recommended to read the chapter of the topic of upcoming lecture before the actual lecture. During the lecture, there will be small exercises and quizzes which aim at activating student's deep learning. These exercises and quizzes, therefore, do not contribute to the final grade.
The lectures will consist of the following series of lectures (slides of a lecture will be available after the lecture):
- L1: Introduction and Organization (video-recording)
- L2: Architecting Process and Views (video recording)
-
L3: Requirements and Quality Attributes (video recording)
- L4: Architectural Tactics & Roles and Responsibilities (video recording)
- L5: Functional Decomposition and Architectural Styles P1 (video recording)
- L6: Architectural Styles P2 (video recording)
- L7: Architectural Styles P3
- L8: Guest Lecture: Scaling DevOps – GitHub’s Journey from 500+ to 1500+ People by Johannes Nicolai (from github.com)
- L9: Current Industrial SW Architecture Issues: Software Architectures of Blockchain with Case Study
- L10: Design Principles
- L11: Guest Lecture: Architecture Thinking at Volvo and Architecture Transition Towards a Future by Anders Magnusson (from Volvo Truck)
- L12: Clarification: Forces & Drivers, Deployment Diagram, Example Solution for Assignment 1
- L13: Architecture Evaluation
- Exam Practice Session
- General Info by Truong Ho-Quang
- Exam Review by Sam Jobara
- Video Recordings
- Chat History (in .txt)
Assignments:
Along with the lectures, students are required to finish (with pass or fail grades) two mandatory assignments. These assignments are based on practical case-studies (including realistic industrial cases) and have a main focus on developing student's skills on analysis and design. These assignments will be announced during the course and can be done in small groups. Details about group formation will be posted as a separate 'assignment' after the first lecture (L1).
Changes made since the last occasion
Updates on slides and new assignments.
Learning objectives and syllabus
Learning objectives:
Knowledge and understanding
- describe the role of an architect in a software development project, and what may be expected from such a person
- explain common quality requirements, such as performance, security, and modifiability
- describe different architectural styles and how they relate to specific quality properties of the architecture
Competence and skills
- document architectures using established methods
- solicit requirements from stakeholders and describe these as quality requirements
- express quality requirements using quality scenarios
- create an architectural design of a system based on a case description in natural language
Judgement and approach
- reason about how different architectural styles, tactics or design alternatives meet the quality goals of a system
Link to the syllabus on Studieportalen: Link to the syllabus GU
Examination form
The examination of the course consists of:
- an online written exam: this exam will test both theory, understanding and design skills
Here is an example of an old exam. New exams may differ. - a collection of assignments: these focus on analysis and design. These assignments will be announced during the course and can be done in small groups.
During the supervision sessions that are scheduled throughout the course, the teachers and supervisors will be present to answer questions and coach the students. Moreover, supervisors can often be reached via digital communications (e-mail, Slack, ...) for answering simple questions.
Include:
- assignments are compulsory and contribute to the final grade
- both written exam and assignments must have a pass grade in order to pass the entire course.
- aids permitted during examinations: computer, diagram editing tools.
Further details about the examination form, e.g. the passing thresholds, can be found in this document.
Course summary:
Date | Details | Due |
---|---|---|