Sparx Systems Forum
Enterprise Architect => Suggestions and Requests => Topic started by: dlundy on October 24, 2004, 06:55:25 am
-
Problem: Swimlanes can be reordered through use of the related dialog. However, using this feature does not result in the CONTENTS of the swimlane being moved as well.
Swimlanes are used to a great extent in Analysis activities (as well as other SDLC tasks). This process, not suprisingly, is iterative and discovery of further detail occurs all the time. Consequently, the NEED to move the swimlanes and their contents around is essential.
I have requested a Feature to support moving swimlanes and their contents.
I would appreciate any help or comment from Sparx and this community if they are aware of a workaround.
Dan Lundy
-
Hi,
there is a simple workaround, moving the contents manually. It is not as bad as it sounds, as you can easily select multiple elements (e.g. all elements within a swimline) and move them all together.
Having said that, if swimlane behaved much like a boundary or GUIScreen element that move the underlying elements with them, that would be great!
Bruno
-
Thanks Bruno!
While at first glance, the ability to multi-select and move would seem sufficient, the problem becomes much more complex in diagrams that contain 3 or more swimlanes. In order to move elements around, you have to move the first set out of the way. Then you have to select the second group and move that set to its new location. Then you have to move the first set into its new location. This is a three move operation that gets even worse as the number of swimlanes increases.
In the diagrams of one of our projects, it is not uncommon for the Analysts to create diagrams - typically Happy Path schematics - that have 7 or more swimlanes in various stages of completion. As demonstrated above, moving these elements around becomes an exercise in frustration, if admittedly not an impossibility. It is further complicated by the requirement that the swimlanes, which do not behave as first class diagram elements, must be reorded via the dialog - which can lead to confusion as to what moves where.
Of course, I am emphasizing the pain - since when the need to reorder occur, painful it is - in extremis.
I have bastardized the use of fork/join elements to create pseudo-swimlanes that can be grouped and moved. However, this is not a satisfactory solution.
If EA could automate this, I echo your comment: This would be GREAT!
-
I have bastardized the use of fork/join elements to create pseudo-swimlanes that can be grouped and moved. However, this is not a satisfactory solution.
No, don't do that! Partitions are what you need: they're in the Activity toolbox.
-
KP, a very good suggestion, thank you! It certainly spares me the pain of manhandling the fork/join bars and works with grouping. However the relative unfun of lining up partitions to act as swimlanes (horizontal and vertical alignment next to each other is a particular exercise in nojoy) serves to remind one that they really aren't swimlanes. Still, it is better than my practice with bars.
Yet, the need to manipulate a swimlane and its contents remains the real goal. I realize there is some additional levels of complexity here as the contents of swimlanes, by their very nature, have connections to the contents of other swimlanes. One wonders if the OMG considered the practicalities of this kind of manipulation when defining the specification. Regardless, the usefulness of swimlanes begs for enhanced support in EA.
-
Could I take this one step further? UML 2 Partitions certainly overcome the 1.5 pain of swimlanes. But it would be a lot easier for me to mainpulate the things if there was some way to move partition plus contents such that it did not kidnap elements it ran over and paused on on the way to its new location.
Similar to Dan, when the model is large and complex, I tend to use very zoomed out views to move stuff around and when trying to reposition a partition it frequently captures elements that I dont want captured.
rgrds
Bruce
-
Thanks Bruce for pointing out this odd behavior of Partitions. When zoomed out, it is entirely too easy to *pick up* the odd activity or element here and there.
I would think that Partitions are my ultimate answer. However, as of release 739 - it appears that none of the ALIGN commands work on Partitions. This leaves one with the task of lining up the Partitions, making sure they are the right size, etc. In addition, one is still left with the multiple move problem when reorganizing the diagram.
Correct me if I read too much into your post, but are Partitions the semantic/visual replacement for swimlanes in UML2 - or are they just an addition? I will look through the current OMG UML2 documents - but I could be saved some grief here!
-
A quick correction: The ALIGN menu commands do work - that is ONE of them will. If you select two or more Partitions, then use one of the ALIGN commands - it will work. However, it will fail on subsequent requests. This requires you to deselect then select the Partitions again - and pick the next ALIGN command.
-
Correct me if I read too much into your post, but are Partitions the semantic/visual replacement for swimlanes in UML2 - or are they just an addition? I will look through the current OMG UML2 documents - but I could be saved some grief here!
Yes, that is my interpretation. Or, if you like, partitions are a semantic enhancement of swimlanes ... and the notation "expectations" of OMG infer replacement of the simple 1.5 swimlane notation.
See Superstructure 12.3.8 (pp323..) and in particular the last two subtopics.
Bruce
-
I am convinced.
I read through the referenced UML2 specification and tested the use of (Activity)Partitions in my own tests models. They work well and are more flexible and usable then simple swimlanes.
Thanks to all of you for guiding me to the light!
-
I use boundaries to move around blocks of diagram objects quickly. If you have 6 swimlanes, and you want to move #6 to #3, you:
- create boundaries around the objects in swimlanes #3 to #6.
- Rearrange the swimlanes.
- Then move the objects in bulk by moving the boundaries.
- When finished, delete the boundaries.
It sounded too scary when you had to use Align in some way.
Have fun!