Visual Paradigm: Underline togetherness in class diagram - uml

I have to create a class diagram with different design patterns inside. I would like to underline the togetherness of the classes belonging to the same design pattern.
What is the "official" or best way in UML to achieve this? I have to use Visual Paradigm and found a solution using packages.
But these packages seems to be very unhandy. I need something more freeform like. I think about just using different background colors for the different patterns.

The coloring of element is not the concern in UML as it won't affect the model structure and their relationships. Specifying different color is a good way for visualize categorize your elements in diagram level (same element on different diagram can have different presentation setting). If you want to categorize the elements in model level then you may consider to use stereotypes plus stereotype based presentations so that elements applying the stereotype can automatically inherit the presentation settings (see https://www.visual-paradigm.com/tutorials/stereotypeappearance.jsp)

Related

UML - objects represented in circles and squares, which is correct?

Hi I run into these different types of reprsenting an object in uml diagrams and was wondering which is the correct one or the most used one?
The following pictures are examples of collaboration diagrams one on which the objects are circles (interfaces, controllers, ...) and the other squares?!
PS: it's not just collaboration diagrams but others types too.
The standard notation symbol for objects is a rectangle.
Yet UML is highly adjustable and main methods for that are stereotypes and profiles. Stereotypes can have icons to be used as a replacement for a standard UML notation symbols.
The circles based icons in the first picture are standard, widely recognized and accepted icons to represent stereotypes for ECB design pattern classes (Entity, Control, Boundary). Add the UML inherent actor's sticky figure notation and you have all the pieces.

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.

Organizing diagrams in Enterprise Architect

Is it possible to somehow organize my diagrams in Enterprise Architect? We're starting having too many of them, with each diagram containing many elements. Is creating a separate folder for each diagram the only solution to make the model easier to see through, or is there a more elegant layout for that?
In the first place, Model Views will help you to create distinct viewpoints representing your entities from different perspectives.
If you stick to the architecture principles of loose coupling and modularity, you should be able to split up very big diagrams into smaller ones. After all, their role is to give you an idea of how things are coupled and work together, but also to abstract from things that are not really relevant in the given context of the diagram. Diagrams are not meant to just visualize all elements in one big picture.
You can create package structures that are pretty complex and then use the model search. You can also put hyperlink elements for easier navigation between diagrams.
If you have to split up elements into different diagrams (which then go into different packages) EA will preserve their relationships and you can review them at any time using the traceability view.
I would also have a look at the EA options for composite diagrams. This should help you re-organise a Single System into a number of Composite Sub-Systems.
To start modeling an application architecture, you can use a perspective based approach or a view modeling perspectives approach to describe your system. For example use the 4+1 view based approach to collect your Logical, Development, NonFunctional and Requirements perspective. Organize it according the mentioned dimmensions or decompose each dimmension by the application modules and have a conceptual view to have a global view of your system.
To start with a model of an enteprise architecture use for example the togaf dimensions or zachman framework layers and dimmensions
You can use several packages to categorize your content.
I use to make a package diagram on top level which dynamically updates its contents depending on underlying packages (simply drag & drop the packages in the package diagram)
and the content (e.g. for activity diagrams) like entry or final can be saved in a common package.
Unfortunately there is no possibility yet (version 10 build 1004) to customize the packages e.g. with colors. So that a common packages could have a distinct color.
What I do to make Project Browser more organized is to create one package named "Diagram's elements" and drag all the diagram element there.
There's some good advice in this blog on the Sparx Systems (the EA publisher) website.

How to mark classes as Obsolete on UML

I have a few classes on my UML diagram which should not be used, but still available.
Is there any way to mark these classes as obsolete?
I've seen <> notation somewhere, but can not find how to use it in MS Visio 2003.
And another question. Should these classes be on UML diagram at all? I can imagine answer on this question would be on "per case" basis, but I'm interested in hearing general opinions. And if you put obsolete classes on your UML diagrams, why you did it? or why not?
Thanks!
It's not clear to me what you mean by " should not be used, but still available.". If they need to stay in the diagram but you want to visualize that they are now obsolete you can create a new stereotype <> and use it to annotate the obsolete classes.
If you don't really need them in the diagram then use a version control system for models as duffymo suggested. A list of version control tools for modeling elements can be founde here
I think if you're going to take the time to update the UML, the best idea is to remove it from the model. Leaving a bunch of "obsolete" diagram elements hanging around makes as much sense as keeping commented code in a version control system. Let the version control system manage the history.
I think that your model should include all your project and then you extract views from your model. If a class is not having any value in a specific view then this class should be removed from your class diagram view diagram but not from your model.
If you want to keep this class in your diagram then you can add a small comment (usually yellow square) or change the color of the class. I usually use green for class and then change the color to grey/green almost invisible but still visible color for non strategic classes.
Hope this help.

"Narrowed" structural diagram

I'm a total rookie in UML and modelling. I'm learning some framework, and I'm trying to grasp and outline its key aspects. I've decided to do it with UML. But the problem is, the whole structural diagram of the framework is of no use to me, because classes have a lot of properties and methods, and there's a lot of classes.
What I need is a series of structural diagrams, each of which shows some specific aspect of the framework. And the classes involved should display only those attributes/operations that are of certain value to this specific aspect.
Does UML (as a standard) supports this on some level, and is there some tool that allows to do just that? I've tried Visio 2007 and Enterprise Architect, but I didn't found out the way to do what I need.
Thanks in advance.
What your are looking for seems to be able to customize views of your model and not to visualize the full class diagram. This concept is developed by Omondo which provides customizable views of your model by drag and drop. You can create as many views as needed, each could be different from the others while just using the same model element. This also the metamodeling approach for me where the model is not the diagram but the metamodel on which your build your graphical model.
If you don't need attributes/methods then you can try to click directly on attributes and methods keeping the ctrl button pressed, then you should be able to find a menu in the class diagram to hide them. The traditional menu is Hide from diagram.
This is what I do and it works really well.
You can also just click directly on attributes and methods but I don't see any documentation on this subject. It seems that nobody knows except the developer and myself about this option but this is my favorite one :-)

Resources