Automatic Segmentation of Method Code into Meaningful Blocks: Design and Evaluation

Good programming practice and guidelines suggest that programmers use both vertical and horizontal spacing to visibly delineate between code segments that represent different algorithmic steps or high‐level actions. Unfortunately, programmers do not always follow these guidelines. Editors and integrated development environments (IDEs) can easily indent codes based on syntax, but they do not currently support automatic blank line insertion, which presents more significant challenges involving the semantics.

[1]  Daqing Hou,et al.  An Abstraction-Oriented, Path-Based Approach for Analyzing Object Equality in Java , 2010, 2010 17th Working Conference on Reverse Engineering.

[2]  Watts S. Humphrey The Personal Software Process , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[3]  Westley Weimer,et al.  Learning a Metric for Code Readability , 2010, IEEE Transactions on Software Engineering.

[4]  Stephen R. Schach,et al.  Object-oriented and classical software engineering , 1995 .

[5]  Shinji Kusumoto,et al.  A metric-based approach to identifying refactoring opportunities for merging code clones in a Java software system , 2008, J. Softw. Maintenance Res. Pract..

[6]  Nuzhat J. Haneef Software documentation and readability: a proposed process improvement , 1998, SOEN.

[7]  Zhendong Niu,et al.  Identifying Fragments to be Extracted from Long Methods , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[8]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

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

[10]  Jean Scholtz,et al.  The Roles Beacons Play in Comprehension for Novice and Expert Programmers , 2002, PPIG.

[11]  Raymond P. L. Buse,et al.  A metric for software readability , 2008, ISSTA '08.

[12]  Xiaoran Wang,et al.  Automatic Segmentation of Method Code into Meaningful Blocks to Improve Readability , 2011, 2011 18th Working Conference on Reverse Engineering.

[13]  Watts S. Humphrey,et al.  Introduction to the Personal Software Process , 1996 .

[14]  Kim B. Bruce,et al.  Java: An Eventful Approach , 2005 .

[15]  Martin P. Robillard,et al.  The Emergent Structure of Development Tasks , 2005, ECOOP.

[16]  Adele Goldberg,et al.  Programmer as Reader , 1987, IEEE Software.

[17]  Kwan-Liu Ma,et al.  Stable, flexible, peephole pretty-printing , 2008, Sci. Comput. Program..

[18]  Susan Horwitz,et al.  Effective, automatic procedure extraction , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[19]  Salwa K. Abd-El-Hafiz,et al.  A Knowledge-Based Approach to the Analysis of Loops , 1996, IEEE Trans. Software Eng..

[20]  Herb Sutter,et al.  C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series) , 2004 .

[21]  Herb Sutter,et al.  C++ coding standards , 2004 .

[22]  Phillip A. Relf,et al.  Tool assisted identifier naming for improved software readability: an empirical study , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[23]  Marie Nordström,et al.  Beauty and the Beast--Toward a Measurement Framework for Example Program Quality , 2007 .

[24]  Premkumar T. Devanbu,et al.  A simpler model of software readability , 2011, MSR '11.

[25]  Lori L. Pollock,et al.  Automatically detecting and describing high level actions within methods , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[26]  Paul Haahr A programming style for java , 1999 .

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

[28]  K. K. Aggarwal,et al.  An integrated measure of software maintainability , 2002, Annual Reliability and Maintainability Symposium. 2002 Proceedings (Cat. No.02CH37318).

[29]  Michael Marcotty,et al.  Improving computer program readability to aid modification , 1982, CACM.

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

[31]  Alexander Chatzigeorgiou,et al.  Identification of Extract Method Refactoring Opportunities , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.