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

Kamil Rosiak, Oliver Urbaniak, Alexander Schlie, C. Seidl, Ina Schaefer
{"title":"Analyzing Variability in 25 Years of Industrial Legacy Software: An Experience Report","authors":"Kamil Rosiak, Oliver Urbaniak, Alexander Schlie, C. Seidl, Ina Schaefer","doi":"10.1145/3307630.3342410","DOIUrl":null,"url":null,"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.","PeriodicalId":424711,"journal":{"name":"Proceedings of the 23rd International Systems and Software Product Line Conference - Volume B","volume":"97 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-09-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 23rd International Systems and Software Product Line Conference - Volume B","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3307630.3342410","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

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.
分析25年工业遗留软件的可变性:一份经验报告
在某些领域,安全关键型软件系统可以运行数十年。为了满足不断变化的需求,通常通过复制和修改现有的系统变体来创建新的系统变体。在长期运行中,软件质量和整体可维护性受到不利影响。由于安全性至关重要,一个变体的故障可能需要对整个组合进行评估。因此,工程师需要维护几十年前用Pascal等编程语言实现的遗留系统。软件产品线(SPLs)可以作为一种补救措施,但是迁移遗留系统需要对它们进行事先的分析和比较。对于工业软件系统来说,这仍然是一个挑战。在本文中,我们介绍了一个比较过程和可定制的指标,以允许对Pascal模块进行细粒度的比较,以达到单个表达式的水平。通过这种方式,我们确定了的公共部分,同时也捕获了模块之间的不同部分,作为向anspl实践过渡的基础。此外,我们使用七个Pascal模块的案例研究证明了我们方法的可行性,这些模块共有13,271行代码,具有25年的进化史,并展示了我们的过程是快速和精确的。此外,我们还详细阐述了Pascal模块的案例研究和细节特点,这些模块具有四分之一世纪的进化历史。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信