@memoarchitect/ontology 0.12.1 → 0.15.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 +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -358
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -91
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +675 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +7 -29
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +12 -36
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +13 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +388 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +27 -36
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +8 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +17 -65
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +23 -32
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +9 -22
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +7 -22
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +18 -34
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +2 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +18 -42
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +11 -24
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +9 -36
- package/examples/sysml-diagram-samples/model/methodology/project.sysml +40 -0
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +51 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -5
- package/src/viewpoints/context/context_viewpoint.sysml +4 -5
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -5
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +3 -5
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -5
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +4 -5
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -5
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +4 -5
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -5
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +4 -5
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +4 -5
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/{definitions → stakeholders_concerns}/memo_stakeholders_concerns.sysml +45 -36
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -5
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +4 -5
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -5
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +0 -26
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
|
@@ -8,17 +8,16 @@ package memo_viewpoints_risk_risk_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint riskViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-RISK"; }
|
|
12
|
-
attribute :>> name = "RiskViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-RISK"; :>> label = "RiskViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows hazards, risks, controls, and assurance links."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the risk layer for ISO 14971-style reasoning across hazard, hazardous situation, harm, control, and verification evidence. */
|
|
15
14
|
attribute :>> purpose = "Communicate safety risk chains and controls.";
|
|
16
|
-
ref :>> stakeholders = (
|
|
15
|
+
ref :>> stakeholders = (safetyEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::risk;
|
|
18
17
|
attribute :>> abstractionLevel = "analysis";
|
|
19
18
|
attribute :>> outputKind = (ViewOutputKind::table);
|
|
20
19
|
attribute :>> presentationKind = (PresentationKind::riskTable);
|
|
21
|
-
ref :>> framedConcerns = (
|
|
20
|
+
ref :>> framedConcerns = (safetyConcern, regulatoryConcern);
|
|
22
21
|
attribute :>> explorerLane = "assurance";
|
|
23
22
|
attribute :>> explorerOrder = 2;
|
|
24
23
|
attribute :>> userExtensible = true;
|
|
@@ -10,8 +10,7 @@ package memo_viewpoints_risk_views_risk_chain_view {
|
|
|
10
10
|
view riskChainView : MemoDiagramView {
|
|
11
11
|
expose memo_viewpoints_risk_views_risk_chain_view::*;
|
|
12
12
|
attribute depth = 2;
|
|
13
|
-
@MemoIdentity { :>> providedId = "VIEW-RISK-001"; }
|
|
14
|
-
attribute :>> name = "RiskChainView";
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-RISK-001"; :>> label = "RiskChainView"; }
|
|
15
14
|
@MemoIdentity { :>> shortDescription = "Hazards through harms with controls and verification."; }
|
|
16
15
|
attribute :>> outputKind = (ViewOutputKind::table);
|
|
17
16
|
attribute :>> presentationKind = (PresentationKind::riskTable);
|
|
@@ -19,8 +18,7 @@ package memo_viewpoints_risk_views_risk_chain_view {
|
|
|
19
18
|
attribute :>> autoPopulate = true;
|
|
20
19
|
attribute :>> queryDescription = "Include the explicit ISO 14971 chain, risk controls, residual risks, benefits, and verification evidence.";
|
|
21
20
|
part :>> selectionQuery {
|
|
22
|
-
@MemoIdentity { :>> providedId = "QRY-RISK-001"; }
|
|
23
|
-
attribute :>> name = "RiskChainQuery";
|
|
21
|
+
@MemoIdentity { :>> providedId = "QRY-RISK-001"; :>> label = "RiskChainQuery"; }
|
|
24
22
|
attribute :>> includeElementKinds = ("SafetyRelatedCharacteristic", "HazardCause", "Hazard", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase");
|
|
25
23
|
attribute :>> includeLayers = ("risk", "assurance");
|
|
26
24
|
attribute :>> includeConcerns = (ConcernKind::safety);
|
|
@@ -8,17 +8,16 @@ package memo_viewpoints_software_software_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint softwareViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-SW"; }
|
|
12
|
-
attribute :>> name = "SoftwareViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-SW"; :>> label = "SoftwareViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows software systems, components, SOUP, and software interfaces."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the software structure layer for IEC 62304 software architecture description — software item decomposition, SOUP inventory, and software-to-software interfaces, distinct from system-level logical decomposition. */
|
|
15
14
|
attribute :>> purpose = "Describe the software architecture for IEC 62304 design documentation.";
|
|
16
|
-
ref :>> stakeholders = (
|
|
15
|
+
ref :>> stakeholders = (softwareArchitect);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::architecture;
|
|
18
17
|
attribute :>> abstractionLevel = "software";
|
|
19
18
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
20
19
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
21
|
-
ref :>> framedConcerns = (
|
|
20
|
+
ref :>> framedConcerns = (safetyConcern, reliabilityConcern);
|
|
22
21
|
attribute :>> explorerLane = "architecture";
|
|
23
22
|
attribute :>> explorerOrder = 4;
|
|
24
23
|
attribute :>> userExtensible = true;
|
package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml
CHANGED
|
@@ -10,8 +10,7 @@ package memo_viewpoints_software_views_software_architecture_view {
|
|
|
10
10
|
view softwareArchitectureView : MemoDiagramView {
|
|
11
11
|
expose memo_viewpoints_software_views_software_architecture_view::*;
|
|
12
12
|
attribute depth = 2;
|
|
13
|
-
@MemoIdentity { :>> providedId = "VIEW-SW-001"; }
|
|
14
|
-
attribute :>> name = "SoftwareArchitectureView";
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-SW-001"; :>> label = "SoftwareArchitectureView"; }
|
|
15
14
|
@MemoIdentity { :>> shortDescription = "Software systems, components, and SOUP with their decomposition."; }
|
|
16
15
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
17
16
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -19,9 +18,8 @@ package memo_viewpoints_software_views_software_architecture_view {
|
|
|
19
18
|
attribute :>> autoPopulate = true;
|
|
20
19
|
attribute :>> queryDescription = "Include software systems, components, and SOUP components with their decomposition.";
|
|
21
20
|
part :>> selectionQuery {
|
|
22
|
-
@MemoIdentity { :>> providedId = "QRY-SW-001"; }
|
|
23
|
-
attribute :>>
|
|
24
|
-
attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule", "SoftwareModule[moduleKind=soup]");
|
|
21
|
+
@MemoIdentity { :>> providedId = "QRY-SW-001"; :>> label = "SoftwareArchitectureQuery"; }
|
|
22
|
+
attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule");
|
|
25
23
|
attribute :>> includeLayers = ("software_structure");
|
|
26
24
|
attribute :>> rationaleText = "Auto-populate the software architecture view from the software structure layer.";
|
|
27
25
|
}
|
package/src/viewpoints/{definitions → stakeholders_concerns}/memo_stakeholders_concerns.sysml
RENAMED
|
@@ -97,44 +97,37 @@ package memo_viewpoints_stakeholders_concerns {
|
|
|
97
97
|
|
|
98
98
|
part def Availability :> MemoQualityAttribute {
|
|
99
99
|
@MemoIdentity { :>> providedId = "QA-1"; }
|
|
100
|
-
|
|
101
|
-
ref :>> addressesConcerns = (SafetyConcern, ReliabilityConcern, ClinicalConcern);
|
|
100
|
+
ref :>> addressesConcerns = (safetyConcern, reliabilityConcern, clinicalConcern);
|
|
102
101
|
attribute :>> measure = "Proportion of scheduled procedure time the function is delivered, and time to recover after a fault.";
|
|
103
102
|
}
|
|
104
103
|
part def Performance :> MemoQualityAttribute {
|
|
105
104
|
@MemoIdentity { :>> providedId = "QA-2"; }
|
|
106
|
-
|
|
107
|
-
ref :>> addressesConcerns = (PerformanceConcern, ClinicalConcern);
|
|
105
|
+
ref :>> addressesConcerns = (performanceConcern, clinicalConcern);
|
|
108
106
|
attribute :>> measure = "Latency and throughput under the arrival pattern the procedure produces.";
|
|
109
107
|
}
|
|
110
108
|
part def Security :> MemoQualityAttribute {
|
|
111
109
|
@MemoIdentity { :>> providedId = "QA-3"; }
|
|
112
|
-
|
|
113
|
-
ref :>> addressesConcerns = (CybersecurityConcern, PrivacyConcern, SafetyConcern);
|
|
110
|
+
ref :>> addressesConcerns = (cybersecurityConcern, privacyConcern, safetyConcern);
|
|
114
111
|
attribute :>> measure = "Resistance to a stated threat, and time to detect and recover from a compromise.";
|
|
115
112
|
}
|
|
116
113
|
part def Modifiability :> MemoQualityAttribute {
|
|
117
114
|
@MemoIdentity { :>> providedId = "QA-4"; }
|
|
118
|
-
|
|
119
|
-
ref :>> addressesConcerns = (RegulatoryConcern);
|
|
115
|
+
ref :>> addressesConcerns = (regulatoryConcern);
|
|
120
116
|
attribute :>> measure = "Cost and blast radius of a stated change, including the re-verification it forces.";
|
|
121
117
|
}
|
|
122
118
|
part def Testability :> MemoQualityAttribute {
|
|
123
119
|
@MemoIdentity { :>> providedId = "QA-5"; }
|
|
124
|
-
|
|
125
|
-
ref :>> addressesConcerns = (RegulatoryConcern, SafetyConcern);
|
|
120
|
+
ref :>> addressesConcerns = (regulatoryConcern, safetyConcern);
|
|
126
121
|
attribute :>> measure = "Probability that a fault present is revealed by the next test, and the effort to observe it.";
|
|
127
122
|
}
|
|
128
123
|
part def Usability :> MemoQualityAttribute {
|
|
129
124
|
@MemoIdentity { :>> providedId = "QA-6"; }
|
|
130
|
-
|
|
131
|
-
ref :>> addressesConcerns = (UsabilityConcern, SafetyConcern, ClinicalConcern);
|
|
125
|
+
ref :>> addressesConcerns = (usabilityConcern, safetyConcern, clinicalConcern);
|
|
132
126
|
attribute :>> measure = "Task success and use-error rate for the intended user under use conditions (IEC 62366-1).";
|
|
133
127
|
}
|
|
134
128
|
part def Interoperability :> MemoQualityAttribute {
|
|
135
129
|
@MemoIdentity { :>> providedId = "QA-7"; }
|
|
136
|
-
|
|
137
|
-
ref :>> addressesConcerns = (InteroperabilityConcern, ClinicalConcern);
|
|
130
|
+
ref :>> addressesConcerns = (interoperabilityConcern, clinicalConcern);
|
|
138
131
|
attribute :>> measure = "Proportion of exchanges with a named partner system that are correctly understood.";
|
|
139
132
|
}
|
|
140
133
|
|
|
@@ -146,47 +139,63 @@ package memo_viewpoints_stakeholders_concerns {
|
|
|
146
139
|
abstract part def MemoStakeholder :> MemoPart;
|
|
147
140
|
|
|
148
141
|
part def SystemArchitect :> MemoStakeholder {
|
|
149
|
-
@MemoIdentity { :>> providedId = "STK-1"; }
|
|
150
|
-
attribute :>> name = "System Architect";
|
|
142
|
+
@MemoIdentity { :>> providedId = "STK-1"; :>> label = "System Architect"; }
|
|
151
143
|
}
|
|
152
144
|
part def SoftwareArchitect :> MemoStakeholder {
|
|
153
|
-
@MemoIdentity { :>> providedId = "STK-2"; }
|
|
154
|
-
attribute :>> name = "Software Architect";
|
|
145
|
+
@MemoIdentity { :>> providedId = "STK-2"; :>> label = "Software Architect"; }
|
|
155
146
|
}
|
|
156
147
|
part def HardwareEngineer :> MemoStakeholder {
|
|
157
|
-
@MemoIdentity { :>> providedId = "STK-3"; }
|
|
158
|
-
attribute :>> name = "Hardware Engineer";
|
|
148
|
+
@MemoIdentity { :>> providedId = "STK-3"; :>> label = "Hardware Engineer"; }
|
|
159
149
|
}
|
|
160
150
|
part def SafetyEngineer :> MemoStakeholder {
|
|
161
|
-
@MemoIdentity { :>> providedId = "STK-4"; }
|
|
162
|
-
attribute :>> name = "Safety Engineer";
|
|
151
|
+
@MemoIdentity { :>> providedId = "STK-4"; :>> label = "Safety Engineer"; }
|
|
163
152
|
}
|
|
164
153
|
part def VerificationEngineer :> MemoStakeholder {
|
|
165
|
-
@MemoIdentity { :>> providedId = "STK-5"; }
|
|
166
|
-
attribute :>> name = "Verification Engineer";
|
|
154
|
+
@MemoIdentity { :>> providedId = "STK-5"; :>> label = "Verification Engineer"; }
|
|
167
155
|
}
|
|
168
156
|
part def RegulatoryEngineer :> MemoStakeholder {
|
|
169
|
-
@MemoIdentity { :>> providedId = "STK-6"; }
|
|
170
|
-
attribute :>> name = "Regulatory Engineer";
|
|
157
|
+
@MemoIdentity { :>> providedId = "STK-6"; :>> label = "Regulatory Engineer"; }
|
|
171
158
|
}
|
|
172
159
|
part def ProjectLead :> MemoStakeholder {
|
|
173
|
-
@MemoIdentity { :>> providedId = "STK-7"; }
|
|
174
|
-
attribute :>> name = "Project Lead";
|
|
160
|
+
@MemoIdentity { :>> providedId = "STK-7"; :>> label = "Project Lead"; }
|
|
175
161
|
}
|
|
176
162
|
part def SecurityEngineer :> MemoStakeholder {
|
|
177
|
-
@MemoIdentity { :>> providedId = "STK-8"; }
|
|
178
|
-
attribute :>> name = "Security Engineer";
|
|
163
|
+
@MemoIdentity { :>> providedId = "STK-8"; :>> label = "Security Engineer"; }
|
|
179
164
|
}
|
|
180
165
|
part def PrivacyEngineer :> MemoStakeholder {
|
|
181
|
-
@MemoIdentity { :>> providedId = "STK-9"; }
|
|
182
|
-
attribute :>> name = "Privacy Engineer";
|
|
166
|
+
@MemoIdentity { :>> providedId = "STK-9"; :>> label = "Privacy Engineer"; }
|
|
183
167
|
}
|
|
184
168
|
part def ClinicalEngineer :> MemoStakeholder {
|
|
185
|
-
@MemoIdentity { :>> providedId = "STK-10"; }
|
|
186
|
-
attribute :>> name = "Clinical Engineer";
|
|
169
|
+
@MemoIdentity { :>> providedId = "STK-10"; :>> label = "Clinical Engineer"; }
|
|
187
170
|
}
|
|
188
171
|
part def UsabilityEngineer :> MemoStakeholder {
|
|
189
|
-
@MemoIdentity { :>> providedId = "STK-11"; }
|
|
190
|
-
attribute :>> name = "Usability Engineer";
|
|
172
|
+
@MemoIdentity { :>> providedId = "STK-11"; :>> label = "Usability Engineer"; }
|
|
191
173
|
}
|
|
174
|
+
|
|
175
|
+
// ─── The catalog, as usages ─────────────────────────────────────────
|
|
176
|
+
//
|
|
177
|
+
// A viewpoint's `stakeholders` and `framedConcerns`, and a quality
|
|
178
|
+
// attribute's `addressesConcerns`, are features. What a feature is bound to
|
|
179
|
+
// has to be a feature as well, not a definition, so each concern and each
|
|
180
|
+
// stakeholder above has exactly one usage for those bindings to name.
|
|
181
|
+
concern safetyConcern : SafetyConcern;
|
|
182
|
+
concern usabilityConcern : UsabilityConcern;
|
|
183
|
+
concern cybersecurityConcern : CybersecurityConcern;
|
|
184
|
+
concern performanceConcern : PerformanceConcern;
|
|
185
|
+
concern interoperabilityConcern : InteroperabilityConcern;
|
|
186
|
+
concern reliabilityConcern : ReliabilityConcern;
|
|
187
|
+
concern privacyConcern : PrivacyConcern;
|
|
188
|
+
concern regulatoryConcern : RegulatoryConcern;
|
|
189
|
+
concern clinicalConcern : ClinicalConcern;
|
|
190
|
+
part systemArchitect : SystemArchitect;
|
|
191
|
+
part softwareArchitect : SoftwareArchitect;
|
|
192
|
+
part hardwareEngineer : HardwareEngineer;
|
|
193
|
+
part safetyEngineer : SafetyEngineer;
|
|
194
|
+
part verificationEngineer : VerificationEngineer;
|
|
195
|
+
part regulatoryEngineer : RegulatoryEngineer;
|
|
196
|
+
part projectLead : ProjectLead;
|
|
197
|
+
part securityEngineer : SecurityEngineer;
|
|
198
|
+
part privacyEngineer : PrivacyEngineer;
|
|
199
|
+
part clinicalEngineer : ClinicalEngineer;
|
|
200
|
+
part usabilityEngineer : UsabilityEngineer;
|
|
192
201
|
}
|
|
@@ -8,17 +8,16 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint uiLayoutViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-UIL"; }
|
|
12
|
-
attribute :>> name = "UILayoutViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-UIL"; :>> label = "UILayoutViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows screen captures with the UI element tree laid out over them."; }
|
|
14
|
-
|
|
13
|
+
doc /* Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls. */
|
|
15
14
|
attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
|
|
16
|
-
ref :>> stakeholders = (
|
|
15
|
+
ref :>> stakeholders = (usabilityEngineer, softwareArchitect, safetyEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::architecture;
|
|
18
17
|
attribute :>> abstractionLevel = "implementation";
|
|
19
18
|
attribute :>> outputKind = (ViewOutputKind::diagram, ViewOutputKind::documentSection);
|
|
20
19
|
attribute :>> presentationKind = (PresentationKind::screenLayout);
|
|
21
|
-
ref :>> framedConcerns = (
|
|
20
|
+
ref :>> framedConcerns = (usabilityConcern, safetyConcern);
|
|
22
21
|
attribute :>> explorerLane = "architecture";
|
|
23
22
|
attribute :>> explorerOrder = 4;
|
|
24
23
|
attribute :>> defaultViewKind = DiagramViewKind::geometry;
|
|
@@ -15,7 +15,7 @@ package memo_viewpoints_ui_layout_views_screen_layout_view {
|
|
|
15
15
|
view def MemoScreenLayoutView :> MemoDiagramView {
|
|
16
16
|
attribute :>> viewKind = DiagramViewKind::geometry;
|
|
17
17
|
@MemoIdentity { :>> shortDescription = "Screen capture overlaid with its UI element tree."; }
|
|
18
|
-
|
|
18
|
+
doc /* Renders one ScreenCapture as the backdrop and each UIElement composed under the captured screen as a boundary box at its authored bounds, coloured by boundaryColor. Bounds are relative to the parent element, so the renderer accumulates transforms down the Composes tree. Selecting an element isolates it: siblings recede rather than compete. Following an element's NavigatesTo edge swaps the backdrop to the target screen's capture, so the view walks the interface the way the user does. */
|
|
19
19
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
20
20
|
attribute :>> presentationKind = (PresentationKind::screenLayout);
|
|
21
21
|
attribute :>> layoutHint = "authored";
|
|
@@ -8,17 +8,16 @@ package memo_viewpoints_usability_usability_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint usabilityViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-USE"; }
|
|
12
|
-
attribute :>> name = "UsabilityViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-USE"; :>> label = "UsabilityViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows use contexts, actors, use errors, and usability requirements."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer. */
|
|
15
14
|
attribute :>> purpose = "Communicate use-related hazards and usability requirements for the device.";
|
|
16
|
-
ref :>> stakeholders = (
|
|
15
|
+
ref :>> stakeholders = (usabilityEngineer, safetyEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::requirements;
|
|
18
17
|
attribute :>> abstractionLevel = "usability";
|
|
19
18
|
attribute :>> outputKind = (ViewOutputKind::documentSection);
|
|
20
19
|
attribute :>> presentationKind = (PresentationKind::narrativeSection);
|
|
21
|
-
ref :>> framedConcerns = (
|
|
20
|
+
ref :>> framedConcerns = (usabilityConcern, safetyConcern);
|
|
22
21
|
attribute :>> explorerLane = "assurance";
|
|
23
22
|
attribute :>> explorerOrder = 4;
|
|
24
23
|
attribute :>> userExtensible = true;
|
|
@@ -8,17 +8,16 @@ package memo_viewpoints_verification_verification_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint verificationViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-VER"; }
|
|
12
|
-
attribute :>> name = "VerificationViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-VER"; :>> label = "VerificationViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows verification cases, validation cases, and the evidence they produce, traced to requirements."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8. */
|
|
15
14
|
attribute :>> purpose = "Communicate verification and validation coverage against requirements.";
|
|
16
|
-
ref :>> stakeholders = (
|
|
15
|
+
ref :>> stakeholders = (verificationEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::verificationStage;
|
|
18
17
|
attribute :>> abstractionLevel = "verification";
|
|
19
18
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
20
19
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
21
|
-
ref :>> framedConcerns = (
|
|
20
|
+
ref :>> framedConcerns = (safetyConcern, regulatoryConcern);
|
|
22
21
|
attribute :>> explorerLane = "assurance";
|
|
23
22
|
attribute :>> explorerOrder = 5;
|
|
24
23
|
attribute :>> userExtensible = true;
|
|
@@ -10,8 +10,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
|
|
|
10
10
|
view verificationCoverageView : MemoDiagramView {
|
|
11
11
|
expose memo_viewpoints_verification_views_verification_coverage_view::*;
|
|
12
12
|
attribute depth = 2;
|
|
13
|
-
@MemoIdentity { :>> providedId = "VIEW-VER-001"; }
|
|
14
|
-
attribute :>> name = "VerificationCoverageView";
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-VER-001"; :>> label = "VerificationCoverageView"; }
|
|
15
14
|
@MemoIdentity { :>> shortDescription = "Requirements with their verification cases, validation cases, and evidence."; }
|
|
16
15
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
17
16
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
@@ -19,8 +18,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
|
|
|
19
18
|
attribute :>> autoPopulate = true;
|
|
20
19
|
attribute :>> queryDescription = "Include requirements and their linked verification/validation cases and evidence.";
|
|
21
20
|
part :>> selectionQuery {
|
|
22
|
-
@MemoIdentity { :>> providedId = "QRY-VER-001"; }
|
|
23
|
-
attribute :>> name = "VerificationCoverageQuery";
|
|
21
|
+
@MemoIdentity { :>> providedId = "QRY-VER-001"; :>> label = "VerificationCoverageQuery"; }
|
|
24
22
|
attribute :>> includeElementKinds = ("Requirement", "VerificationCase", "ValidationCase", "MemoEvidence");
|
|
25
23
|
attribute :>> includeLayers = ("requirements", "assurance");
|
|
26
24
|
attribute :>> rationaleText = "Auto-populate V&V coverage from the requirements and assurance layers.";
|
|
Binary file
|
|
Binary file
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '{{name}}'
|
|
10
|
-
entrypoint: model/
|
|
10
|
+
entrypoint: model/methodology/project.sysml
|
|
11
11
|
include: [model]
|
|
12
12
|
version: 0.1.0
|
|
13
13
|
description: MEMO architecture and assurance model
|
|
14
|
+
# The SysML compiler every MEMO command uses (internal, syside or opensysml), and
|
|
15
|
+
# the packager `memo pack` uses (internal or sysand).
|
|
16
|
+
# Required; MEMO chooses none for a project that does not.
|
|
17
|
+
toolchain:
|
|
18
|
+
packager: internal
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
package project_architecture {
|
|
2
|
-
private import
|
|
2
|
+
private import memo_core_common::*;
|
|
3
|
+
private import memo_core_common::MemoIdentity;
|
|
4
|
+
private import memo_architecture_logical_structure::*;
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
// The product, as a System: the kind a workspace is made from, and a kind the explorer files
|
|
7
|
+
// under Architecture. (A bare `MemoPart` is the abstract base and files under evidence.)
|
|
8
|
+
part def ProductSystem specializes System {
|
|
9
|
+
@MemoIdentity { :>> label = "{{name}}"; }
|
|
6
10
|
}
|
|
7
11
|
}
|
|
@@ -17,10 +17,9 @@ package project_catalog {
|
|
|
17
17
|
|
|
18
18
|
private import memo_core_common::*;
|
|
19
19
|
private import memo_core_common::MemoIdentity;
|
|
20
|
-
part projectMethodBinding :
|
|
21
|
-
@MemoIdentity { :>> providedId = "PMB-001"; }
|
|
22
|
-
attribute :>>
|
|
23
|
-
attribute :>> projectName = "{{name}}";
|
|
20
|
+
part projectMethodBinding : ModelMethodBinding {
|
|
21
|
+
@MemoIdentity { :>> providedId = "PMB-001"; :>> label = "{{name}}ModelMethodBinding"; }
|
|
22
|
+
attribute :>> modelName = "{{name}}";
|
|
24
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
25
24
|
// The project adds no modules of its own yet. Under `explicit` an
|
|
26
25
|
// empty additive list means exactly that — no additions — rather than
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Sysml Diagram Samples — 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_sysml_diagram_samples_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_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
15
|
-
private import diagram_samples::*;
|
|
16
|
-
|
|
17
|
-
private import memo_core_common::*;
|
|
18
|
-
private import memo_core_common::MemoIdentity;
|
|
19
|
-
part projectBinding : ProjectMethodBinding {
|
|
20
|
-
@MemoIdentity { :>> providedId = "PMB-DIAGRAM-SAMPLES-1"; }
|
|
21
|
-
attribute :>> name = "SysmlDiagramSamplesProjectMethodBinding";
|
|
22
|
-
attribute :>> projectName = "Sysml Diagram Samples";
|
|
23
|
-
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
format: memo.viewlayout/v1
|
|
2
|
-
viewSource: model/catalog/viewpoints/unassigned/views/context_view.sysml
|
|
3
|
-
layouts:
|
|
4
|
-
diag-sample-sampleContextView:
|
|
5
|
-
nodes:
|
|
6
|
-
__context_boundary__:
|
|
7
|
-
x: 327.4
|
|
8
|
-
y: 109
|
|
9
|
-
ports: {}
|
|
10
|
-
infusionSystem:
|
|
11
|
-
x: 92
|
|
12
|
-
y: 74
|
|
13
|
-
ports: {}
|
|
14
|
-
biomedTech:
|
|
15
|
-
x: 40
|
|
16
|
-
y: 40
|
|
17
|
-
ports: {}
|
|
18
|
-
clinician:
|
|
19
|
-
x: 53.400000000000006
|
|
20
|
-
y: 146
|
|
21
|
-
ports: {}
|
|
22
|
-
patient:
|
|
23
|
-
x: 53.400000000000006
|
|
24
|
-
y: 252
|
|
25
|
-
ports: {}
|
|
26
|
-
homeContext:
|
|
27
|
-
x: 440
|
|
28
|
-
y: 600
|
|
29
|
-
ports: {}
|
|
30
|
-
pharmacySystem:
|
|
31
|
-
x: 855.4
|
|
32
|
-
y: 199
|
|
33
|
-
ports: {}
|
|
34
|
-
edges:
|
|
35
|
-
rel-8: {}
|
|
36
|
-
rel-9: {}
|
|
37
|
-
rel-10: {}
|
|
38
|
-
rel-11: {}
|
|
39
|
-
rel-12: {}
|
|
40
|
-
annotations: {}
|
|
41
|
-
canvas:
|
|
42
|
-
autoLayout: false
|
|
43
|
-
zoom: 0.7154088050314465
|
|
44
|
-
pan:
|
|
45
|
-
x: 50.15487421383642
|
|
46
|
-
y: -9.616352201257882
|
|
47
|
-
coordinateSpace: context-child-v1
|
|
@@ -1,94 +0,0 @@
|
|
|
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,13 +0,0 @@
|
|
|
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,8 +0,0 @@
|
|
|
1
|
-
package memo_examples_ui_screen_regions_relationships {
|
|
2
|
-
private import memo_artifacts_configuration_management::*;
|
|
3
|
-
private import memo_assurance_safety_risk::*;
|
|
4
|
-
private import memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
5
|
-
private import memo_examples_ui_screen_regions_assurance_requirements::*;
|
|
6
|
-
connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> elMainScreen::uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
|
|
7
|
-
connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> elMainScreen::uiElement12 to changedElement ::> reqDrugIdentityDisplay;
|
|
8
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package memo_extension_aadl_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part aadlExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-AADL-001"; }
|
|
11
|
-
attribute :>> name = "AadlCorrespondenceExtension";
|
|
12
|
-
attribute :>> version = "0.7.0";
|
|
13
|
-
attribute :>> domain = "AADL (SAE AS5506) software runtime";
|
|
14
|
-
attribute :>> description = "Adds the AADL correspondence profile and the process / thread / virtual-processor runtime families.";
|
|
15
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
16
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
17
|
-
attribute :>> includedModule = "memo_extension_aadl";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package memo_extension_clinical_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part clinicalExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-CLINICAL-001"; }
|
|
11
|
-
attribute :>> name = "ClinicalProcedureExtension";
|
|
12
|
-
attribute :>> version = "0.6.5";
|
|
13
|
-
attribute :>> domain = "clinical procedures";
|
|
14
|
-
attribute :>> description = "Adds optional clinical-procedure vocabulary to a MEMO project.";
|
|
15
|
-
// The base is a typed SysML reference, not a name to keep in sync with
|
|
16
|
-
// another file. `baseMethodName` was the pre-flip spelling and no
|
|
17
|
-
// longer resolves.
|
|
18
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
19
|
-
// An extension adds its own module to whatever its base selected;
|
|
20
|
-
// saying so explicitly is required now that an empty list means empty.
|
|
21
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
22
|
-
attribute :>> includedModule = "memo_extension_clinical";
|
|
23
|
-
}
|
|
24
|
-
}
|