Recovering Variability Information from Source Code of Clone-and-Own Software Systems

被引:1
|
作者
Schlie, Alexander [1 ]
Schulze, Sandro [2 ]
Schaefer, Ina [1 ]
机构
[1] TU Braunschweig, Braunschweig, Germany
[2] Univ Magdeburg, Magdeburg, Germany
关键词
clone-and-own; recovering; variability; source code; 150% model;
D O I
10.1145/3377024.3377034
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Clone-and-own prevails as an ad-hoc reuse strategy that addresses changing requirements by copying and modifying existing system variants. Proper documentation is typically not cherished and knowledge about common and varying parts between individual variants, denoted their variability information, is lost with a growing system family. With overall maintainability impaired in the longrun, software product lines (SPLs) or concepts thereof, can be a remedy. However, migrating a system family towards structured reuse requires a prior recovery of the systems' variability information. For software systems resulting from clone-and-own, this information is not explicitly available and recovering it remains an open challenge. We aim to bridge this gap and propose a fine-grained metric and analysis procedure, which compares software systems to the extent of individual statements including their nesting. By that, we recover variability information from software systems written in imperative programming languages. Moreover, we create a software family representation of all analyzed systems, called a 150% model, which contains implementation artifacts and their identified variability information. We demonstrate the feasibility of our approach using two case studies implemented in Java and show our approach to exhibit a good performance and the 150% model to precisely capture variability information of the analyzed systems.
引用
收藏
页数:9
相关论文
共 50 条
  • [31] An Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques
    Yoshida, Norihiro
    Higo, Yoshiki
    Kusumoto, Shinji
    Inoue, Katsuro
    2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 310 - 313
  • [32] Empirically Examining the Quality of Source Code in Engineering Software Systems
    Carter, Jens K.
    Alnaeli, Saleh M.
    Vaz, Warren S.
    2018 IEEE INTERNATIONAL CONFERENCE ON ELECTRO/INFORMATION TECHNOLOGY (EIT), 2018, : 641 - 644
  • [33] An experience report on analyzing industrial software systems using code clone detection techniques
    Yoshida, Norihiro
    Higo, Yoshiki
    Kusumoto, Shinji
    Inoue, Katsuro
    Proceedings - Asia-Pacific Software Engineering Conference, APSEC, 2012, 1 : 310 - 313
  • [34] Exploring Possibilities to Analyse Microblogs for Dependability Information in Variability-intensive Open Source Software Systems
    Galster, Matthias
    Tofan, Dan
    2013 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW), 2013, : 321 - 325
  • [35] From Source Code Analysis to Static Software Testing
    Wang Wei
    Han Lilong
    Meng Yunxiu
    Bai He
    PROCEEDINGS OF 2014 IEEE WORKSHOP ON ADVANCED RESEARCH AND TECHNOLOGY IN INDUSTRY APPLICATIONS (WARTIA), 2014, : 1280 - 1283
  • [36] Extracting models from source code in software modernization
    Javier Luis Cánovas Izquierdo
    Jesús García Molina
    Software & Systems Modeling, 2014, 13 : 713 - 734
  • [37] Extracting models from source code in software modernization
    Canovas Izquierdo, Javier Luis
    Garcia Molina, Jesus
    SOFTWARE AND SYSTEMS MODELING, 2014, 13 (02): : 713 - 734
  • [38] Approximating the Evolution History of Software from Source Code
    Kanda, Tetsuya
    Ishio, Takashi
    Inoue, Katsuro
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2015, E98D (06): : 1185 - 1193
  • [39] Developing an information systems infrastructure with open source software
    Fitzgerald, B
    Kenny, T
    IEEE SOFTWARE, 2004, 21 (01) : 50 - +
  • [40] Open Source Software and Modern Information Systems: A Tutorial
    Wasserman, Anthony, I
    ADVANCED INFORMATION SYSTEMS ENGINEERING, CAISE 2020, 2020, 12127 : 569 - 570