Abstract
Having available a high quality documentation is critical for software projects. This is why documentation tools such as Javadoc are so popular. As for code, documentation should be reused when possible to increase developer productivity and simplify maintenance. In this paper, we perform an empirical study of duplications in JavaDoc documentation on a corpus of seven famous Java APIs. Our results show that copy-pastes of JavaDoc documentation tags are abundant in our corpus. We also show that these copy-pastes are caused by four different kinds of relations in the underlying source code. In addition, we show that popular documentation tools do not provide any reuse mechanism to cope with these relations. Finally, we make a proposal for a simple but efficient automatic reuse mechanism.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Buse, R.P., Weimer, W.R.: Automatic documentation inference for exceptions. In: Proceedings of the 2008 International Symposium on Software Testing and Analysis, pp. 273–282. ACM (2008)
Charpentier, A., Falleri, J.R., Lo, D., Réveillère, L.: An empirical assessment of Bellon’s clone benchmark. In: Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, EASE 2015, pp. 20:1–20:10. ACM, Nanjing (2015)
Childs, B., Sametinger, J.: Literate programming and documentation reuse. In: Proceedings of Fourth International Conference on Software Reuse, pp. 205–214. IEEE (1996)
Correia, F.F., Aguiar, A., Ferreira, H.S., Flores, N.: Patterns for consistent software documentation. In: Proceedings of the 16th Conference on Pattern Languages of Programs, p. 12. ACM (2009)
Dagenais, B., Robillard, M.P.: Creating and evolving developer documentation: understanding the decisions of open source contributors. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 127–136. ACM (2010)
Efron, B., Tibshirani, R.J.: An Introduction to the Bootstrap. Chapman & Hall, New York (1993)
Falleri, J.R., Morandat, F., Blanc, X., Martinez, M., Monperrus, M.: Fine-grained and accurate source code differencing. In: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, ASE 2014, pp. 313–324. ACM, New York (2014)
Fluri, B., Würsch, M., Gall, H.C.: Do code and comments co-evolve? on the relation between source code and comment changes. In: 14th Working Conference on Reverse Engineering, WCRE 2007, pp. 70–79. IEEE (2007)
Forward, A., Lethbridge, T.C.: The relevance of software documentation, tools and technologies: a survey. In: Proceedings of the 2002 ACM Symposium on Document Engineering, DocEng 2002, NY, USA, pp. 26–33. ACM, New York (2002)
Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations, 1st edn. Springer-Verlag, Secaucus (1997)
Juergens, E., Deissenboeck, F., Hummel, B., Wagner, S.: Do code clones matter? In: IEEE 31st International Conference on Software Engineering, ICSE 2009, pp. 485–495, May 2009
Kramer, D.: API documentation from source code comments: a case study of Javadoc. In: Proceedings of the 17th Annual International Conference on Computer Documentation, pp. 147–153. ACM (1999)
Lakhotia, A.: Understanding someone else’s code: analysis of experiences. J. Syst. Softw. 23(3), 269–275 (1993)
Lethbridge, T.C., Singer, J., Forward, A.: How software engineers use documentation: the state of the practice. IEEE Softw. 20(6), 35–39 (2003)
McBurney, P.W., McMillan, C.: Automatic documentation generation via source code summarization of method context. In: Proceedings of the 22nd International Conference on Program Comprehension, pp. 279–290. ACM (2014)
Monperrus, M., Eichberg, M., Tekes, E., Mezini, M.: What should developers be aware of? an empirical study on the directives of API documentation. Empirical Softw. Eng. 17(6), 703–737 (2012)
Parnas, D.L.: A technique for software module specification with examples. Commun. ACM 15(5), 330–336 (1972)
Parnas, D.L.: Software aging. In: Proceedings of the 16th International Conference on Software Engineering, pp. 279–287. IEEE Computer Society Press (1994)
Pierce, R., Tilley, S.: Automatically connecting documentation to code with rose. In: Proceedings of the 20th Annual International Conference on Computer Documentation, pp. 157–163. ACM (2002)
Pollack, M.: Code generation using Javadoc. JavaWorld (2000). http://www.javaworld.com/javaworld/jw-08-2000/jw-0818-javadoc.html
Robillard, M.P., Chhetri, Y.B.: Recommending reference API documentation. Empirical Softw. Eng. 20(6), 1558–1586 (2015)
de Souza, S.C.B., Anquetil, N., de Oliveira, K.M.: A study of the documentation essential to software maintenance. In: Proceedings of the 23rd Annual International Conference on Design of Communication: Documenting & Designing for Pervasive Information, SIGDOC 2005, pp. 68–75. ACM, New York (2005)
Teyton, C., Falleri, J.R., Palyart, M., Blanc, X.: A study of library migrations in Java. J. Softw. Evol. Process 26(11), 1030–1052 (2014)
Van Heesch, D.: Doxygen (2004)
Van De Vanter, M.L.: The documentary structure of source code. Inf. Softw. Technol. 44(13), 767–782 (2002). Special Issue on Source Code Analysis and Manipulation (SCAM)
Zhong, H., Su, Z.: Detecting API documentation errors. In: ACM SIGPLAN Notices, vol. 48, pp. 803–816. ACM (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Oumaziz, M.A., Charpentier, A., Falleri, JR., Blanc, X. (2017). Documentation Reuse: Hot or Not? An Empirical Study. In: Botterweck, G., Werner, C. (eds) Mastering Scale and Complexity in Software Reuse. ICSR 2017. Lecture Notes in Computer Science(), vol 10221. Springer, Cham. https://doi.org/10.1007/978-3-319-56856-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-56856-0_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-56855-3
Online ISBN: 978-3-319-56856-0
eBook Packages: Computer ScienceComputer Science (R0)