TNM090 — Software Engineering
Autumn 2013


This is the home page for the course Software Engineering (TNM090). It contains current schedule and information about the course. All material distributed during the course will be linked to from this page (or there will be a description on where to find it).


The teaching in the course is based on lectures, with optional complementary reading, laboratory exercises and a relatively large group development project. The examination is based on hand-ins on some topics, project deliverables, reports, meetings and seminars, and the completion and demonstration of the laboratory exercises.


Course Literature

The primary course literature is Pfleeger & Atlee, Software Engineering Theory and Practice, fourth edition.

Other literature that is useful for this course includes Design Patterns, Elements of Reusable Object-Oriented Software, by Gamma et al., Pattern-oriented Software Architecture, volume 2: Patterns for Concurrent and Networked Objects, by Schmidt et al., and Using UML, Software Engineering with Objects and Components, by Stevens & Pooley



Karljohan Lundin Palmerius Giving lectures, and supervising and examinating project work Web
Alexander Bock Supervising laboratory work


Tentative schedule: this is the approximate distribution of teaching sessions. Always check the Timeedit database for the latest updates.

36 LecLec
37 LecLec
38 LecLec
39 LabLecLec
40 LabLecLec
41 Lab Project plan
42 LabLec
45 SemSemSem Status sem.
46 Lab
50 Lab
51 SemSem
52 Christmas
1 New Year
3 Presentation

Lecture Topics

The lectures are divided into topics and one topic may span part of a lecture or more than one lecture. The topics that must be covered by the three hand-in assignments are marked as H1, H2 and H3.

00 Course Information PDF
01 Software Engineering H1 PDF
02 Development Methodologies H1 PDF
The Scrum Guide PDF
Scrum of scrums Web
03 Project Management H1 PDF
04 Requirements H2 PDF
05 System Architecture H2 PDF
Patterns For Large-Scale JavaScript Application Architecture Web
06 Program Design H2 PDF
07 Modelling Notations H3 PDF
Agile Modeling Web
Five-step UML (incomplete) Web
UML 2.0 Quick Reference Web
UML Cheat sheet PDF
Asta Five-step example asta PDF
08 Implementation H3 PDF
Google Style Guide Web
09 Design Patterns H3 PDF
10 Refactoring H3 PDF
Refactoring, Improving the Design of Existing Code PDF
11 Testing H2 PDF
12 Maintenance H2 PDF

Extra topics

x2 Multi Threaded Programming PDF

Laboratory Exercises

Lab 1 Laboratory Platform (optional) instructions
Lab 2 Software Configuration Management instructions
Lab 3 Developing a Particle System instructions files
Lab 4 Code Quality Analysis Tools instructions files

Hand-in Assignments

Three reflection documents must be handed in for 2 hp, each covering a set of lectures as marked in the lecture list. The report should be brief, just a few pages.

H1 — Project Management 2013-10-18
H2 — Software Engineering Principles 2013-11-15
H3 — Standards and Best Practices 2013-11-15

The documents should show that you have an understanding of the underlying essence of the course and should therefore express your personal understanding of the topics. Review your notes, hand-outs and related literature, and reflect on what these topics mean to you. You may include observations, relate to earlier projects, associations with software you use, reflect on how you may use the new knowledge in the future, etc.

The reports should be written in Swedish or English in plain text, simply formatted, e g A4 paper with 12 pt Times New Roman.

It is recommended that the documents are written continuously during the period. All documents are handed in as PDF through URKUND by attaching them to an e-mail with "[TNM090]" as subject sent to

Development Project

The development project will be conducted in groups of tuned sizes. To ensure the quality of the project and the experience of the members, each group and each member has to perform certain steps. If one of these steps are not applicable to your project, you must consult the examiner.

To pass the development project, each group has to

To pass the development project, each individual member has to

There will be four scheduled milestones with deliverables for the purpose of controlling the progress and examination of the project work

  1. the project plan, which is sent to the examiner,
  2. a status seminar, where the project group presents the progress of the project,
  3. the final presentation of the project and the results, and
  4. the final individual report.

The dates for these milestones are marked in the schedule.

Project Plan

The project plan should be based on the theories discussed in the lectures. There is, however, a minimum requirement for the project plan, as listed below. If a point below is not applicable to the project it may be omitted.

Group Report

The group report, to be handed in by the time of the presentation, will be the basis for pass or fail of the project, and help indicating the distribution of effort between the members.

This should contain:

If the group cannot agree on the contents of a part of the report, the smallest of the disagreeing sub groups may produce a complementary document with an alternative text of the section concerned.

Individual Report

The individual report, to be handed in before tenta-P, will be the basis for the individual assessment and be used together with the group report to determine each student's grade. Observe, however, that it is not the number of lines of codes produced that determines the grade.

This report should contain:

Project Expectations

Available Resources

Observe that an Agile development tool will not provide all features required for this course. You will have to use a combination of tools, e.g. Agilefant for task tracking, Inkscape for architectural modelling, Astah for module and program design, Doxygen for documentation and GIT for source code handling and versioning.