Logo PTI
Polish Information Processing Society
Logo FedCSIS

Annals of Computer Science and Information Systems, Volume 11

Proceedings of the 2017 Federated Conference on Computer Science and Information Systems

Labeling Source Code with Metadata: A Survey and Taxonomy

,

DOI: http://dx.doi.org/10.15439/2017F229

Citation: Proceedings of the 2017 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 11, pages 721729 ()

Full text

Abstract. Source code is a primary artifact where programmers are looking when they try to comprehend a program. However, to improve program comprehension efficiency, tools often associate parts of source code with metadata collected from static and dynamic analysis, communication artifacts and many other sources. In this article, we present a systematic mapping study of approaches and tools labeling source code elements with metadata and presenting them to developers in various forms. We selected 25 from more than 2,000 articles and categorized them. A taxonomy with four dimensions - source, target, presentation and persistence - was formed. Based on the survey results, we also identified interesting future research challenges.

References

  1. F. Beck, O. Moseler, S. Diehl, and G. Rey, “In situ understanding of performance bottlenecks through visually augmented code,” in Program Comprehension (ICPC), 2013 IEEE 21st International Conference on, May 2013. http://dx.doi.org/10.1109/ICPC.2013.6613834 pp. 63–72.
  2. K. Petersen, S. Vakkalanka, and L. Kuzniarz, “Guidelines for conducting systematic mapping studies in software engineering: An update,” Information and Software Technology, vol. 64, p. to appear, 2015. http://dx.doi.org/10.1016/j.infsof.2015.03.007
  3. B. Kitchenham and S. Charters, “Guidelines for performing systematic literature reviews in software engineering,” Keele University and Durham University Joint Report, Technical Report EBSE-2007-01, Jul. 2007. [Online]. Available: http://community.dur.ac.uk/ebse/guidelines.php
  4. D. Sjøberg, J. Hannay, O. Hansen, V. Kampenes, A. Karahasanović, N.-K. Liborg, and A. Rekdal, “A survey of controlled experiments in software engineering,” Software Engineering, IEEE Transactions on, vol. 31, no. 9, pp. 733–753, Sep. 2005. http://dx.doi.org/10.1109/TSE.2005.97
  5. H. Zhang, M. A. Babar, and P. Tell, “Identifying relevant studies in software engineering,” Information and Software Technology, vol. 53, no. 6, pp. 625–637, 2011. http://dx.doi.org/10.1016/j.infsof.2010.12.010 Special Section: Best papers from the APSECBest papers from the APSEC.
  6. B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk, “Feature location in source code: a taxonomy and survey,” Journal of Software: Evolution and Process, vol. 25, no. 1, pp. 53–95, 2013. http://dx.doi.org/10.1002/smr.567
  7. M. Sulír and J. Porubän, “A quantitative study of Java software buildability,” in Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools, ser. PLATEAU 2016. New York, NY, USA: ACM, 2016. http://dx.doi.org/10.1145/3001878.3001882 pp. 17–25.
  8. B. Walters, M. Falcone, A. Shibble, and B. Sharif, “Towards an eye-tracking enabled IDE for software traceability tasks,” in Traceability in Emerging Forms of Software Engineering (TEFSE), 2013 International Workshop on, May 2013. http://dx.doi.org/10.1109/TEFSE.2013.6620154 pp. 51–54.
  9. G. Bavota, L. Colangelo, A. De Lucia, S. Fusco, R. Oliveto, and A. Panichella, “TraceME: Traceability management in eclipse,” in Software Maintenance (ICSM), 2012 28th IEEE International Conference on, Sep. 2012. http://dx.doi.org/10.1109/ICSM.2012.6405343 pp. 642–645.
  10. M. Harward, W. Irwin, and N. Churcher, “In situ software visualisation,” in Software Engineering Conference (ASWEC), 2010 21st Australian, Apr. 2010. http://dx.doi.org/10.1109/ASWEC.2010.18 pp. 171–180.
  11. B. Swift, A. Sorensen, H. Gardner, and J. Hosking, “Visual code annotations for cyberphysical programming,” in Live Programming (LIVE), 2013 1st International Workshop on, May 2013. doi: 10.1109/LIVE.2013.6617345 pp. 27–30.
  12. D. Beyer and A. Fararooy, “DepDigger: A tool for detecting complex low-level dependencies,” in Program Comprehension (ICPC), 2010 IEEE 18th International Conference on, Jun. 2010. doi: 10.1109/ICPC.2010.52 pp. 40–41.
  13. D. Röthlisberger, M. Härry, W. Binder, P. Moret, D. Ansaloni, A. Villazón, and O. Nierstrasz, “Exploiting dynamic information in IDEs improves speed and correctness of software maintenance tasks,” Software Engineering, IEEE Transactions on, vol. 38, no. 3, pp. 579–591, May 2012. http://dx.doi.org/10.1109/TSE.2011.42
  14. M. P. Robillard and F. Weigand-Warr, “ConcernMapper: Simple view-based separation of scattered concerns,” in Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology eXchange, ser. eclipse ’05. New York, NY, USA: ACM, 2005. http://dx.doi.org/10.1145/1117696.1117710 pp. 65–69.
  15. U. Dekel and J. Herbsleb, “Improving API documentation usability with knowledge pushing,” in Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on, May 2009. doi: 10.1109/ICSE.2009.5070532 pp. 320–330.
  16. 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, Jun. 2011. http://dx.doi.org/10.1109/ICPC.2011.19 pp. 101–110.
  17. P. Schugerl, J. Rilling, and P. Charland, “Beyond generated software documentation – a Web 2.0 perspective,” in Software Maintenance, 2009. ICSM 2009. IEEE International Conference on, Sep. 2009. http://dx.doi.org/10.1109/ICSM.2009.5306385 pp. 547–550.
  18. 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. http://dx.doi.org/10.1109/WPC.2005.43 pp. 23–32.
  19. M.-A. Storey, L.-T. Cheng, I. Bull, and P. Rigby, “Shared waypoints and social tagging to support collaboration in software development,” in Proceedings of the 2006 20th Anniversary Conference on Computer Supported Cooperative Work, ser. CSCW ’06. New York, NY, USA: ACM, 2006. http://dx.doi.org/10.1145/1180875.1180906 pp. 195–198.
  20. F. Beck, S. Gulan, B. Biegel, S. Baltes, and D. Weiskopf, “RegViz: Visual debugging of regular expressions,” in Companion Proceedings of the 36th International Conference on Software Engineering, ser. ICSE Companion 2014. New York, NY, USA: ACM, 2014. http://dx.doi.org/10.1145/2591062.2591111 pp. 504–507.
  21. T. Karrer, J.-P. Krämer, J. Diehl, B. Hartmann, and J. Borchers, “Stacksplorer: Call graph navigation helps increasing code maintenance efficiency,” in Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology, ser. UIST ’11. New York, NY, USA: ACM, 2011. http://dx.doi.org/10.1145/2047196.2047225 pp. 217–224.
  22. S. Klock, M. Gethers, B. Dit, and D. Poshyvanyk, “Traceclipse: An Eclipse plug-in for traceability link recovery and management,” in Proceedings of the 6th International Workshop on Traceability in Emerging Forms of Software Engineering, ser. TEFSE ’11. New York, NY, USA: ACM, 2011. http://dx.doi.org/10.1145/1987856.1987862 pp. 24–30.
  23. A. L. Santos, “GUI-driven code tracing,” in Visual Languages and Human-Centric Computing (VL/HCC), 2012 IEEE Symposium on, Sep. 2012. http://dx.doi.org/10.1109/VLHCC.2012.6344495 pp. 111–118.
  24. F. Beck, F. Hollerich, S. Diehl, and D. Weiskopf, “Visual monitoring of numeric variables embedded in source code,” in Software Visualization (VISSOFT), 2013 First IEEE Working Conference on, Sep. 2013. http://dx.doi.org/10.1109/VISSOFT.2013.6650545 pp. 1–4.
  25. D. Hou, P. Jablonski, and F. Jacob, “CnP: Towards an environment for the proactive management of copy-and-paste programming,” in Program Comprehension, 2009. ICPC ’09. IEEE 17th International Conference on, May 2009. http://dx.doi.org/10.1109/ICPC.2009.5090049 pp. 238–242.
  26. D. Röthlisberger, O. Nierstrasz, S. Ducasse, D. Pollet, and R. Robbes, “Supporting task-oriented navigation in IDEs with configurable HeatMaps,” in Program Comprehension, 2009. ICPC ’09. IEEE 17th International Conference on, May 2009. http://dx.doi.org/10.1109/ICPC.2009.5090052 pp. 253–257.
  27. R. Holmes and A. Begel, “Deep Intellisense: A tool for rehydrating evaporated information,” in Proceedings of the 2008 International Working Conference on Mining Software Repositories, ser. MSR ’08. New York, NY, USA: ACM, 2008. http://dx.doi.org/10.1145/1370750.1370755 pp. 23–26.
  28. A. Bacchelli, M. Lanza, and M. D’Ambros, “Miler: A toolset for exploring email data,” in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE ’11. New York, NY, USA: ACM, 2011. http://dx.doi.org/10.1145/1985793.1985984 pp. 1025–1027.
  29. A. W. Bradley and G. C. Murphy, “Supporting software history exploration,” in Proceedings of the 8th Working Conference on Mining Software Repositories, ser. MSR ’11. New York, NY, USA: ACM, 2011. http://dx.doi.org/10.1145/1985441.1985469 pp. 193–202.
  30. J.-M. Favre, R. Lämmel, M. Leinberger, T. Schmorleiz, and A. Varanovich, “Linking documentation and source code in a software chrestomathy,” in Reverse Engineering (WCRE), 2012 19th Working Conference on, Oct. 2012. http://dx.doi.org/10.1109/WCRE.2012.43 pp. 335–344.
  31. A. Bragdon, S. P. Reiss, R. Zeleznik, S. Karumuri, W. Cheung, J. Kaplan, C. Coleman, F. Adeputra, and J. J. LaViola, Jr., “Code Bubbles: Rethinking the user interface paradigm of integrated development environments,” in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ser. ICSE ’10. New York, NY, USA: ACM, 2010. http://dx.doi.org/10.1145/1806799.1806866 pp. 455–464.
  32. M. Sulír, M. Nosál’, and J. Porubän, “Recording concerns in source code using annotations,” Computer Languages, Systems & Structures, vol. 46, pp. 44–65, Nov. 2016. http://dx.doi.org/10.1016/j.cl.2016.07.003
  33. S. P. Reiss, “Tracking source locations,” in Proceedings of the 30th International Conference on Software Engineering, ser. ICSE ’08. New York, NY, USA: ACM, 2008. http://dx.doi.org/10.1145/1368088.1368091 pp. 11–20.
  34. M. Sulír and J. Porubän, “Semi-automatic concern annotation using differential code coverage,” in 2015 IEEE 13th International Scientific Conference on Informatics, Nov. 2015. http://dx.doi.org/10.1109/Informatics.2015.7377843 pp. 258–262.
  35. M. Sulír and J. Porubän, “Exposing runtime information through source code annotations,” Acta of Electrotechnica et Informatica, vol. 17, no. 1, pp. 3–9, Apr. 2017.
  36. M. Sulír and J. Porubän, “Generating method documentation using concrete values from executions,” in 6th Symposium on Languages, Applications and Technologies (SLATE’17), 2017.
  37. P. Brereton, B. A. Kitchenham, D. Budgen, M. Turner, and M. Khalil, “Lessons from applying the systematic literature review process within the software engineering domain,” Journal of Systems and Software, vol. 80, no. 4, pp. 571–583, 2007. doi: j.jss.2006.07.009
  38. B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and R. Koschke, “A systematic survey of program comprehension through dynamic analysis,” Software Engineering, IEEE Transactions on, vol. 35, no. 5, pp. 684–702, Sep. 2009. http://dx.doi.org/10.1109/TSE.2009.28
  39. S. Winkler and J. Pilgrim, “A survey of traceability in requirements engineering and model-driven development,” Softw. Syst. Model., vol. 9, no. 4, pp. 529–565, Sep. 2010. http://dx.doi.org/10.1007/s10270-009-0145-0
  40. M. P. Robillard, W. Maalej, R. J. Walker, and T. Zimmermann, Eds., Recommendation Systems in Software Engineering. Springer Publishing Company, Incorporated, 2014.
  41. M. Robillard, R. Walker, and T. Zimmermann, “Recommendation systems for software engineering,” IEEE Software, vol. 27, no. 4, pp. 80–86, Jul. 2010. http://dx.doi.org/10.1109/MS.2009.161
  42. N. Nazar, Y. Hu, and H. Jiang, “Summarizing software artifacts: A literature review,” Journal of Computer Science and Technology, vol. 31, no. 5, pp. 883–909, 2016. http://dx.doi.org/10.1007/s11390-016-1671-1
  43. I. Steinmacher, A. P. Chaves, and M. A. Gerosa, “Awareness support in distributed software development: A systematic review and mapping of the literature,” Comput. Supported Coop. Work, vol. 22, no. 2-3, pp. 113–158, Apr. 2013. http://dx.doi.org/10.1007/s10606-012-9164-4