Linking UML Diagrams - What are the different possibilities and how to specify in a tool independent wa - uml

UML 2.x has 14 diagram types - grouped into structural and behavioral diagrams. For a system modelled in UML, there is inter-linking between diagrams, for example:
A class with a state variable should have a corresponding state-machine diagram which models its behavior.
Similarly, the life-line in sequence diagram is an instance of a class: usually shown as :.
What are the other links possible between the 14 diagrams?
Is there a tool independent way of specifying these?
Are these linkages exported in a standard way in the XMI output file, if XMI export is supported?

In UML2 you can now create almost any model element in any diagram. I mean that you can have structural elements inside the same diagram.
alt text http://www.forum-omondo.com/download/file.php?id=194&mode=view
Having said that you can also use the EclipseUML2 editor which is open source. You create manually your model and for example create a State then a child Class. Once created you open the model with a compatible UML tool and drag and drop inside an empty diagram what has been manually model. You will get a graphical representation.
I do it every day with Omondo EclipseUML Helios and it works really well. I have previously tried RSA 6.5 and it was also possible. My graphical diagram allows me to create as many as needed views from my model. I can manipulate my model with the editor or with the diagram. Really cool !!

Related

UML Metamodel for associations between diagrams

up until now, I always ignored the UML Metamodel, but now that I've taken a closer look at it, I have a question which isn't answered by the standard books which I have at hand.
The Metamodel describes elements and their associations per diagram. So, it defines for instance what kind of relationship an actor can have with a use case in a use case diagram.
But does it also describe the relationships / associations between diagrams? Or maybe better expressed between elements of different diagrams?
Example:
In a class diagram, I define how I structure my code. This is defined by the metamodel
In a deployment diagram, I specify how I deploy artifacts to execution nodes. Also defined by the metamodel
But does the metamodel also define relationships with which I can specify how I derive the artifact (which I deploy, maybe a .jar file) from my code?
Diagrams are only a view onto the model. So you can show any arbitrary part of your model. Preferably you create a number of different structural diagrams to explain your model structure. Those are later augmented with behavioral diagrams which show how certain elements collaborate.
tl;dr UML is not about diagramming.
Yes, metamodel explains how various elements of a model can be connected. Diagrams itself represent poets puff the model and it is also described in a metamodel. While it's not always clearly shown how to actually represent that, for example each behavioral model represent behavior of something. What can have this type of behaviour is part of metamodel.
Let's look at specific example.
Consider State Machine. Metamodel defines which elements can have State Machines (e.g. A class). So if you have a certain class you can draw a diagram of State Machine owned by this class. How to show that this SM is owned by that class is a different story but that is also possible with UML.
Then on a state machine you can have activities which according to metamodel have to be owned by the same class etc.
One remark - it's spread over the whole specification. But look at definitions of elements like classifier, behaviour, state machine etc. That's where your answer is.

UML tool supporting collaboration

I am looking for an UML modeling tool (e.g. uml designer, papyrus, modelio or such) with a support for collaboration diagrams (as described here : http://www.uml-diagrams.org/collaboration-diagrams/collaboration.html and here http://www.uml-diagrams.org/collaboration-diagrams/collaboration-use.html)
I am especially interested by the ability to draw this kind of schema:
I would also appreciate it if somebody could link me to a good tutorial about this.
PS : To give some context, I am mostly interested in collaboration diagrams in order to describe which part of a class diagram are taking part in a given design pattern (from example which classes of a class diagram are the observer/subject of an observer pattern).
To create a composite structure diagram under Modelio, you have to:
Create a project.
Select UML root project under the model explorer.
Create a Class.
Select the created Class and create a Composite Structure diagram.
The following screenshot show the required steps.

How to generate a certain type of diagram from another type in EA?

I'm stiil a newbie with Enterprise Architect. I was wondering is there a way to generate automatically a certain type of diagram from an already existing other type of diagram and if yes - between what types of diagrams it could be achieved.
For example, could a sequence diagram be generated out of a given class diagram? Or it isn't possible because the sequence diagrams are behavioral and the class diagrams are structural?
Thanks in advance!
To concrete Vladimir's answer: a diagram is not a model. If you want to transform anything you need to focus on packages (single elements would not make much sense anyway).
it is absolutely not possible transform or generate class diagram to (from) sequence because of different semantic of diagrams. It is not good idea to do any transformation between diagram definitions. If some tool allows it, it always directed to a meaningless or incomplete structures.

Are there any UML tools that allow hiding entities?

When browsing through a large UML class diagram (20+ classes), if I try to find the "path" from one entity to another or the connections of a certain entity, I get lost very easily. Are there any tools that allow hiding certain entities? Or that highlight paths or connections? So far I've tried ArgoUML and MagicDraw but they don't seem to have any of these.
Modelus Suite Model Designer has functionality that allows you to see references of selected element and connections as well. It is simple navigation, but usable for models of any complexity I would say. It does not highlight it, but it is possible to locate related elements in project tree or on diagrams.
You can find more info on the web side. Here is a link Modelus Suite
Hiding elements to split complex models into several diagrams is a basic (must have) feature for UML tools. GenMyModel is natively supporting such operation using "hide" from the popup menu.
(see: use model elements in multiple diagrams and demo video)
All UML tools should allow you to remove model elements from a diagram without deleting them from the model itself. The reason is that, in UML, a model is not the same thing as a diagram. A UML diagram is one of many possible views showing and hiding different parts of a UML model. A UML model instantiates elements of the UML meta-model, in memory and on disk.
There is a fundamental difference between a mere drawing program and a UML modeling tool. A drawing program (like MS Powerpoint or Visio) just draws pictures. A UML tool has an underlying meta-model that can render its instances on any number of diagrams. All true UML modeling tools will therefore allow you to remove model elements from a diagram.
Your claim that MagicDraw does not allow hiding elements on a diagram is untrue. Not only can MagicDraw hide model elements, it has a special "Relation Map" diagram that allows you to swim around in a model.

phpstorm, create custom UML diagram

PhpStorm has a feature to create UML diagrams based on existing classes
But I need to create and save my own diagrams, that will have objects for not existing classes. For example, I need to create a database diagram and a UML diagram for some classes of new feature.
Can I do it via phpstorm?
No, going by the Documentation Jetbrains Confluence on UML Diagrams in Phpstorm and this post phpstorm only allows you to create different UML diagram views of your code base, the only model is your code base itself. Thus you cannot have classes just in a diagram.
If it is still of your interest, you can use an extension like this to write your custom UMLs. You can find the documentation here

Resources