TJTS5705 Product Line Engineering (5 cr)
Tweet text
Description
Product line engineering enables coordinated production of related products using the same underlaying base assets. A product line can target different customer needs, price points and feature combinations better and more efficiently than a single product or project outcome. It may also enable entry into market segments that would otherwise be inaccessible due to prohibitive development costs or resource constraints.
This course focuses on developing software systems within a product line: a group of product variants developed based on some commonalities. We describe frameworks and patterns to moving towards product line and implementing it – along with examples from practice and different industries, such as consumer products and industry automation. We also identify typical technical challenges and common pitfalls that can easily happen, like ‘clone-&-own’ as well as describe typical organizational structures in product line development.
Learning outcomes
After completion of the course, the student understands when it is better to consider developing a product line instead of developing a single product or a project. The students learn methods to consider and formulate product lines, their variation and commonalities, apply different mechanisms to manage variability, and basics for developing variants within a product line. The students can differentiate domain engineering part (defining the common within a product line) and what kind of methods can be applied to develop individual applications/products within a product line. The student understands the transition process from single product or project to product line engineering.
Additional information
Completion methods:
Participation in lectures, exercises, and practical project work. There is no exam.
Description of prerequisites
Tietojärjestelmätieteen kanditason (tai vastaavat) opinnot.
Participants are predominantly students pursuing master's degree studies. Students have an understanding of systems and software specification and design work and processes through their previous studies (e.g., information systems development, product development, software production and its management). Priority is given to information systems science students who have progressed furthest in their studies.
----------------------------------
Osallistujat ovat valtaosin maisteriopintoja suorittavia opiskelijoita. Opiskelijalla on edeltävien opintojen kautta ymmärrystä järjestelmien ja ohjelmistojen määrittely- ja suunnittelutyöstä ja prosessista (esim. tietojärjestelmien kehitys, tuotekehitys, ohjelmistotuotanto ja sen johtaminen). Etusijalla ovat opinnoissa pisimmälle edenneet tietojärjestelmätieteen opiskelijat.
Study materials
Kirjallisuus:
Isabel John, Jens Knodel, Theresa Lehner, and Dirk Muthig. 2006. A Practical Guide to Product Line Scoping. In Proceedings of the 10th International on Software Product Line Conference (SPLC '06). IEEE Computer Society, USA, 3–12.
Kang, K.C. and Cohen, S.G. and Hess, J.A. and Novak, W.E. and Peterson, A.S., "Feature-oriented domain analysis (FODA) feasibility study", Technical Report CMU/SEI-90-TR-021, SEI, Carnegie Mellon University, November 1990, https://www.sei.cmu.edu/documents/1011/1990_005_001_15872.pdf
Weiss, David M., and Chi Tau Robert Lai. Software product-line engineering: a family-based software development process. Addison-Wesley Longman Publishing Co., Inc., 1999.
Bosch, J., Design and use of software architectures: Adopting and evolving a product-line approach. Addison-Wesley, 2000.
Pohl et al., Software Product Line Engineering : Foundations, Principles, and Techniques, Springer 2005
Pohl, K., Metzger, A., Software Product Lines. In: Gruhn, V., Striemer, R. (eds) The Essence of Software Engineering. Springer, Cham, 2018. https://doi.org/10.1007/978-3-319-73897-0_11
K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000