On the Evolution of Feature Dependencies: An Exploratory Study of Preprocessor-based Systems

Raiza Oliveira, B. Cafeo, André C. Hora
{"title":"On the Evolution of Feature Dependencies: An Exploratory Study of Preprocessor-based Systems","authors":"Raiza Oliveira, B. Cafeo, André C. Hora","doi":"10.1145/3302333.3302342","DOIUrl":null,"url":null,"abstract":"Feature dependencies are the subject of several studies and have been approached with different goals, such as software quality. However, we still It is not known whether feature dependencies are prone to change during the lifetime of configurable systems. To minimize this lack, we perform an empirical study to assess the evolution of feature dependencies. We focus in feature dependencies at the source-code level written with preprocessor directives, for this, we analyze the history of feature dependency changes in 15 preprocessor based systems written in C. In order to identify the most common types of changes on feature dependencies, we propose a catalog of possible changes in these dependencies. We found out that about 9% of the feature dependencies between two subsequent versions are added, and less of 4% are excluded. Whereas, about 87% of the dependencies between two subsequent versions are preserved, and 14% has some kind of structural modification. Besides, the results show that functions are 3x more prone to change than variables in feature dependencies. In summary, our results show that: (i) feature dependencies prone to be preserved during the evolution; (ii) about 1/5 of the dependencies preserved between two versions have structural changes; (iii) functions changes more than variables; (iv) developers may have to deal with 1/4 of the dependencies on each evolution of the configurable system.","PeriodicalId":300036,"journal":{"name":"Proceedings of the 13th International Workshop on Variability Modelling of Software-Intensive Systems","volume":"66 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-02-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 13th International Workshop on Variability Modelling of Software-Intensive Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3302333.3302342","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

Abstract

Feature dependencies are the subject of several studies and have been approached with different goals, such as software quality. However, we still It is not known whether feature dependencies are prone to change during the lifetime of configurable systems. To minimize this lack, we perform an empirical study to assess the evolution of feature dependencies. We focus in feature dependencies at the source-code level written with preprocessor directives, for this, we analyze the history of feature dependency changes in 15 preprocessor based systems written in C. In order to identify the most common types of changes on feature dependencies, we propose a catalog of possible changes in these dependencies. We found out that about 9% of the feature dependencies between two subsequent versions are added, and less of 4% are excluded. Whereas, about 87% of the dependencies between two subsequent versions are preserved, and 14% has some kind of structural modification. Besides, the results show that functions are 3x more prone to change than variables in feature dependencies. In summary, our results show that: (i) feature dependencies prone to be preserved during the evolution; (ii) about 1/5 of the dependencies preserved between two versions have structural changes; (iii) functions changes more than variables; (iv) developers may have to deal with 1/4 of the dependencies on each evolution of the configurable system.
特征依赖演化:基于预处理器系统的探索性研究
特性依赖关系是几个研究的主题,并且有不同的目标,例如软件质量。然而,我们仍然不知道在可配置系统的生命周期中,功能依赖是否容易发生变化。为了减少这种不足,我们进行了一项实证研究来评估特征依赖的演变。我们专注于用预处理器指令编写的源代码级别的功能依赖,为此,我们分析了用c编写的15个基于预处理器的系统中功能依赖变化的历史。为了识别功能依赖上最常见的变化类型,我们提出了这些依赖中可能发生的变化的目录。我们发现,两个后续版本之间大约9%的特性依赖被添加,而被排除的不到4%。然而,大约87%的两个后续版本之间的依赖关系被保留,14%有某种结构修改。此外,结果表明,函数比特征依赖项中的变量更容易发生变化。综上所述,我们的研究结果表明:(1)特征依赖关系在进化过程中容易被保留;(ii)在两个版本之间保留的依赖项中,约有1/5在结构上发生了变化;(三)函数变化大于变量变化;(iv)开发人员可能不得不处理可配置系统的每个演进的1/4的依赖。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信