3

I read in a UML manual that when there are many .jar files, it is possible to list them in a single artifact box. However, I have not been able to verify this from other sources, and since Visual Paradigm does not formally allow it, I would like to know if my diagram is compliant with UML notation. If this is correct, is there a rule for choosing the name of the artifact? I'm also trying to figure out what manifestations are. Since I don't recognize actual components in my application, but only several layers that I wouldn't define as components, I can't even find manifestations. Is it possible that there are no manifestations in a web application? enter image description here

Christophe
  • 68,716
  • 7
  • 72
  • 138
Luigi
  • 181
  • 3
  • 15

3 Answers3

3

The shortcut notation using «artifact» is ambiguous, because the notation refers to a single artifact, with a name File.JAR when in reality there are plenty of them. Moreover, the UML specifications do not mention this possibility, so modelling tools shouldn't provide this feature.

However, UML provides a shortcut for deployed targets (such as nodes and execution environments), allowing to write the list of deployed artifacts directly in the box of the node, instead of drawing a lot of nested or related space-consuming artifact symbols. The UML specification explicitely allows it:

DeployedTargets are shown as a perspective view of cube labeled with the name of the DeployedTarget shown prepended by a colon. System elements deployed on a DeployedTarget, and Deployments that connect them, may be drawn inside the perspective cube. Alternately, deployed system elements can be shown as a textual list of element names.

The UML specification provide several examples page 653 and 657.

P.S: in addition of the UML specs, I've cross checked UML Distilled, The UML User's guide 2nd edition, and The UML Language reference manual 2nd edition. They are all consistent in that regard: they mention the possibility of deployments directly in an execution target (the older books clarify that it's in a compartment, i.e. after a separation line), none of them present this possibility for artifact symbols.

Christophe
  • 68,716
  • 7
  • 72
  • 138
  • I had misread the manual I had consulted. In fact, the manual contains the notation you proposed, not the one I showed myself. But it seems that Visual Paradigm doesn't even allow this notation or at least I couldn't find it. To compile the list of artifacts I used the box text. Do you know if VP has this feature? – Luigi Jul 13 '21 at 09:52
  • 1
    I did not find it either. There is a dirty workaround, which is to misuse the modeling tool as a drawing tool: you create a text box text box on an empty node, you type therein your artefact list, you then select the text box and the enclosing node and right-click->grouping->group. A double-click on the text-box and you can edit the list. However, this far from ideal, since the artefact are only visually present but not really identified as such in the model. I wouldn't recommend it. Btw, I didn't find it neither on EA nor on StarUML. Maybe some tool gurus out there can confirm – Christophe Jul 13 '21 at 18:58
  • I believe that I will adopt some solution similar to the one you proposed to me. Thanks a lot for the answer. – Luigi Jul 13 '21 at 19:57
2

It depends how much you, not your tooling, cares about UML compliance

Broadly, the need for strict UML adherence varies: if you are using UML to generate code / documentation, etc, then yes you need to adhere to the spec. Whereas if you are just trying to communicate ideas to other people then, unless they are UML fanatics, they probably won't care as long as they can clearly understand what you're communicating.

The challenge for tools like Visual Paradigm and Sparx EA is that they need to be UML compliant. The means you get the strict adherence whether you need it or not - unless you find a work-around that lets you communicate your ideas even if from a UML stand-point it's a little weird.

Adrian K
  • 9,880
  • 3
  • 33
  • 59
  • For this project, I need to build diagrams that adhere perfectly to the UML standard. Hence my concern. – Luigi Jul 13 '21 at 07:29
  • 1
    In that case I would defer to others who know more about UML, but I'd be wondering if one artifact per file is more accurate. – Adrian K Jul 15 '21 at 01:29
1

I just wanted to complete this with what the UML spec says about artifacts (p. 654):

  • An Artifact represents some (usually reifiable) item of information that is used or produced by a software development process or by operation of a system. Examples of Artifacts include model files, source files, scripts, executable files, database tables, development deliverables, word-processing documents, and mail messages.

(emphasis by me)

Now, whatever reifiable will mean (probably refinable?) , I think the term item of information is broad enough to cover anything that holds information. May it be abit, a sentence in a file or a complete set of files.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86