Software Engineering Lab (Software-Praktikum) Prof. Dr. Sven Apel Summer Semester 2022


Currently, no news are available

In case of questions, please contact us via e-mail to:


About the Software Engineering Lab

The Chair of Software Engineering offers a Software Engineering Lab (SE Lab), formerly Software-Praktikum (SoPra), in the form of a basic block course during the lecture-free period, which addresses students currently enrolled in a Bachelor’s degree program majoring and minoring in computer science. The goal of the Software Engineering Lab is to develop a non-trivial software system in Java, partly in team effort and partly in individual effort. Other characteristics of the Software Engineering Lab are:

  • Time period: 05.09.2022 – 21.10.2022

  • Duration: 7 weeks (daily Monday to Friday)

  • The Software Engineering Lab consists of three phases:

    • Exercise phase (~1 week): daily lectures (will not start before 09:00, exact dates will be presumably announced in July) and exercises in the afternoon. At the end of the first week, on Friday, 09.09.2022, at 09:00 an entry exam will take place. Only participants that pass the entry exam will be admitted to the group phase.

    • Group phase (~4 weeks): design, implementation, and testing of a substantial software system in a team effort (in teams of five to eight students). Only participants that have passed the exercise phase are admitted to the group phase.
      During the group phase, compulsory attendance is required between 10:00 and 17:00. There will be three additional appointments between 09:00 and 18:00.
      In exceptional cases, in which you are not able to fulfill the compulsory attendance on single days of the group phase, please inform your tutor during the course. We then will take a hardship decision about the attendance for individual days, which may also be dependent on your project progress, if necessary.
      If a group fulfills all requirements for passing the group phase, we will waive the compulsory attendance for this group.

    • Individual phase (2 weeks): design, implementation, and testing of a smaller software system or extension to an existing software system (e.g., from the group phase) in an individual effort. Only participants that have passed the group phase will be admitted to the individual phase.

  • More details about the time slots and format of the lectures and the concrete temporal sequence of the Software Engineering Lab will be announced in the schedule (presumably in July).

Note regarding the COVID-19 situation: The SE Lab will take place in the period indicated above. There will be mandatory face-to-face appointments at the university (as well as online appointments). The exact timing of the appointments will be announced in the schedule (presumably in July). Please note, however, that the attendance dates and times as well as the attendance formats (online vs. face-to-face) may change again, taking into account the infection situation and the then applicable official regulations. 



Participation in the Software Engineering Lab requires programming skills as taught in the courses Programming 1 and Programming 2.
Students are required to bring their own laptops.



Registration for the Software Engineering Lab is possible from 18.07.2022. Two registrations are necessary for participation in the Software Engineering Lab:

  1. You have to register here in the CMS by 05.09.2022.

  2. You have to register at your examinations office by 12.09.2022 (for most degree programs in computer science, this is possible via the LSF; note that the course is sometimes called ‘Softwaredesignpraktikum’ there). There you can also withdraw your registration until 12.09.2022.



  • Software design
  • Software testing
  • Team work
  • Debugging



  • Software Engineering. I. Sommerville. Addison-Wesley, 2004.
  • Software Engineering: A Practioner's Approach. R. Pressman. McGraw Hill Text, 2001.
  • Using UML: Software Engineering with Objects and Components. P. Stevens, R. Pooley. Addison-Wesley, 1999.
  • UML Distilled. M. Fowler, K. Scott. Addison-Wesley, 2000.
  • Objects, Components and Frameworks with UML, D. D'Souza, A. Wills. Addison-Wesley, 1999.
  • Designing Object-Oriented Software. R. Wirfs-Brock, B. Wilkerson, L. Wiener. Prentice Hall, 1990.
  • Design Patterns. Elements of Reusable Object-Oriented Software. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Addison Wesley, 1995.
  • Pattern-Oriented Software Architecture: A System of Patterns. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Wiley, 1996.
  • Head First Design Patterns. E. Freeman, E. Robson, K. Sierra, B. Bates. O’Reilly, 2004.
  • Software Architecture: Perspectives on an Emerging Discipline. M. Shaw, D. Garlan. Prentice-Hall, 1996.
  • Refactoring: Improving the Design of Existing Code. M. Fowler, K. Beck, W. Opdyke. Addison-Wesley, 1999.
  • Software Testing and Analysis: Process, Principles and Techniques. M. Pezze. Wiley. 2007.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators