@memoarchitect/ontology 0.7.0 → 0.8.24
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 +4 -2
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/memo.package.yaml +3 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
- package/examples/gpca-pump/model/catalog/project.sysml +5 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/memo.package.yaml +3 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
- package/examples/surgical-robot/memo.package.yaml +3 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
- package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
- package/examples/ui-screen-regions/memo.package.yaml +3 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +13 -2
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +23 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -36
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
- package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
- package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
- package/src/architecture/operational/activities/memo_activities.sysml +27 -29
- package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
- package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
- package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
- package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
- package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
- package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
- package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
- package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
- package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
- package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +7 -20
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +90 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +25 -6
- package/src/core/common/memo_common.sysml +130 -21
- package/src/core/consistency_rules/consistency_rules.sysml +1 -1
- package/src/core/dimensions/dimensions.sysml +12 -0
- package/src/core/enumerations/memo_enumerations.sysml +60 -14
- package/src/core/relationships/memo_relationships.sysml +199 -196
- package/src/memo_namespaces.sysml +30 -0
- package/src/methodology/core/memo_core.sysml +24 -0
- package/src/methodology/profiles/memo_profiles.sysml +1 -1
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +20 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/ontology/ontology_invariants.sysml +223 -11
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/default/memo.package.yaml +2 -0
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/samd/memo.package.yaml +2 -0
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
// MEMO base hierarchy. Construct-specific foundations: one base per
|
|
2
|
-
// SysML v2 metaclass family (part, action, port, interface, item,
|
|
3
|
-
// connection), each carrying
|
|
2
|
+
// SysML v2 metaclass family (part, action, port, interface, item, use case,
|
|
3
|
+
// requirement, constraint, verification, state, connection), each carrying
|
|
4
|
+
// the shared MEMO semantics. Common inheritance
|
|
4
5
|
// across metaclasses is not portable, so non-part bases re-declare the small
|
|
5
6
|
// identification core and share classification through the metadata defs in
|
|
6
7
|
// memo_core_dimensions.
|
|
8
|
+
//
|
|
9
|
+
// ─── The identification core ────────────────────────────────────────────
|
|
10
|
+
// Every MEMO base below declares the SAME attributes, in the same order,
|
|
11
|
+
// with no exceptions:
|
|
12
|
+
//
|
|
13
|
+
// id, uuid, name, shortDescription, description,
|
|
14
|
+
// rationale, sourceReference, status
|
|
15
|
+
//
|
|
16
|
+
// They are re-declared per metaclass only because KerML will not let an
|
|
17
|
+
// action, port, item, requirement, or connection inherit from a part def.
|
|
18
|
+
// The duplication is a language constraint, not a design choice — so treat
|
|
19
|
+
// the block as one unit: anything added or removed here is added or removed
|
|
20
|
+
// in all of them. The drift this replaces was real (MemoPort carried no
|
|
21
|
+
// sourceReference and no status; MemoRequirement and MemoNeed each invented
|
|
22
|
+
// their own status attribute), and drift here shows up as an element whose
|
|
23
|
+
// properties panel is missing fields its neighbours have.
|
|
24
|
+
//
|
|
25
|
+
// `uuid` is the stable technical identity: never displayed, never used as a
|
|
26
|
+
// label, never reused. Authors normally leave it unset and let the compiler
|
|
27
|
+
// derive it (memo-tools assigns a v5 UUID over file+kind+id); set it
|
|
28
|
+
// explicitly on an element whose file or id must be free to change without
|
|
29
|
+
// breaking external references to it, and the authored value wins.
|
|
7
30
|
package memo_core_common {
|
|
8
31
|
private import ScalarValues::*;
|
|
9
32
|
|
|
@@ -26,6 +49,7 @@ package memo_core_common {
|
|
|
26
49
|
abstract part def MemoPart {
|
|
27
50
|
// identity
|
|
28
51
|
attribute id : String;
|
|
52
|
+
attribute uuid : String;
|
|
29
53
|
attribute name : String;
|
|
30
54
|
// Two description registers on every MEMO element, because views have
|
|
31
55
|
// two densities. `shortDescription` is the one-line form a table cell,
|
|
@@ -54,19 +78,44 @@ package memo_core_common {
|
|
|
54
78
|
// MemoPart so all existing content inherits the dimensions. ───
|
|
55
79
|
part def RequirementDriver specializes MemoPart;
|
|
56
80
|
abstract part def VerifiableElement specializes MemoPart;
|
|
57
|
-
abstract part def ArchitectureElement specializes MemoPart;
|
|
58
81
|
part def InterfaceElement specializes MemoPart;
|
|
59
|
-
|
|
82
|
+
enum def EvidenceKind { enum testArtifact; enum evidence; enum formativeEvaluation; enum usabilityValidation; enum securityClaim; }
|
|
83
|
+
part def MemoEvidence specializes MemoPart {
|
|
84
|
+
attribute evidenceKind : EvidenceKind;
|
|
85
|
+
attribute version : String;
|
|
86
|
+
attribute artifactKind : ArtifactKind[0..1];
|
|
87
|
+
attribute resultSummary : String;
|
|
88
|
+
attribute evidenceType : String;
|
|
89
|
+
attribute integrityStatus : String;
|
|
90
|
+
// Promoted from the retired `UsabilityValidation` and
|
|
91
|
+
// `FormativeEvaluation` specializations. The collapse in `02083c5`
|
|
92
|
+
// deleted both subclasses without carrying their fields up, so an
|
|
93
|
+
// IEC 62366-1 evaluation record lost what it actually reports.
|
|
94
|
+
// Promoted on the standard's terms, not on in-tree usage: MEMO is a
|
|
95
|
+
// library, so what its own examples happen to set says nothing about
|
|
96
|
+
// what an adopter's usability file needs.
|
|
97
|
+
attribute participantProfile : String;
|
|
98
|
+
attribute participantCount : Integer;
|
|
99
|
+
attribute acceptanceCriteria : String;
|
|
100
|
+
attribute evaluationMethod : String;
|
|
101
|
+
attribute findingsSummary : String;
|
|
102
|
+
attribute designChangesTriggered : String;
|
|
103
|
+
}
|
|
60
104
|
abstract part def AnalysisArtifact specializes MemoPart;
|
|
61
105
|
|
|
62
106
|
// Document-bound elements add only what a document needs beyond the two
|
|
63
107
|
// description registers every MemoPart now carries: a title and its place
|
|
64
108
|
// in a document. The former `shortDescription`/`longDescription` pair is
|
|
65
109
|
// gone — short is inherited, and `description` IS the long form.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
110
|
+
// Top-level goal a system or operation exists to fulfil, with its success
|
|
111
|
+
// criteria and context. Domain layers specialize it; the medical-device
|
|
112
|
+
// intended use (memo_architecture_operational_structure::IntendedUse) is a
|
|
113
|
+
// MemoMission. Specializes MemoPart directly — name/description/rationale
|
|
114
|
+
// already live there, so no DocumentedElement layer is needed.
|
|
115
|
+
abstract part def MemoMission specializes MemoPart {
|
|
116
|
+
attribute missionKind : String;
|
|
117
|
+
attribute successCriteria : String;
|
|
118
|
+
attribute operationalContext : String;
|
|
70
119
|
}
|
|
71
120
|
|
|
72
121
|
// ─── Construct-specific foundations (non-part metaclasses) ───────
|
|
@@ -75,6 +124,7 @@ package memo_core_common {
|
|
|
75
124
|
// and interaction steps specialize MemoAction.
|
|
76
125
|
action def MemoAction {
|
|
77
126
|
attribute id : String;
|
|
127
|
+
attribute uuid : String;
|
|
78
128
|
attribute name : String;
|
|
79
129
|
attribute shortDescription : String;
|
|
80
130
|
attribute description : String;
|
|
@@ -86,9 +136,13 @@ package memo_core_common {
|
|
|
86
136
|
// Boundary feature foundation for typed ports.
|
|
87
137
|
port def MemoPort {
|
|
88
138
|
attribute id : String;
|
|
139
|
+
attribute uuid : String;
|
|
89
140
|
attribute name : String;
|
|
90
141
|
attribute shortDescription : String;
|
|
91
142
|
attribute description : String;
|
|
143
|
+
attribute rationale : String;
|
|
144
|
+
attribute sourceReference : String;
|
|
145
|
+
attribute status : ElementStatusKind;
|
|
92
146
|
}
|
|
93
147
|
|
|
94
148
|
// Interaction-contract foundation for interface definitions between ports.
|
|
@@ -96,6 +150,7 @@ package memo_core_common {
|
|
|
96
150
|
end source;
|
|
97
151
|
end target;
|
|
98
152
|
attribute id : String;
|
|
153
|
+
attribute uuid : String;
|
|
99
154
|
attribute name : String;
|
|
100
155
|
attribute shortDescription : String;
|
|
101
156
|
attribute description : String;
|
|
@@ -103,15 +158,25 @@ package memo_core_common {
|
|
|
103
158
|
attribute sourceReference : String;
|
|
104
159
|
}
|
|
105
160
|
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
|
|
161
|
+
// Single item foundation. Standards, hazards, stored software data, and
|
|
162
|
+
// message payloads are all item-native concepts. Whether an item is
|
|
163
|
+
// exchanged is expressed by its use in a port or flow, not by a second
|
|
164
|
+
// ontology root.
|
|
165
|
+
abstract item def MemoItem {
|
|
109
166
|
attribute id : String;
|
|
167
|
+
attribute uuid : String;
|
|
110
168
|
attribute name : String;
|
|
111
169
|
attribute shortDescription : String;
|
|
112
170
|
attribute description : String;
|
|
113
171
|
attribute rationale : String;
|
|
114
172
|
attribute sourceReference : String;
|
|
173
|
+
attribute status : ElementStatusKind;
|
|
174
|
+
// What the item CARRIES, as distinct from what it is called. Removed
|
|
175
|
+
// by `595bfac` while modelling native wrappers; nothing replaced them,
|
|
176
|
+
// and every exchange item in the examples went on setting them. A
|
|
177
|
+
// measured value without its unit, its range, or its terminology code
|
|
178
|
+
// is not a regulated data item — an IVD result is "5.5 mg/dL, LOINC
|
|
179
|
+
// 2345-7", not "5.5".
|
|
115
180
|
attribute semantics : String;
|
|
116
181
|
attribute unit : String;
|
|
117
182
|
attribute minValue : String;
|
|
@@ -121,25 +186,58 @@ package memo_core_common {
|
|
|
121
186
|
attribute codes : TerminologyCode[0..*];
|
|
122
187
|
}
|
|
123
188
|
|
|
189
|
+
// Use-case foundation. The domain UseCase adds its goal and actor
|
|
190
|
+
// references; identity is carried here so use cases do not maintain a
|
|
191
|
+
// partial hand-written copy of the MEMO identification core.
|
|
192
|
+
abstract use case def MemoUseCase {
|
|
193
|
+
attribute id : String;
|
|
194
|
+
attribute uuid : String;
|
|
195
|
+
attribute name : String;
|
|
196
|
+
attribute shortDescription : String;
|
|
197
|
+
attribute description : String;
|
|
198
|
+
attribute rationale : String;
|
|
199
|
+
attribute sourceReference : String;
|
|
200
|
+
attribute status : ElementStatusKind;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// General constraint foundation. Executable consistency rules and
|
|
204
|
+
// reusable quantitative constraints are both native constraint defs.
|
|
205
|
+
abstract constraint def MemoConstraint {
|
|
206
|
+
attribute id : String;
|
|
207
|
+
attribute uuid : String;
|
|
208
|
+
attribute name : String;
|
|
209
|
+
attribute shortDescription : String;
|
|
210
|
+
attribute description : String;
|
|
211
|
+
attribute rationale : String;
|
|
212
|
+
attribute sourceReference : String;
|
|
213
|
+
attribute status : ElementStatusKind;
|
|
214
|
+
}
|
|
215
|
+
|
|
124
216
|
// Requirement-family foundations. MemoNeed captures a problem-space
|
|
125
217
|
// expectation in stakeholder language; MemoRequirement a testable
|
|
126
218
|
// solution-space obligation.
|
|
127
|
-
requirement
|
|
128
|
-
|
|
219
|
+
// Shared base of the requirement family. It exists so a relation end can
|
|
220
|
+
// say "a need or a requirement" with one type name — before it, every end
|
|
221
|
+
// that had to accept both was left untyped.
|
|
222
|
+
abstract requirement def MemoRequirementElement {
|
|
223
|
+
attribute id : String;
|
|
224
|
+
attribute uuid : String;
|
|
225
|
+
attribute name : String;
|
|
129
226
|
attribute shortDescription : String;
|
|
227
|
+
attribute description : String;
|
|
228
|
+
attribute rationale : String;
|
|
229
|
+
attribute sourceReference : String;
|
|
230
|
+
attribute status : ElementStatusKind;
|
|
130
231
|
attribute statement : String;
|
|
131
|
-
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
requirement def MemoNeed :> MemoRequirementElement {
|
|
132
235
|
attribute needSource : String;
|
|
133
236
|
attribute priority : String;
|
|
134
|
-
attribute needStatus : ElementStatusKind;
|
|
135
237
|
}
|
|
136
238
|
|
|
137
|
-
requirement def MemoRequirement {
|
|
138
|
-
attribute requirementId : String;
|
|
139
|
-
attribute shortDescription : String;
|
|
140
|
-
attribute statement : String;
|
|
239
|
+
requirement def MemoRequirement :> MemoRequirementElement {
|
|
141
240
|
attribute acceptanceCriteria : String;
|
|
142
|
-
attribute requirementStatus : ElementStatusKind;
|
|
143
241
|
}
|
|
144
242
|
|
|
145
243
|
// Verification-case foundation. A SysML v2 verification case is a behaviour
|
|
@@ -148,11 +246,13 @@ package memo_core_common {
|
|
|
148
246
|
// identification core rather than inheriting it.
|
|
149
247
|
verification def MemoVerificationCase {
|
|
150
248
|
attribute id : String;
|
|
249
|
+
attribute uuid : String;
|
|
151
250
|
attribute name : String;
|
|
152
251
|
attribute shortDescription : String;
|
|
153
252
|
attribute description : String;
|
|
154
253
|
attribute rationale : String;
|
|
155
254
|
attribute sourceReference : String;
|
|
255
|
+
attribute status : ElementStatusKind;
|
|
156
256
|
}
|
|
157
257
|
|
|
158
258
|
// State foundation. SysML v2 states (state machines and their mode states)
|
|
@@ -160,13 +260,22 @@ package memo_core_common {
|
|
|
160
260
|
// re-declare the identification core instead of specializing MemoPart
|
|
161
261
|
// Transitions stay part-based to keep their traceable safety
|
|
162
262
|
// attributes (id, sourceReference, priority, sameStepCritical).
|
|
163
|
-
|
|
263
|
+
enum def StateKind { enum mode; enum logical; }
|
|
264
|
+
|
|
265
|
+
state def MemoState {
|
|
266
|
+
attribute stateKind : StateKind;
|
|
164
267
|
attribute id : String;
|
|
268
|
+
attribute uuid : String;
|
|
165
269
|
attribute name : String;
|
|
166
270
|
attribute shortDescription : String;
|
|
167
271
|
attribute description : String;
|
|
168
272
|
attribute rationale : String;
|
|
169
273
|
attribute sourceReference : String;
|
|
274
|
+
attribute status : ElementStatusKind;
|
|
275
|
+
attribute modeKind : String;
|
|
276
|
+
attribute entryCondition : String;
|
|
277
|
+
attribute exitCondition : String;
|
|
278
|
+
attribute modePurpose : String;
|
|
170
279
|
}
|
|
171
280
|
|
|
172
281
|
part def Citation specializes MemoPart {
|
|
@@ -11,7 +11,7 @@ package memo_core_consistency_rules {
|
|
|
11
11
|
// here would be shadowed by every rule that sets it. Its job is to give
|
|
12
12
|
// RulePolicy a type to reference, so a policy names a rule the way SysML
|
|
13
13
|
// names anything else rather than through a parallel string-ID namespace.
|
|
14
|
-
abstract constraint def MemoConsistencyRule;
|
|
14
|
+
abstract constraint def MemoConsistencyRule :> MemoConstraint;
|
|
15
15
|
|
|
16
16
|
part def ConsistencyRule specializes MemoPart {
|
|
17
17
|
attribute appliesTo : String;
|
|
@@ -39,7 +39,19 @@ package memo_core_dimensions {
|
|
|
39
39
|
|
|
40
40
|
// Editorial status of the model element itself (distinct from the
|
|
41
41
|
// lifecycle of the thing the element describes).
|
|
42
|
+
// This is the ONE status vocabulary in MEMO: every element carries
|
|
43
|
+
// `status : ElementStatusKind`, whatever its metaclass. The former
|
|
44
|
+
// per-family variants (RequirementStatusKind, LinkStatusKind,
|
|
45
|
+
// MemoNeed::needStatus) are gone — three overlapping status dropdowns on
|
|
46
|
+
// one element was cognitive load, not precision.
|
|
47
|
+
//
|
|
48
|
+
// The V&V states the requirement variant carried (implemented, verified,
|
|
49
|
+
// validated) are deliberately NOT here: they are facts about links, not
|
|
50
|
+
// editorial states. An element is implemented when a Realizes link exists,
|
|
51
|
+
// verified when VerifiedBy does, validated when Validates does. Duplicating
|
|
52
|
+
// them as an attribute lets the attribute disagree with the graph.
|
|
42
53
|
enum def ElementStatusKind {
|
|
54
|
+
enum proposed;
|
|
43
55
|
enum draft;
|
|
44
56
|
enum inReview;
|
|
45
57
|
enum approved;
|
|
@@ -27,14 +27,6 @@ package memo_core_enumerations {
|
|
|
27
27
|
enum medium;
|
|
28
28
|
enum low;
|
|
29
29
|
}
|
|
30
|
-
enum def RequirementStatusKind {
|
|
31
|
-
enum draft;
|
|
32
|
-
enum approved;
|
|
33
|
-
enum implemented;
|
|
34
|
-
enum verified;
|
|
35
|
-
enum validated;
|
|
36
|
-
enum retired;
|
|
37
|
-
}
|
|
38
30
|
enum def RequirementNotationKind {
|
|
39
31
|
enum freeText;
|
|
40
32
|
enum ears;
|
|
@@ -68,6 +60,31 @@ package memo_core_enumerations {
|
|
|
68
60
|
enum mechanical;
|
|
69
61
|
enum fluidic;
|
|
70
62
|
}
|
|
63
|
+
// AADL (SAE AS5506) port category. Distinct from InterfaceKind, which says
|
|
64
|
+
// WHAT crosses a port; this says HOW it is delivered, and the difference is
|
|
65
|
+
// safety-relevant: when a deadline is missed a `data` port overwrites the
|
|
66
|
+
// last sample and loses it, while an `event` or `eventData` port queues,
|
|
67
|
+
// and a queue that outgrows its bound is a different failure with a
|
|
68
|
+
// different mitigation. MEMO carried the distinction on items and not on
|
|
69
|
+
// ports, so neither failure could be argued about at the boundary where it
|
|
70
|
+
// happens.
|
|
71
|
+
enum def PortCategoryKind {
|
|
72
|
+
doc /* Sampled. The reader sees the most recent value; a missed
|
|
73
|
+
* deadline drops a sample and never blocks. */
|
|
74
|
+
enum data;
|
|
75
|
+
doc /* Queued signal with no payload. A missed deadline grows the
|
|
76
|
+
* queue; overflow is the failure to bound.
|
|
77
|
+
*
|
|
78
|
+
* Quoted because `event` is reserved in SysML v2 — the same
|
|
79
|
+
* treatment GovernKind's `'use'` already gets. AADL's word is kept
|
|
80
|
+
* rather than paraphrased to `queued`: it is the term the standard
|
|
81
|
+
* and every AADL tool use, and a renamed one would not survive a
|
|
82
|
+
* round trip. */
|
|
83
|
+
enum 'event';
|
|
84
|
+
doc /* Queued signal carrying a payload — the queueing semantics of
|
|
85
|
+
* `event` with the value of `data`. */
|
|
86
|
+
enum eventData;
|
|
87
|
+
}
|
|
71
88
|
enum def FlowKind {
|
|
72
89
|
enum information;
|
|
73
90
|
enum command;
|
|
@@ -79,6 +96,22 @@ package memo_core_enumerations {
|
|
|
79
96
|
enum audit;
|
|
80
97
|
enum power;
|
|
81
98
|
}
|
|
99
|
+
// Direction of a flow across a boundary.
|
|
100
|
+
//
|
|
101
|
+
// Track A2 removed this from PORTS: a port usage says `in` / `out` /
|
|
102
|
+
// `inout` natively, which is the language's own spelling and the only one
|
|
103
|
+
// a conforming tool reads. The enum survives because four non-port
|
|
104
|
+
// constructs still carry a direction and none of them is a port, so none
|
|
105
|
+
// of them can use the keyword:
|
|
106
|
+
//
|
|
107
|
+
// Interface.direction / .directionality (interface def)
|
|
108
|
+
// LogicalConnector.direction (connection def)
|
|
109
|
+
// LogicalExchange.direction (part def)
|
|
110
|
+
// ComponentExchange.direction (part def)
|
|
111
|
+
// OperationalInteraction.direction (part def)
|
|
112
|
+
//
|
|
113
|
+
// Deleting it would have cost those five their direction; the reinvention
|
|
114
|
+
// was only ever the port case.
|
|
82
115
|
enum def DirectionKind {
|
|
83
116
|
enum input;
|
|
84
117
|
enum output;
|
|
@@ -118,6 +151,25 @@ package memo_core_enumerations {
|
|
|
118
151
|
enum formalProof;
|
|
119
152
|
enum modelChecking;
|
|
120
153
|
}
|
|
154
|
+
// The submission regime a project targets, and the regimes a standard has
|
|
155
|
+
// standing in. This is the axis that decides which clauses a project is
|
|
156
|
+
// required to claim: `required(project)` is the clauses of every standard
|
|
157
|
+
// whose `appliesToRegime` intersects the regimes the project's
|
|
158
|
+
// ProjectMethodBinding declares.
|
|
159
|
+
//
|
|
160
|
+
// The members are spelled as the regulatory designations themselves rather
|
|
161
|
+
// than in the lowerCamel convention the rest of this file uses. All 44 DHF
|
|
162
|
+
// templates already carry these exact strings in `required_for`, and any
|
|
163
|
+
// transformation between the enum and those arrays would be a hardcoded
|
|
164
|
+
// spelling map in TypeScript — the one thing the standards axis exists to
|
|
165
|
+
// avoid. One vocabulary, one spelling, declared here.
|
|
166
|
+
enum def RegulatoryRegimeKind {
|
|
167
|
+
enum CE;
|
|
168
|
+
enum MDR;
|
|
169
|
+
enum UKCA;
|
|
170
|
+
enum FDA_510k;
|
|
171
|
+
enum FDA_PMA;
|
|
172
|
+
}
|
|
121
173
|
enum def ArtifactKind {
|
|
122
174
|
enum plan;
|
|
123
175
|
enum requirementSpecification;
|
|
@@ -205,12 +257,6 @@ package memo_core_enumerations {
|
|
|
205
257
|
enum deadlineMonotonic;
|
|
206
258
|
enum EDF;
|
|
207
259
|
}
|
|
208
|
-
enum def LinkStatusKind {
|
|
209
|
-
enum planned;
|
|
210
|
-
enum active;
|
|
211
|
-
enum verified;
|
|
212
|
-
enum obsolete;
|
|
213
|
-
}
|
|
214
260
|
enum def BehaviorPropertyKind {
|
|
215
261
|
enum stateInvariant;
|
|
216
262
|
enum transitionRule;
|