C-TRAIL: A Program Comprehension Approach for Leveraging Learning Models in Automated Code Trail Generation

Roy Oberhauser

2016

Abstract

With society's increasing utilization of (embedded) software, the amount of program source code is proliferating while the skilled human resources to maintain and evolve this code remain limited. Therefore, software tools are needed that can support and enhance program code comprehension. This paper focuses on program concept location and cognitive learning models, and contributes an automatic code trail generator approach called a Code Trail Recommender Agent Incorporating Learning models (C-TRAIL). Initial empirical results applying the prototype on obfuscated code show promise for improve program comprehension efficiency and effectiveness.

References

  1. Bargiela, A. and Pedrycz, W., 2012. Granular computing: an introduction (Vol. 717). Springer Science & Business Media.
  2. Biggerstaff, T.J., Mitbander, B.G. and Webster, D., 1993. The concept assignment problem in program understanding. In Proc. 15th Int. Conf. on Software Engineering (pp. 482-498). IEEE CS Press.
  3. Booch, G., 2005. The complexity of programming models. Keynote talk at AOSD 2005, Chicago, IL, March 14- 18, 2005.
  4. Ceccato, M., Penta, M.D., Nagra, J., Falcarin, P., Ricca, F., Torchiano, M. and Tonella, P., 2009. The effectiveness of source code obfuscation: an experimental assessment. In IEEE 17th Int. Conf. on Program Comprehension (pp. 178-187). IEEE.
  5. Cornelissen, B., Zaidman, A., Van Deursen, A., Moonen, L. and Koschke, R., 2009. A systematic survey of program comprehension through dynamic analysis. Softw. Eng., IEEE Trans. on, 35(5), pp.684-702.
  6. Cubranic, D., Murphy, G.C., Singer, J. and Booth, K.S., 2005. Hipikat: A project memory for software development. Software Engineering, IEEE Transactions on, 31(6), pp.446-465.
  7. Deshpande, A. and Riehle, D.. 2008. The total growth of open source. In Proc. 4th Conf. Open Source Systems (OSS 2008). Vol. 275, pp. 197-209. Springer Verlag.
  8. Goldman, M. and Miller, R.C., 2009. Codetrail: Connecting source code and web resources. Journal of Visual Languages & Computing, 20(4), pp.223-235.
  9. Guéhéneuc, Y.G., 2006. TAUPE: towards understanding program comprehension. In Proc. 2006 Conf. Center Adv. Studies on Collab. Research (p. 1). IBM Corp.
  10. Jones, C., 2006. The economics of software maintenance in the twenty first century. Retrieved from: http://www.compaid.com/caiinternet/ezine/capersjones -maintenance.pdf. [4 Feb 2016].
  11. Kersten, M. and Murphy, G.C., 2005. Mylar: a degree-ofinterest model for IDEs. In Proc. 4th Int. Conf. Aspectoriented Softw. Development (pp. 159-168). ACM.
  12. Koenemann, J. and Robertson, S.P., 1991. Expert problem solving strategies for program comprehension. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 125-130). ACM.
  13. Lakhotia, A., 1993. Understanding someone else's code: analysis of experiences. Journal of Systems and Software, 23(3), pp.269-275.
  14. Lawler, E.L., Lenstra, J.K., Kan, A.H.G.R. and Shmoys, D.B., 1985. The traveling salesman problem: a guided tour of combinatorial optimization. Wiley, New York.
  15. Letovsky, S., 1987. Cognitive processes in program comprehension. Journal of Systems and software, 7(4), pp. 325-339.
  16. Metz, C., 2015. Google Is 2 Billion Lines of Code-And It's All in One Place. Retrieved from: http://www.wired.com/2015/09/google-2-billion-linescodeand-one-place/. [4 Feb 2016].
  17. Minelli, R., Mocci, A. and Lanza, M., 2015. I know what you did last summer: an investigation of how developers spend their time. In Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension (pp. 25-35). IEEE Press.
  18. Mitchell, R.L., 2009. Y2K: The good, the bad and the crazy. ComputerWorld (December 2009).
  19. Novak, J.D., 1998. Learning, creating, and using knowledge. Lawrence Erlbaum Assoc., Mahwah, NJ.
  20. Oberhauser, R., 2016. ReSCU: A Trail Recommender Approach to Support Program Code Understanding. In Proc. 8th Int. Conf. on Information, Process, and Knowledge Manage. (pp. 112-118). IARIA XPS Press.
  21. Pacione, M.J., Roper, M. and Wood, M., 2004. A novel software visualisation model to support software comprehension. In Reverse Engineering, 2004. Proc.. 11th Working Conference on (pp. 70-79). IEEE.
  22. Page, L., Brin, S., Motwani, R. and Winograd, T., 1999. The PageRank citation ranking: bringing order to the web. Technical Report. Stanford InfoLab.
  23. PayScale. Full List of Most and Least Loyal Employees. Retrieved from: http://www.payscale.com/datapackages/employee-loyalty/full-list. [17 Feb 2016].
  24. Pennington, N., 1987. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive psychology, 19(3), pp.295-341.
  25. Qian, Y., Liang, J., Dang, C., Wang, F. and Xu, W., 2007. Knowledge distance in information systems. J. of Systems Science and Systems Eng., 16(4), pp.434-449.
  26. Rajlich, V. and Wilde, N., 2002. The Role of Concepts in Program Comprehension. In Proc. 10th IEEE Int. Workshop on Program Comprehension, pp. 271-278.
  27. Robillard, M.P. and Murphy, G.C., 2003. Automatically inferring concern code from program investigation activities. In Automated Software Engineering, 2003. Proc.. 18th IEEE Int. Conf. on (pp. 225-234). IEEE.
  28. Robillard, M.P., 2008. Topology analysis of software dependencies. ACM Transactions on Software Engineering and Methodology (TOSEM), 17(4), p.18.
  29. Robillard, M.P., Maalej, W., Walker, R.J. and Zimmermann, T. eds., 2014. Recommendation systems in software engineering. Berlin: Springer.
  30. Schelter, S. and Owen, S., 2012. Collaborative filtering with apache mahout. Proc. of ACM RecSys Challenge.
  31. Schmidt, B., 2015. Retrieved from: http://benschmidt.org/Degrees/. [4 Feb 2016].
  32. Singer, J., Elves, R. and Storey, M.A., 2005. Navtracks: Supporting navigation in software. In Program Comprehension, 2005. IWPC 2005. Proceedings. 13th International Workshop on (pp. 173-175). IEEE.
  33. Soloway, E., Adelson, B. and Ehrlich, K., 1988. Knowledge and processes in the comprehension of computer programs. In The Nature of Expertise, A. Lawrence Erlbaum Associates, pp. 129-152.
  34. Yin, M., Li, B. and Tao, C., 2010. Using cognitive easiness metric for program comprehension. In 2nd Int. Conf. on Softw. Eng. and Data Mining (pp. 134- 139). IEEE.
Download


Paper Citation


in Harvard Style

Oberhauser R. (2016). C-TRAIL: A Program Comprehension Approach for Leveraging Learning Models in Automated Code Trail Generation . In Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016) ISBN 978-989-758-194-6, pages 177-185. DOI: 10.5220/0005974901770185


in Bibtex Style

@conference{icsoft-ea16,
author={Roy Oberhauser},
title={C-TRAIL: A Program Comprehension Approach for Leveraging Learning Models in Automated Code Trail Generation},
booktitle={Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016)},
year={2016},
pages={177-185},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005974901770185},
isbn={978-989-758-194-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Joint Conference on Software Technologies - Volume 1: ICSOFT-EA, (ICSOFT 2016)
TI - C-TRAIL: A Program Comprehension Approach for Leveraging Learning Models in Automated Code Trail Generation
SN - 978-989-758-194-6
AU - Oberhauser R.
PY - 2016
SP - 177
EP - 185
DO - 10.5220/0005974901770185