About constructing systems from objects

Object‑based modeling is applying the most fundamental engineering discipline of system construction used by system, mechanical, and hardware engineers. In other engineering disciplines, physical systems are represented as collections of parts (think of a mechanical or electrical drawing). Each part (which itself might be a collection of parts) has its own purpose and data. Early software design techniques did not follow this approach. Rather, they used functional decomposition because early programming languages were built around how the computers work, not how systems work.

At its core, each model is a decomposition of the system into modular, cohesive units with well‑defined interfaces. Many objects have an internal state that controls its behavior. Objects can be linked together (collaborate) to perform a certain task. Composite objects are constructed from simpler objects through hierarchical composition, where the composite object (or aggregate) owns its subobjects (or components). This theme follows the intuitive structure of any type of system assembly, from mechanical to electrical to software.

Reuse of services is achieved through instantiation of objects, aggregation, and delegation. Instantiation is the language mechanism that replicates an object type into a new object instance. By aggregating an instance of a certain component, a composite object reuses the services provided by the component object.


Feedback