{"title":"利用程序员敏感度对 FLeCCS 提出的共同变更候选方案进行排序","authors":"Abid Afsan Hamid, Md. Fizul Haque, Manishankar Mondal","doi":"10.1016/j.scico.2024.103216","DOIUrl":null,"url":null,"abstract":"<div><div>Identifying co-change candidates when making changes to a particular program entity is an important software engineering task which is known as change impact analysis. A number of techniques for detecting co-change candidates currently exist. Most of these techniques work considering file level, class level, or method level granularity. FLeCCS is a recently introduced technique that suggests co-change candidates considering even fragment level granularity. FLeCCS ranks its co-change candidates considering file proximity. However, programmer sensitivity might be an important factor while ranking co-change candidates. Intuitively, it is more comfortable for a programmer to change her own code rather than changing someone else's code. Considering this fact, we investigate ranking co-change candidates suggested by FLeCCS considering programmer sensitivity.</div><div>In our research, we have two main contributions: (1) proposing a composite ranking mechanism considering three things - file proximity, code similarity, and programmer sensitivity and (2) an empirical evaluation of our proposed mechanism by comparing it with file proximity ranking and similarity extent ranking mechanisms on thousands of revisions of five subject systems. We compare the ranking mechanisms in ranking the co-change candidates suggested by FLeCCS. According to our investigation incorporating four measures (Precision At K, Recall At K, Mean Average Precision and Mean Reciprocal Rank), composite ranking mechanism significantly outperforms the other two existing ranking mechanisms. Our findings are supported by statistical significance tests. We believe that our Proposed Composite Ranking mechanism is not only applicable to FLeCCS but also to other co-change suggestion techniques.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103216"},"PeriodicalIF":1.5000,"publicationDate":"2024-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Ranking co-change candidates suggested by FLeCCS using programmer sensitivity\",\"authors\":\"Abid Afsan Hamid, Md. Fizul Haque, Manishankar Mondal\",\"doi\":\"10.1016/j.scico.2024.103216\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><div>Identifying co-change candidates when making changes to a particular program entity is an important software engineering task which is known as change impact analysis. A number of techniques for detecting co-change candidates currently exist. Most of these techniques work considering file level, class level, or method level granularity. FLeCCS is a recently introduced technique that suggests co-change candidates considering even fragment level granularity. FLeCCS ranks its co-change candidates considering file proximity. However, programmer sensitivity might be an important factor while ranking co-change candidates. Intuitively, it is more comfortable for a programmer to change her own code rather than changing someone else's code. Considering this fact, we investigate ranking co-change candidates suggested by FLeCCS considering programmer sensitivity.</div><div>In our research, we have two main contributions: (1) proposing a composite ranking mechanism considering three things - file proximity, code similarity, and programmer sensitivity and (2) an empirical evaluation of our proposed mechanism by comparing it with file proximity ranking and similarity extent ranking mechanisms on thousands of revisions of five subject systems. We compare the ranking mechanisms in ranking the co-change candidates suggested by FLeCCS. According to our investigation incorporating four measures (Precision At K, Recall At K, Mean Average Precision and Mean Reciprocal Rank), composite ranking mechanism significantly outperforms the other two existing ranking mechanisms. Our findings are supported by statistical significance tests. We believe that our Proposed Composite Ranking mechanism is not only applicable to FLeCCS but also to other co-change suggestion techniques.</div></div>\",\"PeriodicalId\":49561,\"journal\":{\"name\":\"Science of Computer Programming\",\"volume\":\"240 \",\"pages\":\"Article 103216\"},\"PeriodicalIF\":1.5000,\"publicationDate\":\"2024-09-30\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Science of Computer Programming\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0167642324001394\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Science of Computer Programming","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0167642324001394","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
Ranking co-change candidates suggested by FLeCCS using programmer sensitivity
Identifying co-change candidates when making changes to a particular program entity is an important software engineering task which is known as change impact analysis. A number of techniques for detecting co-change candidates currently exist. Most of these techniques work considering file level, class level, or method level granularity. FLeCCS is a recently introduced technique that suggests co-change candidates considering even fragment level granularity. FLeCCS ranks its co-change candidates considering file proximity. However, programmer sensitivity might be an important factor while ranking co-change candidates. Intuitively, it is more comfortable for a programmer to change her own code rather than changing someone else's code. Considering this fact, we investigate ranking co-change candidates suggested by FLeCCS considering programmer sensitivity.
In our research, we have two main contributions: (1) proposing a composite ranking mechanism considering three things - file proximity, code similarity, and programmer sensitivity and (2) an empirical evaluation of our proposed mechanism by comparing it with file proximity ranking and similarity extent ranking mechanisms on thousands of revisions of five subject systems. We compare the ranking mechanisms in ranking the co-change candidates suggested by FLeCCS. According to our investigation incorporating four measures (Precision At K, Recall At K, Mean Average Precision and Mean Reciprocal Rank), composite ranking mechanism significantly outperforms the other two existing ranking mechanisms. Our findings are supported by statistical significance tests. We believe that our Proposed Composite Ranking mechanism is not only applicable to FLeCCS but also to other co-change suggestion techniques.
期刊介绍:
Science of Computer Programming is dedicated to the distribution of research results in the areas of software systems development, use and maintenance, including the software aspects of hardware design.
The journal has a wide scope ranging from the many facets of methodological foundations to the details of technical issues andthe aspects of industrial practice.
The subjects of interest to SCP cover the entire spectrum of methods for the entire life cycle of software systems, including
• Requirements, specification, design, validation, verification, coding, testing, maintenance, metrics and renovation of software;
• Design, implementation and evaluation of programming languages;
• Programming environments, development tools, visualisation and animation;
• Management of the development process;
• Human factors in software, software for social interaction, software for social computing;
• Cyber physical systems, and software for the interaction between the physical and the machine;
• Software aspects of infrastructure services, system administration, and network management.