Author Topic: Deployment diagram / Relationship matrix  (Read 5192 times)

sbaishya

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Deployment diagram / Relationship matrix
« on: October 14, 2002, 03:46:10 am »
Hi,

I have a deployment diagram containing a node, into which I have dragged several components from the component view. When I move the node, the contained components also move, so I know that EA recognises some sort of link between them. However, I can't find any way of showing this link in the relationship matrix.

Is there a way to do this? It would be really useful for us in modelling our environments and being able to show in matrix form where components are deployed.

Thanks in advance,

Stephen Baishya

mbc

  • EA User
  • **
  • Posts: 237
  • Karma: +1/-0
  • Embedded software developer
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #1 on: October 14, 2002, 05:45:43 am »
What happens if you drag the components out of the node? My EA automatically creates aggregation (composition) relationships between the node and its components.
If this is also the case for you, you can select Link Type: Aggregation in the Relationship Matrix window. That works for me.

Hope this helps

Mikkel

sbaishya

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #2 on: October 15, 2002, 01:10:05 am »
Mikkel,

Thanks for your reply.

This only seems to work for me if I use instances of components, rather than the components themselves. This does not really suit what I am doing, as a lot of the components do not have instance names with which I can identify them, so I am dragging the components rather than instances of them onto the deployment diagram.

Regards,

Stephen

mbc

  • EA User
  • **
  • Posts: 237
  • Karma: +1/-0
  • Embedded software developer
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #3 on: October 15, 2002, 01:16:30 am »
Actually, I don't think that having classes (components) reside in nodes is UML-compliant.
The UML specification says: "Component instances and objects may be contained within node instance symbols. This indicates that the items reside on the node instances".
Because nodes depict the run-time structure of a system, this makes sense to me.

Mikkel

sbaishya

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #4 on: October 15, 2002, 01:43:16 am »
So, this suggests that I create a library of nodes and components, which in itself is fine, however when I drag instances on to the diagram they do not display with the proper shapes for 'node' and 'component' - instead, they use a generic 'object' shape.

How do you get round this so that your deployment diagrams have the correct shapes?

Stephen

mbc

  • EA User
  • **
  • Posts: 237
  • Karma: +1/-0
  • Embedded software developer
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #5 on: October 15, 2002, 01:59:40 am »
I must admit that I have reached the limit of my "knowledge" about deployment diagrams now. By using "Change object type" I have been able to get some interesting but unclear and not very usable results.

But to return to my first reply, when I create a node, and then put components in it, I still get aggregation relationships - instances or not.

Mikkel

jaimeglz

  • EA User
  • **
  • Posts: 164
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #6 on: October 15, 2002, 10:06:44 am »
Hi,

The way I do it is by nesting the components in the nodes. For example, I drag the PostGreSQL and StarOffice components into the PC node in the project tree.

It shows up fine in the diagram when I drag the components into the nodes (without auto-instance).

I do not see any conflict in having nodes (a classifier, say the "feline_brain" class) containing components (another classifier, say the "paw_control_center"). There would be a conflict if I embed an instance (the concrete "Timy:paw_control_center") inside a classifier (the general "feline_brain"), or viceversa. In other words, an instance should be nested inside an instance, and a classifier inside another classifier.

Also, check your diagram properties (double click on the diagram) to see if "Use stereotype icons" is activated.

Hope I am not confusing things.

Jaime Gonzalez

PhilR

  • EA User
  • **
  • Posts: 87
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #7 on: October 15, 2002, 06:50:44 pm »

Quote
How do you get round this so that your deployment diagrams have the correct shapes?

Stephen


Try View|Options|Behaviour and make sure that "Instance has classifier style" is checked.  Then look at the diagram properties and make sure that "Use stereotype icons" is checked.

On what is "legal" and "illegal" in the UML.  Many of the statements in the spec and the Amigos books are simple usage suggestions.  You need to check the UML metamodel to be certain if something is illegal or not.

For example I have found it really useful to have an association between a Use Case and some Classes which describe the data flowing between the actor and use case.  I have never seen this anywhere else but since both Classes and Use Cases are UML "classifiers" it is perfectly legal to have an association between them.

There is a catch however - the UML meta model is mainly for devoted insomniacs!

I am not sure how closely EA follows the metamodel.  There is an option View|Options|Diagram|"Strict UML syntax" which you can check.  it would be nice to think that if this was checked, the tool would prevent you from illegal usage.

Any comments sparx?

Phil.

sbaishya

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #8 on: October 16, 2002, 01:10:59 am »
I have both "Use stereotype icons" and "Instance has classifier style" activated, and I still don't get the correct shapes.

Stephen

jaimeglz

  • EA User
  • **
  • Posts: 164
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #9 on: October 16, 2002, 06:33:57 am »
Hi Stephan,

Let's go at it step by step, so we can determine what the problem is.

I am using EA 3.10 Build 504.

I create a deployment diagram called, say, "PC Deployment". In this diagram I have created a node called "Community_proj_PC": this is not an instance (object), but a representation of the classifier itself. I have stereotyped it as "pc" (it could be something else, though).

In the same project, I have created four components: Linux, PostGreSQL, StarOffice and community_system, and only the last component is stereotyped (as executable).

I have dragged the components inside the node (again: as classifiers, not as instances), and I have "Use Stereotype Icons" checked in my Diagram Properties.

In this diagram, both nodes and components are shown with their respective icons.

As Mikkel has said, I drag the components out of the node, and an aggregation relationship appears. I drag the components inside the node again, because that is the place I want them to be.

I open my relationship matrix, choose the root of the project tree as both source and target; choose Node and Component as "Type", Aggregation as "Link Type", Bi-Directional (or Target -> Source) as "Direction". The matrix correctly shows that "Community_proj_PC" has the components. I save the matrix as a new profile (Profiles -> Save as New Profile).

Are you using instances of nodes or instances of components? In that case, you are right, and EA is showing instances with object (and not with node or component) icons. The "Community_proj_PC" has the PC icon in the upper right corner, but otherwise it is an object icon (even though I have selected "Instance has classifier style" in the Diagram Behaviour dialog).

In the case of instances there is problem, and I want to call Sparx attention to it (although, in all modesty, there is probably some good reason for this).

However, as to your original question, I do get a correct matrix if I compare object vs object, choose aggregation and the appropriate source to target (or biderectional) as Direction. I wouldn't like to use the object vs object matrix, because it does get confusing: in this matrix I have all sorts of objects, and not only instances of nodes and components.

I hope this helps.

Jaime
« Last Edit: October 16, 2002, 06:37:47 am by jaimeglz »

gsparks

  • EA User
  • **
  • Posts: 325
  • Karma: +0/-0
  • I love YaBB 1 Gold!
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #10 on: October 28, 2002, 04:34:45 am »
Hi All,

Just a note to say the version 3.50 release of EA now correctly draws instances of Nodes and Components using the correct classifier style - not the object style. Regrettably this only applies to new instances and does not update existing model elements. It may be possible to provide a patch to do this if there is enough interest.

Geoff Sparks

SpoonsJTD

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: Deployment diagram / Relationship matrix
« Reply #11 on: April 23, 2009, 12:27:47 am »
Sorry to resurrect this old thread, but I am trying to understand deployment diagrams, node\component relationships, and the relationship matrix as well. I'm trying to build a profile for the enterprise architecture entity metamodel in TOGAF 9 that we can use until someone else makes an official one, and I'm trying to get a better feel for the UML semantics and how they work in EA as I determine which metaclasses to extend.

I tried duplicating what was described in this thread, but I don't get 'automatic' aggregation relationships when moving component or component instances out of their nested position within nodes or node instances. I'm surprised that nested elements don't also get some kind of implicit relationship that can be seen via the relationship matrix. Is that a limitation of the relationship matrix, EA, or UML 2.x itself?

Based on the efforts I've seen to create a metamodel for enterprise architecture, nodes and components are the metaclasses of choice for modeling the runtime 'as it exists in reality' a la servers, hardware, application depoyments, etc., but without being able to define relationships quickly in the matrix (that are then reflected automatically in the model and diagrams), I'm not sure I'd want to use those metaclasses to model the relationships.