Back to top

Advanced Topics of Software Engineering

Last modified Jan 24

 Weekly schedule

  Mo Tu We Th Fr
8-10                      Lecture
(Zoom)
       
10-12

  Consulting
Hours 2
(Zoom)
     
       
12-14

Lecture
(Zoom)

  Consulting
Hours 4
(Zoom)     
   
     
14-16

Central
Exercise
(Zoom)
  Consulting
Hours
5

(Zoom)
   
Consulting
Hours 3
(Zoom)
 
16-18 Consulting
Hours 1
(Zoom)
     
       

Lecture

  1. The lectures are conducted fully online via Zoom. The Zoom link is posted in Moodle
  2. There are two weekly lectures on Monday 12:15 - 13:45 and Friday 08:30 - 10:00.
  3. Every lecture has a Live Question channel available through Tweedbackwhere students can ask questions during the lecture. The Tweedback session ID of each lecture is included in Moodle
  4. The recording of each lecture is uploaded to the TUM Moodleplatform.

Assessment Method

  1. Exam: 100%. The course has a re-exam.
  2. Project (Optional): additional bonus to the final grade, maximum by +1.0. For example, if you achieve 2.3 in the exam, and obtain a project bonus of 1.0, then the final grade is 1.3. The maximum final grade with bonus is 1.0.

Exam

The final exam is expected to be conducted on-site in Garching. We will inform you if there is any change to the exam format in the future.

  1. Students must register for the exam in TUM Online
  2. Language of examination – English only
  3. Closed-book exam
    • English dictionary is allowed
  • Date - Friday 25.02.2022
  • Time - 11:00 - 12:45
  • Duration: 100 minutes (100 points)
  • Location:
      1. 1450, Willy-Messerschmitt-Zeichensaal (5504.01.450)
      2. 0.003, Tentomax HS5 Garching El (5998.EG.003)

The retake exam is expected to be conducted on-site in Garching.

  1. Students must register for the exam in TUM Online
  2. Language of examination – English only
  3. Closed-book exam
    • English dictionary is allowed
  • Date - Thursday 21.04.2022
  • Time - 11:00 - 12:45
  • Duration: 100 minutes (100 points)
  • Location: 0.003, Tentomax HS5 Garching El (5998.EG.001)

 

Project

  • Students form teams (3-5 members) to develop a logistic system comprising of back-end microservices, front-end web application, and an embedded system.
  • The course offers practical exercises to teach necessary technical skills for the project development. You will learn and apply the following technical knowledge during the development:
    a. Back-end: Spring, MongoDB, Java. Knowing Spring Security & Spring Data MongoDB is an advantage.
    b. Front-end: React, Javascript. Knowing Redux / React Hooks is an advantage.
    c. Embedded System: Python (basic), Hardware Programming experience with Raspberry Pi is an advantage.
    d. Deployment: Docker
  • To achieve the maximum bonus (+1.0) on the final grade, students have to develop all the required features of the project.
  • All the necessary hardware for developing the embedded system will be provided to you.
  • The project development is optional. If you do not submit the project, no point is deducted from the final grade.

 

Central Exercise

  1. Throughout the course, students will work on weekly exercises containing theoretical questions and programming tutorials. The theoretical questions let students practice the knowledge learnt from the lecture, while the programming tutorials are essential for developing the course project.
  2. The weekly central exercise is conducted via Zoom. The room link is posted in Moodle.
  3. NO Submission of your exercise work is required.
  4. In each central exercise session, the tutor will present solutions to the theoretical and programming questions in the exercises.
  5. The solution to each exercise is NOT recorded
  6. Attending the central exercises is optional, but it is beneficial for your exam and project.

Project Consulting Hours

  1. We offer five consulting sessions to answer questions related to the project development
  2. The sessions are available fully online through Zoom. The room link is posted in Moodle.
  3. Participation of the project consulting hour is not mandatory. The consulting hours are intended only for answering project-related questions.
  4. Students can participate in any Zoom session during the five offered time slots to ask questions.

Lecture Schedule

 

Week Lecture Exercise

Date

Topic

 
1

Mo

18.10.

No Lecture

Read and familiarize yourself
with Git, Gitlab, particularly
Gitlab CI/CD

Form Groups

Fr

22.10.

Introduction and overview

Characteristics of software systems

2

Mo

25.10.

Guest Lecture
Lecturer: Dr. Rupert Stützle

Embedded Systems

Release of Exercise 1

Fr

29.10.

Factors affecting the design of a software system

 

3

Mo

01.11.

Allerheiligen - No Lecture

 

Release of Exercise 2

Fr

05.11.

Software modules and software components

 

4

Mo

08.11.

Software modules and software components

Discuss Solutions for Exercise 1
Release of Exercise 3

Fr

12.11.

Dependency structure matrix

Guidelines for modular design

5

Mo

15.11.

Guidelines for modular design

Architecture and external quality

Discuss Solutions for Exercise 2
Release of Exercise 4

Fr

19.11.

Antipatterns and Reuse

No Lecture.
A recording of the lecture will be uploaded to Moodle.

Discuss Solutions for Exercise 3
on Friday 08:30 - 10:00

6

Mo

22.11.

Reuse

Discuss Solutions for Exercise 4
Release of Exercise 5

Fr

26.11.

Testability

Safety

7

Mo

29.11.

Safety

Discuss Solutions for Exercise 5
Release of Exercise 6

Fr

03.12.

Safety

Security

8

Mo

06.12.

Security

Discuss Solutions for Exercise 6
Release of Exercise 7

Fr

10.12.

Guest Lecture
Speaker: Thanos Theo

Introduction to Parallel Computing &
Parallel Programming Models

9

Mo

13.12.

Security

 

Discuss Solutions for Exercise 7
Release of Exercise 8

Fr

17.12.

No Lecture

10

Mo

20.12.

Software architectures and their trade-offs

Discuss Solutions for Exercise 8
Release of Exercise 9

Fr

24.12.

Christmas - No Lecture

 

Christmas Break
12

Mo

03.01.

Christmas Break - No Lecture

 

Release of Exercise 10

Fr

07.01.

Christmas Break - No Lecture

13

Mo

10.01.

Software architectures and their trade-offs

Discuss Solutions for Exercise 9 & 10
Release of Exercise 11

Fr

14.01.

Software architectures and their trade-offs

14

Mo

17.01.

Software architectures and their trade-offs

Discuss Solutions for Exercise 11
Release of Exercise 12

Fr

21.01.

Software architectures and their trade-offs

15

Mo

24.01.

Software architectures and their trade-offs

Discuss Solutions for Exercise 12

Fr

28.01.

Blockchain

 

16

 

Mo

31.01.

Chapter 4 Software Deplolyment Alternatives
(inluding Functions as a Service)
 

Fr. 

04.02.

Chapter 4 Software Deplolyment Alternatives

17

Mo

07.02.

Guest Lecture
Speaker: Michael Eberhard

Developing an Autonomous Vehicle: A Use-Case in Software Engineering

 


 

Fr

11.02.

Q&A Session regarding Exam (optional)

Content

  1. The context of software engineering
    1. Introduction and overview
    2. Factors affecting the design of a software system
    3. Characteristics of software systems in different domains
    4. Case studies from two domains (Two guest lectures!)
  2. From requirements to system design
    1. Software architecture
    2. Software libraries and frameworks
    3. Antipatterns in software engineering
    4. Model-driven software engineering
    5. Software product line engineering
    6. Safety
    7. Information security
    8. Testability
  3. Software architectures and their trade-offs
    1. Introduction to distributed systems and middleware 
    2. Database-centric architectures
    3. Message-oriented architectures
    4. Object-oriented architectures
    5. Component-based architectures
    6. Service-oriented architectures
  4. From source code to physical deployment
    1. Introduction and historical perspective
    2. Version control
    3. Continuous integration
    4. Continuous deployment
    5. Virtual machines and containers
    6. Software architectures for the cloud
Module noECTSScope of the exam

IN2309

8

Everything that is covered in the lecture

Prerequisites

Attendance to the lecture "Introduction to Software Engineering (IN0006)".

Intended Learning Outcomes

  • Appreciate software engineering:
    • Build complex software systems in the context of frequent change
  • Understand
    • how quality attributes affect the software architecture and conversely, how architectures influence these attributes in different domains
    • why there is  a need to make quality trade-offs while considering different software architectures including component-based and service-oriented architectures
    • how to efficiently deliver the developed software system to the stakeholders
  • Be able to apply
    • modeling techniques
    • system analysis and design by considering quality trade-offs
    • patterns, guidelines, and best-practices in software engineering
    • tools for system configuration, integration, and deployment

References

Title

Authors

Design rules: The power of modularity Baldwin, C.Y. and Clark, K.B. (2000).
The Pragmatic Programmer: From Journeyman to Master Hunt A. and Thomas D. (2000).
Patterns of enterprise application architecture Fowler M. (2002).
Pattern-oriented software architecture volume 1: a system of patterns Schmidt, D., Meunier R., Stal, M., Rohnert, H., and Buschmann, F. (1996).
What is enterprise ontology? Dietz J. LG. (2006).
Object-oriented design with applications Grady B. (1991).
Continuous integration Fowler M. (2006).
The deployment production line Jez H., Read C., and North D. (2006).
Softwaretechnik: Praxiswissenfür Software-Ingenieure Johannes S. (2003).
Getting Started - About Version Control  
Software Product Line Engineering. Pohl, K., Böckle G. and Linden F. (2005).
AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. The Upstart Gang of Four (1998).

 

X