@memoarchitect/ontology 0.4.6 → 0.6.0

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 (255) hide show
  1. package/README.md +5 -4
  2. package/examples/connected-patient-monitor/README.md +7 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +70 -0
  4. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +3 -0
  5. package/examples/connected-patient-monitor/model/viewpoints/connected_patient_monitor_overview.sysml +6 -0
  6. package/examples/embedded-infusion-pump/README.md +7 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +66 -0
  8. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +3 -0
  9. package/examples/embedded-infusion-pump/model/viewpoints/embedded_infusion_pump_overview.sysml +6 -0
  10. package/examples/extensions/README.md +16 -0
  11. package/examples/extensions/clinical/memo.package.yaml +9 -0
  12. package/examples/extensions/clinical/src/clinical_extension.sysml +3 -0
  13. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +14 -0
  14. package/examples/extensions/clinical/src/procedures/memo_clinical_procedures.sysml +16 -0
  15. package/examples/extensions/template/memo.package.yaml +9 -0
  16. package/examples/extensions/template/src/extension.sysml +15 -0
  17. package/examples/functional-logical-physical/README.md +7 -0
  18. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +50 -0
  19. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +3 -0
  20. package/examples/functional-logical-physical/model/viewpoints/functional_logical_physical_overview.sysml +6 -0
  21. package/examples/gpca-pump/README.md +26 -0
  22. package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +1 -1
  23. package/examples/gpca-pump/memo.config.yaml +2 -2
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +1 -1
  25. package/examples/gpca-pump/methodology/gpca_scope.sysml +2 -2
  26. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  27. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +10 -10
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +17 -6
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +11 -11
  30. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +35 -22
  31. package/examples/gpca-pump/model/catalog/gpca_context.sysml +25 -6
  32. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  33. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +29 -15
  34. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +293 -169
  35. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +139 -21
  36. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +1 -1
  37. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +210 -105
  38. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +66 -69
  39. package/examples/gpca-pump/model/catalog/gpca_system.sysml +43 -76
  40. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +73 -70
  41. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +27 -27
  42. package/examples/gpca-pump/model/views/context_system_context_view.sysml +2 -2
  43. package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +2 -2
  44. package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +2 -2
  45. package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +1 -1
  46. package/examples/gpca-pump/model/views/document_rmf_view.sysml +2 -2
  47. package/examples/gpca-pump/model/views/document_sdd_view.sysml +2 -2
  48. package/examples/gpca-pump/model/views/document_threat_model_view.sysml +1 -1
  49. package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
  50. package/examples/gpca-pump/model/views/document_vv_view.sysml +1 -1
  51. package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +1 -1
  52. package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +1 -1
  53. package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +1 -1
  54. package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +1 -1
  55. package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +1 -1
  56. package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
  57. package/examples/gpca-pump/model/views/operational_use_case_view.sysml +6 -6
  58. package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +1 -1
  59. package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +1 -1
  60. package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +2 -2
  61. package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +1 -1
  62. package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +1 -1
  63. package/examples/ivd-laboratory-system/README.md +7 -0
  64. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +58 -0
  65. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +3 -0
  66. package/examples/ivd-laboratory-system/model/viewpoints/ivd_laboratory_system_overview.sysml +6 -0
  67. package/examples/manual-surgical-instrument/README.md +7 -0
  68. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +41 -0
  69. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +3 -0
  70. package/examples/manual-surgical-instrument/model/viewpoints/manual_surgical_instrument_overview.sysml +6 -0
  71. package/examples/multidimensional-layers/README.md +7 -0
  72. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +51 -0
  73. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +4 -0
  74. package/examples/multidimensional-layers/model/viewpoints/multidimensional_layers_overview.sysml +13 -0
  75. package/examples/reusable-instrument/README.md +7 -0
  76. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +71 -0
  77. package/examples/reusable-instrument/model/reusable_instrument.sysml +4 -0
  78. package/examples/reusable-instrument/model/viewpoints/reusable_instrument_overview.sysml +13 -0
  79. package/examples/software-only-medical-device/README.md +7 -0
  80. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +62 -0
  81. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +4 -0
  82. package/examples/software-only-medical-device/model/viewpoints/software_only_medical_device_overview.sysml +13 -0
  83. package/examples/surgical-closure-workflow/README.md +8 -0
  84. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +151 -0
  85. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +4 -0
  86. package/examples/surgical-closure-workflow/model/viewpoints/surgical_closure_workflow_overview.sysml +13 -0
  87. package/examples/surgical-robot/README.md +7 -0
  88. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +58 -0
  89. package/examples/surgical-robot/model/surgical_robot.sysml +4 -0
  90. package/examples/surgical-robot/model/viewpoints/surgical_robot_overview.sysml +13 -0
  91. package/examples/sysml-diagram-samples/README.md +32 -0
  92. package/examples/sysml-diagram-samples/memo.package.yaml +5 -0
  93. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/action_flow_view.sysml +22 -4
  94. package/examples/sysml-diagram-samples/model/samples/context_view.sysml +55 -0
  95. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/functional_flow_view.sysml +17 -6
  96. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/interconnection_view.sysml +4 -3
  97. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/operational_behaviour_view.sysml +32 -42
  98. package/examples/sysml-diagram-samples/model/samples/requirements_view.sysml +63 -0
  99. package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +109 -0
  100. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/tree_view.sysml +3 -3
  101. package/examples/sysml-diagram-samples/model/samples/use_case_view.sysml +81 -0
  102. package/examples/temperature-alarm/README.md +7 -0
  103. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +140 -0
  104. package/examples/temperature-alarm/model/temperature_alarm.sysml +4 -0
  105. package/examples/temperature-alarm/model/viewpoints/temperature_alarm_overview.sysml +13 -0
  106. package/memo.manifest.yaml +4 -1
  107. package/methodologies/default/memo.package.yaml +1 -1
  108. package/methodologies/gpca/memo.package.yaml +4 -4
  109. package/ontology/memo.package.yaml +1 -1
  110. package/ontology/memo.rendering.yaml +37 -0
  111. package/package.json +17 -7
  112. package/profile/memo.package.yaml +1 -1
  113. package/profile/templates/connected-device/starter.sysml +3 -3
  114. package/profile/templates/infusion-pump/starter.sysml +3 -3
  115. package/profile/templates/monitoring-device/starter.sysml +3 -3
  116. package/profile/templates/samd/starter.sysml +3 -3
  117. package/src/architecture/decisions/memo_decisions.sysml +1 -1
  118. package/src/architecture/{behavior → functional/behavior}/memo_behavior.sysml +12 -11
  119. package/src/architecture/{constraints → functional/constraints}/memo_constraints.sysml +2 -2
  120. package/src/architecture/functional/functions/memo_functions.sysml +81 -0
  121. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +46 -0
  122. package/src/architecture/implementation/hardware/electrical/memo_hardware_electrical.sysml +36 -0
  123. package/src/architecture/implementation/hardware/fluidic/memo_hardware_fluidic.sysml +14 -0
  124. package/src/architecture/implementation/hardware/mechanical/memo_hardware_mechanical.sysml +14 -0
  125. package/src/architecture/implementation/hardware/optical/memo_hardware_optical.sysml +11 -0
  126. package/src/architecture/implementation/hardware/sensing/memo_hardware_sensing.sysml +17 -0
  127. package/src/architecture/implementation/hardware/structure/memo_hardware_structure.sysml +12 -0
  128. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +70 -0
  129. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +80 -0
  130. package/src/architecture/implementation/ui/memo_ui.sysml +159 -0
  131. package/src/architecture/logical/interfaces/memo_interfaces.sysml +102 -0
  132. package/src/architecture/logical/structure/memo_logical_structure.sysml +150 -0
  133. package/src/architecture/operational/activities/memo_activities.sysml +86 -0
  134. package/src/architecture/operational/context/actors/memo_actors.sysml +38 -0
  135. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +64 -0
  136. package/src/architecture/operational/context/use_context/memo_use_context.sysml +53 -0
  137. package/src/architecture/operational/scenarios/memo_scenarios.sysml +116 -0
  138. package/src/architecture/operational/structure/memo_operational.sysml +26 -0
  139. package/src/architecture/operational/use_cases/memo_use_cases.sysml +67 -0
  140. package/src/architecture/operational/workflows/memo_workflows.sysml +126 -0
  141. package/src/architecture/realization/deployment/memo_deployment.sysml +90 -0
  142. package/src/architecture/{physical → realization/physical}/memo_physical_architecture.sysml +12 -1
  143. package/src/artifacts/definitions/memo_artifact_definitions.sysml +1 -1
  144. package/src/{architecture → assurance}/cybersecurity/memo_cybersecurity.sysml +14 -10
  145. package/src/assurance/human_factors/memo_human_factors.sysml +50 -0
  146. package/src/{architecture → assurance}/requirements/memo_requirements.sysml +45 -21
  147. package/src/assurance/requirements/needs/memo_needs.sysml +43 -0
  148. package/src/{architecture → assurance/safety_risk}/analysis/memo_fmea.sysml +13 -13
  149. package/src/{architecture/risk → assurance/safety_risk}/memo_arch_risk.sysml +2 -2
  150. package/src/{architecture/risk → assurance/safety_risk}/memo_risk.sysml +25 -16
  151. package/src/assurance/verification_validation/memo_assurance.sysml +49 -0
  152. package/src/compliance/artifacts/memo_artifacts.sysml +1 -1
  153. package/src/compliance/change/memo_change.sysml +2 -2
  154. package/src/compliance/dhf-templates/21cfr820/design-input.md +1 -1
  155. package/src/compliance/dhf-templates/21cfr820/design-validation.md +1 -1
  156. package/src/compliance/dhf-templates/21cfr820/user-needs.md +2 -2
  157. package/src/compliance/dhf-templates/iec-62366/urra.md +1 -1
  158. package/src/compliance/dhf-templates/iso-14971/fmea.md +1 -1
  159. package/src/compliance/dhf-templates/iso-14971/har.md +4 -4
  160. package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +1 -1
  161. package/src/compliance/dhf-templates/iso-14971/rmp.md +1 -1
  162. package/src/compliance/dhf-templates/iso-14971/rmr.md +1 -1
  163. package/src/compliance/iso14971/risk_management_file.sysml +1 -1
  164. package/src/compliance/postmarket/memo_postmarket.sysml +2 -2
  165. package/src/core/common/memo_common.sysml +123 -14
  166. package/src/core/consistency_rules/consistency_rules.sysml +2 -2
  167. package/src/core/dimensions/dimensions.sysml +45 -24
  168. package/src/core/enumerations/memo_enumerations.sysml +11 -16
  169. package/src/core/methodology_scope/methodology_scope.sysml +10 -28
  170. package/src/core/relationships/memo_relationships.sysml +178 -146
  171. package/src/core/stdlib/{collections.sysml → collections/collections.sysml} +1 -1
  172. package/src/core/stdlib/{functions.sysml → functions/functions.sysml} +1 -1
  173. package/src/core/stdlib/{scalars.sysml → scalars/scalars.sysml} +1 -1
  174. package/src/core/stdlib/{time.sysml → time/time.sysml} +1 -1
  175. package/src/core/terminology/terminology.sysml +35 -0
  176. package/src/memo_namespaces.sysml +247 -302
  177. package/src/methodology/{memo_core.sysml → core/memo_core.sysml} +19 -13
  178. package/src/methodology/{memo_gates.sysml → gates/memo_gates.sysml} +1 -1
  179. package/src/methodology/{memo_patterns.sysml → patterns/memo_patterns.sysml} +1 -1
  180. package/src/methodology/{memo_profiles.sysml → profiles/memo_profiles.sysml} +27 -35
  181. package/src/methodology/{memo_workflow.sysml → workflow/memo_workflow.sysml} +1 -1
  182. package/src/rules/closure/closure_rules.sysml +11 -11
  183. package/src/rules/coverage/coverage_rules.sysml +8 -8
  184. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  185. package/src/rules/lifecycle/lifecycle_rules.sysml +1 -1
  186. package/src/rules/ontology/ontology_invariants.sysml +133 -0
  187. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  188. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +189 -0
  189. package/src/viewpoints/clinical/clinical_viewpoint.sysml +0 -1
  190. package/src/viewpoints/context/context_viewpoint.sysml +1 -2
  191. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -2
  192. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +8 -8
  193. package/src/viewpoints/functional/{function_allocation_view.sysml → function_allocation_view/function_allocation_view.sysml} +1 -1
  194. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  195. package/src/viewpoints/functional/{system_functional_tree_view.sysml → system_functional_tree_view/system_functional_tree_view.sysml} +1 -1
  196. package/src/viewpoints/logical/logical_viewpoint.sysml +0 -1
  197. package/src/viewpoints/operational/operational_viewpoint.sysml +1 -2
  198. package/src/viewpoints/operational/{use_case_view.sysml → use_case_view/use_case_view.sysml} +1 -1
  199. package/src/viewpoints/physical/physical_viewpoint.sysml +0 -1
  200. package/src/viewpoints/requirements/{requirements_traceability_view.sysml → requirements_traceability_view/requirements_traceability_view.sysml} +1 -1
  201. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  202. package/src/viewpoints/risk/{risk_chain_view.sysml → risk_chain_view/risk_chain_view.sysml} +2 -2
  203. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  204. package/src/viewpoints/software/{software_architecture_view.sysml → software_architecture_view/software_architecture_view.sysml} +1 -1
  205. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  206. package/src/viewpoints/usability/usability_viewpoint.sysml +0 -1
  207. package/src/viewpoints/verification/verification_viewpoint.sysml +0 -1
  208. package/template/memo.package.yaml +1 -1
  209. package/template/src/catalog/starter.sysml +3 -3
  210. package/examples/gpca-pump/model/samples/README.md +0 -24
  211. package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +0 -9
  212. package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +0 -99
  213. package/src/architecture/assurance/memo_assurance.sysml +0 -29
  214. package/src/architecture/context/memo_context.sysml +0 -58
  215. package/src/architecture/functions/memo_functions.sysml +0 -30
  216. package/src/architecture/hardware_structure/memo_hardware_structure.sysml +0 -15
  217. package/src/architecture/interfaces/memo_interfaces.sysml +0 -103
  218. package/src/architecture/logical_structure/memo_logical_structure.sysml +0 -10
  219. package/src/architecture/operational/memo_operational.sysml +0 -51
  220. package/src/architecture/software_structure/memo_software_structure.sysml +0 -44
  221. package/src/architecture/system/memo_system_analysis.sysml +0 -54
  222. package/src/artifacts/clinical_safety_report.sysml +0 -12
  223. package/src/artifacts/cybersecurity_assessment_report.sysml +0 -12
  224. package/src/artifacts/design_change_log.sysml +0 -12
  225. package/src/artifacts/design_history_file_index.sysml +0 -12
  226. package/src/artifacts/design_input_plan.sysml +0 -12
  227. package/src/artifacts/design_output_plan.sysml +0 -12
  228. package/src/artifacts/evidence_record.sysml +0 -12
  229. package/src/artifacts/failure_mode_effects_analysis.sysml +0 -12
  230. package/src/artifacts/hazard_analysis_report.sysml +0 -12
  231. package/src/artifacts/labeling_specification.sysml +0 -12
  232. package/src/artifacts/requirements_specification.sysml +0 -12
  233. package/src/artifacts/requirements_traceability_matrix.sysml +0 -12
  234. package/src/artifacts/risk_management_plan.sysml +0 -12
  235. package/src/artifacts/software_design_description.sysml +0 -12
  236. package/src/artifacts/software_development_plan.sysml +0 -12
  237. package/src/artifacts/soup_list.sysml +0 -12
  238. package/src/artifacts/system_architecture_description.sysml +0 -12
  239. package/src/artifacts/test_protocol.sysml +0 -12
  240. package/src/artifacts/test_report.sysml +0 -12
  241. package/src/artifacts/threat_model_report.sysml +0 -12
  242. package/src/artifacts/usability_engineering_report.sysml +0 -12
  243. package/src/medical_device_library.sysml +0 -100
  244. /package/src/methodology/{memo_archetypes.sysml → archetypes/memo_archetypes.sysml} +0 -0
  245. /package/src/methodology/{memo_rules.sysml → rules/memo_rules.sysml} +0 -0
  246. /package/src/methodology/{memo_viewpoints.sysml → viewpoints/memo_viewpoints.sysml} +0 -0
  247. /package/src/viewpoints/clinical/{clinical_evidence_view.sysml → clinical_evidence_view/clinical_evidence_view.sysml} +0 -0
  248. /package/src/viewpoints/context/{system_context_view.sysml → system_context_view/system_context_view.sysml} +0 -0
  249. /package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view.sysml → cybersecurity_assessment_view/cybersecurity_assessment_view.sysml} +0 -0
  250. /package/src/viewpoints/cybersecurity/{threat_model_view.sysml → threat_model_view/threat_model_view.sysml} +0 -0
  251. /package/src/viewpoints/logical/{logical_architecture_view.sysml → logical_architecture_view/logical_architecture_view.sysml} +0 -0
  252. /package/src/viewpoints/physical/{network_topology_view.sysml → network_topology_view/network_topology_view.sysml} +0 -0
  253. /package/src/viewpoints/physical/{physical_bom_view.sysml → physical_bom_view/physical_bom_view.sysml} +0 -0
  254. /package/src/viewpoints/usability/{usability_engineering_view.sysml → usability_engineering_view/usability_engineering_view.sysml} +0 -0
  255. /package/src/viewpoints/verification/{verification_coverage_view.sysml → verification_coverage_view/verification_coverage_view.sysml} +0 -0
@@ -1,16 +1,16 @@
1
- package memo_architecture_analysis {
1
+ package memo_assurance_safety_risk_analysis {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_core_common::*;
5
5
  private import memo_core_enumerations::*;
6
- item def FMEAWorksheet specializes TraceableElement {
6
+ item def FMEAWorksheet specializes AnalysisArtifact {
7
7
  attribute analysisScope : String;
8
8
  attribute standardReference : String;
9
9
  attribute analysisBasis : String;
10
10
  attribute revisionDate : String;
11
11
  attribute reviewer : String;
12
12
  }
13
- item def FailureMode specializes TraceableElement {
13
+ item def FailureMode specializes MemoPart {
14
14
  attribute failureModeKind : FailureModeKind;
15
15
  attribute severityRating : Integer;
16
16
  attribute occurrenceRating : Integer;
@@ -18,20 +18,20 @@ package memo_architecture_analysis {
18
18
  attribute rpn : Integer;
19
19
  attribute criticality : CriticalityKind;
20
20
  }
21
- item def FailureEffect specializes TraceableElement {
21
+ item def FailureEffect specializes MemoPart {
22
22
  attribute effectLevel : FailureEffectLevelKind;
23
23
  attribute effectOnPatient : String;
24
24
  attribute effectOnOperator : String;
25
25
  attribute effectOnSystem : String;
26
26
  attribute severity : SeverityKind;
27
27
  }
28
- item def FailureCause specializes TraceableElement {
28
+ item def FailureCause specializes MemoPart {
29
29
  attribute causeCategory : FailureCauseCategoryKind;
30
30
  attribute causeDescription : String;
31
31
  attribute occurrenceRating : ProbabilityKind;
32
32
  attribute preventionMethod : String;
33
33
  }
34
- item def DetectionMethod specializes TraceableElement {
34
+ item def DetectionMethod specializes MemoPart {
35
35
  attribute methodKind : DetectionMethodKind;
36
36
  attribute detectionPoint : String;
37
37
  attribute confidence : DetectionKind;
@@ -42,43 +42,43 @@ package memo_architecture_analysis {
42
42
  attribute targetCompletionDate : String;
43
43
  attribute revisedRpn : Integer;
44
44
  }
45
- item def FaultTree specializes TraceableElement {
45
+ item def FaultTree specializes AnalysisArtifact {
46
46
  attribute standardReference : String;
47
47
  attribute analysisScope : String;
48
48
  attribute topEventDescription : String;
49
49
  attribute cutSetSummary : String;
50
50
  attribute revisionDate : String;
51
51
  }
52
- item def FaultTreeEvent specializes TraceableElement {
52
+ item def FaultTreeEvent specializes MemoPart {
53
53
  attribute eventKind : FaultTreeEventKind;
54
54
  attribute probability : Real;
55
55
  attribute failureRate : Real;
56
56
  attribute exposureTime : Real;
57
57
  attribute :>> description : String;
58
58
  }
59
- item def FaultTreeGate specializes TraceableElement {
59
+ item def FaultTreeGate specializes MemoPart {
60
60
  attribute gateKind : FaultTreeGateKind;
61
61
  attribute kValue : Integer;
62
62
  attribute nValue : Integer;
63
63
  }
64
- item def MinimalCutSet specializes TraceableElement {
64
+ item def MinimalCutSet specializes MemoPart {
65
65
  attribute cutSetOrder : Integer;
66
66
  attribute probability : Real;
67
67
  attribute involvedEvents : String;
68
68
  attribute significance : String;
69
69
  }
70
- item def HAZOPStudy specializes TraceableElement {
70
+ item def HAZOPStudy specializes AnalysisArtifact {
71
71
  attribute standardReference : String;
72
72
  attribute processDescription : String;
73
73
  attribute studyScope : String;
74
74
  attribute teamComposition : String;
75
75
  }
76
- item def HAZOPNode specializes TraceableElement {
76
+ item def HAZOPNode specializes MemoPart {
77
77
  attribute nodeDescription : String;
78
78
  attribute designIntent : String;
79
79
  attribute operatingConditions : String;
80
80
  }
81
- item def HAZOPDeviation specializes TraceableElement {
81
+ item def HAZOPDeviation specializes MemoPart {
82
82
  attribute guideWord : HAZOPGuideWordKind;
83
83
  attribute parameter : String;
84
84
  attribute cause : String;
@@ -1,7 +1,7 @@
1
- package memo_architecture_risk_arch_risk {
1
+ package memo_assurance_safety_risk_arch_risk {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  doc /* Configuration Item (CI) aggregator for MEMO architecture risk domain.
5
5
  * Re-exports all risk-related packages for Sysand build. */
6
- public import memo_architecture_risk_risk::*;
6
+ public import memo_assurance_safety_risk::*;
7
7
  }
@@ -1,27 +1,22 @@
1
- package memo_architecture_risk_risk {
1
+ package memo_assurance_safety_risk {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_core_common::*;
5
5
  private import memo_core_enumerations::*;
6
- private import memo_architecture_requirements::*;
6
+ private import memo_assurance_requirements::*;
7
7
  part def Risk specializes RiskDriver {
8
8
  attribute probabilityEstimate : ProbabilityKind;
9
9
  attribute severityEstimate : SeverityKind;
10
10
  attribute riskLevel : CriticalityKind;
11
11
  attribute acceptability : RiskAcceptabilityKind;
12
- }
13
- part def RiskBeforeMitigation specializes Risk {
14
12
  attribute estimationBasis : String;
15
13
  attribute analysisContext : String;
16
14
  attribute foreseeableMisuseIncluded : Boolean;
17
15
  }
18
- part def RiskAfterMitigation specializes Risk {
19
- attribute residualProbability : ProbabilityKind;
20
- attribute residualSeverity : SeverityKind;
21
- attribute residualAcceptability : RiskAcceptabilityKind;
16
+ part def ResidualRisk specializes Risk {
22
17
  attribute benefitRiskRequired : Boolean;
23
18
  }
24
- part def RiskMatrix specializes TraceableElement {
19
+ part def RiskMatrix specializes MemoPart {
25
20
  attribute probabilityScaleDefinition : String;
26
21
  attribute severityScaleDefinition : String;
27
22
  attribute riskLevelMapping : String;
@@ -43,37 +38,51 @@ package memo_architecture_risk_risk {
43
38
  attribute cannotReduceFurther : Boolean;
44
39
  attribute linkSummary : String;
45
40
  }
46
- item def Hazard specializes TraceableElement {
41
+ // A device characteristic whose implementation, failure, or misuse can
42
+ // affect safety. This is the modelable output of ISO 14971 §5.3.
43
+ part def SafetyRelatedCharacteristic specializes MemoPart {
44
+ attribute characteristic : String;
45
+ attribute safetyImpact : String;
46
+ attribute normalUseRelevant : Boolean;
47
+ attribute faultConditionRelevant : Boolean;
48
+ }
49
+ item def Hazard specializes MemoPart {
47
50
  attribute hazardType : HazardTypeKind;
48
51
  attribute severity : SeverityKind;
49
52
  attribute foreseeable : Boolean;
50
53
  }
51
- item def SequenceOfEvents specializes TraceableElement {
54
+ item def SequenceOfEvents specializes MemoPart {
52
55
  attribute initiatingEvent : String;
53
56
  attribute contributingFactors : String;
54
57
  }
55
58
  // A categorized root cause in a hazard causal tree (FDA GIIP
56
59
  // taxonomy pattern: cause -> hazard -> hazardous situation -> harm;
57
60
  // several HazardCause elements may converge on one Hazard).
58
- item def HazardCause specializes TraceableElement {
61
+ item def HazardCause specializes MemoPart {
59
62
  attribute causeSource : CauseSourceKind;
60
63
  attribute contributingFactors : String;
61
64
  }
62
- item def HazardousSituation specializes TraceableElement {
65
+ item def HazardousSituation specializes MemoPart {
63
66
  attribute exposedPersons : String;
64
67
  attribute operatingCondition : String;
65
68
  }
66
- item def Harm specializes TraceableElement {
69
+ item def Harm specializes MemoPart {
67
70
  attribute clinicalImpact : String;
68
71
  attribute reversibility : String;
69
72
  attribute severity : SeverityKind;
70
73
  }
71
- item def RiskControl specializes VerifiableElement {
74
+ item def RiskControlMeasure specializes VerifiableElement {
72
75
  attribute controlKind : RiskControlKind;
73
76
  attribute implementationKind : RiskControlImplementationKind;
74
77
  attribute verificationStatus : String;
75
78
  }
76
- item def OverallResidualRiskEvaluation specializes TraceableElement {
79
+ part def Benefit specializes MemoPart {
80
+ attribute beneficialOutcome : String;
81
+ attribute beneficiary : String;
82
+ attribute clinicalSignificance : String;
83
+ attribute supportingEvidence : String;
84
+ }
85
+ item def OverallResidualRiskEvaluation specializes MemoPart {
77
86
  attribute conclusion : String;
78
87
  attribute reviewer : String;
79
88
  }
@@ -0,0 +1,49 @@
1
+ package memo_assurance_verification_validation {
2
+ private import ScalarValues::*;
3
+
4
+ private import memo_core_common::*;
5
+ private import memo_core_enumerations::*;
6
+ private import memo_core_relationships::*;
7
+ private import memo_architecture_operational_scenarios::*;
8
+ private import memo_architecture_operational_use_cases::*;
9
+ private import memo_architecture_functional_functions::*;
10
+ // Verification and validation cases are SysML v2 verification cases
11
+ // (behaviours that check requirements), not verifiable structures — they
12
+ // derive from the MemoVerificationCase foundation, not MemoPart.
13
+ verification def VerificationCase :> MemoVerificationCase {
14
+ attribute methodKind : VerificationMethodKind;
15
+ attribute acceptanceCriteria : String;
16
+ attribute status : String;
17
+ }
18
+ verification def ValidationCase :> MemoVerificationCase {
19
+ attribute validationMethod : ValidationMethodKind;
20
+ attribute userParticipation : String;
21
+ attribute acceptanceCriteria : String;
22
+ attribute clinicalContext : String;
23
+ }
24
+ part def TestArtifact specializes MemoEvidence {
25
+ attribute version : String;
26
+ attribute artifactKind : ArtifactKind;
27
+ attribute resultSummary : String;
28
+ }
29
+ part def Evidence specializes MemoEvidence {
30
+ attribute version : String;
31
+ attribute evidenceType : String;
32
+ attribute integrityStatus : String;
33
+ }
34
+
35
+ // A scenario executed to verify — selected path with purpose
36
+ // 'verification'.
37
+ part def VerificationScenario specializes MemoScenario {
38
+ attribute verificationEnvironment : String;
39
+ attribute stimulusSummary : String;
40
+ }
41
+
42
+ // Operational validation confirms the user's goal is achieved in the
43
+ // use environment (§5): ValidationCase validates a UseCase.
44
+ // Safety-critical functions must trace to verification (rules/coverage).
45
+ connection def ExecutesScenario :> MemoRelationship {
46
+ end verificationCase : VerificationCase;
47
+ end scenario : MemoScenario;
48
+ }
49
+ }
@@ -3,7 +3,7 @@ package memo_compliance_artifacts {
3
3
 
4
4
  private import memo_core_common::*;
5
5
  private import memo_core_enumerations::*;
6
- item def ControlledArtifact specializes TraceableElement {
6
+ item def ControlledArtifact specializes MemoPart {
7
7
  attribute version : String;
8
8
  attribute lifecycleState : LifecycleStateKind;
9
9
  attribute artifactKind : ArtifactKind;
@@ -3,13 +3,13 @@ package memo_compliance_change {
3
3
 
4
4
  private import memo_core_common::*;
5
5
  private import memo_core_enumerations::*;
6
- part def ChangeRequest specializes TraceableElement {
6
+ part def ChangeRequest specializes MemoPart {
7
7
  attribute changeType : ChangeTypeKind;
8
8
  attribute impactAssessment : String;
9
9
  attribute approvalStatus : String;
10
10
  attribute affectedBaseline : String;
11
11
  }
12
- part def ConfigurationItem specializes TraceableElement {
12
+ part def ConfigurationItem specializes MemoPart {
13
13
  attribute version : String;
14
14
  attribute baseline : String;
15
15
  attribute controlLevel : String;
@@ -33,7 +33,7 @@ empty: "No system requirements defined."
33
33
  ### 2.2 Design Inputs from User Needs
34
34
 
35
35
  ```memo-query
36
- kind: [DesignInput, StakeholderNeed]
36
+ kind: [DesignInput, Need]
37
37
  display: table
38
38
  columns: name, layer, doc
39
39
  sort: name
@@ -43,7 +43,7 @@ empty: "No validation activities defined."
43
43
  Coverage of user needs by validation activities, computed live from the model:
44
44
 
45
45
  ```memo-query
46
- kind: [StakeholderNeed, Requirement]
46
+ kind: [Need, Requirement]
47
47
  display: table
48
48
  columns: name, layer, doc
49
49
  empty: "No user needs defined."
@@ -31,11 +31,11 @@ _[TODO: Describe all intended user groups with their roles, training levels, and
31
31
  User needs captured for **{{project.product}}** are listed below from the model. Each user need should trace forward to at least one design input:
32
32
 
33
33
  ```memo-query
34
- kind: [StakeholderNeed, Requirement]
34
+ kind: [Need, Requirement]
35
35
  display: table
36
36
  columns: name, layer, doc
37
37
  sort: name
38
- empty: "No user need elements defined. Add StakeholderNeed or Requirement elements."
38
+ empty: "No user need elements defined. Add Need or Requirement elements."
39
39
  ```
40
40
 
41
41
  ---
@@ -60,7 +60,7 @@ _[TODO: Identify the critical tasks whose failure could cause a hazardous situat
60
60
  This section is generated from the system model. The table below lists the **Mitigation Measures** elements currently defined:
61
61
 
62
62
  ```memo-query
63
- kind: [RiskControl, UsabilityRequirement]
63
+ kind: [RiskControlMeasure, UsabilityRequirement]
64
64
  display: table
65
65
  columns: name, layer, doc
66
66
  sort: name
@@ -71,7 +71,7 @@ empty: "No interfaces defined."
71
71
  This section is generated from the system model. The table below lists the **Risk Controls for FMEA Items** elements currently defined:
72
72
 
73
73
  ```memo-query
74
- kind: RiskControl
74
+ kind: RiskControlMeasure
75
75
  display: table
76
76
  columns: name, layer, doc
77
77
  sort: name
@@ -35,7 +35,7 @@ label: Hazardous situations
35
35
  ```
36
36
 
37
37
  ```memo-query
38
- kind: RiskControl
38
+ kind: RiskControlMeasure
39
39
  display: count
40
40
  label: Risk control measures
41
41
  ```
@@ -113,7 +113,7 @@ empty: "No harm elements defined. Add Harm elements linked to HazardousSituation
113
113
  ### 6.1 Inherent Safety by Design
114
114
 
115
115
  ```memo-query
116
- kind: RiskControl
116
+ kind: RiskControlMeasure
117
117
  where: doc contains "design"
118
118
  display: table
119
119
  columns: name, doc, layer
@@ -123,11 +123,11 @@ empty: "No inherent safety controls."
123
123
  ### 6.2 Protective Measures
124
124
 
125
125
  ```memo-query
126
- kind: RiskControl
126
+ kind: RiskControlMeasure
127
127
  display: table
128
128
  columns: name, doc, layer
129
129
  sort: name
130
- empty: "No risk controls defined. Add RiskControl elements."
130
+ empty: "No risk controls defined. Add RiskControlMeasure elements."
131
131
  ```
132
132
 
133
133
  ### 6.3 Information for Safety
@@ -39,7 +39,7 @@ empty: "No risk elements defined."
39
39
  This section is generated from the system model. The table below lists the **Risk Control Coverage** elements currently defined:
40
40
 
41
41
  ```memo-query
42
- kind: RiskControl
42
+ kind: RiskControlMeasure
43
43
  display: table
44
44
  columns: name, layer, doc
45
45
  sort: name
@@ -119,7 +119,7 @@ empty: "No hazardous situations defined."
119
119
  ### 5.3 Risk Control Measures
120
120
 
121
121
  ```memo-query
122
- kind: RiskControl
122
+ kind: RiskControlMeasure
123
123
  display: table
124
124
  columns: name, layer, doc
125
125
  sort: name
@@ -29,7 +29,7 @@ label: Total hazards identified
29
29
  ```
30
30
 
31
31
  ```memo-query
32
- kind: RiskControl
32
+ kind: RiskControlMeasure
33
33
  display: count
34
34
  label: Risk controls implemented
35
35
  ```
@@ -7,7 +7,7 @@ package memo_compliance_iso14971 {
7
7
  doc /* ISO 14971 Risk Management File — the top-level deliverable
8
8
  that aggregates all risk management artifacts required by
9
9
  ISO 14971:2019 clause 4.5. */
10
- part def RiskManagementFile specializes TraceableElement {
10
+ part def RiskManagementFile specializes MemoPart {
11
11
  attribute standardReference : String;
12
12
  attribute clause : String;
13
13
  attribute edition : String;
@@ -3,12 +3,12 @@ package memo_compliance_postmarket {
3
3
 
4
4
  private import memo_core_common::*;
5
5
  private import memo_core_enumerations::*;
6
- part def ClinicalEvaluation specializes TraceableElement {
6
+ part def ClinicalEvaluation specializes MemoPart {
7
7
  attribute evaluationStage : String;
8
8
  attribute clinicalDataSource : String;
9
9
  attribute conclusion : String;
10
10
  }
11
- part def PostMarketSurveillance specializes TraceableElement {
11
+ part def PostMarketSurveillance specializes MemoPart {
12
12
  attribute surveillanceKind : String;
13
13
  attribute dataSource : String;
14
14
  attribute reportingObligation : String;
@@ -1,20 +1,57 @@
1
+ // MEMO base hierarchy. Construct-specific foundations: one base per
2
+ // SysML v2 metaclass family (part, action, port, interface, item, requirement,
3
+ // connection), each carrying the shared MEMO semantics. Common inheritance
4
+ // across metaclasses is not portable, so non-part bases re-declare the small
5
+ // identification core and share classification through the metadata defs in
6
+ // memo_core_dimensions.
1
7
  package memo_core_common {
2
8
  private import ScalarValues::*;
3
9
 
10
+ private import memo_core_dimensions::*;
11
+ private import memo_core_terminology::*;
4
12
  private import memo_core_enumerations::*;
5
13
 
6
- part def IdentifiedElement {
14
+ // ─── Single abstract part root ──────────────────────────────────
15
+ // Every structural MEMO concept specializes MemoPart. Identity and
16
+ // traceability are attributes of this one root — MEMO has no separate
17
+ // IdentifiedElement/TraceableElement classes, because *everything* is
18
+ // identifiable and traceable by definition; that is not a type a modeler
19
+ // picks. MemoPart is abstract: never instantiated, only specialized.
20
+ //
21
+ // Axis ownership (horizontal architecture layer vs. vertical assurance
22
+ // discipline) is NOT an attribute — it is the element's owning package
23
+ // (memo_architecture_* xor memo_assurance_*), enforced by CR-ONT-045.
24
+ // The remaining dimensions are orthogonal to the axis: realization stage,
25
+ // cross-cutting concern, and editorial status.
26
+ abstract part def MemoPart {
27
+ // identity
7
28
  attribute id : String;
8
29
  attribute name : String;
9
30
  attribute description : String;
10
- }
11
-
12
- part def TraceableElement specializes IdentifiedElement {
31
+ // traceability
13
32
  attribute rationale : String;
14
33
  attribute sourceReference : String;
34
+ // editorial status and lifecycle
35
+ attribute status : ElementStatusKind;
36
+ attribute lifecycleState : LifecycleStateKind;
37
+ // orthogonal dimensions
38
+ attribute realizationStage : RealizationStageKind[0..1];
39
+ attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
40
+ attribute concerns : ConcernKind[0..*];
41
+ attribute applicableStandards : ExternalReference[0..*];
42
+ attribute codes : TerminologyCode[0..*];
15
43
  }
16
44
 
17
- part def DocumentedElement specializes TraceableElement {
45
+ // ─── Role bases retained from the original kernel, re-founded on
46
+ // MemoPart so all existing content inherits the dimensions. ───
47
+ part def RequirementDriver specializes MemoPart;
48
+ abstract part def VerifiableElement specializes MemoPart;
49
+ abstract part def ArchitectureElement specializes MemoPart;
50
+ part def InterfaceElement specializes MemoPart;
51
+ part def MemoEvidence specializes MemoPart;
52
+ abstract part def AnalysisArtifact specializes MemoPart;
53
+
54
+ part def DocumentedElement specializes MemoPart {
18
55
  attribute title : String;
19
56
  attribute shortDescription : String;
20
57
  attribute longDescription : String;
@@ -22,26 +59,98 @@ package memo_core_common {
22
59
  attribute sectionIdentifier : String;
23
60
  }
24
61
 
25
- part def RequirementDriver specializes TraceableElement;
26
- part def VerifiableElement specializes TraceableElement;
27
- part def ArchitectureElement specializes TraceableElement;
28
- part def InterfaceElement specializes TraceableElement;
29
- part def EvidenceElement specializes TraceableElement;
62
+ // ─── Construct-specific foundations (non-part metaclasses) ───────
63
+
64
+ // Behavioral foundation: operational activities, tasks, system actions,
65
+ // and interaction steps specialize MemoAction.
66
+ action def MemoAction {
67
+ attribute id : String;
68
+ attribute name : String;
69
+ attribute description : String;
70
+ attribute rationale : String;
71
+ attribute sourceReference : String;
72
+ attribute status : ElementStatusKind;
73
+ }
74
+
75
+ // Boundary feature foundation for typed ports.
76
+ port def MemoPort {
77
+ attribute id : String;
78
+ attribute name : String;
79
+ attribute description : String;
80
+ attribute direction : DirectionKind;
81
+ }
82
+
83
+ // Interaction-contract foundation for interface definitions between ports.
84
+ interface def MemoInterface {
85
+ attribute id : String;
86
+ attribute name : String;
87
+ attribute description : String;
88
+ attribute rationale : String;
89
+ attribute sourceReference : String;
90
+ }
30
91
 
31
- part def ExchangeItem specializes TraceableElement {
92
+ // Exchange-content foundation: everything that flows — information,
93
+ // command, material, energy — is an item, not a part.
94
+ item def MemoExchangeItem {
95
+ attribute id : String;
96
+ attribute name : String;
97
+ attribute description : String;
98
+ attribute rationale : String;
99
+ attribute sourceReference : String;
32
100
  attribute semantics : String;
33
101
  attribute unit : String;
34
102
  attribute minValue : String;
35
103
  attribute maxValue : String;
36
104
  attribute encoding : String;
37
105
  attribute timestampRequired : Boolean;
106
+ attribute codes : TerminologyCode[0..*];
38
107
  }
39
108
 
40
- part def LayerElement specializes TraceableElement {
41
- attribute layerName : String;
109
+ // Requirement-family foundations. MemoNeed captures a problem-space
110
+ // expectation in stakeholder language; MemoRequirement a testable
111
+ // solution-space obligation.
112
+ requirement def MemoNeed {
113
+ attribute needId : String;
114
+ attribute statement : String;
115
+ attribute needRationale : String;
116
+ attribute needSource : String;
117
+ attribute priority : String;
118
+ attribute needStatus : ElementStatusKind;
119
+ }
120
+
121
+ requirement def MemoRequirement {
122
+ attribute requirementId : String;
123
+ attribute statement : String;
124
+ attribute acceptanceCriteria : String;
125
+ attribute requirementStatus : ElementStatusKind;
126
+ }
127
+
128
+ // Verification-case foundation. A SysML v2 verification case is a behaviour
129
+ // (it checks requirements), and KerML forbids a behaviour from specializing
130
+ // the part-based MemoPart — so, like MemoAction, it re-declares the small
131
+ // identification core rather than inheriting it.
132
+ verification def MemoVerificationCase {
133
+ attribute id : String;
134
+ attribute name : String;
135
+ attribute description : String;
136
+ attribute rationale : String;
137
+ attribute sourceReference : String;
138
+ }
139
+
140
+ // State foundation. SysML v2 states (state machines and their mode states)
141
+ // are behaviours, so — like MemoAction and MemoVerificationCase — they
142
+ // re-declare the identification core instead of specializing MemoPart
143
+ // Transitions stay part-based to keep their traceable safety
144
+ // attributes (id, sourceReference, priority, sameStepCritical).
145
+ abstract state def MemoState {
146
+ attribute id : String;
147
+ attribute name : String;
148
+ attribute description : String;
149
+ attribute rationale : String;
150
+ attribute sourceReference : String;
42
151
  }
43
152
 
44
- part def Citation specializes IdentifiedElement {
153
+ part def Citation specializes MemoPart {
45
154
  attribute source : String;
46
155
  attribute section : String;
47
156
  attribute uri : String;
@@ -1,12 +1,12 @@
1
1
  // Consistency rule base types per Epic N.
2
- // Bare imports (no `private`) per ADR-1-16 fallback.
2
+ // Bare imports are required by the current compatibility surface.
3
3
  package memo_core_consistency_rules {
4
4
  private import ScalarValues::*;
5
5
 
6
6
  private import memo_core_common::*;
7
7
  private import memo_core_enumerations::*;
8
8
 
9
- part def ConsistencyRule specializes TraceableElement {
9
+ part def ConsistencyRule specializes MemoPart {
10
10
  attribute appliesTo : String;
11
11
  attribute predicate : RulePredicateKind;
12
12
  attribute strength : RuleStrengthKind;