Extract from "Understanding Active X and OLE" by David Chappel
"In the last 35 years, designers of computer hardware have gone from designing machines the size of a hangar to thin notebooks based on minuscule microprocessors.
In the same period, software developers have gone from writing programs in assembler and COBOL to writing even bigger programs in C and C++. We could call this progress (some people may disagree), but clearly the software world does not progress as rapidly as the hardware world. So what is it that hardware developers have that software developers don't?
The answer lies in the components used. If electronic hardware engineers had to start out from a heap of sand each time they designed a new hardware device, and the first step involved the extraction of silicon to manufacture integrated circuit boards, they would not progress very quickly. Thus, a hardware designer always builds a system based on ready-made components, each one having a specific function and providing a set of services via defined interfaces. The task of hardware designers is considerably easier thanks to the work of their predecessors.
Re-using components is also a way to create better software. Even today, software developers are still starting out from a heap of sand and following the same steps as hundreds of developers before them did. The result is often outstanding, but it could be improved. Creating new applications from existing components, which have already been tested, always tends to produce more reliable code. What's more, it simply proves to be faster and cheaper, which is just as important."
The modular object approach involves creating a computerised representation of the real world elements that we are interested in, without worrying about how it is implemented, regardless of the programming language used. It therefore involves determining the objects and isolating their data and the functions that they use, methods were developed for this purpose. Between 1970 and 1990, several analysts developed object-oriented approaches, by 1994 there were more than 50 object methods. Nevertheless, only 3 methods actually caught on:
Beginning in 1994, Rumbaugh and Booch (later joined by Jacobson in 1995) joined efforts to develop the UML (Unified Modeling Language) definition language, which defines a standard language by incorporating the advantages of various preceding methods (i.e. those of other analysts). This enables the complete programming of an application with a language that uses a modular approach for all components of the program being developed.