@memoarchitect/ontology 0.8.24 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/examples/connected-patient-monitor/model/catalog/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 +2185 -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 +29 -24
- 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 +390 -388
- 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/memo.identity.yaml +181 -0
- 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/architecture/operational/context.sysml +34 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +11 -6
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +16 -14
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +4 -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 +54 -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 +11 -9
- 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/memo.identity.yaml +205 -0
- 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 +26 -24
- 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/memo.package.yaml +1 -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/memo.package.yaml +1 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- 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 +2 -2
- package/profile/memo.package.yaml +1 -1
- 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 +1 -12
- 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/artifacts/templates/dhf/iec-60601/hrs.md +6 -6
- package/src/artifacts/templates/dhf/iec-62304/srs.md +10 -10
- package/src/artifacts/templates/dhf/system/syrs.md +6 -6
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +0 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +0 -1
- package/src/assurance/requirements/memo_requirements.sysml +20 -16
- package/src/assurance/requirements/needs/memo_needs.sysml +33 -5
- package/src/assurance/safety_risk/memo_risk.sysml +20 -0
- 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 +58 -22
- package/src/rules/crosslayer/cross_layer_rules.sysml +5 -3
- package/src/rules/ontology/ontology_invariants.sysml +119 -35
- 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
|
@@ -16,36 +16,38 @@ package memo_examples_surgical_closure_workflow {
|
|
|
16
16
|
private import memo_architecture_operational_workflows::*;
|
|
17
17
|
private import memo_architecture_operational_scenarios::*;
|
|
18
18
|
|
|
19
|
+
private import memo_core_common::*;
|
|
20
|
+
private import memo_core_common::MemoIdentity;
|
|
19
21
|
// ── Clinical setting and goal ───────────────────────────────
|
|
20
22
|
part bariatricSurgeon : User {
|
|
21
23
|
attribute :>> actorKind = ActorKind::clinician;
|
|
22
|
-
|
|
24
|
+
@MemoIdentity { :>> providedId = "LSG-USR-001"; } attribute :>> name = "BariatricSurgeon";
|
|
23
25
|
attribute :>> clinicalRole = "primary operating surgeon";
|
|
24
26
|
}
|
|
25
27
|
part scrubNurse : User {
|
|
26
28
|
attribute :>> actorKind = ActorKind::clinician;
|
|
27
|
-
|
|
29
|
+
@MemoIdentity { :>> providedId = "LSG-USR-002"; } attribute :>> name = "ScrubNurse";
|
|
28
30
|
attribute :>> clinicalRole = "sterile instrumentation and count";
|
|
29
31
|
}
|
|
30
32
|
part anesthetist : User {
|
|
31
33
|
attribute :>> actorKind = ActorKind::clinician;
|
|
32
|
-
|
|
34
|
+
@MemoIdentity { :>> providedId = "LSG-USR-003"; } attribute :>> name = "Anesthetist";
|
|
33
35
|
attribute :>> clinicalRole = "anaesthesia and physiologic monitoring";
|
|
34
36
|
}
|
|
35
37
|
part bariatricOr : UseContext {
|
|
36
|
-
|
|
38
|
+
@MemoIdentity { :>> providedId = "LSG-CTX-001"; } attribute :>> name = "BariatricOperatingRoom";
|
|
37
39
|
attribute :>> careSetting = "hospital operating room";
|
|
38
40
|
attribute :>> environment = "sterile laparoscopic operating field";
|
|
39
41
|
attribute :>> connectedUse = false;
|
|
40
42
|
}
|
|
41
43
|
requirement needControlledGastricResection : Need {
|
|
42
44
|
attribute :>> needKind = NeedKind::clinicalUser;
|
|
43
|
-
|
|
45
|
+
@MemoIdentity { :>> providedId = "LSG-N-001"; }
|
|
44
46
|
attribute :>> statement = "The surgical team needs to perform gastric resection with controlled anatomy, haemostasis, and a checked staple line.";
|
|
45
47
|
}
|
|
46
48
|
use case ucPerformSleeveGastrectomy : UseCase {
|
|
47
49
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
48
|
-
|
|
50
|
+
@MemoIdentity { :>> providedId = "LSG-UC-001"; }
|
|
49
51
|
attribute :>> name = "PerformLaparoscopicSleeveGastrectomy";
|
|
50
52
|
attribute :>> goalStatement = "Complete the planned laparoscopic sleeve gastrectomy and transfer the patient with the staple line assessed.";
|
|
51
53
|
attribute :>> trigger = "patient prepared and surgical time-out complete";
|
|
@@ -60,79 +62,80 @@ package memo_examples_surgical_closure_workflow {
|
|
|
60
62
|
connection : Motivates connect motivatingNeed ::> needControlledGastricResection to motivatedUseCase ::> ucPerformSleeveGastrectomy;
|
|
61
63
|
|
|
62
64
|
// ── Procedure workflow ──────────────────────────────────────
|
|
63
|
-
action actTimeOutAndPosition : OperativeAction {
|
|
64
|
-
action actEstablishAccess : OperativeAction {
|
|
65
|
-
action actMobilizeStomach : OperativeAction {
|
|
65
|
+
action actTimeOutAndPosition : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-001"; } attribute :>> name = "ConfirmTimeOutAndPosition"; }
|
|
66
|
+
action actEstablishAccess : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-002"; } attribute :>> name = "EstablishLaparoscopicAccess"; }
|
|
67
|
+
action actMobilizeStomach : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-003"; } attribute :>> name = "MobilizeStomach"; }
|
|
66
68
|
action actSizeAndCreateSleeve : OperativeAction {
|
|
67
|
-
|
|
69
|
+
@MemoIdentity { :>> providedId = "LSG-ACT-004"; } attribute :>> name = "SizeAndCreateSleeve"; attribute :>> criticality = CriticalityKind::high;
|
|
68
70
|
|
|
69
71
|
action taskCreateStapleLine : OperativeAction {
|
|
70
72
|
attribute :>> criticality = CriticalityKind::high;
|
|
71
|
-
|
|
73
|
+
@MemoIdentity { :>> providedId = "LSG-TASK-001"; }
|
|
72
74
|
attribute :>> name = "CreateAndInspectStapleLine";
|
|
73
75
|
attribute :>> taskGoal = "create the planned sleeve and identify bleeding or integrity concerns before completion";
|
|
74
76
|
attribute :>> potentialHarm = "bleeding or staple-line complication not recognized before handover";
|
|
75
77
|
attribute :>> severityIfFailed = SeverityKind::serious;
|
|
76
78
|
|
|
77
|
-
action stConfirmAnatomy : OperativeAction {
|
|
78
|
-
action stCreateStapleLine : OperativeAction {
|
|
79
|
-
action stInspectBleeding : OperativeAction {
|
|
80
|
-
action stAssessIntegrity : OperativeAction {
|
|
79
|
+
action stConfirmAnatomy : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-001"; } attribute :>> name = "ConfirmAnatomy"; }
|
|
80
|
+
action stCreateStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-002"; } attribute :>> name = "CreateStapleLine"; }
|
|
81
|
+
action stInspectBleeding : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-003"; } attribute :>> name = "InspectForBleeding"; }
|
|
82
|
+
action stAssessIntegrity : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-004"; } attribute :>> name = "AssessStapleLineIntegrity"; }
|
|
81
83
|
first stConfirmAnatomy then stCreateStapleLine;
|
|
82
84
|
first stCreateStapleLine then stInspectBleeding;
|
|
83
85
|
first stInspectBleeding then stAssessIntegrity;
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
|
-
action actAssessStapleLine : OperativeAction {
|
|
87
|
-
action actExtractSpecimenAndClose : OperativeAction {
|
|
88
|
-
action actHandover : OperativeAction {
|
|
88
|
+
action actAssessStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-005"; } attribute :>> name = "AssessStapleLine"; attribute :>> criticality = CriticalityKind::high; }
|
|
89
|
+
action actExtractSpecimenAndClose : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-006"; } attribute :>> name = "ExtractSpecimenAndClosePorts"; }
|
|
90
|
+
action actHandover : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-007"; } attribute :>> name = "CompletePostoperativeHandover"; }
|
|
89
91
|
|
|
90
92
|
action wfSleeveGastrectomy : ClinicalProcedureWorkflow {
|
|
91
|
-
|
|
93
|
+
@MemoIdentity { :>> providedId = "LSG-WF-001"; }
|
|
92
94
|
attribute :>> name = "LaparoscopicSleeveGastrectomyWorkflow";
|
|
93
95
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
94
96
|
attribute :>> entryCondition = "patient prepared; time-out ready";
|
|
95
97
|
attribute :>> completionCondition = "staple line assessed; postoperative handover complete";
|
|
96
98
|
attribute :>> clinicalObjective = "create a gastric sleeve after controlled mobilisation and staple-line assessment";
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
action scNominalSleeveProcedure : OperativeScenario {
|
|
101
|
-
attribute :>> id = "LSG-SC-001"; attribute :>> name = "NominalSleeveGastrectomy";
|
|
102
|
-
attribute :>> pathSummary = "Time-out, access, mobilisation, sleeve creation, staple-line assessment, closure, and handover complete without rework.";
|
|
99
|
+
action scNominalSleeveProcedure : OperativeScenario {
|
|
100
|
+
@MemoIdentity { :>> providedId = "LSG-SC-001"; } attribute :>> name = "NominalSleeveGastrectomy";
|
|
101
|
+
attribute :>> pathSummary = "Time-out, access, mobilisation, sleeve creation, staple-line assessment, closure, and handover complete without rework.";
|
|
103
102
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
103
|
+
perform actTimeOutAndPosition;
|
|
104
|
+
perform actEstablishAccess;
|
|
105
|
+
perform actMobilizeStomach;
|
|
106
|
+
perform actSizeAndCreateSleeve;
|
|
107
|
+
perform actAssessStapleLine;
|
|
108
|
+
perform actExtractSpecimenAndClose;
|
|
109
|
+
perform actHandover;
|
|
110
|
+
first actTimeOutAndPosition then actEstablishAccess;
|
|
111
|
+
first actEstablishAccess then actMobilizeStomach;
|
|
112
|
+
first actMobilizeStomach then actSizeAndCreateSleeve;
|
|
113
|
+
first actSizeAndCreateSleeve then actAssessStapleLine;
|
|
114
|
+
first actAssessStapleLine then actExtractSpecimenAndClose;
|
|
115
|
+
first actExtractSpecimenAndClose then actHandover;
|
|
116
|
+
}
|
|
117
|
+
action scStapleLineBleeding : OperativeScenario {
|
|
118
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
119
|
+
@MemoIdentity { :>> providedId = "LSG-SC-002"; } attribute :>> name = "StapleLineBleedingRecovery";
|
|
120
|
+
attribute :>> pathSummary = "Recognize bleeding, apply the selected control, reassess the staple line, and escalate if the condition remains unresolved.";
|
|
122
121
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
action oaControlStapleLineBleeding : OperativeAction {
|
|
123
|
+
attribute :>> name = "ControlStapleLineBleeding";
|
|
124
|
+
action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
|
|
125
|
+
first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
|
|
126
|
+
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
|
|
130
|
+
// ── Scenario paths, each with its own activity/action flow ──
|
|
131
|
+
#refinement dependency wfSleeveGastrectomy::scNominalSleeveProcedure to ucPerformSleeveGastrectomy;
|
|
132
|
+
#refinement dependency wfSleeveGastrectomy::scStapleLineBleeding to ucPerformSleeveGastrectomy;
|
|
131
133
|
|
|
132
134
|
connection : RealizesUseCase connect realizingWorkflow ::> wfSleeveGastrectomy to realizedUseCase ::> ucPerformSleeveGastrectomy;
|
|
133
135
|
|
|
134
136
|
|
|
135
|
-
connection : HasScenario connect owningWorkflow ::> wfSleeveGastrectomy to pathScenario ::> scNominalSleeveProcedure;
|
|
136
|
-
connection : HasScenario connect owningWorkflow ::> wfSleeveGastrectomy to pathScenario ::> scStapleLineBleeding;
|
|
137
137
|
|
|
138
|
+
|
|
139
|
+
// Whose need it is (CR-MED-024). The surgeon's profile is on the User.
|
|
140
|
+
connection heldResection : HeldBy connect need ::> needControlledGastricResection to holder ::> bariatricSurgeon;
|
|
138
141
|
}
|
|
@@ -14,8 +14,10 @@ package memo_examples_surgical_robot_project {
|
|
|
14
14
|
private import memo_examples_surgical_robot_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_surgical_robot_viewpoints_unassigned_views_surgical_robot_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-SURGICAL-ROBOT-001"; }
|
|
19
21
|
attribute :>> name = "SurgicalRobotProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Surgical Robot";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -10,13 +10,15 @@ package memo_examples_surgical_robot {
|
|
|
10
10
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
11
11
|
private import memo_architecture_implementation_ui::*;
|
|
12
12
|
|
|
13
|
+
private import memo_core_common::*;
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
13
15
|
// Control channels: primary + diverse monitor, with declared independence.
|
|
14
16
|
part chMotionPrimary : LogicalComponent {
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> providedId = "SR-LC-001"; } attribute :>> name = "MotionControlChannel";
|
|
16
18
|
attribute :>> channelRole = ChannelRoleKind::primary;
|
|
17
19
|
}
|
|
18
20
|
part chMotionMonitor : LogicalComponent {
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "SR-LC-002"; } attribute :>> name = "MotionMonitorChannel";
|
|
20
22
|
attribute :>> channelRole = ChannelRoleKind::monitor;
|
|
21
23
|
attribute :>> diversityBasis = "independent encoder set and diverse processor family";
|
|
22
24
|
}
|
|
@@ -27,22 +29,22 @@ package memo_examples_surgical_robot {
|
|
|
27
29
|
|
|
28
30
|
// Interlock: instrument exchange blocked while arm is in motion.
|
|
29
31
|
part chExchangeInterlock : LogicalComponent {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "SR-LC-003"; } attribute :>> name = "InstrumentExchangeInterlock";
|
|
31
33
|
attribute :>> channelRole = ChannelRoleKind::interlock;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
// Mechanical-force flow from actuator to instrument tip.
|
|
35
37
|
part exTipForce : LogicalExchange {
|
|
36
|
-
|
|
38
|
+
@MemoIdentity { :>> providedId = "SR-EX-001"; } attribute :>> name = "TipForceTransmission";
|
|
37
39
|
attribute :>> contentKind = FlowContentKind::mechanicalForce;
|
|
38
40
|
attribute :>> direction = DirectionKind::output;
|
|
39
41
|
}
|
|
40
42
|
part actJointDrive : Actuator {
|
|
41
|
-
|
|
43
|
+
@MemoIdentity { :>> providedId = "SR-HW-001"; } attribute :>> name = "JointDriveActuator";
|
|
42
44
|
attribute :>> actuationKind = "brushless DC servo with harmonic drive";
|
|
43
45
|
}
|
|
44
46
|
part instrShaft : MechanicalPart {
|
|
45
|
-
|
|
47
|
+
@MemoIdentity { :>> providedId = "SR-HW-002"; } attribute :>> name = "InstrumentShaft";
|
|
46
48
|
attribute :>> mechanicalFunction = "transmits actuation to end effector";
|
|
47
49
|
attribute :>> patientContact = true;
|
|
48
50
|
attribute :>> contactNature = "internal tissue, direct";
|
|
@@ -53,7 +55,7 @@ package memo_examples_surgical_robot {
|
|
|
53
55
|
// surgeon holds, so it is an OperatorInterfaceElement (a PhysicalComponent)
|
|
54
56
|
// rather than a UIElement — UIElement is software.
|
|
55
57
|
part elHapticGrip : OperatorInterfaceElement {
|
|
56
|
-
|
|
58
|
+
@MemoIdentity { :>> providedId = "SR-UI-001"; } attribute :>> name = "HapticMasterGrip";
|
|
57
59
|
attribute :>> formKind = OperatorInterfaceFormKind::hapticIndicator;
|
|
58
60
|
attribute :>> guardedAgainstInadvertentActuation = true;
|
|
59
61
|
}
|
|
@@ -23,8 +23,10 @@ package memo_examples_sysml_diagram_samples_project {
|
|
|
23
23
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_view::*;
|
|
24
24
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view::*;
|
|
25
25
|
|
|
26
|
+
private import memo_core_common::*;
|
|
27
|
+
private import memo_core_common::MemoIdentity;
|
|
26
28
|
part projectBinding : ProjectMethodBinding {
|
|
27
|
-
|
|
29
|
+
@MemoIdentity { :>> providedId = "PMB-DIAGRAM-SAMPLES-001"; }
|
|
28
30
|
attribute :>> name = "SysmlDiagramSamplesProjectMethodBinding";
|
|
29
31
|
attribute :>> projectName = "Sysml Diagram Samples";
|
|
30
32
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -10,6 +10,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
10
10
|
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
11
11
|
private import memo_core_enumerations::*;
|
|
12
12
|
|
|
13
|
+
private import memo_core_common::*;
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
13
15
|
item def DataPacket specializes InterfaceItem {
|
|
14
16
|
attribute :>> itemKind = InterfaceItemKind::data;
|
|
15
17
|
}
|
|
@@ -71,20 +73,20 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
71
73
|
// The target is the action *usage*, not the `ProcessInput` definition.
|
|
72
74
|
// Binding a value to a definition is not portable — SysIDE rejects it,
|
|
73
75
|
// because a value must be a feature and a definition is not.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
doc /* Lane B is the swimlane that carries the ProcessInput behaviour. The
|
|
77
|
+
* association crosses the part/action metaclass boundary, so no typed
|
|
78
|
+
* relation can express it — which is precisely what a bare `dependency`
|
|
79
|
+
* means. It was a `MemoLink`, the ontology's own weakest relation, and
|
|
80
|
+
* that is a duplicate of `dependency` rather than something more.
|
|
81
|
+
*/
|
|
82
|
+
dependency linkLaneBProcessesInput from laneB to sampleActionFlow::process;
|
|
81
83
|
|
|
82
84
|
view sampleActionFlowView : MemoDiagramView {
|
|
83
85
|
expose sampleActionFlow::**;
|
|
84
86
|
expose laneA;
|
|
85
87
|
expose laneB;
|
|
86
88
|
attribute depth = 2;
|
|
87
|
-
|
|
89
|
+
@MemoIdentity { :>> shortDescription = "Dummy actions, typed item flows, successions, and a composite action for renderer development."; }
|
|
88
90
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
89
91
|
attribute :>> diagramType = "afd";
|
|
90
92
|
ref :>> viewpointDefinition = functionalViewpoint;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml
CHANGED
|
@@ -12,6 +12,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
12
12
|
private import memo_viewpoints_context_context_viewpoint::*;
|
|
13
13
|
private import memo_core_enumerations::*;
|
|
14
14
|
|
|
15
|
+
private import memo_core_common::*;
|
|
16
|
+
private import memo_core_common::MemoIdentity;
|
|
15
17
|
// The operational system of interest is intentionally represented as one
|
|
16
18
|
// black box. Context diagrams show its environment and interfaces, not its
|
|
17
19
|
// internal decomposition.
|
|
@@ -29,9 +31,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
29
31
|
}
|
|
30
32
|
part homeContext : UseContext { attribute :>> name = "Home Care Environment"; }
|
|
31
33
|
|
|
32
|
-
connection
|
|
33
|
-
connection
|
|
34
|
-
connection
|
|
34
|
+
connection connect clinician to infusionSystem;
|
|
35
|
+
connection connect patient to infusionSystem;
|
|
36
|
+
connection connect biomedTech to infusionSystem;
|
|
35
37
|
flow from infusionSystem to pharmacySystem;
|
|
36
38
|
connection : AppliesInContext connect useContext ::> homeContext to subjectElement ::> infusionSystem;
|
|
37
39
|
|
|
@@ -43,12 +45,12 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
43
45
|
expose pharmacySystem;
|
|
44
46
|
expose homeContext;
|
|
45
47
|
attribute depth = 1;
|
|
46
|
-
|
|
48
|
+
@MemoIdentity { :>> shortDescription = "Operational system context: one black-box system boundary, its external people, peer systems, operating environment, and named boundary-crossing interactions."; }
|
|
47
49
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
48
50
|
attribute :>> diagramType = "context";
|
|
49
51
|
ref :>> viewpointDefinition = contextViewpoint;
|
|
50
52
|
part :>> selectionQuery {
|
|
51
|
-
attribute :>> includeRelationshipKinds = ("
|
|
53
|
+
attribute :>> includeRelationshipKinds = ("connect", "flow", "AppliesInContext");
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
}
|
|
@@ -9,6 +9,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
9
9
|
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
10
10
|
private import memo_core_enumerations::*;
|
|
11
11
|
|
|
12
|
+
private import memo_core_common::*;
|
|
13
|
+
private import memo_core_common::MemoIdentity;
|
|
12
14
|
// ─────────────────────────────────────────────────────────────────────────
|
|
13
15
|
// Sample · Functional flow — component behaviour of dose delivery
|
|
14
16
|
//
|
|
@@ -134,7 +136,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
134
136
|
expose fxDeliveryFlow::**;
|
|
135
137
|
expose fxPumpSystem::**;
|
|
136
138
|
attribute depth = 2;
|
|
137
|
-
|
|
139
|
+
@MemoIdentity { :>> shortDescription = "Component behaviour: functions in swimlanes per realising component, typed data/energy/material flows, a fork/join for concurrent occlusion monitoring, and a composite 'Deliver Medication' valve sub-flow (double-click to drill in)."; }
|
|
138
140
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
139
141
|
attribute :>> diagramType = "ffd";
|
|
140
142
|
ref :>> viewpointDefinition = functionalViewpoint;
|
|
@@ -11,6 +11,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
11
11
|
private import memo_viewpoints_logical_logical_viewpoint::*;
|
|
12
12
|
private import memo_core_enumerations::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
14
15
|
// Ports are owned by the part whose boundary they are, which is what lets
|
|
15
16
|
// a delegation be written at all: SysML v2 checks a flow's source for
|
|
16
17
|
// `out`-ness relative to the owner, so a boundary port only reads as a
|
|
@@ -75,7 +76,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
75
76
|
expose waterSupply::**;
|
|
76
77
|
expose cup::**;
|
|
77
78
|
attribute depth = 2;
|
|
78
|
-
|
|
79
|
+
@MemoIdentity { :>> shortDescription = "Balanced internal architecture with readable boundary ports, nested service diagnostics, and external water and beverage interfaces."; }
|
|
79
80
|
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
80
81
|
attribute :>> diagramType = "ibd";
|
|
81
82
|
ref :>> viewpointDefinition = logicalArchitectureViewpoint;
|
|
@@ -9,6 +9,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
9
9
|
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
10
10
|
private import memo_core_enumerations::*;
|
|
11
11
|
|
|
12
|
+
private import memo_core_common::*;
|
|
13
|
+
private import memo_core_common::MemoIdentity;
|
|
12
14
|
// Operational activity across clinical roles. The fixture is intentionally
|
|
13
15
|
// product-neutral and belongs only to the diagram-samples project.
|
|
14
16
|
item def OpPrescription specializes InterfaceItem {
|
|
@@ -100,7 +102,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
100
102
|
expose opSetupFlow::**;
|
|
101
103
|
expose opCareSystem::**;
|
|
102
104
|
attribute depth = 2;
|
|
103
|
-
|
|
105
|
+
@MemoIdentity { :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step."; }
|
|
104
106
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
105
107
|
attribute :>> diagramType = "ofd";
|
|
106
108
|
ref :>> viewpointDefinition = operationalViewpoint;
|
|
@@ -11,30 +11,32 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
11
11
|
private import memo_viewpoints_requirements_requirements_viewpoint::*;
|
|
12
12
|
private import memo_core_enumerations::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::*;
|
|
15
|
+
private import memo_core_common::MemoIdentity;
|
|
14
16
|
requirement needSafeTherapy : Need {
|
|
15
17
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
16
|
-
|
|
18
|
+
@MemoIdentity { :>> providedId = "NEED-001"; } attribute :>> name = "SafeTherapy";
|
|
17
19
|
attribute :>> statement = "The device shall support safe patient-controlled infusion therapy.";
|
|
18
20
|
}
|
|
19
21
|
requirement needTimelyAlarms : Need {
|
|
20
22
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> providedId = "NEED-002"; } attribute :>> name = "TimelyAlarms";
|
|
22
24
|
attribute :>> statement = "Clinicians shall be notified promptly of any condition that endangers therapy.";
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
requirement reqDoseLimit : Requirement {
|
|
26
|
-
attribute :>>
|
|
27
|
-
|
|
28
|
+
attribute :>> requirementType = RequirementTypeKind::system;
|
|
29
|
+
@MemoIdentity { :>> providedId = "REQ-001"; } attribute :>> name = "DoseLimitEnforcement";
|
|
28
30
|
attribute :>> statement = "The pump shall not deliver more than the prescribed maximum dose in any one-hour window.";
|
|
29
31
|
}
|
|
30
32
|
requirement reqOcclusionAlarm : Requirement {
|
|
31
|
-
attribute :>>
|
|
32
|
-
|
|
33
|
+
attribute :>> requirementType = RequirementTypeKind::system;
|
|
34
|
+
@MemoIdentity { :>> providedId = "REQ-002"; } attribute :>> name = "OcclusionAlarm";
|
|
33
35
|
attribute :>> statement = "The pump shall raise an alarm within two seconds of detecting a downstream occlusion.";
|
|
34
36
|
}
|
|
35
37
|
requirement reqAlarmLoudness : Requirement {
|
|
36
|
-
attribute :>>
|
|
37
|
-
|
|
38
|
+
attribute :>> requirementType = RequirementTypeKind::system;
|
|
39
|
+
@MemoIdentity { :>> providedId = "REQ-003"; } attribute :>> name = "AlarmLoudness";
|
|
38
40
|
attribute :>> statement = "An active alarm shall be audible at 65 dBA at one metre.";
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -50,7 +52,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
50
52
|
expose reqOcclusionAlarm;
|
|
51
53
|
expose reqAlarmLoudness;
|
|
52
54
|
attribute depth = 1;
|
|
53
|
-
|
|
55
|
+
@MemoIdentity { :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges."; }
|
|
54
56
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
55
57
|
attribute :>> diagramType = "req";
|
|
56
58
|
ref :>> viewpointDefinition = requirementsViewpoint;
|
|
@@ -21,10 +21,12 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard
|
|
|
21
21
|
|
|
22
22
|
private import activity_example::*;
|
|
23
23
|
|
|
24
|
+
private import memo_core_common::*;
|
|
25
|
+
private import memo_core_common::MemoIdentity;
|
|
24
26
|
view standardActivityView : MemoDiagramView {
|
|
25
27
|
expose CustomerProcess::**;
|
|
26
28
|
attribute depth = 2;
|
|
27
|
-
|
|
29
|
+
@MemoIdentity { :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes."; }
|
|
28
30
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
29
31
|
attribute :>> diagramType = "afd";
|
|
30
32
|
ref :>> viewpointDefinition = functionalViewpoint;
|
|
@@ -11,6 +11,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
|
|
|
11
11
|
private import memo_core_enumerations::*;
|
|
12
12
|
private import memo_core_common::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
14
15
|
state pumpModes : StateMachine {
|
|
15
16
|
attribute :>> name = "Pump Operating Modes";
|
|
16
17
|
|
|
@@ -64,7 +65,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
|
|
|
64
65
|
view sampleStateTransitionView : MemoDiagramView {
|
|
65
66
|
expose pumpModes::**;
|
|
66
67
|
attribute depth = 2;
|
|
67
|
-
|
|
68
|
+
@MemoIdentity { :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding."; }
|
|
68
69
|
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
69
70
|
attribute :>> diagramType = "stm";
|
|
70
71
|
ref :>> viewpointDefinition = functionalViewpoint;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml
CHANGED
|
@@ -8,6 +8,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
|
|
|
8
8
|
private import memo_viewpoints_physical_physical_viewpoint::*;
|
|
9
9
|
private import memo_core_enumerations::*;
|
|
10
10
|
|
|
11
|
+
private import memo_core_common::*;
|
|
12
|
+
private import memo_core_common::MemoIdentity;
|
|
11
13
|
part rootA : HardwareAssembly {
|
|
12
14
|
attribute :>> name = "Root A";
|
|
13
15
|
part branchA1 : HardwareAssembly {
|
|
@@ -34,7 +36,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
|
|
|
34
36
|
view sampleTreeView : MemoDiagramView {
|
|
35
37
|
expose rootA::**;
|
|
36
38
|
attribute depth = 2;
|
|
37
|
-
|
|
39
|
+
@MemoIdentity { :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development."; }
|
|
38
40
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
39
41
|
attribute :>> diagramType = "bdd";
|
|
40
42
|
ref :>> viewpointDefinition = physicalViewpoint;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml
CHANGED
|
@@ -7,6 +7,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
7
7
|
private import memo_viewpoints_operational_operational_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
|
// Product-neutral fixture for the UML-style use-case presentation.
|
|
11
13
|
part patient : User {
|
|
12
14
|
attribute :>> actorKind = ActorKind::patient;
|
|
@@ -22,7 +24,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
use case reviewStatus : UseCase {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-001"; }
|
|
26
28
|
attribute :>> name = "Review Device Status";
|
|
27
29
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
28
30
|
include validateTherapySettings;
|
|
@@ -30,7 +32,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
30
32
|
actor patientActor = patient;
|
|
31
33
|
}
|
|
32
34
|
use case configureTherapy : UseCase {
|
|
33
|
-
|
|
35
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-002"; }
|
|
34
36
|
attribute :>> name = "Configure Therapy";
|
|
35
37
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
36
38
|
include reviewStatus;
|
|
@@ -39,7 +41,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
39
41
|
actor patientActor = patient;
|
|
40
42
|
}
|
|
41
43
|
use case maintainDevice : UseCase {
|
|
42
|
-
|
|
44
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-003"; }
|
|
43
45
|
attribute :>> name = "Maintain Device";
|
|
44
46
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
45
47
|
subject supportingSystem;
|
|
@@ -47,21 +49,23 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
use case documentTreatment : UseCase {
|
|
50
|
-
|
|
52
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-004"; }
|
|
51
53
|
attribute :>> name = "Document Treatment";
|
|
52
54
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// L2 child of Review Device Status: makes L0 → L1 → L2 selectable.
|
|
56
58
|
use case validateTherapySettings : UseCase {
|
|
57
|
-
|
|
59
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-005"; }
|
|
58
60
|
attribute :>> name = "Validate Therapy Settings";
|
|
59
61
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
60
62
|
subject supportingSystem;
|
|
61
63
|
actor clinicianActor = clinician;
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
// Was an `Extends` connection; a use case extending another is
|
|
67
|
+
// specialization, and `:>` inherits the base's subject and actors.
|
|
68
|
+
dependency from documentTreatment to reviewStatus;
|
|
65
69
|
|
|
66
70
|
view sampleUseCaseView : MemoDiagramView {
|
|
67
71
|
expose patient;
|
|
@@ -72,7 +76,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
72
76
|
expose maintainDevice;
|
|
73
77
|
expose documentTreatment;
|
|
74
78
|
expose validateTherapySettings;
|
|
75
|
-
|
|
79
|
+
@MemoIdentity { :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation."; }
|
|
76
80
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
77
81
|
attribute :>> diagramType = "ucd";
|
|
78
82
|
ref :>> viewpointDefinition = operationalViewpoint;
|