The definition of a system in terms of objects facilitates the construction of software
components that closely resemble the application domain, thus assisting in the design
and understandability of systems.
n Owing to encapsulation and information hiding, the use of objects and messages
encourages modular design – the implementation of one object does not depend on theinternals of another, only on how it responds to messages. Further, modularity is reinforced
and software can be made more reliable.
n The use of classes and inheritance promotes the development of reusable and extensible
components in the construction of new or upgraded systems.