MoMS: Multi-objective miniaturization of software

Smart phones, gaming consoles, and wireless routers are ubiquitous; the increasing diffusion of such devices with limited resources, together with society's unsatiated appetite for new applications, pushes companies to miniaturize their programs. Miniaturizing a program for a hand-held device is a time-consuming task often requiring complex decisions. Companies must accommodate conflicting constraints: customers' satisfaction with features may be in conflict with a device's limited storage, memory, or battery life. This paper proposes a process, MoMS, for the multi-objective miniaturization of software to help developers miniaturize programs while satisfying multiple conflicting constraints. It can be used to support the reverse engineering, next release problem, and porting of both software and product lines. The process directs the elicitation of customer pre-requirements, their mapping to program features, and the selection of the features to port. We present two case studies based on Pooka, an email client, and SIP Communicator, an instant messenger, to demonstrate that MoMS supports optimized miniaturization and helps reduce effort by 77%, on average, over a manual approach.

[1]  Yacov Y. Haimes,et al.  Multiobjective Decision Making: Theory and Methodology , 1983 .

[2]  T. Saaty,et al.  The Analytic Hierarchy Process , 1985 .

[3]  Hirotaka Nakayama,et al.  Theory of Multiobjective Optimization , 1985 .

[4]  Ali S. Hadi,et al.  Finding Groups in Data: An Introduction to Chster Analysis , 1991 .

[5]  L. R. Rasmussen,et al.  In information retrieval: data structures and algorithms , 1992 .

[6]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[7]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[8]  Kalyanmoy Deb,et al.  A combined genetic adaptive search (GeneAS) for engineering design , 1996 .

[9]  Joachim Karlsson,et al.  A Cost-Value Approach for Prioritizing Requirements , 1997, IEEE Softw..

[10]  Kalyanmoy Deb,et al.  A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II , 2000, PPSN.

[11]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[12]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[13]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[14]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[15]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[16]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[17]  Rania Hassan,et al.  Multi-Objective Optimization of Communication Satellites with Two-Branch Tournament Genetic Algorithm , 2003 .

[18]  Jyotirmaya Nanda Multiobjective Genetic Algorithm for Product Design , 2003 .

[19]  Daniel M. Berry,et al.  AbstFinder, A Prototype Natural Language Text Abstraction Finder for Use in Requirements Elicitation , 1997, Automated Software Engineering.

[20]  Giuliano Antoniol,et al.  A language-independent software renovation framework , 2005, J. Syst. Softw..

[21]  Gerardo Canfora,et al.  Developing Java-AWT thin-client applications for limited devices , 2005, IEEE Internet Computing.

[22]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[23]  Walter Binder,et al.  Using Bytecode Instruction Counting as Portable CPU Consumption Metric , 2006, Electron. Notes Theor. Comput. Sci..

[24]  Yann-Gaël Guéhéneuc,et al.  Feature Identification: An Epidemiological Metaphor , 2006, IEEE Transactions on Software Engineering.

[25]  Stéphane Ducasse,et al.  Analyzing software evolution through feature views , 2006, J. Softw. Maintenance Res. Pract..

[26]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

[27]  Joachim Karlsson,et al.  Improved practical support for large-scale requirements prioritising , 1997, Requirements Engineering.

[28]  Günther Ruhe,et al.  Bi-objective release planning for evolving software systems , 2007, ESEC-FSE '07.

[29]  Rainer Koschke,et al.  Extending the reflexion method for consolidating software variants into product lines , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[30]  Yann-Gaël Guéhéneuc,et al.  PREREQIR: Recovering Pre-Requirements via Cluster Analysis , 2008, 2008 15th Working Conference on Reverse Engineering.

[31]  Venkatesh Akella,et al.  Markov decision process (MDP) framework for optimizing software on mobile phones , 2009, EMSOFT '09.

[32]  Yuanyuan Zhang,et al.  A search based approach to fairness analysis in requirement assignments to aid negotiation, mediation and decision making , 2009, Requirements Engineering.

[33]  David Notkin,et al.  Using twinning to adapt programs to alternative APIs , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[34]  Qing Wang,et al.  Mining API mapping for language migration , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[35]  Jiafu Tang,et al.  A Multiobjective Optimization Approach for Product Line Design , 2011, IEEE Transactions on Engineering Management.