Kursöversikt

Course-PM

DAT220/DIT544 Advanced Software Architecture VT19 (7,5hp)

Revised December 20, 2018

Department of Computer Science and Engineering

 

Course purpose

The purpose of this course is to learn principles and methods that aid the designer/developer/architect to gain increased confidence in the architectural design, including quantitative modeling and qualitative architecture evaluation methods. The course will also address the specific challenges related to scale, dynamics, and heterogeneity as found in system of systems, and ultra-large scale systems.

 

Schedule

Link to TimeEdit: https://cloud.timeedit.net/chalmers/web/public/ri1X50gQ4560YvQQ05Z6574Y0Zy6007301Y53Q018.html (Länkar till en externa sida.)Länkar till en externa sida. 

 

Contact details

The course responsible is Rafael Capilla (rafael.capilla@urjc.es)

The teaching assistants are:

The examiner is Riccardo Scandariato (riccardo.scandariato@cse.gu.se)

Course literature

  • Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice (3rd Edition), Addison-Wesley, 2012 (Cremona)
  • Adam Shostack, Threat Modeling: Designing for Security, Wiley, 2014 (Chalmers digital library)

 

Course design

From a content perspective, the course is roughly organized into three parts. The first part is devoted to underlying the importance of analyzing the application domain and the role played by quality requirements in the context of architectural design. The second part presents an array of tools and techniques that are routinely used to design software architectures: styles, design principles, and so on. The third part focuses on evaluating a software architecture.

Lectures

The schedule of the lectures is as follows (it can be subjected to minor modifications):

  • Jan 23 Introduction to the course. Introduction to Software architecture
  • Jan 25 Quality attributes and domain modeling
  • Jan 29 Domain modeling + QA example
  • Feb 1 Design principles, design decisions and tactics
  • Feb 4 Design patterns and architectural styles
  • Feb 7 Architecture views and documentation
  • Feb 11 Attribute-Driven Design
  • Feb 13 ADD example
  • Feb 18 Architecture evaluation
  • Feb 21 TBD
  • Feb 25 Security evaluation in software architecture
  • Feb 28 Security evaluation

 

There are two types of activities that affect the final grade: an essay and a group project.

Essay

Two students are expected to deliver a short, concise essay (2 pages) regarding a selected topic in the area of software architectures. It can be a critical view on some topics or a short review of existing tools, methods, techniques supporting solving particular tasks in software architectures (we encourage compare-and-contrast types of essays). The essay could also discuss the contents a research paper regarding software architectures. To get some sense of what a topic could be, see the examples below:

  • Architecture evaluation methods - commonalities and differences
  • Micro-services in Java - the review of approaches and technological stack
  • The role of Blockchain architectures
  • A personal view on the paper “Applying Architecture-based Adaptation to Automatethe Management of Internet-of-Things” by Weyns et al. (ECSA 2018)

Please keep it in mind that the essay (although short) should give your opinion on the subject (What do you think about it? How it applies to what you are doing? Do you find it useful? etc.)

The goal is to allow students to self-study selected topics of interest in the area of software architectures that are covered during the lectures (but not limited to). Therefore, the essay is delivered in parallel to the main, group project. The essay must to be delivered and approved in order to pass the laboratory or exam part, however, it won’t directly affect the final grade.

Deadline: Mar 8 (however, we encourage deciding on the topic, writing, and submitting the essays much earlier since the deadline is close to the deadline of the group project report).

 

Group project

During the laboratory classes students will work in teams of 4 individuals. All teams work on the same case (smart home system - SHS). The project is organized in three phases:

  • Phase 1: analysis of the problem domain
  • Phase 2: design of a software architecture
  • Phase 3: (mini) architecture evaluation / feedback session

Phase 1: analysis of the problem domain

This phase is very important for the students to familiarize themselves with the smart home system (SHS). During labs, students develop a domain model and define some quality attribute scenarios.

Deliverable: a team should deliver a short report containing the results of domain analysis and the list of identified quality requirements. This is a partial report that is not graded (it has to be delivered before the final deadline for the project). Also, we would like to give you feedback on the report during a lab session. However, if you don’t deliver the report early on, you will not receive our feedback on it.

Phase 2: architecture design

It is the main phase of the project. During the laboratory classes, the teams will design and document their own architectures for the SHS case.

Deliverable: a written report that contains the architecture design of smart home system. This is the main deliverable of the project and will require the most of your effort. The report will be also augmented with the summary of feedback received in Phase 3.

Phase 3: (mini) architecture evaluation / feedback session

During this phase each team will be asked to:

  • Present their architecture design of SHS
  • Attend one or two presentations of other groups and ask questions / give feedback

We will schedule a series of feedback sessions. Each team is expected to give a presentation and attend as ‘experts’ to evaluate the architecture of up to two other teams. Although the sessions will not have a form of typical architecture evaluation meetings (e.g., see ATAM), still, the main intent is to give a feedback to the teams on their architecture design. Please keep it in mind that such a meeting is not intended to be any kind of defense of the reports but it is rather supposed to have a form of collaborative work to learn from examples (no matter if good or bad).

Deliverable: the written report from Phase 2 augmented with the summary of the feedback received during the feedback / evaluation sessions.

 

Summary for group project

Phase 1

  • Jan 30 Lab1a: Domain analysis and quality attributes
  • Feb 5 Soft deadline for delivering Phase 1 short reports, in case you want feedback (Optional)
  • Feb 6 Lab2a: Feedback on the Phase 1 short reports
  • Feb 12 Hard deadline for Phase 1 short report (Mandatory)

Phase 2

  • Feb 13 Lab 2a: Architecture design
    Feb 20 Lab 2b: Architecture design
    Feb 27 Lab 2c: Architecture design
    Mar 1 Deadline for architecture design report (before the feedback sessions)

Phase 3

  • Mar 4 Lab 3a: Feedback session
  • Mar 6 Lab 3a: Feedback session
  • Mar 7 Lab 3a: Feedback session
  • Mar 10 Deadline for architecture design report (Phase 2 / Phase 3)

 

Changes made since the last occasion

This year we will more additional emphasis on architectural design decisions and we will encourage more collaborative activities between team members. 
The essay will be produced by two students to promote discussions about the topic chosen and the initial collaboration between students or provide different points of view. 
The project will be almost the same but increasing the decision-making and evaluation activity of quality attributes.

 

Examination form

DAT220

Course element Activity Grading
Project (2.5 credits) Essay Approved / Failed
Group report (note: the delivery of Phase 1 report is obligatory, the grade is determined based on Phase 2/3 report) Approved / Failed
Examination (5 credits) Written exam 5, 4, 3, Fail (U)

Both the essay and the group report need to be approved to get a pass in the Project element (2.5 credits). The course grade is the same as the Examination element, provided that the Project element is passed.

DIT544

Activity Grading
Essay Approved / Failed
Group report (note: the delivery of Phase 1 report is obligatory, the grade is determined based on Phase 2/3 report)

VG (pass with distinction), G (pass), U (fail)

Written exam VG (pass with distinction), G (pass), U (fail)

In order to be awarded the grade Pass for a full course, the exam and the project has to be approved. In order to get Pass with Distinction as final grade, the exam and the project have to be awarded with the grade Pass with Distinction. In both cases the essay has to be approved.

Learning objectives and syllabus

Syllabus for DIT544 (GU) - http://kursplaner.gu.se/pdf/kurs/en/DIT544 (Länkar till en externa sida.)Länkar till en externa sida.

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

Kurssammanfattning:

Datum Information Sista inlämningsdatum