skip to main content
10.1145/3307630.3342410acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Analyzing Variability in 25 Years of Industrial Legacy Software: An Experience Report

Published: 09 September 2019 Publication History

Abstract

In certain domains, safety-critical software systems may remain operational for decades. To comply with changing requirements, new system variants are commonly created by copying and modifying existing ones. Typically denoted clone-and-own, software quality and overall maintainability are adversely affected in the long-run. With safety being pivotal, a fault in one variant may require the entire portfolio to be assessed. Thus, engineers need to maintain legacy systems dating back decades, implemented in programming languages such as Pascal. Software product lines (SPLs) can be a remedy but migrating legacy systems requires their prior analysis and comparison. For industrial software systems, this remains a challenge.
In this paper, we introduce a comparison procedure and customizable metrics to allow for a fine-grained comparison of Pascal modules to the level of individual expressions. By that, we identify common parts of while also capturing different parts between modules as a basis for a transition towards anSPLs practice. Moreover, we demonstrate the feasibility of our approach using a case study with seven Pascal modules totaling 13,271 lines of code with an evolution-history of 25 years and show our procedure to be fast and precise. Furthermore, we elaborate on the case study and detail peculiarities of the Pascal modules, which are characteristic for an evolution-history of a quarter century.

References

[1]
W. J. Cullyer and B. A. Wickmann. 1991. The choice of computer languages for use in safety-critical systems. Software Engineering Journal 6, 2 (March 1991), 51--58.
[2]
F.J Damerau. 1964. A technique for computer detection and correction of spelling errors. Commun. ACM 7, 3 (1964), 171--176.
[3]
F. Deissenboeck, B. Hummel, E. Juergens, M. Pfaehler, and B. Schaetz. 2010. Model Clone Detection in Practice. In Proc. of the Intl. Workshop on Software Clones (IWSC). ACM, 57--64.
[4]
Y. Dubinsky, J. Rubin, T. Berger, S. Duszynski, M. Becker, and K. Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In Proc. of the European Conference on Software Maintenance and Reengineering (CSMR). IEEE, 25--34.
[5]
Z. Durdik, B. Klatt, H. Koziolek, K. Krogmann, J. Stammel, and R. Weiss. 2012. Sustainability guidelines for long-living software systems. In 2012 28th IEEE International Conference on Software Maintenance (ICSM). 517--526.
[6]
S. Duszynski, J. Knodel, and M. Becker. 2011. Analyzing the Source Code of Multiple Software Variants for Reuse Potential. In 2011 18th Working Conference on Reverse Engineering. 303--307.
[7]
B. Hummel, E. Juergens, and D. Steidl. 2011. Index-based Model Clone Detection. In Proceedings of the 5th International Workshop on Software Clones (IWSC '11). 21--27.
[8]
Intel Corporation 1985. Pascal-86 User's Guide. Intel Corporation. Order Number 121539-003.
[9]
T. Kamiya, S. Kusumoto, and K. Inoue. 2002. CCFinder: a multilinguistic tokenbased code clone detection system for large scale source code. IEEE Transactions on Software Engineering 28, 7 (2002), 654--670.
[10]
M. Kelter, U. and Schmidt. 2008. Comparing State Machines. ACM, 1--6.
[11]
U. Kelter, J. Wehren, and J. Niere. 2005. A Generic Difference Algorithm for UML Models. Software Engineering 64, 105--116 (2005), 4--9.
[12]
J. A. Kim. 2010. Case Study of Software Product Line Engineering in Insurance Product. In Proc. of the Intl. Software Product Line Conference (SPLC). Springer, 495--495.
[13]
C. Krueger. 2002. Easing the Transition to Software Mass Customization. In Software Product-Family Engineering, F van der Linden (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 282--293.
[14]
R. Lapeña, M. Ballarin, and C. Cetina. 2016. Towards Clone-and-own Support: Locating Relevant Methods in Legacy Products. In Proc. of the Intl. Software Product Line Conference (SPLC). ACM, 194--203.
[15]
V.I Levenshtein. 1966. Binary codes capable of correcting deletions, insertions, and reversals. In Soviet physics doklady, Vol. 10. 707--710.
[16]
F. J. van der Linden, K. Schmid, and E. Rommes. 2007. Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer.
[17]
J. Martinez, T. Ziadi, T. F Bissyande, J. Klein, and Y. Le Traon. 2015. Automating the extraction of model-based software product lines from model variants (T). In 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE). 396--406.
[18]
M. Schulze, J. Mauersberger, and D. Beuche. 2013. Functional Safety and Variability: Can it be brought together?. In Proc. of the Intl. Software Product Line Conference (SPLC). ACM.
[19]
Nam H. Pham, Hoan Anh Nguyen, Tung Thanh Nguyen, Jafar M. Al-Kofahi, and Tien N. Nguyen. 2009. Complete and Accurate Clone Detection in Graph-based Models. In Proc. of the Intl. Conference on Software Engineering (ICSE). IEEE.
[20]
K. Pohl, G. Böckle, and Linden, F. J. van der. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer.
[21]
G.P. Radha. 1999. Pascal Programming. New Age International (P) Limited.
[22]
C. Riva and C. Del Rosso. 2003. Experiences with Software Product Family Evolution. In Proc. of the Joint Workshop on Software Evolution and Intl. Workshop on Principles of Software Evolution (IWPSE-EVOL). IEEE, 161--169.
[23]
J.S. Rohl and H.J. Barrett. 1990. Programming Via Pascal. Cambridge University Press.
[24]
J. Rubin and M. Chechik. 2012. Combining Related Products into Product Lines. In Proc. of the Intl. Conference on Fundamental Approaches to Software Engineering (FASE). Springer, 285--300.
[25]
J. Rubin and M. Chechik. 2013. Quality of Merge-Refactorings for Product Lines. In Proc. of the Intl. Conference on Fundamental Approaches to Software Engineering (FASE). Springer, 83--98.
[26]
A. Schlie, D. Wille, L. Cleophas, and I. Schaefer. 2017. Clustering Variation Points in MATLAB/Simulink Models Using Reverse Signal Propagation Analysis. In Proc. of the Intl. Conference on Software Reuse (ICSR). Springer, 77--94.
[27]
A. Schlie, D. Wille, S. Schulze, L. Cleophas, and I. Schaefer. 2017. Detecting Variability in MATLAB/Simulink Models: An Industry-Inspired Technique and Its Evaluation. In Proc. of the Intl. Software Product Line Conference (SPLC). ACM, 215--224.
[28]
S. She, R. Lotufo, A. Berger, T. and Wąsowski, and K. Czarnecki. 2011. Reverse engineering feature models. In Proceedings of the 33rd International Conference on Software Engineering. ACM, 461--470.
[29]
G.B. Shelly, T.J. Cashman, and S.G. Forsythe. 1987. Turbo Pascal programming. Boyd & Fraser.
[30]
SO/IEC 1991 1991. Pascal ISO 7185:1990. SO/IEC 1991.
[31]
K. J. Sullivan, W.G. Griswold, Y. Cai, and B. Hallen. 2001. The Structure and Value of Modularity in Software Design. In Proc. of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE). ACM, 99--108.
[32]
M. T. Valente, V. Borges, and L. Passos. 2012. A Semi-Automatic Approach for Extracting Software Product Lines. IEEE Transactions on Software Engineering 38, 4 (July 2012), 737--754.
[33]
D. Wille. 2014. Managing Lots of Models: The FaMine Approach. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 817--819.
[34]
D. Wille. 2019. Custom-Tailored Product Line Extraction. Ph.D. Dissertation.
[35]
D Wille, D Tiede, S Schulze, C Seidl, and I Schaefer. 2016. Identifying Variability in Object-Oriented Code Using Model-Based Code Mining. In Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications, Tiziana Margaria and Bernhard Steffen (Eds.).
[36]
D. Yu, J. Yang, X. Chen, and J. Chen. 2019. Detecting Java Code Clones Based on Bytecode Sequence Alignment. IEEE Access 7 (2019), 22421--22433.
[37]
X. Zhang, Ø. Haugen, and B. Moller-Pedersen. 2011. Model comparison to synthesize a model-driven software product line. In 2011 15th International Software Product Line Conference. IEEE, 90--99.

Cited By

View all
  • (2025)Syntax-preserving program slicing for C-based software product linesJournal of Systems and Software10.1016/j.jss.2024.112255219:COnline publication date: 1-Jan-2025
  • (2023)The e4CompareFrameworkProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B10.1145/3579028.3609012(34-38)Online publication date: 28-Aug-2023
  • (2022)Synchronizing software variantsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547053(82-89)Online publication date: 12-Sep-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '19: Proceedings of the 23rd International Systems and Software Product Line Conference - Volume B
September 2019
252 pages
ISBN:9781450366687
DOI:10.1145/3307630
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 September 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. clone-and-own
  2. legacy software
  3. software prodct line
  4. variability

Qualifiers

  • Research-article

Funding Sources

Conference

SPLC 2019

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Syntax-preserving program slicing for C-based software product linesJournal of Systems and Software10.1016/j.jss.2024.112255219:COnline publication date: 1-Jan-2025
  • (2023)The e4CompareFrameworkProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B10.1145/3579028.3609012(34-38)Online publication date: 28-Aug-2023
  • (2022)Synchronizing software variantsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547053(82-89)Online publication date: 12-Sep-2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media