Construction of Reuseable Software (Block Course in July) (SS2013)

Teaching Staff: Helmut Neukirchen
Lecture (block)

 Lecturer Info

Helmut Neukirchen is Associate Professor for Computer Science and Software Engineering in the Faculty of Industrial Engineering, Mechanical Engineering and Computer Science at the University of Iceland, Reykjavik, Iceland. Helmut Neukirchen holds a PhD (Dr. rer. nat.) in Computer Science on “Languages, Tools and Patterns for the Specification of Distributed Real-Time Tests” from the University of Göttingen, Germany. The research interests of Helmut Neukirchen are in the domains of software engineering (in particular software quality) and distributed systems, in particular in the intersection of these domains.

Course Description

While the course “Software Engineering” is mainly about software development processes and the analysis and design phases, this course covers the later stages of the detailed design, implementation (partially), and unit testing, i.e., the so-called construction of software. The focus is in particular on reusability.


  • Design patterns,
  • Frameworks,
  • Unit testing with the JUnit Framework,
  • The Eclipse Framework,
  • Refactoring,
  • Design-by-Contract/Assertions,
  • Aspect-oriented programming (AOP).

Prerequisite Knowledge/Skills

  • Knowledge of UML (class diagrams, sequence diagrams),
  • Object-oriented programming experience (inheritance, composition, polymorphism),
  • Good knowledge of Java (including interfaces, static methods)
  • Courses: Computer Science I, II, III, Software Engineering

This course is intended for Master students. However, committed bachelor students who have sufficient experience in programming and passed the above mentioned course can also attend this course.

Course Organization

The course takes place as a block course from 16.-19.7.2013 in room 1.101 in the Institute of Computer Science. On these days, the lecture takes place from 10:00 – 11:30, 11:45 – 12:30 and 13:30 – 15:00 o’clock. The exam is planned for the end of July.

The course includes the lecture (3 ETCS) as a block and a Seminar (2 ETCS), where each participant needs to give a talk about a design pattern. A written report is not required. The topics for the seminar can be choosen during the lecture block. In agreement with the participants, the presentation of the seminar will be scheduled as a one day event.

Lecture and seminar fulfill the Module M.Inf.1131: Vertiefung Softwaretechnik (5 ECTS) or B.Inf.1703.Mp: Vertiefung Softwaresysteme und Daten.

The course is taught in English. The maximum number of participants is limited. Therefore, you should register in StudIP in advance.
For questions and comments, please contact Thomas Rings.

Basic Literature

  • Gamma, Helm, Johnson, Vlissides: Entwurfsmuster / Design Patterns, Addison-Wesley
  • Freeman, Freeman, Sierra, Bates: Head First Design Patterns / Entwurfsmuster von Kopf bis Fuß, O'Reilly
  • Fowler: Refactoring / Refactoring, Addison-Wesley
  • Link: Softwaretests mit JUnit, dpunkt
  • Pree: Komponentenbasierte Softwareentwicklung mit Frameworks, dpunkt (unfortunately out of print)

 Advanced Literature

For all the students who want to learn about the parts of construing software that are not covered in the lecture:

  • Hunt, Thomas: Der Pragmatische Programmierer, Hanser / The Pragmatic Programmer, Addison-Wesley / The Pragmatic Programmer (EBook), The Pragmatic Programmers
  • McConnell: Code Complete, Microsoft Press / Code Complete - Deutsche Ausgabe, Microsoft Press Deutschland
2011 © Software Engineering For Distributed Systems Group

Main menu 2