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.
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.
Week | M | T | W | T | F | |
36 | Lec | Lec | ||||
37 | Lec | Lec | ||||
38 | Lec | Lec | ||||
39 | Lab | Lec | Lec | |||
40 | Lab | Lec | Lec | |||
41 | Lab | Project plan | ||||
42 | Lab | Lec | ||||
43 | ||||||
44 | ||||||
45 | Sem | Sem | Sem | Status sem. | ||
46 | Lab | |||||
47 | ||||||
48 | ||||||
49 | ||||||
50 | Lab | |||||
51 | Sem | Sem | ||||
52 | Christmas | |||||
1 | New Year | |||||
2 | ||||||
3 | Presentation |
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 | ||
01 | Software Engineering | H1 | |
02 | Development Methodologies | H1 | |
The Scrum Guide | |||
Scrum of scrums | Web | ||
03 | Project Management | H1 | |
04 | Requirements | H2 | |
05 | System Architecture | H2 | |
Patterns For Large-Scale JavaScript Application Architecture | Web | ||
06 | Program Design | H2 | |
07 | Modelling Notations | H3 | |
Agile Modeling | Web | ||
Five-step UML (incomplete) | Web | ||
UML 2.0 Quick Reference | Web | ||
UML Cheat sheet | |||
Asta Five-step example | asta PDF | ||
08 | Implementation | H3 | |
Google Style Guide | Web | ||
09 | Design Patterns | H3 | |
10 | Refactoring | H3 | |
Refactoring, Improving the Design of Existing Code | |||
11 | Testing | H2 | |
12 | Maintenance | H2 | |
Extra topics | |||
x2 | Multi Threaded Programming |
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 |
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.
Deadline | |
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 karljohan.palmerius.liu@analys.urkund.se.
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
The dates for these milestones are marked in the schedule.
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.
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.
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:
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.