Hi there,

Below I present the way I currently structure complex use case models. I
also present some drawbacks of my current approach and a new approach (which
I'm intending to adopt). I would be glad to hear your comments on both
approaches below. Sorry if this is not the most appropriate forum to discuss
this. My apologies also for the long message.

Thanks in advance,
Ricardo Giacomin.

----
CURRENT:
I use packages to structure complex use case models. I usually include an
overview use case diagram which depicts the coupling degree of my model, as
a colection of dependency relationships among packages. In this view, I also
include the participation of actors, showing their relationships with
packages (I use dependency relationship for this purpose). This is
interesting given that I normally use actor interests while decomposing
(packaging) my use case models.

I use ReqPro as my requirements repository. The hierarchy of requirements in
my Rose model is mapped to the corresponding hierarchy of requirements in
ReqPro. I mean, I define a requirement (of type use case) for each package
in my use case model and create a child requirement (also of type use case)
for each use case in that package. I associate each use case in the model
with the corresponding requirement in ReqPro.

DRAWBACKS:
The only relationship between an actor and a package available in Rose is
dependency. Unfortunately, the semantics of a dependency between an actor
and a package is not precise (is it defined in UML spec?). I normally
consider that an actor depends on a use case package if she instantiates
"some" use case within that package. Moreover, a package depends on an actor
if "some" use case in the package is associated with the actor (with the
association towards the actor).

It is not possible to tie a package in the use case model with the
corresponding requirement in ReqPro. ReqPro allows one to associate a
requirement with a use case in Rose model, but does not allow the
association of a requirement with a package of use cases.

Since there is not an explicit hierarchy of requirements (use cases) in Rose
model (instead, the hierarchy is suggested by the package hierarchy), it is
not possible to inherit from "parent" use cases. In other words, there is a
hierachy but inheritance is not possible.

SUGGESTION:
Be explicit as for the requirements hierarchy. I mean, there will always be
a generic use case corresponding to the entire system you are modeling (some
can call this use case the system context diagram). This use case will be
specialized by several use cases, each corresponding to the otherwise
first-level packages. Each first-level use case will even further be
specialized by the second-level use cases, and so on. The leaves on this
tree would be the "real" use cases. Notice that this suggestion does not
assume a top-down decomposition approach or the absence of packages.

There is at least 4 benefits of such approach:
1) substitutability property of generalization relationship allows the
production of simpler diagrams
2) the overview diagram is semantically more precise, since it includes
association among actors and use cases, which has precise semantics
3) we will always be able to associate higher level requirements in ReqPro
to higher level use cases in Rose.
4) we will be able to associate non-functional requirements to use cases of
any level, including the use case corresponding to the entire system

The only problem I see in this approach is that a package and its
corresponding use case are not semantically equivalent constructs. The
package physically contains (through composition) its use cases whereas the
generic use case is specialized by its children use cases.
************************************************************************
* 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/support/usergroups/rose/rose_forum.jsp
* 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