IN4315: Software Architecture in 2020

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

IN4315 Teaching Team 2020

The 2020 teaching team consists of:

  • Arie van Deursen (responsible professor)
  • Casper Boone (Teaching assistent)
  • Aggelos Gamvrinos (Teaching assistent)
  • Xavier Devroey (co-teacher, variability)
  • Marco Di Biase (co-teacher, quality)
  • Ayushi Rastogi (co-teacher, social aspects)
  • Luis Cruz (co-teacher, green computing)

Furthermore, there will be several lecturers from industry.

Course Schedule

Date Time Activity Teacher Topic
Wed Feb 12 15:45 Lecture 1 Arie van Deursen Course structure (slides)
Fri Feb 14 15:45 Lecture 2 Arie van Deursen Lean Architecture (slides)
  17:00   Grady Booch, IBM Ask Me Anything on SATURN 2016 keynote
Wed Feb 19 15:45 Lecture 3 Arie van Deursen Documenting Architectures (slides)
  17:00   Engin Bozdag, Uber Ask Me Anything; privacy by design (slides)
Fri Feb 21 15:45 Lecture 4 Xavier Devroey Architecting for Variability (slides)
Wed Feb 26 15:45 Lecture 5 Marco Di Biase, SIG Architecting for Maintainability (slides)
Fri Feb 28 15:45 Lecture 6 Ayushi Rastogi Architecting as a Team Activity (slides)
Wed Mar 4 15:45 Lecture 7 Luis Cruz Architecting for Sustainaility (slides)
Fri Mar 6 15:45 Lecture 8 Bert Wolters, Adyen Architecting for Scalability (slides)
Wed Mar 11 15:45 Lecture 9 Ferd Scheepers, ING Architecting for the Enterprise (canceled)
Fri Mar 13 15:45 Lecture 10 Steffan Norberhuis Architecting for Operations (slides, twitch)
Fri Mar 20 15:45 Lecture 11 Daniel Gebler, Picnic Microservices at Picnic (canceled)
      Arie van Deursen Ask me anything (mattermost)
Fri Apr 3 full day   All student teams Video presentations and Discord discussions (schedule, slides)

Lecture rooms:

  • Wednesday lectures: Room Chip, EWI-36.
  • Friday lectures: Feb 14 / March 6: CT-CZ-E; Other Fridays: Room Pi, EWI-36
  • March 13 and March 20 lectures: On line via Twitch.tv

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 desosa2020.netlify.com.

Deadlines

Date Time Writing Coding Reviewing Presenting
Mon Feb 17 17:00   Project selected    
Wed Feb 19 17:00   Top-level decomposition    
Mon Mar 9 17:00 Team essay 1      
Mon Mar 16 17:00   Pull request midway report Essay 1  
Thu Mar 19 17:00 Team essay 2      
Thu Mar 26 17:00 Team essay 3   Essay 2  
Thu Apr 2 17:00     Essay 3 Presentation Video
Mon Apr 6 17:00 Team essay 4 Pull request report    
Thu Apr 9 17:00     Essay 4  

Grades

Students will receive grades based on the following:

  • E: Team performance for each of the four essays (1-10), composed form the average of the four essays E1..E4.
  • C: Team performance for code contributions (1-10)
  • P: Team performance for video presentation (1-10)
  • R: Individual performance in peer reviews (-1, 0, 1) – zero by default
  • A: Individual performance in participation (-1, 0, 1) – zero by default

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)

Credits

Cover image credit: Altes Museum -- Francis Ching. Architecture: Form, Space & Order
Copyright text: TU Delft (Arie van Deursen), 2020. Content available under CC BY-SA 4.0.