J. Krüger, Alex Mikulinski, Sandro Schulze, Thomas Leich, Gunter Saake
{"title":"DSDGen: Extracting Documentation to Comprehend Fork Merges","authors":"J. Krüger, Alex Mikulinski, Sandro Schulze, Thomas Leich, Gunter Saake","doi":"10.1145/3579028.3609015","DOIUrl":null,"url":null,"abstract":"Developers use the forking mechanisms of modern social-coding platforms to evolve and maintain their systems. Using such mechanisms often leads to a larger number of independent variants with individual features or bug fixes that the developers may want to merge after a longer period of co-evolution. At this point, they may have forgotten (or never had) knowledge about differences between the variants. Tackling this problem, we built on the idea of on-demand documentation to develop a technique that automatically extracts and presents information for merging a class from two forks. We implemented our technique as a prototype called DSD-Gen and evaluated it through an experimental simulation with 10 students who should comprehend two real-world merge requests. Using DSDGen instead of code diffs only, more of the students could correctly comprehend the merges (6 / 10 versus 2 / 10) within a similar time. The students actively inspected the additional information provided by DSDGen and used it to comprehend the differences between the forked classes. So, DSDGen can help developers recover information for comprehending the differences caused by fork co-evolution during merges, with our results indicating opportunities for future research and improvements.","PeriodicalId":340233,"journal":{"name":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","volume":"37 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume B","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3579028.3609015","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Developers use the forking mechanisms of modern social-coding platforms to evolve and maintain their systems. Using such mechanisms often leads to a larger number of independent variants with individual features or bug fixes that the developers may want to merge after a longer period of co-evolution. At this point, they may have forgotten (or never had) knowledge about differences between the variants. Tackling this problem, we built on the idea of on-demand documentation to develop a technique that automatically extracts and presents information for merging a class from two forks. We implemented our technique as a prototype called DSD-Gen and evaluated it through an experimental simulation with 10 students who should comprehend two real-world merge requests. Using DSDGen instead of code diffs only, more of the students could correctly comprehend the merges (6 / 10 versus 2 / 10) within a similar time. The students actively inspected the additional information provided by DSDGen and used it to comprehend the differences between the forked classes. So, DSDGen can help developers recover information for comprehending the differences caused by fork co-evolution during merges, with our results indicating opportunities for future research and improvements.