一句话:研究代码演化中函数文档的间接依赖普遍性,并基于提交日志分析更新模式以建议文档更新。
软件系统演化时,一个点的修改可能需要在其他点同步修改以保持一致,但函数相关文档常被忽视,导致文档不一致。本文研究函数文档间接或隐式依赖于关联函数之外实体的普遍性。作者分析了 11 个 Java 开源仓库中的 Javadoc 注释,发现 62% 的受研究注释依赖于其他实体;并全面分析 1288 条提交日志中的文档更新,归纳更新模式以解释文档依赖的成因。这些模式可用于在仓库发生变更时,建议哪些文档应当被更新。
A software system evolves over time due to factors such as bug-fixes, enhancements, optimizations and deprecation. As entities interact in a software repository, the alterations made at one point may require the changes to be reflected at various other points to maintain consistency. However, often less attention is given to making appropriate changes to the documentation associated with the functions. Inconsistent documentation is undesirable, since documentation serves as a useful source of information about the functionality. This paper presents a study on the prevalence of function documentations that are indirectly or implicitly dependent on entities other than the associated function. We observe a substantial presence of such documentations, with 62% of the studied Javadoc comments being dependent on other entities, as studied in 11 open-source repositories implemented in Java. We comprehensively analyze the nature of documentation updates made in 1288 commit logs and study patterns to reason about the cause of dependency in the documentation. Our findings from the observed patterns may be applied to suggest documentations that should be updated on making a change in the repository.
@inproceedings{SondhiGPRKP21,
title = {On Indirectly Dependent Documentation in the Context of Code Evolution: A Study},
author = {Devika Sondhi and Avyakt Gupta and Salil Purandare and Ankit Rana and Deepanshu Kaushal and Rahul Purandare},
booktitle = {ICSE},
year = {2021},
doi = {10.1109/icse43902.2021.00134}
}