An empirical investigation of the impact of the object-oriented paradigm on the maintainability of real-world mission-critical software

  • Authors:
  • Joa Sang Lim;Seung Ryul Jeong;Stephen R. Schach

  • Affiliations:
  • School of Media Technology, Sangmyung University, 7 Hongji-dong, Jongro-gu, Seoul, South Korea;The Graduate School of Business IT, Kookmin University, 861-1 Chongnung-dong, Songbuk-gu, Seoul, South Korea;Department of Electrical Engineering and Computer Science, Vanderbilt University, Nashville, TN 37235, USA

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Empirical evidence for the maintainability of object-oriented systems is far from conclusive, partly due to the lack of representativeness of the subjects and systems used in earlier studies. We empirically examined this issue for mission-critical software that was currently operational and maintained by software professionals. Two functionally equivalent versions of a credit approval system were maintained, one object oriented (OO) and the other non-object oriented (NOO). We found that the OO group took less time to maintain a greater number of software artifacts than its NOO counterpart. This difference held for all phases of the software development life cycle. This result was due to the usefulness of UML for impact analysis of the OO version, which contributed to effective comprehension and communication. Insufficient design specifications for the NOO version led to ambiguity and costly defects in transferring design solutions to development. Also, the encapsulation of the OO version appeared to reduce mental loads for maintenance tasks and resulted in code reuse. On the other hand, the number of files to be managed increased and, thus, dependency management was required for the OO version. Furthermore, despite much tuning, the OO version ran slower than its NOO counterpart. More field studies on software professionals are needed to compare contextual factors such as methods, processes, and maintenance tools.