@memoarchitect/ontology 0.6.5 → 0.8.22
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/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
- package/examples/gpca-pump/model/catalog/project.sysml +26 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/ros-mobile-robot/README.md +40 -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 +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- 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/clinical/memo.package.yaml +18 -0
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -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/memo.package.yaml +17 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +15 -2
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +6 -6
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +28 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -43
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
- package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
- package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
- package/src/architecture/operational/activities/memo_activities.sysml +10 -4
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- 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/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
- package/src/{compliance/dhf-templates → 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 +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- 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 +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +96 -0
- package/src/core/common/memo_common.sysml +140 -18
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +17 -1
- package/src/core/enumerations/memo_enumerations.sysml +101 -20
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +199 -194
- package/src/memo_namespaces.sysml +127 -67
- package/src/methodology/core/memo_core.sysml +69 -2
- package/src/methodology/profiles/memo_profiles.sysml +31 -41
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +243 -74
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +4 -2
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/clinical/memo.package.yaml +0 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
- package/examples/extensions/template/memo.package.yaml +0 -9
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
- package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
- package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
- package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/change/memo_change.sysml +0 -17
- package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
- package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
package memo_core_relationships {
|
|
2
|
+
private import Metaobjects::SemanticMetadata;
|
|
2
3
|
private import ScalarValues::*;
|
|
3
4
|
|
|
5
|
+
private import Connections::BinaryConnection;
|
|
6
|
+
|
|
4
7
|
private import memo_core_common::*;
|
|
5
8
|
private import memo_core_enumerations::*;
|
|
6
9
|
|
|
@@ -8,13 +11,52 @@ package memo_core_relationships {
|
|
|
8
11
|
// Connection/Association), specializing the MemoRelationship base. The
|
|
9
12
|
// relationship name is the verb; the RelationshipRegistry derives the
|
|
10
13
|
// navigable type as camelCase(name) and navigation is bidirectional.
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
//
|
|
15
|
+
// MemoRelationship roots on the SysML v2 standard library's
|
|
16
|
+
// Connections::BinaryConnection rather than floating free. Every two-ended
|
|
17
|
+
// `connection def` implicitly specializes it anyway; saying so explicitly
|
|
18
|
+
// is what lets MEMO relations be read as ordinary SysML connections by any
|
|
19
|
+
// conforming tool instead of as a MEMO-private construct.
|
|
20
|
+
//
|
|
21
|
+
// A relation is a MEMO element like any other, so it carries the same
|
|
22
|
+
// identification core as the part/action/item/requirement bases in
|
|
23
|
+
// memo_core_common — with four exceptions, R10-S5 (2026-08-13). `name`,
|
|
24
|
+
// `description`, `rationale` and `status` were declared here too, and a
|
|
25
|
+
// tree measurement found them dead weight: across every connection usage
|
|
26
|
+
// in src/ and examples/ (876 of them, 77 with a body at all), exactly one
|
|
27
|
+
// ever set `rationale` and none ever set `name`, `description` or
|
|
28
|
+
// `status`. The former `linkStatus` (planned/active/verified/obsolete) is
|
|
29
|
+
// already gone for the same reason: a link being "verified" was never an
|
|
30
|
+
// editorial state.
|
|
31
|
+
//
|
|
32
|
+
// The replacement is native, not a MEMO-authored substitute:
|
|
33
|
+
// - `name` → the connection usage's own declared name
|
|
34
|
+
// (`connection linkFoo : Bar …`), which every usage already has.
|
|
35
|
+
// - `description` → `doc /* … */` on the usage.
|
|
36
|
+
// - `rationale` → standard `Rationale` metadata: `@Rationale { :>> text
|
|
37
|
+
// = "…"; }` (ModelingMetadata.sysml:95). `text` is exported into
|
|
38
|
+
// `rel.attributes.rationale` by the builder, same key as before.
|
|
39
|
+
// - `status` → standard `StatusInfo` metadata: `@StatusInfo { :>>
|
|
40
|
+
// status = StatusKind::…; }` (ModelingMetadata.sysml:60). StatusKind
|
|
41
|
+
// (open/tbd/tbr/tbc/done/closed) is NOT ElementStatusKind
|
|
42
|
+
// (proposed/draft/inReview/approved/released/deprecated/retired) — the
|
|
43
|
+
// mapping between them, and why no MEMO-side conversion code exists, is
|
|
44
|
+
// recorded in docs/reference/naming-and-native-constructs.md. Exported
|
|
45
|
+
// into `rel.attributes.status`.
|
|
46
|
+
// Both metadata defs live in the standard `ModelingMetadata` package;
|
|
47
|
+
// `private import ModelingMetadata::*;` wherever they are applied.
|
|
48
|
+
//
|
|
49
|
+
// isReflexive/isUnique are structural properties of the relation itself,
|
|
50
|
+
// declared here so authoring and validation read them from the ontology
|
|
51
|
+
// instead of assuming them. Both are unset on the base and carry the
|
|
52
|
+
// conservative reading: a relation forbids self-links and forbids repeats
|
|
53
|
+
// unless it says otherwise. A subtype opts out by redefining, e.g.
|
|
54
|
+
// `attribute :>> isReflexive = true;`.
|
|
55
|
+
abstract connection def MemoRelationship :> Connections::BinaryConnection {
|
|
56
|
+
attribute id : String;
|
|
57
|
+
attribute uuid : String;
|
|
58
|
+
attribute shortDescription : String;
|
|
59
|
+
attribute sourceReference : String;
|
|
18
60
|
doc /* True when an element may be related to itself by this relation.
|
|
19
61
|
* Unset is read as false. */
|
|
20
62
|
attribute isReflexive : Boolean;
|
|
@@ -24,209 +66,170 @@ package memo_core_relationships {
|
|
|
24
66
|
attribute isUnique : Boolean;
|
|
25
67
|
}
|
|
26
68
|
|
|
69
|
+
// ─── Metaclass-neutral ends (Track A0) ──────────────────────────────
|
|
70
|
+
//
|
|
71
|
+
// An end is left UNTYPED (`:>> source` / `:>> target`) wherever its
|
|
72
|
+
// legitimate endpoints do not share a MEMO base, and a rule in
|
|
73
|
+
// memo_rules_ontology states the constraint the type used to state.
|
|
74
|
+
//
|
|
75
|
+
// The reason is structural, not stylistic. KerML will not let a port or a
|
|
76
|
+
// behaviour specialize a part-based type, so a `MemoPart`-typed end forces
|
|
77
|
+
// everything it accepts to be a part. That is what made PhysicalPort and
|
|
78
|
+
// SoftwarePort part defs (so they could terminate exchanges), what made
|
|
79
|
+
// SystemFunction a part def with its behaviour stapled on through a
|
|
80
|
+
// separate action def, and what makes `allocate <function> to <actor>` —
|
|
81
|
+
// ARCADIA's own System Analysis mechanism — illegal, since Actor is a
|
|
82
|
+
// MemoPart but not an ArchitectureElement.
|
|
83
|
+
//
|
|
84
|
+
// Several of the relaxed ends were ALREADY being violated by real content
|
|
85
|
+
// before they were relaxed: `composes` links parts to WorkflowStep and
|
|
86
|
+
// OperationalActivity (action defs) and to SoftwarePort/PhysicalPort;
|
|
87
|
+
// `precedes` links OperationalActivity to OperationalActivity; `allocatedTo`
|
|
88
|
+
// has ActionUsage sources; `bindsToInterface` targets an `interface def`,
|
|
89
|
+
// which an InterfaceElement-typed end cannot hold. The types were not
|
|
90
|
+
// buying the strictness they appeared to buy.
|
|
91
|
+
//
|
|
92
|
+
// What is NOT relaxed stays typed on purpose: `verificationCase` and
|
|
93
|
+
// `validationCase` are verification defs, `performed` and `enabled` are
|
|
94
|
+
// MemoActions, `targetRequirement` is a MemoRequirementElement. Those ends
|
|
95
|
+
// name one metaclass and mean it.
|
|
96
|
+
//
|
|
97
|
+
// The strictness did not evaporate — see CR-ONT-060..CR-ONT-071 in
|
|
98
|
+
// src/rules/ontology/ontology_invariants.sysml. Relaxing the ends without
|
|
99
|
+
// those rules would have been a silent loss of every constraint the ends
|
|
100
|
+
// were carrying.
|
|
101
|
+
//
|
|
27
102
|
// The general relation that can join any two model elements, whatever
|
|
28
|
-
// their metaclass.
|
|
29
|
-
//
|
|
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.
|
|
103
|
+
// their metaclass. MemoLink leaves both ends untyped and adds no
|
|
104
|
+
// domain-specific semantics, which is what makes it universal.
|
|
34
105
|
//
|
|
35
106
|
// 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
|
-
//
|
|
38
|
-
// not a model fact.
|
|
107
|
+
// only when no specific relation carries the meaning, and say why in the
|
|
108
|
+
// inherited `rationale` — an untyped link with no stated reason is an
|
|
109
|
+
// audit gap, not a model fact.
|
|
39
110
|
connection def MemoLink :> MemoRelationship {
|
|
40
111
|
doc /* Generic association between any two model elements. */
|
|
41
|
-
|
|
42
|
-
end
|
|
43
|
-
|
|
112
|
+
end linkSource :>> source;
|
|
113
|
+
end linkTarget :>> target;
|
|
114
|
+
}
|
|
115
|
+
abstract connection memoLinkLinks : MemoLink[*];
|
|
116
|
+
metadata def <memoLink> MemoLinkMetadata :> SemanticMetadata {
|
|
117
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
118
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
119
|
+
:>> baseType = memoLinkLinks meta SysML::Usage;
|
|
44
120
|
}
|
|
45
121
|
|
|
46
122
|
connection def DerivesFrom :> MemoRelationship {
|
|
47
|
-
// Drivers
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
end sourceDriver
|
|
52
|
-
end targetRequirement;
|
|
53
|
-
}
|
|
54
|
-
connection
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
enum vulnerability;
|
|
67
|
-
enum failureMode;
|
|
68
|
-
enum cutSet;
|
|
69
|
-
enum fmeaAction;
|
|
70
|
-
}
|
|
71
|
-
connection def Mitigates :> MemoRelationship {
|
|
72
|
-
attribute mitigationKind : MitigationKind;
|
|
73
|
-
// Untyped: controls/hazards may be item defs (RiskControlMeasure, Hazard, …).
|
|
74
|
-
end control;
|
|
75
|
-
end mitigatedElement;
|
|
76
|
-
}
|
|
77
|
-
connection def AllocatedTo :> MemoRelationship {
|
|
78
|
-
end function : ArchitectureElement;
|
|
79
|
-
end allocatedElement : ArchitectureElement;
|
|
80
|
-
}
|
|
81
|
-
// Realizes is the single realization relation (realizing/concrete element →
|
|
82
|
-
// realized/abstract element). It unifies RealizesInterface,
|
|
83
|
-
// RealizesComponentExchange, RealizedByArchitecture, RealizesScenario,
|
|
84
|
-
// ModuleRealizesLogical, ComponentRealizesModule, PhysicalModuleRealizesLogical,
|
|
123
|
+
// Drivers span metaclasses — a need is a requirement def, a hazard an
|
|
124
|
+
// item, a threat an item — so the source end stays untyped. The target
|
|
125
|
+
// is now typed: since Requirement re-rooted onto MemoRequirement, one
|
|
126
|
+
// type name covers the whole requirement family.
|
|
127
|
+
end sourceDriver :>> source;
|
|
128
|
+
end targetRequirement : MemoRequirementElement :>> target;
|
|
129
|
+
}
|
|
130
|
+
abstract connection derivesFromLinks : DerivesFrom[*];
|
|
131
|
+
metadata def <derivesFrom> DerivesFromMetadata :> SemanticMetadata {
|
|
132
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
133
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
134
|
+
:>> baseType = derivesFromLinks meta SysML::Usage;
|
|
135
|
+
}
|
|
136
|
+
// `Realizes` (realizing/concrete element → realized/abstract element) is
|
|
137
|
+
// native `#refinement dependency` (R10-S6): write
|
|
138
|
+
// `#refinement dependency <realizing> to <realized>;` instead. It used to
|
|
139
|
+
// unify RealizesInterface, RealizesComponentExchange,
|
|
140
|
+
// RealizedByArchitecture, RealizesScenario, ModuleRealizesLogical,
|
|
141
|
+
// ComponentRealizesModule, PhysicalModuleRealizesLogical,
|
|
85
142
|
// Implements{Component,Procedure}, UIRealizesFunctional,
|
|
86
|
-
// FunctionalRealizesOper{ative,ational} and ScenarioRealizesUseCase
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
end realized : MemoPart;
|
|
90
|
-
}
|
|
91
|
-
connection def VerifiedBy :> MemoRelationship {
|
|
92
|
-
// Requirements, risk controls, and architecture components are
|
|
93
|
-
// all legitimate verification targets
|
|
94
|
-
end verificationTarget : MemoPart;
|
|
95
|
-
end verificationCase : MemoVerificationCase;
|
|
96
|
-
}
|
|
143
|
+
// FunctionalRealizesOper{ative,ational} and ScenarioRealizesUseCase; the
|
|
144
|
+
// native form keeps that reach, since `#refinement` places no metaclass
|
|
145
|
+
// restriction on either end.
|
|
97
146
|
connection def ProducesEvidence :> MemoRelationship {
|
|
98
|
-
end producer : MemoVerificationCase;
|
|
99
|
-
end producedEvidence : MemoEvidence;
|
|
100
|
-
}
|
|
101
|
-
connection
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
connection def ResolvesToMethodology :> MemoRelationship {
|
|
112
|
-
end boundModelElement : MemoPart;
|
|
113
|
-
end resolvedMethodology : MemoPart;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// ISO 14971 risk chain — distinct sequence-of-events relations over risk elements.
|
|
117
|
-
connection def TracesRisk :> MemoRelationship {
|
|
118
|
-
end sourceRiskElement : MemoPart;
|
|
119
|
-
end targetRiskElement : MemoPart;
|
|
120
|
-
}
|
|
121
|
-
connection def AssessedAgainst :> MemoRelationship {
|
|
122
|
-
end risk : MemoPart;
|
|
123
|
-
end riskMatrix : MemoPart;
|
|
124
|
-
}
|
|
147
|
+
end producer : MemoVerificationCase :>> source;
|
|
148
|
+
end producedEvidence : MemoEvidence :>> target;
|
|
149
|
+
}
|
|
150
|
+
abstract connection producesEvidenceLinks : ProducesEvidence[*];
|
|
151
|
+
metadata def <producesEvidence> ProducesEvidenceMetadata :> SemanticMetadata {
|
|
152
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
153
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
154
|
+
:>> baseType = producesEvidenceLinks meta SysML::Usage;
|
|
155
|
+
}
|
|
156
|
+
// `Precedes` is native `succession` (`first a then b;`), R10-S6.
|
|
157
|
+
// `sameStepRequired`/`precedenceRationale` had zero usages anywhere in
|
|
158
|
+
// the tree (same free-deletion shape R10-S5 found for `rationale`), so
|
|
159
|
+
// there was no content to carry forward.
|
|
125
160
|
|
|
126
161
|
connection def ThreatenedBy :> MemoRelationship {
|
|
127
162
|
attribute threatRole : String;
|
|
128
|
-
end protectedAsset : ArchitectureElement;
|
|
129
|
-
end realizedThreat : RequirementDriver;
|
|
163
|
+
end protectedAsset : ArchitectureElement :>> source;
|
|
164
|
+
end realizedThreat : RequirementDriver :>> target;
|
|
130
165
|
}
|
|
131
|
-
connection
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
end realizedThreat : RequirementDriver;
|
|
137
|
-
end scenario : MemoPart;
|
|
166
|
+
abstract connection threatenedByLinks : ThreatenedBy[*];
|
|
167
|
+
metadata def <threatenedBy> ThreatenedByMetadata :> SemanticMetadata {
|
|
168
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
169
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
170
|
+
:>> baseType = threatenedByLinks meta SysML::Usage;
|
|
138
171
|
}
|
|
139
172
|
connection def DerivesCyberRequirement :> MemoRelationship {
|
|
140
|
-
end sourceThreatOrRisk : RequirementDriver;
|
|
141
|
-
end targetRequirement :
|
|
173
|
+
end sourceThreatOrRisk : RequirementDriver :>> source;
|
|
174
|
+
end targetRequirement : MemoRequirementElement :>> target;
|
|
142
175
|
}
|
|
143
|
-
connection
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
176
|
+
abstract connection derivesCyberRequirementLinks : DerivesCyberRequirement[*];
|
|
177
|
+
metadata def <derivesCyberRequirement> DerivesCyberRequirementMetadata :> SemanticMetadata {
|
|
178
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
179
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
180
|
+
:>> baseType = derivesCyberRequirementLinks meta SysML::Usage;
|
|
147
181
|
}
|
|
148
182
|
connection def CrossesTrustBoundary :> MemoRelationship {
|
|
149
183
|
attribute crossingKind : InterfaceKind;
|
|
150
|
-
end boundary
|
|
151
|
-
end crossingItem
|
|
184
|
+
end boundary :>> source;
|
|
185
|
+
end crossingItem :>> target;
|
|
186
|
+
}
|
|
187
|
+
abstract connection crossesTrustBoundaryLinks : CrossesTrustBoundary[*];
|
|
188
|
+
metadata def <crossesTrustBoundary> CrossesTrustBoundaryMetadata :> SemanticMetadata {
|
|
189
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
190
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
191
|
+
:>> baseType = crossesTrustBoundaryLinks meta SysML::Usage;
|
|
152
192
|
}
|
|
153
193
|
|
|
154
194
|
connection def Validates :> MemoRelationship {
|
|
155
195
|
// Validation targets include use cases and other behavioural elements,
|
|
156
196
|
// so the target remains untyped across SysML metaclass families.
|
|
157
|
-
end validationTarget;
|
|
158
|
-
end validationCase : MemoVerificationCase;
|
|
159
|
-
}
|
|
160
|
-
connection def DependsOnSoup :> MemoRelationship {
|
|
161
|
-
end component : ArchitectureElement;
|
|
162
|
-
end soupItem : MemoPart;
|
|
197
|
+
end validationTarget :>> source;
|
|
198
|
+
end validationCase : MemoVerificationCase :>> target;
|
|
163
199
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
// dependency on architecture-layer types.
|
|
170
|
-
connection def Performs :> MemoRelationship {
|
|
171
|
-
end performer : MemoPart;
|
|
172
|
-
end performed : MemoPart;
|
|
200
|
+
abstract connection validatesLinks : Validates[*];
|
|
201
|
+
metadata def <validates> ValidatesMetadata :> SemanticMetadata {
|
|
202
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
203
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
204
|
+
:>> baseType = validatesLinks meta SysML::Usage;
|
|
173
205
|
}
|
|
174
206
|
|
|
175
207
|
// Enables unifies the former EnablesWorkflow / EnablesActivity synonyms
|
|
176
208
|
// (an enabling system/function enables a workflow/activity).
|
|
177
209
|
connection def Enables :> MemoRelationship {
|
|
178
|
-
end enabling
|
|
179
|
-
end enabled :
|
|
210
|
+
end enabling :>> source;
|
|
211
|
+
end enabled : MemoAction :>> target;
|
|
180
212
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
213
|
+
abstract connection enablesLinks : Enables[*];
|
|
214
|
+
metadata def <enables> EnablesMetadata :> SemanticMetadata {
|
|
215
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
216
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
217
|
+
:>> baseType = enablesLinks meta SysML::Usage;
|
|
185
218
|
}
|
|
186
219
|
|
|
187
|
-
connection def
|
|
188
|
-
end
|
|
189
|
-
end
|
|
190
|
-
}
|
|
191
|
-
// Causes unifies the former causal edges of the ISO 14971 / FMEA / FTA
|
|
192
|
-
// chains — CausesEffect, CausedBy, ContributesToHazard, LeadsToHazard,
|
|
193
|
-
// OriginatesFrom, UseErrorLeadsToHazard — keyed by causeKind. cause is the
|
|
194
|
-
// originating element, effect the consequence.
|
|
195
|
-
enum def CauseKind {
|
|
196
|
-
enum failureCausesEffect;
|
|
197
|
-
enum failureCausedBy;
|
|
198
|
-
enum contributesToHazard;
|
|
199
|
-
enum leadsToHazard;
|
|
200
|
-
enum originatesFrom;
|
|
201
|
-
enum useErrorLeadsToHazard;
|
|
202
|
-
}
|
|
203
|
-
connection def Causes :> MemoRelationship {
|
|
204
|
-
attribute causeKind : CauseKind;
|
|
205
|
-
end cause : MemoPart;
|
|
206
|
-
end effect : MemoPart;
|
|
220
|
+
connection def HostedBy :> MemoRelationship {
|
|
221
|
+
end processingNode : ArchitectureElement :>> source;
|
|
222
|
+
end hostAssembly : ArchitectureElement :>> target;
|
|
207
223
|
}
|
|
208
|
-
connection
|
|
209
|
-
|
|
210
|
-
|
|
224
|
+
abstract connection hostedByLinks : HostedBy[*];
|
|
225
|
+
metadata def <hostedBy> HostedByMetadata :> SemanticMetadata {
|
|
226
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
227
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
228
|
+
:>> baseType = hostedByLinks meta SysML::Usage;
|
|
211
229
|
}
|
|
212
230
|
|
|
213
|
-
connection def InputToGate :> MemoRelationship {
|
|
214
|
-
end input : MemoPart;
|
|
215
|
-
end gate : MemoPart;
|
|
216
|
-
}
|
|
217
|
-
connection def ProducesEvent :> MemoRelationship {
|
|
218
|
-
end gate : MemoPart;
|
|
219
|
-
end eventElement : MemoPart;
|
|
220
|
-
}
|
|
221
|
-
connection def ContainsEvent :> MemoRelationship {
|
|
222
|
-
end cutSet : MemoPart;
|
|
223
|
-
end eventElement : MemoPart;
|
|
224
|
-
}
|
|
225
231
|
|
|
226
|
-
|
|
227
|
-
end decision : MemoPart;
|
|
228
|
-
end affectedElement : MemoPart;
|
|
229
|
-
}
|
|
232
|
+
|
|
230
233
|
|
|
231
234
|
// Composes is the single whole/part decomposition relation. It unifies the
|
|
232
235
|
// former ComposesLogical / AssemblyComprises / Contains{Component,Element} /
|
|
@@ -234,33 +237,35 @@ package memo_core_relationships {
|
|
|
234
237
|
// Collection membership is carried by the end instance.
|
|
235
238
|
// types, so the ends are generic MemoPart.
|
|
236
239
|
connection def Composes :> MemoRelationship {
|
|
237
|
-
end parent
|
|
238
|
-
end child
|
|
240
|
+
end parent :>> source;
|
|
241
|
+
end child :>> target;
|
|
239
242
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
connection def AnalyzedBy :> MemoRelationship {
|
|
246
|
-
end element : ArchitectureElement;
|
|
247
|
-
end analysisArtifact : AnalysisArtifact;
|
|
243
|
+
abstract connection composesLinks : Composes[*];
|
|
244
|
+
metadata def <composes> ComposesMetadata :> SemanticMetadata {
|
|
245
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
246
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
247
|
+
:>> baseType = composesLinks meta SysML::Usage;
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
connection def
|
|
251
|
-
end
|
|
252
|
-
end
|
|
253
|
-
}
|
|
254
|
-
connection def TestedByUsability :> MemoRelationship {
|
|
255
|
-
end uiElementOrTask : MemoPart;
|
|
256
|
-
end usabilityTest : VerifiableElement;
|
|
250
|
+
connection def AnalyzedBy :> MemoRelationship {
|
|
251
|
+
end element : ArchitectureElement :>> source;
|
|
252
|
+
end analysisArtifact : AnalysisArtifact :>> target;
|
|
257
253
|
}
|
|
258
|
-
connection
|
|
259
|
-
|
|
260
|
-
|
|
254
|
+
abstract connection analyzedByLinks : AnalyzedBy[*];
|
|
255
|
+
metadata def <analyzedBy> AnalyzedByMetadata :> SemanticMetadata {
|
|
256
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
257
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
258
|
+
:>> baseType = analyzedByLinks meta SysML::Usage;
|
|
261
259
|
}
|
|
260
|
+
|
|
262
261
|
connection def BindsToInterface :> MemoRelationship {
|
|
263
|
-
end portElement
|
|
264
|
-
end boundInterface
|
|
262
|
+
end portElement :>> source;
|
|
263
|
+
end boundInterface :>> target;
|
|
264
|
+
}
|
|
265
|
+
abstract connection bindsToInterfaceLinks : BindsToInterface[*];
|
|
266
|
+
metadata def <bindsToInterface> BindsToInterfaceMetadata :> SemanticMetadata {
|
|
267
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
268
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
269
|
+
:>> baseType = bindsToInterfaceLinks meta SysML::Usage;
|
|
265
270
|
}
|
|
266
271
|
}
|