Migration of Cloned Product Variants into an Annotative Software Product Line: An experimental case study on Android applications
Date
Authors
Type
Examensarbete för masterexamen
Model builders
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Software-product-line engineering (SPLE) is a systematic way of using software engineering
methods, tools and techniques in order to create a collection of similar
software-based systems. The idea of SPLE is that a product is defined based on
the features of the product. The features are identified and structurally defined in
the code. This is called software product line (SPL). A new variant of a product
is created by selecting a certain set of features to fulfill the requirements of that
product.
A common problem with SPLE is that companies often have trouble in deciding
whether or not to perform an SPL migration, since they are unsure of the costs
of doing so. Even if they decide to perform a migration, they do not know which
approach is the best for them. These issues are the motivation for this thesis.
We have performed a migration on a set of Android games into an annotative SPL.
An annotative SPL means that features are defined in the code in form of annotations
and that the products are included in a common code base. The games
were written by using a clone-and-own approach, meaning that products are cloned
and modified to match some requirements. We migrated the games to an SPL by
extracting the common elements of these games and annotating them as features in
the code.
Each activity that we performed was logged with a measurement approach that
we designed with another thesis group that did a migration with another approach
called composition-based. This thesis presents what activities should be performed
when doing a migration to an annotative SPL. It also presents the characteristics and
costs of these activities, and there is also a comparison between using an annotationbased
approach and a composition-based approach.
This study finds that there are several different activities that should be involved
when performing a migration. The activities have different characteristics in terms
of complexity, importance and timescale. By comparing to the composition-based
approach, we found that the annotation-based approach is easier to start with when
you are a novice to the SPL topic and that it also cost more to perform in terms of
time.
Description
Keywords
software product line, software-product-line engineering, annotationbased, migration