You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Licensed under the Apache License 2.0 (see [LICENSE](LICENSE))
3
3
4
-
## Models for high UML metamodel coverage (work in progress)
4
+
## Models for high UML metamodel and profile coverage (work in progress)
5
5
6
6
**Covered need:** sample model files that can be used to test the robustness of model processing facilities (exporters, coverters, storage mechanisms).
7
7
8
8
**Goal:** optimize for covering the UML metamodel / schema to a very high extent. Generally speaking,
9
9
* the more Element types have instances in the model, the better
10
-
* the more variety in attribute values, the better,
10
+
* the more variety in attribute values (with non-default assignment), the better,
11
11
* the more cross-reference kinds, the better
12
12
* the more Relationship kinds, the better.
13
-
14
-
In particular, both for cross-references and Relationship types, our aim is not simply to generate one instance for each kind.
15
-
Rather, we aim to generate cross-reference instances and Relationship instances for each combination of _concrete element types_ conformant to the source and target metaclasses.
16
13
17
-
In time, the models hosted here will progressively grow to cover more and more.
14
+
Additionally, for specific UML profiles (of which the SysML variant is published here),
15
+
* the more Stereotypes applied, the better,
16
+
* the more tag definitions that have actual tagged values (with non-default assignments), the better.
17
+
18
+
In particular, both for cross-references and Relationship types, our aim is not simply to generate one instance for each kind.
19
+
Rather, we aim to generate cross-reference and containment reference instances and Relationship instances for each combination of _concrete element types_ conformant to the source and target metaclasses. So while the metamodel defines `ownedBehavior` between `BehavioredClassifier` and `Behavior`, a *concerete triple* to be covered would be `Actor` having an `ownedBehavior` that is a `ProtocolStateMachine`.
18
20
19
21
**Non-goals:**
20
-
* coverage of UML profiles
22
+
*publically available model providing coverage of UML profiles other than SysML
21
23
* avoiding warning/error markers if validation is performed against any validation suite
22
24
* semantically meaningful content
25
+
* covering `Element.syncElement`, which is a MagicDraw-specific, non-standard feature that is not defined in UML
26
+
27
+
**Results achieved:**
28
+
See detailed coverage reports in the folder `coverage-info`. These were produced by evaluating the model artifacts against the UML metamodel resp. SysML profile, using the coverage measurement tool discussed below.
29
+
30
+
Most importantly, for the pure UML model artifacts:
31
+
* all UML metaclasses have some instances,
32
+
* all UML metamodel features, including _derived_ ones, are found to have at least one occurrence in the model, with the exception of `Element.syncElement` (non-goal at the time, see above) and some low-level technical features with names starting with underscores (their eOpposite features seem to have instances, so not seeing these results is likely just a MagicDraw API bug),
33
+
* for UML metamodel relations, over 14 thousand combinations of concrete triples (see above) are covered
34
+
35
+
Likewise, in the models that conform to SysML:
36
+
* all SysML stereotypes have some instances,
37
+
* all public SysML tag definitions, including _derived_ ones, have some features.
38
+
39
+
40
+
**Downloadable model artifacts:**
41
+
* Pure UML projects
42
+
*__MagicDraw/Cameo version 19: DEPRECATED, not entirely up to date, will be removed in future releases:_[download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/uml-coverage/Systematic%20Sample%20Model%20-%20UML%20in%20MD19.mdzip?raw=true)
43
+
* MagicDraw/Cameo version 2021x or newer: [download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/uml-coverage/Systematic%20Sample%20Model%20-%20UML%20in%20MD2021x.mdzip?raw=true)
44
+
* MagicDraw/Cameo version 2022x or newer: [download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/uml-coverage/Systematic%20Sample%20Model%20-%20UML%20in%20MD2022x.mdzip?raw=true)
45
+
* Projects with SysML coverage
46
+
*__MagicDraw/Cameo version 19: DEPRECATED, not entirely up to date, will be removed in future releases:_[download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/sysml-coverage/Systematic%20Sample%20Model%20-%20SysML%20in%20MD19.mdzip?raw=true)
47
+
* MagicDraw/Cameo version 2021x or newer: [download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/sysml-coverage/Systematic%20Sample%20Model%20-%20SysML%20in%20MD2021x.mdzip?raw=true)
48
+
* MagicDraw/Cameo version 2022x or newer: [download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/sysml-coverage/Systematic%20Sample%20Model%20-%20SysML%20in%20MD2022x.mdzip?raw=true)
49
+
50
+
## Metamodel and profile coverage measurement
51
+
52
+
The high metamodel and profile coverage is attested by a MagicDraw / Cameo plug-in utility that measures the extent of coverage. The above referenced coverage reports were generated using this tool.
53
+
The source code of this tool is provided as is, without build script or developer guide.
23
54
24
-
**Downloadable UML model artifacts:**
25
-
* MagicDraw/Cameo version 19: to be uploaded
26
-
* MagicDraw/Cameo version 2021x or newer: [download here](https://github.com/IncQueryLabs/systematic-sample-models/blob/main/cameo-models/uml-coverage/Systematic%20Sample%20Model%20-%20UML%20in%20MD2021x.mdzip?raw=true)
55
+
Find the source code in the folder `tools/com.incquerylabs.magicdraw.plugin.metamodelreport`, see also the [user guide](tools/com.incquerylabs.magicdraw.plugin.metamodelreport/userguide.md).
0 commit comments