Skip to content

Commit 0294aa4

Browse files
committed
2023 end-of-year snapshot drop
1 parent 5e8e03f commit 0294aa4

File tree

33 files changed

+207234
-62
lines changed

33 files changed

+207234
-62
lines changed

README.md

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,55 @@
11
# Systematically Generated Sample Models
22
Licensed under the Apache License 2.0 (see [LICENSE](LICENSE))
33

4-
## Models for high UML metamodel coverage (work in progress)
4+
## Models for high UML metamodel and profile coverage (work in progress)
55

66
**Covered need:** sample model files that can be used to test the robustness of model processing facilities (exporters, coverters, storage mechanisms).
77

88
**Goal:** optimize for covering the UML metamodel / schema to a very high extent. Generally speaking,
99
* 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,
1111
* the more cross-reference kinds, the better
1212
* 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.
1613

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`.
1820

1921
**Non-goals:**
20-
* coverage of UML profiles
22+
* publically available model providing coverage of UML profiles other than SysML
2123
* avoiding warning/error markers if validation is performed against any validation suite
2224
* 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.
2354

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).
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
{
2+
"numOfAllStereotypes": 88,
3+
"numOfCoveredStereotypes": 88,
4+
"numOfAllPublicProperties": 46,
5+
"numOfCoveredPublicProperties": 46,
6+
"coveredStereotypes": [
7+
"SysML::Activities::Continuous",
8+
"SysML::Activities::ControlOperator",
9+
"SysML::Activities::Discrete",
10+
"SysML::Activities::NoBuffer",
11+
"SysML::Activities::Optional",
12+
"SysML::Activities::Overwrite",
13+
"SysML::Activities::Probability",
14+
"SysML::Activities::Rate",
15+
"SysML::Allocations::Allocate",
16+
"SysML::Allocations::AllocateActivityPartition",
17+
"SysML::Blocks::AdjunctProperty",
18+
"SysML::Blocks::BindingConnector",
19+
"SysML::Blocks::Block",
20+
"SysML::Blocks::BoundReference",
21+
"SysML::Blocks::ClassifierBehaviorProperty",
22+
"SysML::Blocks::ConnectorProperty",
23+
"SysML::Blocks::DistributedProperty",
24+
"SysML::Blocks::EndPathMultiplicity",
25+
"SysML::Blocks::NestedConnectorEnd",
26+
"SysML::Blocks::ParticipantProperty",
27+
"SysML::Blocks::PropertySpecificType",
28+
"SysML::Blocks::ValueType",
29+
"SysML::ConstraintBlocks::ConstraintBlock",
30+
"SysML::DeprecatedElements::Allocated",
31+
"SysML::DeprecatedElements::FlowPort",
32+
"SysML::DeprecatedElements::FlowSpecification",
33+
"SysML::DeprecatedElements::RequirementRelated",
34+
"SysML::ModelElements::Conform",
35+
"SysML::ModelElements::ElementGroup",
36+
"SysML::ModelElements::Expose",
37+
"SysML::ModelElements::Problem",
38+
"SysML::ModelElements::Rationale",
39+
"SysML::ModelElements::Stakeholder",
40+
"SysML::ModelElements::View",
41+
"SysML::ModelElements::Viewpoint",
42+
"SysML::Non-Normative Extensions::Activity::Essential",
43+
"SysML::Non-Normative Extensions::Activity::System process",
44+
"SysML::Non-Normative Extensions::Activity::effbd",
45+
"SysML::Non-Normative Extensions::Activity::nonStreaming",
46+
"SysML::Non-Normative Extensions::Activity::streaming",
47+
"SysML::Non-Normative Extensions::Actors::Actuator",
48+
"SysML::Non-Normative Extensions::Actors::Boundary system",
49+
"SysML::Non-Normative Extensions::Actors::Environmental effect",
50+
"SysML::Non-Normative Extensions::Actors::External system",
51+
"SysML::Non-Normative Extensions::Actors::Sensor",
52+
"SysML::Non-Normative Extensions::Actors::User system",
53+
"SysML::Non-Normative Extensions::Block::Domain",
54+
"SysML::Non-Normative Extensions::Block::External",
55+
"SysML::Non-Normative Extensions::Block::Subsystem",
56+
"SysML::Non-Normative Extensions::Block::System",
57+
"SysML::Non-Normative Extensions::Block::System context",
58+
"SysML::Non-Normative Extensions::Diagrams::BlockHierarchy",
59+
"SysML::Non-Normative Extensions::Diagrams::ContextDiagram",
60+
"SysML::Non-Normative Extensions::Diagrams::Diagram Description",
61+
"SysML::Non-Normative Extensions::Diagrams::SwimLaneDiagram",
62+
"SysML::Non-Normative Extensions::Diagrams::diagramUsage",
63+
"SysML::Non-Normative Extensions::Distributions::BasicInterval",
64+
"SysML::Non-Normative Extensions::Distributions::Interval",
65+
"SysML::Non-Normative Extensions::Distributions::Normal",
66+
"SysML::Non-Normative Extensions::Distributions::Uniform",
67+
"SysML::Non-Normative Extensions::Parametric::moe",
68+
"SysML::Non-Normative Extensions::Parametric::objectiveFunction",
69+
"SysML::Non-Normative Extensions::Requirement::businessRequirement",
70+
"SysML::Non-Normative Extensions::Requirement::designConstraint",
71+
"SysML::Non-Normative Extensions::Requirement::extendedRequirement",
72+
"SysML::Non-Normative Extensions::Requirement::functionalRequirement",
73+
"SysML::Non-Normative Extensions::Requirement::interfaceRequirement",
74+
"SysML::Non-Normative Extensions::Requirement::performanceRequirement",
75+
"SysML::Non-Normative Extensions::Requirement::physicalRequirement",
76+
"SysML::Non-Normative Extensions::Requirement::usabilityRequirement",
77+
"SysML::Ports&Flows::AcceptChangeStructuralFeatureEventAction",
78+
"SysML::Ports&Flows::ChangeStructuralFeatureEvent",
79+
"SysML::Ports&Flows::DirectedFeature",
80+
"SysML::Ports&Flows::FlowProperty",
81+
"SysML::Ports&Flows::FullPort",
82+
"SysML::Ports&Flows::InterfaceBlock",
83+
"SysML::Ports&Flows::InvocationOnNestedPortAction",
84+
"SysML::Ports&Flows::ItemFlow",
85+
"SysML::Ports&Flows::ProxyPort",
86+
"SysML::Ports&Flows::TriggerOnNestedPort",
87+
"SysML::Requirements::Copy",
88+
"SysML::Requirements::DeriveReqt",
89+
"SysML::Requirements::Refine",
90+
"SysML::Requirements::Requirement",
91+
"SysML::Requirements::Satisfy",
92+
"SysML::Requirements::TestCase",
93+
"SysML::Requirements::Trace",
94+
"SysML::Requirements::Verify"
95+
],
96+
"uncoveredStereotypes": [],
97+
"coveredPublicProperties": [
98+
"SysML::Activities::Probability::probability",
99+
"SysML::Activities::Rate::rate",
100+
"SysML::Blocks::AdjunctProperty::principal",
101+
"SysML::Blocks::Block::isEncapsulated",
102+
"SysML::Blocks::BoundReference::bindingPath",
103+
"SysML::Blocks::BoundReference::boundEnd",
104+
"SysML::Blocks::ConnectorProperty::connector",
105+
"SysML::Blocks::DirectedRelationshipPropertyPath::sourceContext",
106+
"SysML::Blocks::DirectedRelationshipPropertyPath::sourcePropertyPath",
107+
"SysML::Blocks::DirectedRelationshipPropertyPath::targetContext",
108+
"SysML::Blocks::DirectedRelationshipPropertyPath::targetPropertyPath",
109+
"SysML::Blocks::ElementPropertyPath::propertyPath",
110+
"SysML::Blocks::EndPathMultiplicity::lower",
111+
"SysML::Blocks::EndPathMultiplicity::upper",
112+
"SysML::Blocks::ParticipantProperty::end",
113+
"SysML::Blocks::ValueType::quantityKind",
114+
"SysML::Blocks::ValueType::unit",
115+
"SysML::ModelElements::ElementGroup::criterion",
116+
"SysML::ModelElements::ElementGroup::member",
117+
"SysML::ModelElements::ElementGroup::name",
118+
"SysML::ModelElements::ElementGroup::orderedMember",
119+
"SysML::ModelElements::ElementGroup::size",
120+
"SysML::ModelElements::Stakeholder::concern",
121+
"SysML::ModelElements::Stakeholder::concernList",
122+
"SysML::ModelElements::View::stakeholder",
123+
"SysML::ModelElements::View::viewPoint",
124+
"SysML::ModelElements::Viewpoint::concern",
125+
"SysML::ModelElements::Viewpoint::concernList",
126+
"SysML::ModelElements::Viewpoint::language",
127+
"SysML::ModelElements::Viewpoint::method",
128+
"SysML::ModelElements::Viewpoint::presentation",
129+
"SysML::ModelElements::Viewpoint::purpose",
130+
"SysML::ModelElements::Viewpoint::stakeholder",
131+
"SysML::Ports&Flows::ChangeStructuralFeatureEvent::structuralFeature",
132+
"SysML::Ports&Flows::DirectedFeature::featureDirection",
133+
"SysML::Ports&Flows::InvocationOnNestedPortAction::onNestedPort",
134+
"SysML::Ports&Flows::TriggerOnNestedPort::onNestedPort",
135+
"SysML::Requirements::AbstractRequirement::Derived",
136+
"SysML::Requirements::AbstractRequirement::DerivedFrom",
137+
"SysML::Requirements::AbstractRequirement::Id",
138+
"SysML::Requirements::AbstractRequirement::Master",
139+
"SysML::Requirements::AbstractRequirement::RefinedBy",
140+
"SysML::Requirements::AbstractRequirement::SatisfiedBy",
141+
"SysML::Requirements::AbstractRequirement::Text",
142+
"SysML::Requirements::AbstractRequirement::TracedTo",
143+
"SysML::Requirements::AbstractRequirement::VerifiedBy"
144+
],
145+
"uncoveredPublicProperties": []
146+
}

0 commit comments

Comments
 (0)