V. Shtern (USA)
Object-Oriented Programming, Software Quality Criteria,Software Maintenance
For decades, both industry and academia have been
searching for solutions to the software crisis. Today, Java,
C++ and C# are viewed as adequate building tools: they
support the object-oriented approach. However, the
quality criteria that the object-oriented approach offers
(information hiding and encapsulation) are not sharp
enough: they still make it too easy to write code with
numerous dependencies between parts of the program.
Maintenance programmers have difficulties understanding
these dependencies. To facilitate maintenance and further
program evolution, programmers need more guidance in
breaking program functionality into cooperating pieces.
To improve quality of code, three guidelines are proposed
here for making code modularization decisions. The first
guideline requires the programmer to push responsibilities
from client classes to server classes. The second guideline
requires the programmer to avoid tearing apart what
should belong together in the code. The third guideline
requires the developer to reduce the visibility of program
objects to other parts of the program.
The use of proposed guidelines minimizes dependencies
between program components and reduces the number of
things that the developer (and the maintainer) keeps in
mind, and makes it easier for the maintainer to understand
the intent of the developer.