Reengineering legacy software products into software product line based on automatic variability analysis

In order to deliver the various and short time-to-market software products to customers, the paradigm of Software Product Line (SPL) represents a new endeavor to the software development. To migrate a family of legacy software products into SPL for effective reuse, one has to understand commonality and variability among existing products variants. The existing techniques rely on manual identification and modeling of variability, and the analysis based on those techniques is performed at several mutually independent levels of abstraction. We propose a sandwich approach that consolidates feature knowledge from top-down domain analysis with bottom-up analysis of code similarities in subject software products. Our proposed method integrates model differencing, clone detection, and information retrieval techniques, which can provide a systematic means to reengineer the legacy software products into SPL based on automatic variability analysis.

[1]  Zhenchang Xing,et al.  CloneDiff: semantic differencing of clones , 2011, IWSC '11.

[2]  Zhenchang Xing,et al.  Understanding Feature Evolution in a Family of Product Variants , 2010, 2010 17th Working Conference on Reverse Engineering.

[3]  Stan Jarzabek,et al.  Avoiding Some Common Preprocessing Pitfalls with Feature Queries , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[4]  Stan Jarzabek,et al.  A Case Study of Variation Mechanism in an Industrial Product Line , 2009, ICSR.

[5]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[6]  Miryung Kim,et al.  Discovering and representing systematic code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[7]  Zhendong Su,et al.  Scalable detection of semantic clones , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[8]  Denys Poshyvanyk,et al.  Feature location via information retrieval based filtering of a single scenario execution trace , 2007, ASE.

[9]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[10]  Norman Wilde,et al.  Industrial tools for the feature location problem: an exploratory study , 2006, J. Softw. Maintenance Res. Pract..

[11]  Norman Wilde,et al.  Industrial tools for the feature location problem: an exploratory study: Practice Articles , 2006 .

[12]  Andrew David Eisenberg,et al.  Dynamic feature traces: finding features in unfamiliar code , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[13]  Stan Jarzabek,et al.  Detecting higher-level similarity patterns in programs , 2005, ESEC/FSE-13.

[14]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, Seminal Contributions to Information Systems Engineering.

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

[16]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[17]  Charles W. Krueger,et al.  Practical Strategies and Techniques for Adopting Software Product Lines , 2002, ICSR.

[18]  Linda M. Northrop,et al.  Software Product Lines: Practices and Patterns , 2001 .

[19]  Zhenchang Xing GenericDiff : A General Framework for Model Comparison , 2010 .

[20]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[21]  Linda M. Northrop,et al.  Software product lines - practices and patterns , 2002, SEI series in software engineering.