Objects, Agents, and Features: An Introduction

  • John-Jules Ch. Meyer
  • Mark D. Ryan
  • Hans-Dieter Ehrich
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2975)


There are many ways of structuring software, and the seminar focussed on an established one (object-orientation) and two emerging ones (agent-orientation and feature-orientation).

The object paradigm is now widely used in software technology (with programming languages like C++ and Java, and OO modelling frameworks such as UML). However, the theoretical foundations of the object paradigm are not settled yet, although clean concepts and reliable foundations are more and more demanded not only by academia but also by practitioners. In particular, the precise meaning of UML concepts is subject to wide debate.

Agents are more special kinds of objects, having more autonomy, and taking more initiative. For this reason, agent-oriented programming is sometimes referred to as ‘subject-oriented’ rather than ‘object-oriented’, indicating that an agent is much more in control of itself than an object which is manipulated by other entities (objects). There is some work on investigating typical object notions like inheritance in the context of agents. An interesting question is whether this is a fruitful way to go. Typically, agents are thought of being endowed with ‘mental states’ involving concepts like knowledge, belief, desires and goals, in order to display autonomous and in particular pro-active behaviour.

Features are optional extensions of functionality which may be added to a software product, in order to reflect changes in requirements. They also cut across the class structure, because implementing a feature typically involves updating several classes or objects. The more complex the system is, the harder it is to add features without breaking something; this phenomenon has been dubbed the ‘feature interaction problem’. Because users like to think of a system as comprising a base system together with a number of features on top, features could potentially be seen as a structuring mechanism rivalling objects and agents.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    The AspectJ project, (accessed January 2004)
  2. 2.
    Bordini, R.H., Fisher, M., Pardavila, C., Wooldridge, M.: Model checking AgentSpeak. In: Proceedings of the second international joint conference on autonomous agents and multiagent systems (AAMAS 2003), Melbourne, pp. 409–416 (2003)Google Scholar
  3. 3.
    Cohen, P.R., Levesque, H.J.: Intention is Choice with Commitment. Artificial Intelligence 42, 213–261 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Amyot, D., Logrippo, L. (eds.): Feature Interactions in Telecommunications and Software Systems VII. IOS Press, Amsterdam (2003)Google Scholar
  5. 5.
    Calder, M., Magill, E. (eds.): Feature Interactions in Telecommunications and Software Systems VI. IOS Press, Amsterdam (2000)Google Scholar
  6. 6.
    Fisher, M.: A Survey of Concurrent METATEM – The language and Its Applications. In: Gabbay, D.M., Ohlbach, H.J. (eds.) ICTL 1994. LNCS (LNAI), vol. 827, pp. 480–505. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  7. 7.
    Georgeff, M.P., Lansky, A.L.: Reactive Reasoning and Planning. In: Proc. 3rd Nat. Conf. on Artif. Intell (AAAI 1987), Seattle, WA, pp. 677–682 (1987)Google Scholar
  8. 8.
    de Giacomo, G., Lespérance, Y., Levesque, H.J.: ConGolog, a Concurrent Programming Language Based on the Situation Calculus. Artificial Intelligence 121(1- 2), 109–169 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Harel, D.: Dynamic Logic. In: Gabbay, D., Guenthner, F. (eds.) Handbook of Philosophical Logic, vol. II, pp. 497–604. Reidel, Dordrecht (1984)Google Scholar
  10. 10.
    Hindriks, K.V.: Agent Programming Languages: Programming with Mental Models, PhD. Thesis, Utrecht University (2001)Google Scholar
  11. 11.
    Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.-J.C.: Formal Semantics for an Abstract Agent Programming Language. In: Rao, A., Singh, M.P., Wooldridge, M.J. (eds.) ATAL 1997. LNCS (LNAI), vol. 1365, pp. 215–229. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  12. 12.
    Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.-J.C.: Agent Programming in 3APL. Int. J. of Autonomous Agents and Multi-Agent Systems 2(4), 357–401 (1999)CrossRefGoogle Scholar
  13. 13.
    Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.-J.C.: A Programming Logic for Part of the Agent Language 3APL. In: Rash, J.L., Rouff, C.A., Truszkowski, W., Gordon, D.F., Hinchey, M.G. (eds.) FAABS 2000. LNCS (LNAI), vol. 1871, pp. 78–89. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  14. 14.
    van der Hoek, W., van Linder, B., Meyer, J.-J.C.: An Integrated Modal Approach to Rational Agents. In: Wooldridge, M., Rao, A. (eds.) Foundations of Rational Agency. Applied Logic Series, vol. 14, pp. 133–168. Kluwer, Dordrecht (1998)Google Scholar
  15. 15.
    Jennings, N.R., Wooldridge, M.J.: Agent technology: Foundations, Applications, and Markets. Springer, Berlin (1997)Google Scholar
  16. 16.
    Katz, S.: A superimposition control construct for distributed systems. ACM Transactions on Programming Languages and Systems 15(2), 337–356 (1993)CrossRefGoogle Scholar
  17. 17.
    Levesque, H.J., Reiter, R., Lespérance, Y., Lin, F., Scherl, R.B.: GOLOG: A Logic Programming Language for Dynamic Domains. J. of Logic Programming 31, 59–84 (1997)zbMATHCrossRefGoogle Scholar
  18. 18.
    van Linder, B.: Modal Logics for Rational agents, PhD. Thesis, Utrecht University (1996)Google Scholar
  19. 19.
    Meyer, J.-J.C., van der Hoek, W., van Linder, B.: A Logical Approach to the Dynamics of Commitments. Artificial Intelligence 113, 1–40 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Plath, M.C., Ryan, M.D.: Feature integration using a feature construct. Science of Computer Programming (2001)Google Scholar
  21. 21.
    Rao, A.S.: AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. In: Perram, J., Van de Velde, W. (eds.) MAAMAW 1996. LNCS (LNAI), vol. 1038, pp. 42–55. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  22. 22.
    Rao, A.S., Georgeff, M.P.: Modeling Rational Agents within a BDI-Architecture. In: Allen, J., Fikes, R., Sandewall, E. (eds.) Proceedings of the Second International Conference on Principles of Knowledge Representation and Reasoning (KR 1991), pp. 473–484. Morgan Kaufmann, San Francisco (1991)Google Scholar
  23. 23.
    Shoham, Y.: Agent-Oriented Programming. Artificial Intelligence 60(1), 51–92 (1993)CrossRefMathSciNetGoogle Scholar
  24. 24.
    Wooldridge, M.J., Jennings, N.R. (eds.): Intelligent Agents. Springer, Berlin (1995)zbMATHGoogle Scholar
  25. 25.
    Zave, P.: FAQ Sheet on Feature Interaction, At (accessed January 2004)

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • John-Jules Ch. Meyer
    • 1
  • Mark D. Ryan
    • 2
  • Hans-Dieter Ehrich
    • 3
  1. 1.Institute of Information and Computing SciencesUtrecht UniversityThe Netherlands
  2. 2.School of Computer ScienceUniversity of BirminghamUK
  3. 3.Dept. of Information SystemsTU BraunschweigGermany

Personalised recommendations