Software Product Lines: Concepts & Implementation
Module number: INF-SSE-34
Lecturer: Lukas Linsbauer
Associates: Alexander Knüppel
Important: Digital teaching and learning for the upcoming summer term (2021)
Dear students,
the lecture SPL will begin shortly and -- due to the current situation -- will be fully virtual. To ensure a smooth process, here are some initial information (might be extended amid the next two weeks):
- We use stud.ip as the main communication tool. Please enroll for the lecture named Software Product-lines, which is now open. All announcements, lectures, and assigments will be distributed via stud.ip. You also need to enroll in the tutorial, which we use together with the lecture.
- Every week, there will be a live lecture. Shortly after, an exercise sheet will be uploaded, which will be discussed in the tutorial, but should be worked on independently. In addition, we plan to manage the forum to clarify and discuss questions that you may have.
- To pass the module, non-graded work has to be completed. There will be further information in the first week. Work has to be completed at home and the delivery will be via version management. The goal is to create you own product line from scratch with FeatureIDE.
- The examination modalities will imply an oral exam.
- Please restrict from questions until the first week, as further information answering them may follow during the next week!
Dates
The lectures and assignments are live at the following appointments.
- Lecture: Wed, 09:45 - 11:15 (BigBlueButton-Room in stud.ip, Lecture)
- Assignments: Tue, 09:45 - 11:15 (BigBlueButton-Room in stud.ip, Assignment/Tutorial)
Virtual consultation hour: tba
First lecture: will be announced soon!
Requirements
This lecture is primarily targeted to master students in (economic) computer science and IST. Moreover, good programming knowledge (in Java) is essential to follow the provided programming examples and successfully complete all assignments.
Content
- Motivation on difficulties coming with custom-tailored systems.
- Modeling and implementation of software product lines.
- Preliminary concepts (e.g., Separation of Concerns, Information Hiding, Modularization, Strucutred Programming and Design)
- Overview of advanced programming concepts, such as
- Components
- Design Patterns
- Meta-Object-Protocols
- Preprocessor-based Variability
- Aspect-oriented Programming
- Collaborations and Feature-oriented Programming
- Feature-Interaction, Testing, Analysis
Goals
- Understanding limitations of traditional programming paradigms w.r.t. the software development of information systems
- Overview of various techniques for implementing software product lines
- Knowledge of modern programming paradigms suitable for the development of custom-tailored software systems
- Attaining qualifications to valuate, select, and apply advanced programming techniques.
Material
Slides will be provided via Stud.IP.
Literature
- Bücher zur Vorlesung (erhätlich in der Bibliothek):
- P. Clements, L. Northrop: Software Product Lines: Practices and Patterns. Addison- Wesley, 2002.
- K. Pohl, G. Böckle, F. van der Linden: Software Product Line Engineering: Foundations, Principles and Techniques. Springer 2005.