sysml-validate 0.11.0 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +27 -27
- package/README.md +200 -200
- package/out/main.js +598 -142
- package/out/main.js.map +4 -4
- package/package.json +57 -57
- package/resources/sysml.dimension-table.json +1 -1
- package/resources/sysml.library/Domain Libraries/Analysis/.meta.json +9 -9
- package/resources/sysml.library/Domain Libraries/Analysis/.project.json +26 -26
- package/resources/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +33 -33
- package/resources/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +118 -118
- package/resources/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -143
- package/resources/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +170 -170
- package/resources/sysml.library/Domain Libraries/Cause and Effect/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Cause and Effect/.project.json +22 -22
- package/resources/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +82 -82
- package/resources/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -81
- package/resources/sysml.library/Domain Libraries/Geometry/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Geometry/.project.json +26 -26
- package/resources/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +898 -898
- package/resources/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +167 -167
- package/resources/sysml.library/Domain Libraries/Metadata/.meta.json +9 -9
- package/resources/sysml.library/Domain Libraries/Metadata/.project.json +18 -18
- package/resources/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +77 -77
- package/resources/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +142 -142
- package/resources/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +38 -38
- package/resources/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +99 -99
- package/resources/sysml.library/Domain Libraries/Quantities and Units/.meta.json +28 -28
- package/resources/sysml.library/Domain Libraries/Quantities and Units/.project.json +22 -22
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -42
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -439
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -2726
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -206
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -1991
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -1353
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -1223
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -2333
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -958
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -1537
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -1564
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -1169
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -1256
- package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -30
- package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -526
- package/resources/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -107
- package/resources/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -70
- package/resources/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -378
- package/resources/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -48
- package/resources/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +49 -49
- package/resources/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -274
- package/resources/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -260
- package/resources/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -62
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/.project.json +18 -18
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +62 -62
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +38 -38
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +8 -8
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +10 -10
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +176 -176
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -23
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +63 -63
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +22 -22
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +14 -14
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +79 -79
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -22
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -68
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -47
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +116 -116
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +42 -42
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -43
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -27
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +42 -42
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +153 -153
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -49
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -56
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +32 -32
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +110 -110
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -25
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +34 -34
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +272 -272
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +21 -21
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +14 -14
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +94 -94
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +155 -155
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +134 -134
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +189 -189
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -483
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +66 -66
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +57 -57
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -212
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +160 -160
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -992
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +292 -292
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +196 -196
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +144 -144
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +280 -280
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +65 -65
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +187 -187
- package/resources/sysml.library/LICENSE +276 -276
- package/resources/sysml.library/NOTICE.md +20 -20
- package/resources/sysml.library/Systems Library/Actions.sysml +556 -556
- package/resources/sysml.library/Systems Library/Allocations.sysml +28 -28
- package/resources/sysml.library/Systems Library/AnalysisCases.sysml +37 -37
- package/resources/sysml.library/Systems Library/Attributes.sysml +24 -24
- package/resources/sysml.library/Systems Library/Calculations.sysml +36 -36
- package/resources/sysml.library/Systems Library/Cases.sysml +70 -70
- package/resources/sysml.library/Systems Library/Connections.sysml +59 -59
- package/resources/sysml.library/Systems Library/Constraints.sysml +43 -43
- package/resources/sysml.library/Systems Library/Flows.sysml +125 -125
- package/resources/sysml.library/Systems Library/Interfaces.sysml +88 -88
- package/resources/sysml.library/Systems Library/Items.sysml +152 -152
- package/resources/sysml.library/Systems Library/Metadata.sysml +31 -31
- package/resources/sysml.library/Systems Library/Parts.sysml +80 -80
- package/resources/sysml.library/Systems Library/Ports.sysml +53 -53
- package/resources/sysml.library/Systems Library/Requirements.sysml +193 -193
- package/resources/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -123
- package/resources/sysml.library/Systems Library/States.sysml +102 -102
- package/resources/sysml.library/Systems Library/SysML.sysml +539 -539
- package/resources/sysml.library/Systems Library/UseCases.sysml +56 -56
- package/resources/sysml.library/Systems Library/VerificationCases.sysml +102 -102
- package/resources/sysml.library/Systems Library/Views.sysml +163 -163
- package/resources/sysml.library.index.json +1 -1
|
@@ -1,153 +1,153 @@
|
|
|
1
|
-
standard library package Items {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines the base types for items and related structural elements in the
|
|
5
|
-
* SysML language.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
private import Objects::Object;
|
|
9
|
-
private import Objects::objects;
|
|
10
|
-
private import Parts::Part;
|
|
11
|
-
private import Parts::parts;
|
|
12
|
-
private import Occurrences::HappensWhile;
|
|
13
|
-
private import Occurrences::JustOutsideOf;
|
|
14
|
-
private import Objects::StructuredSpaceObject;
|
|
15
|
-
private import Constraints::ConstraintCheck;
|
|
16
|
-
private import Constraints::constraintChecks;
|
|
17
|
-
private import CollectionFunctions::contains;
|
|
18
|
-
private import SequenceFunctions::isEmpty;
|
|
19
|
-
private import SequenceFunctions::notEmpty;
|
|
20
|
-
private import SequenceFunctions::includes;
|
|
21
|
-
private import SequenceFunctions::union;
|
|
22
|
-
private import ControlFunctions::forAll;
|
|
23
|
-
|
|
24
|
-
abstract item def Item :> Object {
|
|
25
|
-
doc
|
|
26
|
-
/*
|
|
27
|
-
* Item is the most general class of objects that are part of, exist in or flow through a system.
|
|
28
|
-
* Item is the base type of all ItemDefinitions.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
ref self: Item :>> Object::self;
|
|
32
|
-
|
|
33
|
-
item start: Item :>> startShot;
|
|
34
|
-
item done: Item :>> endShot;
|
|
35
|
-
|
|
36
|
-
item shape : Item :>> spaceBoundary {
|
|
37
|
-
doc
|
|
38
|
-
/*
|
|
39
|
-
* The shape of an Item is its spatial boundary.
|
|
40
|
-
*/
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
item envelopingShapes : Item[0..*] {
|
|
44
|
-
doc
|
|
45
|
-
/*
|
|
46
|
-
* Each enveloping shape is the shape of an Item that spacially overlaps this Item for its
|
|
47
|
-
* entire lifetime.
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
ref item envelopedItem :>> that;
|
|
51
|
-
|
|
52
|
-
assert constraint {
|
|
53
|
-
doc
|
|
54
|
-
/*
|
|
55
|
-
* Enables two dimensional items to be enveloped by two or three dimensional shapes.
|
|
56
|
-
*/
|
|
57
|
-
innerSpaceDimension ==
|
|
58
|
-
(if envelopedItem.innerSpaceDimension == 3 | envelopedItem.outerSpaceDimension == 3? 2
|
|
59
|
-
else envelopedItem.outerSpaceDimension - 1)
|
|
60
|
-
}
|
|
61
|
-
assert constraint { (that as Item).innerSpaceDimension < 3 implies notEmpty(outerSpaceDimension) }
|
|
62
|
-
|
|
63
|
-
item envelopingItem [1];
|
|
64
|
-
|
|
65
|
-
assert constraint {
|
|
66
|
-
doc
|
|
67
|
-
/*
|
|
68
|
-
* This constraint prevents an envelopingShape from being a portion.
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
envelopingItem.shape.spaceTimeCoincidentOccurrences->includes(that) and
|
|
72
|
-
envelopingItem.spaceTimeEnclosedOccurrences->includes(that.that)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
item boundingShapes : StructuredSpaceObject [0..*] :> envelopingShapes {
|
|
77
|
-
doc
|
|
78
|
-
/*
|
|
79
|
-
* envelopingShapes that are structured space objects with every face or every edge
|
|
80
|
-
* intersecting this Item.
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
ref item boundingShape: Item :>> self;
|
|
84
|
-
|
|
85
|
-
private item :>> faces {
|
|
86
|
-
ref item face :>> self;
|
|
87
|
-
item inter [1];
|
|
88
|
-
assert constraint { contains(inter.intersectionsOf, union(face, boundingShape)) }
|
|
89
|
-
}
|
|
90
|
-
private item :>> edges {
|
|
91
|
-
ref item edge :>> self;
|
|
92
|
-
item inter [1];
|
|
93
|
-
assert constraint { isEmpty(faces) implies
|
|
94
|
-
contains(inter.intersectionsOf, union(edge, boundingShape)) }
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
item voids :>> innerSpaceOccurrences [0..*] {
|
|
99
|
-
doc
|
|
100
|
-
/*
|
|
101
|
-
* Voids are inner space occurrences of this Item.
|
|
102
|
-
*/
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
attribute isSolid = isEmpty(voids) {
|
|
106
|
-
doc
|
|
107
|
-
/*
|
|
108
|
-
* An Item is solid if it has no voids.
|
|
109
|
-
*/
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
abstract item subitems: Item[0..*] :> items, subobjects {
|
|
113
|
-
doc
|
|
114
|
-
/*
|
|
115
|
-
* The Items that are composite subitems of this Item.
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
private ref redefines Item::incomingTransferSort, subobjects::incomingTransferSort;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
abstract part subparts: Part[0..*] :> subitems, parts {
|
|
122
|
-
doc
|
|
123
|
-
/*
|
|
124
|
-
* The subitems of this Item that are Parts.
|
|
125
|
-
*/
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
abstract constraint checkedConstraints: ConstraintCheck[0..*] :> constraintChecks, ownedPerformances {
|
|
129
|
-
doc
|
|
130
|
-
/*
|
|
131
|
-
* Constraints that have been checked by this Item.
|
|
132
|
-
*/
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
connection def Touches :> JustOutsideOf, HappensWhile {
|
|
137
|
-
doc
|
|
138
|
-
/*
|
|
139
|
-
* Touching items are just outside each other and happen at the same time.
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
end touchesToo [0..*] item touchedItemToo :>> separateSpaceToo, thisOccurrence;
|
|
143
|
-
end touches [0..*] item touchedItem :>> separateSpace, thatOccurrence;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
abstract item items : Item[0..*] nonunique :> objects {
|
|
147
|
-
doc
|
|
148
|
-
/*
|
|
149
|
-
* items is the base feature of all ItemUsages.
|
|
150
|
-
*/
|
|
151
|
-
}
|
|
152
|
-
|
|
1
|
+
standard library package Items {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for items and related structural elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
private import Parts::Part;
|
|
11
|
+
private import Parts::parts;
|
|
12
|
+
private import Occurrences::HappensWhile;
|
|
13
|
+
private import Occurrences::JustOutsideOf;
|
|
14
|
+
private import Objects::StructuredSpaceObject;
|
|
15
|
+
private import Constraints::ConstraintCheck;
|
|
16
|
+
private import Constraints::constraintChecks;
|
|
17
|
+
private import CollectionFunctions::contains;
|
|
18
|
+
private import SequenceFunctions::isEmpty;
|
|
19
|
+
private import SequenceFunctions::notEmpty;
|
|
20
|
+
private import SequenceFunctions::includes;
|
|
21
|
+
private import SequenceFunctions::union;
|
|
22
|
+
private import ControlFunctions::forAll;
|
|
23
|
+
|
|
24
|
+
abstract item def Item :> Object {
|
|
25
|
+
doc
|
|
26
|
+
/*
|
|
27
|
+
* Item is the most general class of objects that are part of, exist in or flow through a system.
|
|
28
|
+
* Item is the base type of all ItemDefinitions.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
ref self: Item :>> Object::self;
|
|
32
|
+
|
|
33
|
+
item start: Item :>> startShot;
|
|
34
|
+
item done: Item :>> endShot;
|
|
35
|
+
|
|
36
|
+
item shape : Item :>> spaceBoundary {
|
|
37
|
+
doc
|
|
38
|
+
/*
|
|
39
|
+
* The shape of an Item is its spatial boundary.
|
|
40
|
+
*/
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
item envelopingShapes : Item[0..*] {
|
|
44
|
+
doc
|
|
45
|
+
/*
|
|
46
|
+
* Each enveloping shape is the shape of an Item that spacially overlaps this Item for its
|
|
47
|
+
* entire lifetime.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
ref item envelopedItem :>> that;
|
|
51
|
+
|
|
52
|
+
assert constraint {
|
|
53
|
+
doc
|
|
54
|
+
/*
|
|
55
|
+
* Enables two dimensional items to be enveloped by two or three dimensional shapes.
|
|
56
|
+
*/
|
|
57
|
+
innerSpaceDimension ==
|
|
58
|
+
(if envelopedItem.innerSpaceDimension == 3 | envelopedItem.outerSpaceDimension == 3? 2
|
|
59
|
+
else envelopedItem.outerSpaceDimension - 1)
|
|
60
|
+
}
|
|
61
|
+
assert constraint { (that as Item).innerSpaceDimension < 3 implies notEmpty(outerSpaceDimension) }
|
|
62
|
+
|
|
63
|
+
item envelopingItem [1];
|
|
64
|
+
|
|
65
|
+
assert constraint {
|
|
66
|
+
doc
|
|
67
|
+
/*
|
|
68
|
+
* This constraint prevents an envelopingShape from being a portion.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
envelopingItem.shape.spaceTimeCoincidentOccurrences->includes(that) and
|
|
72
|
+
envelopingItem.spaceTimeEnclosedOccurrences->includes(that.that)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
item boundingShapes : StructuredSpaceObject [0..*] :> envelopingShapes {
|
|
77
|
+
doc
|
|
78
|
+
/*
|
|
79
|
+
* envelopingShapes that are structured space objects with every face or every edge
|
|
80
|
+
* intersecting this Item.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
ref item boundingShape: Item :>> self;
|
|
84
|
+
|
|
85
|
+
private item :>> faces {
|
|
86
|
+
ref item face :>> self;
|
|
87
|
+
item inter [1];
|
|
88
|
+
assert constraint { contains(inter.intersectionsOf, union(face, boundingShape)) }
|
|
89
|
+
}
|
|
90
|
+
private item :>> edges {
|
|
91
|
+
ref item edge :>> self;
|
|
92
|
+
item inter [1];
|
|
93
|
+
assert constraint { isEmpty(faces) implies
|
|
94
|
+
contains(inter.intersectionsOf, union(edge, boundingShape)) }
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
item voids :>> innerSpaceOccurrences [0..*] {
|
|
99
|
+
doc
|
|
100
|
+
/*
|
|
101
|
+
* Voids are inner space occurrences of this Item.
|
|
102
|
+
*/
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
attribute isSolid = isEmpty(voids) {
|
|
106
|
+
doc
|
|
107
|
+
/*
|
|
108
|
+
* An Item is solid if it has no voids.
|
|
109
|
+
*/
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
abstract item subitems: Item[0..*] :> items, subobjects {
|
|
113
|
+
doc
|
|
114
|
+
/*
|
|
115
|
+
* The Items that are composite subitems of this Item.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
private ref redefines Item::incomingTransferSort, subobjects::incomingTransferSort;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
abstract part subparts: Part[0..*] :> subitems, parts {
|
|
122
|
+
doc
|
|
123
|
+
/*
|
|
124
|
+
* The subitems of this Item that are Parts.
|
|
125
|
+
*/
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
abstract constraint checkedConstraints: ConstraintCheck[0..*] :> constraintChecks, ownedPerformances {
|
|
129
|
+
doc
|
|
130
|
+
/*
|
|
131
|
+
* Constraints that have been checked by this Item.
|
|
132
|
+
*/
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
connection def Touches :> JustOutsideOf, HappensWhile {
|
|
137
|
+
doc
|
|
138
|
+
/*
|
|
139
|
+
* Touching items are just outside each other and happen at the same time.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
end touchesToo [0..*] item touchedItemToo :>> separateSpaceToo, thisOccurrence;
|
|
143
|
+
end touches [0..*] item touchedItem :>> separateSpace, thatOccurrence;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
abstract item items : Item[0..*] nonunique :> objects {
|
|
147
|
+
doc
|
|
148
|
+
/*
|
|
149
|
+
* items is the base feature of all ItemUsages.
|
|
150
|
+
*/
|
|
151
|
+
}
|
|
152
|
+
|
|
153
153
|
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
standard library package Metadata {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines the base types for metadata definitions and related
|
|
5
|
-
* metadata annotations in the SysML language.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
private import Metaobjects::Metaobject;
|
|
9
|
-
private import Metaobjects::metaobjects;
|
|
10
|
-
private import Items::Item;
|
|
11
|
-
private import Items::items;
|
|
12
|
-
|
|
13
|
-
abstract metadata def MetadataItem :> Metaobject, Item {
|
|
14
|
-
doc
|
|
15
|
-
/*
|
|
16
|
-
* MetadataItem is the most general class of Items that represent Metaobjects.
|
|
17
|
-
* MetadataItem is the base type of all MetadataDefinitions.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
ref self : MetadataItem redefines Metaobject::self, Item::self;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
abstract item metadataItems : MetadataItem[0..*] :> metaobjects, items {
|
|
24
|
-
doc
|
|
25
|
-
/*
|
|
26
|
-
* metadataItems is the base feature of all MetadataUsages.
|
|
27
|
-
*
|
|
28
|
-
* Note: It is not itself a MetadataUsage, because it is not being used as an
|
|
29
|
-
* AnnotatingElement here.
|
|
30
|
-
*/
|
|
31
|
-
}
|
|
1
|
+
standard library package Metadata {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for metadata definitions and related
|
|
5
|
+
* metadata annotations in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Metaobjects::Metaobject;
|
|
9
|
+
private import Metaobjects::metaobjects;
|
|
10
|
+
private import Items::Item;
|
|
11
|
+
private import Items::items;
|
|
12
|
+
|
|
13
|
+
abstract metadata def MetadataItem :> Metaobject, Item {
|
|
14
|
+
doc
|
|
15
|
+
/*
|
|
16
|
+
* MetadataItem is the most general class of Items that represent Metaobjects.
|
|
17
|
+
* MetadataItem is the base type of all MetadataDefinitions.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
ref self : MetadataItem redefines Metaobject::self, Item::self;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
abstract item metadataItems : MetadataItem[0..*] :> metaobjects, items {
|
|
24
|
+
doc
|
|
25
|
+
/*
|
|
26
|
+
* metadataItems is the base feature of all MetadataUsages.
|
|
27
|
+
*
|
|
28
|
+
* Note: It is not itself a MetadataUsage, because it is not being used as an
|
|
29
|
+
* AnnotatingElement here.
|
|
30
|
+
*/
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
standard library package Parts {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines the base types for parts and related structural elements in the
|
|
5
|
-
* SysML language.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
private import Objects::Object;
|
|
9
|
-
private import Objects::objects;
|
|
10
|
-
private import Items::Item;
|
|
11
|
-
private import Items::items;
|
|
12
|
-
private import Ports::Port;
|
|
13
|
-
private import Ports::ports;
|
|
14
|
-
private import Actions::Action;
|
|
15
|
-
private import Actions::actions;
|
|
16
|
-
private import States::StateAction;
|
|
17
|
-
private import States::stateActions;
|
|
18
|
-
|
|
19
|
-
abstract part def Part :> Item {
|
|
20
|
-
doc
|
|
21
|
-
/*
|
|
22
|
-
* Part is the most general class of objects that represent all or a part of a system.
|
|
23
|
-
* Part is the base type of all PartDefinitions.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
ref self: Part :>> Item::self;
|
|
27
|
-
|
|
28
|
-
part start: Part :>> Item::start;
|
|
29
|
-
part done: Part :>> Item::done;
|
|
30
|
-
|
|
31
|
-
abstract port ownedPorts: Port[0..*] :> ports, timeEnclosedOccurrences {
|
|
32
|
-
doc
|
|
33
|
-
/*
|
|
34
|
-
* Ports that are owned by this Part.
|
|
35
|
-
*/
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
abstract ref action performedActions: Action[0..*] :> actions, enactedPerformances {
|
|
39
|
-
doc
|
|
40
|
-
/*
|
|
41
|
-
* Actions that are performed by this Part.
|
|
42
|
-
*/
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
abstract action ownedActions: Action[0..*] :> actions, ownedPerformances {
|
|
46
|
-
doc
|
|
47
|
-
/*
|
|
48
|
-
* Actions that are owned by this Part.
|
|
49
|
-
*/
|
|
50
|
-
|
|
51
|
-
ref part this : Part :>> Action::this, ownedPerformances::this = that as Part {
|
|
52
|
-
doc
|
|
53
|
-
/*
|
|
54
|
-
* The "this" reference of an ownedAction is always its owning Part.
|
|
55
|
-
*/
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
abstract ref state exhibitedStates: StateAction[0..*] :> stateActions, performedActions {
|
|
60
|
-
doc
|
|
61
|
-
/*
|
|
62
|
-
* StateActions that are exhibited by this Part.
|
|
63
|
-
*/
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
abstract state ownedStates: StateAction[0..*] :> stateActions, ownedActions {
|
|
67
|
-
doc
|
|
68
|
-
/*
|
|
69
|
-
* StateActions that are owned by this Part.
|
|
70
|
-
*/
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
abstract part parts: Part[0..*] nonunique :> items {
|
|
75
|
-
doc
|
|
76
|
-
/*
|
|
77
|
-
* parts is the base feature of all part properties.
|
|
78
|
-
*/
|
|
79
|
-
}
|
|
80
|
-
|
|
1
|
+
standard library package Parts {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for parts and related structural elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
private import Items::Item;
|
|
11
|
+
private import Items::items;
|
|
12
|
+
private import Ports::Port;
|
|
13
|
+
private import Ports::ports;
|
|
14
|
+
private import Actions::Action;
|
|
15
|
+
private import Actions::actions;
|
|
16
|
+
private import States::StateAction;
|
|
17
|
+
private import States::stateActions;
|
|
18
|
+
|
|
19
|
+
abstract part def Part :> Item {
|
|
20
|
+
doc
|
|
21
|
+
/*
|
|
22
|
+
* Part is the most general class of objects that represent all or a part of a system.
|
|
23
|
+
* Part is the base type of all PartDefinitions.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
ref self: Part :>> Item::self;
|
|
27
|
+
|
|
28
|
+
part start: Part :>> Item::start;
|
|
29
|
+
part done: Part :>> Item::done;
|
|
30
|
+
|
|
31
|
+
abstract port ownedPorts: Port[0..*] :> ports, timeEnclosedOccurrences {
|
|
32
|
+
doc
|
|
33
|
+
/*
|
|
34
|
+
* Ports that are owned by this Part.
|
|
35
|
+
*/
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
abstract ref action performedActions: Action[0..*] :> actions, enactedPerformances {
|
|
39
|
+
doc
|
|
40
|
+
/*
|
|
41
|
+
* Actions that are performed by this Part.
|
|
42
|
+
*/
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
abstract action ownedActions: Action[0..*] :> actions, ownedPerformances {
|
|
46
|
+
doc
|
|
47
|
+
/*
|
|
48
|
+
* Actions that are owned by this Part.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
ref part this : Part :>> Action::this, ownedPerformances::this = that as Part {
|
|
52
|
+
doc
|
|
53
|
+
/*
|
|
54
|
+
* The "this" reference of an ownedAction is always its owning Part.
|
|
55
|
+
*/
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
abstract ref state exhibitedStates: StateAction[0..*] :> stateActions, performedActions {
|
|
60
|
+
doc
|
|
61
|
+
/*
|
|
62
|
+
* StateActions that are exhibited by this Part.
|
|
63
|
+
*/
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
abstract state ownedStates: StateAction[0..*] :> stateActions, ownedActions {
|
|
67
|
+
doc
|
|
68
|
+
/*
|
|
69
|
+
* StateActions that are owned by this Part.
|
|
70
|
+
*/
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
abstract part parts: Part[0..*] nonunique :> items {
|
|
75
|
+
doc
|
|
76
|
+
/*
|
|
77
|
+
* parts is the base feature of all part properties.
|
|
78
|
+
*/
|
|
79
|
+
}
|
|
80
|
+
|
|
81
81
|
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
standard library package Ports {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines the base types for ports and related structural elements
|
|
5
|
-
* in the SysML language.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
private import Objects::Object;
|
|
9
|
-
private import Objects::objects;
|
|
10
|
-
|
|
11
|
-
abstract port def Port :> Object {
|
|
12
|
-
doc
|
|
13
|
-
/*
|
|
14
|
-
* Port is the most general class of objects that represent connection points
|
|
15
|
-
* for interacting with a Part. Port is the base type of all PortDefinitions.
|
|
16
|
-
*
|
|
17
|
-
* Transfers outgoing from a Port are always targeted to a Port connected to
|
|
18
|
-
* the original Port by an Interface.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
ref self: Port :>> Object::self;
|
|
22
|
-
|
|
23
|
-
port subports: Port [0..*] :> ports, timeEnclosedOccurrences {
|
|
24
|
-
doc
|
|
25
|
-
/*
|
|
26
|
-
* The Ports that are subports of this Port.
|
|
27
|
-
*/
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
abstract ref port interfacingPorts : Port[0..*] nonunique :> ports {
|
|
31
|
-
doc
|
|
32
|
-
/*
|
|
33
|
-
* Ports that are connected to this Port by an Interface.
|
|
34
|
-
*/
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
ref :>> outgoingTransfersFromSelf :> interfacingPorts.incomingTransfersToSelf {
|
|
38
|
-
doc
|
|
39
|
-
/*
|
|
40
|
-
* The target of each of the outgoingTransfersFromSelf of a Port must be an interfacingPort.
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
end ref source;
|
|
44
|
-
end ref target;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
abstract port ports : Port[0..*] nonunique :> objects {
|
|
49
|
-
doc
|
|
50
|
-
/*
|
|
51
|
-
* ports is the base feature of all PortUsages.
|
|
52
|
-
*/
|
|
53
|
-
}
|
|
1
|
+
standard library package Ports {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for ports and related structural elements
|
|
5
|
+
* in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
|
|
11
|
+
abstract port def Port :> Object {
|
|
12
|
+
doc
|
|
13
|
+
/*
|
|
14
|
+
* Port is the most general class of objects that represent connection points
|
|
15
|
+
* for interacting with a Part. Port is the base type of all PortDefinitions.
|
|
16
|
+
*
|
|
17
|
+
* Transfers outgoing from a Port are always targeted to a Port connected to
|
|
18
|
+
* the original Port by an Interface.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
ref self: Port :>> Object::self;
|
|
22
|
+
|
|
23
|
+
port subports: Port [0..*] :> ports, timeEnclosedOccurrences {
|
|
24
|
+
doc
|
|
25
|
+
/*
|
|
26
|
+
* The Ports that are subports of this Port.
|
|
27
|
+
*/
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
abstract ref port interfacingPorts : Port[0..*] nonunique :> ports {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* Ports that are connected to this Port by an Interface.
|
|
34
|
+
*/
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
ref :>> outgoingTransfersFromSelf :> interfacingPorts.incomingTransfersToSelf {
|
|
38
|
+
doc
|
|
39
|
+
/*
|
|
40
|
+
* The target of each of the outgoingTransfersFromSelf of a Port must be an interfacingPort.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
end ref source;
|
|
44
|
+
end ref target;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
abstract port ports : Port[0..*] nonunique :> objects {
|
|
49
|
+
doc
|
|
50
|
+
/*
|
|
51
|
+
* ports is the base feature of all PortUsages.
|
|
52
|
+
*/
|
|
53
|
+
}
|
|
54
54
|
}
|