[Modeling] agents vs actors

James Odell email@jamesodell.com
Sat, 20 Sep 2003 08:14:41 -0400

Marian --

I agree that the UML definitions of "actor" are not the greatest.  It is one
place where "unification" has not fully occurred -- not that I've seen any
unification anywhere else, mind you.

However, from your definition, I do not understand the difference between
actor, resource, and agent.  Tossing the word "intelligent" in there is
problematic; the AI people have been trying to define that word for a
quarter of a century now, without any agreement.  So, I would be careful of
adding that to the mix, as well.

So, can you differentiate actor, resource, and agent for us?


On 9/18/03 10:02 AM, Marian Nodine scribed:

> James --
> Interestingly enough, none of these three definitions is related to what
> I think an actor is. Here is my rough draft of a two cents worth:
> Start with activities. An activity is a coherent unit of work. An activity has
> a type.
> Now, a role describes a set of related types of activities that may be
> performed by the same actor (e.g. a hostess can pour coffee, or greet people.)
> A resource is an external entity that may be either required by or used by
> some
> activity (e.g. a printer, a document, an agent, a person).
> An actor is an intelligent resource that has the capacity to initiate, manage,
> and/or control activities of given types.
> Actors have capabilities. These capabilities define the roles that the actor
> can fill (e.g. I can be a coffee pourer, I can be a people greeter, I can be a
> hostess.). An agent may be assigned to do a particular activity if the
> activity
> has a type that may be performed by one of the roles that are within the
> agent's capabilities. (modulo the fact that the agent may be able to learn new
> capabilities).
> -- Misty
> James Odell wrote:
>> Vivek ,
>> This discussion would benefit greatly by a clarification of what an actor
>> is. The following three sentences are all taken from the UML2.0 spec:
>> "An actor specifies a role played by a user or any other system that
>> interacts with the subject."
>> "An Actor models a type of role played by an entity that interacts with the
>> subject"
>> "Actors model entities external to the subject. Each actor represents a
>> coherent set of roles that users of the subject can play when interacting
>> with it. When an external entity interacts with the subject, it plays the
>> role of a specific actor."
>> As you see, the three sentences define actor completely different: a role, a
>> type of role and an entity/set of roles - the last one is the Semantics
>> text. (This should in fact be registered as an FTF issue to be fixed in the
>> coming year.)
>> Cheer,
>> Jim
>> On 9/17/03 12:36 PM, "Vivek Kumar Singh" indited:
>>> Hello all,
>>> I'm a student of Mtech ICT, DA-IICT, india. I'm working on modelling of
>>> a project on agents. But I'm finding it very diffiult to categorize my
>>> agents as either actors or use cases. According to books on UML
>>> modeling, and actor is an external entity interacting with our system.
>>> If I consider this then agents can't be actors. But also it is said
>>> that actor can initiate processes (use cases). So according to this, my
>>> agents become actors.
>>> My project idea is to develop intelligent agents for every student in
>>> institution and also to have intelligent library agents. Then students
>>> can just order their agents to search for a book on a particular topic.
>>> The agents who will be knowing about his master's interests and
>>> knowledge level and will intelligently search for most suitable book
>>> for his master from a big list of books. The library will also have
>>> intelligents on particular subjects. The project also have many adjunct
>>> features.
>>> But the problem is identifying agents as actors or use cases. I've seen
>>> extended form of UML for this, but what can be done with UML's present
>>> form and Rational rose. Kindly give suggestions.
>>> With regards,
>>> Vivek Kumar Singh