[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