[Modeling] Class Diagram Specification
Tue, 10 Jun 2003 16:50:06 +0200
Hi Jim and all,
Thank you for your comments.
You are right when you say that if we decide to refer to the Classifier we
do lose some properties, which characterize the Class element.
Reading the UML 2.0 -Sup. specification we, Giovanni and I, have drawn some
conclusions, reported in the following. We apologise for being too verbose
but our main purpose is to try to be clear and accurate. We are not sure to
be right, so, since you are an expert of UML, we really appreciate your
Finally we would like to point out that what follows has its foundations in
the document (AgentClassAnalysis) sent by Giovanni some days ago. So please,
refer to it for a deeper analysis of the topic.
In UML -Sup. 1.8 page 38 is reported "A classifier is a type and can own
generalizations, thereby making it possible to define generalization
relationships to other classifiers. A classifier can specify a
generalization hierarchy by referencing its general classifiers."
So, in our opinion, we do not lose "derived superClass"
In the UML diagram, detailing the Feature element, there is a
Classifier-Feature association. Operation is a subclass of
BehavioralFeature; BehavioralFeature is a subclass of Feature. So, an
element, let's say the AgentClass, subclass of Classifier can have "Feature"
; what we lose is the constraint to have this particular kind of feature,
that is "Operation". We think it is not a loss, instead it is what we want
to achieve. In fact, concerning the "Operation" element, it has the "pre"
and "post" conditions, which are not appropriate for agents. However, we
think that agent features should have their own classification and we can
achieve this defining several stereotypes that apply to the "Feature"
element, each one with its own special semantics.
In UML-Sup. 1.11 page 56, in the Classes diagram of the kernel package,
there is a
Classifier-Property association. So, a classifier can have attributes.
you are right! Actually, we do not know if we really need this for agents.
"What about using Components for agents?"
It is interesting. We are taking into consideration it. However we think it
is a different view respect to AgentClass, seen as a subclass of Classifier.
As a matter of fact Class and Component coexist in UML 2.0. While we
consider that Classifier should be extended to better define the agent
semantics, maybe from the point of view of components we can use the
Component element as it is, instead of defining an AgentComponent.
> Making AgentClass a subtype of Classifier is an interesting idea. However,
> if you did that, you would lose the properties of class, which include:
> nestedClassifier, ownedOperation, ownedAttribute, and the derived
> superClass. Wouldn't you also want these for agents? If not,
> then you are
> probably correct. What do you think?
> Also, what about using Components for agents?