News

Assignment 1 Clarifications

Written on 29.10.24 by Lukas Abelt

Dear Students,

We have uploaded an updated version of the first Assignment, which contains some minor fixes and clarifications.

Mainly, it fixes some laptop models having a wrong indicated amount of RAM, as well as some clarifications in the description of Task 1.

Please make sure that you… Read more

Dear Students,

We have uploaded an updated version of the first Assignment, which contains some minor fixes and clarifications.

Mainly, it fixes some laptop models having a wrong indicated amount of RAM, as well as some clarifications in the description of Task 1.

Please make sure that you are refering to the latest version of the Assignment Sheet when working on your solution.

Sorry for any inconveniences.

Best,

the SE Team

Assignment 1 Released

Written on 28.10.24 by Lukas Abelt

Dear Students,

We have just released the first assignment sheet. You can find it in the "Materials" section in the CMS.

We also provide you with a LaTeX template you have to use for submission. The assignment sheet contains all further information on how and when to hand in your… Read more

Dear Students,

We have just released the first assignment sheet. You can find it in the "Materials" section in the CMS.

We also provide you with a LaTeX template you have to use for submission. The assignment sheet contains all further information on how and when to hand in your submission.

Any further questions regarding the assignment can be asked in the forum or the tutorials.


Best,
the SE Team

Welcome to SE

Written on 11.10.24 by Sebastian Böhm

Dear students,

welcome to the Software Engineering course.

The first lecture will take place next Tuesday (2024-10-15) at 12:15 in the Günter-Hotz lecture hall (GHH).
During this lecture, we also explain all organizational matters regarding this year's course.

Note that the lectures will… Read more

Dear students,

welcome to the Software Engineering course.

The first lecture will take place next Tuesday (2024-10-15) at 12:15 in the Günter-Hotz lecture hall (GHH).
During this lecture, we also explain all organizational matters regarding this year's course.

Note that the lectures will take place in-person only; there is no possibility for online participation or lecture recordings.
We will, however, upload all lecture slides to the CMS.

Any remaining questions can also be asked in our forum.
The link for that can be found in the menu bar on the CMS.

Best,
the SE-team

Software Engineering Wintersemester 2024/25

 

About the Lecture

The lecture Software Engineering covers a broad range of topics in software engineering with a special focus on software variability, configuration, generation, and optimization. It builds on basic programming and software engineering concepts, as taught in the lectures Programming 1 & 2 and the SE Lab (Softwarepraktikum). Topics that are covered include:

  • Domain analysis, feature modelling
  • Automated reasoning about software configuration using SAT solvers
  • Runtime parameters, design patterns, frameworks
  • Version control, build systems, preprocessors, parametric polymorphism, traits / mixins
  • Expression problem, preplanning problem, code scattering & tangling, tyranny of the dominant decomposition, inheritance vs. delegation vs. trait / mixin composition
  • Feature interaction problem (structural, control- & data-flow, behavioral, non-functional feature interactions)
  • Variability-aware analysis and variational program representation (with applications to type checking and static program analysis)
  • Sampling (random, coverage)
  • Machine learning for software performance prediction and optimization

 

Lecture Format

The lecture will be held in presence in the GHH lecture hall. For the tutorials, we are currently planning a hybrid format (in person + online). More information will be announced closer to the start of the semester. All relevant dates will be in the course's timetable.

 

Registration

To get access to exercise sheets and other course material you need to register via this CMS course.

 

Prerequisites

  • Knowledge of programming concepts (as taught in the lectures Programming 1 and Programming 2)

  • Basic knowledge of software processes, design, and testing (as taught and applied in the lecture SE Lab/Softwarepraktikum)

 

Assignments / Exam

Beside the lecture and weekly practical exercises, there will be a number of assignments in the form of mini-projects for each student to work on (every two to three weeks). The assignments will be assessed based on the principles covered in the lecture. Passing all assignments is a prerequisite for taking the final written exam. The written exam will be graded. Further examination details will be announced by the lecturer at the beginning of the course.

In short:

  • Passing the assignments (prerequisite for the written exam)

  • Passing the written exam

 

Literature

  • Feature-Oriented Software Product Lines: Concepts and Implementation. S. Apel, et al., Springer, 2013.

  • Generative Programming: Methods, Tools, and Applications: Methods, Techniques and Applications. K. Czarnecki, et al., Addison-Wesley, 2000.

  • Mastering Software Variability with FeatureIDE. J. Meinicke, et al., Springer, 2017.

  • Types and Programming Languages. Benjamin C. Pierce, The MIT Press, 2002.

  • Programmierung - eine Einführung in die Informatik mit Standard ML. Gert Smolka, Oldenbourg Verlag, 2011.

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