FDA149/TDDC54 Software Engineering (2008)

Graduate course, 3p, VT 2008 January / February 2008

CUGS core course, National Graduate School in Computer Science (CUGS)
Mandatory course for CUGS doctoral students in computer science (course code FDA149)and for computer science master students in the CUGS International master programme (course code TDDC54).
This course is not open for undergraduate students other than those enrolled in the former international master program in computer science ("CUGS master"). Undergraduate students are kindly referred to our equivalent undergraduate courses Software engineering theory and Component-based software.

Goals: The course gives a broad overview of the theory of software engineering and treats selected topics in more depth.

Prerequisites: Data structures and algorithms; Programming in an object-oriented language (Java or C++)

FAQ: Counting of old credits for this course?
In short, FDA149 = PUM-teori (TDDC01/TDDC62) + Component-based software (TDDC18).
If you already have passed PUM-teori, you could thus skip the FDA149 exam questions about that part (hand in, along with your exam, a copy of your Ladok utdrag that contains your grade in PUM-teori). The component-based software part of the FDA149 exam must be passed. The final grade will then be weighted 50:50 with your PUM exam grade.

Organization and dates

Ca. 24 hours of lectures (4 full days)

The course is given in an intensive format ("crash course") at a conference facility (Hotel Scandic Väst, Ryd in Linköping).
The exam will be in Linköping, room John von Neumann, friday 15/2 at 14:00-18:00.
For questions about local arrangements, accommodation etc., please contact the CUGS secretary, Anne Moe.


The dates below are confirmed. Start and end times are very likely but minor changes may be possible.

Programme and Contents

Day 1: Tuesday 22 jan 2008, 10:00-17:00

1 Introduction: Software Engineering Kristian Sandahl
2 Software life cycles and processes Kristian Sandahl
3 Introduction to UMLPeter Bunus
4/5 Introduction to design patterns Peter Bunus
6 Design pattern examples Peter Bunus

Day 2: Wednesday 23 jan 2008 09:00-17:00

7 Requirements engineering
Usability metrics
Kristian Sandahl
8/9 Quality control and metricsKristian Sandahl
10 Software project organisation and documentationKristian Sandahl
11/12 Software testing ([PDF, updated 2008]) Mariam Kamkar
Recent update: The testing lecture will start at ca. 15:00 and end at 17:00.

Day 3: Thursday 31 jan 2008 10:00-17:00

13/14 Introduction to component and composition systems Christoph Kessler
15 OO Technology: Properties and Limitations for Component-Based Software Engineering
Interfaces, design by contract, syntactic and semantic substitutability, covariance, contravariance, specialization.
Inheritance considered harmful: syntactic and semantic fragile base class problem. View-based composition.
Christoph Kessler
16 Metamodeling and metaprogrammingChristoph Kessler
17/18 CORBA, CCMChristoph Kessler
Slides updated 25/1/2008. Handouts will be distributed.

Dinner: 18:00, Restaurant Olympia, Platensgatan

Day 4: Friday 1 feb 2008 09:00-16:00

19 IDE's, ECLIPSEMikhail Chalabine
20 JavaBeans Mikhail Chalabine
21 Enterprise Java Beans (EJB) Mikhail Chalabine
22 Software architecture systems Christoph Kessler
23 Aspect-oriented programming and Aspect-JMikhail Chalabine
24 Model-driven architecture (MDA) Christoph Kessler
Slides updated 25/1/2008 (JavaBeans, EJB, AOP 4/2/2008).

Exam: Friday 15 feb 2008 14:00-18:00, room John von Neumann

Written exam. Jour: Christoph Kessler


Further literature on specific topics will be announced in the course.

Other material


Course leader

Local arrangements, accommodation, travel information etc.

Course secretary




No aids are allowed: No books, no papers, no notes.

External participants who prefer to write the exam at their home university should register in time (i.e., by 8 february) with Anne Moe and refer to a contact person (known to Anne) who can supervise the exam at the local university.


3 credits (4.5 ECTS)

For FDA149 we give grades U, 3, 4, 5.
For TDDC54 the grades are U, G (fail, pass).

Organized by

CUGS national graduate school in computer science, and
Department of Computer Science, Linköping University


Overlap with other courses:

The course was last given

Christoph Kessler