Migration of Cloned Product Variants into an Annotative Software Product Line: An experimental case study on Android applications - NILSSON, SEBASTIAN; ÅKESSON, JONAS (My University, 2019)
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.
Keywords: software product line; software-product-line engineering; annotationbased; migration