IN4315: Software Architecture

Software Architecture in 2022

Schedule and material for the 2022 edition of IN4315, the TU Delft Software Architecture course.

Note: This course is being taught during the Omikron COVID19 wave taking place in The Netherlands. The course will be hybrid in setup. As many activities as possible will be set up on campus, with online fall back mechansims.

IN4315 Teaching Team 2022

The 2021 teaching team consists of:

Furthermore, there will be several lecturers from industry.

Course Schedule

The course will be taught in hybrid mode:

Lecture rooms include EWI Boole (Wednesday), and EWI Pi (Friday). Final presentations will take place in Pulse Hall 1 lecture halls AE D and AE F (both in the Faculty of Aerospace Engineering).

Date Start End Activity Teacher Topic Slides Video
Wed Feb 9 13:45 15:30 Lecture 1 Arie van Deursen Introduction and Course Structure pdf video
Fri Feb 11 08:45 10:30 Lecture 2 Arie van Deursen Envisioning the System (E1, E2) pdf video
Wed Feb 16 13:45 15:30 Lecture 3 Diomidis Spinellis Architecting for Quality (E3) pdf video
Fri Feb 18 08:45 10:30 Lecture 4 Diomidis Spinellis Architecting for Scale (E4) pdf video
Wed Feb 23 13:45 15:30 Lecture 5 Arie van Deursen Views and Beyond (E2 cont.) pdf video
Fri Feb 25 08:45 10:30 Lecture 6 No lecture NO LECTURE    
Wed Mar 2 13:45 15:30 Lecture 7 Diomidis Spinellis 50 years of Unix Architecture Evolution pdf video
Fri Mar 4 08:45 10:30 Lecture 8 Arie van Deursen Configurability and Change pdf video
Wed Mar 9 14:45 15:30 Lecture 9 Engin Bozdag (Uber) Architecting for Privacy / AMA pdf video
Fri Mar 11 08:45 10:30 Lecture 10 Lukas Vermeer, Kevin Anderson (Vistaprint) Architecting for Experimentation   video
Wed Mar 16 13:45 15:30 Lecture 11 Efe Kocabaş, Thinus Naude, Arthur Breurkes Architecture at Adyen   video
Fri Mar 18 08:45 10:30 Lecture 12 Pinar Kahraman and Oscar Caraballo (ING) AI Ops and Analytics    
Wed Mar 23 13:45 15:30 Lecture 13 TBD TBD    
Fri Mar 25 08:45 10:30 Lecture 14 No lecture NO LECTURE    
Wed Mar 30 08:45 17:30 Finale All students Final presentations    

Assignment

Students will work in teams of four. Team work includes:

  1. Selecting an open source system: The system needs to be sufficiently complex, under active development, and open to external contributions.
  2. Writing four essays, covering
    1. the product vision, including required capabilities, roadmap, product context, and stakeholder analysis.
    2. architectural decisions made, including system decomposition, tradeoff points, as well as architectural styles and patterns adopted.
    3. an assessment of quality and (potential) technical debt; and
    4. a scalability study identifying possible scalability issues and proposing architectural changes to address them.
  3. Contributing changes to the open source system selected (via pull requests submitted on GitHub)
  4. Preparing a final video and presentation (and poster) summarizing the key results, and answering questions about it.
  5. Reviewing work from other teams, to learn from them, and to give them feedback

The four essays can build upon each other, but should be independently readable. We will collect all essays in an online book, that will emerge throughout the course. You can watch our progress (for essays made public) at the DESOSA 2022 site.

Coaches

Each team is assigned a coach. The coach is there to help the team, answer questions, and give feedback on progress, the setup of the essays, and the contributions. Each team organizes two to three 30 minute sessions with the coach during weeks 3-7 of the course. For these sessions, the team prepares a short presentation on the current status and plans for the next weeks.

Deadlines

Date Time Writing Coding Reviewing Presenting
Mon Feb 14 17:00   Project selected    
Mon Feb 21 17:00   Project meta-data added    
Mon Feb 21 17:00   Journal entries for weeks 1 & 2    
Mon Mar 7 17:00 Team essay 1      
Mon Mar 14 17:00 Team essay 2 Pull request midway report Essay 1  
Mon Mar 21 17:00 Team essay 3   Essay 2  
Mon Mar 28 17:00 Team essay 4      
Tue Mar 29 17:00       Poster/slides/video
Wed Mar 30         Presentation day!
Mon Apr 4 17:00 Small improvements Pull request report Essay 3+4  


The “Small improvements” deadline offers an opportunity to make small fixes to your essay based on the reviewing comments. These changes are optional and should be small, i.e., at most 1-2 hours of work, and should focus on obvious mistakes and oversights. The “substance” of the essays should all be in the essays at the original deadline.

Grading

Students will receive grades based on the following:

The team grade is the weighted average of the team activities:

T = (3*E + C + P)/5

The individual grade then is the team grade to which a bonus can be added (or subtracted) for exceptional (top/bottom X%) results.

I = T + 0.5 * (R + A)