Date of Award

1992

Document Type

Thesis

Degree Name

Master of Science in Management Information Systems

Department

Computer Science

First Advisor

Mira Ezvan

Second Advisor

Jim Factor

Third Advisor

Bob Chant

Abstract

The purpose of this thesis is to address the problem of the increasing cost of program maintenance in the data processing world. On average, programmers today spend 60% of their time in program maintenance and that figure is increasing at an estimated rate of 1 % each year. The cost is staggering and almost every business would like to find ways of reducing maintenance costs. One way to help reduce maintenance and development costs is to improve code reusability. Both maintenance programming and code reusability are the focus of this thesis.

Today's most commonly used programming language style is procedure oriented programming (POP). At nearly every university in the United States, POP is a required course for both scientific and business computer related degrees. Most businesses use POP as the chosen programming language style. Those data processing shops trying to reduce maintenance costs are usually trying to improve techniques used in POP rather than researching new language styles such as object oriented programming (OOP).

OOP requires fewer function names to remember and coordinate than POP requires. A POP language like COBOL, treats its functions as paragraphs or callable sub-programs and each must have a unique name. OOP allows method names to be reused from one class to another and even within the same class. The system takes care of determining which method should be used. Therefore, OOP is much better at providing fewer functions to remember and coordinate since the system does much of that work for the programmer.

POP languages such as COBOL, have no features or techniques to help prevent accidental modifications. OOP helps prevent them by encapsulating classes to limit access to data and methods. Accidental modifications are not totally eliminated with OOP but they can be significantly reduced which helps reduce maintenance costs.

Error detection is difficult in COBOL since it allows all procedures within the program to access any of the data in the program. In OOP, a language feature called encapsulation can be applied to a class to help detect errors. Programmers can spend a lot of time trying to detect errors in a program. Therefore, OOP is able lo reduce maintenance costs by helping the programmer to quickly find the errors.

The POP language of COBOL has no specific language feature to help with change control. Encapsulation, the same OOP features that helps detect errors can also help limit the impact of a change to a program. Therefore, OOP is better at reducing the amount of time spent in making maintenance changes.

1'01' languages allow for code reuse by providing the ability lo copy source code from a library into a program or call an external subprogram. The programmer must reuse code from the entire program and cannot selectively choose the parts needed or modify the reusable code for only the new program. In OOP, the programmer can pick and choose which data and methods to reuse from existing classes. 'This ability makes OOP a better language style for writing reusable code.

In OOP, through the use of inheritance, making minor changes to reusable code is quick and easy. the programmer can create II new class and define only the parts that make the new class different from the existing class. The OOP programmer takes advantage of the code . already written without duplicating the code. Code reuse is not possible in POP without duplicating the code and making the change to the new copy. POP, unlike OOP, does not inherently allow for code reuse .

My research into the features and techniques for both POP and OOP supports the hypothesis that, OOP is better than POP at reducing the time spent in program maintenance and leads to improvements in code reusability.

Share

COinS