DOI QR코드

DOI QR Code

Extracting of Features in Code Changes of Existing System for Reengineering to Product Line

  • Yoon, Seonghye (Dept. of Computer Science & Engineering, Sogang University and Dept. of Computer Science, Kookmin University) ;
  • Park, Sooyong (Dept. of Computer Science & Engineering, Sogang University) ;
  • Hwang, Mansoo (School of IT Convergence Engineering, Shinhan University)
  • Received : 2016.03.02
  • Accepted : 2016.05.12
  • Published : 2016.05.31

Abstract

Software maintenance becomes extremely difficult, especially caused by multiple versions in project-based or customer-oriented software development methodology. For reducing the maintenance cost, reengineering to software product line can be a solution to the software which either is a family of products nevertheless little different functionalities or are customized for each different customer's requirement. At an initial stage of the reengineering, the most important activity in software product line is feature extraction with respect to commonality and variability from the existing system due to verifying functional coverage. Several researchers have studied to extract features. They considered only a single version in a single product. However, this is an obstacle to classify the commonality and variability of features. Therefore, we propose a method for systematically extracting features from source code and its change history considering several versions of the existing system. It enables us to represent functionalities reflecting developer's intention, and to clarify the rationale of variation.

Keywords

References

  1. W. Codenie, N. Gonzalez-Deleito, J. Deleu, V. Blagojevic, P. Kuvaja, and J. Simila, "Managing Flexibility and Variability: A Road to Competitive Advantage." Taylor and Francis, pp. 269-313, 2009
  2. C. W. Krueger, "Easing the transition to software mass customization," in PFE '01: Revised Papers from the 4th International Workshop on Software Product-Family Engineering. London, UK: Springer, pp. 282-293, 2001
  3. S. Demeyer, S. Ducasse, and O. Nierstrasz, Object-Oriented Reengineering Patterns - Version of 2009-09-28. Square Bracket Associates, 2009.
  4. R. Glass, Facts and Fallacies of Software Engineering. Addison-Wesley, 2003.
  5. M. P. Robillard and G. C. Murphy, "Representing concerns in source code," ACM Trans. Softw. Eng. Methodol., vol. 16, no. 1, Feb. 2007.
  6. M. P. Robillard, "Topology analysis of software dependencies," ACM Trans. Softw. Eng. Methodol., vol. 17, no. 4, pp. 18:1-18:36, Aug. 2008.
  7. K. Kobayashi, M. Kamimura, K. Kato, K. Yano, and A. Matsuo, "Feature-gathering dependency-based software clustering using dedication and modularity," in ICSM, 2012, pp. 462-471, 2012
  8. T. Eisenbarth, R. Koschke, and D. Simon, "Locating features in source code," IEEE Trans. Softw. Eng., vol. 29, no. 3, pp. 210-224, Mar. 2003. https://doi.org/10.1109/TSE.2003.1183929
  9. B. Adams, Z. M. Jiang, and A. E. Hassan, "Identifying crosscutting concerns using historical code changes," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ser. ICSE '10, pp. 305-314, 2010
  10. Kang, K.C. and Cohen, S.G. and Hess, J.A. and Novak, W.E. and Peterson, A.S., "Feature-oriented domain analysis (FODA) feasibility study", Technical Report CMU/SEI-90-TR-021, SEI, Carnegie Mellon University, November 1990
  11. C. Nunes, A. Garcia, C. Lucena, and J. Lee, "History-sensitive heuristics for recovery of features in code of evolving program families," in Proceedings of the 16th International Software Product Line Conference - Volume 1, ser. SPLC '12, pp. 136-145, 2012.
  12. Subclipse. http://subclipse.tigris.org/