Sharing Developers' Mental Models through Source Code Annotations
Developers possess mental models containing information far beyond what is explicitly captured in the source code. Objectives: We investigate the possibility to use source code annotations to capture parts of the developers' mental models and later reuse them by other programmers during program comprehension and maintenance. Method: We performed two studies and a controlled experiment. Results: Developers' mental models overlap and thus can be shared. Possible use cases of shared annotations are hypotheses confirmation, feature location, obtaining new knowledge, finding relationships and maintenance notes. In the experiment, the presence of annotations reduced program comprehension and maintenance time by 34%. Conclusion: Annotations are a viable way to share programmers' thoughts.(original abstract)
- M. Nosál', "Leveraging program comprehension with concern-oriented projections," PhD thesis, Technical University of Košice, Apr. 2015.
- T. D. LaToza, G. Venolia, and R. DeLine, "Maintaining mental models: A study of developer work habits," in Proceedings of the 28th International Conference on Software Engineering, ser. ICSE '06. New York, NY, USA: ACM, 2006, pp. 492-501. http://dx.doi.org/10.1145/1134285.1134355
- W. Maalej, R. Tiarks, T. Roehm, and R. Koschke, "On the comprehension of program comprehension," ACM Trans. Softw. Eng. Methodol., vol. 23, no. 4, pp. 31:1-31:37, Sep. 2014. http://dx.doi.org/10.1145/2622669
- C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering. Springer Publishing Company, Incorporated, 2012.
- J. Porubän and M. Nosál', "Leveraging program comprehension with concern-oriented source code projections," in 3rd Symposium on Languages, Applications and Technologies, ser. OpenAccess Series in Informatics (OASIcs), M. J. V. Pereira, J. P. Leal, and A. Simões, Eds., vol. 38. Dagstuhl, Germany: Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2014, pp. 35-50. http: //dx.doi.org/10.4230/OASIcs.SLATE.2014.35
- J. Kollár, I. Halupka, S. Chodarev, and E. Pietriková, "pLERO: Language for grammar refactoring patterns," in Computer Science and Information Systems (FedCSIS), 2013 Federated Conference on, Sept 2013, pp. 1503-1510.
- P. Runeson and M. Höst, "Guidelines for conducting and reporting case study research in software engineering," Empirical Software Engineering, vol. 14, no. 2, pp. 131-164, 2009. http://dx.doi.org/10. 1007/s10664-008-9102-8
- A. Ko, T. LaToza, and M. Burnett, "A practical guide to controlled experiments of software engineering tools with human participants," Empirical Software Engineering, vol. 20, no. 1, pp. 110-141, 2015. http://dx.doi.org/10.1007/s10664-013-9279-3
- A. Jedlitschka and D. Pfahl, "Reporting guidelines for controlled experiments in software engineering," in Empirical Software Engineer- ing, 2005. 2005 International Symposium on, Nov 2005, pp. 95-104. http://dx.doi.org/10.1109/ISESE.2005.1541818
- A. Bariši´c, V. Amaral, M. Goulão, and B. Barroca, "Quality in use of domain-specific languages: A case study," in Proceedings of the 3rd ACM SIGPLAN Workshop on Evaluation and Usability of Programming Languages and Tools, ser. PLATEAU '11. New York, NY, USA: ACM, 2011, pp. 65-72. http://dx.doi.org/10.1145/2089155.2089170
- T. Kosar, M. Mernik, and J. C. Carver, "Program comprehension of domain-specific and general-purpose languages: comparison using a family of experiments," Empirical Software Engineering, vol. 17, no. 3, pp. 276-304, 2012. http://dx.doi.org/10.1007/s10664-011-9172-x
- J. Carver, L. Jaccheri, S. Morasca, and F. Shull, "A checklist for integrating student empirical studies with research and teaching goals," Empirical Software Engineering, vol. 15, no. 1, pp. 35-59, 2010. http://dx.doi.org/10.1007/s10664-009-9109-9
- A. Memon, I. Banerjee, and A. Nagarajan, "GUI ripping: reverse engineering of graphical user interfaces for testing," in Reverse Engineering, 2003. WCRE 2003. Proceedings. 10th Working Conference on, Nov 2003, pp. 260-269. http://dx.doi.org/10.1109/WCRE.2003.1287256
- J. Feigenspan, C. Kastner, J. Liebig, S. Apel, and S. Hanenberg, "Measuring programming experience," in Program Comprehension (ICPC), 2012 IEEE 20th International Conference on, June 2012, pp. 73-82. http://dx.doi.org/10.1109/ICPC.2012.6240511
- A. A. Neto and T. Conte, "Threats to validity and their control actions - results of a systematic literature review," Universidade Federal do Amazonas, Technical Report TR-USES-2014-0002, Mar. 2014.
- V. B. Kampenes, T. Dybå, J. E. Hannay, and D. I. K. Sjøberg, "A systematic review of quasi-experiments in software engineering," Information and Software Technology, vol. 51, no. 1, pp. 71 - 82, 2009, special Section - Most Cited Articles in 2002 and Regular Research Papers. http://dx.doi.org/10.1016/j.infsof.2008.04.006
- T. Reinikainen, I. Hammouda, J. Laiho, K. Koskimies, and T. Systa, "Software comprehension through concern-based queries," in Program Comprehension, 2007. ICPC '07. 15th IEEE International Conference on, June 2007, pp. 265-270. http://dx.doi.org/10.1109/ICPC.2007.36
- N. Niu, A. Mahmoud, and X. Yang, "Faceted navigation for software exploration," in Program Comprehension (ICPC), 2011 IEEE 19th International Conference on, June 2011, pp. 193-196. http://dx.doi.org/ 10.1109/ICPC.2011.18
- J. Porubän, M. Forgác, M. Sabo, and M. Bˇehálek, "Annotation based parser generator," Computer Science and Information Systems, vol. 7, no. 2, pp. 291-307, Apr. 2010. http://dx.doi.org/10.2298/CSIS1002291P
- D. Lakatoš, J. Porubän, and M. Bacíková, "Declarative specification of references in DSLs," in Computer Science and Information Systems (FedCSIS), 2013 Federated Conference on, Sept 2013, pp. 1527-1534.
- M. Sabo and J. Porubän, "Preserving design patterns using source code annotations," Journal of Computer Science and Control Systems, vol. 2, no. 1, pp. 53-56, 2009.
- W. Cazzola and E. Vacchi, "@Java: Bringing a richer annotation model to Java," Computer Languages, Systems & Structures, vol. 40, no. 1, pp. 2-18, 2014, special issue on the Programming Languages track at the 28th ACM Symposium on Applied Computing. http://dx.doi.org/10.1016/j.cl.2014.02.002
- M. Revelle, T. Broadbent, and D. Coppit, "Understanding concerns in software: insights gained from two case studies," in Program Comprehension, 2005. IWPC 2005. Proceedings. 13th International Workshop on, May 2005, pp. 23-32. http://dx.doi.org/10.1109/WPC.2005.43
- A. Guzzi, L. Hattori, M. Lanza, M. Pinzger, and A. van Deursen, "Collective code bookmarks for program comprehension," in Program Comprehension (ICPC), 2011 IEEE 19th International Conference on, June 2011, pp. 101-110. http://dx.doi.org/10.1109/ICPC.2011.19
- M. Storey, J. Ryall, R. Bull, D. Myers, and J. Singer, "TODO or to bug," in Software Engineering, 2008. ICSE '08. ACM/IEEE 30th International Conference on, May 2008, pp. 251-260. http://dx.doi.org/ 10.1145/1368088.1368123