@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,13 +1,14 @@
|
|
|
1
1
|
package memo_architecture_functional_constraints {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
|
+
private import memo_core_common::*;
|
|
3
4
|
|
|
4
5
|
doc /* Reusable quantitative constraint definitions. */
|
|
5
6
|
|
|
6
|
-
constraint def MaxResponseTimeConstraint {
|
|
7
|
+
constraint def MaxResponseTimeConstraint :> MemoConstraint {
|
|
7
8
|
attribute responseTimeMs : Real;
|
|
8
9
|
attribute maxAllowedMs : Real;
|
|
9
10
|
}
|
|
10
|
-
constraint def LockoutIntervalConstraint {
|
|
11
|
+
constraint def LockoutIntervalConstraint :> MemoConstraint {
|
|
11
12
|
attribute elapsedMs : Real;
|
|
12
13
|
attribute lockoutMs : Real;
|
|
13
14
|
}
|
|
@@ -1,10 +1,56 @@
|
|
|
1
|
-
// Functional architecture (§9). A
|
|
2
|
-
//
|
|
3
|
-
// a
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// assumes software.
|
|
1
|
+
// Functional architecture (§9). A function is a responsibility: what the
|
|
2
|
+
// system, or one of its components, is answerable for. A FunctionalExchange is
|
|
3
|
+
// a typed transfer between functions. A function may be realized by human
|
|
4
|
+
// action, mechanical design, electrical hardware, software, or a combination —
|
|
5
|
+
// allocation to the system's own parts is what ComponentFunction records, and
|
|
6
|
+
// it never assumes software.
|
|
7
|
+
//
|
|
8
|
+
// ─── A function is a behaviour ───────────────────────────────────────────
|
|
9
|
+
//
|
|
10
|
+
// `MemoFunction` and both its specializations are `action def`s. They were
|
|
11
|
+
// `part def SystemFunction specializes ArchitectureElement` until Track A0
|
|
12
|
+
// removed the reason: relation ends were typed on MemoPart/ArchitectureElement,
|
|
13
|
+
// KerML forbids a behaviour from specializing a part-based type, and a function
|
|
14
|
+
// has to be satisfiable, verifiable, and allocatable. So a function was declared
|
|
15
|
+
// a part, and a separate `action def SystemAction` carried the behaviour with a
|
|
16
|
+
// `ref performedFunction` stapling the two back together — a reference used in
|
|
17
|
+
// ZERO example files. The ends are metaclass-neutral now (CR-ONT-060..073), so
|
|
18
|
+
// the split has no cause and is gone: SystemAction is merged into the function
|
|
19
|
+
// family, and its `actionKind` moved onto MemoFunction where it was always
|
|
20
|
+
// describing the function anyway.
|
|
21
|
+
//
|
|
22
|
+
// `functionCategory` and `actionKind` are NOT two spellings of one axis, and
|
|
23
|
+
// merging them would lose information. `actionKind` is the verb — sense,
|
|
24
|
+
// compute, actuate, route. `functionCategory` is the domain grouping the
|
|
25
|
+
// project argues in — therapy, alarm, platform, protection. A function can be
|
|
26
|
+
// `sense` in the `protection` category, and a safety case reasons about both.
|
|
27
|
+
//
|
|
28
|
+
// ─── System function vs. component function ──────────────────────────────
|
|
29
|
+
//
|
|
30
|
+
// ARCADIA's functional chain does not stop at the system boundary: system
|
|
31
|
+
// functions decompose until each piece is the responsibility of exactly one
|
|
32
|
+
// component. MEMO names the two ends of that chain because they obey different
|
|
33
|
+
// rules, not because they carry different attributes:
|
|
34
|
+
//
|
|
35
|
+
// SystemFunction — a responsibility of the system as a whole.
|
|
36
|
+
// Technology-independent. Allocation is OPTIONAL, and a
|
|
37
|
+
// system function may be realized by several components,
|
|
38
|
+
// by a human, or by mechanism.
|
|
39
|
+
// ComponentFunction — a responsibility of ONE component: a flowmeter's
|
|
40
|
+
// "measure flow rate", a subsystem's "arbitrate alarms".
|
|
41
|
+
// Allocation is MANDATORY and single-valued (CR-ONT-074).
|
|
42
|
+
//
|
|
43
|
+
// That difference is structural, which is why these are two definitions rather
|
|
44
|
+
// than one definition carrying a `functionLevel` enum. An enum member cannot
|
|
45
|
+
// change a multiplicity, and "is answerable to exactly one component" is the
|
|
46
|
+
// whole content of the concept.
|
|
47
|
+
//
|
|
48
|
+
// Decomposition and allocation reuse the existing relations and need no new
|
|
49
|
+
// ones — `Composes` for the function tree, `AllocatedTo` for the component.
|
|
50
|
+
// Both had part-typed ends until A0; both are metaclass-neutral now, which is
|
|
51
|
+
// precisely what makes an action-def function usable at all.
|
|
7
52
|
package memo_architecture_functional_functions {
|
|
53
|
+
private import Metaobjects::SemanticMetadata;
|
|
8
54
|
private import ScalarValues::*;
|
|
9
55
|
|
|
10
56
|
private import memo_core_common::*;
|
|
@@ -13,31 +59,53 @@ package memo_architecture_functional_functions {
|
|
|
13
59
|
private import memo_architecture_operational_activities::*;
|
|
14
60
|
private import memo_architecture_operational_scenarios::*;
|
|
15
61
|
|
|
16
|
-
|
|
62
|
+
abstract action def MemoFunction specializes MemoAction {
|
|
17
63
|
attribute functionCategory : String;
|
|
64
|
+
attribute actionKind : ActionKind;
|
|
18
65
|
attribute trigger : String;
|
|
19
66
|
attribute outputSummary : String;
|
|
20
67
|
attribute concernKind : ConcernKind;
|
|
21
68
|
attribute criticality : CriticalityKind;
|
|
22
69
|
}
|
|
23
70
|
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
71
|
+
// A responsibility of the system as a whole. Allocation is optional: a
|
|
72
|
+
// system function that no single component owns is a normal intermediate
|
|
73
|
+
// state of the functional chain, not a defect.
|
|
74
|
+
action def SystemFunction specializes MemoFunction;
|
|
75
|
+
|
|
76
|
+
// A responsibility of exactly one component. `AllocatedTo` names that
|
|
77
|
+
// component; CR-ONT-074 requires it. A component function that reaches no
|
|
78
|
+
// component is a responsibility nobody has accepted.
|
|
79
|
+
action def ComponentFunction specializes MemoFunction;
|
|
30
80
|
|
|
31
|
-
//
|
|
32
|
-
//
|
|
81
|
+
// Named traceable route between functions. Native `flow of` usages carry
|
|
82
|
+
// the transported item; this element exists for the budgets and assurance
|
|
83
|
+
// attributes below.
|
|
84
|
+
//
|
|
85
|
+
// The reason is MEMO's grammar, NOT the language — the earlier wording here
|
|
86
|
+
// said "attributes that a flow usage cannot own", and that was a false
|
|
87
|
+
// claim about SysML v2. The standard's `FlowUsage` is
|
|
88
|
+
// `OccurrenceUsagePrefix 'flow' FlowDeclaration DefinitionBody`
|
|
89
|
+
// (SysML-textual-bnf.kebnf:829), so a conforming flow usage takes a name
|
|
90
|
+
// from its `UsageDeclaration` and owns attributes in its body like any
|
|
91
|
+
// other usage. MEMO's own production is
|
|
92
|
+
// `'flow' 'of' itemType 'from' … 'to' … ';'` — no name, no body — so a
|
|
93
|
+
// MEMO flow can carry neither an `id` nor a latency budget, and nothing
|
|
94
|
+
// can refer to it. Every MEMO element rests on the identification core in
|
|
95
|
+
// memo_core_common, and an anonymous attribute-less edge cannot join it.
|
|
96
|
+
//
|
|
97
|
+
// So this part def is a workaround for a MEMO gap, not a design MEMO is
|
|
98
|
+
// entitled to. Restoring the two dropped clauses is what would let it
|
|
99
|
+
// collapse into the flow it stands in for.
|
|
33
100
|
part def FunctionalExchange specializes ArchitectureElement {
|
|
34
101
|
attribute flowKind : FlowKind;
|
|
35
|
-
attribute direction : DirectionKind;
|
|
36
102
|
attribute latencyBudgetMs : Real;
|
|
37
103
|
attribute staleAfterMs : Real;
|
|
38
104
|
attribute integrityLevel : String;
|
|
39
|
-
|
|
40
|
-
|
|
105
|
+
// MemoFunction, not SystemFunction: an exchange between two component
|
|
106
|
+
// functions is the ordinary case once the chain is decomposed.
|
|
107
|
+
ref sourceFunction : MemoFunction[0..1];
|
|
108
|
+
ref targetFunction : MemoFunction[0..1];
|
|
41
109
|
}
|
|
42
110
|
|
|
43
111
|
// A system function enables operational work; it does not perform it.
|
|
@@ -46,36 +114,18 @@ package memo_architecture_functional_functions {
|
|
|
46
114
|
// flows are part of functional architecture, never logical structure.
|
|
47
115
|
part def FunctionalFlow specializes ArchitectureElement {
|
|
48
116
|
attribute flowCategory : FunctionalFlowKind;
|
|
49
|
-
ref startFunction : SystemFunction[0..1];
|
|
50
|
-
ref endFunction : SystemFunction[0..1];
|
|
51
117
|
attribute endToEndLatencyBudgetMs : String;
|
|
52
118
|
attribute safetyRelevant : Boolean;
|
|
53
119
|
attribute securityRelevant : Boolean;
|
|
54
|
-
ref includedFunctions : SystemFunction[0..*];
|
|
55
120
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
ref function : SystemFunction[0..1];
|
|
121
|
+
action def FunctionalFlowStep specializes MemoAction {
|
|
122
|
+
ref function : MemoFunction[0..1];
|
|
59
123
|
ref exchange : FunctionalExchange[0..1];
|
|
60
|
-
ref item exchangedItem :
|
|
124
|
+
ref item exchangedItem : MemoItem[0..1];
|
|
61
125
|
}
|
|
62
126
|
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
ref functionSequence : SystemFunction[0..*];
|
|
68
|
-
ref functionalFlows : FunctionalExchange[0..*];
|
|
69
|
-
attribute sequenceDiagramRef : String;
|
|
70
|
-
ref selectedFlow : FunctionalFlow[0..1];
|
|
71
|
-
}
|
|
72
|
-
connection def IncludesStep :> MemoRelationship {
|
|
73
|
-
end functionalFlow : FunctionalFlow;
|
|
74
|
-
end step : FunctionalFlowStep;
|
|
75
|
-
}
|
|
76
|
-
connection def InvolvesFunction :> MemoRelationship {
|
|
77
|
-
end functionalFlow : FunctionalFlow;
|
|
78
|
-
end function : SystemFunction;
|
|
79
|
-
}
|
|
80
|
-
// Compatibility spelling used by existing models.
|
|
127
|
+
// `InvolvesFunction` is native `perform` (R10-S6): a `FunctionalFlow`
|
|
128
|
+
// already names its functions via its step chain
|
|
129
|
+
// (`perform <step>;` + the step's own `ref function`), and a flow with no
|
|
130
|
+
// step chain performs its functions directly.
|
|
81
131
|
}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
// Software runtime (component-and-connector) view (§11)
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Software runtime (component-and-connector) view (§11), matching the SEI
|
|
2
|
+
// Views and Beyond distinction between runtime components and implementation
|
|
3
|
+
// modules. Runtime structure carries concurrency, scheduling, health
|
|
4
|
+
// monitoring, fault containment, and update/rollback semantics. Module structure lives in
|
|
4
5
|
// memo_architecture_implementation_software_structure; allocation in
|
|
5
|
-
// memo_architecture_realization_deployment.
|
|
6
|
-
//
|
|
6
|
+
// memo_architecture_realization_deployment.
|
|
7
|
+
//
|
|
8
|
+
// Detailed AADL categories live in the AADL correspondence profile, which is
|
|
9
|
+
// an extension package: `extensions/aadl` (plan §C5). It carries the process /
|
|
10
|
+
// thread / virtual-processor families and a correspondence rule per mapped
|
|
11
|
+
// name and property. This comment pointed at `examples/aadl-mapping` for a
|
|
12
|
+
// long time and that directory never existed; the pointer above resolves.
|
|
7
13
|
package memo_architecture_implementation_software_runtime {
|
|
14
|
+
private import Metaobjects::SemanticMetadata;
|
|
8
15
|
private import ScalarValues::*;
|
|
9
16
|
|
|
10
17
|
private import memo_core_common::*;
|
|
@@ -25,11 +32,9 @@ package memo_architecture_implementation_software_runtime {
|
|
|
25
32
|
enum messageBroker;
|
|
26
33
|
}
|
|
27
34
|
|
|
28
|
-
part def SoftwareComponent specializes
|
|
35
|
+
part def SoftwareComponent specializes SoftwareElement {
|
|
29
36
|
attribute runtimeKind : RuntimeKind;
|
|
30
37
|
attribute responsibility : String;
|
|
31
|
-
attribute safetyClass : SafetyClassKind;
|
|
32
|
-
attribute complexity : ComplexityKind;
|
|
33
38
|
attribute periodMs : Real;
|
|
34
39
|
attribute deadlineMs : Real;
|
|
35
40
|
attribute wcetMs : Real;
|
|
@@ -38,7 +43,10 @@ package memo_architecture_implementation_software_runtime {
|
|
|
38
43
|
attribute activation : String;
|
|
39
44
|
attribute synchronizationMechanism : String;
|
|
40
45
|
attribute sharedResources : String;
|
|
41
|
-
|
|
46
|
+
// Maximum resident memory allocation in megabytes. The public name
|
|
47
|
+
// predates MEMO's unit-suffixed scalar convention, so document the
|
|
48
|
+
// unit here rather than silently changing the published feature name.
|
|
49
|
+
attribute memoryBudget : Real;
|
|
42
50
|
attribute healthMonitoring : String;
|
|
43
51
|
attribute restartPolicy : String;
|
|
44
52
|
attribute faultContainment : String;
|
|
@@ -47,24 +55,38 @@ package memo_architecture_implementation_software_runtime {
|
|
|
47
55
|
attribute auditable : Boolean;
|
|
48
56
|
attribute updatePolicy : String;
|
|
49
57
|
attribute rollbackPolicy : String;
|
|
50
|
-
// runtime-kind-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
// Twelve runtime-kind-conditional attributes used to follow, each
|
|
59
|
+
// documented "set only for the relevant runtimeKind" — which is a
|
|
60
|
+
// subtype family in disguise, and a technology the base ontology had
|
|
61
|
+
// no business asserting. They are gone; every one of them now lives on
|
|
62
|
+
// a type in an extension, where it is unconditional and therefore
|
|
63
|
+
// checkable (plan §10.3 D3, extensions/README.md):
|
|
64
|
+
//
|
|
65
|
+
// addressSpaceIsolated, owningProcessName,
|
|
66
|
+
// partitionBudget, isolationMechanism -> extensions/aadl
|
|
67
|
+
// serviceContract, discoveryMechanism,
|
|
68
|
+
// storageKind, retentionPolicy -> extensions/cloud
|
|
69
|
+
// imageReference, orchestrationPlatform -> extensions/container
|
|
70
|
+
// deliverySemantics, topicStructure -> extensions/messaging
|
|
71
|
+
//
|
|
72
|
+
// The last two were also on the wrong metaclass: a component does not
|
|
73
|
+
// have a topic, a publication does.
|
|
74
|
+
//
|
|
75
|
+
// What stays is what is true of EVERY runtime component in every
|
|
76
|
+
// regulated project — the AADL thread properties above and the
|
|
77
|
+
// assurance ones — plus `runtimeKind` itself, which says which family
|
|
78
|
+
// a component belongs to without claiming to describe it.
|
|
63
79
|
}
|
|
64
80
|
|
|
65
81
|
connection def ComponentConnects :> MemoRelationship {
|
|
66
82
|
attribute protocolSummary : String;
|
|
67
|
-
end sourceComponent : SoftwareComponent;
|
|
68
|
-
end targetComponent : SoftwareComponent;
|
|
83
|
+
end sourceComponent : SoftwareComponent :>> source;
|
|
84
|
+
end targetComponent : SoftwareComponent :>> target;
|
|
85
|
+
}
|
|
86
|
+
abstract connection componentConnectsLinks : ComponentConnects[*];
|
|
87
|
+
metadata def <componentConnects> ComponentConnectsMetadata :> SemanticMetadata {
|
|
88
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
89
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
90
|
+
:>> baseType = componentConnectsLinks meta SysML::Usage;
|
|
69
91
|
}
|
|
70
92
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
// Software module view (§11; IEC 62304 5.3-5.4).
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Software module view (§11; IEC 62304 5.3-5.4). Following the SEI Views and
|
|
2
|
+
// Beyond viewtypes, modules are implementation/code units; interacting runtime
|
|
3
|
+
// elements are SoftwareComponents in
|
|
4
|
+
// memo_architecture_implementation_software_runtime, and allocation lives in
|
|
5
|
+
// memo_architecture_realization_deployment.
|
|
4
6
|
package memo_architecture_implementation_software_structure {
|
|
7
|
+
private import Metaobjects::SemanticMetadata;
|
|
5
8
|
private import ScalarValues::*;
|
|
6
9
|
|
|
7
10
|
private import memo_core_common::*;
|
|
@@ -9,10 +12,29 @@ package memo_architecture_implementation_software_structure {
|
|
|
9
12
|
private import memo_core_relationships::*;
|
|
10
13
|
private import memo_architecture_logical_structure::*;
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
// IEC 62304 §3.25: a SOFTWARE ITEM is "any identifiable part of a computer
|
|
16
|
+
// program". It is the general, recursive term — a SOFTWARE SYSTEM (§3.24)
|
|
17
|
+
// is the top item and a SOFTWARE UNIT (§3.26) is one not subdivided
|
|
18
|
+
// further; both are software items. So this is a base, not a fourth
|
|
19
|
+
// sibling of system/module/component.
|
|
20
|
+
//
|
|
21
|
+
// It exists because §4.3 classifies, and §5.3–5.4 decompose, SOFTWARE
|
|
22
|
+
// ITEMS — not "modules" or "components" specifically. Anything the
|
|
23
|
+
// standard obliges at item level therefore belongs here, and every
|
|
24
|
+
// software view inherits it rather than re-declaring it: the code view
|
|
25
|
+
// (SoftwareModule), the runtime view (SoftwareComponent), the system, and
|
|
26
|
+
// the user interface (memo_architecture_implementation_ui::UIElement).
|
|
27
|
+
// Structural software decomposition is part-native. IEC 62304 also uses
|
|
28
|
+
// the term "software item" for this concept, but reserving SoftwareItem
|
|
29
|
+
// for the native SysML item family keeps structural parts and exchanged
|
|
30
|
+
// values unambiguous in the model.
|
|
31
|
+
abstract part def SoftwareElement specializes ArchitectureElement {
|
|
14
32
|
attribute safetyClass : SafetyClassKind;
|
|
15
33
|
attribute complexity : ComplexityKind;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
part def SoftwareSystem specializes SoftwareElement {
|
|
37
|
+
attribute version : String;
|
|
16
38
|
attribute operatingSystem : String;
|
|
17
39
|
}
|
|
18
40
|
|
|
@@ -29,11 +51,9 @@ package memo_architecture_implementation_software_structure {
|
|
|
29
51
|
enum soup;
|
|
30
52
|
}
|
|
31
53
|
|
|
32
|
-
part def SoftwareModule specializes
|
|
54
|
+
part def SoftwareModule specializes SoftwareElement {
|
|
33
55
|
attribute moduleKind : ModuleKind;
|
|
34
56
|
attribute responsibility : String;
|
|
35
|
-
attribute safetyClass : SafetyClassKind;
|
|
36
|
-
attribute complexity : ComplexityKind;
|
|
37
57
|
// module-kind-specific detail (set only for the relevant moduleKind)
|
|
38
58
|
attribute iec62304Role : String[0..1];
|
|
39
59
|
attribute implementationLanguage : String[0..1];
|
|
@@ -65,7 +85,15 @@ package memo_architecture_implementation_software_structure {
|
|
|
65
85
|
attribute version : String;
|
|
66
86
|
}
|
|
67
87
|
|
|
68
|
-
|
|
88
|
+
// Software data/content that may be stored or exchanged through ports.
|
|
89
|
+
abstract item def SoftwareItem specializes MemoItem {
|
|
90
|
+
attribute schemaIdentifier : String;
|
|
91
|
+
attribute schemaVersion : String;
|
|
92
|
+
attribute encoding : String;
|
|
93
|
+
attribute timestampRequired : Boolean;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
item def SBOMEntry specializes SoftwareItem {
|
|
69
97
|
attribute componentName : String;
|
|
70
98
|
attribute version : String;
|
|
71
99
|
attribute supplier : String;
|
|
@@ -73,8 +101,20 @@ package memo_architecture_implementation_software_structure {
|
|
|
73
101
|
attribute hash : String;
|
|
74
102
|
}
|
|
75
103
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
104
|
+
// `ModuleUses` is native `dependency` (R10-S6): write
|
|
105
|
+
// `dependency <usingModule> to <usedModule>;` instead of a connection.
|
|
106
|
+
|
|
107
|
+
// ── Relations owned by this package ─────────────────────────────
|
|
108
|
+
// Moved out of memo_core_relationships: their ends are typed against
|
|
109
|
+
// types declared here, and core must not depend on a domain package.
|
|
110
|
+
connection def DependsOnSoup :> MemoRelationship {
|
|
111
|
+
end component : ArchitectureElement :>> source;
|
|
112
|
+
end soupItem : SoftwareElement :>> target;
|
|
113
|
+
}
|
|
114
|
+
abstract connection dependsOnSoupLinks : DependsOnSoup[*];
|
|
115
|
+
metadata def <dependsOnSoup> DependsOnSoupMetadata :> SemanticMetadata {
|
|
116
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
117
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
118
|
+
:>> baseType = dependsOnSoupLinks meta SysML::Usage;
|
|
79
119
|
}
|
|
80
120
|
}
|