@memoarchitect/ontology 0.4.6 → 0.6.1
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/README.md +7 -6
- package/examples/connected-patient-monitor/README.md +7 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +70 -0
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +3 -0
- package/examples/connected-patient-monitor/model/viewpoints/connected_patient_monitor_overview.sysml +6 -0
- package/examples/embedded-infusion-pump/README.md +7 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +66 -0
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +3 -0
- package/examples/embedded-infusion-pump/model/viewpoints/embedded_infusion_pump_overview.sysml +6 -0
- package/examples/extensions/README.md +16 -0
- package/examples/extensions/clinical/memo.package.yaml +9 -0
- package/examples/extensions/clinical/src/clinical_extension.sysml +3 -0
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +14 -0
- package/examples/extensions/clinical/src/procedures/memo_clinical_procedures.sysml +16 -0
- package/examples/extensions/template/memo.package.yaml +9 -0
- package/examples/extensions/template/src/extension.sysml +15 -0
- package/examples/functional-logical-physical/README.md +7 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +50 -0
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +3 -0
- package/examples/functional-logical-physical/model/viewpoints/functional_logical_physical_overview.sysml +6 -0
- package/examples/gpca-pump/README.md +26 -0
- package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +1 -1
- package/examples/gpca-pump/memo.config.yaml +2 -2
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_scope.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +10 -10
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +17 -6
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +11 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +35 -22
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +25 -6
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +29 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +293 -169
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +145 -27
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +210 -105
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +66 -69
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +43 -76
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +73 -70
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +27 -27
- package/examples/gpca-pump/model/views/context_system_context_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_rmf_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_sdd_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_threat_model_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_vv_view.sysml +1 -1
- package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +1 -1
- package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +1 -1
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/gpca-pump/model/views/operational_use_case_view.sysml +6 -6
- package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +1 -1
- package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +1 -1
- package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +2 -2
- package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +1 -1
- package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +1 -1
- package/examples/ivd-laboratory-system/README.md +7 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +58 -0
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +3 -0
- package/examples/ivd-laboratory-system/model/viewpoints/ivd_laboratory_system_overview.sysml +6 -0
- package/examples/manual-surgical-instrument/README.md +7 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +41 -0
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +3 -0
- package/examples/manual-surgical-instrument/model/viewpoints/manual_surgical_instrument_overview.sysml +6 -0
- package/examples/multidimensional-layers/README.md +7 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +51 -0
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +4 -0
- package/examples/multidimensional-layers/model/viewpoints/multidimensional_layers_overview.sysml +13 -0
- package/examples/reusable-instrument/README.md +7 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +71 -0
- package/examples/reusable-instrument/model/reusable_instrument.sysml +4 -0
- package/examples/reusable-instrument/model/viewpoints/reusable_instrument_overview.sysml +13 -0
- package/examples/software-only-medical-device/README.md +7 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +62 -0
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +4 -0
- package/examples/software-only-medical-device/model/viewpoints/software_only_medical_device_overview.sysml +13 -0
- package/examples/surgical-closure-workflow/README.md +8 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +151 -0
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +4 -0
- package/examples/surgical-closure-workflow/model/viewpoints/surgical_closure_workflow_overview.sysml +13 -0
- package/examples/surgical-robot/README.md +7 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +58 -0
- package/examples/surgical-robot/model/surgical_robot.sysml +4 -0
- package/examples/surgical-robot/model/viewpoints/surgical_robot_overview.sysml +13 -0
- package/examples/sysml-diagram-samples/README.md +32 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +5 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/action_flow_view.sysml +22 -4
- package/examples/sysml-diagram-samples/model/samples/context_view.sysml +55 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/functional_flow_view.sysml +17 -6
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/interconnection_view.sysml +4 -3
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/operational_behaviour_view.sysml +32 -42
- package/examples/sysml-diagram-samples/model/samples/requirements_view.sysml +63 -0
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +109 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/tree_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/samples/use_case_view.sysml +81 -0
- package/examples/temperature-alarm/README.md +7 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +140 -0
- package/examples/temperature-alarm/model/temperature_alarm.sysml +4 -0
- package/examples/temperature-alarm/model/viewpoints/temperature_alarm_overview.sysml +13 -0
- package/memo.manifest.yaml +12 -4
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +4 -4
- package/ontology/memo.package.yaml +1 -1
- package/ontology/memo.rendering.yaml +37 -0
- package/package.json +19 -11
- package/profile/memo.package.yaml +3 -3
- package/src/architecture/decisions/memo_decisions.sysml +1 -1
- package/src/architecture/{behavior → functional/behavior}/memo_behavior.sysml +12 -11
- package/src/architecture/{constraints → functional/constraints}/memo_constraints.sysml +2 -2
- package/src/architecture/functional/functions/memo_functions.sysml +81 -0
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +46 -0
- package/src/architecture/implementation/hardware/electrical/memo_hardware_electrical.sysml +36 -0
- package/src/architecture/implementation/hardware/fluidic/memo_hardware_fluidic.sysml +14 -0
- package/src/architecture/implementation/hardware/mechanical/memo_hardware_mechanical.sysml +14 -0
- package/src/architecture/implementation/hardware/optical/memo_hardware_optical.sysml +11 -0
- package/src/architecture/implementation/hardware/sensing/memo_hardware_sensing.sysml +17 -0
- package/src/architecture/implementation/hardware/structure/memo_hardware_structure.sysml +12 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +70 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +80 -0
- package/src/architecture/implementation/ui/memo_ui.sysml +159 -0
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +102 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +150 -0
- package/src/architecture/operational/activities/memo_activities.sysml +86 -0
- package/src/architecture/operational/context/actors/memo_actors.sysml +38 -0
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +64 -0
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +53 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +116 -0
- package/src/architecture/operational/structure/memo_operational.sysml +31 -0
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +67 -0
- package/src/architecture/operational/workflows/memo_workflows.sysml +126 -0
- package/src/architecture/realization/deployment/memo_deployment.sysml +90 -0
- package/src/architecture/{physical → realization/physical}/memo_physical_architecture.sysml +12 -1
- package/src/artifacts/definitions/memo_artifact_definitions.sysml +1 -1
- package/src/{architecture → assurance}/cybersecurity/memo_cybersecurity.sysml +14 -10
- package/src/assurance/human_factors/memo_human_factors.sysml +50 -0
- package/src/{architecture → assurance}/requirements/memo_requirements.sysml +45 -21
- package/src/assurance/requirements/needs/memo_needs.sysml +43 -0
- package/src/{architecture → assurance/safety_risk}/analysis/memo_fmea.sysml +13 -13
- package/src/{architecture/risk → assurance/safety_risk}/memo_arch_risk.sysml +2 -2
- package/src/{architecture/risk → assurance/safety_risk}/memo_risk.sysml +25 -16
- package/src/assurance/verification_validation/memo_assurance.sysml +49 -0
- package/src/compliance/artifacts/memo_artifacts.sysml +1 -1
- package/src/compliance/change/memo_change.sysml +2 -2
- package/src/compliance/dhf-templates/21cfr820/design-input.md +1 -1
- package/src/compliance/dhf-templates/21cfr820/design-validation.md +1 -1
- package/src/compliance/dhf-templates/21cfr820/user-needs.md +2 -2
- package/src/compliance/dhf-templates/iec-62366/urra.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/fmea.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/har.md +4 -4
- package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/rmp.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/rmr.md +1 -1
- package/src/compliance/iso14971/risk_management_file.sysml +1 -1
- package/src/compliance/postmarket/memo_postmarket.sysml +2 -2
- package/src/core/common/memo_common.sysml +123 -14
- package/src/core/consistency_rules/consistency_rules.sysml +2 -2
- package/src/core/dimensions/dimensions.sysml +45 -24
- package/src/core/enumerations/memo_enumerations.sysml +11 -16
- package/src/core/methodology_scope/methodology_scope.sysml +10 -28
- package/src/core/relationships/memo_relationships.sysml +178 -146
- package/src/core/stdlib/{collections.sysml → collections/collections.sysml} +1 -1
- package/src/core/stdlib/{functions.sysml → functions/functions.sysml} +1 -1
- package/src/core/stdlib/{scalars.sysml → scalars/scalars.sysml} +1 -1
- package/src/core/stdlib/{time.sysml → time/time.sysml} +1 -1
- package/src/core/terminology/terminology.sysml +35 -0
- package/src/memo_namespaces.sysml +247 -302
- package/src/methodology/{memo_core.sysml → core/memo_core.sysml} +19 -13
- package/src/methodology/{memo_gates.sysml → gates/memo_gates.sysml} +1 -1
- package/src/methodology/{memo_patterns.sysml → patterns/memo_patterns.sysml} +1 -1
- package/src/methodology/{memo_profiles.sysml → profiles/memo_profiles.sysml} +27 -35
- package/src/methodology/{memo_workflow.sysml → workflow/memo_workflow.sysml} +1 -1
- package/src/rules/closure/closure_rules.sysml +11 -11
- package/src/rules/coverage/coverage_rules.sysml +8 -8
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/lifecycle/lifecycle_rules.sysml +1 -1
- package/src/rules/ontology/ontology_invariants.sysml +133 -0
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +189 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +0 -1
- package/src/viewpoints/context/context_viewpoint.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +8 -8
- package/src/viewpoints/functional/{function_allocation_view.sysml → function_allocation_view/function_allocation_view.sysml} +1 -1
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/{system_functional_tree_view.sysml → system_functional_tree_view/system_functional_tree_view.sysml} +1 -1
- package/src/viewpoints/logical/logical_viewpoint.sysml +0 -1
- package/src/viewpoints/operational/operational_viewpoint.sysml +1 -2
- package/src/viewpoints/operational/{use_case_view.sysml → use_case_view/use_case_view.sysml} +1 -1
- package/src/viewpoints/physical/physical_viewpoint.sysml +0 -1
- package/src/viewpoints/requirements/{requirements_traceability_view.sysml → requirements_traceability_view/requirements_traceability_view.sysml} +1 -1
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/{risk_chain_view.sysml → risk_chain_view/risk_chain_view.sysml} +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/software/{software_architecture_view.sysml → software_architecture_view/software_architecture_view.sysml} +1 -1
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/usability/usability_viewpoint.sysml +0 -1
- package/src/viewpoints/verification/verification_viewpoint.sysml +0 -1
- package/templates/connected-device/memo.package.yaml +5 -0
- package/templates/connected-device/src/architecture/system.sysml +5 -0
- package/templates/connected-device/src/artifacts/artifacts.sysml +5 -0
- package/templates/connected-device/src/assurance/requirements.sysml +7 -0
- package/templates/default/memo.package.yaml +5 -0
- package/templates/default/src/architecture/system.sysml +7 -0
- package/templates/default/src/artifacts/artifacts.sysml +5 -0
- package/templates/default/src/assurance/requirements.sysml +8 -0
- package/templates/infusion-pump/memo.package.yaml +5 -0
- package/templates/infusion-pump/src/architecture/system.sysml +5 -0
- package/templates/infusion-pump/src/artifacts/artifacts.sysml +5 -0
- package/templates/infusion-pump/src/assurance/requirements.sysml +7 -0
- package/templates/monitoring-device/memo.package.yaml +5 -0
- package/templates/monitoring-device/src/architecture/system.sysml +5 -0
- package/templates/monitoring-device/src/artifacts/artifacts.sysml +5 -0
- package/templates/monitoring-device/src/assurance/requirements.sysml +7 -0
- package/templates/samd/memo.package.yaml +5 -0
- package/templates/samd/src/architecture/system.sysml +5 -0
- package/templates/samd/src/artifacts/artifacts.sysml +5 -0
- package/templates/samd/src/assurance/requirements.sysml +7 -0
- package/examples/gpca-pump/model/samples/README.md +0 -24
- package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +0 -9
- package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +0 -99
- package/profile/archetypes.yaml +0 -36
- package/profile/templates/connected-device/starter.sysml +0 -8
- package/profile/templates/infusion-pump/starter.sysml +0 -8
- package/profile/templates/monitoring-device/starter.sysml +0 -8
- package/profile/templates/samd/starter.sysml +0 -8
- package/src/architecture/assurance/memo_assurance.sysml +0 -29
- package/src/architecture/context/memo_context.sysml +0 -58
- package/src/architecture/functions/memo_functions.sysml +0 -30
- package/src/architecture/hardware_structure/memo_hardware_structure.sysml +0 -15
- package/src/architecture/interfaces/memo_interfaces.sysml +0 -103
- package/src/architecture/logical_structure/memo_logical_structure.sysml +0 -10
- package/src/architecture/operational/memo_operational.sysml +0 -51
- package/src/architecture/software_structure/memo_software_structure.sysml +0 -44
- package/src/architecture/system/memo_system_analysis.sysml +0 -54
- package/src/artifacts/clinical_safety_report.sysml +0 -12
- package/src/artifacts/cybersecurity_assessment_report.sysml +0 -12
- package/src/artifacts/design_change_log.sysml +0 -12
- package/src/artifacts/design_history_file_index.sysml +0 -12
- package/src/artifacts/design_input_plan.sysml +0 -12
- package/src/artifacts/design_output_plan.sysml +0 -12
- package/src/artifacts/evidence_record.sysml +0 -12
- package/src/artifacts/failure_mode_effects_analysis.sysml +0 -12
- package/src/artifacts/hazard_analysis_report.sysml +0 -12
- package/src/artifacts/labeling_specification.sysml +0 -12
- package/src/artifacts/requirements_specification.sysml +0 -12
- package/src/artifacts/requirements_traceability_matrix.sysml +0 -12
- package/src/artifacts/risk_management_plan.sysml +0 -12
- package/src/artifacts/software_design_description.sysml +0 -12
- package/src/artifacts/software_development_plan.sysml +0 -12
- package/src/artifacts/soup_list.sysml +0 -12
- package/src/artifacts/system_architecture_description.sysml +0 -12
- package/src/artifacts/test_protocol.sysml +0 -12
- package/src/artifacts/test_report.sysml +0 -12
- package/src/artifacts/threat_model_report.sysml +0 -12
- package/src/artifacts/usability_engineering_report.sysml +0 -12
- package/src/medical_device_library.sysml +0 -100
- package/template/memo.package.yaml +0 -5
- package/template/src/catalog/starter.sysml +0 -12
- package/template/src/documents/.gitkeep +0 -1
- package/template/src/views/.gitkeep +0 -1
- /package/src/methodology/{memo_archetypes.sysml → archetypes/memo_archetypes.sysml} +0 -0
- /package/src/methodology/{memo_rules.sysml → rules/memo_rules.sysml} +0 -0
- /package/src/methodology/{memo_viewpoints.sysml → viewpoints/memo_viewpoints.sysml} +0 -0
- /package/src/viewpoints/clinical/{clinical_evidence_view.sysml → clinical_evidence_view/clinical_evidence_view.sysml} +0 -0
- /package/src/viewpoints/context/{system_context_view.sysml → system_context_view/system_context_view.sysml} +0 -0
- /package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view.sysml → cybersecurity_assessment_view/cybersecurity_assessment_view.sysml} +0 -0
- /package/src/viewpoints/cybersecurity/{threat_model_view.sysml → threat_model_view/threat_model_view.sysml} +0 -0
- /package/src/viewpoints/logical/{logical_architecture_view.sysml → logical_architecture_view/logical_architecture_view.sysml} +0 -0
- /package/src/viewpoints/physical/{network_topology_view.sysml → network_topology_view/network_topology_view.sysml} +0 -0
- /package/src/viewpoints/physical/{physical_bom_view.sysml → physical_bom_view/physical_bom_view.sysml} +0 -0
- /package/src/viewpoints/usability/{usability_engineering_view.sysml → usability_engineering_view/usability_engineering_view.sysml} +0 -0
- /package/src/viewpoints/verification/{verification_coverage_view.sysml → verification_coverage_view/verification_coverage_view.sysml} +0 -0
|
@@ -1,37 +1,58 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Lifecycle and cross-cutting classification dimensions.
|
|
2
|
+
//
|
|
3
|
+
// Axis ownership (horizontal architecture layer vs. vertical assurance
|
|
4
|
+
// discipline) is NOT a tag here — it is encoded by package membership: every
|
|
5
|
+
// element is defined in exactly one axis package (memo_architecture_* xor
|
|
6
|
+
// memo_assurance_*), enforced by CR-ONT-045. The remaining dimensions below
|
|
7
|
+
// (realization stage, cross-cutting concern, element status) are genuinely
|
|
8
|
+
// orthogonal to the axis and to each other, and stay as metadata.
|
|
3
9
|
package memo_core_dimensions {
|
|
4
10
|
private import ScalarValues::*;
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
enum
|
|
11
|
-
enum
|
|
12
|
-
enum
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
// Realization stages of one element identity across the product
|
|
13
|
+
// lifecycle (specification through retirement). Orthogonal to the axis:
|
|
14
|
+
// a single identity progresses through stages without changing its owner.
|
|
15
|
+
enum def RealizationStageKind {
|
|
16
|
+
enum specified;
|
|
17
|
+
enum designed;
|
|
18
|
+
enum built;
|
|
19
|
+
enum configured;
|
|
20
|
+
enum assembled;
|
|
21
|
+
enum deployed;
|
|
22
|
+
enum operated;
|
|
23
|
+
enum retired;
|
|
18
24
|
}
|
|
19
25
|
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
// Cross-cutting concerns orthogonal to the axis.
|
|
27
|
+
enum def CrossCuttingConcernKind {
|
|
28
|
+
enum evidence;
|
|
29
|
+
enum traceability;
|
|
30
|
+
enum configurationManagement;
|
|
31
|
+
enum changeControl;
|
|
32
|
+
enum regulatoryCompliance;
|
|
33
|
+
enum clinicalPerformance;
|
|
22
34
|
}
|
|
23
35
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
36
|
+
// Editorial status of the model element itself (distinct from the
|
|
37
|
+
// lifecycle of the thing the element describes).
|
|
38
|
+
enum def ElementStatusKind {
|
|
39
|
+
enum draft;
|
|
40
|
+
enum inReview;
|
|
41
|
+
enum approved;
|
|
42
|
+
enum released;
|
|
43
|
+
enum deprecated;
|
|
44
|
+
enum retired;
|
|
27
45
|
}
|
|
28
46
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
// Metadata carriers for tagging non-part constructs (actions, ports,
|
|
48
|
+
// interfaces, items, views) with the orthogonal dimensions. Part-based
|
|
49
|
+
// elements carry these directly as attributes of MemoPart. Axis ownership
|
|
50
|
+
// is never tagged here — it is the construct's owning package.
|
|
51
|
+
metadata def RealizationClassification {
|
|
52
|
+
attribute stage : RealizationStageKind[0..1];
|
|
32
53
|
}
|
|
33
54
|
|
|
34
|
-
|
|
35
|
-
attribute
|
|
55
|
+
metadata def CrossCuttingClassification {
|
|
56
|
+
attribute crossCutting : CrossCuttingConcernKind[0..*];
|
|
36
57
|
}
|
|
37
58
|
}
|
|
@@ -54,12 +54,6 @@ package memo_core_enumerations {
|
|
|
54
54
|
enum should;
|
|
55
55
|
enum will;
|
|
56
56
|
}
|
|
57
|
-
enum def ArcadiaLayerKind {
|
|
58
|
-
enum operational;
|
|
59
|
-
enum system;
|
|
60
|
-
enum logical;
|
|
61
|
-
enum physical;
|
|
62
|
-
}
|
|
63
57
|
enum def InterfaceKind {
|
|
64
58
|
enum data;
|
|
65
59
|
enum control;
|
|
@@ -227,6 +221,16 @@ package memo_core_enumerations {
|
|
|
227
221
|
enum assumption;
|
|
228
222
|
enum guarantee;
|
|
229
223
|
}
|
|
224
|
+
enum def InterfaceItemKind {
|
|
225
|
+
enum data;
|
|
226
|
+
enum command;
|
|
227
|
+
enum signal;
|
|
228
|
+
enum event;
|
|
229
|
+
enum material;
|
|
230
|
+
enum energy;
|
|
231
|
+
enum fluid;
|
|
232
|
+
enum mechanicalForce;
|
|
233
|
+
}
|
|
230
234
|
enum def PropertyLanguageKind {
|
|
231
235
|
enum naturalLanguage;
|
|
232
236
|
enum pseudoFormal;
|
|
@@ -370,16 +374,7 @@ package memo_core_enumerations {
|
|
|
370
374
|
enum device;
|
|
371
375
|
enum informationArtifact;
|
|
372
376
|
}
|
|
373
|
-
enum def
|
|
374
|
-
enum nominal;
|
|
375
|
-
enum degraded;
|
|
376
|
-
enum emergency;
|
|
377
|
-
enum maintenance;
|
|
378
|
-
enum error;
|
|
379
|
-
enum timeout;
|
|
380
|
-
enum alarm;
|
|
381
|
-
}
|
|
382
|
-
enum def FunctionalChainKind {
|
|
377
|
+
enum def FunctionalFlowKind {
|
|
383
378
|
enum nominal;
|
|
384
379
|
enum error;
|
|
385
380
|
enum degraded;
|
|
@@ -1,44 +1,26 @@
|
|
|
1
|
-
// Methodology scope helpers
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// Instances use repeated scalar attribute usages to enumerate set entries
|
|
5
|
-
// (see ADR-1-15 example: `attribute :>> includedArchLayer = "operational";`).
|
|
1
|
+
// Methodology scope helpers.
|
|
2
|
+
// Instances use repeated scalar attribute usages to enumerate set entries, for
|
|
3
|
+
// example: `attribute :>> includedArchLayer = "operational";`.
|
|
6
4
|
package memo_core_methodology_scope {
|
|
7
5
|
private import ScalarValues::*;
|
|
8
6
|
|
|
9
7
|
private import memo_core_common::*;
|
|
10
8
|
private import memo_core_dimensions::*;
|
|
11
9
|
|
|
12
|
-
part def MethodologyLayerSet specializes
|
|
10
|
+
part def MethodologyLayerSet specializes MemoPart {
|
|
13
11
|
attribute setName : String;
|
|
14
12
|
attribute layer : String;
|
|
15
13
|
}
|
|
16
14
|
|
|
17
|
-
part def
|
|
18
|
-
attribute setName : String;
|
|
19
|
-
attribute standardReference : String;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
part def MethodologyArtifactSet specializes TraceableElement {
|
|
23
|
-
attribute setName : String;
|
|
24
|
-
attribute artifactKind : String;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
part def MethodologyViewpointTypeSet specializes TraceableElement {
|
|
28
|
-
attribute setName : String;
|
|
29
|
-
attribute viewpointType : String;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
part def MethodologyScope specializes TraceableElement {
|
|
15
|
+
part def MethodologyScope specializes MemoPart {
|
|
33
16
|
attribute scopeName : String;
|
|
34
|
-
attribute includedArchLayer : String;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
attribute
|
|
38
|
-
attribute excludedKind : String;
|
|
17
|
+
attribute includedArchLayer : String[0..*];
|
|
18
|
+
// Qualified package names may resolve to MEMO, project, supplier, or
|
|
19
|
+
// other externally provided ontology modules.
|
|
20
|
+
attribute includedModule : String[0..*];
|
|
39
21
|
}
|
|
40
22
|
|
|
41
|
-
part def ElementKindAlias specializes
|
|
23
|
+
part def ElementKindAlias specializes MemoPart {
|
|
42
24
|
attribute methodTerm : String;
|
|
43
25
|
attribute concreteKind : String;
|
|
44
26
|
attribute concreteOntology : String;
|
|
@@ -5,225 +5,257 @@ package memo_core_relationships {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
7
|
// All MEMO relations are native SysML v2 `connection def`s (each is a
|
|
8
|
-
// Connection/Association), specializing the
|
|
8
|
+
// Connection/Association), specializing the MemoRelationship base. The
|
|
9
9
|
// relationship name is the verb; the RelationshipRegistry derives the
|
|
10
10
|
// navigable type as camelCase(name) and navigation is bidirectional.
|
|
11
|
-
|
|
11
|
+
// Structural properties of a relation, declared here so authoring and
|
|
12
|
+
// validation read them from the ontology instead of assuming them. Both are
|
|
13
|
+
// unset on the base and carry the conservative reading: a relation forbids
|
|
14
|
+
// self-links and forbids repeats unless it says otherwise. A subtype opts
|
|
15
|
+
// out by redefining, e.g. `attribute :>> isReflexive = true;`.
|
|
16
|
+
abstract connection def MemoRelationship {
|
|
17
|
+
attribute linkStatus : LinkStatusKind;
|
|
18
|
+
doc /* True when an element may be related to itself by this relation.
|
|
19
|
+
* Unset is read as false. */
|
|
20
|
+
attribute isReflexive : Boolean;
|
|
21
|
+
doc /* True when at most one link of this type may join the same ordered
|
|
22
|
+
* pair of elements — KerML Feature::isUnique over the relation.
|
|
23
|
+
* Unset is read as true. */
|
|
24
|
+
attribute isUnique : Boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// The general relation that can join any two model elements, whatever
|
|
28
|
+
// their metaclass. Most specific relations type their ends against a
|
|
29
|
+
// foundation (MemoPart, VerifiableElement, …). A small number of specific
|
|
30
|
+
// cross-metaclass relations leave an end untyped because their accepted
|
|
31
|
+
// constructs have no shared MEMO base; their names and attributes still
|
|
32
|
+
// carry a precise engineering meaning. MemoLink leaves both ends untyped
|
|
33
|
+
// and adds no domain-specific semantics, which is what makes it universal.
|
|
34
|
+
//
|
|
35
|
+
// It is deliberately the weakest relation in the ontology. Reach for it
|
|
36
|
+
// only when no specific relation carries the meaning, and say why in
|
|
37
|
+
// linkRationale — an untyped link with no stated reason is an audit gap,
|
|
38
|
+
// not a model fact.
|
|
39
|
+
connection def MemoLink :> MemoRelationship {
|
|
40
|
+
doc /* Generic association between any two model elements. */
|
|
41
|
+
attribute linkRationale : String;
|
|
42
|
+
end linkSource;
|
|
43
|
+
end linkTarget;
|
|
44
|
+
}
|
|
12
45
|
|
|
13
|
-
connection def DerivesFrom :>
|
|
46
|
+
connection def DerivesFrom :> MemoRelationship {
|
|
14
47
|
// Drivers include needs and hazards (ISO 14971: hazards drive
|
|
15
|
-
// requirements), so the source stays at
|
|
16
|
-
end sourceDriver :
|
|
48
|
+
// requirements), so the source stays at MemoPart
|
|
49
|
+
end sourceDriver : MemoPart;
|
|
17
50
|
end targetRequirement : VerifiableElement;
|
|
18
51
|
}
|
|
19
|
-
connection def SatisfiedBy :>
|
|
52
|
+
connection def SatisfiedBy :> MemoRelationship {
|
|
20
53
|
end requiredElement : VerifiableElement;
|
|
21
54
|
end satisfyingElement : ArchitectureElement;
|
|
22
55
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
56
|
+
// Mitigates unifies the control/action → risk-element edges of the
|
|
57
|
+
// ISO 14971 / FMEA / FTA / cyber chains — MitigatesHazard,
|
|
58
|
+
// MitigatesVulnerability, MitigatedByControl, BrokenByControl,
|
|
59
|
+
// AddressedByAction — keyed by mitigationKind. control is the mitigating
|
|
60
|
+
// control/action; mitigatedElement is the hazard/vulnerability/failure/cut set.
|
|
61
|
+
enum def MitigationKind {
|
|
62
|
+
enum hazard;
|
|
63
|
+
enum vulnerability;
|
|
64
|
+
enum failureMode;
|
|
65
|
+
enum cutSet;
|
|
66
|
+
enum fmeaAction;
|
|
67
|
+
}
|
|
68
|
+
connection def Mitigates :> MemoRelationship {
|
|
69
|
+
attribute mitigationKind : MitigationKind;
|
|
70
|
+
end control : VerifiableElement;
|
|
71
|
+
end mitigatedElement : MemoPart;
|
|
72
|
+
}
|
|
73
|
+
connection def AllocatedTo :> MemoRelationship {
|
|
28
74
|
end function : ArchitectureElement;
|
|
29
75
|
end allocatedElement : ArchitectureElement;
|
|
30
76
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
77
|
+
// Realizes is the single realization relation (realizing/concrete element →
|
|
78
|
+
// realized/abstract element). It unifies RealizesInterface,
|
|
79
|
+
// RealizesComponentExchange, RealizedByArchitecture, RealizesScenario,
|
|
80
|
+
// ModuleRealizesLogical, ComponentRealizesModule, PhysicalModuleRealizesLogical,
|
|
81
|
+
// Implements{Component,Procedure}, UIRealizesFunctional,
|
|
82
|
+
// FunctionalRealizesOper{ative,ational} and ScenarioRealizesUseCase.
|
|
83
|
+
connection def Realizes :> MemoRelationship {
|
|
84
|
+
end realizing : MemoPart;
|
|
85
|
+
end realized : MemoPart;
|
|
86
|
+
}
|
|
87
|
+
connection def VerifiedBy :> MemoRelationship {
|
|
36
88
|
// Requirements, risk controls, and architecture components are
|
|
37
89
|
// all legitimate verification targets
|
|
38
|
-
end verificationTarget :
|
|
39
|
-
end verificationCase :
|
|
90
|
+
end verificationTarget : MemoPart;
|
|
91
|
+
end verificationCase : MemoVerificationCase;
|
|
40
92
|
}
|
|
41
|
-
connection def ProducesEvidence :>
|
|
42
|
-
end producer :
|
|
43
|
-
end producedEvidence :
|
|
93
|
+
connection def ProducesEvidence :> MemoRelationship {
|
|
94
|
+
end producer : MemoVerificationCase;
|
|
95
|
+
end producedEvidence : MemoEvidence;
|
|
44
96
|
}
|
|
45
|
-
connection def IncludedIn :>
|
|
46
|
-
end sourceElement :
|
|
47
|
-
end targetView :
|
|
97
|
+
connection def IncludedIn :> MemoRelationship {
|
|
98
|
+
end sourceElement : MemoPart;
|
|
99
|
+
end targetView : MemoPart;
|
|
48
100
|
}
|
|
49
|
-
connection def Precedes :>
|
|
101
|
+
connection def Precedes :> MemoRelationship {
|
|
50
102
|
attribute sameStepRequired : Boolean;
|
|
51
103
|
attribute precedenceRationale : String;
|
|
52
104
|
end predecessor : ArchitectureElement;
|
|
53
105
|
end successor : ArchitectureElement;
|
|
54
106
|
}
|
|
55
|
-
connection def ResolvesToMethodology :>
|
|
56
|
-
end boundModelElement :
|
|
57
|
-
end resolvedMethodology :
|
|
107
|
+
connection def ResolvesToMethodology :> MemoRelationship {
|
|
108
|
+
end boundModelElement : MemoPart;
|
|
109
|
+
end resolvedMethodology : MemoPart;
|
|
58
110
|
}
|
|
59
111
|
|
|
60
112
|
// ISO 14971 risk chain — distinct sequence-of-events relations over risk elements.
|
|
61
|
-
connection def TracesRisk :>
|
|
62
|
-
end sourceRiskElement :
|
|
63
|
-
end targetRiskElement :
|
|
113
|
+
connection def TracesRisk :> MemoRelationship {
|
|
114
|
+
end sourceRiskElement : MemoPart;
|
|
115
|
+
end targetRiskElement : MemoPart;
|
|
64
116
|
}
|
|
65
|
-
connection def AssessedAgainst :>
|
|
66
|
-
end risk :
|
|
67
|
-
end riskMatrix :
|
|
117
|
+
connection def AssessedAgainst :> MemoRelationship {
|
|
118
|
+
end risk : MemoPart;
|
|
119
|
+
end riskMatrix : MemoPart;
|
|
68
120
|
}
|
|
69
121
|
|
|
70
|
-
connection def ThreatenedBy :>
|
|
122
|
+
connection def ThreatenedBy :> MemoRelationship {
|
|
71
123
|
attribute threatRole : String;
|
|
72
124
|
end protectedAsset : ArchitectureElement;
|
|
73
125
|
end realizedThreat : RequirementDriver;
|
|
74
126
|
}
|
|
75
|
-
connection def Exploits :>
|
|
127
|
+
connection def Exploits :> MemoRelationship {
|
|
76
128
|
end realizedThreat : RequirementDriver;
|
|
77
|
-
end enablingVulnerability :
|
|
129
|
+
end enablingVulnerability : MemoPart;
|
|
78
130
|
}
|
|
79
|
-
connection def RealizedByScenario :>
|
|
131
|
+
connection def RealizedByScenario :> MemoRelationship {
|
|
80
132
|
end realizedThreat : RequirementDriver;
|
|
81
|
-
end scenario :
|
|
82
|
-
}
|
|
83
|
-
connection def MitigatesVulnerability :> SemanticLink {
|
|
84
|
-
end enablingVulnerability : TraceableElement;
|
|
85
|
-
end mitigation : VerifiableElement;
|
|
133
|
+
end scenario : MemoPart;
|
|
86
134
|
}
|
|
87
|
-
connection def DerivesCyberRequirement :>
|
|
135
|
+
connection def DerivesCyberRequirement :> MemoRelationship {
|
|
88
136
|
end sourceThreatOrRisk : RequirementDriver;
|
|
89
137
|
end targetRequirement : VerifiableElement;
|
|
90
138
|
}
|
|
91
|
-
connection def ImpactsSafety :>
|
|
139
|
+
connection def ImpactsSafety :> MemoRelationship {
|
|
92
140
|
attribute tracePurpose : String;
|
|
93
|
-
end cyberElement :
|
|
94
|
-
end safetyElement :
|
|
141
|
+
end cyberElement : MemoPart;
|
|
142
|
+
end safetyElement : MemoPart;
|
|
95
143
|
}
|
|
96
|
-
connection def CrossesTrustBoundary :>
|
|
144
|
+
connection def CrossesTrustBoundary :> MemoRelationship {
|
|
97
145
|
attribute crossingKind : InterfaceKind;
|
|
98
146
|
end boundary : InterfaceElement;
|
|
99
|
-
end crossingItem :
|
|
147
|
+
end crossingItem : MemoPart;
|
|
100
148
|
}
|
|
101
149
|
|
|
102
|
-
connection def
|
|
103
|
-
|
|
104
|
-
|
|
150
|
+
connection def Validates :> MemoRelationship {
|
|
151
|
+
// Validation targets include use cases and other behavioural elements,
|
|
152
|
+
// so the target remains untyped across SysML metaclass families.
|
|
153
|
+
end validationTarget;
|
|
154
|
+
end validationCase : MemoVerificationCase;
|
|
105
155
|
}
|
|
106
|
-
connection def
|
|
107
|
-
attribute deploymentKind : DeploymentKind;
|
|
108
|
-
end softwareComponent : ArchitectureElement;
|
|
109
|
-
end hostAssembly : ArchitectureElement;
|
|
110
|
-
}
|
|
111
|
-
connection def Validates :> SemanticLink {
|
|
112
|
-
end validationTarget : VerifiableElement;
|
|
113
|
-
end validationCase : VerifiableElement;
|
|
114
|
-
}
|
|
115
|
-
connection def DependsOnSoup :> SemanticLink {
|
|
156
|
+
connection def DependsOnSoup :> MemoRelationship {
|
|
116
157
|
end component : ArchitectureElement;
|
|
117
|
-
end soupItem :
|
|
158
|
+
end soupItem : MemoPart;
|
|
118
159
|
}
|
|
119
160
|
|
|
120
|
-
// Performs
|
|
121
|
-
// (operational
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
161
|
+
// Performs unifies the former Performs / PerformsActivity / PerformsFunction
|
|
162
|
+
// synonyms. The performer (operational entity, actor, or system action) and
|
|
163
|
+
// the performed element (activity or function) are distinguished by the end
|
|
164
|
+
// instance types, so generic MemoPart ends keep this in core without a
|
|
165
|
+
// dependency on architecture-layer types.
|
|
166
|
+
connection def Performs :> MemoRelationship {
|
|
167
|
+
end performer : MemoPart;
|
|
168
|
+
end performed : MemoPart;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Enables unifies the former EnablesWorkflow / EnablesActivity synonyms
|
|
172
|
+
// (an enabling system/function enables a workflow/activity).
|
|
173
|
+
connection def Enables :> MemoRelationship {
|
|
174
|
+
end enabling : MemoPart;
|
|
175
|
+
end enabled : MemoPart;
|
|
176
|
+
}
|
|
127
177
|
|
|
128
|
-
connection def HostedBy :>
|
|
178
|
+
connection def HostedBy :> MemoRelationship {
|
|
129
179
|
end processingNode : ArchitectureElement;
|
|
130
180
|
end hostAssembly : ArchitectureElement;
|
|
131
181
|
}
|
|
132
|
-
connection def RealizesComponentExchange :> SemanticLink {
|
|
133
|
-
end physicalLink : ArchitectureElement;
|
|
134
|
-
end componentExchange : ArchitectureElement;
|
|
135
|
-
}
|
|
136
182
|
|
|
137
|
-
connection def HasFailureMode :>
|
|
183
|
+
connection def HasFailureMode :> MemoRelationship {
|
|
138
184
|
end element : ArchitectureElement;
|
|
139
|
-
end failureMode :
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
connection def
|
|
154
|
-
|
|
155
|
-
end
|
|
185
|
+
end failureMode : MemoPart;
|
|
186
|
+
}
|
|
187
|
+
// Causes unifies the former causal edges of the ISO 14971 / FMEA / FTA
|
|
188
|
+
// chains — CausesEffect, CausedBy, ContributesToHazard, LeadsToHazard,
|
|
189
|
+
// OriginatesFrom, UseErrorLeadsToHazard — keyed by causeKind. cause is the
|
|
190
|
+
// originating element, effect the consequence.
|
|
191
|
+
enum def CauseKind {
|
|
192
|
+
enum failureCausesEffect;
|
|
193
|
+
enum failureCausedBy;
|
|
194
|
+
enum contributesToHazard;
|
|
195
|
+
enum leadsToHazard;
|
|
196
|
+
enum originatesFrom;
|
|
197
|
+
enum useErrorLeadsToHazard;
|
|
198
|
+
}
|
|
199
|
+
connection def Causes :> MemoRelationship {
|
|
200
|
+
attribute causeKind : CauseKind;
|
|
201
|
+
end cause : MemoPart;
|
|
202
|
+
end effect : MemoPart;
|
|
203
|
+
}
|
|
204
|
+
connection def DetectedBy :> MemoRelationship {
|
|
205
|
+
end failureMode : MemoPart;
|
|
206
|
+
end detectionMethod : MemoPart;
|
|
156
207
|
}
|
|
157
208
|
|
|
158
|
-
connection def InputToGate :>
|
|
159
|
-
end input :
|
|
160
|
-
end gate :
|
|
161
|
-
}
|
|
162
|
-
connection def ProducesEvent :> SemanticLink {
|
|
163
|
-
end gate : TraceableElement;
|
|
164
|
-
end eventElement : TraceableElement;
|
|
209
|
+
connection def InputToGate :> MemoRelationship {
|
|
210
|
+
end input : MemoPart;
|
|
211
|
+
end gate : MemoPart;
|
|
165
212
|
}
|
|
166
|
-
connection def
|
|
167
|
-
end
|
|
168
|
-
end
|
|
213
|
+
connection def ProducesEvent :> MemoRelationship {
|
|
214
|
+
end gate : MemoPart;
|
|
215
|
+
end eventElement : MemoPart;
|
|
169
216
|
}
|
|
170
|
-
connection def ContainsEvent :>
|
|
171
|
-
end cutSet :
|
|
172
|
-
end eventElement :
|
|
217
|
+
connection def ContainsEvent :> MemoRelationship {
|
|
218
|
+
end cutSet : MemoPart;
|
|
219
|
+
end eventElement : MemoPart;
|
|
173
220
|
}
|
|
174
221
|
|
|
175
|
-
connection def Decides :>
|
|
176
|
-
end decision :
|
|
177
|
-
end affectedElement :
|
|
222
|
+
connection def Decides :> MemoRelationship {
|
|
223
|
+
end decision : MemoPart;
|
|
224
|
+
end affectedElement : MemoPart;
|
|
178
225
|
}
|
|
179
226
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
end
|
|
227
|
+
// Composes is the single whole/part decomposition relation. It unifies the
|
|
228
|
+
// former ComposesLogical / AssemblyComprises / Contains{Component,Element} /
|
|
229
|
+
// {Workflow,Task,Activity,Scenario}Comprises* / FlowComprisesSpec /
|
|
230
|
+
// Collection membership is carried by the end instance.
|
|
231
|
+
// types, so the ends are generic MemoPart.
|
|
232
|
+
connection def Composes :> MemoRelationship {
|
|
233
|
+
end parent : MemoPart;
|
|
234
|
+
end child : MemoPart;
|
|
187
235
|
}
|
|
188
236
|
|
|
189
|
-
connection def
|
|
190
|
-
end
|
|
191
|
-
end hazard :
|
|
192
|
-
}
|
|
193
|
-
connection def LeadsToHazard :> SemanticLink {
|
|
194
|
-
end topEvent : TraceableElement;
|
|
195
|
-
end hazard : TraceableElement;
|
|
196
|
-
}
|
|
197
|
-
connection def IdentifiesHazard :> SemanticLink {
|
|
198
|
-
end deviation : TraceableElement;
|
|
199
|
-
end hazard : TraceableElement;
|
|
237
|
+
connection def IdentifiesHazard :> MemoRelationship {
|
|
238
|
+
end deviation : MemoPart;
|
|
239
|
+
end hazard : MemoPart;
|
|
200
240
|
}
|
|
201
|
-
connection def AnalyzedBy :>
|
|
241
|
+
connection def AnalyzedBy :> MemoRelationship {
|
|
202
242
|
end element : ArchitectureElement;
|
|
203
|
-
end analysisArtifact :
|
|
204
|
-
}
|
|
205
|
-
connection def MitigatedByControl :> SemanticLink {
|
|
206
|
-
end failureMode : TraceableElement;
|
|
207
|
-
end riskControl : VerifiableElement;
|
|
208
|
-
}
|
|
209
|
-
connection def BrokenByControl :> SemanticLink {
|
|
210
|
-
end cutSet : TraceableElement;
|
|
211
|
-
end riskControl : VerifiableElement;
|
|
243
|
+
end analysisArtifact : AnalysisArtifact;
|
|
212
244
|
}
|
|
213
245
|
|
|
214
|
-
connection def Changes :>
|
|
215
|
-
end changeRequest :
|
|
216
|
-
end changedElement :
|
|
246
|
+
connection def Changes :> MemoRelationship {
|
|
247
|
+
end changeRequest : MemoPart;
|
|
248
|
+
end changedElement : MemoPart;
|
|
217
249
|
}
|
|
218
|
-
connection def TestedByUsability :>
|
|
219
|
-
end uiElementOrTask :
|
|
250
|
+
connection def TestedByUsability :> MemoRelationship {
|
|
251
|
+
end uiElementOrTask : MemoPart;
|
|
220
252
|
end usabilityTest : VerifiableElement;
|
|
221
253
|
}
|
|
222
|
-
connection def FeedsBackTo :>
|
|
223
|
-
end feedbackItem :
|
|
224
|
-
end designElement :
|
|
254
|
+
connection def FeedsBackTo :> MemoRelationship {
|
|
255
|
+
end feedbackItem : MemoPart;
|
|
256
|
+
end designElement : MemoPart;
|
|
225
257
|
}
|
|
226
|
-
connection def BindsToInterface :>
|
|
258
|
+
connection def BindsToInterface :> MemoRelationship {
|
|
227
259
|
end portElement : InterfaceElement;
|
|
228
260
|
end boundInterface : InterfaceElement;
|
|
229
261
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Terminology and identification kernel. MEMO stays
|
|
2
|
+
// terminology-neutral: any concept may carry several TerminologyCodes binding
|
|
3
|
+
// it to SNOMED CT, GMDN, EMDN, UDI/GUDID, ISO/IEEE 11073 nomenclature, or a
|
|
4
|
+
// local catalog — never a single ambiguous `code : String`.
|
|
5
|
+
package memo_core_terminology {
|
|
6
|
+
private import ScalarValues::*;
|
|
7
|
+
|
|
8
|
+
// One coding of a concept in one code system. Mirrors the FHIR Coding
|
|
9
|
+
// datatype (system/version/code/display) so FHIR mappings stay lossless.
|
|
10
|
+
attribute def TerminologyCode {
|
|
11
|
+
attribute systemUri : String;
|
|
12
|
+
attribute code : String;
|
|
13
|
+
attribute display : String;
|
|
14
|
+
attribute codeSystemVersion : String;
|
|
15
|
+
attribute designation : String;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// A device-identity carrier per IMDRF UDI guidance: the DI portion
|
|
19
|
+
// belongs to the device definition, PI portions to the instance.
|
|
20
|
+
attribute def UdiCarrier {
|
|
21
|
+
attribute issuingAgency : String;
|
|
22
|
+
attribute deviceIdentifier : String;
|
|
23
|
+
attribute carrierHRF : String;
|
|
24
|
+
attribute carrierAIDC : String;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// A reference into an external registry or document (regulatory listing,
|
|
28
|
+
// standard clause, catalog page) with enough context to resolve it.
|
|
29
|
+
attribute def ExternalReference {
|
|
30
|
+
attribute referenceKind : String;
|
|
31
|
+
attribute identifier : String;
|
|
32
|
+
attribute uri : String;
|
|
33
|
+
attribute section : String;
|
|
34
|
+
}
|
|
35
|
+
}
|