@memoarchitect/ontology 0.7.0 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +9 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +9 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +82 -58
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -2
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -331
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
- package/examples/gpca-pump/model/catalog/project.sysml +5 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +3 -2
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -5
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -60
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -15
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +42 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +56 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +26 -55
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +3 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +0 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +51 -82
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +21 -31
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -8
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -21
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -1
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +13 -2
- 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 +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +23 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +49 -21
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +91 -34
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +37 -10
- package/src/architecture/implementation/ui/memo_ui.sysml +78 -38
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +63 -11
- package/src/architecture/logical/structure/memo_logical_structure.sysml +21 -20
- package/src/architecture/operational/activities/memo_activities.sysml +10 -3
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +29 -10
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
- package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
- package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
- package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
- package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
- package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
- package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
- package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +25 -6
- package/src/core/common/memo_common.sysml +121 -16
- package/src/core/consistency_rules/consistency_rules.sysml +1 -1
- package/src/core/dimensions/dimensions.sysml +12 -0
- package/src/core/enumerations/memo_enumerations.sysml +60 -14
- package/src/core/relationships/memo_relationships.sysml +199 -196
- package/src/memo_namespaces.sysml +30 -0
- package/src/methodology/core/memo_core.sysml +24 -0
- package/src/methodology/profiles/memo_profiles.sysml +1 -1
- package/src/rules/ontology/ontology_invariants.sysml +213 -1
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +3 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -1
- package/src/viewpoints/context/context_viewpoint.sysml +1 -1
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -1
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +1 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +1 -1
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -1
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -1
- package/src/viewpoints/operational/operational_viewpoint.sysml +1 -1
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +1 -1
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/verification_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -1
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_flow_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
private import memo_core_relationships::*;
|
|
4
|
+
private import ModelingMetadata::*;
|
|
4
5
|
|
|
5
6
|
private import memo_architecture_logical_structure::*;
|
|
6
7
|
private import memo_architecture_logical_interfaces::*;
|
|
@@ -19,15 +20,15 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
19
20
|
attribute :>> itemKind = InterfaceItemKind::material;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
action def ReceiveInput specializes
|
|
23
|
-
action def ValidateInput specializes
|
|
24
|
-
action def ProcessInput specializes
|
|
25
|
-
action def RecordResult specializes
|
|
23
|
+
action def ReceiveInput specializes SystemFunction { out item received : DataPacket; }
|
|
24
|
+
action def ValidateInput specializes SystemFunction { in item received : DataPacket; out item validated : EnergyToken; }
|
|
25
|
+
action def ProcessInput specializes SystemFunction { in item validated : EnergyToken; out item result : MaterialBatch; }
|
|
26
|
+
action def RecordResult specializes SystemFunction { in item result : MaterialBatch; }
|
|
26
27
|
|
|
27
28
|
part laneA : LogicalComponent { attribute :>> name = "Lane A"; }
|
|
28
29
|
part laneB : LogicalComponent { attribute :>> name = "Lane B"; }
|
|
29
30
|
|
|
30
|
-
action sampleActionFlow :
|
|
31
|
+
action sampleActionFlow : SystemFunction {
|
|
31
32
|
action receive : ReceiveInput;
|
|
32
33
|
action validate : ValidateInput;
|
|
33
34
|
action process : ProcessInput {
|
|
@@ -72,8 +73,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
72
73
|
// because a value must be a feature and a definition is not.
|
|
73
74
|
connection linkLaneBProcessesInput : MemoLink
|
|
74
75
|
connect linkSource ::> laneB to linkTarget ::> sampleActionFlow.process {
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
@Rationale {
|
|
77
|
+
:>> text =
|
|
78
|
+
"Lane B is the swimlane that carries the ProcessInput behaviour. The association crosses the part/action metaclass boundary, so no typed relation can express it.";
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
view sampleActionFlowView : MemoDiagramView {
|
|
@@ -87,12 +90,4 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
87
90
|
attribute :>> diagramType = "afd";
|
|
88
91
|
part :>> viewpointDefinition = functionalViewpoint;
|
|
89
92
|
}
|
|
90
|
-
|
|
91
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.receive to targetView ::> sampleActionFlowView;
|
|
92
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.validate to targetView ::> sampleActionFlowView;
|
|
93
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.process to targetView ::> sampleActionFlowView;
|
|
94
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.process.processStepA to targetView ::> sampleActionFlowView;
|
|
95
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.process.processStepB to targetView ::> sampleActionFlowView;
|
|
96
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.process.processStepC to targetView ::> sampleActionFlowView;
|
|
97
|
-
connection : IncludedIn connect sourceElement ::> sampleActionFlow.record to targetView ::> sampleActionFlowView;
|
|
98
93
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml
CHANGED
|
@@ -32,11 +32,16 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
32
32
|
connection : InteractsWith connect contextParticipant ::> clinician to target ::> infusionSystem;
|
|
33
33
|
connection : InteractsWith connect contextParticipant ::> patient to target ::> infusionSystem;
|
|
34
34
|
connection : InteractsWith connect contextParticipant ::> biomedTech to target ::> infusionSystem;
|
|
35
|
-
|
|
35
|
+
flow from infusionSystem to pharmacySystem;
|
|
36
36
|
connection : AppliesInContext connect useContext ::> homeContext to subjectElement ::> infusionSystem;
|
|
37
37
|
|
|
38
38
|
view sampleContextView : MemoDiagramView {
|
|
39
39
|
expose infusionSystem::**;
|
|
40
|
+
expose clinician;
|
|
41
|
+
expose patient;
|
|
42
|
+
expose biomedTech;
|
|
43
|
+
expose pharmacySystem;
|
|
44
|
+
expose homeContext;
|
|
40
45
|
attribute depth = 1;
|
|
41
46
|
attribute :>> title = "Sample · System Context";
|
|
42
47
|
attribute :>> shortDescription = "Operational system context: one black-box system boundary, its external people, peer systems, operating environment, and named boundary-crossing interactions.";
|
|
@@ -44,14 +49,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
44
49
|
attribute :>> diagramType = "context";
|
|
45
50
|
part :>> viewpointDefinition = contextViewpoint;
|
|
46
51
|
part :>> selectionQuery {
|
|
47
|
-
attribute :>> includeRelationshipKinds = ("InteractsWith", "
|
|
52
|
+
attribute :>> includeRelationshipKinds = ("InteractsWith", "flow", "AppliesInContext");
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
|
-
|
|
51
|
-
connection : IncludedIn connect sourceElement ::> infusionSystem to targetView ::> sampleContextView;
|
|
52
|
-
connection : IncludedIn connect sourceElement ::> clinician to targetView ::> sampleContextView;
|
|
53
|
-
connection : IncludedIn connect sourceElement ::> patient to targetView ::> sampleContextView;
|
|
54
|
-
connection : IncludedIn connect sourceElement ::> biomedTech to targetView ::> sampleContextView;
|
|
55
|
-
connection : IncludedIn connect sourceElement ::> pharmacySystem to targetView ::> sampleContextView;
|
|
56
|
-
connection : IncludedIn connect sourceElement ::> homeContext to targetView ::> sampleContextView;
|
|
57
55
|
}
|
|
@@ -39,38 +39,37 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// Functions with typed in/out pins
|
|
42
|
-
action def FxAcquire specializes
|
|
43
|
-
action def FxCompute specializes
|
|
44
|
-
action def FxEnforce specializes
|
|
45
|
-
action def FxDrive specializes
|
|
46
|
-
action def FxDeliverMedication specializes
|
|
47
|
-
action def FxMonitor specializes
|
|
48
|
-
action def FxDetect specializes
|
|
42
|
+
action def FxAcquire specializes SystemFunction { out item reading : FxSensorReading; }
|
|
43
|
+
action def FxCompute specializes SystemFunction { in item reading : FxSensorReading; out item command : FxRateCommand; }
|
|
44
|
+
action def FxEnforce specializes SystemFunction { in item command : FxRateCommand; out item safeCommand : FxRateCommand; }
|
|
45
|
+
action def FxDrive specializes SystemFunction { in item command : FxRateCommand; out item energy : FxMotorEnergy; }
|
|
46
|
+
action def FxDeliverMedication specializes SystemFunction { in item energy : FxMotorEnergy; out item fluid : FxMedicationFluid; }
|
|
47
|
+
action def FxMonitor specializes SystemFunction { out item signal : FxOcclusionSignal; }
|
|
48
|
+
action def FxDetect specializes SystemFunction { in item signal : FxOcclusionSignal; }
|
|
49
49
|
|
|
50
50
|
// Component hierarchy used by the Level control:
|
|
51
51
|
// L1 system → L2 subsystems → L3 allocated components.
|
|
52
|
-
part fxPumpSystem : LogicalComponent {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
connection : Composes connect parent ::> fxSafetySubsystem to child ::> fxSafety;
|
|
52
|
+
part fxPumpSystem : LogicalComponent {
|
|
53
|
+
attribute :>> name = "Infusion Pump System";
|
|
54
|
+
part fxSensingSubsystem : LogicalComponent {
|
|
55
|
+
attribute :>> name = "Sensing Subsystem";
|
|
56
|
+
part fxSensor : LogicalComponent { attribute :>> name = "Sensor Subsystem"; }
|
|
57
|
+
}
|
|
58
|
+
part fxControlSubsystem : LogicalComponent {
|
|
59
|
+
attribute :>> name = "Control Subsystem";
|
|
60
|
+
part fxController : LogicalComponent { attribute :>> name = "Infusion Controller"; }
|
|
61
|
+
}
|
|
62
|
+
part fxDeliverySubsystem : LogicalComponent {
|
|
63
|
+
attribute :>> name = "Delivery Subsystem";
|
|
64
|
+
part fxActuator : LogicalComponent { attribute :>> name = "Pump Actuator"; }
|
|
65
|
+
}
|
|
66
|
+
part fxSafetySubsystem : LogicalComponent {
|
|
67
|
+
attribute :>> name = "Safety Subsystem";
|
|
68
|
+
part fxSafety : LogicalComponent { attribute :>> name = "Safety Monitor"; }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
72
71
|
|
|
73
|
-
action fxDeliveryFlow :
|
|
72
|
+
action fxDeliveryFlow : SystemFunction {
|
|
74
73
|
action fxAcquire : FxAcquire { attribute :>> name = "Acquire Sensor Data"; }
|
|
75
74
|
action fxCompute : FxCompute { attribute :>> name = "Compute Infusion Rate"; }
|
|
76
75
|
|
|
@@ -85,9 +84,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
85
84
|
// Composite function — valve sub-flow (drill-in)
|
|
86
85
|
action fxDeliver : FxDeliverMedication {
|
|
87
86
|
attribute :>> name = "Deliver Medication";
|
|
88
|
-
action fxOpenValve :
|
|
89
|
-
action fxHoldDose :
|
|
90
|
-
action fxCloseValve :
|
|
87
|
+
action fxOpenValve : SystemFunction { attribute :>> name = "Open Valve"; }
|
|
88
|
+
action fxHoldDose : SystemFunction { attribute :>> name = "Hold Metered Dose"; }
|
|
89
|
+
action fxCloseValve : SystemFunction { attribute :>> name = "Close Valve"; }
|
|
91
90
|
|
|
92
91
|
flow of FxMedicationFluid from fxDeliveryFlow.fxDeliver.fxHoldDose to fxCloseValve;
|
|
93
92
|
|
|
@@ -97,7 +96,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
97
96
|
first fxCloseValve then done;
|
|
98
97
|
}
|
|
99
98
|
|
|
100
|
-
action fxLog :
|
|
99
|
+
action fxLog : SystemFunction { attribute :>> name = "Log Delivery"; }
|
|
101
100
|
|
|
102
101
|
flow of FxSensorReading from fxAcquire.reading to fxCompute.reading;
|
|
103
102
|
flow of FxRateCommand from fxEnforce.safeCommand to fxDrive.command;
|
|
@@ -119,17 +118,17 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
// Swimlane allocation — which component realises each function
|
|
122
|
-
allocate fxDeliveryFlow.fxAcquire to fxSensor;
|
|
123
|
-
allocate fxDeliveryFlow.fxCompute to fxController;
|
|
124
|
-
allocate fxDeliveryFlow.fxEnforce to fxSafety;
|
|
125
|
-
allocate fxDeliveryFlow.fxDrive to fxActuator;
|
|
126
|
-
allocate fxDeliveryFlow.fxDeliver to fxActuator;
|
|
127
|
-
allocate fxDeliveryFlow.fxMonitor to fxSafety;
|
|
128
|
-
allocate fxDeliveryFlow.fxDetect to fxSafety;
|
|
129
|
-
allocate fxDeliveryFlow.fxLog to fxController;
|
|
130
|
-
allocate fxDeliveryFlow.fxDeliver.fxOpenValve to fxActuator;
|
|
131
|
-
allocate fxDeliveryFlow.fxDeliver.fxHoldDose to fxActuator;
|
|
132
|
-
allocate fxDeliveryFlow.fxDeliver.fxCloseValve to fxActuator;
|
|
121
|
+
allocate fxDeliveryFlow.fxAcquire to fxPumpSystem.fxSensingSubsystem.fxSensor;
|
|
122
|
+
allocate fxDeliveryFlow.fxCompute to fxPumpSystem.fxControlSubsystem.fxController;
|
|
123
|
+
allocate fxDeliveryFlow.fxEnforce to fxPumpSystem.fxSafetySubsystem.fxSafety;
|
|
124
|
+
allocate fxDeliveryFlow.fxDrive to fxPumpSystem.fxDeliverySubsystem.fxActuator;
|
|
125
|
+
allocate fxDeliveryFlow.fxDeliver to fxPumpSystem.fxDeliverySubsystem.fxActuator;
|
|
126
|
+
allocate fxDeliveryFlow.fxMonitor to fxPumpSystem.fxSafetySubsystem.fxSafety;
|
|
127
|
+
allocate fxDeliveryFlow.fxDetect to fxPumpSystem.fxSafetySubsystem.fxSafety;
|
|
128
|
+
allocate fxDeliveryFlow.fxLog to fxPumpSystem.fxControlSubsystem.fxController;
|
|
129
|
+
allocate fxDeliveryFlow.fxDeliver.fxOpenValve to fxPumpSystem.fxDeliverySubsystem.fxActuator;
|
|
130
|
+
allocate fxDeliveryFlow.fxDeliver.fxHoldDose to fxPumpSystem.fxDeliverySubsystem.fxActuator;
|
|
131
|
+
allocate fxDeliveryFlow.fxDeliver.fxCloseValve to fxPumpSystem.fxDeliverySubsystem.fxActuator;
|
|
133
132
|
|
|
134
133
|
view fxDeliveryView : MemoDiagramView {
|
|
135
134
|
expose fxDeliveryFlow::**;
|
|
@@ -141,27 +140,4 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
141
140
|
attribute :>> diagramType = "ffd";
|
|
142
141
|
part :>> viewpointDefinition = functionalViewpoint;
|
|
143
142
|
}
|
|
144
|
-
|
|
145
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxAcquire to targetView ::> fxDeliveryView;
|
|
146
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxCompute to targetView ::> fxDeliveryView;
|
|
147
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxForkDeliver to targetView ::> fxDeliveryView;
|
|
148
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxEnforce to targetView ::> fxDeliveryView;
|
|
149
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDrive to targetView ::> fxDeliveryView;
|
|
150
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver to targetView ::> fxDeliveryView;
|
|
151
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxMonitor to targetView ::> fxDeliveryView;
|
|
152
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDetect to targetView ::> fxDeliveryView;
|
|
153
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxJoinDeliver to targetView ::> fxDeliveryView;
|
|
154
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxLog to targetView ::> fxDeliveryView;
|
|
155
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxOpenValve to targetView ::> fxDeliveryView;
|
|
156
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxHoldDose to targetView ::> fxDeliveryView;
|
|
157
|
-
connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxDeliver.fxCloseValve to targetView ::> fxDeliveryView;
|
|
158
|
-
connection : IncludedIn connect sourceElement ::> fxPumpSystem to targetView ::> fxDeliveryView;
|
|
159
|
-
connection : IncludedIn connect sourceElement ::> fxSensingSubsystem to targetView ::> fxDeliveryView;
|
|
160
|
-
connection : IncludedIn connect sourceElement ::> fxControlSubsystem to targetView ::> fxDeliveryView;
|
|
161
|
-
connection : IncludedIn connect sourceElement ::> fxDeliverySubsystem to targetView ::> fxDeliveryView;
|
|
162
|
-
connection : IncludedIn connect sourceElement ::> fxSafetySubsystem to targetView ::> fxDeliveryView;
|
|
163
|
-
connection : IncludedIn connect sourceElement ::> fxSensor to targetView ::> fxDeliveryView;
|
|
164
|
-
connection : IncludedIn connect sourceElement ::> fxController to targetView ::> fxDeliveryView;
|
|
165
|
-
connection : IncludedIn connect sourceElement ::> fxActuator to targetView ::> fxDeliveryView;
|
|
166
|
-
connection : IncludedIn connect sourceElement ::> fxSafety to targetView ::> fxDeliveryView;
|
|
167
143
|
}
|
|
@@ -11,53 +11,64 @@ 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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
part
|
|
14
|
+
// Ports are owned by the part whose boundary they are, which is what lets
|
|
15
|
+
// a delegation be written at all: SysML v2 checks a flow's source for
|
|
16
|
+
// `out`-ness relative to the owner, so a boundary port only reads as a
|
|
17
|
+
// source from INSIDE its part. The subassemblies are nested the same way —
|
|
18
|
+
// real containment, not a port-to-port `Composes` edge, which is what
|
|
19
|
+
// CR-ONT-065 used to forbid before nesting made the rule unnecessary.
|
|
20
|
+
part coffeeMachine : LogicalComponent {
|
|
21
|
+
attribute :>> name = "Coffee Machine";
|
|
22
|
+
in port mainsWaterIn : DataPort { in item payload : MemoItem; }
|
|
23
|
+
out port beverageOut : DataPort { out item payload : MemoItem; }
|
|
24
|
+
inout port serviceInterface : DataPort {
|
|
25
|
+
inout item payload : MemoItem;
|
|
26
|
+
out port diagnostics : DataPort { out item payload : MemoItem; }
|
|
27
|
+
}
|
|
21
28
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
out port heatedWaterOut : DataPort { out item payload : MemoExchangeItem; }
|
|
32
|
-
in port brewWaterIn : DataPort { in item payload : MemoExchangeItem; }
|
|
33
|
-
out port brewedCoffeeOut : DataPort { out item payload : MemoExchangeItem; }
|
|
34
|
-
out port heaterStatusOut : DataPort { out item payload : MemoExchangeItem; }
|
|
29
|
+
part waterTank : LogicalComponent {
|
|
30
|
+
attribute :>> name = "Water Reservoir";
|
|
31
|
+
out port tankWaterOut : DataPort { out item payload : MemoItem; }
|
|
32
|
+
in port tankWaterIn : DataPort { in item payload : MemoItem; }
|
|
33
|
+
}
|
|
34
|
+
part heaterAssembly : LogicalComponent {
|
|
35
|
+
attribute :>> name = "Thermal Control Assembly";
|
|
36
|
+
in port heaterWaterIn : DataPort { in item payload : MemoItem; }
|
|
37
|
+
out port heatedWaterOut : DataPort { out item payload : MemoItem; }
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
part heatingElement : LogicalComponent {
|
|
40
|
+
attribute :>> name = "Water Heating Element";
|
|
41
|
+
out port heaterStatusOut : DataPort { out item payload : MemoItem; }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
part brewGroup : LogicalComponent {
|
|
45
|
+
attribute :>> name = "Brew Group";
|
|
46
|
+
in port brewWaterIn : DataPort { in item payload : MemoItem; }
|
|
47
|
+
out port brewedCoffeeOut : DataPort { out item payload : MemoItem; }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
part waterSupply : LogicalComponent {
|
|
51
|
+
attribute :>> name = "Water Supply";
|
|
52
|
+
out port supplyWaterOut : DataPort { out item payload : MemoItem; }
|
|
53
|
+
}
|
|
54
|
+
part cup : LogicalComponent {
|
|
55
|
+
attribute :>> name = "Cup";
|
|
56
|
+
in port cupBeverageIn : DataPort { in item payload : MemoItem; }
|
|
57
|
+
}
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
// Transport between two components: `out` to `in`, one item moving.
|
|
60
|
+
flow from waterSupply.supplyWaterOut to coffeeMachine.mainsWaterIn;
|
|
61
|
+
flow from coffeeMachine.waterTank.tankWaterOut to coffeeMachine.heaterAssembly.heaterWaterIn;
|
|
62
|
+
flow from coffeeMachine.heaterAssembly.heatedWaterOut to coffeeMachine.brewGroup.brewWaterIn;
|
|
63
|
+
flow from coffeeMachine.beverageOut to cup.cupBeverageIn;
|
|
64
|
+
|
|
65
|
+
// Delegation between a boundary port and the interior it stands for. These
|
|
66
|
+
// are `in`-to-`in` and `out`-to-`out`, because nothing travels: the two
|
|
67
|
+
// features are the same feature. SysML v2 spells that `bind` (training
|
|
68
|
+
// ch. 12), not `flow` (ch. 13).
|
|
69
|
+
bind coffeeMachine.mainsWaterIn = coffeeMachine.waterTank.tankWaterIn;
|
|
70
|
+
bind coffeeMachine.brewGroup.brewedCoffeeOut = coffeeMachine.beverageOut;
|
|
71
|
+
bind coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut = coffeeMachine.serviceInterface.diagnostics;
|
|
61
72
|
|
|
62
73
|
view sampleInterconnectionView : MemoDiagramView {
|
|
63
74
|
expose coffeeMachine::**;
|
|
@@ -70,28 +81,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
70
81
|
attribute :>> diagramType = "ibd";
|
|
71
82
|
part :>> viewpointDefinition = logicalArchitectureViewpoint;
|
|
72
83
|
part :>> selectionQuery {
|
|
73
|
-
attribute :>> includeRelationshipKinds = ("Composes", "
|
|
84
|
+
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
74
85
|
}
|
|
75
86
|
}
|
|
76
|
-
|
|
77
|
-
connection : IncludedIn connect sourceElement ::> coffeeMachine to targetView ::> sampleInterconnectionView;
|
|
78
|
-
connection : IncludedIn connect sourceElement ::> waterSupply to targetView ::> sampleInterconnectionView;
|
|
79
|
-
connection : IncludedIn connect sourceElement ::> waterTank to targetView ::> sampleInterconnectionView;
|
|
80
|
-
connection : IncludedIn connect sourceElement ::> heaterAssembly to targetView ::> sampleInterconnectionView;
|
|
81
|
-
connection : IncludedIn connect sourceElement ::> heatingElement to targetView ::> sampleInterconnectionView;
|
|
82
|
-
connection : IncludedIn connect sourceElement ::> brewGroup to targetView ::> sampleInterconnectionView;
|
|
83
|
-
connection : IncludedIn connect sourceElement ::> cup to targetView ::> sampleInterconnectionView;
|
|
84
|
-
connection : IncludedIn connect sourceElement ::> mainsWaterIn to targetView ::> sampleInterconnectionView;
|
|
85
|
-
connection : IncludedIn connect sourceElement ::> beverageOut to targetView ::> sampleInterconnectionView;
|
|
86
|
-
connection : IncludedIn connect sourceElement ::> supplyWaterOut to targetView ::> sampleInterconnectionView;
|
|
87
|
-
connection : IncludedIn connect sourceElement ::> cupBeverageIn to targetView ::> sampleInterconnectionView;
|
|
88
|
-
connection : IncludedIn connect sourceElement ::> serviceInterface to targetView ::> sampleInterconnectionView;
|
|
89
|
-
connection : IncludedIn connect sourceElement ::> diagnostics to targetView ::> sampleInterconnectionView;
|
|
90
|
-
connection : IncludedIn connect sourceElement ::> tankWaterOut to targetView ::> sampleInterconnectionView;
|
|
91
|
-
connection : IncludedIn connect sourceElement ::> tankWaterIn to targetView ::> sampleInterconnectionView;
|
|
92
|
-
connection : IncludedIn connect sourceElement ::> heaterWaterIn to targetView ::> sampleInterconnectionView;
|
|
93
|
-
connection : IncludedIn connect sourceElement ::> heatedWaterOut to targetView ::> sampleInterconnectionView;
|
|
94
|
-
connection : IncludedIn connect sourceElement ::> brewWaterIn to targetView ::> sampleInterconnectionView;
|
|
95
|
-
connection : IncludedIn connect sourceElement ::> brewedCoffeeOut to targetView ::> sampleInterconnectionView;
|
|
96
|
-
connection : IncludedIn connect sourceElement ::> heaterStatusOut to targetView ::> sampleInterconnectionView;
|
|
97
87
|
}
|
|
@@ -29,26 +29,21 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
29
29
|
attribute :>> name = "PCA Care System";
|
|
30
30
|
attribute :>> entityKind = OperationalEntityKind::device;
|
|
31
31
|
attribute :>> responsibility = "System of interest for this context view.";
|
|
32
|
+
part opClinicalTeam : User {
|
|
33
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team";
|
|
34
|
+
part opRolePhysician : User {
|
|
35
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Physician"; }
|
|
36
|
+
part opRoleNurse : User {
|
|
37
|
+
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Nurse"; }
|
|
38
|
+
part opRoleBiomed : User {
|
|
39
|
+
attribute :>> actorKind = ActorKind::technician; attribute :>> name = "Biomed Tech"; }
|
|
40
|
+
}
|
|
41
|
+
part opPatientGroup : User {
|
|
42
|
+
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient Interaction";
|
|
43
|
+
part opRolePatient : User {
|
|
44
|
+
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient"; }
|
|
45
|
+
}
|
|
32
46
|
}
|
|
33
|
-
part opClinicalTeam : User {
|
|
34
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team"; }
|
|
35
|
-
part opPatientGroup : User {
|
|
36
|
-
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient Interaction"; }
|
|
37
|
-
part opRolePhysician : User {
|
|
38
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Physician"; }
|
|
39
|
-
part opRoleNurse : User {
|
|
40
|
-
attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Nurse"; }
|
|
41
|
-
part opRoleBiomed : User {
|
|
42
|
-
attribute :>> actorKind = ActorKind::technician; attribute :>> name = "Biomed Tech"; }
|
|
43
|
-
part opRolePatient : User {
|
|
44
|
-
attribute :>> actorKind = ActorKind::patient; attribute :>> name = "Patient"; }
|
|
45
|
-
|
|
46
|
-
connection : Composes connect parent ::> opCareSystem to child ::> opClinicalTeam;
|
|
47
|
-
connection : Composes connect parent ::> opCareSystem to child ::> opPatientGroup;
|
|
48
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRolePhysician;
|
|
49
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleNurse;
|
|
50
|
-
connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleBiomed;
|
|
51
|
-
connection : Composes connect parent ::> opPatientGroup to child ::> opRolePatient;
|
|
52
47
|
|
|
53
48
|
action opSetupFlow : OperationalActivity {
|
|
54
49
|
action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
|
|
@@ -88,24 +83,22 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
88
83
|
first opAdminister then done;
|
|
89
84
|
}
|
|
90
85
|
|
|
91
|
-
allocate opSetupFlow.opPrescribe to opRolePhysician;
|
|
92
|
-
allocate opSetupFlow.opVerify to opRoleNurse;
|
|
93
|
-
allocate opSetupFlow.opPrime to opRoleNurse;
|
|
94
|
-
allocate opSetupFlow.opSelfTest to opRoleBiomed;
|
|
95
|
-
allocate opSetupFlow.opProgram to opRoleNurse;
|
|
96
|
-
allocate opSetupFlow.opConnect to opRoleNurse;
|
|
97
|
-
allocate opSetupFlow.opStart to opRoleNurse;
|
|
98
|
-
allocate opSetupFlow.opAdminister to opRoleNurse;
|
|
99
|
-
allocate opSetupFlow.opAdminister.opRequestBolus to opRolePatient;
|
|
100
|
-
allocate opSetupFlow.opAdminister.opCheckLockout to opRoleNurse;
|
|
101
|
-
allocate opSetupFlow.opAdminister.opDeliverDose to opRoleNurse;
|
|
102
|
-
allocate opSetupFlow.opAdminister.opLogEvent to opRoleNurse;
|
|
86
|
+
allocate opSetupFlow.opPrescribe to opCareSystem.opClinicalTeam.opRolePhysician;
|
|
87
|
+
allocate opSetupFlow.opVerify to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
88
|
+
allocate opSetupFlow.opPrime to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
89
|
+
allocate opSetupFlow.opSelfTest to opCareSystem.opClinicalTeam.opRoleBiomed;
|
|
90
|
+
allocate opSetupFlow.opProgram to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
91
|
+
allocate opSetupFlow.opConnect to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
92
|
+
allocate opSetupFlow.opStart to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
93
|
+
allocate opSetupFlow.opAdminister to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
94
|
+
allocate opSetupFlow.opAdminister.opRequestBolus to opCareSystem.opPatientGroup.opRolePatient;
|
|
95
|
+
allocate opSetupFlow.opAdminister.opCheckLockout to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
96
|
+
allocate opSetupFlow.opAdminister.opDeliverDose to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
97
|
+
allocate opSetupFlow.opAdminister.opLogEvent to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
103
98
|
|
|
104
99
|
view opSetupView : MemoDiagramView {
|
|
105
100
|
expose opSetupFlow::**;
|
|
106
101
|
expose opCareSystem::**;
|
|
107
|
-
expose opClinicalTeam::**;
|
|
108
|
-
expose opPatientGroup::**;
|
|
109
102
|
attribute depth = 2;
|
|
110
103
|
attribute :>> title = "Sample · Clinical PCA Setup (Operational)";
|
|
111
104
|
attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
|
|
@@ -113,26 +106,4 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
113
106
|
attribute :>> diagramType = "ofd";
|
|
114
107
|
part :>> viewpointDefinition = operationalViewpoint;
|
|
115
108
|
}
|
|
116
|
-
|
|
117
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrescribe to targetView ::> opSetupView;
|
|
118
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opVerify to targetView ::> opSetupView;
|
|
119
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opForkPrep to targetView ::> opSetupView;
|
|
120
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrime to targetView ::> opSetupView;
|
|
121
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opSelfTest to targetView ::> opSetupView;
|
|
122
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opJoinPrep to targetView ::> opSetupView;
|
|
123
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opProgram to targetView ::> opSetupView;
|
|
124
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opConnect to targetView ::> opSetupView;
|
|
125
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opStart to targetView ::> opSetupView;
|
|
126
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister to targetView ::> opSetupView;
|
|
127
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opRequestBolus to targetView ::> opSetupView;
|
|
128
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opCheckLockout to targetView ::> opSetupView;
|
|
129
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opDeliverDose to targetView ::> opSetupView;
|
|
130
|
-
connection : IncludedIn connect sourceElement ::> opSetupFlow.opAdminister.opLogEvent to targetView ::> opSetupView;
|
|
131
|
-
connection : IncludedIn connect sourceElement ::> opCareSystem to targetView ::> opSetupView;
|
|
132
|
-
connection : IncludedIn connect sourceElement ::> opClinicalTeam to targetView ::> opSetupView;
|
|
133
|
-
connection : IncludedIn connect sourceElement ::> opPatientGroup to targetView ::> opSetupView;
|
|
134
|
-
connection : IncludedIn connect sourceElement ::> opRolePhysician to targetView ::> opSetupView;
|
|
135
|
-
connection : IncludedIn connect sourceElement ::> opRoleNurse to targetView ::> opSetupView;
|
|
136
|
-
connection : IncludedIn connect sourceElement ::> opRoleBiomed to targetView ::> opSetupView;
|
|
137
|
-
connection : IncludedIn connect sourceElement ::> opRolePatient to targetView ::> opSetupView;
|
|
138
109
|
}
|
|
@@ -46,6 +46,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
46
46
|
view sampleRequirementsView : MemoDiagramView {
|
|
47
47
|
expose needSafeTherapy::**;
|
|
48
48
|
expose needTimelyAlarms::**;
|
|
49
|
+
expose reqDoseLimit;
|
|
50
|
+
expose reqOcclusionAlarm;
|
|
51
|
+
expose reqAlarmLoudness;
|
|
49
52
|
attribute depth = 1;
|
|
50
53
|
attribute :>> title = "Sample · Requirements";
|
|
51
54
|
attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
|
|
@@ -56,10 +59,4 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
56
59
|
attribute :>> includeRelationshipKinds = ("DerivesFrom");
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
|
|
60
|
-
connection : IncludedIn connect sourceElement ::> needSafeTherapy to targetView ::> sampleRequirementsView;
|
|
61
|
-
connection : IncludedIn connect sourceElement ::> needTimelyAlarms to targetView ::> sampleRequirementsView;
|
|
62
|
-
connection : IncludedIn connect sourceElement ::> reqDoseLimit to targetView ::> sampleRequirementsView;
|
|
63
|
-
connection : IncludedIn connect sourceElement ::> reqOcclusionAlarm to targetView ::> sampleRequirementsView;
|
|
64
|
-
connection : IncludedIn connect sourceElement ::> reqAlarmLoudness to targetView ::> sampleRequirementsView;
|
|
65
62
|
}
|
|
@@ -30,22 +30,4 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard
|
|
|
30
30
|
attribute :>> diagramType = "afd";
|
|
31
31
|
part :>> viewpointDefinition = functionalViewpoint;
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::customerLogsIn to targetView ::> standardActivityView;
|
|
35
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::validUserDecision to targetView ::> standardActivityView;
|
|
36
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::rejected to targetView ::> standardActivityView;
|
|
37
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::browseCatalog to targetView ::> standardActivityView;
|
|
38
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::viewBookStore to targetView ::> standardActivityView;
|
|
39
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::selectBookForPurchase to targetView ::> standardActivityView;
|
|
40
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::addToShoppingBasket to targetView ::> standardActivityView;
|
|
41
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::viewShoppingBasket to targetView ::> standardActivityView;
|
|
42
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::shoppingDecision to targetView ::> standardActivityView;
|
|
43
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::commitOrder to targetView ::> standardActivityView;
|
|
44
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::supplyCreditCardDetails to targetView ::> standardActivityView;
|
|
45
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::creditDecision to targetView ::> standardActivityView;
|
|
46
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::rejectCreditCard to targetView ::> standardActivityView;
|
|
47
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::closeOrder to targetView ::> standardActivityView;
|
|
48
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::confirmPurchase to targetView ::> standardActivityView;
|
|
49
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::itemsDelivered to targetView ::> standardActivityView;
|
|
50
|
-
connection : IncludedIn connect sourceElement ::> CustomerProcess::orderComplete to targetView ::> standardActivityView;
|
|
51
33
|
}
|