INF-32306 Software Engineering


Credits 6.00

Teaching methodContact hours
Group work10
Course coordinator(s)drs. MR Kramer
Lecturer(s)ir. MA Zijp
dr. I Athanasiadis
drs. MR Kramer A Kassahun
Examiner(s)drs. MR Kramer

Language of instruction:


Assumed knowledge on:

Fundamentals of programming (e.g. INF-22306 Programming in Python)
Specifically you should be acquainted with the following concepts and techniques:
- variables, assignment, expressions, operators;
- functions (and/or procedures, subroutines, methods) and parameters; also making your own functions;
- control structures: at least: if, for, while;
- objects and their properties (fields, variables) and operations (methods);
arrays, including standard algorithms to traverse arrays (searching, summing, finding the largest element, etc.).

Continuation courses:

MSc Thesis Information Technology with an emphasis on software development.


Software systems are developed to serve a specific purpose for specific groups of users. Such systems typically consist of many interacting components. Designing and implementing software systems goes beyond small-scale and ad-hoc programming. The techniques for building them are known under the term Software Engineering.
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. In other words, it is the application of engineering to software. In this course we cover the process of developing a computer program from an initial idea to a tested and maintainable software system.

Learning outcomes:

After successful completion of this course students are expected to be able to:
- find occurrences of object-oriented (OO) software concepts in a given computer program (source code) or UML model;
- write a software specification using UML;
- assess adherence to specified software development practices;
- design a software system using object-oriented (OO) techniques;
- construct a working computer program according to defined specifications;
- formulate and execute functional tests for a software system;
- operate a software version management system for sharing software components and documentation.


- project work;
- small individual assignments;
- developing components and integrating them.


Each individual student has to fill out check-lists.
The final grade of the course is derived from the grades for these check-lists: group work (at least 5.5: 50%);
individual contributions to group work (at least 5.5: 50 %).



Restricted Optional for: MBEBiosystems EngineeringMSc5AF