Recommending Mechanisms for Modularizing Mobile Software Variabilities

Software Product Lines (SPLs) encompass a family of software systems developed from reusable assets. One issue during SPL maintenance is the decision about which mechanism should be used to restructure variabilities aiming at improving the modularity of the SPL artifacts. Due to the great variety of mechanisms (inheritance, configuration files, aspect-oriented programming), selecting the incorrect ones may produce negative effects on the cost to evolve the SPL. To reduce this problem, the authors propose a Decision Model to help developers to choose mechanisms to restructure variabilities in SPLs. Their model was developed based on two domains: mobile test scripts and J2ME games. When using the model, developers may improve the variabilities’ modularity, the SPLs design, and remove bad smells such as cloned code.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[3]  Cristina Gacek,et al.  Implementing product line variabilities , 2001, SSR '01.

[4]  Mahbubur Rahman Syed,et al.  Handbook of research on modern systems analysis and design technologies and applications , 2008 .

[5]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[6]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[7]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[8]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[9]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, SBES.

[10]  Cláudio Sant'Anna,et al.  On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[11]  Dirk Muthig,et al.  A case study in refactoring a legacy component for reuse in a product line , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[12]  Ossi Taipale,et al.  Software Testing as a Service: Perceptions from Practice , 2013 .

[13]  Sven Apel,et al.  When to use features and aspects?: a case study , 2006, GPCE '06.

[14]  Scott Tilley,et al.  Software Testing in the Cloud: Perspectives on an Emerging Discipline , 2012 .

[15]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.