This program creates diagrams that strive for compatibility to
UML 2.5
SysML 1.5
MOF 1.4.1
In some cases, it deviates from these standards for several reasons:
Reduce complexity to be able to handle such models in a small open source project
Reduce feature-set to improve understandability of diagrams even to non-software-architects
Reduce feature-set to enhance usability of the program
This section gives an overview on standards and implementation-status of crystal-facet-uml. It may be incomplete.
Classifiers are the nodes in the model-graph.
The table shows the classifier types introduced by different specifications, if they filter/hide their features and a comment stating how this is implemented in crystal-facet-uml.
Spec | Diagram Context and Filter | 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 / unconditional features |
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 | * / unconditional features | |
![]() Image | UML, SysML | * / unconditional features |
Exists since version 1.48.0; cannot be used in version 1.47.0 and older. This element shows the image of its stereotype The description field is reserved. Use an additional comment if needed. |
![]() Stereotype | UML, SysML | * / unconditional features |
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 and shall therefore not be used for descriptions. Use an additional comment instead. An image can be specified since version 1.48.0 by stating lines and curves according to the SVG-path spec version 2.0; also arcs are supported since 1.49.0, stroke and fill colors since 1.50.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 / unconditional features | |
![]() Use Case | UML, SysML | Use Case / - |
Limitations: No SysML extension points |
![]() Interaction Diagram Reference (Interaction Use) | UML | Interaction Overview / unconditional features |
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 scenario/interaction diagrams. |
![]() Activity/Action | UML 2.5 (ch15.2) | Activity / - | |
![]() Interruptable Region | UML | Activity / unconditional features |
XMI-Export: For xmi export, all regions belonging to the same set of activities need an outer, enclosing activity. |
![]() Fork | UML, SysML | Activity / unconditional features |
XMI-Export: For xmi export, all activity-nodes belonging to the same set of activities need an outer, enclosing activity. |
![]() Join | UML, SysML | Activity / unconditional features |
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 / unconditional features |
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 / unconditional features |
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 / unconditional features |
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 / unconditional features |
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 / unconditional features |
Limitations: There is no distinction in ActivityInitial and FlowInitial. Limitations: There is no separate entryPoint 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. |
![]() Final Node | UML 2.5 (ch14.2.4), SysML | Activity, State / unconditional features |
Limitations: There is no distinction in ActivityFinal and FlowFinal. Limitations: There is no separate exitPoint and 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. Limitations: entryPoint and exitPoint states cannot be drawn on parent state border line. 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 / unconditional features |
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 / unconditional features |
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 / unconditional features |
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 / unconditional features |
not supported. Note: Use a parent activity instead. |
Legend
Defines which elements related to a classifier are not visible
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 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 | Scope | Comment | |
---|---|---|---|
![]() Property | UML, SysML | unconditional |
Limitations: no SysML Flow-Properties refinement. |
![]() Operation | UML, SysML | unconditional | |
![]() Provided Interface | UML, SysML | unconditional | |
![]() Required Interface | UML, SysML | unconditional | |
![]() Port | UML, SysML | unconditional |
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 | unconditional |
Exists since version 1.27.0; cannot be used in version 1.26.1 and older. |
![]() Output Port/Pin | UML, SysML | unconditional |
Exists since version 1.27.0; cannot be used in version 1.26.1 and older. |
![]() State Entry | UML, SysML | unconditional |
Exists since version 1.27.0; cannot be used in version 1.26.1 and older. |
![]() State Exit | UML, SysML | unconditional |
Exists since version 1.27.0; cannot be used in version 1.26.1 and older. |
![]() Tagged Value | UML, SysML | unconditional |
Exists since version 1.47.0; cannot be used in version 1.46.0 and older. |
![]() Lifeline | UML 2.5 (ch17.2), SysML | interaction scenario, 1 per diagram |
Limitations: One lifeline is visible only in one diagram. Limitations: Lifelines start and end only at diagram border. Limitations: ExecutionSpecification (ActivityBar) are not supported. |
Legend
scope is unconditional if a feature belongs to a classifier unconditionally, scenario if only applicable in 1 interaction diagram
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 | Diagram Context | Comment | |
---|---|---|---|
![]() Dependency | UML, SysML | any | |
![]() 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, Use Case(?) | 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 (?) | for sequence, timing, communication and interaction overview diagrams | |
![]() Sync. Call | UML, SysML (?) | for sequence, timing, communication and interaction overview diagrams | |
![]() Return Call | UML, SysML (?) | for sequence, timing, communication and interaction overview diagrams | |
![]() 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 |
not yet supported, see todo.txt. |
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, if they filter/hide their features and/or relationships and a comment stating how this is implemented in crystal-facet-uml.
Spec | Filter | Comment | |
---|---|---|---|
![]() List Diagram | - | any feature, any relationship | This is an overview diagram showing only classifiers without features and without relationships |
![]() Box Diagram | - | any feature, any relationship | This is an overview diagram showing only classifiers without features and without relationships |
![]() Block Definition Diagram | SysML | lifelines | |
![]() Internal Block Diagram | SysML | lifelines | |
![]() Parametric Diagram | SysML | lifelines | |
![]() Deployment Diagram | UML | lifelines | |
![]() Component Diagram | UML | lifelines | |
![]() Composite Structure Diagram | UML | lifelines | |
![]() Package Diagram | UML, SysML | lifelines | |
![]() Class Diagram | UML | lifelines | |
![]() Profile Diagram | UML | lifelines | |
![]() Requirements Diagram | SysML | lifelines | |
![]() Use Case Diagram | UML, SysML | lifelines | |
![]() Interaction Overview Diagram | UML | unconditional relationships (non-scenario), unconditional feature |
Limitations: There is no link from Diagram-References to referenced Diagrams Containments cannot be shown in this diagram type |
![]() Activity Diagram | UML 2.5 (ch15.2), SysML | lifelines | Limitations: Swimlanes not supported |
![]() State Machine Diagram | UML, SysML | lifelines | |
![]() Communication Diagram | UML | unconditional relationships (non-scenario), unconditional features | Containments cannot be shown in this diagram type |
![]() Sequence Diagram | UML, SysML | unconditional relationships (non-scenario), unconditional features | |
![]() Timing Diagram | UML | unconditional relationships (non-scenario), unconditional features |
Legend
Defines which elements are not visible in the diagram
Interaction diagrams show only relationships associated with a lifeline of a visible classifier.
For use as stereotype images, this section shows some generated svg-paths, licensed under Apache-2.0 or Public Domain at your choice.
Stereotype images
<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.25 5.25,-4 12,-4 s 12,1.75 12,4 s -5.25,4 -12,4 s -12,-1.75 -12,-4 " />
<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.2 z " /><path stroke="none" fill="#0000dd" d="m 11.5,17 l 12.5,6 l 2,-8 l -12.8,-6 z " />
<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 " />
<path d="M 6,18 C 6,11.25 11.25,6 18,6 S 30,11.25 30,18 S 24.75,30 18,30 S 6,24.75 6,18 " /><path d="M 7,30.5 L 29,30.5 " />
<path d="M 6,18 C 6,11.25 11.25,6 18,6 S 30,11.25 30,18 S 24.75,30 18,30 S 6,24.75 6,18 " /><path d="M 22,1 L 17,6 L 22,11 " />
<path d="M 6,18 C 6,11.25 11.25,6 18,6 S 30,11.25 30,18 S 24.75,30 18,30 S 6,24.75 6,18 " /><path d="M 1,9 L 1,27 M 1,18 L 6,18 " />
<path stroke="#000099" d="M 1,7 L 31,7 L 31,25 L 1,25 Z " />
<path stroke="#000099" d="M 8,25 C 0,25 0,7 8,7 L 24,7 C 32,7 32,25 24,25 Z " />
<path stroke="#000099" d="M 7,7 L 31,7 L 25,25 L 1,25 Z " />
<path stroke="#000099" d="M 1,10 C 1,5.5 7.5625,2 16,2 S 31,5.5 31,10 S 24.4375,18 16,18 S 1,14.5 1,10 " /><path stroke="#000099" d="M 24,25 L 26.5,19 L 29,25 M 24.75,23.5 L 28.25,23.5 " />
<path stroke="#000099" d="M 1,10 C 1,5.5 7.5625,2 16,2 S 31,5.5 31,10 S 24.4375,18 16,18 S 1,14.5 1,10 " /><path stroke="#000099" d="M 25,24 C 25,26 29,26 29,24 L 29,19 L 25,19 " />
<path stroke="#000099" d="M 1,16 C 1,7.5625 7.5625,1 16,1 S 31,7.5625 31,16 S 24.4375,31 16,31 S 1,24.4375 1,16 " />
<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 " />
<path d="M 1,16 C 1,7.5625 7.5625,1 16,1 S 31,7.5625 31,16 S 24.4375,31 16,31 S 1,24.4375 1,16 " />
<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.1875 23.1875,11 26,11 S 31,13.1875 31,16 S 28.8125,21 26,21 S 21,18.8125 21,16 " />
<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 " />
<path d="m 1,24 4,4 22,0 4,-4 " /><path stroke="#00aa00" d="m 8,17 c 0,-4.5 3.5,-8 8,-8 s 8,3.5 8,8 s -3.5,8 -8,8 s -8,-3.5 -8,-8 " /><path stroke="#00aa00" d="m 11,17 l 10,0 m -5,-5 l 0,10 " />
<path d="m 1,24 4,4 22,0 4,-4 " /><path stroke="#cc0000" d="m 8,17 c 0,-4.5 3.5,-8 8,-8 s 8,3.5 8,8 s -3.5,8 -8,8 s -8,-3.5 -8,-8 " /><path stroke="#cc0000" d="m 11,17 l 10,0 " />
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.