Book a Demo

Author Topic: When to nest requirements vs when to aggregate  (Read 16074 times)

mark1406

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
When to nest requirements vs when to aggregate
« on: July 23, 2009, 01:30:55 pm »
Are there rules/guidelines on when to nest requirements (creating an owned by relationship) versus when to create an aggregation relationship?

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #1 on: July 23, 2009, 02:30:54 pm »
Quote
Are there rules/guidelines on when to nest requirements (creating an owned by relationship) versus when to create an aggregation relationship?
Do you mean when should you use composite versus shared aggregation for Requirements?

If so, then you are asking about the various forms of meronymy for Requirement.  My view is that if when the holonym (parent requirement) is removed, the meronymy (children) also have no meaning, then you have a composition, otherwise you have shared aggregation.

NOTE: any specific requirement may have both composite and shared nestlings!  As I argue above, we are really discussing the relationship between one specific requirement and another.  In addition to the aggregation relationships, one may have simple association between any two requirements.

Hope that helps,
Paolo
« Last Edit: July 23, 2009, 05:40:16 pm by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

mark1406

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #2 on: July 23, 2009, 04:09:08 pm »
Thanks Paolo, you've confirmed my suspicion that this isn't black and white and your approach seems logical. In practice, is there any risk to mandating aggregation only?

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #3 on: July 23, 2009, 05:38:54 pm »
Quote
Thanks Paolo, you've confirmed my suspicion that this isn't black and white and your approach seems logical. In practice, is there any risk to mandating aggregation only?
I wouldn't think so Mark; although there's the continuing debate about whether there is such a thing as Requirements Decomposition...

The consensus view here (at Proteus) is that if you discover a "composite" requirement you should attempt to decompose it into its constituent meronyms.  This is to ensure that you attempt to trace at the appropriate level of granularity!  Typically you'll be hard pressed to adequately trace at the composite level - and, in fact, the composite requirement may not pass the "Duck Test" for a valid Requirement.

Having said that, and having found all the appropriate "leaf" requirements - you might chose to aggregate (shared) them for convenience by various categorizations etc...  In all likelihood, the aggregates thus synthesized may bear only casual relationship to the original composites!

Does that help or confuse?
Paolo
« Last Edit: July 23, 2009, 05:39:52 pm by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

mark1406

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #4 on: July 24, 2009, 12:56:32 pm »
Thanks for the feedback. Specifically I am trying to determine the best way to document business requirements such as "minimise the time to identify errors in historical FooBaa data" along with the implied technical requirements for the system that will realise the requirement and the user interactions with the system.

My current thinking is that...

The aggregated technical requirements for the above include a wizard that reviews the imported data and employs a heuristic learning algorithm. So the technical requirements specify the capabilities of the system.

The use cases then define how the user interacts with the wizard and algorithm. So they specify the requirements fo the interfaces and state machine.

Does that seem correct from a UML documentation perspective?

fwoolz

  • EA User
  • **
  • Posts: 435
  • Karma: +0/-0
  • We have met the enemy, and he is us.<Pogo, 1970>
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #5 on: August 11, 2009, 07:39:16 am »
One possibly related point:

Requirements may be literally nested in the Project Browser simply by dragging and dropping such that a requirement becomes a child of another. If level numbering is turned on, this gives a nicely hierarchical outline view of requirements in the Project Browser. An additional plus is that the level number can be included in RTF reports. However, while the parent-child relationship is created in the EA database, no corresponding nesting relationship connector is created.

I have always found this to be a bit inconsistent, but it does at least give the user the option of specifying the type of relationship between requirements. Perhaps Sparx could add a project option like "Nesting in Project Browser automatically creates a (fill in the blank) link"?

Cheers,
Fred Woolsey
« Last Edit: August 11, 2009, 07:40:04 am by fwoolz »
Fred Woolsey
Interfleet Technology Inc.

Always be ready to laugh at yourself; that way, you beat everyone else to the punch.


mark1406

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #6 on: August 11, 2009, 12:38:24 pm »
I agree Fred. This does seem inconsistent and the ability to specify a default relationship / pick at relationship creation would seem to be useful.

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: When to nest requirements vs when to aggregate
« Reply #7 on: August 11, 2009, 09:28:31 pm »
I suppose the connector should be consistent with what the hierarchy view shows. And of course the hierarchy should in turn be consistent with the Project Browser tree. Withing those limits Sparx could go about this however they wanted.

Of course this would be best if it were consistent across all of EA, but that's part of a larger (and much more important) discussion.
No, you can't have it!