The concept of encapsulation of data and functionality that belongs together is something which the hardware industry has been doing for a long time. Hardware engineers have been creating re-useable, re-configurable hardware at each level of abstraction since the early sixties. Elementary boolean functions are encapsulated together with bits and bytes of data in registers on chips. Chips are encapsulated together on circuit boards. Circuit boards are made to work together in various system boxes that make up the computer. Computers are made to work together across networks. Hardware design, therefore, is totally object oriented at every level and is, as a result, maximally re-useable, extensible and maintainable; in a single word: flexible. Applying object-orientation to software, therefore, could be seen as putting the engineering into software design that has existed in hardware design for many years.
![]() | Hardware encapsulates data and function at every level of abstraction |
|
|
![]() | Maximises maintainability, reuse and extension |