SPLC 2018 Challenge

Apo-Games – A Case Study for Reverse Engineering Variability from Cloned Java Variants

Jacob Krüger, Harz University of Applied Science, Otto-von-Guericke-University, Germany
Wolfram Fenske, Otto-von-Guericke-University, Germany
Thomas Thüm, Technische Universität Braunschweig, Germany
Dirk Aporius, Eudemonia Solutions AG, Germany
Gunter Saake, Otto-von-Guericke-University, Germany
Thomas Leich, Harz University of Applied Sciences, METOP GmbH, Germany
Software-product-line engineering is an approach to systematically manage reusable software features and has been widely adopted in practice. Still, in most cases, organizations start with a single product that they clone and modify when new customer requirements arise (a.k.a. clone-and-own). With an increasing number of variants, maintenance can become challenging and organizations may consider migrating towards a software product line, which is referred to as extractive approach. While this is the most common approach in practice, techniques to extract variability from cloned variants still fall short in several regards. In particular, this accounts for the low accuracy of automated analyses and refactoring, our limited understanding of the costs involved, and the high manual effort. A main reason for these limitations is the lack of realistic case studies. To tackle this problem, we provide a set of cloned variants. In this paper, we characterize these variants and challenge the research community to apply techniques for reverse engineering feature models, feature location, code smell analysis, architecture recovery, and the migration towards a software product line. By evaluating solutions with the developer of these variants, we aim to contribute to a larger body of knowledge on this real-world case study.


Multi-Objective Optimization for Reverse Engineering of Apo-Games Feature Models

Willian D. F. Mendonça, Wesley K. G. Assunção and Lukas Linsbauer
SPLC 2018 Solution
Software Product Lines Engineering (SPLE) is a software development approach intended for the development and maintenance of variable systems, i.e. systems that exist in many different variants. In the long run SPLE has many advantages. However, it requires a large upfront investment of time and money, which is why in practice Software Product Lines (SPLs) are rarely developed from scratch. Instead, they are often built using an extractive approach by which a set of existing system variants is consolidated (i.e. reverse engineered) into an SPL. A crucial part of this process is the construction of a variability model like a Feature Model (FM) that describes the common and variable parts of the system variants. In this paper we apply an approach for reverse engineering feature models based on a multi-objective optimization algorithm to the given challenge of constructing a feature model for a set of game variants and we present the results.
Solution paper

Recovering the Product Line Architecture of the Apo-Games

Crescencio Lima, Ivan Machado, Eduardo Almeida and Christina Chavez
SPLC 2018 Solution
Software Product Line (SPL) engineering is a paradigm for the development of a family of products based on the systematic reuse of artifacts. Although its increasing adoption, organizations often start with a single system and use ad-hoc techniques such as cloneand-own to create new systems by performing small changes and adaptations to meet customers’ needs. However, as the number of clones raises over time, it becomes a hard task to maintain and support all the systems. This scenario happened in the Apo-Games projects and adopting SPL Engineering can address these issues. Product Line Architecture (PLA) is one of the key assets to allow the success of SPL development. In this paper, we apply our approach to recover the PLA of the Apo-Games projects by using the source code of a set of Android and Java clones.We provide a set of information to support the development of the Apo-Games SPL. We identified that the Android and Java projects have similar PLAs.
Solution paper


References outside the SPLC Challenge track

Apo-Games case study has its own entry in the ESPLA Catalog (extractive SPL adoption catalog of case studies).

Previous to the Challenge paper, we can find two main references to the case study.
Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line
Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake
SANER 2017, International Conference on Software Analysis, Evolution and Reengineering, 2017

Finding Lost Features in Cloned Systems
Jacob Krüger, Louis Nell, Wolfram Fenske, Gunter Saake, Thomas Leich
SPLC 2017 REVE workshop, International Systems and Software Product Line Conference, 2017

After the Challenge paper, we can also find this reference outside of the SPLC Challenge track
Towards an Automated Product Line Architecture Recovery: The Apo-Games Case Study
Crescencio Lima, Wesley K. G. Assunção, Jabier Martinez, Christina von Flach G. Chavez, Willian D. F. Mendonça
SBCARS '18 Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse, Pages 33-42, Sao Carlos, Brazil — September 17 - 21, 2018