IN4315: Software Architecture

Software Architecture in 2021

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

Note: This course is being taught during the second (and third) COVID19 wave taking place in The Netherlands. Therefore, the course is entirely online. The impact on student’s well being of having to study online only can be substantial: Students can at all times reach out to the teachers, teaching assistants, the student counsellors, or any of the organizations and people that may be able to help.

IN4315 Teaching Team 2021

The 2021 teaching team consists of:

Furthermore, there will be several lecturers from industry.

Course Schedule

Because of the COVID-19 pandamic, all lectures will be online in Zoom (link available in Mattermost). Scheduled interaction time includes the following:

Date Start End Activity Teacher Topic Slides Video
Wed Feb 10 13:45 15:30 Lecture 1 Arie van Deursen Introduction and Course Structure pdf video
Fri Feb 12 08:45 10:30 Lecture 2 Arie van Deursen Envisioning the System pdf video
Wed Feb 17 13:45 15:30 Lecture 3 Arie van Deursen Realizing the Vision pdf video
Fri Feb 19 08:45 10:30 Lecture 4 Arie van Deursen Architecting for Change pdf video
Wed Feb 24 13:45 15:30 Lecture 5 Luís Cruz Architecting for Sustainability pdf video
Fri Feb 26 08:45 10:30 Lecture 6 Burcu Kulahcioglu Ozkan Architecting for Distribution pdf video
Wed Mar 3 13:45 15:30 Lecture 7 Diomidis Spinellis 50 years of Unix Architecture pdf video
Fri Mar 5 08:45 10:30 Lecture 8 Bert Wolters (Adyen) Architecting for Scalability pdf video
Wed Mar 10 13:45 15:30 Lecture 9 Steffan Norberhuis Architecting for Operations pdf video
Fri Mar 12 08:45 10:30 Lecture 10 Xavier Devroey Architecting for Variability pdf video
Wed Mar 17 13:45 15:30 Lecture 11 No lecture      
Fri Mar 19 08:45 10:30 Lecture 12 Daniel Gebler (Picnic) Architecting for the unusual pdf video
Wed Mar 24 13:45 15:30 Lecture 13 No lecture      
Fri Mar 26 08:45 10:30 Lecture 14 Arie van Deursen Ask me Anything    
Thu Apr 1 08:45 17:30 Finale All students Final presentations    


Recorded lectures are available for TU Delft students on Collegerama.

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 deeper analysis based on the lectures or other relevant material specific to the system of choice;
  3. Contributing changes to the open source system selected (via pull requests submitted on GitHub)
  4. Preparing a final video summarizing the key results, and answering questions about it (online).
  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 2021.desosa.nl.

Deadlines

Date Time Writing Coding Reviewing Presenting
Mon Feb 15 17:00   Project selected    
Mon Feb 22 17:00   Project meta-data added    
Mon Feb 22 17:00   Journal entries for weeks 1 & 2    
Mon Mar 8 17:00 Team essay 1      
Mon Mar 15 17:00 Team essay 2 Pull request midway report Essay 1  
Mon Mar 22 17:00 Team essay 3   Essay 2  
Mon Mar 29 17:00 Team essay 4      
Wed Mar 31 17:00       Presentation Video
Tue Apr 6 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)