Diagrams and Elements Spec

This program creates diagrams that strive for compatibility to

In some cases, it deviates from these standards for several reasons:

This section gives an overview on standards and implementation-status of crystal-facet-uml. It may be incomplete.

Classifiers

Classifiers are the nodes in the model-graph.

The table shows the classifier types introduced by different specifications and a comment stating how this is implemented in crystal-facet-uml.

Spec/Context

Comment

Block

SysML

Limitations: Compartment Order is "properties, operations" instead of "constraints, operations, receptions, parts, (bound) references, values, properties, stereotype-tagged-values, behavior, namespace, structure"

Limitations: No labeled compartments

Limitations: no Multiplicities of Block-Instances.

Constraint Block

SysML

/ Parametric

Limitations: Only the rounded-rect symbol is supported.

Node

UML

/ Deployment

Subsystem/Boundary

UML

/ Use Case

A subsystem is a component with stereotype subsystem

Component

UML

Part

UML

Interface

UML

Package

UML, SysML

Class

UML

Limitations: No active classes

Object

UML

Artifact

UML

Comment

UML, SysML

Image

UML, SysML

This element shows the image of its stereotype.

It exists since version 1.48.0; cannot be used in version 1.47.0 and older.

The description field is reserved. Use an additional comment if needed.

Stereotype

UML, SysML

This element declares a stereotype.

It exists since version 1.47.0; cannot be used in version 1.46.0 and older.

The description field is reserved for icon and template data. Use an additional comment to describe the stereotype.

An image can be specified by stating lines and curves according to the SVG-path spec version 2.0.

<path fill="#e0e0e0" stroke="#0088cc" d="M 2,2 10,2 8,8, 0,8 Z"/>

See examples at the section called “Example stereotype images”

Requirement

SysML

Actor

UML, SysML

/ Use Case, Sequence

Use Case

UML, SysML

/ Use Case

Limitations: No SysML extension points

Interaction Diagram Reference (Interaction Use)

UML / Interaction Overview

Hint: To easily find the referenced diagram, name the reference identical to the diagram.

XMI-Export: For xmi export, this object may only occur in interaction diagrams: interaction overview, communication, sequence and timing.

Activity/Action

UML 2.5 (ch15.2)

/ Activity

Interruptable Region

UML

/ Activity

XMI-Export: For xmi export, all regions belonging to the same set of activities need an outer, enclosing activity.

Fork

UML, SysML

/ Activity

XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Join

UML, SysML

/ Activity

XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Accept Event

UML, SysML

/ Activity

XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Accept Time Event

UML, SysML

/ Activity

XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Send Signal

UML, SysML

/ Activity

XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Decision/Choice

UML 2.5 (ch14.2.4,15.3), SysML

/ Activity, State

In activity diagrams, this is called decision, in statesmachines it is called choice.

XMI-Export/State-context: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

XMI-Export/Activity-context: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Initial Node

UML 2.5 (ch14.2.4), SysML

/ Activity, State

Limitations: There is no distinction in ActivityInitial and FlowInitial.

XMI-Export/State-context: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

XMI-Export/Activity-context: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

Final Node

UML 2.5 (ch14.2.4), SysML

/ Activity, State

Limitations: There is no distinction in ActivityFinal and FlowFinal.

Limitations: There is no separate terminate state-type.

XMI-Export/State-context: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

XMI-Export/Activity-context: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity.

State

UML 2.5 (ch14.2), SysML

/ State, Timing

Limitations: No symbol for hidden decompositions, no regions (swimlanes) in composite states.

Limitations: entry/exit/do list.

XMI-Export: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

Shallow History

UML 2.5 (ch14.2.4), SysML

/ State

XMI-Export: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

Deep History

UML 2.5 (ch14.2.4), SysML

/ State

XMI-Export: For xmi export, all states belonging to the same statemachine need an outer, enclosing state.

Value Type

SysML

not supported.

Limitations: Compartment Order of Classifiers is "properties, operations" instead of "operations, properties, stereotype-tagged-values"

Enumeration

UML, SysML

not supported.

Note: Use a class instead.

ActivityParameterNode

SysML

not supported.

MergeNode/Junction

UML 2.5 (ch15.3), SysML

/ Activity, State

In activity diagrams, it is called merge, in state diagrams junction node. This is not supported.

Note: You may directly connect the arrows to the target activity/state.

ActivityPartition

UML, SysML

/ Activity

not supported.

Note: Use a parent activity instead.

An InstanceSpecification (UML) denotes an instantiation of a classifier. crystal-facet-uml allows any classifier to appear in different diagrams as classifier, as anonymous InstanceSpecification or as named InstanceSpecification. (Rationale: If a classifier is an instance may depend on the context: An M1-class may be an instance if shown in an M2-meta-class diagram, an XML-parser-class may be an instance if shown in the context of stream processors.)

Features

Features are elements attached to one classifier.

The table shows the feature types introduced by different specifications, if they are visible in any diagram or just once, and a comment stating how this is implemented in crystal-facet-uml.

Spec

Comment

Property

UML, SysML

Limitations: no SysML Flow-Properties refinement.

Operation

UML, SysML

Provided Interface

UML, SysML

Required Interface

UML, SysML

Port

UML, SysML

Limitations: no SysML-compartment Notation supported.

Limitations: no SysML-nested-ports, SysML-proxy-port, SysML full-ports supported.

Limitations: no flow property, no compartment notation, no port-compartments.

Limitations: no UML behavior ports.

Input Port/Pin

UML, SysML

Exists since version 1.27.0; cannot be used in version 1.26.1 and older.

Output Port/Pin

UML, SysML

Exists since version 1.27.0; cannot be used in version 1.26.1 and older.

State Entry

UML, SysML

Exists since version 1.27.0; cannot be used in version 1.26.1 and older.

State Exit

UML, SysML

Exists since version 1.27.0; cannot be used in version 1.26.1 and older.

Tagged Value

UML, SysML

Exists since version 1.47.0; cannot be used in version 1.46.0 and older.

Lifeline

UML 2.5 (ch17.2), SysML

Lifelines are managed automatically, one cannot create, modify or delete them.

Limitations: One lifeline is visible only in one diagram.

Limitations: Lifelines start and end only at diagram border.

Limitations: ExecutionSpecification (ActivityBar) are not supported.

Relationships

Relationships are the edges of the model-graph.

The table shows the relationship types introduced by different specifications, a classification in which diagram type to use them preferably, and a comment stating how this is implemented in crystal-facet-uml.

Spec/Context

Comment

Dependency

UML, SysML

Containment

UML, SysML

/ Deployment, Package, Internal Block, Composite Structure, Activity, State

Deploy

UML

/ Deployment

Manifest

UML

/ Deployment

Communication Path

UML, SysML

/ Component, Composite Structure, Block, Internal Block

Association

UML, SysML

/ Class, Use Case

Note: SysML calls this ReferenceAssociation

Limitations: no AssociationClass(SysML: ParticipantProperty) exists.

Limitations: no AssociationEnd Classes exist, no multiplicities, no roles, no ownership (dot notation).

Limitations: no ternary associations (only two ends supported).

Limitations: no non-navigateable ends (crosses) suported yet - see todo.txt.

Aggregation

UML, SysML

/ Class

Note: SysML calls this SharedAssociation

Composition

UML, SysML

/ Class

Note: SysML calls this PartAssociation

Generalization

UML, SysML

/ Class

Limitations: no Generalization-Sets supported

Realization

UML

/ Class

Trace

SysML

/ Requirement

Refine

SysML

/ Requirement

Extend

UML, SysML

/ Use Case

Limitations: no SysML-condition-notes can be attched to this relationship

Include

UML, SysML

/ Use Case

Control Flow/Transition

UML, SysML

/ Activity, State

In activity diagrams, this is called control flow, in statesmachines it is called transition.

Object Flow

UML, SysML

/ Activity

Async. Call

UML, SysML (?)

/ Sequence, Timing, Communication, Interaction overview

Sync. Call

UML, SysML (?)

/ Sequence, Timing, Communication, Interaction overview

Return Call

UML, SysML (?)

/ Sequence, Timing, Communication, Interaction overview

Connector

UML, SysML

/ Internal Block

not supported.

Limitations: No Bi-directional Connectors

Note: SysML calls this BindingConnector

Note: Use a Communication Path instead.

Item Flow

SysML

/ Block Definition

not supported.

Note: Use an Object Flow instead.

Exception Flow

UML 2.5 (ch15.5)

/ Block Definition

Use a stereotype, e.g. a flow_exception as proposed in the section called “Example stereotype images”

Diagrams

Diagrams are views on the model-graph. They select classifiers and may filter their features and relationships.

The table shows the diagram types introduced by different specifications and a comment stating how this is implemented in crystal-facet-uml.

Spec

Comment

List Diagram

-

This is an overview diagram showing only classifiers as a list.

This diagram hides any feature and any relationship.

Box Diagram

-

This is an overview diagram showing only 2-dimension-layouted classifiers.

This diagram hides any feature and any relationship.

Block Definition Diagram

SysML

Internal Block Diagram

SysML

Parametric Diagram

SysML

Deployment Diagram

UML

Component Diagram

UML

Composite Structure Diagram

UML

Package Diagram

UML, SysML

Class Diagram

UML

Profile Diagram

UML

Requirements Diagram

SysML

Use Case Diagram

UML, SysML

Interaction Overview Diagram

UML

Limitations: There is no link from Diagram-References to referenced Diagrams

Containments cannot be shown in this diagram type

This diagram hides any feature

This diagram hides relationships except the messages of the shown scenario

Activity Diagram

UML 2.5 (ch15.2), SysML

Limitations: Swimlanes not supported

State Machine Diagram

UML, SysML

Communication Diagram

UML

Containments cannot be shown in this diagram type

This diagram hides any feature

This diagram hides relationships except the messages of the shown scenario

Sequence Diagram

UML, SysML

This diagram hides any feature

This diagram hides relationships except the messages of the shown scenario

Timing Diagram

UML

This diagram hides any feature

This diagram hides relationships except the messages of the shown scenario

Example stereotype images

For use as stereotype images, this section shows some generated svg-paths, licensed under Apache-2.0 or Public Domain at your choice.

Copy these xml-fragments to the description field of a stereotype-classifier in order to show these images next to all elements implemening the respective stereotype.

Stereotype images

deploy_database

<path d="m 4,5 l 0,22 c 0,2.25 5.25,4 12,4 s 12,-1.75 12,-4 l 0,-22 " /><path d="m 4,5 c 0,-2.1875 5.375,-4 12,-4 s 12,1.8125 12,4 s -5.375,4 -12,4 s -12,-1.8125 -12,-4 " />

deploy_local

<path d="m 1,23 l 16,8 l 8,-6 l 3,-11 l -16,-7 l -2,11 z " /><path stroke="none" fill="#cccccc" d="m 5,23 l 11.5,5.5 l 5,-3.5 l -11,-5.1875 z " /><path stroke="none" fill="#0000dd" d="m 11.5,17 l 12.5,6 l 2,-8 l -12.8125,-6 z " />

deploy_cloud

<path d="m 3,22 c -3,-3 3,-9 6,-6 c 0,-5 8,-6 9,-1 c 7,-2 14,4 11,7 z " />

ecb_entity

<path d="M 6,18 C 6,11.375 11.375,6 18,6 S 30,11.375 30,18 S 24.625,30 18,30 S 6,24.625 6,18 " /><path d="M 7,30.5 L 29,30.5 " />

ecb_control

<path d="M 6,18 C 6,11.375 11.375,6 18,6 S 30,11.375 30,18 S 24.625,30 18,30 S 6,24.625 6,18 " /><path d="M 22,1 L 17,6 L 22,11 " />

ecb_boundary

<path d="M 6,18 C 6,11.375 11.375,6 18,6 S 30,11.375 30,18 S 24.625,30 18,30 S 6,24.625 6,18 " /><path d="M 1,9 L 1,27 M 1,18 L 6,18 " />

gsn_goal

<path stroke="#000099" stroke-width="1" d="M 1,7 L 31,7 L 31,25 L 1,25 Z " />

gsn_context

<path stroke="#000099" stroke-width="1" d="M 8,25 C 0,25 0,7 8,7 L 24,7 C 32,7 32,25 24,25 Z " />

gsn_strategy

<path stroke="#000099" stroke-width="1" d="M 7,7 L 31,7 L 25,25 L 1,25 Z " />

gsn_assumption

<path stroke="#000099" stroke-width="1" d="M 1,10 C 1,5.625 7.75,2 16,2 S 31,5.625 31,10 S 24.25,18 16,18 S 1,14.375 1,10 " /><path stroke="#000099" stroke-width="1" d="M 24,25 L 26.5,19 L 29,25 M 24.75,23.5 L 28.25,23.5 " />

gsn_justification

<path stroke="#000099" stroke-width="1" d="M 1,10 C 1,5.625 7.75,2 16,2 S 31,5.625 31,10 S 24.25,18 16,18 S 1,14.375 1,10 " /><path stroke="#000099" stroke-width="1" d="M 25,24 C 25,26 29,26 29,24 L 29,19 L 25,19 " />

gsn_solution

<path stroke="#000099" stroke-width="1" d="M 1,16 C 1,7.75 7.75,1 16,1 S 31,7.75 31,16 S 24.25,31 16,31 S 1,24.25 1,16 " />

queue_buffer

<path d="M 1,8 L 31,8 L 31,24 L 1,24 " /><path d="M 13,8 L 13,24 M 19,8 L 19,24 M 25,8 L 25,24 " />

queue_server

<path d="M 1,16 C 1,7.75 7.75,1 16,1 S 31,7.75 31,16 S 24.25,31 16,31 S 1,24.25 1,16 " />

queue_queue

<path d="M 1,11 L 18.5,11 L 18.5,21 L 1,21 " /><path d="M 8,11 L 8,21 M 11.5,11 L 11.5,21 M 15,11 L 15,21 " /><path d="M 21,16 C 21,13.25 23.25,11 26,11 S 31,13.25 31,16 S 28.75,21 26,21 S 21,18.75 21,16 " />

reason_decision

<path d="m 8,12 l -4,7 1,1 6,0 1,-1 -4,-7 l 8,-4 9,0 l -4,7 1,1 6,0 1,-1 -4,-7 " /><path d="m 15,5 l 1,3 m 0,2 l 0,17 " />

reason_chosen

<path d="m 1,24 4,4 22,0 4,-4 " /><path stroke="#00aa00" stroke-width="1" d="m 8,17 c 0,-4.4375 3.5625,-8 8,-8 s 8,3.5625 8,8 s -3.5625,8 -8,8 s -8,-3.5625 -8,-8 " /><path stroke="#00aa00" stroke-width="1" d="m 11,17 l 10,0 m -5,-5 l 0,10 " />

reason_rejected

<path d="m 1,24 4,4 22,0 4,-4 " /><path stroke="#cc0000" stroke-width="1" d="m 8,17 c 0,-4.4375 3.5625,-8 8,-8 s 8,3.5625 8,8 s -3.5625,8 -8,8 s -8,-3.5625 -8,-8 " /><path stroke="#cc0000" stroke-width="1" d="m 11,17 l 10,0 " />

flow_object

<path d="M 32,32 M 0,0 M 5,5 27,5 27,27 5,27 Z " />

flow_control

<path d="M 1,16 l 2,0 m 3,0 l 2,0 m 3,0 l 2,0 m 3,0 l 2,0 m 3,0 l 2,0 m 3,0 l 3.5,0 M 25,13 l 5,3 l -5,3 " />

flow_exception

<path d="M 1,9 27,9 1,23 30,23 M 26,20 31,23 26,26 " />

Maximum stringlengths

All strings (names, descriptions, stereotypes) have a maximum length.

Ascii characters require one, most other characters two bytes. Current sizes in bytes are:

Classifiers:

  • DATA_CLASSIFIER_MAX_NAME_LENGTH = 47,

  • DATA_CLASSIFIER_MAX_STEREOTYPE_LENGTH = 47,

  • DATA_CLASSIFIER_MAX_DESCRIPTION_LENGTH = 4095,

Features:

  • DATA_FEATURE_MAX_KEY_LENGTH = 47, (name)

  • DATA_FEATURE_MAX_VALUE_LENGTH = 255, (type)

  • DATA_FEATURE_MAX_DESCRIPTION_LENGTH = 1023,

Relationships:

  • DATA_RELATIONSHIP_MAX_NAME_LENGTH = 47,

  • DATA_RELATIONSHIP_MAX_STEREOTYPE_LENGTH = 47,

  • DATA_RELATIONSHIP_MAX_DESCRIPTION_LENGTH = 1023,

Diagrams:

  • DATA_DIAGRAM_MAX_NAME_LENGTH = 47,

  • DATA_DIAGRAM_MAX_STEREOTYPE_LENGTH = 47,

  • DATA_DIAGRAM_MAX_DESCRIPTION_LENGTH = 8191,

In case the text your entered exceeds the string limit, you are warned that the string is truncated. Consider attaching a comment or a requirement element and move parts of the text there.