@memoarchitect/ontology 0.6.5 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
- package/examples/gpca-pump/model/catalog/project.sysml +26 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/clinical/memo.package.yaml +18 -0
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/memo.package.yaml +17 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +15 -2
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +6 -6
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +28 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -43
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
- package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
- package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
- package/src/architecture/operational/activities/memo_activities.sysml +10 -4
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +96 -0
- package/src/core/common/memo_common.sysml +140 -18
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +17 -1
- package/src/core/enumerations/memo_enumerations.sysml +101 -20
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +199 -194
- package/src/memo_namespaces.sysml +127 -67
- package/src/methodology/core/memo_core.sysml +69 -2
- package/src/methodology/profiles/memo_profiles.sysml +31 -41
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +243 -74
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +4 -2
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/clinical/memo.package.yaml +0 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
- package/examples/extensions/template/memo.package.yaml +0 -9
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
- package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
- package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
- package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/change/memo_change.sysml +0 -17
- package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
- package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
format: memo.viewlayout/v1
|
|
2
|
+
viewSource: model/catalog/viewpoints/unassigned/views/interconnection_view.sysml
|
|
3
|
+
layouts:
|
|
4
|
+
diag-sample-sampleInterconnectionView:
|
|
5
|
+
nodes:
|
|
6
|
+
coffeeMachine:
|
|
7
|
+
x: 301.2
|
|
8
|
+
y: 0
|
|
9
|
+
ports:
|
|
10
|
+
mainsWaterIn:
|
|
11
|
+
x: -12
|
|
12
|
+
y: 95
|
|
13
|
+
side: left
|
|
14
|
+
beverageOut:
|
|
15
|
+
x: 536
|
|
16
|
+
y: 375
|
|
17
|
+
side: right
|
|
18
|
+
serviceInterface:
|
|
19
|
+
x: 536
|
|
20
|
+
y: 217
|
|
21
|
+
side: right
|
|
22
|
+
diagnostics:
|
|
23
|
+
x: 536
|
|
24
|
+
y: 247
|
|
25
|
+
side: right
|
|
26
|
+
width: 768
|
|
27
|
+
height: 422
|
|
28
|
+
waterTank:
|
|
29
|
+
x: 118.75
|
|
30
|
+
y: 48
|
|
31
|
+
ports:
|
|
32
|
+
tankWaterOut:
|
|
33
|
+
x: 299.5
|
|
34
|
+
y: 47
|
|
35
|
+
side: right
|
|
36
|
+
tankWaterIn:
|
|
37
|
+
x: -12
|
|
38
|
+
y: 47
|
|
39
|
+
side: left
|
|
40
|
+
heaterAssembly:
|
|
41
|
+
x: 78.80000000000001
|
|
42
|
+
y: 220
|
|
43
|
+
ports:
|
|
44
|
+
heaterWaterIn:
|
|
45
|
+
x: -12
|
|
46
|
+
y: 47
|
|
47
|
+
side: left
|
|
48
|
+
heatedWaterOut:
|
|
49
|
+
x: 352
|
|
50
|
+
y: 47
|
|
51
|
+
side: right
|
|
52
|
+
brewGroup:
|
|
53
|
+
x: 134
|
|
54
|
+
y: 328
|
|
55
|
+
ports:
|
|
56
|
+
brewWaterIn:
|
|
57
|
+
x: -12
|
|
58
|
+
y: 47
|
|
59
|
+
side: left
|
|
60
|
+
brewedCoffeeOut:
|
|
61
|
+
x: 268
|
|
62
|
+
y: 47
|
|
63
|
+
side: right
|
|
64
|
+
waterSupply:
|
|
65
|
+
x: 0
|
|
66
|
+
y: 170
|
|
67
|
+
ports:
|
|
68
|
+
supplyWaterOut:
|
|
69
|
+
x: 198.8
|
|
70
|
+
y: 47
|
|
71
|
+
side: right
|
|
72
|
+
cup:
|
|
73
|
+
x: 1000
|
|
74
|
+
y: 320
|
|
75
|
+
ports:
|
|
76
|
+
cupBeverageIn:
|
|
77
|
+
x: -12
|
|
78
|
+
y: 50
|
|
79
|
+
side: left
|
|
80
|
+
edges:
|
|
81
|
+
rel-66: {}
|
|
82
|
+
rel-67: {}
|
|
83
|
+
rel-68: {}
|
|
84
|
+
rel-69: {}
|
|
85
|
+
rel-70: {}
|
|
86
|
+
rel-71: {}
|
|
87
|
+
annotations: {}
|
|
88
|
+
canvas:
|
|
89
|
+
autoLayout: false
|
|
90
|
+
zoom: 0.83251321227496
|
|
91
|
+
pan:
|
|
92
|
+
x: -129.43112026011397
|
|
93
|
+
y: -3.900376690780462
|
|
94
|
+
coordinateSpace: context-child-v1
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_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_architecture_operational_activities::*;
|
|
8
|
+
private import memo_viewpoints_definitions::*;
|
|
9
|
+
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
10
|
+
private import memo_core_enumerations::*;
|
|
11
|
+
|
|
12
|
+
// Operational activity across clinical roles. The fixture is intentionally
|
|
13
|
+
// product-neutral and belongs only to the diagram-samples project.
|
|
14
|
+
item def OpPrescription specializes InterfaceItem {
|
|
15
|
+
attribute :>> itemKind = InterfaceItemKind::data;
|
|
16
|
+
}
|
|
17
|
+
item def OpBolusRequest specializes InterfaceItem {
|
|
18
|
+
attribute :>> itemKind = InterfaceItemKind::signal;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
action def OpPrescribeTherapy specializes OperationalActivity { out item prescription : OpPrescription; }
|
|
22
|
+
action def OpVerifyPrescription specializes OperationalActivity { in item prescription : OpPrescription; }
|
|
23
|
+
action def OpRequestBolus specializes OperationalActivity { out item bolusRequest : OpBolusRequest; }
|
|
24
|
+
action def OpCheckLockout specializes OperationalActivity { in item bolusRequest : OpBolusRequest; }
|
|
25
|
+
|
|
26
|
+
// Use the canonical MEMO operational system type—never a sample-local
|
|
27
|
+
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
28
|
+
part opCareSystem : OperationalEntity {
|
|
29
|
+
attribute :>> name = "PCA Care System";
|
|
30
|
+
attribute :>> entityKind = OperationalEntityKind::device;
|
|
31
|
+
attribute :>> responsibility = "System of interest for this context view.";
|
|
32
|
+
part opClinicalTeam : User {
|
|
33
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team";
|
|
34
|
+
part opRolePhysician : User {
|
|
35
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Physician"; }
|
|
36
|
+
part opRoleNurse : User {
|
|
37
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Nurse"; }
|
|
38
|
+
part opRoleBiomed : User {
|
|
39
|
+
attribute :>> actorKind = ActorKind::technician; attribute :>> name = "Biomed Tech"; }
|
|
40
|
+
}
|
|
41
|
+
part opPatientGroup : User {
|
|
42
|
+
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient Interaction";
|
|
43
|
+
part opRolePatient : User {
|
|
44
|
+
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient"; }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
action opSetupFlow : OperationalActivity {
|
|
49
|
+
action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
|
|
50
|
+
action opVerify : OpVerifyPrescription { attribute :>> name = "Verify Prescription"; }
|
|
51
|
+
fork opForkPrep;
|
|
52
|
+
action opPrime : OperationalActivity { attribute :>> name = "Prime Pump & Load Reservoir"; }
|
|
53
|
+
action opSelfTest : OperationalActivity { attribute :>> name = "Run Device Self-Test"; }
|
|
54
|
+
join opJoinPrep;
|
|
55
|
+
action opProgram : OperationalActivity { attribute :>> name = "Program Pump Parameters"; }
|
|
56
|
+
action opConnect : OperationalActivity { attribute :>> name = "Connect to Patient"; }
|
|
57
|
+
action opStart : OperationalActivity { attribute :>> name = "Start Infusion"; }
|
|
58
|
+
action opAdminister : OperationalActivity {
|
|
59
|
+
attribute :>> name = "Administer PCA Therapy";
|
|
60
|
+
action opRequestBolus : OpRequestBolus { attribute :>> name = "Request Bolus"; }
|
|
61
|
+
action opCheckLockout : OpCheckLockout { attribute :>> name = "Check Lockout"; }
|
|
62
|
+
action opDeliverDose : OperationalActivity { attribute :>> name = "Deliver Dose"; }
|
|
63
|
+
action opLogEvent : OperationalActivity { attribute :>> name = "Log Dose Event"; }
|
|
64
|
+
flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
65
|
+
first start then opRequestBolus;
|
|
66
|
+
first opRequestBolus then opCheckLockout;
|
|
67
|
+
first opCheckLockout then opDeliverDose;
|
|
68
|
+
first opDeliverDose then opLogEvent;
|
|
69
|
+
first opLogEvent then done;
|
|
70
|
+
}
|
|
71
|
+
flow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
72
|
+
first start then opPrescribe;
|
|
73
|
+
first opPrescribe then opVerify;
|
|
74
|
+
first opVerify then opForkPrep;
|
|
75
|
+
first opForkPrep then opPrime;
|
|
76
|
+
first opForkPrep then opSelfTest;
|
|
77
|
+
first opPrime then opJoinPrep;
|
|
78
|
+
first opSelfTest then opJoinPrep;
|
|
79
|
+
first opJoinPrep then opProgram;
|
|
80
|
+
first opProgram then opConnect;
|
|
81
|
+
first opConnect then opStart;
|
|
82
|
+
first opStart then opAdminister;
|
|
83
|
+
first opAdminister then done;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
allocate opSetupFlow.opPrescribe to opCareSystem.opClinicalTeam.opRolePhysician;
|
|
87
|
+
allocate opSetupFlow.opVerify to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
88
|
+
allocate opSetupFlow.opPrime to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
89
|
+
allocate opSetupFlow.opSelfTest to opCareSystem.opClinicalTeam.opRoleBiomed;
|
|
90
|
+
allocate opSetupFlow.opProgram to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
91
|
+
allocate opSetupFlow.opConnect to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
92
|
+
allocate opSetupFlow.opStart to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
93
|
+
allocate opSetupFlow.opAdminister to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
94
|
+
allocate opSetupFlow.opAdminister.opRequestBolus to opCareSystem.opPatientGroup.opRolePatient;
|
|
95
|
+
allocate opSetupFlow.opAdminister.opCheckLockout to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
96
|
+
allocate opSetupFlow.opAdminister.opDeliverDose to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
97
|
+
allocate opSetupFlow.opAdminister.opLogEvent to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
98
|
+
|
|
99
|
+
view opSetupView : MemoDiagramView {
|
|
100
|
+
expose opSetupFlow::**;
|
|
101
|
+
expose opCareSystem::**;
|
|
102
|
+
attribute depth = 2;
|
|
103
|
+
attribute :>> title = "Sample · Clinical PCA Setup (Operational)";
|
|
104
|
+
attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
|
|
105
|
+
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
106
|
+
attribute :>> diagramType = "ofd";
|
|
107
|
+
part :>> viewpointDefinition = operationalViewpoint;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
format: memo.viewlayout/v1
|
|
2
|
+
viewSource: model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml
|
|
3
|
+
layouts:
|
|
4
|
+
diag-sample-opSetupView:
|
|
5
|
+
nodes: {}
|
|
6
|
+
edges: {}
|
|
7
|
+
canvas:
|
|
8
|
+
autoLayout: true
|
|
9
|
+
zoom: 0.3666153460391409
|
|
10
|
+
pan:
|
|
11
|
+
x: 359.78478424853927
|
|
12
|
+
y: 41.19938625300375
|
|
13
|
+
coordinateSpace: context-child-v1
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// Requirements sample (general view kind, `req` diagram type). Stakeholder needs
|
|
2
2
|
// on the left derive into system requirements; `DerivesFrom` edges render as the
|
|
3
3
|
// requirements-diagram trace lines.
|
|
4
|
-
package
|
|
4
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view {
|
|
5
5
|
private import ScalarValues::*;
|
|
6
6
|
|
|
7
7
|
private import memo_assurance_requirements_needs::*;
|
|
8
8
|
private import memo_assurance_requirements::*;
|
|
9
9
|
private import memo_core_relationships::*;
|
|
10
10
|
private import memo_viewpoints_definitions::*;
|
|
11
|
+
private import memo_viewpoints_requirements_requirements_viewpoint::*;
|
|
11
12
|
private import memo_core_enumerations::*;
|
|
12
13
|
|
|
13
14
|
requirement needSafeTherapy : Need {
|
|
@@ -45,19 +46,17 @@ package memo_examples_sysml_diagram_samples_model_samples_requirements_view {
|
|
|
45
46
|
view sampleRequirementsView : MemoDiagramView {
|
|
46
47
|
expose needSafeTherapy::**;
|
|
47
48
|
expose needTimelyAlarms::**;
|
|
49
|
+
expose reqDoseLimit;
|
|
50
|
+
expose reqOcclusionAlarm;
|
|
51
|
+
expose reqAlarmLoudness;
|
|
48
52
|
attribute depth = 1;
|
|
49
53
|
attribute :>> title = "Sample · Requirements";
|
|
50
54
|
attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
|
|
51
55
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
52
56
|
attribute :>> diagramType = "req";
|
|
57
|
+
part :>> viewpointDefinition = requirementsViewpoint;
|
|
53
58
|
part :>> selectionQuery {
|
|
54
59
|
attribute :>> includeRelationshipKinds = ("DerivesFrom");
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
|
-
|
|
58
|
-
connection : IncludedIn connect sourceElement ::> needSafeTherapy to targetView ::> sampleRequirementsView;
|
|
59
|
-
connection : IncludedIn connect sourceElement ::> needTimelyAlarms to targetView ::> sampleRequirementsView;
|
|
60
|
-
connection : IncludedIn connect sourceElement ::> reqDoseLimit to targetView ::> sampleRequirementsView;
|
|
61
|
-
connection : IncludedIn connect sourceElement ::> reqOcclusionAlarm to targetView ::> sampleRequirementsView;
|
|
62
|
-
connection : IncludedIn connect sourceElement ::> reqAlarmLoudness to targetView ::> sampleRequirementsView;
|
|
63
62
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Standard SysML v2 activity sample (actionflow view kind, `afd` diagram type).
|
|
2
|
+
//
|
|
3
|
+
// The view over `activity_example::CustomerProcess`, the standard-SysML activity
|
|
4
|
+
// fixture in `model/sysml_v2_activity_example.sysml`. It exists because the
|
|
5
|
+
// fixture's whole point is the node types `action_flow_view.sysml` does not
|
|
6
|
+
// have — decision, merge, fork, join, accept, send, terminate, and guarded
|
|
7
|
+
// successions. Without a view exposing it the fixture parses into the model and
|
|
8
|
+
// is never drawn, which is indistinguishable from a renderer that cannot draw
|
|
9
|
+
// decisions.
|
|
10
|
+
//
|
|
11
|
+
// Nothing here specializes a MEMO kind: the fixture is plain standard SysML,
|
|
12
|
+
// and that is the property under test. The renderer classifies its nodes from
|
|
13
|
+
// the metamodel (`activity-notation.ts`), not from an ontology kind.
|
|
14
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard_activity_view {
|
|
15
|
+
private import ScalarValues::*;
|
|
16
|
+
|
|
17
|
+
private import memo_core_relationships::*;
|
|
18
|
+
private import memo_viewpoints_definitions::*;
|
|
19
|
+
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
20
|
+
private import memo_core_enumerations::*;
|
|
21
|
+
|
|
22
|
+
private import activity_example::*;
|
|
23
|
+
|
|
24
|
+
view standardActivityView : MemoDiagramView {
|
|
25
|
+
expose CustomerProcess::**;
|
|
26
|
+
attribute depth = 2;
|
|
27
|
+
attribute :>> title = "Sample · Customer Purchase Process";
|
|
28
|
+
attribute :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes.";
|
|
29
|
+
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
30
|
+
attribute :>> diagramType = "afd";
|
|
31
|
+
part :>> viewpointDefinition = functionalViewpoint;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// State transition sample (statetransition view kind, `stm` diagram type). A
|
|
2
|
+
// behaviour machine owns its mode states by containing them, and each native
|
|
3
|
+
// transition lives inside the state whose substates it connects.
|
|
4
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_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_viewpoints_functional_functional_viewpoint::*;
|
|
11
|
+
private import memo_core_enumerations::*;
|
|
12
|
+
private import memo_core_common::*;
|
|
13
|
+
|
|
14
|
+
state pumpModes : StateMachine {
|
|
15
|
+
attribute :>> name = "Pump Operating Modes";
|
|
16
|
+
|
|
17
|
+
state idle : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Idle"; }
|
|
18
|
+
|
|
19
|
+
// Infusing is a composite state: its substates show what the pump is
|
|
20
|
+
// doing while it is infusing, and containment is the nesting itself —
|
|
21
|
+
// not a parallel set of Composes edges.
|
|
22
|
+
state infusing : MemoState {
|
|
23
|
+
attribute :>> stateKind = StateKind::mode;
|
|
24
|
+
attribute :>> name = "Infusing";
|
|
25
|
+
|
|
26
|
+
state priming : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Priming"; }
|
|
27
|
+
state delivering : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Delivering"; }
|
|
28
|
+
state holding : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Holding (KVO)"; }
|
|
29
|
+
|
|
30
|
+
transition tPrimed first priming then delivering {
|
|
31
|
+
@TransitionRecord { :>> name = "primed"; :>> trigger = "primeComplete"; }
|
|
32
|
+
}
|
|
33
|
+
transition tKvo first delivering then holding {
|
|
34
|
+
@TransitionRecord { :>> name = "keepVeinOpen"; :>> trigger = "doseComplete"; }
|
|
35
|
+
}
|
|
36
|
+
transition tResumeDose first holding then delivering {
|
|
37
|
+
@TransitionRecord { :>> name = "resumeDose"; :>> trigger = "doseScheduled"; }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
state paused : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Paused"; }
|
|
42
|
+
state alarm : MemoState { attribute :>> stateKind = StateKind::mode; attribute :>> name = "Alarm"; }
|
|
43
|
+
|
|
44
|
+
transition tStart first idle then infusing {
|
|
45
|
+
@TransitionRecord { :>> name = "start"; :>> trigger = "startInfusion"; }
|
|
46
|
+
}
|
|
47
|
+
transition tPause first infusing then paused {
|
|
48
|
+
@TransitionRecord { :>> name = "pause"; :>> trigger = "pauseRequested"; }
|
|
49
|
+
}
|
|
50
|
+
transition tResume first paused then infusing {
|
|
51
|
+
@TransitionRecord { :>> name = "resume"; :>> trigger = "resumeRequested"; }
|
|
52
|
+
}
|
|
53
|
+
transition tFault first infusing then alarm {
|
|
54
|
+
@TransitionRecord { :>> name = "fault"; :>> trigger = "occlusionDetected"; }
|
|
55
|
+
}
|
|
56
|
+
transition tRecover first alarm then idle {
|
|
57
|
+
@TransitionRecord { :>> name = "acknowledge"; :>> trigger = "alarmCleared"; }
|
|
58
|
+
}
|
|
59
|
+
transition tStop first infusing then idle {
|
|
60
|
+
@TransitionRecord { :>> name = "stop"; :>> trigger = "stopInfusion"; }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
view sampleStateTransitionView : MemoDiagramView {
|
|
65
|
+
expose pumpModes::**;
|
|
66
|
+
attribute depth = 2;
|
|
67
|
+
attribute :>> title = "Sample · State Transition";
|
|
68
|
+
attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
|
|
69
|
+
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
70
|
+
attribute :>> diagramType = "stm";
|
|
71
|
+
part :>> viewpointDefinition = functionalViewpoint;
|
|
72
|
+
part :>> selectionQuery {
|
|
73
|
+
attribute :>> includeElementKinds = ("StateMachine", "MemoState");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// The machine is one containment tree, so exposing its root reaches every
|
|
78
|
+
// state and transition; the former per-element IncludedIn list restated
|
|
79
|
+
// that tree a second time and is gone with it.
|
|
80
|
+
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_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_viewpoints_physical_physical_viewpoint::*;
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
|
|
11
|
+
part rootA : HardwareAssembly {
|
|
12
|
+
attribute :>> name = "Root A";
|
|
13
|
+
part branchA1 : HardwareAssembly {
|
|
14
|
+
attribute :>> name = "Branch A.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
|
+
}
|
|
21
|
+
part branchA2 : HardwareAssembly {
|
|
22
|
+
attribute :>> name = "Branch A.2 With A Deliberately Long Label";
|
|
23
|
+
part leafA21 : HardwareAssembly { attribute :>> name = "Leaf A.2.1"; }
|
|
24
|
+
}
|
|
25
|
+
part rootB : HardwareAssembly {
|
|
26
|
+
attribute :>> name = "Root B";
|
|
27
|
+
part branchB1 : HardwareAssembly {
|
|
28
|
+
attribute :>> name = "Branch B.1";
|
|
29
|
+
part leafB11 : HardwareAssembly { attribute :>> name = "Leaf B.1.1"; }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
view sampleTreeView : MemoDiagramView {
|
|
35
|
+
expose rootA::**;
|
|
36
|
+
attribute depth = 2;
|
|
37
|
+
attribute :>> title = "Sample · Tree";
|
|
38
|
+
attribute :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development.";
|
|
39
|
+
attribute :>> viewKind = DiagramViewKind::general;
|
|
40
|
+
attribute :>> diagramType = "bdd";
|
|
41
|
+
part :>> viewpointDefinition = physicalViewpoint;
|
|
42
|
+
attribute :>> layoutHint = "tree";
|
|
43
|
+
attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
|
|
44
|
+
part :>> selectionQuery {
|
|
45
|
+
attribute :>> includeRelationshipKinds = ("Composes");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
private import memo_architecture_operational_context_actors::*;
|
|
4
4
|
private import memo_architecture_operational_use_cases::*;
|
|
5
5
|
private import memo_core_relationships::*;
|
|
6
6
|
private import memo_viewpoints_definitions::*;
|
|
7
|
+
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
7
8
|
private import memo_core_enumerations::*;
|
|
8
9
|
|
|
9
10
|
// Product-neutral fixture for the UML-style use-case presentation.
|
|
@@ -24,16 +25,25 @@ package memo_examples_sysml_diagram_samples_model_samples_use_case_view {
|
|
|
24
25
|
attribute :>> id = "UC-SAMPLE-001";
|
|
25
26
|
attribute :>> name = "Review Device Status";
|
|
26
27
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
28
|
+
include validateTherapySettings;
|
|
29
|
+
subject supportingSystem;
|
|
30
|
+
actor patientActor = patient;
|
|
27
31
|
}
|
|
28
32
|
use case configureTherapy : UseCase {
|
|
29
33
|
attribute :>> id = "UC-SAMPLE-002";
|
|
30
34
|
attribute :>> name = "Configure Therapy";
|
|
31
35
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
36
|
+
include reviewStatus;
|
|
37
|
+
subject supportingSystem;
|
|
38
|
+
actor clinicianInitiator = clinician;
|
|
39
|
+
actor patientActor = patient;
|
|
32
40
|
}
|
|
33
41
|
use case maintainDevice : UseCase {
|
|
34
42
|
attribute :>> id = "UC-SAMPLE-003";
|
|
35
43
|
attribute :>> name = "Maintain Device";
|
|
36
44
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
45
|
+
subject supportingSystem;
|
|
46
|
+
actor serviceTechnicianActor = serviceTechnician;
|
|
37
47
|
}
|
|
38
48
|
|
|
39
49
|
use case documentTreatment : UseCase {
|
|
@@ -47,15 +57,10 @@ package memo_examples_sysml_diagram_samples_model_samples_use_case_view {
|
|
|
47
57
|
attribute :>> id = "UC-SAMPLE-005";
|
|
48
58
|
attribute :>> name = "Validate Therapy Settings";
|
|
49
59
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
60
|
+
subject supportingSystem;
|
|
61
|
+
actor clinicianActor = clinician;
|
|
50
62
|
}
|
|
51
63
|
|
|
52
|
-
connection : Initiates connect initiatingUser ::> clinician to initiatedUseCase ::> configureTherapy;
|
|
53
|
-
connection : ParticipatesIn connect participatingActor ::> patient to useCase ::> reviewStatus;
|
|
54
|
-
connection : ParticipatesIn connect participatingActor ::> patient to useCase ::> configureTherapy;
|
|
55
|
-
connection : ParticipatesIn connect participatingActor ::> serviceTechnician to useCase ::> maintainDevice;
|
|
56
|
-
connection : ParticipatesIn connect participatingActor ::> clinician to useCase ::> validateTherapySettings;
|
|
57
|
-
connection : Includes connect includingUseCase ::> configureTherapy to includedUseCase ::> reviewStatus;
|
|
58
|
-
connection : Includes connect includingUseCase ::> reviewStatus to includedUseCase ::> validateTherapySettings;
|
|
59
64
|
connection : Extends connect extendingUseCase ::> documentTreatment to extendedUseCase ::> reviewStatus;
|
|
60
65
|
|
|
61
66
|
view sampleUseCaseView : MemoDiagramView {
|
|
@@ -71,9 +76,10 @@ package memo_examples_sysml_diagram_samples_model_samples_use_case_view {
|
|
|
71
76
|
attribute :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation.";
|
|
72
77
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
73
78
|
attribute :>> diagramType = "ucd";
|
|
79
|
+
part :>> viewpointDefinition = operationalViewpoint;
|
|
74
80
|
part :>> selectionQuery {
|
|
75
81
|
attribute :>> includeElementKinds = ("User", "UseCase");
|
|
76
|
-
attribute :>> includeRelationshipKinds = ("
|
|
82
|
+
attribute :>> includeRelationshipKinds = ("ParticipatesIn", "IncludesStep", "Extends");
|
|
77
83
|
}
|
|
78
84
|
// Presentation is owned by the model view, rather than a canvas control.
|
|
79
85
|
attribute :>> layoutHint = "usecase:level=all;edge=rounded";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// Runnable standard SysML v2 action-flow sample.
|
|
2
|
+
package activity_example {
|
|
3
|
+
private import ScalarValues::*;
|
|
4
|
+
|
|
5
|
+
item def Order;
|
|
6
|
+
item def Receipt;
|
|
7
|
+
part def Customer;
|
|
8
|
+
action def ProcessOrder;
|
|
9
|
+
|
|
10
|
+
action def FulfillOrder {
|
|
11
|
+
part customer : Customer;
|
|
12
|
+
action receiveOrder accept order : Order;
|
|
13
|
+
action validateOrder { in order : Order; }
|
|
14
|
+
decide routeOrder;
|
|
15
|
+
action processOrder : ProcessOrder;
|
|
16
|
+
action rejectOrder;
|
|
17
|
+
merge afterDecision;
|
|
18
|
+
fork parallelWork;
|
|
19
|
+
action prepareShipment;
|
|
20
|
+
action createInvoice;
|
|
21
|
+
join readyToNotify;
|
|
22
|
+
action notifyCustomer { out receipt : Receipt; }
|
|
23
|
+
then action sendReceipt send notifyCustomer.receipt to customer;
|
|
24
|
+
then terminate;
|
|
25
|
+
|
|
26
|
+
succession first start then receiveOrder;
|
|
27
|
+
succession first receiveOrder then validateOrder;
|
|
28
|
+
flow of Order from receiveOrder.order to validateOrder.order;
|
|
29
|
+
succession first validateOrder then routeOrder;
|
|
30
|
+
succession first routeOrder if true then processOrder;
|
|
31
|
+
succession first routeOrder if false then rejectOrder;
|
|
32
|
+
succession first processOrder then afterDecision;
|
|
33
|
+
succession first rejectOrder then afterDecision;
|
|
34
|
+
succession first afterDecision then parallelWork;
|
|
35
|
+
succession first parallelWork then prepareShipment;
|
|
36
|
+
succession first parallelWork then createInvoice;
|
|
37
|
+
succession first prepareShipment then readyToNotify;
|
|
38
|
+
succession first createInvoice then readyToNotify;
|
|
39
|
+
succession first readyToNotify then notifyCustomer;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Customer purchase behavior encoded from the reference activity diagram.
|
|
43
|
+
// The source picture draws two outgoing paths directly from
|
|
44
|
+
// viewShoppingBasket. In the semantic model that choice is made explicit
|
|
45
|
+
// with shoppingDecision; browseCatalog is the merge required to re-enter
|
|
46
|
+
// the browsing loop without making viewBookStore wait for both inputs.
|
|
47
|
+
action def CustomerProcess {
|
|
48
|
+
attribute validUser : Boolean;
|
|
49
|
+
attribute continueShopping : Boolean;
|
|
50
|
+
attribute creditOK : Boolean;
|
|
51
|
+
|
|
52
|
+
action customerLogsIn;
|
|
53
|
+
decide validUserDecision;
|
|
54
|
+
action rejected terminate;
|
|
55
|
+
|
|
56
|
+
merge browseCatalog;
|
|
57
|
+
action viewBookStore;
|
|
58
|
+
action selectBookForPurchase;
|
|
59
|
+
action addToShoppingBasket;
|
|
60
|
+
action viewShoppingBasket;
|
|
61
|
+
decide shoppingDecision;
|
|
62
|
+
|
|
63
|
+
action commitOrder;
|
|
64
|
+
action supplyCreditCardDetails;
|
|
65
|
+
decide creditDecision;
|
|
66
|
+
action rejectCreditCard;
|
|
67
|
+
action closeOrder terminate;
|
|
68
|
+
action confirmPurchase;
|
|
69
|
+
action itemsDelivered;
|
|
70
|
+
action orderComplete terminate;
|
|
71
|
+
|
|
72
|
+
succession first start then customerLogsIn;
|
|
73
|
+
succession first customerLogsIn then validUserDecision;
|
|
74
|
+
succession first validUserDecision if validUser == true then browseCatalog;
|
|
75
|
+
succession first validUserDecision if validUser == false then rejected;
|
|
76
|
+
|
|
77
|
+
succession first browseCatalog then viewBookStore;
|
|
78
|
+
succession first viewBookStore then selectBookForPurchase;
|
|
79
|
+
succession first selectBookForPurchase then addToShoppingBasket;
|
|
80
|
+
succession first addToShoppingBasket then viewShoppingBasket;
|
|
81
|
+
succession first viewShoppingBasket then shoppingDecision;
|
|
82
|
+
succession first shoppingDecision if continueShopping == true then browseCatalog;
|
|
83
|
+
succession first shoppingDecision if continueShopping == false then commitOrder;
|
|
84
|
+
|
|
85
|
+
succession first commitOrder then supplyCreditCardDetails;
|
|
86
|
+
succession first supplyCreditCardDetails then creditDecision;
|
|
87
|
+
succession first creditDecision if creditOK == false then rejectCreditCard;
|
|
88
|
+
succession first rejectCreditCard then closeOrder;
|
|
89
|
+
succession first creditDecision if creditOK == true then confirmPurchase;
|
|
90
|
+
succession first confirmPurchase then itemsDelivered;
|
|
91
|
+
succession first itemsDelivered then orderComplete;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Temperature Alarm — project identity and method binding.
|
|
2
|
+
//
|
|
3
|
+
// The native entrypoint. The imports name what this project contains and the
|
|
4
|
+
// binding names the methodology it is governed by. No YAML file participates.
|
|
5
|
+
package memo_examples_temperature_alarm_project {
|
|
6
|
+
private import ScalarValues::*;
|
|
7
|
+
|
|
8
|
+
private import memo_core_enumerations::*;
|
|
9
|
+
private import memo_methodology_core::*;
|
|
10
|
+
private import memo_methodology_profiles::*;
|
|
11
|
+
|
|
12
|
+
// The project's own content, imported so the catalog is one reachable
|
|
13
|
+
// closure from a single entrypoint.
|
|
14
|
+
private import memo_examples_temperature_alarm_viewpoints_unassigned::*;
|
|
15
|
+
private import memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_alarm_overview::*;
|
|
16
|
+
|
|
17
|
+
part projectBinding : ProjectMethodBinding {
|
|
18
|
+
attribute :>> id = "PMB-TEMPERATURE-ALARM-001";
|
|
19
|
+
attribute :>> name = "TemperatureAlarmProjectMethodBinding";
|
|
20
|
+
attribute :>> projectName = "Temperature Alarm";
|
|
21
|
+
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
22
|
+
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
23
|
+
}
|
|
24
|
+
}
|