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 (2020)
Dear students,
the lecture SPL will begin shortly and -- due to the current situation -- will be fully virtual for the first time. 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 do not need to enroll in the tutorial, as we wil only use the lecture.
- Every week, a new video lecture will be uploaded. Shortly after, an exercise sheet will be uploaded, which is voluntary and need to be worked on independently. In addition, we plan to manage the forum to clarify and discuss questions that you may have.
- There will be no solutions for the exercises. Instead, we provide weekly voluntary (!) virtual office hours to answer questions with respect to the lecture and current assignment. We will use BigBlueButton.
- 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 have not yet been finalized. We will provide further information as soon as possible
- Please restrict from questions until the first week, as further information answering them may follow during the next week!
Dates
Videos of the lectures and assignments are provided by the following times.
- Lecture: Wednesday, 12:00 am (Frist time on 22th of April)
- Assignments: Wednesday, 12:00 pm (Frist assignment on 29th of April)
Virtual consultation hour: Wednesday, ca 10:00 am - 11:00 am, beginning with 29th of April
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.