@memoarchitect/ontology 0.8.24 → 0.10.9
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/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
- package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +9 -7
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +8 -6
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/memo.identity.yaml +2179 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +22 -20
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -13
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +121 -125
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -14
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -8
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
- package/examples/gpca-pump/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +5 -3
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +9 -7
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +6 -4
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +17 -16
- package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
- package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +10 -8
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +51 -51
- package/examples/surgical-robot/model/catalog/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +8 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +11 -7
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +27 -22
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
- package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
- package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +3 -1
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- package/package.json +2 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
- package/src/architecture/implementation/ui/memo_ui.sysml +0 -23
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +3 -1
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +3 -11
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +0 -10
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -11
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -20
- package/src/architecture/realization/deployment/memo_deployment.sysml +16 -9
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
- package/src/artifacts/standards/cfr_21_820.sysml +80 -89
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
- package/src/artifacts/standards/iec_60601_1.sysml +108 -121
- package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
- package/src/artifacts/standards/iec_60812.sysml +21 -22
- package/src/artifacts/standards/iec_62304.sysml +150 -169
- package/src/artifacts/standards/iec_62366_1.sysml +80 -89
- package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
- package/src/artifacts/standards/iso_13485.sysml +80 -89
- package/src/artifacts/standards/iso_14971.sysml +66 -73
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
- package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
- package/src/core/common/memo_common.sysml +50 -50
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +22 -49
- package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
- package/src/methodology/core/memo_core.sysml +0 -10
- package/src/methodology/profiles/memo_profiles.sysml +18 -16
- package/src/rules/closure/closure_rules.sysml +22 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
- package/src/rules/ontology/ontology_invariants.sysml +106 -33
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/context/context_viewpoint.sysml +5 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +5 -3
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -16
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +5 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +5 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +4 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +5 -3
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +5 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +4 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +5 -3
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +5 -3
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +5 -3
- package/src/viewpoints/risk/risk_viewpoint.sysml +4 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +5 -3
- package/src/viewpoints/software/software_viewpoint.sysml +4 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +5 -3
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -2
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +5 -3
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/model/catalog/project.sysml +3 -1
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_device_intercon
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaDeviceInterconnectView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_logical_views_logical_device_interconnect_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-LOG-003"; }
|
|
20
22
|
attribute :>> name = "GPCA_DeviceInterconnectView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "AADL device-level interconnection: GPCA_HW_Sensors, GPCA_SW, and GPCA_HW_Actuators with their declared boundary features."; }
|
|
22
24
|
attribute :>> description = "Source-faithful interconnection view of GPCA_Device.Impl: exactly the three AADL subcomponents (GPCA_HW_Sensors, GPCA_SW, GPCA_HW_Actuators), the device and subsystem boundary ports, and the twelve declared port connections. MEMO physical-design additions such as the controller board, power sources, enclosure, and individual sensors/actuators are intentionally excluded because the published AADL v2.0 model does not declare them as GPCA_Device.Impl subcomponents. Drill into GPCA_SW to inspect its eight subcomponents and 42 internal connections; use the connection-density control to switch between bundled summary and full fidelity.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::internalDiagram);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_device_intercon
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include hardware assemblies, the software system with its components and boundary ports, and the exchange topology between them.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-LOG-003"; }
|
|
32
34
|
attribute :>> name = "GPCA_DeviceInterconnectQuery";
|
|
33
35
|
attribute :>> includeElementIds = ("gpcaDevice", "gpcaDeviceSensors", "gpcaSoftware", "gpcaActuators", "devOpCmdIn", "devDbIn", "devPresIn", "devPatientIn", "devGpcaOut", "snsOpCmdIn", "snsDbIn", "snsPresIn", "snsPatientIn", "snsOpCmdOut", "snsPresOut", "snsPatientOut", "snsSensorOut", "snsConstOut", "snsDbOut", "portOpCmdIn", "portPresIn", "portPatientIn", "portSensorIn", "portConstIn", "portDbIn", "portGpcaSwOut", "actGpcaSwIn", "actGpcaOut", "tlm", "systemStatus", "alarm", "config", "infusionMgr", "systemMonitor", "logging", "outputBus");
|
|
34
36
|
attribute :>> includeRelationshipKinds = ("flow", "bind", "Composes");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_archite
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaLogicalArchitectureView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_architecture_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-LOG-001"; }
|
|
20
22
|
attribute :>> name = "GPCA_LogicalArchitectureView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Logical decomposition of the GPCA system."; }
|
|
22
24
|
attribute :>> description = "Product-specific logical architecture view that references the default logical architecture viewpoint and is intended for design description and architecture communication.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_archite
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include GPCA logical components and key interfaces relevant to therapy control.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-LOG-001"; }
|
|
32
34
|
attribute :>> name = "GPCA_LogicalArchitectureQuery";
|
|
33
35
|
attribute :>> includeElementKinds = ("LogicalComponent", "Interface", "Function");
|
|
34
36
|
attribute :>> includeLayers = ("functions", "logical_structure", "interfaces");
|
package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml
CHANGED
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaModeStateView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-BHV-001"; }
|
|
20
22
|
attribute :>> name = "GPCA_ModeStateView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "The CriSys Fig 4.1 mode hierarchy (OFF, ON, IDLE, THERAPY, PAUSED, ACTIVE, BASAL, SQUARE_BOLUS, PATIENT_BOLUS) and all guarded transitions."; }
|
|
22
24
|
attribute :>> description = "Hierarchical state diagram per CriSys §4.1 Fig 4.1: OFF and ON at top level, IDLE and THERAPY under ON, PAUSED (KVO delivery) and ACTIVE under THERAPY, and BASAL / SQUARE_BOLUS (auto-scheduled) / PATIENT_BOLUS under ACTIVE — with the REQ 4-47 transitions, Inhibited_* macro guards, and same-step-critical markings.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::stateDiagram);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include the mode machine, the Fig 4.1 mode tree (Composes edges), transitions, and safety properties.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-BHV-101"; }
|
|
32
34
|
attribute :>> name = "GPCA_ModeStateQuery";
|
|
33
35
|
attribute :>> includeElementKinds = ("StateMachine", "MemoState[stateKind=mode]", "Transition", "BehaviorProperty", "TimingConstraint");
|
|
34
36
|
attribute :>> includeLayers = ("behavior");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decompos
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaSystemDecompositionView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decomposition_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-LOG-002"; }
|
|
20
22
|
attribute :>> name = "GPCA_SystemDecompositionView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Nested containment of the GPCA device: hardware assemblies and the software system."; }
|
|
22
24
|
attribute :>> description = "General-kind membership structure of the GPCA device per the AADL GPCA_Device.Impl decomposition: sensor and actuator assemblies with their subcomponents, supporting hardware, and the GPCA software system with its eight AADL subcomponents. Rendered through the KK-2 General view template in containment mode (nested blocks with expand/collapse; the tree mode shows the same hierarchy as a decomposition tree).";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -29,7 +31,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decompos
|
|
|
29
31
|
attribute :>> autoPopulate = true;
|
|
30
32
|
attribute :>> queryDescription = "Include hardware assemblies, the software system, and software components; the Composes topology supplies the nesting.";
|
|
31
33
|
part :>> selectionQuery {
|
|
32
|
-
|
|
34
|
+
@MemoIdentity { :>> providedId = "QRY-LOG-002"; }
|
|
33
35
|
attribute :>> name = "GPCA_SystemDecompositionQuery";
|
|
34
36
|
attribute :>> includeElementKinds = ("HardwareAssembly", "SoftwareSystem", "SoftwareModule");
|
|
35
37
|
attribute :>> includeRelationshipKinds = ("Composes");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_scenari
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaScenarioSequenceView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_operational_views_operational_scenario_sequence_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-BHV-002"; }
|
|
20
22
|
attribute :>> name = "GPCA_ScenarioSequenceView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Key therapy and alarm scenarios rendered as sequences over the functional chains."; }
|
|
22
24
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
23
25
|
attribute :>> presentationKind = (PresentationKind::activityDiagram);
|
|
24
26
|
attribute :>> viewKind = DiagramViewKind::sequence;
|
|
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_scenari
|
|
|
27
29
|
attribute :>> autoPopulate = true;
|
|
28
30
|
attribute :>> queryDescription = "Include system scenarios with the functional chains and steps that realize them.";
|
|
29
31
|
part :>> selectionQuery {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "QRY-BHV-102"; }
|
|
31
33
|
attribute :>> name = "GPCA_ScenarioSequenceQuery";
|
|
32
34
|
attribute :>> includeElementKinds = ("OperativeScenario[scenarioKind=functional]", "OperativeScenario[scenarioKind=operative]", "FunctionalFlow", "FunctionalFlowStep");
|
|
33
35
|
attribute :>> includeLayers = ("operational", "system");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_use_cas
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaUseCaseView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_operational_views_operational_use_case_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-OPS-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_UseCaseView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Actors connected to the patient-controlled analgesia use case."; }
|
|
22
24
|
attribute :>> description = "Connects the nurse, patient, prescriber, and pharmacist to the patient-controlled analgesia use case.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::custom);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_use_cas
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include actors, use cases, and their participation relationships.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-OPS-101"; }
|
|
32
34
|
attribute :>> name = "GPCA_UseCaseQuery";
|
|
33
35
|
attribute :>> includeElementKinds = ("Actor", "User", "UseCase");
|
|
34
36
|
attribute :>> includeRelationshipKinds = ("ParticipatesIn");
|
package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml
CHANGED
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaPhysicalBomView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-PHY-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_PhysicalBomView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Hardware assemblies, processing node, physical ports, and part numbers."; }
|
|
22
24
|
attribute :>> outputKind = (ViewOutputKind::table);
|
|
23
25
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
24
26
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_
|
|
|
27
29
|
attribute :>> autoPopulate = true;
|
|
28
30
|
attribute :>> queryDescription = "Include hardware assemblies with part numbers, the MCU node, and external ports.";
|
|
29
31
|
part :>> selectionQuery {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "QRY-PHY-101"; }
|
|
31
33
|
attribute :>> name = "GPCA_PhysicalBomQuery";
|
|
32
34
|
attribute :>> includeElementKinds = ("HardwareAssembly", "ProcessingNode", "PhysicalPort", "Interface");
|
|
33
35
|
attribute :>> includeLayers = ("hardware_structure", "physical", "interfaces");
|
package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml
CHANGED
|
@@ -7,11 +7,13 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index
|
|
|
7
7
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
8
8
|
private import memo_core_enumerations::*;
|
|
9
9
|
|
|
10
|
+
private import memo_core_common::*;
|
|
11
|
+
private import memo_core_common::MemoIdentity;
|
|
10
12
|
view dhfIndexView : MemoDocumentView {
|
|
11
13
|
expose memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index_view::*;
|
|
12
|
-
|
|
14
|
+
@MemoIdentity { :>> providedId = "DOC-007"; }
|
|
13
15
|
attribute :>> name = "DesignHistoryFileIndexView";
|
|
14
|
-
|
|
16
|
+
@MemoIdentity { :>> shortDescription = "Index of design inputs, outputs, reviews, and V&V records for the DHF."; }
|
|
15
17
|
attribute :>> description = "Collects the document-backed views (requirements, architecture, SDD, RMF, VV, usability, cybersecurity) into the design history file index required by 21 CFR 820.30(j).";
|
|
16
18
|
attribute :>> version = "0.1";
|
|
17
19
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
@@ -22,7 +24,7 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index
|
|
|
22
24
|
ref vpRisk :> viewpointDefinition = riskViewpoint;
|
|
23
25
|
ref vpVerification :> viewpointDefinition = verificationViewpoint;
|
|
24
26
|
part :>> selectionQuery {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-007"; }
|
|
26
28
|
attribute :>> name = "dhfIndexViewQuery";
|
|
27
29
|
attribute :>> includeElementKinds = ("MemoDocumentView", "MemoDiagramView", "MemoUsabilityEngineeringView", "MemoCybersecurityThreatModelView", "MemoCybersecurityAssessmentView", "MemoEvidence", "Citation");
|
|
28
30
|
attribute :>> includeRelationshipKinds = ("ProducesEvidence");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requi
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaRequirementsTraceView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requirements_trace_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-REQ-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_RequirementsTraceabilityView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Needs to system/software/hardware requirements to satisfying components and verification."; }
|
|
22
24
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
23
25
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
24
26
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requi
|
|
|
27
29
|
attribute :>> autoPopulate = true;
|
|
28
30
|
attribute :>> queryDescription = "Include all needs and requirements with derivation, satisfaction, and verification links.";
|
|
29
31
|
part :>> selectionQuery {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "QRY-REQ-101"; }
|
|
31
33
|
attribute :>> name = "GPCA_RequirementsTraceQuery";
|
|
32
34
|
attribute :>> includeElementKinds = ("Need", "Requirement", "VerificationCase");
|
|
33
35
|
attribute :>> includeRelationshipKinds = ("DerivesFrom", "SatisfiedBy", "VerifiedBy");
|
package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml
CHANGED
|
@@ -6,13 +6,15 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_v
|
|
|
6
6
|
private import memo_core_enumerations::*;
|
|
7
7
|
private import memo_examples_gpca_pump_gpca_analysis::*;
|
|
8
8
|
|
|
9
|
+
private import memo_core_common::*;
|
|
10
|
+
private import memo_core_common::MemoIdentity;
|
|
9
11
|
view hazardAnalysisView : MemoDocumentView {
|
|
10
12
|
expose memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view::*;
|
|
11
13
|
expose fmeaDelivery;
|
|
12
14
|
expose ftaOverdose;
|
|
13
|
-
|
|
15
|
+
@MemoIdentity { :>> providedId = "DOC-009"; }
|
|
14
16
|
attribute :>> name = "HazardAnalysisReportView";
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> shortDescription = "Hazard analysis report aligned to the UMN CriSys GPCA hazard tables."; }
|
|
16
18
|
attribute :>> description = "Aggregates the five hazard chains, the FMEA worksheet, and the overdose fault tree with their controls and verification pointers.";
|
|
17
19
|
attribute :>> version = "0.1";
|
|
18
20
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
@@ -21,7 +23,7 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_v
|
|
|
21
23
|
attribute :>> marketScope = "generic";
|
|
22
24
|
ref :>> viewpointDefinition = riskViewpoint;
|
|
23
25
|
part :>> selectionQuery {
|
|
24
|
-
|
|
26
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-003"; }
|
|
25
27
|
attribute :>> name = "hazardAnalysisViewQuery";
|
|
26
28
|
attribute :>> includeElementKinds = ("FMEAWorksheet", "FailureMode", "FailureCause", "FailureEffect", "DetectionMethod", "FMEAAction", "FaultTree", "FaultTreeNode", "MinimalCutSet", "Hazard", "HazardCause", "SequenceOfEvents");
|
|
27
29
|
attribute :>> includeRelationshipKinds = ("HasFailureMode", "Causes", "DetectedBy", "Mitigates", "InputToGate", "ContainsEvent", "Mitigates");
|
|
@@ -6,12 +6,14 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view {
|
|
|
6
6
|
private import memo_core_enumerations::*;
|
|
7
7
|
private import memo_examples_gpca_pump_gpca_verification::*;
|
|
8
8
|
|
|
9
|
+
private import memo_core_common::*;
|
|
10
|
+
private import memo_core_common::MemoIdentity;
|
|
9
11
|
view rmfView : MemoDocumentView {
|
|
10
12
|
expose memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view::*;
|
|
11
13
|
expose evidenceLockout;
|
|
12
|
-
|
|
14
|
+
@MemoIdentity { :>> providedId = "DOC-001"; }
|
|
13
15
|
attribute :>> name = "RiskManagementFileView";
|
|
14
|
-
|
|
16
|
+
@MemoIdentity { :>> shortDescription = "Document-backed risk view for GPCA."; }
|
|
15
17
|
attribute :>> description = "Aggregates the risk chain, controls, verification, residual risk, and cybersecurity links needed for the GPCA risk management file.";
|
|
16
18
|
attribute :>> version = "0.2";
|
|
17
19
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
@@ -20,7 +22,7 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view {
|
|
|
20
22
|
attribute :>> marketScope = "generic";
|
|
21
23
|
ref :>> viewpointDefinition = riskViewpoint;
|
|
22
24
|
part :>> selectionQuery {
|
|
23
|
-
|
|
25
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-001"; }
|
|
24
26
|
attribute :>> name = "rmfViewQuery";
|
|
25
27
|
attribute :>> includeElementKinds = ("IntendedUse", "ReasonablyForeseeableMisuse", "SafetyRelatedCharacteristic", "Hazard", "HazardCause", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase", "MemoEvidence");
|
|
26
28
|
attribute :>> includeRelationshipKinds = ("Causes", "Mitigates", "Mitigates", "TracesRisk", "AssessedAgainst", "VerifiedBy", "ProducesEvidence");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaFmeaView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-RISK-102"; }
|
|
20
22
|
attribute :>> name = "GPCA_FmeaView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Failure modes with causes, effects, detection, RPN, and the overdose fault tree."; }
|
|
22
24
|
attribute :>> outputKind = (ViewOutputKind::table);
|
|
23
25
|
attribute :>> presentationKind = (PresentationKind::riskTable);
|
|
24
26
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
|
|
|
27
29
|
attribute :>> autoPopulate = true;
|
|
28
30
|
attribute :>> queryDescription = "Include FMEA worksheet rows and the overdose fault tree structure.";
|
|
29
31
|
part :>> selectionQuery {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "QRY-RISK-102"; }
|
|
31
33
|
attribute :>> name = "GPCA_FmeaQuery";
|
|
32
34
|
attribute :>> includeElementKinds = ("FMEAWorksheet", "FailureMode", "FailureEffect", "FailureCause", "DetectionMethod", "FMEAAction", "FaultTree", "FaultTreeNode", "MinimalCutSet");
|
|
33
35
|
attribute :>> includeLayers = ("analysis", "risk");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view {
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaRiskChainView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-RISK-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_RiskChainView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "All seven hazard causal trees from categorized cause through harm with controls and residual risk."; }
|
|
22
24
|
attribute :>> description = "Opioid over-infusion, under-infusion, air embolism, misprogramming, free-flow, reverse-delivery, and VTBI over-infusion causal trees (GIIP cause-source structure): categorized causes converging on each hazard, sequences of events, hazardous situations, harms, risk estimates, controls, and residual evaluations.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view {
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include hazards, sequences, situations, harms, risks before/after, controls, and residual evaluation.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-RISK-101"; }
|
|
32
34
|
attribute :>> name = "GPCA_RiskChainQuery";
|
|
33
35
|
attribute :>> includeElementKinds = ("SafetyRelatedCharacteristic", "Hazard", "HazardCause", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation");
|
|
34
36
|
attribute :>> includeRelationshipKinds = ("TracesRisk", "Mitigates", "Causes", "Mitigates");
|
|
@@ -5,11 +5,13 @@ package memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view {
|
|
|
5
5
|
private import memo_viewpoints_software_software_viewpoint::*;
|
|
6
6
|
private import memo_core_enumerations::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view sddView : MemoDocumentView {
|
|
9
11
|
expose memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view::*;
|
|
10
|
-
|
|
12
|
+
@MemoIdentity { :>> providedId = "DOC-004"; }
|
|
11
13
|
attribute :>> name = "SoftwareDesignDescriptionView";
|
|
12
|
-
|
|
14
|
+
@MemoIdentity { :>> shortDescription = "IEC 62304 software design description for the GPCA software system."; }
|
|
13
15
|
attribute :>> description = "Aggregates the software system, its six components with safety classes and scheduling attributes, mode machine and transitions, interfaces, and function allocations for the SDD.";
|
|
14
16
|
attribute :>> version = "0.1";
|
|
15
17
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
@@ -18,7 +20,7 @@ package memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view {
|
|
|
18
20
|
attribute :>> marketScope = "generic";
|
|
19
21
|
ref :>> viewpointDefinition = softwareViewpoint;
|
|
20
22
|
part :>> selectionQuery {
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-004"; }
|
|
22
24
|
attribute :>> name = "sddViewQuery";
|
|
23
25
|
attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule", "MemoState[stateKind=mode]", "Transition", "Interface", "SystemFunction", "TimingConstraint", "SoftwareModule[moduleKind=soup]");
|
|
24
26
|
attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "BindsToInterface", "Realizes", "DependsOnSoup", "Changes");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_software_views_software_software_arch
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaSoftwareArchitectureView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_software_views_software_software_architecture_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-SW-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_SoftwareArchitectureView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "The eight AADL GPCA_SW.Impl subcomponents, top-level ports, and the full inter-component connection topology."; }
|
|
22
24
|
attribute :>> description = "Top_Level_Mode, System_Status, Alarm, Config, Infusion_Manager, System_Monitor, Logging, and OutputBus inside the GPCA_Software system, wired per GPCA_SW.Impl with the seven top-level ports (OP_CMD_IN, PRES_IN, PATIENT_IN, SENSOR_IN, CONST_IN, DB_IN, GPCA_SW_OUT). Connections are synchronous with AADL immediate port semantics.";
|
|
23
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
24
26
|
attribute :>> presentationKind = (PresentationKind::internalDiagram);
|
|
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_software_views_software_software_arch
|
|
|
28
30
|
attribute :>> autoPopulate = true;
|
|
29
31
|
attribute :>> queryDescription = "Include the software system, its eight components, its boundary ports, and the flow and delegation topology between them.";
|
|
30
32
|
part :>> selectionQuery {
|
|
31
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "QRY-SW-101"; }
|
|
32
34
|
attribute :>> name = "GPCA_SoftwareArchitectureQuery";
|
|
33
35
|
attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule", "SoftwarePort");
|
|
34
36
|
attribute :>> includeRelationshipKinds = ("flow", "bind", "Composes");
|
package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml
CHANGED
|
@@ -7,22 +7,24 @@ package memo_examples_gpca_pump_viewpoints_usability_views_document_usability_vi
|
|
|
7
7
|
private import memo_core_enumerations::*;
|
|
8
8
|
private import memo_examples_gpca_pump_gpca_verification::*;
|
|
9
9
|
|
|
10
|
+
private import memo_core_common::*;
|
|
11
|
+
private import memo_core_common::MemoIdentity;
|
|
10
12
|
view usabilityView : MemoUsabilityEngineeringView {
|
|
11
13
|
expose memo_examples_gpca_pump_viewpoints_usability_views_document_usability_view::*;
|
|
12
14
|
expose evidenceUsability;
|
|
13
|
-
|
|
15
|
+
@MemoIdentity { :>> providedId = "DOC-008"; }
|
|
14
16
|
attribute :>> name = "UsabilityEngineeringFileView";
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> shortDescription = "IEC 62366-1 usability engineering file content for GPCA."; }
|
|
16
18
|
attribute :>> description = "Aggregates intended use, use contexts, actors, foreseeable use errors, related risk chains, usability requirements, and the summative usability validation case.";
|
|
17
19
|
attribute :>> version = "0.1";
|
|
18
20
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
19
21
|
attribute :>> marketScope = "generic";
|
|
20
22
|
ref :>> viewpointDefinition = usabilityViewpoint;
|
|
21
23
|
part :>> selectionQuery {
|
|
22
|
-
|
|
24
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-002"; }
|
|
23
25
|
attribute :>> name = "usabilityViewQuery";
|
|
24
26
|
attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperativeScenario[scenarioKind=operative]", "IntendedUse", "ReasonablyForeseeableMisuse");
|
|
25
|
-
attribute :>> includeRelationshipKinds = ("TestedByUsability", "RealizedByScenario", "
|
|
27
|
+
attribute :>> includeRelationshipKinds = ("TestedByUsability", "RealizedByScenario", "connect");
|
|
26
28
|
attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
|
|
27
29
|
}
|
|
28
30
|
}
|
package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml
CHANGED
|
@@ -6,12 +6,14 @@ package memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view {
|
|
|
6
6
|
private import memo_core_enumerations::*;
|
|
7
7
|
private import memo_examples_gpca_pump_gpca_verification::*;
|
|
8
8
|
|
|
9
|
+
private import memo_core_common::*;
|
|
10
|
+
private import memo_core_common::MemoIdentity;
|
|
9
11
|
view vvView : MemoDocumentView {
|
|
10
12
|
expose memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view::*;
|
|
11
13
|
expose evidenceSafetyAlarmSuite;
|
|
12
|
-
|
|
14
|
+
@MemoIdentity { :>> providedId = "DOC-006"; }
|
|
13
15
|
attribute :>> name = "VerificationValidationView";
|
|
14
|
-
|
|
16
|
+
@MemoIdentity { :>> shortDescription = "V&V plan and coverage for requirements and risk controls."; }
|
|
15
17
|
attribute :>> description = "Aggregates verification cases, validation cases, test artifacts, and evidence with their coverage of requirements, risk controls, behavior properties, and timing constraints.";
|
|
16
18
|
attribute :>> version = "0.1";
|
|
17
19
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
@@ -20,7 +22,7 @@ package memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view {
|
|
|
20
22
|
attribute :>> marketScope = "generic";
|
|
21
23
|
ref :>> viewpointDefinition = verificationViewpoint;
|
|
22
24
|
part :>> selectionQuery {
|
|
23
|
-
|
|
25
|
+
@MemoIdentity { :>> providedId = "QRY-DOC-006"; }
|
|
24
26
|
attribute :>> name = "vvViewQuery";
|
|
25
27
|
attribute :>> includeElementKinds = ("VerificationCase", "ValidationCase", "MemoEvidence", "Requirement", "RiskControlMeasure");
|
|
26
28
|
attribute :>> includeRelationshipKinds = ("VerifiedBy", "Validates", "TestedByUsability", "ProducesEvidence");
|
|
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_verification_views_verification_verif
|
|
|
13
13
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
view gpcaVerificationCoverageView : MemoDiagramView {
|
|
17
19
|
expose memo_examples_gpca_pump_viewpoints_verification_views_verification_verification_coverage_view::*;
|
|
18
20
|
attribute depth = 2;
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "VIEW-VER-101"; }
|
|
20
22
|
attribute :>> name = "GPCA_VerificationCoverageView";
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Requirements and risk controls against verification cases, validation cases, and evidence."; }
|
|
22
24
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
23
25
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
24
26
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_verification_views_verification_verif
|
|
|
27
29
|
attribute :>> autoPopulate = true;
|
|
28
30
|
attribute :>> queryDescription = "Include every requirement and risk control with its verification/validation status and produced evidence.";
|
|
29
31
|
part :>> selectionQuery {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "QRY-VER-101"; }
|
|
31
33
|
attribute :>> name = "GPCA_VerificationCoverageQuery";
|
|
32
34
|
attribute :>> includeElementKinds = ("Requirement", "RiskControlMeasure", "VerificationCase", "ValidationCase", "MemoEvidence");
|
|
33
35
|
attribute :>> includeRelationshipKinds = ("VerifiedBy", "Validates", "ProducesEvidence");
|
|
@@ -11,34 +11,36 @@ package memo_examples_ivd_laboratory_system {
|
|
|
11
11
|
private import memo_architecture_logical_structure::*;
|
|
12
12
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::*;
|
|
15
|
+
private import memo_core_common::MemoIdentity;
|
|
14
16
|
part analyzer : PhysicalAssembly {
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> providedId = "IVD-DEV-001"; } attribute :>> name = "ChemAnalyzer";
|
|
16
18
|
attribute :>> responsibility = "automate clinical chemistry measurements";
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
// Specimen path: material flow through fluidic hardware.
|
|
20
22
|
part fluidSampleProbe : FluidicComponent {
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> providedId = "IVD-HW-001"; } attribute :>> name = "SampleProbe";
|
|
22
24
|
attribute :>> fluidPathRole = "aspirates specimen from primary tube";
|
|
23
25
|
}
|
|
24
26
|
part fluidReactionCuvette : FluidicComponent {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "IVD-HW-002"; } attribute :>> name = "ReactionCuvette";
|
|
26
28
|
attribute :>> fluidPathRole = "holds specimen-reagent reaction mix";
|
|
27
29
|
}
|
|
28
30
|
part optPhotometer : OpticalComponent {
|
|
29
|
-
|
|
31
|
+
@MemoIdentity { :>> providedId = "IVD-HW-003"; } attribute :>> name = "PhotometerAssembly";
|
|
30
32
|
attribute :>> opticalFunction = "absorbance measurement";
|
|
31
33
|
attribute :>> wavelengthRange = "340-800 nm";
|
|
32
34
|
}
|
|
33
35
|
part exSpecimenFlow : LogicalExchange {
|
|
34
|
-
|
|
36
|
+
@MemoIdentity { :>> providedId = "IVD-EX-001"; } attribute :>> name = "SpecimenTransfer";
|
|
35
37
|
attribute :>> contentKind = FlowContentKind::material;
|
|
36
38
|
attribute :>> direction = DirectionKind::output;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
// Result item coded with LOINC.
|
|
40
42
|
item glucoseResult : LogicalExchangeItem {
|
|
41
|
-
|
|
43
|
+
@MemoIdentity { :>> providedId = "IVD-IT-001"; } attribute :>> name = "GlucoseResult";
|
|
42
44
|
attribute :>> contentKind = FlowContentKind::measurement;
|
|
43
45
|
attribute :>> unit = "mg/dL";
|
|
44
46
|
attribute :>> timestampRequired = true;
|
|
@@ -52,7 +54,7 @@ package memo_examples_ivd_laboratory_system {
|
|
|
52
54
|
|
|
53
55
|
// Operating activity for the analyzer.
|
|
54
56
|
action actRunPanel : OperativeAction {
|
|
55
|
-
|
|
57
|
+
@MemoIdentity { :>> providedId = "IVD-ACT-001"; } attribute :>> name = "RunChemistryPanel";
|
|
56
58
|
attribute :>> criticality = CriticalityKind::high;
|
|
57
59
|
}
|
|
58
60
|
}
|
|
@@ -14,8 +14,10 @@ package memo_examples_ivd_laboratory_system_project {
|
|
|
14
14
|
private import memo_examples_ivd_laboratory_system_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_ivd_laboratory_system_viewpoints_unassigned_views_ivd_laboratory_system_overview::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
part projectBinding : ProjectMethodBinding {
|
|
18
|
-
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-LABORATORY-SYSTEM-001"; }
|
|
19
21
|
attribute :>> name = "IvdLaboratorySystemProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Ivd Laboratory System";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -10,14 +10,16 @@ package memo_examples_manual_surgical_instrument {
|
|
|
10
10
|
private import memo_architecture_operational_activities::*;
|
|
11
11
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
12
12
|
|
|
13
|
+
private import memo_core_common::*;
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
13
15
|
// ── Modeled product and physical structure ──────────────────
|
|
14
16
|
part needleHolder : PhysicalAssembly {
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> providedId = "MSI-DEV-001"; }
|
|
16
18
|
attribute :>> name = "NeedleHolder";
|
|
17
19
|
attribute :>> responsibility = "grasp and drive a suture needle";
|
|
18
20
|
}
|
|
19
21
|
part jawAssembly : MechanicalPart {
|
|
20
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "MSI-PART-001"; }
|
|
21
23
|
attribute :>> name = "TungstenCarbideJaws";
|
|
22
24
|
attribute :>> mechanicalFunction = "serrated needle grip";
|
|
23
25
|
attribute :>> patientContact = true;
|
|
@@ -25,7 +27,7 @@ package memo_examples_manual_surgical_instrument {
|
|
|
25
27
|
attribute :>> contactDuration = "limited (<24 h)";
|
|
26
28
|
}
|
|
27
29
|
part ratchetLock : MechanicalPart {
|
|
28
|
-
|
|
30
|
+
@MemoIdentity { :>> providedId = "MSI-PART-002"; }
|
|
29
31
|
attribute :>> name = "RatchetLock";
|
|
30
32
|
attribute :>> mechanicalFunction = "maintains jaw clamping force without continuous grip";
|
|
31
33
|
attribute :>> patientContact = false;
|
|
@@ -36,7 +38,7 @@ package memo_examples_manual_surgical_instrument {
|
|
|
36
38
|
// A task may be traced to the architecture later when the project has a
|
|
37
39
|
// specific allocation or interaction claim to make.
|
|
38
40
|
action taskPlaceSutures : OperativeAction {
|
|
39
|
-
|
|
41
|
+
@MemoIdentity { :>> providedId = "MSI-TASK-001"; }
|
|
40
42
|
attribute :>> name = "PlaceSutures";
|
|
41
43
|
attribute :>> taskGoal = "place interrupted sutures";
|
|
42
44
|
}
|