@memoarchitect/ontology 0.10.9 → 0.11.2

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.
Files changed (36) hide show
  1. package/README.md +1 -1
  2. package/examples/gpca-pump/memo.identity.yaml +12 -6
  3. package/examples/gpca-pump/model/catalog/gpca_context.sysml +7 -4
  4. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +100 -100
  5. package/examples/nested-architecture-dsm/memo.identity.yaml +181 -0
  6. package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +34 -0
  7. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +5 -2
  8. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
  9. package/examples/nested-architecture-dsm/model/catalog/project.sysml +1 -0
  10. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +3 -0
  11. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +3 -3
  12. package/examples/ui-screen-regions/memo.identity.yaml +205 -0
  13. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
  14. package/extensions/aadl/memo.package.yaml +1 -1
  15. package/extensions/cloud/memo.package.yaml +1 -1
  16. package/extensions/container/memo.package.yaml +1 -1
  17. package/extensions/messaging/memo.package.yaml +1 -1
  18. package/extensions/ros/memo.package.yaml +1 -1
  19. package/methodologies/default/memo.package.yaml +1 -1
  20. package/methodologies/gpca/memo.package.yaml +1 -1
  21. package/ontology/memo.package.yaml +1 -1
  22. package/package.json +1 -1
  23. package/profile/memo.package.yaml +1 -1
  24. package/src/architecture/operational/scenarios/memo_scenarios.sysml +1 -2
  25. package/src/artifacts/templates/dhf/iec-60601/hrs.md +6 -6
  26. package/src/artifacts/templates/dhf/iec-62304/srs.md +10 -10
  27. package/src/artifacts/templates/dhf/system/syrs.md +6 -6
  28. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +5 -1
  29. package/src/assurance/human_factors/memo_human_factors.sysml +0 -1
  30. package/src/assurance/requirements/memo_requirements.sysml +20 -16
  31. package/src/assurance/requirements/needs/memo_needs.sysml +33 -5
  32. package/src/assurance/safety_risk/memo_risk.sysml +39 -16
  33. package/src/assurance/verification_validation/memo_assurance.sysml +18 -0
  34. package/src/rules/closure/closure_rules.sysml +36 -2
  35. package/src/rules/crosslayer/cross_layer_rules.sysml +1 -1
  36. package/src/rules/ontology/ontology_invariants.sysml +13 -2
@@ -0,0 +1,181 @@
1
+ # memo.identity.yaml — element identity registry (auto-generated)
2
+ # Assigned once and never reassigned. COMMIT THIS FILE: deleting it does
3
+ # not regenerate the same identities, it mints new ones, and every
4
+ # external reference to a shortId or uuid then points at nothing.
5
+ # Entries for deleted elements are retained so their numbers stay retired.
6
+
7
+ elements:
8
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnAcceptInput":
9
+ shortId: "SYS-1"
10
+ uuid: "743bc427-3611-54b4-b02f-f30d4474e8be"
11
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnAnnunciateAlarm":
12
+ shortId: "SYS-2"
13
+ uuid: "38a50787-f2bd-51ee-9b90-6e0e6695b9f6"
14
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnComputeRate":
15
+ shortId: "SYS-3"
16
+ uuid: "88ffa158-7036-55a6-910f-72ebeff80d8c"
17
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnControlDose":
18
+ shortId: "SYS-4"
19
+ uuid: "02ff5db5-4708-5084-8b09-2700ddb32faf"
20
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnDeliverTherapy":
21
+ shortId: "SYS-5"
22
+ uuid: "97af02c1-1869-51cd-b6a3-3d9b0803cac0"
23
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnDetectAirInLine":
24
+ shortId: "SYS-6"
25
+ uuid: "01cc8a11-19d1-598f-a56f-f7cf5ba0d243"
26
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnDetectOcclusion":
27
+ shortId: "SYS-7"
28
+ uuid: "a1c87fbc-9933-5b07-a7a4-faa2a1b53589"
29
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnDriveActuator":
30
+ shortId: "SYS-8"
31
+ uuid: "cafa121a-9376-543e-b16f-3e1755ca2aa6"
32
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnEnforceDoseLimits":
33
+ shortId: "SYS-9"
34
+ uuid: "e3f15682-175f-550c-9daa-305017c19b54"
35
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnEnsureSafety":
36
+ shortId: "SYS-10"
37
+ uuid: "4c0057ea-363a-534f-b3cb-d939e9b9f22d"
38
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnInformUser":
39
+ shortId: "SYS-11"
40
+ uuid: "c0d2ae2a-c619-552c-ad94-67a87d75a5f0"
41
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnManagePower":
42
+ shortId: "SYS-12"
43
+ uuid: "7306642f-c2c8-53ed-bf55-4369cdec0373"
44
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnMeasureDelivered":
45
+ shortId: "SYS-13"
46
+ uuid: "e9e92f6d-4d74-5ab2-8a04-3a8a502db932"
47
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnMeterFluid":
48
+ shortId: "SYS-14"
49
+ uuid: "ad2c6549-6cde-5d0c-972d-121765bad784"
50
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnMonitorBattery":
51
+ shortId: "SYS-15"
52
+ uuid: "fa001550-9cd2-5118-880b-16dcc35f11e9"
53
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnRenderStatus":
54
+ shortId: "SYS-16"
55
+ uuid: "2f581251-4e2e-5e0c-b937-e668d7abb1df"
56
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnSelectPowerSource":
57
+ shortId: "SYS-17"
58
+ uuid: "96806e2b-9dad-5a25-906e-097da793517f"
59
+ "memo_examples_nested_architecture_dsm_architecture_functional_functions::fnValidatePrescription":
60
+ shortId: "SYS-18"
61
+ uuid: "a8c04e09-7dfe-50ae-8b7e-184964772b59"
62
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcAlarmAnnunciator":
63
+ shortId: "LGC-1"
64
+ uuid: "4a3bc844-d379-53a5-bd07-45cfddbb306f"
65
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcBatteryManager":
66
+ shortId: "LGC-2"
67
+ uuid: "d6971bce-148e-5366-ab22-f80166c10b3f"
68
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcDisplayManager":
69
+ shortId: "LGC-3"
70
+ uuid: "429d103c-969c-53fc-a447-2a0a9bb74764"
71
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcDoseController":
72
+ shortId: "LGC-4"
73
+ uuid: "3b49ad97-598e-5474-aae7-e1b378be185d"
74
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcKeypadHandler":
75
+ shortId: "LGC-5"
76
+ uuid: "69673dde-9347-5e7b-a896-6ee9e9069a86"
77
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcOcclusionChannel":
78
+ shortId: "LGC-6"
79
+ uuid: "f1964871-b8a4-510d-b946-c962847f61d4"
80
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcPowerRailMonitor":
81
+ shortId: "LGC-7"
82
+ uuid: "4deb4ccd-b9f0-5ff4-904e-cf88beff861d"
83
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcPressureIntegrityChannel":
84
+ shortId: "LGC-8"
85
+ uuid: "45f4a37a-5d78-5b1c-8638-e3df1bdcfedf"
86
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcPumpMechanism":
87
+ shortId: "LGC-9"
88
+ uuid: "630e869e-ef26-52f5-85a4-a9ab0e045006"
89
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcReservoirInterface":
90
+ shortId: "LGC-10"
91
+ uuid: "8bf720eb-227b-59bc-a8bd-17597157badf"
92
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcTherapyStateStore":
93
+ shortId: "LGC-11"
94
+ uuid: "59faa354-00b6-542a-9097-8b54c7cfa0a4"
95
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::lcWatchdogChannel":
96
+ shortId: "LGC-12"
97
+ uuid: "11ebfa38-f25a-5d86-a3fe-0daf3bbf37ae"
98
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::subControl":
99
+ shortId: "SBS-1"
100
+ uuid: "077d4a45-b168-52a4-9641-17c1f5b600ff"
101
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::subFluidPath":
102
+ shortId: "SBS-2"
103
+ uuid: "43548a32-68a1-51bf-ab90-378990d36d2c"
104
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::subPower":
105
+ shortId: "SBS-3"
106
+ uuid: "aa677b1f-eddb-5436-9c6f-85221b3b77aa"
107
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::subSafetyMonitor":
108
+ shortId: "SBS-4"
109
+ uuid: "c22054ce-e7da-5a61-8d9e-3dc1c364baba"
110
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::subUserInterface":
111
+ shortId: "SBS-5"
112
+ uuid: "d549ae19-f954-5553-98bc-2aae381754ae"
113
+ "memo_examples_nested_architecture_dsm_architecture_logical_structure::sysTherapyDelivery":
114
+ shortId: "SYS-19"
115
+ uuid: "523429e1-0a24-5aa6-b5c0-47c7eb82f4df"
116
+ "memo_examples_nested_architecture_dsm_architecture_operational_context::ctxIntraHospitalTransport":
117
+ shortId: "USE-1"
118
+ uuid: "a4ec22e7-25cb-54f8-b606-397da672af36"
119
+ "memo_examples_nested_architecture_dsm_architecture_operational_context::usrWardNurse":
120
+ shortId: "USR-1"
121
+ uuid: "39407d04-fca3-5b3a-b28e-194c9f31e9d4"
122
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqAirInLine":
123
+ shortId: "REQ-1"
124
+ uuid: "f2f205b4-1e68-5b3e-ae8d-cea54cdc3388"
125
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqAlarmAnnunciation":
126
+ shortId: "REQ-2"
127
+ uuid: "0b3ba822-88d2-5962-8593-f00c15ead07d"
128
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqBatteryEndurance":
129
+ shortId: "REQ-3"
130
+ uuid: "1f99da03-e599-54ad-aa32-4c24bf3ae84a"
131
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqDoseAccuracy":
132
+ shortId: "REQ-4"
133
+ uuid: "43f50994-6b6f-5417-8de1-c5ffd2d49451"
134
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqOcclusionDetection":
135
+ shortId: "REQ-5"
136
+ uuid: "8a62a44d-826b-5adb-801f-7b2597f482c5"
137
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqPrescriptionConfirmation":
138
+ shortId: "REQ-6"
139
+ uuid: "7c2749b0-b903-5aec-b96b-bd959ca99cc4"
140
+ "memo_examples_nested_architecture_dsm_assurance_requirements::reqStatusVisibility":
141
+ shortId: "REQ-7"
142
+ uuid: "395b9df3-124d-5aec-abac-8d89fda5636d"
143
+ "memo_examples_nested_architecture_dsm_assurance_requirements_needs::needAccurateTherapy":
144
+ shortId: "NDX-1"
145
+ uuid: "58558865-5133-5b8b-a6b8-6a1dcc99b070"
146
+ "memo_examples_nested_architecture_dsm_assurance_requirements_needs::needLegibleStatus":
147
+ shortId: "NDX-2"
148
+ uuid: "2cc071e0-c4c5-5471-ab29-7ce129dc6091"
149
+ "memo_examples_nested_architecture_dsm_assurance_requirements_needs::needProtectionFromHarm":
150
+ shortId: "NDX-3"
151
+ uuid: "ec2774b0-8efa-5546-bfba-dabda753f6da"
152
+ "memo_examples_nested_architecture_dsm_assurance_requirements_needs::needUninterruptedTherapy":
153
+ shortId: "NDX-4"
154
+ uuid: "3ffb013e-fa0d-5898-9b33-af672dbc9813"
155
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcAirInLineResponse":
156
+ shortId: "VRF-1"
157
+ uuid: "e753cc07-566d-59b6-bb3c-6cc6b459352f"
158
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcAlarmSignals":
159
+ shortId: "VRF-2"
160
+ uuid: "af14e49c-02b8-5516-bf8c-39ed3bfe6d94"
161
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcBatteryEndurance":
162
+ shortId: "VRF-3"
163
+ uuid: "52567124-af48-59df-9723-3fcbab9e6abd"
164
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcConfirmationFlow":
165
+ shortId: "VRF-4"
166
+ uuid: "39b56b75-a0d9-50ce-ba8c-05f251f61442"
167
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcDoseAccuracy":
168
+ shortId: "VRF-5"
169
+ uuid: "24488b50-82d9-5247-baf6-10bff2374783"
170
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcOcclusionResponse":
171
+ shortId: "VRF-6"
172
+ uuid: "0104d952-e7f0-5a72-ae6f-581f55e658d2"
173
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcPowerSourceSwitch":
174
+ shortId: "VRF-7"
175
+ uuid: "6d48d53d-2fcf-56d1-9118-6d46fc0a0885"
176
+ "memo_examples_nested_architecture_dsm_assurance_verification_validation::vcStatusLegibility":
177
+ shortId: "VRF-8"
178
+ uuid: "c9ca55b3-684d-5d15-ab5d-2f9afd4e88e3"
179
+ "memo_examples_nested_architecture_dsm_project::projectBinding":
180
+ shortId: "PRJ-1"
181
+ uuid: "1da70d84-c917-5ab8-8c32-f293886ffe93"
@@ -0,0 +1,34 @@
1
+ // Who holds the needs, and where they arise.
2
+ //
3
+ // Both were prose on the Need — `userPopulationReference = "ward nurses,
4
+ // including those wearing corrective lenses"` and an
5
+ // `operationalContextReference` sentence. A user's characteristics belong on
6
+ // the User, where IEC 62366-1's profile is already typed, and a need reaches
7
+ // its user through HeldBy.
8
+ package memo_examples_nested_architecture_dsm_architecture_operational_context {
9
+ private import ScalarValues::*;
10
+
11
+ private import memo_core_enumerations::*;
12
+ private import memo_architecture_operational_context_actors::*;
13
+ private import memo_architecture_operational_context_use_context::*;
14
+
15
+ private import memo_core_common::*;
16
+ private import memo_core_common::MemoIdentity;
17
+ part usrWardNurse : User {
18
+ @MemoIdentity { :>> providedId = "NDS-USR-001"; }
19
+ attribute :>> name = "WardNurse";
20
+ attribute :>> userPopulation = "ward nurses";
21
+ attribute :>> impairmentConsiderations = "some wear corrective lenses; display legibility at bedside distance";
22
+ attribute :>> intendedTraining = "device orientation at ward induction";
23
+ attribute :>> intendedQualification = "registered nurse";
24
+ attribute :>> clinicalRole = "bedside therapy management";
25
+ }
26
+
27
+ part ctxIntraHospitalTransport : UseContext {
28
+ @MemoIdentity { :>> providedId = "NDS-CTX-001"; }
29
+ attribute :>> name = "IntraHospitalTransport";
30
+ attribute :>> careSetting = "inpatient ward and transfer between wards";
31
+ attribute :>> environment = "moving bed, up to four hours away from mains power";
32
+ attribute :>> connectedUse = false;
33
+ }
34
+ }
@@ -9,6 +9,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements_needs {
9
9
  private import memo_core_relationships::*;
10
10
  private import memo_assurance_requirements_needs::*;
11
11
  private import memo_examples_nested_architecture_dsm_assurance_requirements::*;
12
+ private import memo_examples_nested_architecture_dsm_architecture_operational_context::*;
12
13
 
13
14
  private import memo_core_common::*;
14
15
  private import memo_core_common::MemoIdentity;
@@ -29,14 +30,13 @@ package memo_examples_nested_architecture_dsm_assurance_requirements_needs {
29
30
  attribute :>> needKind = NeedKind::operational;
30
31
  attribute :>> statement = "Wards need therapy to continue through transport and mains interruptions.";
31
32
  attribute :>> priority = "medium";
32
- attribute :>> operationalContextReference = "intra-hospital transport, up to four hours off mains";
33
+ ref :>> useContext = ctxIntraHospitalTransport;
33
34
  }
34
35
  requirement needLegibleStatus : Need {
35
36
  @MemoIdentity { :>> providedId = "NDS-NEED-004"; } attribute :>> name = "LegibleTherapyStatus";
36
37
  attribute :>> needKind = NeedKind::'stakeholder';
37
38
  attribute :>> statement = "Clinicians need to read therapy state and alarms correctly from the bedside.";
38
39
  attribute :>> priority = "high";
39
- attribute :>> userPopulationReference = "ward nurses, including those wearing corrective lenses";
40
40
  }
41
41
 
42
42
  // Need → Requirement.
@@ -52,4 +52,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements_needs {
52
52
  // (IEC 62304), which is a second, requirement-to-requirement trace axis.
53
53
  connection derAlarmFromSystem : DerivesFrom connect sourceDriver ::> reqOcclusionDetection to targetRequirement ::> reqAlarmAnnunciation;
54
54
  connection derConfirmationFromSystem : DerivesFrom connect sourceDriver ::> reqDoseAccuracy to targetRequirement ::> reqPrescriptionConfirmation;
55
+ // Whose need this is. The nurse's characteristics are on the User.
56
+ connection heldLegible : HeldBy connect need ::> needLegibleStatus to holder ::> usrWardNurse;
57
+ connection heldAccurate : HeldBy connect need ::> needAccurateTherapy to holder ::> usrWardNurse;
55
58
  }
@@ -14,7 +14,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
14
14
  private import memo_core_common::MemoIdentity;
15
15
  requirement reqDoseAccuracy : Requirement {
16
16
  @MemoIdentity { :>> providedId = "NDS-REQ-001"; } attribute :>> name = "DoseAccuracy";
17
- attribute :>> requirementKind = RequirementKind::system;
17
+ attribute :>> requirementType = RequirementTypeKind::system;
18
18
  attribute :>> statement = "The pump shall deliver the prescribed volume within ±5% over any 60-minute window.";
19
19
  attribute :>> notation = RequirementNotationKind::sophist;
20
20
  attribute :>> obligation = ObligationKind::shall;
@@ -23,7 +23,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
23
23
  }
24
24
  requirement reqOcclusionDetection : Requirement {
25
25
  @MemoIdentity { :>> providedId = "NDS-REQ-002"; } attribute :>> name = "OcclusionDetection";
26
- attribute :>> requirementKind = RequirementKind::system;
26
+ attribute :>> requirementType = RequirementTypeKind::system;
27
27
  attribute :>> statement = "When line pressure exceeds the occlusion threshold, the pump shall stop delivery within 2 seconds.";
28
28
  attribute :>> notation = RequirementNotationKind::ears;
29
29
  attribute :>> earsPattern = EarsPatternKind::eventDriven;
@@ -34,7 +34,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
34
34
  }
35
35
  requirement reqAirInLine : Requirement {
36
36
  @MemoIdentity { :>> providedId = "NDS-REQ-003"; } attribute :>> name = "AirInLineProtection";
37
- attribute :>> requirementKind = RequirementKind::system;
37
+ attribute :>> requirementType = RequirementTypeKind::system;
38
38
  attribute :>> statement = "When an air bolus above 0.1 mL is detected, the pump shall stop delivery and raise a high-priority alarm.";
39
39
  attribute :>> notation = RequirementNotationKind::ears;
40
40
  attribute :>> earsPattern = EarsPatternKind::eventDriven;
@@ -45,7 +45,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
45
45
  }
46
46
  requirement reqAlarmAnnunciation : Requirement {
47
47
  @MemoIdentity { :>> providedId = "NDS-REQ-004"; } attribute :>> name = "AlarmAnnunciation";
48
- attribute :>> requirementKind = RequirementKind::software;
48
+ attribute :>> requirementType = RequirementTypeKind::software;
49
49
  attribute :>> statement = "While any alarm condition is active, the pump shall present its IEC 60601-1-8 signal until the condition clears or is acknowledged.";
50
50
  attribute :>> notation = RequirementNotationKind::ears;
51
51
  attribute :>> earsPattern = EarsPatternKind::stateDriven;
@@ -57,7 +57,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
57
57
  }
58
58
  requirement reqBatteryEndurance : Requirement {
59
59
  @MemoIdentity { :>> providedId = "NDS-REQ-005"; } attribute :>> name = "BatteryEndurance";
60
- attribute :>> requirementKind = RequirementKind::system;
60
+ attribute :>> requirementType = RequirementTypeKind::system;
61
61
  attribute :>> statement = "On loss of mains power, the pump shall continue delivery for at least 4 hours at 25 mL/h.";
62
62
  attribute :>> notation = RequirementNotationKind::ears;
63
63
  attribute :>> earsPattern = EarsPatternKind::eventDriven;
@@ -68,7 +68,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
68
68
  }
69
69
  requirement reqPrescriptionConfirmation : Requirement {
70
70
  @MemoIdentity { :>> providedId = "NDS-REQ-006"; } attribute :>> name = "PrescriptionConfirmation";
71
- attribute :>> requirementKind = RequirementKind::software;
71
+ attribute :>> requirementType = RequirementTypeKind::software;
72
72
  attribute :>> statement = "When the clinician changes the infusion rate, the pump shall require explicit confirmation before applying it.";
73
73
  attribute :>> notation = RequirementNotationKind::ears;
74
74
  attribute :>> earsPattern = EarsPatternKind::eventDriven;
@@ -81,7 +81,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
81
81
  // Untraced on purpose — the gap the traceability view is meant to find.
82
82
  requirement reqStatusVisibility : Requirement {
83
83
  @MemoIdentity { :>> providedId = "NDS-REQ-007"; } attribute :>> name = "StatusVisibility";
84
- attribute :>> requirementKind = RequirementKind::system;
84
+ attribute :>> requirementType = RequirementTypeKind::system;
85
85
  attribute :>> statement = "The pump shall display the active rate and volume delivered legibly at 1 m.";
86
86
  attribute :>> notation = RequirementNotationKind::sophist;
87
87
  attribute :>> obligation = ObligationKind::shall;
@@ -11,6 +11,7 @@ package memo_examples_nested_architecture_dsm_project {
11
11
 
12
12
  // The project's own content, imported so the catalog is one reachable
13
13
  // closure from a single entrypoint.
14
+ private import memo_examples_nested_architecture_dsm_architecture_operational_context::*;
14
15
  private import memo_examples_nested_architecture_dsm_architecture_logical_structure::*;
15
16
  private import memo_examples_nested_architecture_dsm_architecture_functional_functions::*;
16
17
  private import memo_examples_nested_architecture_dsm_assurance_requirements::*;
@@ -135,4 +135,7 @@ package memo_examples_surgical_closure_workflow {
135
135
 
136
136
 
137
137
 
138
+
139
+ // Whose need it is (CR-MED-024). The surgeon's profile is on the User.
140
+ connection heldResection : HeldBy connect need ::> needControlledGastricResection to holder ::> bariatricSurgeon;
138
141
  }
@@ -25,17 +25,17 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
25
25
  }
26
26
 
27
27
  requirement reqDoseLimit : Requirement {
28
- attribute :>> requirementKind = RequirementKind::system;
28
+ attribute :>> requirementType = RequirementTypeKind::system;
29
29
  @MemoIdentity { :>> providedId = "REQ-001"; } attribute :>> name = "DoseLimitEnforcement";
30
30
  attribute :>> statement = "The pump shall not deliver more than the prescribed maximum dose in any one-hour window.";
31
31
  }
32
32
  requirement reqOcclusionAlarm : Requirement {
33
- attribute :>> requirementKind = RequirementKind::system;
33
+ attribute :>> requirementType = RequirementTypeKind::system;
34
34
  @MemoIdentity { :>> providedId = "REQ-002"; } attribute :>> name = "OcclusionAlarm";
35
35
  attribute :>> statement = "The pump shall raise an alarm within two seconds of detecting a downstream occlusion.";
36
36
  }
37
37
  requirement reqAlarmLoudness : Requirement {
38
- attribute :>> requirementKind = RequirementKind::system;
38
+ attribute :>> requirementType = RequirementTypeKind::system;
39
39
  @MemoIdentity { :>> providedId = "REQ-003"; } attribute :>> name = "AlarmLoudness";
40
40
  attribute :>> statement = "An active alarm shall be audible at 65 dBA at one metre.";
41
41
  }
@@ -0,0 +1,205 @@
1
+ # memo.identity.yaml — element identity registry (auto-generated)
2
+ # Assigned once and never reassigned. COMMIT THIS FILE: deleting it does
3
+ # not regenerate the same identities, it mints new ones, and every
4
+ # external reference to a shortId or uuid then points at nothing.
5
+ # Entries for deleted elements are retained so their numbers stay retired.
6
+
7
+ elements:
8
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay":
9
+ shortId: "SYS-1"
10
+ uuid: "9b45772b-7d7d-53e2-97b6-f10d92dc10e4"
11
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentBatteryStatus":
12
+ shortId: "SYS-2"
13
+ uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
14
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentDeliveryStatus":
15
+ shortId: "SYS-3"
16
+ uuid: "0b73c191-7803-58ab-a4d1-4630b3528825"
17
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentLocalTime":
18
+ shortId: "SYS-4"
19
+ uuid: "daa13f3a-026a-5208-bbda-c6d4ef7f4684"
20
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnSetInfusionRate":
21
+ shortId: "SYS-5"
22
+ uuid: "84ed7035-7c68-51e5-bf83-bb64d76f2df4"
23
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnValidateDrugSelection":
24
+ shortId: "SYS-6"
25
+ uuid: "710bc732-5946-52ab-a720-ad7284248936"
26
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugMenuExpanded":
27
+ shortId: "UIE-1"
28
+ uuid: "efcfbe2b-af48-51dc-81e2-e46c067bbf46"
29
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugSelectorClosed":
30
+ shortId: "UIE-2"
31
+ uuid: "7b27669f-d11c-5580-91cd-9353ef088458"
32
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugSelectorRegion":
33
+ shortId: "UIE-3"
34
+ uuid: "d920531b-65e4-5b63-a450-fc5c3bd33646"
35
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen":
36
+ shortId: "UIE-4"
37
+ uuid: "20084808-1df8-5082-a777-5630903a9d17"
38
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elRateConfirmDialog":
39
+ shortId: "UIE-5"
40
+ uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
41
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen":
42
+ shortId: "UIE-6"
43
+ uuid: "61a7a5d8-ab25-5fc7-b41f-340ab47b7b56"
44
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::uiElement12":
45
+ shortId: "UIE-7"
46
+ uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
47
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::uiPumpPanel":
48
+ shortId: "USR-1"
49
+ uuid: "a776efd4-f0b1-5ffc-9cb7-9563989852f4"
50
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::uiaEditRate":
51
+ shortId: "UXX-1"
52
+ uuid: "85e9cd00-5868-5cab-93df-55bb5881ab6b"
53
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::uiaOpenSettings":
54
+ shortId: "UXX-2"
55
+ uuid: "1b15dd7d-9a53-5c2b-bb57-1635da44b618"
56
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::uiaSelectDrug":
57
+ shortId: "UXX-3"
58
+ uuid: "5436c3d1-d76e-5546-bf50-e40e9cacf92c"
59
+ "memo_examples_ui_screen_regions_artifacts_assets::capDrugSelector":
60
+ shortId: "SCR-1"
61
+ uuid: "51697f54-b3f4-5341-be30-5fec7df8b3f3"
62
+ "memo_examples_ui_screen_regions_artifacts_assets::capMain":
63
+ shortId: "SCR-2"
64
+ uuid: "5c5debcc-b021-5d62-86d5-007fe37d427d"
65
+ "memo_examples_ui_screen_regions_artifacts_assets::capSettings":
66
+ shortId: "SCR-3"
67
+ uuid: "3df60945-9d9f-535e-b907-61baaf2f7f1a"
68
+ "memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtDecimalSalience":
69
+ shortId: "MDL-1"
70
+ uuid: "aada3c56-bd18-545a-9b46-77d45a7354e5"
71
+ "memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarReply":
72
+ shortId: "MDL-2"
73
+ uuid: "d99e8642-f5e1-5d31-8cb0-174b25cd1249"
74
+ "memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope":
75
+ shortId: "MDL-3"
76
+ uuid: "b9b7b12d-f223-57ea-8d1b-da58b140b671"
77
+ "memo_examples_ui_screen_regions_artifacts_reviews_notes::noteCaptureReview":
78
+ shortId: "MDL-4"
79
+ uuid: "0e6d1f04-2e80-52dd-90f3-4eeed99b5799"
80
+ "memo_examples_ui_screen_regions_artifacts_reviews_rationales::ratOverlayGeometry":
81
+ shortId: "MDL-5"
82
+ uuid: "349c75a2-4041-56ab-b2c5-c5710a43d07f"
83
+ "memo_examples_ui_screen_regions_assurance_human_factors::ueMisreadDisplayedTime":
84
+ shortId: "USE-1"
85
+ uuid: "74100c1a-f960-54d7-a0a4-36f21a7e3d0c"
86
+ "memo_examples_ui_screen_regions_assurance_human_factors::ueMisreadRate":
87
+ shortId: "USE-2"
88
+ uuid: "4a2c3dbf-dc82-57c0-af10-0aae21f0880e"
89
+ "memo_examples_ui_screen_regions_assurance_human_factors::ueMissLowBattery":
90
+ shortId: "USE-3"
91
+ uuid: "5f57b588-20f6-5b03-b32e-6c801c10bc6e"
92
+ "memo_examples_ui_screen_regions_assurance_human_factors::ueRelyOnStaleVolume":
93
+ shortId: "USE-4"
94
+ uuid: "7f2c9058-0d12-5aa0-a594-5e52e8ff1dae"
95
+ "memo_examples_ui_screen_regions_assurance_human_factors::ueSelectWrongDrug":
96
+ shortId: "USE-5"
97
+ uuid: "4463487f-8084-590c-ac2c-2064da2614e2"
98
+ "memo_examples_ui_screen_regions_assurance_requirements::reqActiveRateDisplay":
99
+ shortId: "REQ-1"
100
+ uuid: "fddda136-cdd4-5f96-8aa0-81f76d8bcc09"
101
+ "memo_examples_ui_screen_regions_assurance_requirements::reqBatteryStatusDisplay":
102
+ shortId: "REQ-2"
103
+ uuid: "965058ae-7a64-5073-b1b3-623ee49b6f0b"
104
+ "memo_examples_ui_screen_regions_assurance_requirements::reqBatteryWarningPerformance":
105
+ shortId: "REQ-3"
106
+ uuid: "91d47515-c10f-5973-b042-9afd1343adcc"
107
+ "memo_examples_ui_screen_regions_assurance_requirements::reqDisplayFreshness":
108
+ shortId: "REQ-4"
109
+ uuid: "4315dfd6-0167-5006-b080-b2f2734de5fc"
110
+ "memo_examples_ui_screen_regions_assurance_requirements::reqDrugIdentityDisplay":
111
+ shortId: "REQ-5"
112
+ uuid: "659494f6-e296-53f5-a011-a36599475ffc"
113
+ "memo_examples_ui_screen_regions_assurance_requirements::reqDrugLibrarySelection":
114
+ shortId: "REQ-6"
115
+ uuid: "ad58cfc5-77c3-51cd-9232-16d32bfa7fc9"
116
+ "memo_examples_ui_screen_regions_assurance_requirements::reqDrugSelectionPerformance":
117
+ shortId: "REQ-7"
118
+ uuid: "c5380f55-6d5b-51a7-bfa1-570210e80935"
119
+ "memo_examples_ui_screen_regions_assurance_requirements::reqRateEntry":
120
+ shortId: "REQ-8"
121
+ uuid: "16613ed6-943d-50ed-8bcc-3849c9a78ca9"
122
+ "memo_examples_ui_screen_regions_assurance_requirements::reqRateLegibility":
123
+ shortId: "REQ-9"
124
+ uuid: "4e9b6014-ddf2-546c-b6f3-de4a689889d6"
125
+ "memo_examples_ui_screen_regions_assurance_requirements::reqTimeAccuracy":
126
+ shortId: "REQ-10"
127
+ uuid: "de995503-445a-5ff0-a0d5-a6516e542d1f"
128
+ "memo_examples_ui_screen_regions_assurance_requirements::reqTimeDisplay":
129
+ shortId: "REQ-11"
130
+ uuid: "fa7f0890-e671-506a-9caf-39f8e00cbaea"
131
+ "memo_examples_ui_screen_regions_assurance_requirements::reqVolumeDisplay":
132
+ shortId: "REQ-12"
133
+ uuid: "f909d550-83d8-57b1-9922-fd0fcbf4cb0f"
134
+ "memo_examples_ui_screen_regions_assurance_requirements_needs::needReadableProgramming":
135
+ shortId: "NDX-1"
136
+ uuid: "6f8e78ee-e23b-5194-983f-bedcd5c907de"
137
+ "memo_examples_ui_screen_regions_assurance_safety_risk::hzIncorrectDeliveredVolumeAssessment":
138
+ shortId: "HZD-1"
139
+ uuid: "8e600b22-708a-53b3-900c-a3157f9357e5"
140
+ "memo_examples_ui_screen_regions_assurance_safety_risk::hzIncorrectEventChronology":
141
+ shortId: "HZD-2"
142
+ uuid: "8159f0e0-decf-5553-9ba6-c66bae17381c"
143
+ "memo_examples_ui_screen_regions_assurance_safety_risk::hzUnexpectedPowerLoss":
144
+ shortId: "HZD-3"
145
+ uuid: "fe69a889-4877-5eb2-8923-6fea425b6c6b"
146
+ "memo_examples_ui_screen_regions_assurance_safety_risk::hzWrongDrug":
147
+ shortId: "HZD-4"
148
+ uuid: "0d0ae248-b3c2-5385-b1aa-6d03295c9513"
149
+ "memo_examples_ui_screen_regions_assurance_safety_risk::hzWrongRate":
150
+ shortId: "HZD-5"
151
+ uuid: "9143ddd2-b75d-5322-9f69-7faa190f4b9e"
152
+ "memo_examples_ui_screen_regions_assurance_safety_risk::rcClockFreshnessCheck":
153
+ shortId: "RSK-1"
154
+ uuid: "c680ee4e-3986-5191-97b3-4264079a38ce"
155
+ "memo_examples_ui_screen_regions_assurance_safety_risk::rcDisplayFreshnessMonitor":
156
+ shortId: "RSK-2"
157
+ uuid: "b7465f4e-8466-5288-b730-c92b7e964c3b"
158
+ "memo_examples_ui_screen_regions_assurance_safety_risk::rcDrugLibraryGuard":
159
+ shortId: "RSK-3"
160
+ uuid: "482ff3fb-c399-5f02-bcc2-3ec73748cb45"
161
+ "memo_examples_ui_screen_regions_assurance_safety_risk::rcLowBatteryProminence":
162
+ shortId: "RSK-4"
163
+ uuid: "6b366476-463e-5195-9f04-8292b29329f5"
164
+ "memo_examples_ui_screen_regions_assurance_safety_risk::rcRateConfirm":
165
+ shortId: "RSK-5"
166
+ uuid: "edbdf165-36c5-586a-9332-a33cf98a5d13"
167
+ "memo_examples_ui_screen_regions_assurance_verification_validation::evDrugLibrarySelection":
168
+ shortId: "MMX-1"
169
+ uuid: "c24abc81-f668-5c2c-b438-4aea2bd6bc4c"
170
+ "memo_examples_ui_screen_regions_assurance_verification_validation::evInfusionStatusContent":
171
+ shortId: "MMX-2"
172
+ uuid: "acbf040a-47ed-51ae-8a12-2481da8ed8d4"
173
+ "memo_examples_ui_screen_regions_assurance_verification_validation::evRateChange":
174
+ shortId: "MMX-3"
175
+ uuid: "0a4c6530-ec1b-512c-a7df-39fa54733778"
176
+ "memo_examples_ui_screen_regions_assurance_verification_validation::vcDrugLibrarySelection":
177
+ shortId: "VRF-1"
178
+ uuid: "df00c7d8-70c9-549a-aea9-f52cf201cffc"
179
+ "memo_examples_ui_screen_regions_assurance_verification_validation::vcInfusionStatusContent":
180
+ shortId: "VRF-2"
181
+ uuid: "13521157-c3a8-5995-8a04-e48d0f3ff05e"
182
+ "memo_examples_ui_screen_regions_assurance_verification_validation::vcRateChange":
183
+ shortId: "VRF-3"
184
+ uuid: "d77a8f8f-0d31-5ddb-ac70-e66b1d938ad3"
185
+ "memo_examples_ui_screen_regions_project::uiScreenRegionsBinding":
186
+ shortId: "PRJ-1"
187
+ uuid: "67b999a2-b982-568c-916f-16301d768a65"
188
+ "memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functional_tree::uiFunctionalTree":
189
+ shortId: "MMX-6"
190
+ uuid: "df30b427-6009-5e2d-a30b-4d36e389f665"
191
+ "memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_requirements_trace::uiRequirementsTrace":
192
+ shortId: "MMX-8"
193
+ uuid: "e3ea76cd-b136-5754-9412-f6774bbbbf7a"
194
+ "memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain::uiRiskChain":
195
+ shortId: "MMX-9"
196
+ uuid: "b581db89-2ad3-5d3c-8b13-3d5f9cc5b023"
197
+ "memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_layout::mainScreenLayout":
198
+ shortId: "MMX-4"
199
+ uuid: "64fdaf61-445d-532e-963b-610b52ee3690"
200
+ "memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_screen_layout::settingsScreenLayout":
201
+ shortId: "MMX-5"
202
+ uuid: "a90192d8-28f8-539e-85ef-db885279a15e"
203
+ "memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_trace::uiRegionTrace":
204
+ shortId: "MMX-7"
205
+ uuid: "942d600f-947a-5083-b43d-fae467d2d6a7"