@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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
package memo_assurance_safety_risk_postmarket_surveillance {
|
|
2
|
+
private import Metaobjects::SemanticMetadata;
|
|
3
|
+
private import ScalarValues::*;
|
|
4
|
+
private import memo_core_relationships::*; // MemoRelationship
|
|
5
|
+
|
|
6
|
+
private import memo_core_common::*;
|
|
7
|
+
|
|
8
|
+
part def PostMarketSurveillance :> MemoPart {
|
|
9
|
+
attribute surveillanceKind : String;
|
|
10
|
+
attribute dataSource : String;
|
|
11
|
+
attribute reportingObligation : String;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// ── Relations owned by this package ─────────────────────────────
|
|
15
|
+
// Moved out of memo_core_relationships: their ends are typed against
|
|
16
|
+
// types declared here, and core must not depend on a domain package.
|
|
17
|
+
connection def FeedsBackTo :> MemoRelationship {
|
|
18
|
+
end feedbackItem : PostMarketSurveillance :>> source;
|
|
19
|
+
end designElement : MemoPart :>> target;
|
|
20
|
+
}
|
|
21
|
+
abstract connection feedsBackToLinks : FeedsBackTo[*];
|
|
22
|
+
metadata def <feedsBackTo> FeedsBackToMetadata :> SemanticMetadata {
|
|
23
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
24
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
25
|
+
:>> baseType = feedsBackToLinks meta SysML::Usage;
|
|
26
|
+
}
|
|
27
|
+
}
|
package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package memo_assurance_verification_validation_clinical_evaluation {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_core_common::*;
|
|
5
|
+
|
|
6
|
+
part def ClinicalEvaluation :> MemoPart {
|
|
7
|
+
attribute evaluationStage : String;
|
|
8
|
+
attribute clinicalDataSource : String;
|
|
9
|
+
attribute conclusion : String;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
package memo_assurance_verification_validation {
|
|
2
|
+
private import Metaobjects::SemanticMetadata;
|
|
2
3
|
private import ScalarValues::*;
|
|
3
4
|
|
|
4
5
|
private import memo_core_common::*;
|
|
@@ -10,10 +11,17 @@ package memo_assurance_verification_validation {
|
|
|
10
11
|
// Verification and validation cases are SysML v2 verification cases
|
|
11
12
|
// (behaviours that check requirements), not verifiable structures — they
|
|
12
13
|
// derive from the MemoVerificationCase foundation, not MemoPart.
|
|
14
|
+
// `status` is NOT redeclared here. It used to be re-declared as a String,
|
|
15
|
+
// which shadowed the `status : ElementStatusKind` every MEMO base carries
|
|
16
|
+
// and let a verification case hold an editorial status no other element
|
|
17
|
+
// could hold — against the "one status vocabulary in MEMO" rule stated in
|
|
18
|
+
// memo_requirements.sysml. The values it actually held ("planned") were an
|
|
19
|
+
// EXECUTION state, not an editorial one; execution state belongs in an
|
|
20
|
+
// attribute of its own (see RiskControlMeasure.verificationStatus), not in
|
|
21
|
+
// a second spelling of `status`.
|
|
13
22
|
verification def VerificationCase :> MemoVerificationCase {
|
|
14
23
|
attribute methodKind : VerificationMethodKind;
|
|
15
24
|
attribute acceptanceCriteria : String;
|
|
16
|
-
attribute status : String;
|
|
17
25
|
}
|
|
18
26
|
verification def ValidationCase :> MemoVerificationCase {
|
|
19
27
|
attribute validationMethod : ValidationMethodKind;
|
|
@@ -21,29 +29,17 @@ package memo_assurance_verification_validation {
|
|
|
21
29
|
attribute acceptanceCriteria : String;
|
|
22
30
|
attribute clinicalContext : String;
|
|
23
31
|
}
|
|
24
|
-
part def TestArtifact specializes MemoEvidence {
|
|
25
|
-
attribute version : String;
|
|
26
|
-
attribute artifactKind : ArtifactKind;
|
|
27
|
-
attribute resultSummary : String;
|
|
28
|
-
}
|
|
29
|
-
part def Evidence specializes MemoEvidence {
|
|
30
|
-
attribute version : String;
|
|
31
|
-
attribute evidenceType : String;
|
|
32
|
-
attribute integrityStatus : String;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// A scenario executed to verify — selected path with purpose
|
|
36
|
-
// 'verification'.
|
|
37
|
-
part def VerificationScenario specializes MemoScenario {
|
|
38
|
-
attribute verificationEnvironment : String;
|
|
39
|
-
attribute stimulusSummary : String;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
32
|
// Operational validation confirms the user's goal is achieved in the
|
|
43
33
|
// use environment (§5): ValidationCase validates a UseCase.
|
|
44
34
|
// Safety-critical functions must trace to verification (rules/coverage).
|
|
45
35
|
connection def ExecutesScenario :> MemoRelationship {
|
|
46
|
-
end verificationCase : VerificationCase;
|
|
47
|
-
end scenario : MemoScenario;
|
|
36
|
+
end verificationCase : VerificationCase :>> source;
|
|
37
|
+
end scenario : MemoScenario :>> target;
|
|
38
|
+
}
|
|
39
|
+
abstract connection executesScenarioLinks : ExecutesScenario[*];
|
|
40
|
+
metadata def <executesScenario> ExecutesScenarioMetadata :> SemanticMetadata {
|
|
41
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
42
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
43
|
+
:>> baseType = executesScenarioLinks meta SysML::Usage;
|
|
48
44
|
}
|
|
49
45
|
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Universal model annotations carried as model content rather than source-text
|
|
2
|
+
// `doc` / `comment` annotations. Comments capture review conversation, notes
|
|
3
|
+
// preserve useful context, and rationales explain why an engineering choice was
|
|
4
|
+
// made. Each is independently traceable, queryable, and exportable.
|
|
5
|
+
//
|
|
6
|
+
// The distinction is deliberate and load-bearing: `description` is what an
|
|
7
|
+
// element IS, a ModelComment is what someone SAID ABOUT IT. A design review
|
|
8
|
+
// needs an author, a timestamp, a thread, and a resolution state, and none of
|
|
9
|
+
// those survive inside a documentation string. Merging the two would put
|
|
10
|
+
// unresolved review chatter into a generated DHF section, so they never merge.
|
|
11
|
+
//
|
|
12
|
+
// Annotations attach to every metaclass — parts, actions, requirements, views,
|
|
13
|
+
// connections, and MEMO specializations — so CommentsOn, RationaleFor, and
|
|
14
|
+
// NotesOn leave their subject ends untyped, following the MemoLink precedent in
|
|
15
|
+
// memo_core_relationships.
|
|
16
|
+
package memo_core_annotations {
|
|
17
|
+
private import Metaobjects::SemanticMetadata;
|
|
18
|
+
private import ScalarValues::*;
|
|
19
|
+
|
|
20
|
+
private import memo_core_common::*;
|
|
21
|
+
private import memo_core_enumerations::*;
|
|
22
|
+
private import memo_core_relationships::*;
|
|
23
|
+
|
|
24
|
+
abstract part def ModelAnnotation specializes MemoPart {
|
|
25
|
+
// `body` is the annotation content; `shortDescription` is the one-line
|
|
26
|
+
// form shown in badges, tables, and generated indexes.
|
|
27
|
+
attribute body : String;
|
|
28
|
+
attribute author : String;
|
|
29
|
+
// ISO 8601. Strings, not a date type: MEMO stays portable content and
|
|
30
|
+
// does not depend on a tool's date library.
|
|
31
|
+
attribute createdAt : String;
|
|
32
|
+
// Optional pinpoint inside the annotated element: an attribute name,
|
|
33
|
+
// requirement clause, diagram node, or other stable local reference.
|
|
34
|
+
attribute anchor : String;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
part def ModelComment specializes ModelAnnotation {
|
|
38
|
+
attribute commentStatus : CommentStatusKind;
|
|
39
|
+
// Why the comment closed. Required in practice for `resolved` and
|
|
40
|
+
// `rejected` — a closed review point with no stated disposition is an
|
|
41
|
+
// audit gap.
|
|
42
|
+
attribute resolution : String;
|
|
43
|
+
attribute resolvedBy : String;
|
|
44
|
+
attribute resolvedAt : String;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
part def ModelRationale specializes ModelAnnotation {
|
|
48
|
+
// Decision, trade-off, standard clause, or evidence that the rationale
|
|
49
|
+
// rests on. The body explains the reasoning in full.
|
|
50
|
+
attribute basis : String;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
part def ModelNote specializes ModelAnnotation {
|
|
54
|
+
// A lightweight category for filtering notes without constraining their
|
|
55
|
+
// content (for example assumption, usage, implementation, or warning).
|
|
56
|
+
attribute noteKind : String;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Replies form a thread through the ordinary Composes relation (parent
|
|
60
|
+
// comment → reply), so CR-ONT-001's acyclicity invariant already covers
|
|
61
|
+
// comment threads and no thread-specific relation is needed.
|
|
62
|
+
// The end is `remark`, not `comment`: `comment` is a reserved KerML
|
|
63
|
+
// keyword and cannot name a feature.
|
|
64
|
+
connection def CommentsOn :> MemoRelationship {
|
|
65
|
+
end remark : ModelComment :>> source;
|
|
66
|
+
end annotatedElement :>> target;
|
|
67
|
+
}
|
|
68
|
+
abstract connection commentsOnLinks : CommentsOn[*];
|
|
69
|
+
metadata def <commentsOn> CommentsOnMetadata :> SemanticMetadata {
|
|
70
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
71
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
72
|
+
:>> baseType = commentsOnLinks meta SysML::Usage;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
connection def RationaleFor :> MemoRelationship {
|
|
76
|
+
end rationaleRecord : ModelRationale :>> source;
|
|
77
|
+
end justifiedElement :>> target;
|
|
78
|
+
}
|
|
79
|
+
abstract connection rationaleForLinks : RationaleFor[*];
|
|
80
|
+
metadata def <rationaleFor> RationaleForMetadata :> SemanticMetadata {
|
|
81
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
82
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
83
|
+
:>> baseType = rationaleForLinks meta SysML::Usage;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
connection def NotesOn :> MemoRelationship {
|
|
87
|
+
end noteRecord : ModelNote :>> source;
|
|
88
|
+
end notedElement :>> target;
|
|
89
|
+
}
|
|
90
|
+
abstract connection notesOnLinks : NotesOn[*];
|
|
91
|
+
metadata def <notesOn> NotesOnMetadata :> SemanticMetadata {
|
|
92
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
93
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
94
|
+
:>> baseType = notesOnLinks meta SysML::Usage;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -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,7 +49,16 @@ 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;
|
|
54
|
+
// Two description registers on every MEMO element, because views have
|
|
55
|
+
// two densities. `shortDescription` is the one-line form a table cell,
|
|
56
|
+
// matrix header, chip, or diagram node can show whole; `description` is
|
|
57
|
+
// the full prose a properties panel or a generated document section
|
|
58
|
+
// renders. A view picks the register that fits — it never truncates
|
|
59
|
+
// the long one, because a silently clipped sentence in a DHF table is
|
|
60
|
+
// a defect, not a layout choice.
|
|
61
|
+
attribute shortDescription : String;
|
|
30
62
|
attribute description : String;
|
|
31
63
|
// traceability
|
|
32
64
|
attribute rationale : String;
|
|
@@ -48,13 +80,36 @@ package memo_core_common {
|
|
|
48
80
|
abstract part def VerifiableElement specializes MemoPart;
|
|
49
81
|
abstract part def ArchitectureElement specializes MemoPart;
|
|
50
82
|
part def InterfaceElement specializes MemoPart;
|
|
51
|
-
|
|
83
|
+
enum def EvidenceKind { enum testArtifact; enum evidence; enum formativeEvaluation; enum usabilityValidation; enum securityClaim; }
|
|
84
|
+
part def MemoEvidence specializes MemoPart {
|
|
85
|
+
attribute evidenceKind : EvidenceKind;
|
|
86
|
+
attribute version : String;
|
|
87
|
+
attribute artifactKind : ArtifactKind[0..1];
|
|
88
|
+
attribute resultSummary : String;
|
|
89
|
+
attribute evidenceType : String;
|
|
90
|
+
attribute integrityStatus : String;
|
|
91
|
+
// Promoted from the retired `UsabilityValidation` and
|
|
92
|
+
// `FormativeEvaluation` specializations. The collapse in `02083c5`
|
|
93
|
+
// deleted both subclasses without carrying their fields up, so an
|
|
94
|
+
// IEC 62366-1 evaluation record lost what it actually reports.
|
|
95
|
+
// Promoted on the standard's terms, not on in-tree usage: MEMO is a
|
|
96
|
+
// library, so what its own examples happen to set says nothing about
|
|
97
|
+
// what an adopter's usability file needs.
|
|
98
|
+
attribute participantProfile : String;
|
|
99
|
+
attribute participantCount : Integer;
|
|
100
|
+
attribute acceptanceCriteria : String;
|
|
101
|
+
attribute evaluationMethod : String;
|
|
102
|
+
attribute findingsSummary : String;
|
|
103
|
+
attribute designChangesTriggered : String;
|
|
104
|
+
}
|
|
52
105
|
abstract part def AnalysisArtifact specializes MemoPart;
|
|
53
106
|
|
|
107
|
+
// Document-bound elements add only what a document needs beyond the two
|
|
108
|
+
// description registers every MemoPart now carries: a title and its place
|
|
109
|
+
// in a document. The former `shortDescription`/`longDescription` pair is
|
|
110
|
+
// gone — short is inherited, and `description` IS the long form.
|
|
54
111
|
part def DocumentedElement specializes MemoPart {
|
|
55
112
|
attribute title : String;
|
|
56
|
-
attribute shortDescription : String;
|
|
57
|
-
attribute longDescription : String;
|
|
58
113
|
attribute documentUsage : String[*];
|
|
59
114
|
attribute sectionIdentifier : String;
|
|
60
115
|
}
|
|
@@ -65,7 +120,9 @@ package memo_core_common {
|
|
|
65
120
|
// and interaction steps specialize MemoAction.
|
|
66
121
|
action def MemoAction {
|
|
67
122
|
attribute id : String;
|
|
123
|
+
attribute uuid : String;
|
|
68
124
|
attribute name : String;
|
|
125
|
+
attribute shortDescription : String;
|
|
69
126
|
attribute description : String;
|
|
70
127
|
attribute rationale : String;
|
|
71
128
|
attribute sourceReference : String;
|
|
@@ -75,9 +132,13 @@ package memo_core_common {
|
|
|
75
132
|
// Boundary feature foundation for typed ports.
|
|
76
133
|
port def MemoPort {
|
|
77
134
|
attribute id : String;
|
|
135
|
+
attribute uuid : String;
|
|
78
136
|
attribute name : String;
|
|
137
|
+
attribute shortDescription : String;
|
|
79
138
|
attribute description : String;
|
|
80
|
-
attribute
|
|
139
|
+
attribute rationale : String;
|
|
140
|
+
attribute sourceReference : String;
|
|
141
|
+
attribute status : ElementStatusKind;
|
|
81
142
|
}
|
|
82
143
|
|
|
83
144
|
// Interaction-contract foundation for interface definitions between ports.
|
|
@@ -85,20 +146,33 @@ package memo_core_common {
|
|
|
85
146
|
end source;
|
|
86
147
|
end target;
|
|
87
148
|
attribute id : String;
|
|
149
|
+
attribute uuid : String;
|
|
88
150
|
attribute name : String;
|
|
151
|
+
attribute shortDescription : String;
|
|
89
152
|
attribute description : String;
|
|
90
153
|
attribute rationale : String;
|
|
91
154
|
attribute sourceReference : String;
|
|
92
155
|
}
|
|
93
156
|
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
|
|
157
|
+
// Single item foundation. Standards, hazards, stored software data, and
|
|
158
|
+
// message payloads are all item-native concepts. Whether an item is
|
|
159
|
+
// exchanged is expressed by its use in a port or flow, not by a second
|
|
160
|
+
// ontology root.
|
|
161
|
+
abstract item def MemoItem {
|
|
97
162
|
attribute id : String;
|
|
163
|
+
attribute uuid : String;
|
|
98
164
|
attribute name : String;
|
|
165
|
+
attribute shortDescription : String;
|
|
99
166
|
attribute description : String;
|
|
100
167
|
attribute rationale : String;
|
|
101
168
|
attribute sourceReference : String;
|
|
169
|
+
attribute status : ElementStatusKind;
|
|
170
|
+
// What the item CARRIES, as distinct from what it is called. Removed
|
|
171
|
+
// by `595bfac` while modelling native wrappers; nothing replaced them,
|
|
172
|
+
// and every exchange item in the examples went on setting them. A
|
|
173
|
+
// measured value without its unit, its range, or its terminology code
|
|
174
|
+
// is not a regulated data item — an IVD result is "5.5 mg/dL, LOINC
|
|
175
|
+
// 2345-7", not "5.5".
|
|
102
176
|
attribute semantics : String;
|
|
103
177
|
attribute unit : String;
|
|
104
178
|
attribute minValue : String;
|
|
@@ -108,23 +182,58 @@ package memo_core_common {
|
|
|
108
182
|
attribute codes : TerminologyCode[0..*];
|
|
109
183
|
}
|
|
110
184
|
|
|
185
|
+
// Use-case foundation. The domain UseCase adds its goal and actor
|
|
186
|
+
// references; identity is carried here so use cases do not maintain a
|
|
187
|
+
// partial hand-written copy of the MEMO identification core.
|
|
188
|
+
abstract use case def MemoUseCase {
|
|
189
|
+
attribute id : String;
|
|
190
|
+
attribute uuid : String;
|
|
191
|
+
attribute name : String;
|
|
192
|
+
attribute shortDescription : String;
|
|
193
|
+
attribute description : String;
|
|
194
|
+
attribute rationale : String;
|
|
195
|
+
attribute sourceReference : String;
|
|
196
|
+
attribute status : ElementStatusKind;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// General constraint foundation. Executable consistency rules and
|
|
200
|
+
// reusable quantitative constraints are both native constraint defs.
|
|
201
|
+
abstract constraint def MemoConstraint {
|
|
202
|
+
attribute id : String;
|
|
203
|
+
attribute uuid : String;
|
|
204
|
+
attribute name : String;
|
|
205
|
+
attribute shortDescription : String;
|
|
206
|
+
attribute description : String;
|
|
207
|
+
attribute rationale : String;
|
|
208
|
+
attribute sourceReference : String;
|
|
209
|
+
attribute status : ElementStatusKind;
|
|
210
|
+
}
|
|
211
|
+
|
|
111
212
|
// Requirement-family foundations. MemoNeed captures a problem-space
|
|
112
213
|
// expectation in stakeholder language; MemoRequirement a testable
|
|
113
214
|
// solution-space obligation.
|
|
114
|
-
requirement
|
|
115
|
-
|
|
215
|
+
// Shared base of the requirement family. It exists so a relation end can
|
|
216
|
+
// say "a need or a requirement" with one type name — before it, every end
|
|
217
|
+
// that had to accept both was left untyped.
|
|
218
|
+
abstract requirement def MemoRequirementElement {
|
|
219
|
+
attribute id : String;
|
|
220
|
+
attribute uuid : String;
|
|
221
|
+
attribute name : String;
|
|
222
|
+
attribute shortDescription : String;
|
|
223
|
+
attribute description : String;
|
|
224
|
+
attribute rationale : String;
|
|
225
|
+
attribute sourceReference : String;
|
|
226
|
+
attribute status : ElementStatusKind;
|
|
116
227
|
attribute statement : String;
|
|
117
|
-
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
requirement def MemoNeed :> MemoRequirementElement {
|
|
118
231
|
attribute needSource : String;
|
|
119
232
|
attribute priority : String;
|
|
120
|
-
attribute needStatus : ElementStatusKind;
|
|
121
233
|
}
|
|
122
234
|
|
|
123
|
-
requirement def MemoRequirement {
|
|
124
|
-
attribute requirementId : String;
|
|
125
|
-
attribute statement : String;
|
|
235
|
+
requirement def MemoRequirement :> MemoRequirementElement {
|
|
126
236
|
attribute acceptanceCriteria : String;
|
|
127
|
-
attribute requirementStatus : ElementStatusKind;
|
|
128
237
|
}
|
|
129
238
|
|
|
130
239
|
// Verification-case foundation. A SysML v2 verification case is a behaviour
|
|
@@ -133,10 +242,13 @@ package memo_core_common {
|
|
|
133
242
|
// identification core rather than inheriting it.
|
|
134
243
|
verification def MemoVerificationCase {
|
|
135
244
|
attribute id : String;
|
|
245
|
+
attribute uuid : String;
|
|
136
246
|
attribute name : String;
|
|
247
|
+
attribute shortDescription : String;
|
|
137
248
|
attribute description : String;
|
|
138
249
|
attribute rationale : String;
|
|
139
250
|
attribute sourceReference : String;
|
|
251
|
+
attribute status : ElementStatusKind;
|
|
140
252
|
}
|
|
141
253
|
|
|
142
254
|
// State foundation. SysML v2 states (state machines and their mode states)
|
|
@@ -144,12 +256,22 @@ package memo_core_common {
|
|
|
144
256
|
// re-declare the identification core instead of specializing MemoPart
|
|
145
257
|
// Transitions stay part-based to keep their traceable safety
|
|
146
258
|
// attributes (id, sourceReference, priority, sameStepCritical).
|
|
147
|
-
|
|
259
|
+
enum def StateKind { enum mode; enum logical; }
|
|
260
|
+
|
|
261
|
+
state def MemoState {
|
|
262
|
+
attribute stateKind : StateKind;
|
|
148
263
|
attribute id : String;
|
|
264
|
+
attribute uuid : String;
|
|
149
265
|
attribute name : String;
|
|
266
|
+
attribute shortDescription : String;
|
|
150
267
|
attribute description : String;
|
|
151
268
|
attribute rationale : String;
|
|
152
269
|
attribute sourceReference : String;
|
|
270
|
+
attribute status : ElementStatusKind;
|
|
271
|
+
attribute modeKind : String;
|
|
272
|
+
attribute entryCondition : String;
|
|
273
|
+
attribute exitCondition : String;
|
|
274
|
+
attribute modePurpose : String;
|
|
153
275
|
}
|
|
154
276
|
|
|
155
277
|
part def Citation specializes MemoPart {
|
|
@@ -6,6 +6,13 @@ package memo_core_consistency_rules {
|
|
|
6
6
|
private import memo_core_common::*;
|
|
7
7
|
private import memo_core_enumerations::*;
|
|
8
8
|
|
|
9
|
+
// Common supertype of every executable MEMO rule. It carries no members of
|
|
10
|
+
// its own: a rule's metadata is declared on the rule, and a shared member
|
|
11
|
+
// here would be shadowed by every rule that sets it. Its job is to give
|
|
12
|
+
// RulePolicy a type to reference, so a policy names a rule the way SysML
|
|
13
|
+
// names anything else rather than through a parallel string-ID namespace.
|
|
14
|
+
abstract constraint def MemoConsistencyRule :> MemoConstraint;
|
|
15
|
+
|
|
9
16
|
part def ConsistencyRule specializes MemoPart {
|
|
10
17
|
attribute appliesTo : String;
|
|
11
18
|
attribute predicate : RulePredicateKind;
|
|
@@ -10,9 +10,13 @@ package memo_core_dimensions {
|
|
|
10
10
|
private import ScalarValues::*;
|
|
11
11
|
|
|
12
12
|
// Realization stages of one element identity across the product
|
|
13
|
-
// lifecycle (
|
|
13
|
+
// lifecycle (proposal through retirement). Orthogonal to the axis:
|
|
14
14
|
// a single identity progresses through stages without changing its owner.
|
|
15
15
|
enum def RealizationStageKind {
|
|
16
|
+
// Put forward but not yet specified — a candidate under consideration,
|
|
17
|
+
// so a design alternative can be modelled and traced without implying
|
|
18
|
+
// it has been accepted into the specification.
|
|
19
|
+
enum proposed;
|
|
16
20
|
enum specified;
|
|
17
21
|
enum designed;
|
|
18
22
|
enum built;
|
|
@@ -35,7 +39,19 @@ package memo_core_dimensions {
|
|
|
35
39
|
|
|
36
40
|
// Editorial status of the model element itself (distinct from the
|
|
37
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.
|
|
38
53
|
enum def ElementStatusKind {
|
|
54
|
+
enum proposed;
|
|
39
55
|
enum draft;
|
|
40
56
|
enum inReview;
|
|
41
57
|
enum approved;
|