Sparx Systems Forum

Enterprise Architect => Suggestions and Requests => Topic started by: dbJav on December 13, 2006, 07:22:31 am

Title: Creating responsibility diagrams
Post by: dbJav on December 13, 2006, 07:22:31 am
Hi there,

I'm trying to produce "responsibility diagrams" showing the relationships of a given actor.  Now when a swimlane in an activity diagram (or BPMN diagram in my case) is used as an instance of an Actor. The instance does not appear in the project view and can therefore not be dragged to a responsibility diagram.

If I drag the Actor instead, it shows no relationships.  The fact that an activity or task is drawn within a swimlane should however be considered as having a relationship with the Actor (or Actor instance?).

I would like the possibility to reuse Actors (or Actor instances?) as swimlanes in some diagrams and as the usual Actor icon in other diagrams.

Denis.
Title: Re: Creating responsibility diagrams
Post by: «Midnight» on December 13, 2006, 10:05:45 am
Denis,

AFAIK, neither EA nor UML imply a relationship between swimlanes and elements. So you're out of luck as far as this is concerned. This is a bit like boundaries, where there is no formal 'ownership' relationship as there is with (packages) packages.

As far as instances showing up in the Project Browser, check your settings for tree depth. It is possible for elements - particularly instances - to be at too low a level in the model to show up. You'll find the right settings from the main menu via Tools | Options. They are at the bottom of the main Options page.

David
Title: Re: Creating responsibility diagrams
Post by: Paolo F Cantoni on December 13, 2006, 12:43:33 pm
Quote
Hi there,

I'm trying to produce "responsibility diagrams" showing the relationships of a given actor.  Now when a swimlane in an activity diagram (or BPMN diagram in my case) is used as an instance of an Actor. The instance does not appear in the project view and can therefore not be dragged to a responsibility diagram.

If I drag the Actor instead, it shows no relationships.  The fact that an activity or task is drawn within a swimlane should however be considered as having a relationship with the Actor (or Actor instance?).

I would like the possibility to reuse Actors (or Actor instances?) as swimlanes in some diagrams and as the usual Actor icon in other diagrams.

Denis.
Hi Denis,

As you may know many EA vertexes (Classifiers, behavioural elements etc)  Can be rendered in more than one way.  For example, a control entity can be rendered as a either the circle based notation or the rectangular notation.

If a vertex had an option:  Use Partition notation (for this diagram - Partition is the UML 2 name for a swimlane) would this help you?  That way the partition and the Actor would be the same thing - just rendered differently.

Now, the next step is to define that you indicate relationships between other vertexes and the partitioning vertex by either an explicit edge between the partition and another vertex, or by placing the other vertex within the partition.  This placement would create a relationship between the two vertexes.  What would be the nature of the relationship, type, stereotype?

If Sparx implemented such an approach it would make your (and others) lives a lot easier; would it not?

HTH,
Paolo
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]

[Edit: previous afterthought was incorrect]
Title: Re: Creating responsibility diagrams
Post by: dbJav on December 14, 2006, 01:31:45 am
Hi David,

Quote
AFAIK, neither EA nor UML imply a relationship between swimlanes and elements.

The UML 2.0 and 2.1 specs really show an association named "represents" from ActivityPartition to Element. Please also take a look at the semantics section for ActivityPartition.  

Quote
As far as instances showing up in the Project Browser, check your settings for tree depth. It is possible for elements - particularly instances - to be at too low a level in the model to show up. You'll find the right settings from the main menu via Tools | Options. They are at the bottom of the main Options page.


I have modified the "Max Hierarchy View Depth" and "Open hierarchy view to" options but they have no impact on the "project browser".  They only concern the Hierarchy window.  Unfortunately the actor instances created for the partitions are visible neither in the Project Browser nor in the Hierarchy window.   :'(

In the end here's what I'd like to achieve with EA: retrieve the information that a given actor (represented the normal way or as a partition) has been used in different diagrams,  and produce a diagram which shows an Actor and all of its usages in these diagrams (usage represented by a link between the actor and a diagram).

Denis
Title: Re: Creating responsibility diagrams
Post by: Paolo F Cantoni on December 14, 2006, 02:10:16 am
Quote
Hi David,

The UML 2.0 and 2.1 specs really show an association named "represents" from ActivityPartition to Element. Please also take a look at the semantics section for ActivityPartition.
[size=13][SNIP][/size]
Denis
Hi Denis,

Thanks for the pointer.  Looking back at my post, I see I made an error in the after thought.  (What happens when you rush it... :))  I've now gone back and corrected it...

However, the represents association isn't the one I was talking about.  That association is the ability to use partition notation.

What I was asking about (obviously not too clearly) was...

Say I have a previously unrelated classifier and I drag it onto a partition that represents another classifier, what is the nature of the relationship you have now created between the two classifiers?

Paolo
Title: Re: Creating responsibility diagrams
Post by: «Midnight» on December 14, 2006, 06:12:05 am
Quote
If I drag the Actor instead, it shows no relationships.  The fact that an activity or task is drawn within a swimlane should however be considered as having a relationship with the Actor (or Actor instance?).

I would like the possibility to reuse Actors (or Actor instances?) as swimlanes in some diagrams and as the usual Actor icon in other diagrams.

and
Quote
The UML 2.0 and 2.1 specs really show an association named "represents" from ActivityPartition to Element. Please also take a look at the semantics section for ActivityPartition.

As I understand it, the various "represents" relationships you mention are between swimlane headers class or attribute elements. These relate a particular swimlane to a given element in the sense that the element is the 'topic' of the swimlane. The element must appear elsewhere in the model. The "represents" relationship is not meant to relate the swimlane to other elements 'between the lines' as it were. If you want to define relationships between the 'header' element and other elements in the model, use the appropriate UML connectors. Simply including them within a swimlane does not constitute a semantically meaningful relationship.

David
Title: Re: Creating responsibility diagrams
Post by: Paolo F Cantoni on December 14, 2006, 08:29:13 am
Quote
As I understand it, the various "represents" relationships you mention are between swimlane headers class or attribute elements. These relate a particular swimlane to a given element in the sense that the element is the 'topic' of the swimlane. The element must appear elsewhere in the model. The "represents" relationship is not meant to relate the swimlane to other elements 'between the lines' as it were. If you want to define relationships between the 'header' element and other elements in the model, use the appropriate UML connectors. Simply including them within a swimlane does not constitute a semantically meaningful relationship.

David
I do believe, Sir David, that you are contradicting me...   ???   ;D

I did imply that including one classifier within a a partition representing another created some semantically meaningful relationship...  However, I did observe that I was at a loss to formally define it...  So maybe we are both right...

To paraphrase a very old advertisement for a non-alcoholic beverage maybe there's a: "Clayton's" relationship - the relationship you have when you don't have a relationship...

Anyway, we're agreed that the represents relationship is what provides the name in the header of the partition (if there is one) and doesn't link the partition to its contents.

Paolo
Title: Re: Creating responsibility diagrams
Post by: «Midnight» on December 14, 2006, 09:23:59 am
Quote
I do believe, Sir David, that you are contradicting me...   ???   ;D

I did imply that including one classifier within a a partition representing another created some semantically meaningful relationship...  However, I did observe that I was at a loss to formally define it...  So maybe we are both right...

I suspect that any contradiction, real or implied, may be caused by limitations in the specification...

If they'd just get around to formalizing these things then this area would (or at least could) sort itself out. In the process there might even be a solution to the problem Denis reported in the first place, which we still don't have a solid attack on.

Mom always said there'd be those days.

David
Title: Re: Creating responsibility diagrams
Post by: KP on December 14, 2006, 04:49:20 pm
One thing you (the OP) might like to try is defining a custom search to extract the implied relationships (Wikipedia:Clayton's (http://en.wikipedia.org/wiki/Claytons)).

You will need to define a search that will find all actors that are used as classifier for an activity partition and return all elements owned by that partition. I think a single SQL command should do the job, joining a couple of selects on the t_object table, but it's beyond my limited SQL abilities, I'm afraid.

If you also want to find elements not owned by the partition but just positioned inside the partition, then it gets a whole lot more complicated. That would involve searching the t_diagramobject table to find instances of the partition and comparing the left, right, top and bottom values of all other objects on the same diagram, then looking up any wholly contained objects in the t_object table. This is probably a job for an add-in, not the custom search facility.

Of course, all this will give you your results in a table, not diagram, but at least you get your results.
Title: Re: Creating responsibility diagrams
Post by: dbJav on December 15, 2006, 06:10:13 am
Well I'm afraid this discussion is drifting away from my actual need.  Sorry if I didn't state my problem very precisely.  In fact there're two facets to the problem, namely:

Contrary to what I may have written, I'm not so much concerned by the 1st topic than by the 2nd.

The real topic of interest is being able to produce responsibility diagrams.  I'm looking for a means in EA to add an existing actor to a diagram (dragging it from the Project Browser) then add all diagrams in which the actor intervenes. Each diagram would appear as an icon linked to the actor.  Diagram icons would be clickable in the generated HTML pages to display the diagram.

I haven't found a solution to that problem in EA yet and I would really appreciate getting it as a new feature in a future version of the tool.

Denis
Title: Re: Creating responsibility diagrams
Post by: thomaskilian on December 15, 2006, 06:47:21 am
Hi Denis,
there's probably no simple solution. Except you write an add-in to do the following.
- Select the Actor
- Use Ctrl-U to see in which diagrams it appears
- Open the diagrams one by one
- Use Diagram/Show in Project View
- Drag them to the new Responsibilty Diagram

I don't know of any easier way to do what you want.
Title: Re: Creating responsibility diagrams
Post by: dbJav on December 15, 2006, 07:40:21 am
Hi Thomas,

Unfortunately step 2 is not working.

If you define a swimlane in an Activity diagram for instance and the Classifier refers to an Actor,  Ctrl-U on that actor does not show the usage in your activity diagram...

Can we enter that as a Bug ?

Denis
Title: Re: Creating responsibility diagrams
Post by: thomaskilian on December 15, 2006, 07:52:51 am
I think so, since Ctrl-U should show all diagram usages. And if it doesn't it's a bug...
Title: Re: Creating responsibility diagrams
Post by: «Midnight» on December 15, 2006, 01:45:38 pm
If it's not a bug it certainly is a limitation. Either way it is worth requesting, and something Sparx could probably address quickly.
Title: Re: Creating responsibility diagrams
Post by: KP on December 17, 2006, 01:37:23 pm
Quote
Unfortunately step 2 is not working.

If you define a swimlane in an Activity diagram for instance and the Classifier refers to an Actor,  Ctrl-U on that actor does not show the usage in your activity diagram...

If you use activity partitions instead of swimlanes then Ctrl+U does find the classifiers. Custom searches can find activity partitions too. I would recommend you use activity partitions instead of swimlanes.
Title: Re: Creating responsibility diagrams
Post by: «Midnight» on December 17, 2006, 03:05:21 pm
Quote
If you use activity partitions instead of swimlanes then Ctrl+U does find the classifiers. Custom searches can find activity partitions too. I would recommend you use activity partitions instead of swimlanes.

Which of course fits well with the UML points you make above...
Title: Re: Creating responsibility diagrams
Post by: dbJav on December 18, 2006, 12:44:01 am
Quote
If you use activity partitions instead of swimlanes then Ctrl+U does find the classifiers. Custom searches can find activity partitions too. I would recommend you use activity partitions instead of swimlanes.


Hi Neil,

Yes, Ctrl-U works with ActivityPartitions.

Now I'm looking for a way to create those responsibility diagrams as described earlier in this thread.
But unfortunately I see no model-level relationship or support in the tool to graphically display the usages of an element in diagrams.
That would be a very useful feature to add to EA, wouldn't it ?

In this case in order to document our internal processes, I want to produce a diagram for each role (actor) to indicate where he's involved in the processes.  I wish I could use the existing "Insert related elements..." menu item to add the diagrams in which the element appears (including as an ActivityPartition or swimlane).

Could that be registered as a feature request please?

Denis