4

I'm trying to understand the rules defined by the UML2 metamodel for associations between actors and usecases in usecase diagrams. I understand that actors and usecases can take part in generalizations (because they are derived from Classifier which adds the possibility for generalization), and I understand that an usecase can have extend/include-relationships to other usecases (because it is directly defined in the specification for usecase diagrams). Here is a part of the metamodel diagram for usecases:

enter image description here

As you can see, there are no associations between actors and usecases at all in this diagram. This can only mean that associations are allowed due to a common supertype of actor and usecase, perhaps BehavioredClassifier or Classifier. So my question is:

  • Which of the meta(-classes) or elements in the metamodel hierarchy are responsible for associations between actors and usecases?

Another thing which is confusing: there is a constraint that says:

An actor can only have associations to use cases, components, and classes. Furthermore these associations must be binary.

But there is no equivalent constraint defined for usecases (except the binary thing). Does that mean associations always belong to actors and usecases are not aware of their associations towards actors? The specification can be found here, thanks.

Cœur
  • 37,241
  • 25
  • 195
  • 267
ceran
  • 1,392
  • 1
  • 17
  • 43
  • Are you developing a UML tool? Or just try to learn UML to use it? – Hippias Minor May 14 '13 at 13:11
  • I'm trying to build an independent, lightweight and small ecore-based metamodel for usecase diagrams that follows exactly the rules of the uml metamodel. It's for the prototype of an UML tool. But apart from that I'm just curious now. – ceran May 14 '13 at 13:30

1 Answers1

3

The metaclasses responsible for associations between Actors, Usecases, CLasses, Component, etc. are Association and Property. When you associated a Actor to an Usecase, three elements are involved: an association and two properties. An association is a none directed relation between elements (classes, components, etc.) The properties represent the "ends" of your association and an association is binary if it has exactly two ends.

Hoping it helps

Red Beard
  • 3,436
  • 1
  • 14
  • 17
  • Thank you so far. It would be great if you could outline a simple single assocation between an actor and an usecase and how things are related. So we have an actor A, an usecase B and an association C with 2 properties on each end, P1 and P2. An association has the references "memberEnd" and "ownedEnd" among others. memberEnd always seems to be involved (2..*), but when to use ownedEnd (0..*)? And how are A and B aware of the association in between, do they link to P1/P2 in their attribute (0..*) references? Thank you. – ceran May 15 '13 at 10:05
  • All association ends are referenced by "memberEnd" and the "ownedEnd" is used for modeling the navigability. A and B are aware of the association if they owned an end. If P1 and P2 are owned by the association, A and B are not aware of the association which is not navigeable. if A and B owned one properties each of them are aware of the association so the association is navigeable on both side. and If one end is owned by the association and the other end by, let says, A the association is navigeable from A to B. – Red Beard Jun 22 '13 at 10:47