Abstract :
Is object orientation an imperfect paradigm for reliable coding? Worse, does it focus on the wrong part of the life cycle? The author thinks so and explains why. Given that corrective-maintenance costs already dominate the software life cycle and look set to increase significantly, the author argues that reliability in the form of reducing such costs is the most important software improvement goal. Yet, the results are not promising when we review recent corrective-maintenance data for big systems in general and for OO systems, in this case written in C++. The author asserts that any paradigm that is capable of decomposing a system into large numbers of small components-as frequently occurs in both OO and conventional systems-is fundamentally wrong. Thus, because both paradigms suffer from this flaw, we should expect no particular benefits to accrue from an OO system over a non-OO system. Further, a detailed comparison of OO programming and the human thought processes involved in short and long term memory suggests that OO aligns with human thinking limitations indifferently at best. In the case studies described, OO is no more than a different paradigm, and emphatically not a better one, although it is not possible to apportion blame between the OO paradigm itself and its C++ implementation
Keywords :
human factors; object-oriented programming; software maintenance; software reliability; C++ implementation; OO paradigm; OO programming; OO system; corrective-maintenance costs; human thinking limitations; human thought processes; long term memory; object orientation; reliability; reliable coding; software improvement goal; software life cycle; Civil engineering; Costs; Education; Maintenance; Productivity; Reliability engineering; Silver; Software engineering; Software measurement; Switches;