> Jose Carlos Alves de Almeida wrote:
> 
> Hi folks,
> 
> We are using Rose 2000-e and we got the following problem.
> We have built a big sequence diagram, and we reached a point
> where it is very difficult to work with

Senor Alves de Almeida,

You have a beautiful name.

You are probably (1) showing too many architectural layers in your
sequence diagram, or (2) failing to hide subsystems, or (3) including
too many pieces of work in the underlying scenario.

TOO MANY ARCHITECTURAL LAYERS could be illustrated this way:  Take a
Graphical User Interface problem as an example.  A single scenario might
take you through several windows, each with several GUI controls.  If
you draw a sequence diagram that includes all the GUI controls as
objects, the width and length of the diagram can get out of hand (and
the diagram is also hard to grasp mentally).  To solve this, you can
"hide" the controls by using message names in a function call format,
like:
                    __________
                   | myWindow |
                   |__________|
                        |
   8: click(OKButton)   |
----------------------->|
                        |
                        |

This works well because the myWindow object implicitly has operations
for handling the OKButton's events, and we can safely leave out these
details at this level of analysis.  (If you want, you can show a
reflexive message from myWindow to itself to show handling of the
event.)

If you want, you can draw another sequence diagram to show the
interaction of controls and logic within the myWindow object, but you
only need to do that when the sequence is complicated.  A correct
"detail" diagram of this kind doesn't harm the truth of the higher-level
interaction diagrams showing messages between the window objects.

FAILING TO HIDE SUBSYSTEMS shows up when you have an entity that forms
the only interface to a cascade of other entities.  People often put
these mistakes to the left of the sequence diagram, and they look like
this:

          (obj1)       (obj2)       (obj3)
            |            |            |
----------->|            |            |
            |----------->|            |
            |            |----------->|
            |            |            |
            |            |<-----------|
            |<-----------|            |
<-----------|            |            |
            |            |            |

The left of the diagram often becomes very sparse.

If the only access to obj2 and obj3 is through obj1, it's quite possible
that obj2 and obj3 should be left out of the sequence diagram -- it
depends on whether or not the diagram makes sense without them, or on
whether obj2 and obj3 can be viewed as parts of a separate subsystem. 
This is another situation where you can draw a separate "detail"
sequence diagram at some point, if the hidden interactions are
complicated.

Finally, INCLUDING TOO MANY PIECES OF WORK in the scenario can lead to
unmanageable sequence diagrams.  1 scenario = 1 sequence diagram.  If
your scenario gets too long and complicated, your sequence diagram
probably does the same.  Choose an efficient definition of a "meaningful
piece of work", with clear pre- and post- conditions.  A scenario
doesn't have to be a complete path through a use case flow of events.

-Eric
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages: 
http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************

Reply via email to