[Modeling] Modeling an Agent Class

Giovanni Rimassa rimassa@foresto.CE.UniPR.IT
Wed, 11 Jun 2003 10:59:38 +0200


On Tue, Jun 10, 2003 at 12:55:05PM -0400, James Odell wrote:
> Hi Giovanni ,
> 
> We all appreciate all the good work you and Paola are doing in the
> AgentClass area.  However, I would be very careful about making making
> comments that might be inflammatory  (e.g., someone being ³careless²).   I
> think it is very important that we all remain civil to one another.  We are
> all working on a difficult and important problem ‹ and it is very important
> that we solve this together as a team.  So please, let us be constructive in
> our comments to one another.
> 

I fully agree; I didn't mean to be inflammatory (I later defined myself
as being careless as well). Anyway, I guess you are right in that I
should also consider beforehand how my words could be interpreted,
rather than apologize after the fact (which I just did).


> So, on to your question: In UML 2.0, an Object is defined as an instance of
> Class.  So, Classes have objects, and Classifiers have members.  So, would
> it be useful to use the following, instead:
>        UML members = UML objects + AUML agents + UML Actors + UML Signals +
> UML Activity + ....
> 

> Would this work?
> 
> 


I'm not sure. It looks to me that if 'Classes have Objects' means
Object-instanceOf-Class, then 'Classifiers have InstanceSpecifications'.
Now, the definition of Classifier says 'A Classifiers is a namespace
whose members can include features'.
If I understand correctly, Classifier and Feature are in the type
space, whereas InstanceSpecification and Slot are in the instance
space (with 'in the type space' I mean that they appear on the right
hand side of an 'instanceOf' relationship, with 'in the instance space'
I mean that they appear on the left hand side of the same).

So, I would say InstanceSpecification-instanceOf-Classifier and 
Slot-instanceOf-Feature (actually, it is StructuralFeature, page 34)

I couldn't find the definition of Member, but my 'natural' understanding
from OO languages terminology is:


class Point {

public:

  Point(double x, double y);

  double getX();
  double getY();

private:

  double m_x;
  double m_y;

  }

};


Point p(0.12, 3.14);


In terms of the UML metamodel, 'Point' is a Class, 'p' is an Object,
and both 'm_x' and 'm_y' are members (and they could have features, if
they were of some non-primitive type).

So, to me, 'Point has p' and 'Point has m_x' are both true but 'has'
means two different things.


I would rewrite the equation in the type space as follows:


UML Classifiers = UML classes + AUML AgentClasses + <other type-level
stuff>

And, in the instance space:

UML InstanceSpecifications = UML objects + AUML Agents + <other
instance-level stuff>


I wrote <other XXXX-level stuff> because I don't know whether Actors,
Activities and the like are type-level or instance-level. Moreover, I
don't know whether for each type-level element (read: for each subclass
of Classifier) there is a corresponding instance-level element (read:
a subclass of InstanceSpecification).

Do you think it works now? If so, do you know whether we can write the
two equations completely, and with one-to-one correspondence between
type-level and instance-level equation parts?



> Ciao,
> 
> Jim
> 
> 

Ciao,

  Giovanni

> 
> On 6/10/03 11:51 AM, "Giovanni Rimassa" indited:
> 
> > Wagner, G.R. wrote:
> >>> please find attached a short document (four pages) where Paola and I

<SNIP>

> > 
> > That said, I've been careless, too, in citing 'object' only to discover that
> > though the word 'object' with

<SNIP>

> > 
> >     Giovanni
> > 
> >> 
> >> -Gerd
> >> 
> >>   
> >> 
> >> _______________________________________________
> >> Modeling mailing list
> >> Modeling@www.fipa.org
> >> http://fipa.org/mailman/listinfo/modeling
> >> 
> > 
> 
> 

-- 
	         Giovanni Rimassa
     Dipartimento di Ingegneria dell'Informazione
         Universita` di Parma - Parma (ITALY)
    Phone: +39 0521 905712 -  Fax: +39 0521 905723