Applying Inspection to Object‐Oriented Code

The benefits of the object‐oriented paradigm are widely cited. At the same time, inspection is deemed to be the most cost‐effective means of detecting defects in software products. Why then, is there no published experience, let alone quantitative data, on the application of inspection to object‐oriented systems? This paper describes the facilities of the object‐oriented paradigm and the issues that these raise when inspecting object‐oriented code. Several problems are caused by the disparity between the static code structure and its dynamic runtime behaviour. The large number of small methods in object‐oriented systems can also cause problems. This is followed by a description of three areas which may help mitigate problems found. Firstly, the use of various programming techniques may assist in making object‐oriented code easier to inspect. Secondly, improved program documentation can help the inspector understand the code under inspection. Finally, tool support can help the inspector analyse the dynamic behaviour of the code. In conclusion, while both the object‐oriented paradigm and inspection provide excellent benefits on their own, combining the two may be a difficult exercise, requiring extensive support if it is to be successful.

[1]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[2]  Carl G. Ponder,et al.  Polymorphism considered harmful , 1994 .

[3]  Norman Wilde,et al.  Maintaining object-oriented software , 1993, IEEE Software.

[4]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[5]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[6]  Elliot Soloway,et al.  Delocalized Plans and Program Comprehension , 1986, IEEE Software.

[7]  E. P. Doolan,et al.  Experience with Fagan's inspection method , 1992, Softw. Pract. Exp..

[8]  Edward V. Berard,et al.  Essays on object-oriented software engineering (vol. 1) , 1993 .

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Thomas Gilb,et al.  Software Inspection , 1994 .

[11]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.

[12]  Norman Wilde,et al.  Maintenance support for object oriented programs , 1991, Proceedings. Conference on Software Maintenance 1991.

[13]  Glen W. Russell,et al.  Experience with inspection in ultralarge-scale development , 1991, IEEE Software.

[14]  M. H. V. Emdeny Structured Inspections of Code , 1993 .

[15]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[16]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[17]  Anneliese Amschler Andrews,et al.  Maintenance support needs for object-oriented software , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[18]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[19]  David Lorge Parnas,et al.  Precise Documentation of Well-Structured Programs , 1994, IEEE Trans. Software Eng..

[20]  Alan M. Davis Fifteen principles of software engineering , 1994 .

[21]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[22]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[23]  F. MacDonald,et al.  A review of tool support for software inspection , 1995, Proceedings Seventh International Workshop on Computer-Aided Software Engineering.

[24]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .