The single term, " Object Oriented " refers to both a way of creating flexible, robust software programs as well as to a way of examining problems and constructing solutions to them. The two concepts are related in an obvious manner. Analysis of a problem and the design of a solution is a necessary prerequisite to the creation of a successful software program. The combination of Object Oriented Analysis and Design with Object Oriented Software Development results in a reliable process that produces quality software in a fast and predictable manner. For this reason, OOAD is widely considered to be a Best Practice of modern software development.
Object Oriented methods have been practiced since (at least) the mid 70's, but it was not until the late 80's that they began to gain mainstream acceptance. In part, this was due to the introduction of some very powerful and popular programming languages, e.g. Smalltalk, C++ and later, Java, that allowed developers to write, and learn to write, better and more capable code than was commonly possible with procedural languages.
But, a more important reason for the shift to Object Oriented Technology was the trend toward more sophisticated computer programs. The demand for complex, interactive, distributed computer systems that cannot be realistically or reliably developed using the "structured" methodology and procedural languages established OOAD as the preferred approach in the development community.
Bertrand Meyer, author of Object Oriented Software Construction (considered by many to be the definitive text on modern software development) points out two principal justifications for using object oriented methodology. They are Reliability (robust software that dependably does what the user needs it to do) and Modularity (software that can adapt â or be reasonably adapted â to changes in its operating environment and that can be reused to reduce the cost of new development). He also lists Compatibility, Portability, Ease of Use, Efficiency and Economy of Development as supporting benefits.
We, at Ilium Technologies, agree with him and hence we embrace and practice OOAD in our software development process. We use the Unified Modeling Language (UML) in our analysis and design and we implement the design in Java (or other OO languages). We participate and follow developments in major Object Oriented public forums on the Internet and at the Object Management Group http://www.omg.org to ensure that we remain in the forefront of best practice in software development.