On the Practice of Modeling Software Variability

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
School of Science | Doctoral thesis (article-based) | Defence date: 2019-02-08
Date
2019
Major/Subject
Mcode
Degree programme
Language
en
Pages
65 + app. 99
Series
Aalto University publication series DOCTORAL DISSERTATIONS, 10/2019
Abstract
A software product line has become an established software engineering approach to developing a set of products that vary from each other but share a common set of assets and adhere to a common software architecture. Variability is a means to design the differences between the products in a software product line. Variability is the ability of a software system or an artifact to be efficiently extended, changed, customized, or configured for use in a particular context. Variability has been studied in recent years and several variability models have been proposed. However, the use especially from industry has not been addressed extensively.  This thesis addresses the problem of what kinds of models to use to represent the variability in a software product line. As the overall research approach, we applied Design Science, in which variability models are interventions in a prescription. We applied the literature review and case study as the research methods.  We study literature about the existing variability models, as well as evidence about the use of these variability models. We provide descriptive accounts of variability models in three cases in industry. On the basis of literature and a case study, we describe a set of considerations to be taken into account when representing variability.  We identified tens of different variability models. These variability models cover the activities, artifacts and phases of software engineering. We represent that several kinds of existing variability models and in-house approaches have been provided with empirical evidence about use, but no model is clearly become an established practice. The considerations explicate design decisions to be considered when using a variability model to represent the variability of an SPL, emphasizing that the applications of a variability model depend on the specific context. These considerations can also be relevant to those who develop variability models to address the needs of practice.

Ohjelmistotuoteperheet ovat vakiintunut ohjelmistotuotannon kehitystapa joukolle erilaisia tuotteille, joissa uudelleenkäytetään ohjelmistoja noudattaen samaa arkkitehtuuria. Varioituvuuden avulla saavutetaan tuoteperheen tuotteiden erovaisuudet. Varioituvuus on järjestelmän tai artifaktan ominaisuus tehokkaaseen laajentamiseen, muuttamiseen, kustomointiin tai konfigurointiin tiettyä tarvetta varten. Varioituvuutta on tutkittu viime aikoina ja erityisesti erilaisia varioituvuuden mallitustapoja on esitetty. Käytöstä erityisesti teollisuudessa näyttää kuitenkin olevan vähän tutkimustuloksia.  Tämän työn tutkimusongelma käsittelee millaisia mallitustapoja tulisi käyttää tuoteperheen varioituvuuden esittämiseen. Tutkimus noudattaa konstruktiivista tutkimusmetodologiaa. Tutkimusmenetelminä käytämme kirjallisuuskatsausta ja tapaustutkimusta.Tutkimme varioituvuuden mallitustapoja kirjallisuudessa sekä niiden raportoitua käyttöä. Kuvailemme myös varioituuden mallittamista kolmessa tuoteperheessä tapaustutkimuksissa. Varioituuden mallittamiseen esitämme joukon näkökohtia jotka tulisi huomioida kirjallisuuden ja tapaustutkimusten perusteella.  Identifioimme kymmeniä erilaisia varioituvuuden mallitustapoja. Nämä mallitustavat kattavat eri ohjelmistokehityksen eri vaiheet, tekemiset ja artifaktat. Useille mallitustavoille sekä itse kehitetyille mallitustavoille on myös osoitettu käyttöä ja näin ollen arvoa käytännölle, joskaan mikään tapa ei ole vakiintunut.  Näkökohdat puolestaan esittävät päätöksiä joita varioituvuutta mallittaessa täytyy tehdä, korostaen että varioituvuuden voi mallittaa monella tapaa riippuen tilanteesta ja kontekstista. Nämä näkökulmat ovat merkittäviä myös varioituvuus mallien tutkimukselle, jotta tutkimus pystyy vastaamaan käytännön tarpeisiin.
Description
The summary part of this dissertation is published under CC-BY licence.
Supervising professor
Kauppinen, Marjo, Prof., Aalto University, Department of Computer Science, Finland
Thesis advisor
Männistö, Tomi, Prof., University of Helsinki, Finland
Keywords
variability, modeling, software product line, varioituvuus, mallitus, ohjelmistotuoteperhe.
Other note
Parts
  • [Publication 1]: Mikko Raatikainen, Juha Tiihonen, Tomi Männistö. Software Product Lines and Variability Modeling: A Tertiary Study. The Journal of Systems and Software, Volume 149, p. 485-510, 2019.
    DOI: 10.1016/j.jss.2018.12.027  View at publisher
  • [Publication 2]: Mikko Raatikainen, Timo Soininen, Tomi Männistö, and Antti Mattila. Characterizing Configurable Software Product Families and their Derivation. Software Process Improvement and Practice, Volume 10, Issue 1, p. 41-60, 2005.
    DOI: 10.1002/spip.211 View at publisher
  • [Publication 3]: Varvana Myllärniemi, Mikko Raatikainen, Tomi Männistö. Inter-organisational Approach in Rapid Software Product Family Development — A Case Study. In International Conference on Software Reuse, Italy, p. 73-86, 2006.
    DOI: 10.1007/11763864_6 View at publisher
  • [Publication 4]: Juha Savolainen, Mikko Raatikainen, Tomi Männistö. Eight Practical Considerations in Applying Feature Modeling for Product Lines. In International Conference on Software Reuse, South Korea, p. 192-206, 2011.
    DOI: 10.1007/978-3-642-21347-2_15 View at publisher
  • [Publication 5]: Juha Tiihonen, Mikko Raatikainen, Varvana Myllärniemi, Tomi Männistö. Carrying Ideas from Knowledge-based Configuration to Software Product Lines. In International Conference on Software Reuse, Cyprus,p. 55-62, 2016.
    DOI: 10.1007%2F978-3-319-35122-3_4 View at publisher
  • [Errata file]: Errata Mikko J. Raatikainen DD-10/2019 publication P1
Citation