16.02.03 - 21.02.03, Seminar 03081
Objects, Agents and Features
Organizers
H.-D. Ehrich (Univ. Braunschweig, D), J.-J. Meyer (Utrecht, NL), M. Ryan (Univ. of Birmingham, GB)
Documents
List of Participants
Dagstuhl Follow-Up Publication
Summary
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.
In recent years, concepts in object-oriented modeling and programming have been extended in several directions, giving rise to new paradigms such as agent-orientation and feature-orientation.
The Dagstuhl seminar explored the relationship between the original paradigm and the two new ones. The participants' reaction was very positive, and we are planning a Springer-Verlag book of the proceedings. See http://www.cs.bham.ac.uk/~mdr/research/dagstuhl03/cfp
Presentation and publication
There were approximately 30 oral contributions, of which 15 were from young researchers. There were no keynote presentations and no posters. None of the papers have been published under the auspices of the Seminar, but a book is planned (as mentioned above). The presentations were wide-ranging and varied.
Scientific highlights
The main highlight was the exploration of the novel theme which ran throughout the seminar, namely the intersection and interaction between the three concepts of the seminar title. Some of the issues are highlighted in the following table.
| Objects | Agents | Features |
|---|---|---|
| basic structuring mechanism | structuring mechanism | secondary structuring mechanism; cuts across existing structure |
| private data & message passing | private data & communication | violates privacy; invades code |
| reactive | deliberative, reflective, having belief/desire/ intention | "goal oriented" desirable |
| prescribed behaviour | autonomous | autonomy desirable |
| monotonic (+ overriding) | non-monotonic | non-monotonic |









