Course syllabus

Questions During Written Exam:

Please find in this file the exam for 19 March 2020 Adv Software Architecture.

If you have questions, you can write them in this Google-document:

https://docs.google.com/document/d/1SNUEZNiAUh9wKvOvCSafQLD6Ejo8cW3-rxyuSYEXU9E/edit?usp=sharing

Please find here a 'guide' to the solutions to the exam questions.
The guide is not complete in the sense that it cannot anticipate all of the answers and how to grade these.
This guide does show the key elements/direction of the solution.
NB. for the design question I have taken diagrams from different solutions. They are _a_ right answer to the question, but are together not consistent across answers (which they should be when you hand in your answer sheet).

As it currently looks, the re-exam will also be a remote/do from home exam.

 

 

Course-PM

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

Course is offered by the department of Computer Science and Engineering

Contact details

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.

Course Representatives
MPSOF ayko@student.chalmers.se       Konstantin Ay
MPSOF selam.welu@mu.edu.et   Selam Gebrekrstos
MPSOF sarosh.nasir@gmail.com Sarosh Jah Nasir
MPSOF saimeghanauppalapati1997@gmail.com     Sai Meghana Uppalapati
MPBDP vikm@student.chalmers.se       Martin Vik

 

Lecture Slides

- 1: introduction

- 2: Definitions Importance and Views

- 3: Design Principles

-4: Functional Decomposition and Architectural Styles (Clnt-Srvr)

-5: Technical Debt

For this lecture, you can prepare by watching this video

-6: Domain Analysis and Architectural Styles (part 2: pipe and filter and publish-subscribe)

-7a: Architectural Styles - part 3: Blackboard

-7b: Architecture Performance Analysis
          Reading Material

- 8 Reliability, Availability, SMART, Tactics

       Here is the paper about reliability block diagrams

-  9 Security Concept and Tactics

Guest Lecture Anders Alminger (Volvo Cars)

- 10 Security and Architecture Evaluation
          Reading: Chapter 21 from BCK and this nice paper about industrial experiences

- 11 Reverse Architecting, Visualisation and Architecture <-> Implementation Correspondence
          Reading: Chapter 20 from BCK

 

Assignments

 

Course literature

- Main textbook is:

Background reading:

 

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

  • introduce advanced topics (differentiating MSc from BSc) in separate lectures.
  • introduce new assignments: case-studies for design and implementation-project.

Learning objectives and syllabus

Learning objectives:

 - Understand the role and applicability of methods for designing and 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 UML, 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  at Chalmers Study plan
Link to the syllabus  at GU https://kursplaner.gu.se/pdf/kurs/en/dit544

Examination form

Description of the examination:

  • Components of the examination:
    - written hall 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.

 

Course summary:

Date Details Due