Object-oriented programming was initially developed by Alan Kay at the Xerox Palo Alto labs and brought into commercial use at Apple and other places. In the object-oriented model, a system is defined as a collection of subroutines that communicate by passing each other messages. These routines know nothing about each other other than the message formats supported. In system design, you build a model of your environment by designing routines which:
Object-oriented systems have a number of good properties:
In OOP, you are supposed to build a library of routines to handle standard messages. Later development for another system might be able to take some advantage of this routine library. The notion of a subroutine is known to us all, but I imagine we don't make full use of it. A comment made at the session was:
"Engineers build machines with off-the-shelf ICs, circuit boards, and large components. They do not design at the discrete level anymore. However, software people ALWAYS design at the discrete level!"