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:

Supervisors:

Student representatives:

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: 

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)
Ch 1, 2, & 3 (RW12)

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)
Ch 4 (TR05)

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)
Ch 1, 2, & 4 (WBM03)

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

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):

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