Object-Oriented Development
•
There are many advantages for object-oriented development
(in contrast with other development methods):
•
•
•
•
Allows full exploitation of the power of object-based and object-oriented programming languages
This may seem an odd advantage, but remember that
OOPLs had been around for many years (eg. Simula 67) before people started to think seriously about the whole object-oriented development approach
However there are some disadvantages:
A study by Johnson (2000) of experienced 'real-world' object-oriented software developers revealed the following disadvantages: Unavailability of object-oriented database management systems Unavailability of object-oriented CASE tools
•
Encourages re-use, not only of modules but also of entire designs (or at least large sections of designs)
In particular it allows the construction of a class hierarchy
(class library) from which classes required in a new application can either be re-used, or constructed (by inheritance and extension, or by composition)
This greater amount of re-use should lead to reduced development and maintenance costs (but see later)
•
•
Object-based models appeal to the workings of human cognition, and hence the human input into the development of a software system is likely to be more natural and less error prone
Confusion with too many different object-oriented development methods
all of which should have become less important due to changes in the last few years
Nevertheless, there are some disadvantages where less (or even no) progress has been made:
•
Decreased system / software performance
With many OOPLs (such as Java) being interpreted, rather than compiled into native machine code, run-time speeds are impaired
Problems with dynamic memory allocation (the method used to create objects), means that either more memory is used-up on garbage, or that the system