{"title":"特征依赖演化:基于预处理器系统的探索性研究","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":"{\"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}","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}
On the Evolution of Feature Dependencies: An Exploratory Study of Preprocessor-based Systems
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.