Improving computer program readability to aid modification

@article{Elshoff1982ImprovingCP,
  title={Improving computer program readability to aid modification},
  author={James L. Elshoff and Michael Marcotty},
  journal={Commun. ACM},
  year={1982},
  volume={25},
  pages={512-521}
}
The modification of computer programs is a costly and constant job. An informal survey conducted at General Motors and reported on by Elshoff [6] concluded that about 75 percent of all programmer/analysts' time in a commercial data processing installation is spent on program modification. This conclusion agrees with independent assessments made by Liu [16], Boehm [2], and Lientz and Swanson [15]. Moreover, the reasons for modifying programs will not disappear. As pointed out by Lehman [14], all… 

Figures and Tables from this paper

System structure and software maintenance performance

TLDR
Results indicate that system improvements lead to decreased total maintenance time and decreased frequency of ripple effect errors, which suggests that improving old systems may be worthwhile and may yield benefits over the remaining life of the system.

Redocumentation: addressing the maintenance legacy

TLDR
This paper outlines a conceptual approach to the allocation of software maintenance resources and the role of automated tools in this process and argues that software maintenance tools cannot be simply purchased or built and then used indiscriminately.

Automatic Segmentation of Method Code into Meaningful Blocks to Improve Readability

TLDR
A heuristic solution to the automatic blank line insertion problem is presented, by leveraging both program structure and naming information to identify “meaningful blocks”, consecutive statements that logically implement a high level action.

Properties of “ Good ” Java Examples

TLDR
Software Reading Ease Score (SRES), a program readability metric proposed by Börstler et al.

Commenting source code: is it worth it for small programming tasks?

TLDR
The results indicate that comments seem to be considered more important in previous studies and by participants than they are for small programming tasks, while other mechanisms, such as proper identifiers, are considered more helpful by participants and they also emphasize the necessity of comments in certain situations.

Exploring action unit granularity of source code for supporting software maintenance

TLDR
This dissertation explores the feasibility of automatically identifying high level actions towards improving software maintenance tools and program understanding and develops techniques to automatically identify actions for loop-based action units.

A comprehensive model for code readability

TLDR
The results demonstrate that (1) textual features complement other features and (2) a model containing all the features achieves a significantly higher accuracy as compared with all the other state‐of‐the‐art models.

A simpler model of software readability

TLDR
This work presents a simple, intuitive theory of readability, based on size and code entropy, and shows how this theory leads to a much sparser, yet statistically significant, model of the mean readability scores produced in Buse's studies.

Removing the emphasis on coding in a course on software engineering

  • L. Rising
  • Education, Computer Science
    SIGCSE '89
  • 1989
TLDR
This paper describes a course that shifted the emphasis from coding by having students perform supporting activities and maintenance on a large Ada project.

Empirical Validation Of MSR-SM Framework

TLDR
This paper validate the proposed MSR-SM Framework with proposed readability metrics, a mechanism to ease of maintainability and code reusability, and extracted the data from a series of versions to examine the variation in the ratio of source codes and comments between them.
...

References

SHOWING 1-10 OF 28 REFERENCES

The Translation of 'Go To' Programs to 'While' Programs

TLDR
The subject of the Ashcroft and Manna paper is the translation of unstructured programs into equivalent structured programs, and Wulf's paper sets forth a more practical, step-by-step mechanism for such translations, giving an extremely detailed, extremely theoretical presentation.

Letters to the editor: go to statement considered harmful

TLDR
My considerations are that, although the programmer's activity ends when he has constructed a correct program, the process taking place under control of his program is the true subject matter of his activity, and that his intellectual powers are rather geared to master static relations and his powers to visualize processes evolving in time are relatively poorly developed.

The Influence of Structured Programming on PL/I Program Profiles

  • J. L. Elshoff
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1977
TLDR
The time and training required to introduce structured programming techniques will begin paying dividends within six months and further alterations can make the programs still better.

Go to statement considered harmful

TLDR
In form and content, Dijkstra's letter is similar to his 1965 paper, and the last few paragraphs underscore once again why the subject of structured programming stayed out of the mainstream of the data processing industry for so long.

On the use of the cyclomatic number to measure program complexity

TLDR
In this paper another well-structured versions of the program is presented for which the cyclomatic complexity is reduced to that of the original unstructured version, and some of the shortcomings of the cycl automatic number as a complexity measure are revealed.

An extension to the cyclomatic measure of program complexity

TLDR
A graph-theoretic measure of program complexity, where a program's complexity is assumed to be only a factor of the program's decision structure, is described and a simple extension to the measure is described to eliminate anomalies.

Softwear Reliability

TLDR
Focuses on the unreliability of computer programs and offers state-of-the-art solutions in software development, software testing, structured programming, composite design, language design, proofs of program correctness, and mathematical reliability models.

Measuring Improvements in Program Clarity

  • R. D. Gordon
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1979
TLDR
The ability to objectively assess the clarity of a program is essential in order to rationally develop useful engineering guidelines for efficient software production and language development.

An Analysis of Some Commercial PL/I Programs

  • J. L. Elshoff
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1976
TLDR
The source code for 120 production PL/I programs from several General Motors' commercial computing installations has been collected and some data from the scanning process are presented and interpreted.

Modern Coding Practices and Programmer Performance

The late 70' s find structured programming increasingly popular—this and other techniques are programming's future. But what does experimental evaluation say about their actual effects on programmer