Design of Communicating Systems

Developing systems is surprisingly hard. We often think that the programming is the difficult part, but most of the important decisions that affect the system's quality are done long before the first line of code is written, or, at least, these decisions should be done before. In this course, you will get some of the tools and experiences that will help you to become a better engineer and adopt a more realistic approach to systems development in team. It's also fun, but we leave it up to you to decide.

Welcome to the iteration in spring 2024!

Startup for 2024

Step 1: Onboarding

Please fill out the onboarding scheme so we can register some more information about you. We will use this for a faster startup and the creation of working teams.

Step 2: Preparation

Read and work through the preparation material for setting up the course.

Step 3: First Class Time

Our first class time will be on Monday, Jan. 15th 2024 at 12:15 in Landmålderhallen. The regular schedule is here.

Course Content

During the first 9 weeks, we work through the following units. All of these units are useful for the semester project, on which we use more and more time towards the end of the semester.

Unit 1: Setup

We setup teams, tools and learn how to work together.

Unit 2: Modeling

We start with modeling deployment diagrams.

Unit 3: State Machines

State machines let us model behavior precisely.

Unit 4: Requirements

With requirements and use cases we analyze what users need.

Unit 5: State Machines in Python

We learn how to implement state machines in Python.

Unit 6: Agile Development

We learn how agile development methods work.

Unit 7: Communication

We look at communication protocols MQTT and HTTP.

Unit 8: Sequence Diagrams

With sequence diagrams we can model interactions between components.

Unit 9: Components

We construct our system from components.

Edit this page