Class Level Code Summarization Based on Dependencies and Micro Patterns

Modifications in any software need to be carries out on various entities. Change in one entity may force some changes in many other dependent entities. Complete understanding of entities and there dependencies are highly desirable to carry out modifications in an efficient manner. Automated summarization of classes in object oriented software can be a good step in this direction. This paper proposes a natural language summary based code summarization of those java classes which are more change prone. Code summary is generated by using concept of micro patterns and change proneness is identified by computing different kinds of dependencies among classes. A threshold is decided to identify the classes which are more sensitive to change. The empirical evaluation of some open source classes has been carried out which clearly indicates the usefulness of the proposed work.

[1]  Yan Liu,et al.  Facilitating Scenario-Based Program Comprehension with Topic Models , 2017, 2017 24th Asia-Pacific Software Engineering Conference (APSEC).

[2]  C. Kavitha,et al.  Entity based source code summarization (EBSCS) , 2016, 2016 3rd International Conference on Advanced Computing and Communication Systems (ICACCS).

[3]  Andrian Marcus,et al.  On the Use of Automated Text Summarization Techniques for Summarizing Source Code , 2010, 2010 17th Working Conference on Reverse Engineering.

[4]  Westley Weimer,et al.  Automatic documentation inference for exceptions , 2008, ISSTA '08.

[5]  Collin McMillan,et al.  Improving topic model source code summarization , 2014, ICPC 2014.

[6]  Jonathan I. Maletic,et al.  Using stereotypes in the automatic generation of natural language summaries for C++ methods , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[7]  Martin P. Robillard,et al.  Code fragment summarization , 2013, ESEC/FSE 2013.

[8]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[9]  Westley Weimer,et al.  Automatically documenting program changes , 2010, ASE.

[10]  Itay Maman,et al.  Micro patterns in Java code , 2005, OOPSLA '05.

[11]  Laura Moreno Summarization of complex software artifacts , 2014, ICSE Companion.

[12]  Miryung Kim,et al.  Identifying and Summarizing Systematic Code Changes via Rule Inference , 2013, IEEE Transactions on Software Engineering.

[13]  Abdelwahab Hamou-Lhadj,et al.  Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[14]  Emily Hill,et al.  Towards automatically generating summary comments for Java methods , 2010, ASE.

[15]  Mario Linares Vásquez,et al.  On Automatically Generating Commit Messages via Summarization of Source Code Changes , 2014, 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation.

[16]  Mirella Lapata,et al.  Autofolding for Source Code Summarization , 2014, IEEE Transactions on Software Engineering.

[17]  Gail C. Murphy,et al.  Summarizing software artifacts: a case study of bug reports , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[18]  Collin McMillan,et al.  Improving automated source code summarization via an eye-tracking study of programmers , 2014, ICSE.

[19]  Andrian Marcus,et al.  Supporting program comprehension with source code summarization , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[20]  Lori L. Pollock,et al.  Automatic generation of natural language summaries for Java classes , 2013, 2013 21st International Conference on Program Comprehension (ICPC).

[21]  Collin McMillan,et al.  Automatic Source Code Summarization of Context for Java Methods , 2016, IEEE Transactions on Software Engineering.

[22]  Jitender Kumar Chhabra,et al.  FP-ABC: Fuzzy-Pareto dominance driven artificial bee colony algorithm for many-objective software module clustering , 2018, Comput. Lang. Syst. Struct..

[23]  Gail C. Murphy,et al.  Why did this code change? , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[24]  Bin Li,et al.  On Automatic Summarization of What and Why Information in Source Code Changes , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).