Notes on Agent-Based and Object Oriented Approaches
Object-oriented systems consist of modules that are able to communicate with each other and have explicit, individual means to respond to incoming messages (Shoham, 1993). Integrating software agents within object-oriented methodologies may be advantageous, as these methodologies have been tested and offer familiarity to developers, who may be reluctant to learn and use new approaches (Iglesias et al.,1998). However, the utility of representing agents as objects is debatable because their level of abstraction as a set of attributes and methods may be too fine grained; agents are coarse-grained entities that require the use of significant system resources compared with objects (Wooldridge et al., 2000). For example, it is difficult to use objects to model concepts such as proactively generated actions, dynamic reaction to changes in the environment, and cooperating and negotiating with other self-interested entities (Wooldridge, 2002).
According to Wooldridge et al. (2000), there is “a fundamental mismatch between the concepts used by object-oriented developers and the agent oriented view.” Objects have some degree of control over their internal status, but lack autonomy over their own behavior and do not have the ability to adapt and react to operator state changes or changes in other objects. Objects are also limited in that they cannot distinguish between different types of messages received from various sources, and cannot negotiate, analyze, and make decisions based on the action requested by the sender (Iglesias et al., 1998). Agents can, however, effectively perform two-way communication with the operator and other agents, and provide systems designers with the means to overcome the limitations of object-oriented design.
— Hou, Ming (2014–12–18). Intelligent Adaptive Systems: An Interaction-Centered Design Perspective (Page 147). CRC Press. Kindle Edition.