@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,164 +0,0 @@
|
|
|
1
|
-
package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
|
|
4
|
-
private import memo_architecture_logical_structure::*;
|
|
5
|
-
private import memo_architecture_logical_interfaces::*;
|
|
6
|
-
private import memo_core_relationships::*;
|
|
7
|
-
private import memo_viewpoints_definitions::*;
|
|
8
|
-
private import memo_core_enumerations::*;
|
|
9
|
-
|
|
10
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
11
|
-
// Sample · Functional flow — component behaviour of dose delivery
|
|
12
|
-
//
|
|
13
|
-
// Demonstrates an Action Flow (activity) diagram of *functional/component*
|
|
14
|
-
// behaviour: how the architecture components collaborate to deliver a dose.
|
|
15
|
-
// Swimlanes group functions by the component that realises them; typed item
|
|
16
|
-
// flows show data (blue), energy (orange) and material (green) moving
|
|
17
|
-
// between functions; a fork/join runs occlusion monitoring concurrently
|
|
18
|
-
// with drive/deliver; and `fxDeliver` is a composite (double-click to
|
|
19
|
-
// drill into its valve sub-flow, then "← Parent" to return).
|
|
20
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
21
|
-
|
|
22
|
-
// Typed flow payloads
|
|
23
|
-
item def FxSensorReading specializes InterfaceItem {
|
|
24
|
-
attribute :>> itemKind = InterfaceItemKind::data;
|
|
25
|
-
}
|
|
26
|
-
item def FxRateCommand specializes InterfaceItem {
|
|
27
|
-
attribute :>> itemKind = InterfaceItemKind::command;
|
|
28
|
-
}
|
|
29
|
-
item def FxMotorEnergy specializes InterfaceItem {
|
|
30
|
-
attribute :>> itemKind = InterfaceItemKind::energy;
|
|
31
|
-
}
|
|
32
|
-
item def FxMedicationFluid specializes InterfaceItem {
|
|
33
|
-
attribute :>> itemKind = InterfaceItemKind::fluid;
|
|
34
|
-
}
|
|
35
|
-
item def FxOcclusionSignal specializes InterfaceItem {
|
|
36
|
-
attribute :>> itemKind = InterfaceItemKind::signal;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Functions with typed in/out pins
|
|
40
|
-
action def FxAcquire { out reading : FxSensorReading; }
|
|
41
|
-
action def FxCompute { in reading : FxSensorReading; out command : FxRateCommand; }
|
|
42
|
-
action def FxEnforce { in command : FxRateCommand; out safeCommand : FxRateCommand; }
|
|
43
|
-
action def FxDrive { in command : FxRateCommand; out energy : FxMotorEnergy; }
|
|
44
|
-
action def FxDeliverMedication { in energy : FxMotorEnergy; out fluid : FxMedicationFluid; }
|
|
45
|
-
action def FxMonitor { out signal : FxOcclusionSignal; }
|
|
46
|
-
action def FxDetect { in signal : FxOcclusionSignal; }
|
|
47
|
-
|
|
48
|
-
// Component hierarchy used by the Level control:
|
|
49
|
-
// L1 system → L2 subsystems → L3 allocated components.
|
|
50
|
-
part fxPumpSystem : LogicalComponent { attribute :>> name = "Infusion Pump System"; }
|
|
51
|
-
part fxSensingSubsystem : LogicalComponent { attribute :>> name = "Sensing Subsystem"; }
|
|
52
|
-
part fxControlSubsystem : LogicalComponent { attribute :>> name = "Control Subsystem"; }
|
|
53
|
-
part fxDeliverySubsystem : LogicalComponent { attribute :>> name = "Delivery Subsystem"; }
|
|
54
|
-
part fxSafetySubsystem : LogicalComponent { attribute :>> name = "Safety Subsystem"; }
|
|
55
|
-
|
|
56
|
-
// L3 components — one natural-level swimlane each
|
|
57
|
-
part fxSensor : LogicalComponent { attribute :>> name = "Sensor Subsystem"; }
|
|
58
|
-
part fxController : LogicalComponent { attribute :>> name = "Infusion Controller"; }
|
|
59
|
-
part fxActuator : LogicalComponent { attribute :>> name = "Pump Actuator"; }
|
|
60
|
-
part fxSafety : LogicalComponent { attribute :>> name = "Safety Monitor"; }
|
|
61
|
-
|
|
62
|
-
connection : Composes connect parent ::> fxPumpSystem to child ::> fxSensingSubsystem;
|
|
63
|
-
connection : Composes connect parent ::> fxPumpSystem to child ::> fxControlSubsystem;
|
|
64
|
-
connection : Composes connect parent ::> fxPumpSystem to child ::> fxDeliverySubsystem;
|
|
65
|
-
connection : Composes connect parent ::> fxPumpSystem to child ::> fxSafetySubsystem;
|
|
66
|
-
connection : Composes connect parent ::> fxSensingSubsystem to child ::> fxSensor;
|
|
67
|
-
connection : Composes connect parent ::> fxControlSubsystem to child ::> fxController;
|
|
68
|
-
connection : Composes connect parent ::> fxDeliverySubsystem to child ::> fxActuator;
|
|
69
|
-
connection : Composes connect parent ::> fxSafetySubsystem to child ::> fxSafety;
|
|
70
|
-
|
|
71
|
-
action fxDeliveryFlow {
|
|
72
|
-
action fxAcquire : FxAcquire { attribute name = "Acquire Sensor Data"; }
|
|
73
|
-
action fxCompute : FxCompute { attribute name = "Compute Infusion Rate"; }
|
|
74
|
-
|
|
75
|
-
// Split: enforce/drive/deliver runs concurrently with occlusion monitoring
|
|
76
|
-
fork fxForkDeliver;
|
|
77
|
-
action fxEnforce : FxEnforce { attribute name = "Enforce Dose Limits"; }
|
|
78
|
-
action fxDrive : FxDrive { attribute name = "Drive Pump Motor"; }
|
|
79
|
-
action fxMonitor : FxMonitor { attribute name = "Monitor Occlusion"; }
|
|
80
|
-
action fxDetect : FxDetect { attribute name = "Detect Occlusion"; }
|
|
81
|
-
join fxJoinDeliver;
|
|
82
|
-
|
|
83
|
-
// Composite function — valve sub-flow (drill-in)
|
|
84
|
-
action fxDeliver : FxDeliverMedication {
|
|
85
|
-
attribute name = "Deliver Medication";
|
|
86
|
-
action fxOpenValve { attribute name = "Open Valve"; }
|
|
87
|
-
action fxHoldDose { attribute name = "Hold Metered Dose"; }
|
|
88
|
-
action fxCloseValve { attribute name = "Close Valve"; }
|
|
89
|
-
|
|
90
|
-
flow of FxMedicationFluid from fxDeliveryFlow.fxDeliver.fxHoldDose to fxCloseValve;
|
|
91
|
-
|
|
92
|
-
first start then fxOpenValve;
|
|
93
|
-
first fxOpenValve then fxHoldDose;
|
|
94
|
-
first fxHoldDose then fxCloseValve;
|
|
95
|
-
first fxCloseValve then done;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
action fxLog { attribute name = "Log Delivery"; }
|
|
99
|
-
|
|
100
|
-
flow of FxSensorReading from fxAcquire.reading to fxCompute.reading;
|
|
101
|
-
flow of FxRateCommand from fxEnforce.safeCommand to fxDrive.command;
|
|
102
|
-
flow of FxMotorEnergy from fxDrive.energy to fxDeliver.energy;
|
|
103
|
-
flow of FxOcclusionSignal from fxMonitor.signal to fxDetect.signal;
|
|
104
|
-
|
|
105
|
-
first start then fxAcquire;
|
|
106
|
-
first fxAcquire then fxCompute;
|
|
107
|
-
first fxCompute then fxForkDeliver;
|
|
108
|
-
first fxForkDeliver then fxEnforce;
|
|
109
|
-
first fxForkDeliver then fxMonitor;
|
|
110
|
-
first fxEnforce then fxDrive;
|
|
111
|
-
first fxDrive then fxDeliver;
|
|
112
|
-
first fxMonitor then fxDetect;
|
|
113
|
-
first fxDeliver then fxJoinDeliver;
|
|
114
|
-
first fxDetect then fxJoinDeliver;
|
|
115
|
-
first fxJoinDeliver then fxLog;
|
|
116
|
-
first fxLog then done;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Swimlane allocation — which component realises each function
|
|
120
|
-
allocate fxDeliveryFlow.fxAcquire to fxSensor;
|
|
121
|
-
allocate fxDeliveryFlow.fxCompute to fxController;
|
|
122
|
-
allocate fxDeliveryFlow.fxEnforce to fxSafety;
|
|
123
|
-
allocate fxDeliveryFlow.fxDrive to fxActuator;
|
|
124
|
-
allocate fxDeliveryFlow.fxDeliver to fxActuator;
|
|
125
|
-
allocate fxDeliveryFlow.fxMonitor to fxSafety;
|
|
126
|
-
allocate fxDeliveryFlow.fxDetect to fxSafety;
|
|
127
|
-
allocate fxDeliveryFlow.fxLog to fxController;
|
|
128
|
-
allocate fxDeliveryFlow.fxDeliver.fxOpenValve to fxActuator;
|
|
129
|
-
allocate fxDeliveryFlow.fxDeliver.fxHoldDose to fxActuator;
|
|
130
|
-
allocate fxDeliveryFlow.fxDeliver.fxCloseValve to fxActuator;
|
|
131
|
-
|
|
132
|
-
view fxDeliveryView : MemoDiagramView {
|
|
133
|
-
expose fxDeliveryFlow::**;
|
|
134
|
-
expose fxPumpSystem::**;
|
|
135
|
-
attribute depth = 2;
|
|
136
|
-
attribute :>> title = "Sample · Dose Delivery (Functional Flow)";
|
|
137
|
-
attribute :>> shortDescription = "Component behaviour: functions in swimlanes per realising component, typed data/energy/material flows, a fork/join for concurrent occlusion monitoring, and a composite 'Deliver Medication' valve sub-flow (double-click to drill in).";
|
|
138
|
-
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
139
|
-
attribute :>> diagramType = "ffd";
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxAcquire to targetView ::> fxDeliveryView;
|
|
143
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxCompute to targetView ::> fxDeliveryView;
|
|
144
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxForkDeliver to targetView ::> fxDeliveryView;
|
|
145
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxEnforce to targetView ::> fxDeliveryView;
|
|
146
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDrive to targetView ::> fxDeliveryView;
|
|
147
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver to targetView ::> fxDeliveryView;
|
|
148
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxMonitor to targetView ::> fxDeliveryView;
|
|
149
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDetect to targetView ::> fxDeliveryView;
|
|
150
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxJoinDeliver to targetView ::> fxDeliveryView;
|
|
151
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxLog to targetView ::> fxDeliveryView;
|
|
152
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxOpenValve to targetView ::> fxDeliveryView;
|
|
153
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxHoldDose to targetView ::> fxDeliveryView;
|
|
154
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxCloseValve to targetView ::> fxDeliveryView;
|
|
155
|
-
connection : IncludedIn connect sourceElement ::> fxPumpSystem to targetView ::> fxDeliveryView;
|
|
156
|
-
connection : IncludedIn connect sourceElement ::> fxSensingSubsystem to targetView ::> fxDeliveryView;
|
|
157
|
-
connection : IncludedIn connect sourceElement ::> fxControlSubsystem to targetView ::> fxDeliveryView;
|
|
158
|
-
connection : IncludedIn connect sourceElement ::> fxDeliverySubsystem to targetView ::> fxDeliveryView;
|
|
159
|
-
connection : IncludedIn connect sourceElement ::> fxSafetySubsystem to targetView ::> fxDeliveryView;
|
|
160
|
-
connection : IncludedIn connect sourceElement ::> fxSensor to targetView ::> fxDeliveryView;
|
|
161
|
-
connection : IncludedIn connect sourceElement ::> fxController to targetView ::> fxDeliveryView;
|
|
162
|
-
connection : IncludedIn connect sourceElement ::> fxActuator to targetView ::> fxDeliveryView;
|
|
163
|
-
connection : IncludedIn connect sourceElement ::> fxSafety to targetView ::> fxDeliveryView;
|
|
164
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
package memo_examples_sysml_diagram_samples_model_samples_interconnection_view {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_architecture_operational_context_actors::*;
|
|
4
|
-
private import memo_architecture_operational_context_use_context::*;
|
|
5
|
-
|
|
6
|
-
private import memo_architecture_logical_interfaces::*;
|
|
7
|
-
private import memo_architecture_logical_structure::*;
|
|
8
|
-
private import memo_core_relationships::*;
|
|
9
|
-
private import memo_viewpoints_definitions::*;
|
|
10
|
-
private import memo_core_enumerations::*;
|
|
11
|
-
|
|
12
|
-
part coffeeMachine : LogicalComponent { attribute :>> name = "Coffee Machine"; }
|
|
13
|
-
part waterSupply : LogicalComponent { attribute :>> name = "Water Supply"; }
|
|
14
|
-
part waterTank : LogicalComponent { attribute :>> name = "Water Reservoir"; }
|
|
15
|
-
part heaterAssembly : LogicalComponent { attribute :>> name = "Thermal Control Assembly"; }
|
|
16
|
-
part heatingElement : LogicalComponent { attribute :>> name = "Water Heating Element"; }
|
|
17
|
-
part brewGroup : LogicalComponent { attribute :>> name = "Brew Group"; }
|
|
18
|
-
part cup : LogicalComponent { attribute :>> name = "Cup"; }
|
|
19
|
-
|
|
20
|
-
port mainsWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
|
|
21
|
-
port beverageOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
22
|
-
port supplyWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
23
|
-
port cupBeverageIn : DataPort { attribute :>> direction = DirectionKind::input; }
|
|
24
|
-
port serviceInterface : DataPort { attribute :>> direction = DirectionKind::bidirectional; }
|
|
25
|
-
port diagnostics : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
26
|
-
port tankWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
27
|
-
port tankWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
|
|
28
|
-
port heaterWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
|
|
29
|
-
port heatedWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
30
|
-
port brewWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
|
|
31
|
-
port brewedCoffeeOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
32
|
-
port heaterStatusOut : DataPort { attribute :>> direction = DirectionKind::output; }
|
|
33
|
-
|
|
34
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> waterTank;
|
|
35
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> heaterAssembly;
|
|
36
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> brewGroup;
|
|
37
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> mainsWaterIn;
|
|
38
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> beverageOut;
|
|
39
|
-
connection : Composes connect parent ::> coffeeMachine to child ::> serviceInterface;
|
|
40
|
-
connection : Composes connect parent ::> serviceInterface to child ::> diagnostics;
|
|
41
|
-
connection : Composes connect parent ::> waterTank to child ::> tankWaterOut;
|
|
42
|
-
connection : Composes connect parent ::> waterTank to child ::> tankWaterIn;
|
|
43
|
-
connection : Composes connect parent ::> heaterAssembly to child ::> heatingElement;
|
|
44
|
-
connection : Composes connect parent ::> heaterAssembly to child ::> heaterWaterIn;
|
|
45
|
-
connection : Composes connect parent ::> heaterAssembly to child ::> heatedWaterOut;
|
|
46
|
-
connection : Composes connect parent ::> brewGroup to child ::> brewWaterIn;
|
|
47
|
-
connection : Composes connect parent ::> brewGroup to child ::> brewedCoffeeOut;
|
|
48
|
-
connection : Composes connect parent ::> heatingElement to child ::> heaterStatusOut;
|
|
49
|
-
connection : Composes connect parent ::> waterSupply to child ::> supplyWaterOut;
|
|
50
|
-
connection : Composes connect parent ::> cup to child ::> cupBeverageIn;
|
|
51
|
-
|
|
52
|
-
connection : ExchangesWith connect source ::> supplyWaterOut to target ::> mainsWaterIn;
|
|
53
|
-
connection : ExchangesWith connect source ::> mainsWaterIn to target ::> tankWaterIn;
|
|
54
|
-
connection : ExchangesWith connect source ::> tankWaterOut to target ::> heaterWaterIn;
|
|
55
|
-
connection : ExchangesWith connect source ::> heatedWaterOut to target ::> brewWaterIn;
|
|
56
|
-
connection : ExchangesWith connect source ::> brewedCoffeeOut to target ::> beverageOut;
|
|
57
|
-
connection : ExchangesWith connect source ::> beverageOut to target ::> cupBeverageIn;
|
|
58
|
-
connection : ExchangesWith connect source ::> heaterStatusOut to target ::> diagnostics;
|
|
59
|
-
|
|
60
|
-
view sampleInterconnectionView : MemoDiagramView {
|
|
61
|
-
expose coffeeMachine::**;
|
|
62
|
-
expose waterSupply::**;
|
|
63
|
-
expose cup::**;
|
|
64
|
-
attribute depth = 2;
|
|
65
|
-
attribute :>> title = "Coffee Machine · Thermal & Fluid IBD";
|
|
66
|
-
attribute :>> shortDescription = "Balanced internal architecture with readable boundary ports, nested service diagnostics, and external water and beverage interfaces.";
|
|
67
|
-
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
68
|
-
attribute :>> diagramType = "ibd";
|
|
69
|
-
part :>> selectionQuery {
|
|
70
|
-
attribute :>> includeRelationshipKinds = ("Composes", "ExchangesWith");
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
connection : IncludedIn connect sourceElement ::> coffeeMachine to targetView ::> sampleInterconnectionView;
|
|
75
|
-
connection : IncludedIn connect sourceElement ::> waterSupply to targetView ::> sampleInterconnectionView;
|
|
76
|
-
connection : IncludedIn connect sourceElement ::> waterTank to targetView ::> sampleInterconnectionView;
|
|
77
|
-
connection : IncludedIn connect sourceElement ::> heaterAssembly to targetView ::> sampleInterconnectionView;
|
|
78
|
-
connection : IncludedIn connect sourceElement ::> heatingElement to targetView ::> sampleInterconnectionView;
|
|
79
|
-
connection : IncludedIn connect sourceElement ::> brewGroup to targetView ::> sampleInterconnectionView;
|
|
80
|
-
connection : IncludedIn connect sourceElement ::> cup to targetView ::> sampleInterconnectionView;
|
|
81
|
-
connection : IncludedIn connect sourceElement ::> mainsWaterIn to targetView ::> sampleInterconnectionView;
|
|
82
|
-
connection : IncludedIn connect sourceElement ::> beverageOut to targetView ::> sampleInterconnectionView;
|
|
83
|
-
connection : IncludedIn connect sourceElement ::> supplyWaterOut to targetView ::> sampleInterconnectionView;
|
|
84
|
-
connection : IncludedIn connect sourceElement ::> cupBeverageIn to targetView ::> sampleInterconnectionView;
|
|
85
|
-
connection : IncludedIn connect sourceElement ::> serviceInterface to targetView ::> sampleInterconnectionView;
|
|
86
|
-
connection : IncludedIn connect sourceElement ::> diagnostics to targetView ::> sampleInterconnectionView;
|
|
87
|
-
connection : IncludedIn connect sourceElement ::> tankWaterOut to targetView ::> sampleInterconnectionView;
|
|
88
|
-
connection : IncludedIn connect sourceElement ::> tankWaterIn to targetView ::> sampleInterconnectionView;
|
|
89
|
-
connection : IncludedIn connect sourceElement ::> heaterWaterIn to targetView ::> sampleInterconnectionView;
|
|
90
|
-
connection : IncludedIn connect sourceElement ::> heatedWaterOut to targetView ::> sampleInterconnectionView;
|
|
91
|
-
connection : IncludedIn connect sourceElement ::> brewWaterIn to targetView ::> sampleInterconnectionView;
|
|
92
|
-
connection : IncludedIn connect sourceElement ::> brewedCoffeeOut to targetView ::> sampleInterconnectionView;
|
|
93
|
-
connection : IncludedIn connect sourceElement ::> heaterStatusOut to targetView ::> sampleInterconnectionView;
|
|
94
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_view {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_architecture_operational_context_actors::*;
|
|
4
|
-
private import memo_core_relationships::*;
|
|
5
|
-
private import memo_architecture_logical_interfaces::*;
|
|
6
|
-
private import memo_architecture_operational_structure::*;
|
|
7
|
-
private import memo_viewpoints_definitions::*;
|
|
8
|
-
private import memo_core_enumerations::*;
|
|
9
|
-
|
|
10
|
-
// Operational activity across clinical roles. The fixture is intentionally
|
|
11
|
-
// product-neutral and belongs only to the diagram-samples project.
|
|
12
|
-
item def OpPrescription specializes InterfaceItem {
|
|
13
|
-
attribute :>> itemKind = InterfaceItemKind::data;
|
|
14
|
-
}
|
|
15
|
-
item def OpBolusRequest specializes InterfaceItem {
|
|
16
|
-
attribute :>> itemKind = InterfaceItemKind::signal;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
action def OpPrescribeTherapy { out prescription : OpPrescription; }
|
|
20
|
-
action def OpVerifyPrescription { in prescription : OpPrescription; }
|
|
21
|
-
action def OpRequestBolus { out bolusRequest : OpBolusRequest; }
|
|
22
|
-
action def OpCheckLockout { in bolusRequest : OpBolusRequest; }
|
|
23
|
-
|
|
24
|
-
// Use the canonical MEMO operational system type—never a sample-local
|
|
25
|
-
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
26
|
-
part opCareSystem : OperationalEntity {
|
|
27
|
-
attribute :>> name = "PCA Care System";
|
|
28
|
-
attribute :>> entityKind = OperationalEntityKind::device;
|
|
29
|
-
attribute :>> contextRole = "systemOfInterest";
|
|
30
|
-
}
|
|
31
|
-
part opClinicalTeam : User {
|
|
32
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team"; }
|
|
33
|
-
part opPatientGroup : User {
|
|
34
|
-
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient Interaction"; }
|
|
35
|
-
part opRolePhysician : User {
|
|
36
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Physician"; }
|
|
37
|
-
part opRoleNurse : User {
|
|
38
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Nurse"; }
|
|
39
|
-
part opRoleBiomed : User {
|
|
40
|
-
attribute :>> actorKind = ActorKind::technician; attribute :>> name = "Biomed Tech"; }
|
|
41
|
-
part opRolePatient : User {
|
|
42
|
-
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient"; }
|
|
43
|
-
|
|
44
|
-
connection : Composes connect parent ::> opCareSystem to child ::> opClinicalTeam;
|
|
45
|
-
connection : Composes connect parent ::> opCareSystem to child ::> opPatientGroup;
|
|
46
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRolePhysician;
|
|
47
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleNurse;
|
|
48
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleBiomed;
|
|
49
|
-
connection : Composes connect parent ::> opPatientGroup to child ::> opRolePatient;
|
|
50
|
-
|
|
51
|
-
action opSetupFlow {
|
|
52
|
-
action opPrescribe : OpPrescribeTherapy { attribute name = "Prescribe Therapy"; }
|
|
53
|
-
action opVerify : OpVerifyPrescription { attribute name = "Verify Prescription"; }
|
|
54
|
-
fork opForkPrep;
|
|
55
|
-
action opPrime { attribute name = "Prime Pump & Load Reservoir"; }
|
|
56
|
-
action opSelfTest { attribute name = "Run Device Self-Test"; }
|
|
57
|
-
join opJoinPrep;
|
|
58
|
-
action opProgram { attribute name = "Program Pump Parameters"; }
|
|
59
|
-
action opConnect { attribute name = "Connect to Patient"; }
|
|
60
|
-
action opStart { attribute name = "Start Infusion"; }
|
|
61
|
-
action opAdminister {
|
|
62
|
-
attribute name = "Administer PCA Therapy";
|
|
63
|
-
action opRequestBolus : OpRequestBolus { attribute name = "Request Bolus"; }
|
|
64
|
-
action opCheckLockout : OpCheckLockout { attribute name = "Check Lockout"; }
|
|
65
|
-
action opDeliverDose { attribute name = "Deliver Dose"; }
|
|
66
|
-
action opLogEvent { attribute name = "Log Dose Event"; }
|
|
67
|
-
flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
68
|
-
first start then opRequestBolus;
|
|
69
|
-
first opRequestBolus then opCheckLockout;
|
|
70
|
-
first opCheckLockout then opDeliverDose;
|
|
71
|
-
first opDeliverDose then opLogEvent;
|
|
72
|
-
first opLogEvent then done;
|
|
73
|
-
}
|
|
74
|
-
flow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
75
|
-
first start then opPrescribe;
|
|
76
|
-
first opPrescribe then opVerify;
|
|
77
|
-
first opVerify then opForkPrep;
|
|
78
|
-
first opForkPrep then opPrime;
|
|
79
|
-
first opForkPrep then opSelfTest;
|
|
80
|
-
first opPrime then opJoinPrep;
|
|
81
|
-
first opSelfTest then opJoinPrep;
|
|
82
|
-
first opJoinPrep then opProgram;
|
|
83
|
-
first opProgram then opConnect;
|
|
84
|
-
first opConnect then opStart;
|
|
85
|
-
first opStart then opAdminister;
|
|
86
|
-
first opAdminister then done;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
allocate opSetupFlow.opPrescribe to opRolePhysician;
|
|
90
|
-
allocate opSetupFlow.opVerify to opRoleNurse;
|
|
91
|
-
allocate opSetupFlow.opPrime to opRoleNurse;
|
|
92
|
-
allocate opSetupFlow.opSelfTest to opRoleBiomed;
|
|
93
|
-
allocate opSetupFlow.opProgram to opRoleNurse;
|
|
94
|
-
allocate opSetupFlow.opConnect to opRoleNurse;
|
|
95
|
-
allocate opSetupFlow.opStart to opRoleNurse;
|
|
96
|
-
allocate opSetupFlow.opAdminister to opRoleNurse;
|
|
97
|
-
allocate opSetupFlow.opAdminister.opRequestBolus to opRolePatient;
|
|
98
|
-
allocate opSetupFlow.opAdminister.opCheckLockout to opRoleNurse;
|
|
99
|
-
allocate opSetupFlow.opAdminister.opDeliverDose to opRoleNurse;
|
|
100
|
-
allocate opSetupFlow.opAdminister.opLogEvent to opRoleNurse;
|
|
101
|
-
|
|
102
|
-
view opSetupView : MemoDiagramView {
|
|
103
|
-
expose opSetupFlow::**;
|
|
104
|
-
expose opCareSystem::**;
|
|
105
|
-
expose opClinicalTeam::**;
|
|
106
|
-
expose opPatientGroup::**;
|
|
107
|
-
attribute depth = 2;
|
|
108
|
-
attribute :>> title = "Sample · Clinical PCA Setup (Operational)";
|
|
109
|
-
attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
|
|
110
|
-
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
111
|
-
attribute :>> diagramType = "ofd";
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrescribe to targetView ::> opSetupView;
|
|
115
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opVerify to targetView ::> opSetupView;
|
|
116
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opForkPrep to targetView ::> opSetupView;
|
|
117
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrime to targetView ::> opSetupView;
|
|
118
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opSelfTest to targetView ::> opSetupView;
|
|
119
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opJoinPrep to targetView ::> opSetupView;
|
|
120
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opProgram to targetView ::> opSetupView;
|
|
121
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opConnect to targetView ::> opSetupView;
|
|
122
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opStart to targetView ::> opSetupView;
|
|
123
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister to targetView ::> opSetupView;
|
|
124
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opRequestBolus to targetView ::> opSetupView;
|
|
125
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opCheckLockout to targetView ::> opSetupView;
|
|
126
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opDeliverDose to targetView ::> opSetupView;
|
|
127
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opLogEvent to targetView ::> opSetupView;
|
|
128
|
-
connection : IncludedIn connect sourceElement ::> opCareSystem to targetView ::> opSetupView;
|
|
129
|
-
connection : IncludedIn connect sourceElement ::> opClinicalTeam to targetView ::> opSetupView;
|
|
130
|
-
connection : IncludedIn connect sourceElement ::> opPatientGroup to targetView ::> opSetupView;
|
|
131
|
-
connection : IncludedIn connect sourceElement ::> opRolePhysician to targetView ::> opSetupView;
|
|
132
|
-
connection : IncludedIn connect sourceElement ::> opRoleNurse to targetView ::> opSetupView;
|
|
133
|
-
connection : IncludedIn connect sourceElement ::> opRoleBiomed to targetView ::> opSetupView;
|
|
134
|
-
connection : IncludedIn connect sourceElement ::> opRolePatient to targetView ::> opSetupView;
|
|
135
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// State transition sample (statetransition view kind, `stm` diagram type). A
|
|
2
|
-
// behaviour machine owns its mode states; each Transition carries `sourceState`
|
|
3
|
-
// / `targetState` naming the states it connects, and renders as a labelled edge.
|
|
4
|
-
package memo_examples_sysml_diagram_samples_model_samples_state_transition_view {
|
|
5
|
-
private import ScalarValues::*;
|
|
6
|
-
|
|
7
|
-
private import memo_architecture_functional_behavior::*;
|
|
8
|
-
private import memo_core_relationships::*;
|
|
9
|
-
private import memo_viewpoints_definitions::*;
|
|
10
|
-
private import memo_core_enumerations::*;
|
|
11
|
-
|
|
12
|
-
state pumpModes : StateMachine { attribute :>> name = "Pump Operating Modes"; }
|
|
13
|
-
|
|
14
|
-
state idle : ModeState { attribute :>> name = "Idle"; }
|
|
15
|
-
state infusing : ModeState { attribute :>> name = "Infusing"; }
|
|
16
|
-
state paused : ModeState { attribute :>> name = "Paused"; }
|
|
17
|
-
state alarm : ModeState { attribute :>> name = "Alarm"; }
|
|
18
|
-
|
|
19
|
-
// Infusing is a composite state: its substates show what the pump is doing
|
|
20
|
-
// while it is infusing, and the machine renders them nested inside it.
|
|
21
|
-
state priming : ModeState { attribute :>> name = "Priming"; }
|
|
22
|
-
state delivering : ModeState { attribute :>> name = "Delivering"; }
|
|
23
|
-
state holding : ModeState { attribute :>> name = "Holding (KVO)"; }
|
|
24
|
-
|
|
25
|
-
part tStart : Transition {
|
|
26
|
-
attribute :>> name = "start";
|
|
27
|
-
attribute :>> trigger = "startInfusion";
|
|
28
|
-
attribute :>> sourceState = "Idle"; attribute :>> targetState = "Infusing";
|
|
29
|
-
}
|
|
30
|
-
part tPause : Transition {
|
|
31
|
-
attribute :>> name = "pause";
|
|
32
|
-
attribute :>> trigger = "pauseRequested";
|
|
33
|
-
attribute :>> sourceState = "Infusing"; attribute :>> targetState = "Paused";
|
|
34
|
-
}
|
|
35
|
-
part tResume : Transition {
|
|
36
|
-
attribute :>> name = "resume";
|
|
37
|
-
attribute :>> trigger = "resumeRequested";
|
|
38
|
-
attribute :>> sourceState = "Paused"; attribute :>> targetState = "Infusing";
|
|
39
|
-
}
|
|
40
|
-
part tFault : Transition {
|
|
41
|
-
attribute :>> name = "fault";
|
|
42
|
-
attribute :>> trigger = "occlusionDetected";
|
|
43
|
-
attribute :>> sourceState = "Infusing"; attribute :>> targetState = "Alarm";
|
|
44
|
-
}
|
|
45
|
-
part tRecover : Transition {
|
|
46
|
-
attribute :>> name = "acknowledge";
|
|
47
|
-
attribute :>> trigger = "alarmCleared";
|
|
48
|
-
attribute :>> sourceState = "Alarm"; attribute :>> targetState = "Idle";
|
|
49
|
-
}
|
|
50
|
-
part tStop : Transition {
|
|
51
|
-
attribute :>> name = "stop";
|
|
52
|
-
attribute :>> trigger = "stopInfusion";
|
|
53
|
-
attribute :>> sourceState = "Infusing"; attribute :>> targetState = "Idle";
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
part tPrimed : Transition {
|
|
57
|
-
attribute :>> name = "primed";
|
|
58
|
-
attribute :>> trigger = "primeComplete";
|
|
59
|
-
attribute :>> sourceState = "Priming"; attribute :>> targetState = "Delivering";
|
|
60
|
-
}
|
|
61
|
-
part tKvo : Transition {
|
|
62
|
-
attribute :>> name = "keepVeinOpen";
|
|
63
|
-
attribute :>> trigger = "doseComplete";
|
|
64
|
-
attribute :>> sourceState = "Delivering"; attribute :>> targetState = "Holding (KVO)";
|
|
65
|
-
}
|
|
66
|
-
part tResumeDose : Transition {
|
|
67
|
-
attribute :>> name = "resumeDose";
|
|
68
|
-
attribute :>> trigger = "doseScheduled";
|
|
69
|
-
attribute :>> sourceState = "Holding (KVO)"; attribute :>> targetState = "Delivering";
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
connection : Composes connect parent ::> pumpModes to child ::> idle;
|
|
73
|
-
connection : Composes connect parent ::> pumpModes to child ::> infusing;
|
|
74
|
-
connection : Composes connect parent ::> pumpModes to child ::> paused;
|
|
75
|
-
connection : Composes connect parent ::> pumpModes to child ::> alarm;
|
|
76
|
-
connection : Composes connect parent ::> infusing to child ::> priming;
|
|
77
|
-
connection : Composes connect parent ::> infusing to child ::> delivering;
|
|
78
|
-
connection : Composes connect parent ::> infusing to child ::> holding;
|
|
79
|
-
|
|
80
|
-
view sampleStateTransitionView : MemoDiagramView {
|
|
81
|
-
expose pumpModes::**;
|
|
82
|
-
attribute depth = 2;
|
|
83
|
-
attribute :>> title = "Sample · State Transition";
|
|
84
|
-
attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
|
|
85
|
-
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
86
|
-
attribute :>> diagramType = "stm";
|
|
87
|
-
part :>> selectionQuery {
|
|
88
|
-
attribute :>> includeElementKinds = ("StateMachine", "ModeState", "Transition");
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
connection : IncludedIn connect sourceElement ::> pumpModes to targetView ::> sampleStateTransitionView;
|
|
93
|
-
connection : IncludedIn connect sourceElement ::> idle to targetView ::> sampleStateTransitionView;
|
|
94
|
-
connection : IncludedIn connect sourceElement ::> infusing to targetView ::> sampleStateTransitionView;
|
|
95
|
-
connection : IncludedIn connect sourceElement ::> paused to targetView ::> sampleStateTransitionView;
|
|
96
|
-
connection : IncludedIn connect sourceElement ::> alarm to targetView ::> sampleStateTransitionView;
|
|
97
|
-
connection : IncludedIn connect sourceElement ::> tStart to targetView ::> sampleStateTransitionView;
|
|
98
|
-
connection : IncludedIn connect sourceElement ::> tPause to targetView ::> sampleStateTransitionView;
|
|
99
|
-
connection : IncludedIn connect sourceElement ::> tResume to targetView ::> sampleStateTransitionView;
|
|
100
|
-
connection : IncludedIn connect sourceElement ::> tFault to targetView ::> sampleStateTransitionView;
|
|
101
|
-
connection : IncludedIn connect sourceElement ::> tRecover to targetView ::> sampleStateTransitionView;
|
|
102
|
-
connection : IncludedIn connect sourceElement ::> tStop to targetView ::> sampleStateTransitionView;
|
|
103
|
-
connection : IncludedIn connect sourceElement ::> priming to targetView ::> sampleStateTransitionView;
|
|
104
|
-
connection : IncludedIn connect sourceElement ::> delivering to targetView ::> sampleStateTransitionView;
|
|
105
|
-
connection : IncludedIn connect sourceElement ::> holding to targetView ::> sampleStateTransitionView;
|
|
106
|
-
connection : IncludedIn connect sourceElement ::> tPrimed to targetView ::> sampleStateTransitionView;
|
|
107
|
-
connection : IncludedIn connect sourceElement ::> tKvo to targetView ::> sampleStateTransitionView;
|
|
108
|
-
connection : IncludedIn connect sourceElement ::> tResumeDose to targetView ::> sampleStateTransitionView;
|
|
109
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
package memo_examples_sysml_diagram_samples_model_samples_tree_view {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_architecture_implementation_hardware_structure::*;
|
|
4
|
-
|
|
5
|
-
private import memo_architecture_realization_physical::*;
|
|
6
|
-
private import memo_core_relationships::*;
|
|
7
|
-
private import memo_viewpoints_definitions::*;
|
|
8
|
-
private import memo_core_enumerations::*;
|
|
9
|
-
|
|
10
|
-
part rootA : HardwareAssembly { attribute :>> name = "Root A"; }
|
|
11
|
-
part rootB : HardwareAssembly { attribute :>> name = "Root B"; }
|
|
12
|
-
part branchA1 : HardwareAssembly { attribute :>> name = "Branch A.1"; }
|
|
13
|
-
part branchA2 : HardwareAssembly { attribute :>> name = "Branch A.2 With A Deliberately Long Label"; }
|
|
14
|
-
part branchB1 : HardwareAssembly { attribute :>> name = "Branch B.1"; }
|
|
15
|
-
part leafA11 : HardwareAssembly {
|
|
16
|
-
attribute :>> name = "Leaf A.1.1";
|
|
17
|
-
attribute :>> partNumber = "PN-001";
|
|
18
|
-
}
|
|
19
|
-
part leafA12 : HardwareAssembly { attribute :>> name = "Leaf A.1.2"; }
|
|
20
|
-
part leafA21 : HardwareAssembly { attribute :>> name = "Leaf A.2.1"; }
|
|
21
|
-
part leafB11 : HardwareAssembly { attribute :>> name = "Leaf B.1.1"; }
|
|
22
|
-
|
|
23
|
-
connection : Composes connect parent ::> rootA to child ::> branchA1;
|
|
24
|
-
connection : Composes connect parent ::> rootA to child ::> branchA2;
|
|
25
|
-
connection : Composes connect parent ::> rootA to child ::> rootB;
|
|
26
|
-
connection : Composes connect parent ::> branchA1 to child ::> leafA11;
|
|
27
|
-
connection : Composes connect parent ::> branchA1 to child ::> leafA12;
|
|
28
|
-
connection : Composes connect parent ::> branchA2 to child ::> leafA21;
|
|
29
|
-
connection : Composes connect parent ::> rootB to child ::> branchB1;
|
|
30
|
-
connection : Composes connect parent ::> branchB1 to child ::> leafB11;
|
|
31
|
-
|
|
32
|
-
view sampleTreeView : MemoDiagramView {
|
|
33
|
-
expose rootA::**;
|
|
34
|
-
expose rootB::**;
|
|
35
|
-
attribute depth = 2;
|
|
36
|
-
attribute :>> title = "Sample · Tree";
|
|
37
|
-
attribute :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development.";
|
|
38
|
-
attribute :>> viewKind = DiagramViewKind::general;
|
|
39
|
-
attribute :>> diagramType = "bdd";
|
|
40
|
-
attribute :>> layoutHint = "tree";
|
|
41
|
-
attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
|
|
42
|
-
part :>> selectionQuery {
|
|
43
|
-
attribute :>> includeRelationshipKinds = ("Composes");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
connection : IncludedIn connect sourceElement ::> rootA to targetView ::> sampleTreeView;
|
|
48
|
-
connection : IncludedIn connect sourceElement ::> rootB to targetView ::> sampleTreeView;
|
|
49
|
-
connection : IncludedIn connect sourceElement ::> branchA1 to targetView ::> sampleTreeView;
|
|
50
|
-
connection : IncludedIn connect sourceElement ::> branchA2 to targetView ::> sampleTreeView;
|
|
51
|
-
connection : IncludedIn connect sourceElement ::> branchB1 to targetView ::> sampleTreeView;
|
|
52
|
-
connection : IncludedIn connect sourceElement ::> leafA11 to targetView ::> sampleTreeView;
|
|
53
|
-
connection : IncludedIn connect sourceElement ::> leafA12 to targetView ::> sampleTreeView;
|
|
54
|
-
connection : IncludedIn connect sourceElement ::> leafA21 to targetView ::> sampleTreeView;
|
|
55
|
-
connection : IncludedIn connect sourceElement ::> leafB11 to targetView ::> sampleTreeView;
|
|
56
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# @memoarchitect/ontology rendering configuration
|
|
2
|
-
# Architecture layer colors — v12 Visual Map palette
|
|
3
|
-
|
|
4
|
-
layers:
|
|
5
|
-
- id: operational
|
|
6
|
-
label: Operational
|
|
7
|
-
color: "#C0392B"
|
|
8
|
-
|
|
9
|
-
- id: behavioral
|
|
10
|
-
label: Behavioral
|
|
11
|
-
color: "#E74C3C"
|
|
12
|
-
|
|
13
|
-
- id: functional
|
|
14
|
-
label: Functional
|
|
15
|
-
color: "#E67E22"
|
|
16
|
-
|
|
17
|
-
- id: logical
|
|
18
|
-
label: Logical
|
|
19
|
-
color: "#7B68EE"
|
|
20
|
-
|
|
21
|
-
- id: software
|
|
22
|
-
label: Software
|
|
23
|
-
color: "#F39C12"
|
|
24
|
-
|
|
25
|
-
- id: software-extension
|
|
26
|
-
label: Software Extension (ROS)
|
|
27
|
-
color: "#D4AC0D"
|
|
28
|
-
|
|
29
|
-
- id: hardware
|
|
30
|
-
label: Hardware
|
|
31
|
-
color: "#95A5A6"
|
|
32
|
-
|
|
33
|
-
- id: safety
|
|
34
|
-
label: Safety
|
|
35
|
-
color: "#E74C3C"
|
|
36
|
-
|
|
37
|
-
- id: security
|
|
38
|
-
label: Security
|
|
39
|
-
color: "#2C3E50"
|
|
40
|
-
|
|
41
|
-
- id: privacy
|
|
42
|
-
label: Privacy
|
|
43
|
-
color: "#8E44AD"
|
|
44
|
-
|
|
45
|
-
- id: verification
|
|
46
|
-
label: Verification
|
|
47
|
-
color: "#2ECC71"
|
|
48
|
-
|
|
49
|
-
# Model Explorer taxonomy. This is ontology metadata: Architect receives these
|
|
50
|
-
# values from memo-tools and does not infer MEMO's V-model from source paths.
|
|
51
|
-
explorer:
|
|
52
|
-
classifications:
|
|
53
|
-
- { source: activities, domain: architecture, group: operational }
|
|
54
|
-
- { source: context, domain: architecture, group: operational }
|
|
55
|
-
# Context has concrete namespaces such as actors and use_context; retain
|
|
56
|
-
# them when the Explorer receives ontology-derived kinds directly.
|
|
57
|
-
- { source: actors, domain: architecture, group: operational }
|
|
58
|
-
- { source: use_context, domain: architecture, group: operational }
|
|
59
|
-
- { source: workflows, domain: architecture, group: operational }
|
|
60
|
-
- { source: scenarios, domain: architecture, group: operational }
|
|
61
|
-
- { source: use_cases, domain: architecture, group: operational }
|
|
62
|
-
- { source: interaction, domain: architecture, group: operational }
|
|
63
|
-
- { source: operational, domain: architecture, group: operational }
|
|
64
|
-
- { source: functions, domain: architecture, group: functional }
|
|
65
|
-
- { source: behavior, domain: architecture, group: functional }
|
|
66
|
-
- { source: constraints, domain: architecture, group: functional }
|
|
67
|
-
- { source: logical_structure, domain: architecture, group: logical }
|
|
68
|
-
- { source: interfaces, domain: architecture, group: logical }
|
|
69
|
-
- { source: hardware_structure, domain: architecture, group: implementation }
|
|
70
|
-
# HardwareAssembly is declared in architecture/implementation/hardware.
|
|
71
|
-
- { source: implementation, domain: architecture, group: implementation }
|
|
72
|
-
- { source: software_structure, domain: architecture, group: implementation }
|
|
73
|
-
- { source: software_runtime, domain: architecture, group: implementation }
|
|
74
|
-
- { source: physical, domain: architecture, group: realization }
|
|
75
|
-
- { source: deployment, domain: architecture, group: realization }
|
|
76
|
-
- { source: needs, domain: assurance, group: requirements }
|
|
77
|
-
- { source: requirements, domain: assurance, group: requirements }
|
|
78
|
-
- { source: safety, domain: assurance, group: safety-risk }
|
|
79
|
-
- { source: safety_analysis, domain: assurance, group: safety-risk }
|
|
80
|
-
- { source: cybersecurity, domain: assurance, group: cybersecurity }
|
|
81
|
-
- { source: human_factors, domain: assurance, group: human-factors }
|
|
82
|
-
- { source: verification, domain: assurance, group: verification-validation }
|
|
83
|
-
- { source: core, domain: assurance, group: evidence }
|
|
84
|
-
- { source: methodology, domain: methodology, group: methodology }
|