Finding the Right Needles in Hay - Helping Program Comprehension of Large Software Systems

Ioana Şora

2015

Abstract

Maintenance of complex software systems can be done by software engineers only after they understand well the existing code. Program comprehension is supported by documentation - either developer documentation or reverse engineered. What is most often missing is a short document providing the new user with useful information to start with - an executive summary. In this work we propose a tool to automatically extract such a summary, by identifying the most important classes of a system. Our approach relies on techniques of static analysis of dependencies and graph-based ranking. Experiments on a set of real systems show good results.

References

  1. Briand, L., Daly, J., and Wust, J. (1999). A unified framework for coupling measurement in object-oriented systems. Software Engineering, IEEE Transactions on, 25(1):91-121.
  2. Dit, B., Revelle, M., Gethers, M., and Poshyvanyk, D. (2013). Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process, 25(1):53-95.
  3. Ducasse, S. and Pollet, D. (2009). Software architecture reconstruction: A process-oriented taxonomy. Software Engineering, IEEE Transactions on, 35(4):573-591.
  4. Erkan, G. and Radev, D. R. (2004). Lexrank: Graph-based lexical centrality as salience in text summarization. J. Artif. Intell. Res.(JAIR), 22(1):457-479.
  5. Guéhéneuc, Y.-G. (2004). A reverse engineering tool for precise class diagrams. In Proceedings of the 2004 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON 7804, pages 28-41. IBM Press.
  6. Inoue, K., Yokomori, R., Yamamoto, T., Matsushita, M., and Kusumoto, S. (2005). Ranking significance of software components based on use relations. Software Engineering, IEEE Transactions on, 31(3):213-225.
  7. Mihalcea, R. and Tarau, P. (2004). Textrank: Bringing order into texts. In Lin, D. and Wu, D., editors, Proceedings of EMNLP 2004, pages 404-411, Barcelona, Spain. Association for Computational Linguistics.
  8. Neate, B., Irwin, W., and Churcher, N. (2006). Coderank: a new family of software metrics. In Software Engineering Conference, 2006. Australian, pages 10 pp.-378.
  9. Osman, M. H., Chaudron, M. R. V., and Putten, P. v. d. (2013). An analysis of machine learning algorithms for condensing reverse engineered class diagrams. In Proceedings of the 2013 IEEE International Conference on Software Maintenance, ICSM 7813, pages 140- 149, Washington, DC, USA. IEEE Computer Society.
  10. Page, L., Brin, S., Motwani, R., and Winograd, T. (1999). The pagerank citation ranking: Bringing order to the web. Technical Report 1999-66, Stanford InfoLab. Previous number = SIDL-WP-1999-0120.
  11. Sora, I. (2013). Unified modeling of static relationships between program elements. In Maciaszek, L. and Filipe, J., editors, Evaluation of Novel Approaches to Software Engineering, volume 410 of Communications in Computer and Information Science, pages 95-109. Springer Berlin Heidelberg.
  12. Sora, I., Glodean, G., and Gligor, M. (2010). Software architecture reconstruction: An approach based on combining graph clustering and partitioning. In Computational Cybernetics and Technical Informatics (ICCC-CONTI), 2010 International Joint Conference on, pages 259-264.
  13. Steidl, D., Hummel, B., and Juergens, E. (2012). Using network analysis for recommendation of central software classes. In Reverse Engineering (WCRE), 2012 19th Working Conference on, pages 93-102.
  14. Thung, F., Lo, D., Osman, M. H., and Chaudron, M. R. V. (2014). Condensing class diagrams by analyzing design and network metrics using optimistic classification. In Proceedings of the 22Nd International Conference on Program Comprehension, ICPC 2014, pages 110-121, New York, NY, USA. ACM.
  15. Zaidman, A., Calders, T., Demeyer, S., and Paredaens, J. (2005). Applying webmining techniques to execution traces to support the program comprehension process. In Software Maintenance and Reengineering, 2005. CSMR 2005. Ninth European Conference on, pages 134-142.
  16. Zaidman, A. and Demeyer, S. (2008). Automatic identification of key classes in a software system using webmining techniques. Journal of Software Maintenance and Evolution: Research and Practice, 20(6):387-417.
  17. Zaidman, A., Du Bois, B., and Demeyer, S. (2006). How webmining and coupling metrics improve early program comprehension. In Program Comprehension, 2006. ICPC 2006. 14th IEEE International Conference on, pages 74-78.
Download


Paper Citation


in Harvard Style

Şora I. (2015). Finding the Right Needles in Hay - Helping Program Comprehension of Large Software Systems . In Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-100-7, pages 129-140. DOI: 10.5220/0005465901290140


in Bibtex Style

@conference{enase15,
author={Ioana Şora},
title={Finding the Right Needles in Hay - Helping Program Comprehension of Large Software Systems},
booktitle={Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2015},
pages={129-140},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005465901290140},
isbn={978-989-758-100-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - Finding the Right Needles in Hay - Helping Program Comprehension of Large Software Systems
SN - 978-989-758-100-7
AU - Şora I.
PY - 2015
SP - 129
EP - 140
DO - 10.5220/0005465901290140