@memoarchitect/ontology 0.6.4 → 0.7.0
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 +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/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/extensions/clinical/memo.package.yaml +18 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
- package/examples/extensions/template/memo.package.yaml +17 -9
- 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/analysis/Samples/01-model-overview.ipynb +148 -0
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +301 -0
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +229 -0
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +200 -0
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +188 -0
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +173 -0
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +180 -0
- package/examples/gpca-pump/analysis/Samples/README.md +37 -0
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- 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 +1 -1
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +22 -12
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +8 -2
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +41 -11
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +10 -1
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +59 -31
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
- package/examples/gpca-pump/model/catalog/project.sysml +21 -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 +3 -3
- 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 +3 -3
- 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 +4 -4
- 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 +7 -7
- 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 +3 -3
- 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 +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
- 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 +6 -6
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
- 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 +4 -4
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
- 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 +1 -0
- 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/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 +174 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -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 +90 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
- 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/software-only-medical-device/model/catalog/project.sysml +24 -0
- 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 +23 -19
- 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 +5 -3
- 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 +18 -10
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
- 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 +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
- 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 +2 -1
- 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 +60 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -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 +60 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -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/memo.manifest.yaml +2 -0
- 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 +1 -3
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +7 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
- package/src/architecture/functional/functions/memo_functions.sysml +5 -12
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
- package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
- package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
- package/src/architecture/operational/activities/memo_activities.sysml +0 -1
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
- package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
- package/src/core/annotations/memo_annotations.sysml +77 -0
- package/src/core/common/memo_common.sysml +20 -3
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +5 -1
- package/src/core/enumerations/memo_enumerations.sysml +41 -6
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +4 -2
- package/src/memo_namespaces.sysml +97 -67
- package/src/methodology/core/memo_core.sysml +45 -2
- package/src/methodology/profiles/memo_profiles.sysml +30 -40
- 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 +38 -68
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +3 -1
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
- 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 +6 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
- 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 +3 -1
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
- 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 +3 -1
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
- 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/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/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/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/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.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-62304/detailed-design.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.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/summative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.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/urra.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/fmea.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/har.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/rmp.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
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
private import memo_architecture_operational_context_actors::*;
|
|
4
4
|
private import memo_core_relationships::*;
|
|
5
5
|
private import memo_architecture_logical_interfaces::*;
|
|
6
6
|
private import memo_architecture_operational_structure::*;
|
|
7
|
+
private import memo_architecture_operational_activities::*;
|
|
7
8
|
private import memo_viewpoints_definitions::*;
|
|
9
|
+
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
8
10
|
private import memo_core_enumerations::*;
|
|
9
11
|
|
|
10
12
|
// Operational activity across clinical roles. The fixture is intentionally
|
|
@@ -16,17 +18,17 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
|
|
|
16
18
|
attribute :>> itemKind = InterfaceItemKind::signal;
|
|
17
19
|
}
|
|
18
20
|
|
|
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; }
|
|
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; }
|
|
23
25
|
|
|
24
26
|
// Use the canonical MEMO operational system type—never a sample-local
|
|
25
27
|
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
26
28
|
part opCareSystem : OperationalEntity {
|
|
27
29
|
attribute :>> name = "PCA Care System";
|
|
28
30
|
attribute :>> entityKind = OperationalEntityKind::device;
|
|
29
|
-
attribute :>>
|
|
31
|
+
attribute :>> responsibility = "System of interest for this context view.";
|
|
30
32
|
}
|
|
31
33
|
part opClinicalTeam : User {
|
|
32
34
|
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team"; }
|
|
@@ -48,22 +50,22 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
|
|
|
48
50
|
connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleBiomed;
|
|
49
51
|
connection : Composes connect parent ::> opPatientGroup to child ::> opRolePatient;
|
|
50
52
|
|
|
51
|
-
action opSetupFlow {
|
|
52
|
-
action opPrescribe : OpPrescribeTherapy { attribute name = "Prescribe Therapy"; }
|
|
53
|
-
action opVerify : OpVerifyPrescription { attribute name = "Verify Prescription"; }
|
|
53
|
+
action opSetupFlow : OperationalActivity {
|
|
54
|
+
action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
|
|
55
|
+
action opVerify : OpVerifyPrescription { attribute :>> name = "Verify Prescription"; }
|
|
54
56
|
fork opForkPrep;
|
|
55
|
-
action opPrime { attribute name = "Prime Pump & Load Reservoir"; }
|
|
56
|
-
action opSelfTest { attribute name = "Run Device Self-Test"; }
|
|
57
|
+
action opPrime : OperationalActivity { attribute :>> name = "Prime Pump & Load Reservoir"; }
|
|
58
|
+
action opSelfTest : OperationalActivity { attribute :>> name = "Run Device Self-Test"; }
|
|
57
59
|
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"; }
|
|
60
|
+
action opProgram : OperationalActivity { attribute :>> name = "Program Pump Parameters"; }
|
|
61
|
+
action opConnect : OperationalActivity { attribute :>> name = "Connect to Patient"; }
|
|
62
|
+
action opStart : OperationalActivity { attribute :>> name = "Start Infusion"; }
|
|
63
|
+
action opAdminister : OperationalActivity {
|
|
64
|
+
attribute :>> name = "Administer PCA Therapy";
|
|
65
|
+
action opRequestBolus : OpRequestBolus { attribute :>> name = "Request Bolus"; }
|
|
66
|
+
action opCheckLockout : OpCheckLockout { attribute :>> name = "Check Lockout"; }
|
|
67
|
+
action opDeliverDose : OperationalActivity { attribute :>> name = "Deliver Dose"; }
|
|
68
|
+
action opLogEvent : OperationalActivity { attribute :>> name = "Log Dose Event"; }
|
|
67
69
|
flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
68
70
|
first start then opRequestBolus;
|
|
69
71
|
first opRequestBolus then opCheckLockout;
|
|
@@ -109,6 +111,7 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
|
|
|
109
111
|
attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
|
|
110
112
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
111
113
|
attribute :>> diagramType = "ofd";
|
|
114
|
+
part :>> viewpointDefinition = operationalViewpoint;
|
|
112
115
|
}
|
|
113
116
|
|
|
114
117
|
connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrescribe to targetView ::> opSetupView;
|
|
@@ -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 {
|
|
@@ -50,6 +51,7 @@ package memo_examples_sysml_diagram_samples_model_samples_requirements_view {
|
|
|
50
51
|
attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
|
|
51
52
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
52
53
|
attribute :>> diagramType = "req";
|
|
54
|
+
part :>> viewpointDefinition = requirementsViewpoint;
|
|
53
55
|
part :>> selectionQuery {
|
|
54
56
|
attribute :>> includeRelationshipKinds = ("DerivesFrom");
|
|
55
57
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
|
|
34
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::customerLogsIn to targetView ::> standardActivityView;
|
|
35
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::validUserDecision to targetView ::> standardActivityView;
|
|
36
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::rejected to targetView ::> standardActivityView;
|
|
37
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::browseCatalog to targetView ::> standardActivityView;
|
|
38
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::viewBookStore to targetView ::> standardActivityView;
|
|
39
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::selectBookForPurchase to targetView ::> standardActivityView;
|
|
40
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::addToShoppingBasket to targetView ::> standardActivityView;
|
|
41
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::viewShoppingBasket to targetView ::> standardActivityView;
|
|
42
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::shoppingDecision to targetView ::> standardActivityView;
|
|
43
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::commitOrder to targetView ::> standardActivityView;
|
|
44
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::supplyCreditCardDetails to targetView ::> standardActivityView;
|
|
45
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::creditDecision to targetView ::> standardActivityView;
|
|
46
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::rejectCreditCard to targetView ::> standardActivityView;
|
|
47
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::closeOrder to targetView ::> standardActivityView;
|
|
48
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::confirmPurchase to targetView ::> standardActivityView;
|
|
49
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::itemsDelivered to targetView ::> standardActivityView;
|
|
50
|
+
connection : IncludedIn connect sourceElement ::> CustomerProcess::orderComplete to targetView ::> standardActivityView;
|
|
51
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// State transition sample (statetransition view kind, `stm` diagram type). A
|
|
2
2
|
// behaviour machine owns its mode states; each Transition carries `sourceState`
|
|
3
3
|
// / `targetState` naming the states it connects, and renders as a labelled edge.
|
|
4
|
-
package
|
|
4
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_transition_view {
|
|
5
5
|
private import ScalarValues::*;
|
|
6
6
|
|
|
7
7
|
private import memo_architecture_functional_behavior::*;
|
|
8
8
|
private import memo_core_relationships::*;
|
|
9
9
|
private import memo_viewpoints_definitions::*;
|
|
10
|
+
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
10
11
|
private import memo_core_enumerations::*;
|
|
11
12
|
|
|
12
13
|
state pumpModes : StateMachine { attribute :>> name = "Pump Operating Modes"; }
|
|
@@ -84,6 +85,7 @@ package memo_examples_sysml_diagram_samples_model_samples_state_transition_view
|
|
|
84
85
|
attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
|
|
85
86
|
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
86
87
|
attribute :>> diagramType = "stm";
|
|
88
|
+
part :>> viewpointDefinition = functionalViewpoint;
|
|
87
89
|
part :>> selectionQuery {
|
|
88
90
|
attribute :>> includeElementKinds = ("StateMachine", "ModeState", "Transition");
|
|
89
91
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
4
4
|
|
|
5
5
|
private import memo_architecture_realization_physical::*;
|
|
6
6
|
private import memo_core_relationships::*;
|
|
7
7
|
private import memo_viewpoints_definitions::*;
|
|
8
|
+
private import memo_viewpoints_physical_physical_viewpoint::*;
|
|
8
9
|
private import memo_core_enumerations::*;
|
|
9
10
|
|
|
10
11
|
part rootA : HardwareAssembly { attribute :>> name = "Root A"; }
|
|
@@ -37,6 +38,7 @@ package memo_examples_sysml_diagram_samples_model_samples_tree_view {
|
|
|
37
38
|
attribute :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development.";
|
|
38
39
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
39
40
|
attribute :>> diagramType = "bdd";
|
|
41
|
+
part :>> viewpointDefinition = physicalViewpoint;
|
|
40
42
|
attribute :>> layoutHint = "tree";
|
|
41
43
|
attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
|
|
42
44
|
part :>> selectionQuery {
|
|
@@ -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.
|
|
@@ -71,6 +72,7 @@ package memo_examples_sysml_diagram_samples_model_samples_use_case_view {
|
|
|
71
72
|
attribute :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation.";
|
|
72
73
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
73
74
|
attribute :>> diagramType = "ucd";
|
|
75
|
+
part :>> viewpointDefinition = operationalViewpoint;
|
|
74
76
|
part :>> selectionQuery {
|
|
75
77
|
attribute :>> includeElementKinds = ("User", "UseCase");
|
|
76
78
|
attribute :>> includeRelationshipKinds = ("Initiates", "ParticipatesIn", "Includes", "Extends");
|
|
@@ -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
|
+
}
|
|
@@ -13,6 +13,7 @@ package memo_examples_temperature_alarm {
|
|
|
13
13
|
private import memo_assurance_requirements_needs::*;
|
|
14
14
|
private import memo_architecture_operational_use_cases::*;
|
|
15
15
|
private import memo_architecture_operational_activities::*;
|
|
16
|
+
private import memo_architecture_operational_workflows::*;
|
|
16
17
|
private import memo_architecture_operational_scenarios::*;
|
|
17
18
|
private import memo_architecture_functional_functions::*;
|
|
18
19
|
private import memo_architecture_logical_structure::*;
|
|
@@ -111,7 +112,7 @@ package memo_examples_temperature_alarm {
|
|
|
111
112
|
connection : ControlImplementedBy connect riskControl ::> rcReAnnunciate to implementingElement ::> elAlarmBanner;
|
|
112
113
|
|
|
113
114
|
// ── Verification, validation, evidence ──────────────────────
|
|
114
|
-
|
|
115
|
+
action vsAlarmLatency : VerificationScenario {
|
|
115
116
|
attribute :>> id = "TA-VS-001"; attribute :>> name = "AlarmLatencyScenario";
|
|
116
117
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
117
118
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// unassigned viewpoint.
|
|
2
|
+
//
|
|
3
|
+
// This project does not define its own viewpoint here; it binds the reusable
|
|
4
|
+
// MEMO viewpoint that frames these concerns. The views it governs sit beneath
|
|
5
|
+
// `views/`.
|
|
6
|
+
package memo_examples_temperature_alarm_viewpoints_unassigned {
|
|
7
|
+
// The reusable package declaring unassigned could not be resolved during
|
|
8
|
+
// conversion. Import it here so the views beneath this viewpoint resolve.
|
|
9
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_alarm_overview {
|
|
2
2
|
private import memo_examples_temperature_alarm::*;
|
|
3
3
|
private import memo_viewpoints_definitions::*;
|
|
4
4
|
private import memo_core_enumerations::*;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# UI screen regions
|
|
2
|
+
|
|
3
|
+
A focused MEMO example for marking up a screenshot so that every functional
|
|
4
|
+
area of the interface is traceable to a function, a specification, and a risk
|
|
5
|
+
control — using the part tree MEMO already has, not a parallel one.
|
|
6
|
+
|
|
7
|
+
- `model/ui_screen_regions.sysml` is the public parent package.
|
|
8
|
+
- `model/catalog/` holds the canonical model elements.
|
|
9
|
+
- `model/viewpoints/` holds the geometry view and a trace graph of that catalog.
|
|
10
|
+
|
|
11
|
+
## What it demonstrates
|
|
12
|
+
|
|
13
|
+
One infusion-pump screen, modelled as an **ordinary part tree**. A screen is a
|
|
14
|
+
`UIElement` that contains `UIElement`s; each carries `bounds` (x, y, width,
|
|
15
|
+
height). There is no separate "region" type: one tree carries both the geometry
|
|
16
|
+
and the design record.
|
|
17
|
+
|
|
18
|
+
Because the elements carrying geometry are the same elements carrying the
|
|
19
|
+
design record, every trace MEMO already supported applies unchanged:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
elRateValue a part, with bounds, inside elRatePanel
|
|
23
|
+
-ElementTriggersAction-> uiaEditRate
|
|
24
|
+
-ActionInvokesFunction-> fnSetInfusionRate FUNCTION
|
|
25
|
+
<-SatisfiedBy- reqRateEntry SPEC
|
|
26
|
+
<-ErrorAtElement- ueMisreadRate RISK (use error)
|
|
27
|
+
<-ControlImplementedBy- rcRateConfirm RISK (control)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Layout adds four numbers and two invariants over them — nothing else.
|
|
31
|
+
|
|
32
|
+
## Containment vs navigation
|
|
33
|
+
|
|
34
|
+
These are different, and conflating them is the trap this example is built to
|
|
35
|
+
show:
|
|
36
|
+
|
|
37
|
+
| Element | Relation | Meaning |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| `elRateValue` inside `elRatePanel` | `Composes` | laid out **within** the parent's box |
|
|
40
|
+
| `elSettingsRow` → `elSettingsScreen` | `NavigatesTo` | activation **replaces** the view |
|
|
41
|
+
|
|
42
|
+
`elSettingsScreen` is a sibling root with its own capture and its own
|
|
43
|
+
coordinate frame. It is not a child of anything, so no geometric rule relates
|
|
44
|
+
it to the main screen.
|
|
45
|
+
|
|
46
|
+
## The dropdown, and why `disclosureKind` exists
|
|
47
|
+
|
|
48
|
+
`elDrugMenu` is why geometry alone is not enough. Open, it extends past the
|
|
49
|
+
bottom of the rate panel (`y + height` = 1.35 > 1.0) **and** overlaps
|
|
50
|
+
`elRateValue` outright. For an `inline` element both would be layout defects;
|
|
51
|
+
for a dropdown both are correct. The four numbers cannot tell those cases apart,
|
|
52
|
+
so `disclosureKind = overlay` states the intent — and a renderer reads it to know
|
|
53
|
+
not to clip.
|
|
54
|
+
|
|
55
|
+
Layout correctness is **not** asserted as a consistency rule. Geometric
|
|
56
|
+
invariants (child within parent, inline siblings disjoint) cannot be written as
|
|
57
|
+
KerML constraint bodies — the evaluator has no Real literal, and it binds one
|
|
58
|
+
implicit subject per quantifier, so pairwise sibling comparison is impossible by
|
|
59
|
+
construction. Rather than declare rules no engine can evaluate, layout is checked
|
|
60
|
+
where it is drawn.
|
|
61
|
+
|
|
62
|
+
`elStatusBar` is the negative case that IS checked: it is chrome, and it passes
|
|
63
|
+
**CR-MED-110** only because it is declared `formKind = decoration`. An element
|
|
64
|
+
left unclassified fails. Declaring chrome as chrome is a modelling act, not an
|
|
65
|
+
omission.
|
|
66
|
+
|
|
67
|
+
## Bounds
|
|
68
|
+
|
|
69
|
+
`RegionBounds` are normalized to the **parent element**, each value in 0..1.
|
|
70
|
+
`elRateValue` occupies the lower 65 % of the rate panel, not 65 % of the screen,
|
|
71
|
+
so a renderer accumulates transforms down the `Composes` tree. Two things
|
|
72
|
+
follow: an element survives re-capture at a different resolution, and a child's
|
|
73
|
+
box is stated against its parent, which is exactly what the containment tree
|
|
74
|
+
already asserts. Absolute pixels stay recoverable from the capture's
|
|
75
|
+
`pixelWidth` / `pixelHeight`.
|
|
76
|
+
|
|
77
|
+
## Commentary
|
|
78
|
+
|
|
79
|
+
`ModelComment` elements carry review conversation — author, timestamp,
|
|
80
|
+
disposition — attached with `CommentsOn` and threaded with `Composes`.
|
|
81
|
+
They are kept separate from `description` on purpose: `description` is what an
|
|
82
|
+
element *is*, a comment is what someone *said about it*, and only the former
|
|
83
|
+
belongs in a generated DHF section.
|
|
84
|
+
|
|
85
|
+
## Validation
|
|
86
|
+
|
|
87
|
+
The example is written to pass the four UI layout rules:
|
|
88
|
+
|
|
89
|
+
| Rule | Severity | What it enforces |
|
|
90
|
+
| --- | --- | --- |
|
|
91
|
+
| CR-MED-110 | error | Every non-`decoration` element has a design record (requirement or action) |
|
|
92
|
+
| CR-MED-111 | warning | Interactive elements trigger an action that invokes a function |
|
|
93
|
+
| CR-MED-112 | warning | Automatically detected bounds are confirmed by a reviewer |
|
|
94
|
+
| CR-MED-113 | error | Screen captures identify their build and hash their bytes |
|
|
95
|
+
|
|
96
|
+
See the caveat in `memo-ui-region-spec.md` §5 about rule evaluation generally —
|
|
97
|
+
no ontology rule body currently evaluates.
|
|
98
|
+
|
|
99
|
+
## Where the images live
|
|
100
|
+
|
|
101
|
+
Screenshots live in the project repo beside the model, in a folder named for the
|
|
102
|
+
layout view that renders them:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
model/
|
|
106
|
+
assets/
|
|
107
|
+
mainScreenLayout/main-screen-2.4.1.png
|
|
108
|
+
settingsScreenLayout/settings-screen-2.4.1.png
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
`imageUri` is relative to the model root. One layout view per captured screen,
|
|
112
|
+
and the view's name is its folder — so it is always obvious which images belong
|
|
113
|
+
to which layout.
|
|
114
|
+
|
|
115
|
+
The image files themselves are **not committed**; this example ships as model
|
|
116
|
+
content only, and the `imageHash` values are illustrative. Drop your own
|
|
117
|
+
screenshots at those paths to see the geometry view render.
|