Reverse Engineering Variability from Product Variants
by Lukas Linsbauer
Abstract:
Companies often develop a set of similar software product variants that have some parts in common while differing in other parts. The number of such variants often increases over time by copying existing ones and adapting them to fit new requirements. At some point the maintenance of existing variants and the creation of new ones becomes unmanagable. Changes to features or bug fixes have to be replicated in every variant that implements the feature which is error prone and costly to do for a large number of variants. Also, when creating new variants it becomes difficult to decide which assets from what existing variants to reuse. One option would be to refactor such a set of related software product variants into a single, configurable system representation or even develop them like this from the start. But this takes a very long time to do and requires a major upfront investment of time and money which companies often cannot afford. Also they then lack the exibility when it comes to new requirements and product variants that the system was not initially designed for. Therefore this thesis aims to provide a partial solution to all these challenges by providing automated support for reverse engineering variability from existing software product variants and guiding reuse of assets, easing their maintenance and supporting the creation of new variants. For this purpose traces from features as well as feature interactions to implementation artifacts of arbitrary types (source code, models, documentation, etc.) are established automatically by comparing existing product variants with each other. Additionally dependencies between implementation assets are extracted that can serve as some form of variability model.
Reference:
Lukas Linsbauer, "Reverse Engineering Variability from Product Variants", Master's thesis, Johannes Kepler University (JKU), Linz, Austria, 2013.
Bibtex Entry:
@MastersThesis{Linsbauer2013, Title = {Reverse Engineering Variability from Product Variants}, Author = {Lukas Linsbauer}, School = {Johannes Kepler University (JKU), Linz, Austria}, Year = {2013}, Abstract = {Companies often develop a set of similar software product variants that have some parts in common while differing in other parts. The number of such variants often increases over time by copying existing ones and adapting them to fit new requirements. At some point the maintenance of existing variants and the creation of new ones becomes unmanagable. Changes to features or bug fixes have to be replicated in every variant that implements the feature which is error prone and costly to do for a large number of variants. Also, when creating new variants it becomes difficult to decide which assets from what existing variants to reuse. One option would be to refactor such a set of related software product variants into a single, configurable system representation or even develop them like this from the start. But this takes a very long time to do and requires a major upfront investment of time and money which companies often cannot afford. Also they then lack the exibility when it comes to new requirements and product variants that the system was not initially designed for. Therefore this thesis aims to provide a partial solution to all these challenges by providing automated support for reverse engineering variability from existing software product variants and guiding reuse of assets, easing their maintenance and supporting the creation of new variants. For this purpose traces from features as well as feature interactions to implementation artifacts of arbitrary types (source code, models, documentation, etc.) are established automatically by comparing existing product variants with each other. Additionally dependencies between implementation assets are extracted that can serve as some form of variability model.}, File = {:MSc Theses\\2013 Lukas Linsbauer\\thesis.pdf:PDF}, Owner = {AK117794}, Timestamp = {2015.09.22} }
Powered by bibtexbrowser