Author Topic: Model DrillDown  (Read 7163 times)

Erik

  • EA Novice
  • *
  • Posts: 17
  • Karma: +0/-0
    • View Profile
Model DrillDown
« on: March 11, 2009, 05:33:29 am »
It would be nice if there was a way to describe a drill down feature, so that I can "drill down" from the Conceptual, to the Logical, to the Physical Layer.

Right now, I need to name things similarly in 3 different packages; and there is nothing associating them together..

Maybe a new kind of relationship "Describes, or DrillDown".

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Model DrillDown
« Reply #1 on: March 11, 2009, 07:29:25 am »
Try using a «trace» relationship, which exists (largely) for this purpose.

There are some limitations to this, but you could use hyperlinks to handle drilling down to other diagrams.

AFAIK these relationships do not show up (explicitly) in the Matrix view, at least not in 7.1. I do not know if this has been improved in 7.5.
No, you can't have it!

Thelonius

  • EA User
  • **
  • Posts: 274
  • Karma: +6/-0
  • I think. Therefore I get paid.
    • View Profile
Re: Model DrillDown
« Reply #2 on: March 11, 2009, 08:21:46 am »
I confess. I'm a UML cretin. My approach to UML is to not use any aspect of UML until I'm confident that my use of it constitutes valid UML practice.

The <<trace>> relationship sounds like it might be useful.

I've read the Sparx blurb:

Traces
The trace relationship is a specialization of a dependency, linking model elements or sets of elements that represent the same idea across models. Traces are often used to track requirements and model changes. As changes can occur in both directions, the order of this dependency is usually ignored. The relationship's properties can specify the trace mapping, but the trace is usually bi-directional, informal and rarely computable.

But can someone give me a simple 30-second example of how they use the trace dependency? Preferably using an example taken from the unfashionable business / business IT world (not a rocket-science software engineering example)?

 :)

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13404
  • Karma: +567/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Model DrillDown
« Reply #3 on: March 11, 2009, 05:38:23 pm »
Indeed the <<trace>> relationship is often used for this purpose. (btw the quote from the Sparx blurb is the exact description in the UML specs)
Another one that you could use is the <<refine>> relationship. This is maybe even more suitable to your needs.
From the UML 2.1.2 superstructure:
Specifies a refinement relationship between model elements at
different semantic levels, such as analysis and design. The
mapping specifies the relationship between the two elements or
sets of elements. The mapping may or may not be computable,
and it may be unidirectional or bidirectional. Refinement can be
used to model transformations from analysis to design and other
such changes.


As an example, consider the classical school example.
In your conceptual layer you might have a class "Student"
In your logical layer that class may be split into two classes: "Person" and "Class Registration" as on the logical level you see that the definition of a student is nothing more then a person that has registered for a class.
On the physical layer those classes could be represented by Tables.
A <<trace>> or <<refine>> relationship would go from the tables to the logical classes, and from the logical classes to your conceptual class.

Hope this helps.

Geert
« Last Edit: March 11, 2009, 05:39:09 pm by Geert.Bellekens »

Thelonius

  • EA User
  • **
  • Posts: 274
  • Karma: +6/-0
  • I think. Therefore I get paid.
    • View Profile
Re: Model DrillDown
« Reply #4 on: March 11, 2009, 08:40:38 pm »
Quote
Indeed the <<trace>> relationship is often used for this purpose. (btw the quote from the Sparx blurb is the exact description in the UML specs)
Another one that you could use is the <<refine>> relationship. This is maybe even more suitable to your needs.
From the UML 2.1.2 superstructure:
Specifies a refinement relationship between model elements at
different semantic levels, such as analysis and design. The
mapping specifies the relationship between the two elements or
sets of elements. The mapping may or may not be computable,
and it may be unidirectional or bidirectional. Refinement can be
used to model transformations from analysis to design and other
such changes.


As an example, consider the classical school example.
In your conceptual layer you might have a class "Student"
In your logical layer that class may be split into two classes: "Person" and "Class Registration" as on the logical level you see that the definition of a student is nothing more then a person that has registered for a class.
On the physical layer those classes could be represented by Tables.
A <<trace>> or <<refine>> relationship would go from the tables to the logical classes, and from the logical classes to your conceptual class.

Hope this helps.

Geert

Geert - thanks for that example. So - in the example you have provided of Student, etc - conceptual, logical, physical - you would not also be connecting those elements by any other connector (even if that made sense? and I can't think of an example that would make sense off the top of my head ... )

Would you put the example you have provided on a separate diagram of some kind?

Thanks again

Jon

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13404
  • Karma: +567/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Model DrillDown
« Reply #5 on: March 11, 2009, 11:01:22 pm »
Yes, depending on the case of course, but in this example I would not make any other relationships.
Generally speaking the number of relationships between the different levels of abstraction should be limited anyway. Possibly even limited to only <<trace>> or <<refine>> relationships.
About the diagrams, that depends of your purpose, and the number of relations you need to maintain.
I really don't care much about diagrams, as long as the relation is there.
For the purpose of traceability you might want to look into matrices as they allow a very condens view on a lot of relations. A matrix might be more informative then a diagram in this case.

Geert

Emilio

  • EA User
  • **
  • Posts: 78
  • Karma: +0/-0
    • View Profile
Re: Model DrillDown
« Reply #6 on: March 13, 2009, 01:59:04 am »
In the top level diagram of every view I place two notes as headings followed by hyperlinks to diagrams. For example

NOTE: Navigate Upward to Component Model
DIAGRAM HYPERLINK(s): Component Model diagram(s)

NOTE: Navigate Deeper to Class Model
DIAGRAM HYPERLINK(s): xxxxxx

That way I lead the model reader into conceptually higher abstractions or down into more details.

Then I also make use of the Relationship Matrix (with profiles) to make mappings (realizes, etc.) between packages in one view to packages or components in another view. Or to map packages in the component model to Collaborations in the Use Case Model View.

Little by little I am getting into setting up a whole model that is auditable qua implementing requirements. So far this is working well.

Erik

  • EA Novice
  • *
  • Posts: 17
  • Karma: +0/-0
    • View Profile
Re: Model DrillDown
« Reply #7 on: March 19, 2009, 12:23:33 am »
If the "trace" or "refine" dependency associations are the ones that can be used to drill-down, it would be fun if an artifact (in a diagram) that has such a link would havwe a special button that would allow for this easy drill-down.

bioform

  • EA User
  • **
  • Posts: 230
  • Karma: +0/-0
  • Forty-Two?
    • View Profile
Re: Model DrillDown
« Reply #8 on: March 19, 2009, 02:06:44 am »
You can achieve that manually by just dragging the appropriate diagram and adding it as a short-cut (bottom option, don't have EA up right now...)

I usually blank out the note text so it's only the icon, then resize it to ehat ever size I need (e.g., tiny so they HAVE to click the diagram icon, or same size as element, then overlay it so it's on top...)

Doing this programmatically through an add-on would be fun... <filing that away for another time...>

David
Time is what keeps everything from happening at once, Space is what keeps it all from happening to you. <unknown>