Program Readability: Procedures Versus Comments
IEEE Transactions on Software Engineering
Programming languages should NOT have comment statements
ACM SIGPLAN Notices
Understanding someone else's code: analysis of experiences
Journal of Systems and Software
A Model for Software Product Quality
IEEE Transactions on Software Engineering
Improving computer program readability to aid modification
Communications of the ACM
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
Recovering documentation-to-source-code traceability links using latent semantic indexing
Proceedings of the 25th International Conference on Software Engineering
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
Mining Version Histories to Guide Software Changes
IEEE Transactions on Software Engineering
Facilitating software evolution research with kenyon
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
The Conceptual Cohesion of Classes
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Classifying Change Types for Qualifying Change Couplings
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Leveraged Quality Assessment using Information Retrieval Techniques
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Improving Comprehensibility of Source Code via Traceability Information: a Controlled Experiment
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Examining the evolution of code comments in PostgreSQL
Proceedings of the 2006 international workshop on Mining software repositories
Code Quality: The Open Source Perspective (Effective Software Development Series)
Code Quality: The Open Source Perspective (Effective Software Development Series)
ACM Transactions on Software Engineering and Methodology (TOSEM)
Three empirical studies on estimating the design effort of Web applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
/*icomment: bugs or bad comments?*/
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
How documentation evolves over time
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
IEEE Software
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
Eclipse: a platform for integrating development tools
IBM Systems Journal
Effective communication of software development knowledge through community portals
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Using structural and textual information to capture feature coupling in object-oriented software
Empirical Software Engineering
Concept location using formal concept analysis and information retrieval
ACM Transactions on Software Engineering and Methodology (TOSEM)
Risk chain prediction metrics for predicting fault proneness in object oriented systems
Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology
Hi-index | 0.00 |
Source code comments are a valuable instrument to preserve design decisions and to communicate the intent of the code to programmers and maintainers. Nevertheless, commenting source code and keeping comments up-to-date is often neglected for reasons of time or programmers obliviousness. In this paper, we investigate the question whether developers comment their code and to what extent they add comments or adapt them when they evolve the code. We present an approach to associate comments with source code entities to track their co-evolution over multiple versions. A set of heuristics are used to decide whether a comment is associated with its preceding or its succeeding source code entity. We analyzed the co-evolution of code and comments in eight different open source and closed source software systems. We found with statistical significance that (1) the relative amount of comments and source code grows at about the same rate; (2) the type of a source code entity, such as a method declaration or an if-statement, has a significant influence on whether or not it gets commented; (3) in six out of the eight systems, code and comments co-evolve in 90% of the cases; and (4) surprisingly, API changes and comments do not co-evolve but they are re-documented in a later revision. As a result, our approach enables a quantitative assessment of the commenting process in a software system. We can, therefore, leverage the results to provide feedback during development to increase the awareness of when to add comments or when to adapt comments because of source code changes.