@memoarchitect/ontology 0.8.22 → 0.8.24
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/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +2 -2
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/memo.package.yaml +3 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +5 -3
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +1 -2
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +52 -82
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +6 -19
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +0 -3
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +3 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -6
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -3
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/memo.package.yaml +3 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +15 -24
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +1 -1
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +36 -49
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
- package/examples/surgical-robot/memo.package.yaml +3 -0
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
- package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +2 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +14 -15
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +1 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +1 -2
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +4 -8
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
- package/examples/ui-screen-regions/memo.package.yaml +3 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/container/src/container_extension.sysml +2 -2
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/ros/memo.package.yaml +1 -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 +1 -1
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/functional/behavior/memo_behavior.sysml +4 -4
- package/src/architecture/functional/functions/memo_functions.sysml +6 -6
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
- package/src/architecture/implementation/ui/memo_ui.sysml +8 -8
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -1
- package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
- package/src/architecture/operational/activities/memo_activities.sysml +19 -28
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +2 -3
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +18 -100
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +0 -1
- package/src/architecture/operational/workflows/memo_workflows.sysml +20 -22
- package/src/architecture/realization/deployment/memo_deployment.sysml +10 -10
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +3 -3
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
- package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
- package/src/assurance/requirements/memo_requirements.sysml +2 -18
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
- package/src/assurance/safety_risk/memo_risk.sysml +12 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
- package/src/core/common/memo_common.sysml +9 -5
- package/src/core/relationships/memo_relationships.sysml +8 -8
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +20 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/ontology/ontology_invariants.sysml +40 -40
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -29
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -2
- package/src/viewpoints/context/context_viewpoint.sysml +1 -2
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -2
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -2
- package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -2
- package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -2
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/default/memo.package.yaml +2 -0
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/samd/memo.package.yaml +2 -0
|
@@ -13,154 +13,154 @@ package memo_viewpoints_catalog {
|
|
|
13
13
|
// resolution to a standard SysML v2 view kind.
|
|
14
14
|
|
|
15
15
|
// ── Content and context ─────────────────────────────────────
|
|
16
|
-
|
|
16
|
+
viewpoint vpModelContent : MemoViewpoint {
|
|
17
17
|
attribute :>> id = "VP-CAT-001"; attribute :>> name = "ModelContentViewpoint";
|
|
18
18
|
attribute :>> purpose = "Browse the model tree and package structure.";
|
|
19
19
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
viewpoint vpSystemContext : MemoViewpoint {
|
|
22
22
|
attribute :>> id = "VP-CAT-002"; attribute :>> name = "SystemContextViewpoint";
|
|
23
23
|
attribute :>> purpose = "System of interest, actors, external systems, and context exchanges.";
|
|
24
24
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
25
25
|
}
|
|
26
26
|
// ── Operational world ───────────────────────────────────────
|
|
27
|
-
|
|
27
|
+
viewpoint vpUseCase : MemoViewpoint {
|
|
28
28
|
attribute :>> id = "VP-CAT-003"; attribute :>> name = "UseCaseViewpoint";
|
|
29
29
|
attribute :>> purpose = "Use cases, initiating users, supporting actors, and motivating needs.";
|
|
30
30
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
viewpoint vpClinicalWorkflow : MemoViewpoint {
|
|
33
33
|
attribute :>> id = "VP-CAT-004"; attribute :>> name = "ClinicalWorkflowViewpoint";
|
|
34
34
|
attribute :>> purpose = "Workflow steps, decisions, parallel work, handoffs, and roles.";
|
|
35
35
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
viewpoint vpScenario : MemoViewpoint {
|
|
38
38
|
attribute :>> id = "VP-CAT-005"; attribute :>> name = "ScenarioViewpoint";
|
|
39
39
|
attribute :>> purpose = "Selected paths through workflows: variants, conditions, variation points.";
|
|
40
40
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
41
41
|
}
|
|
42
42
|
// ── Functional ──────────────────────────────────────────────
|
|
43
|
-
|
|
43
|
+
viewpoint vpFunctionalArchitecture : MemoViewpoint {
|
|
44
44
|
attribute :>> id = "VP-CAT-006"; attribute :>> name = "FunctionalArchitectureViewpoint";
|
|
45
45
|
attribute :>> purpose = "System functions, capabilities, and functional exchanges.";
|
|
46
46
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
viewpoint vpFunctionalFlow : MemoViewpoint {
|
|
49
49
|
attribute :>> id = "VP-CAT-007"; attribute :>> name = "FunctionalFlowViewpoint";
|
|
50
50
|
attribute :>> purpose = "Ordered functional flows and their steps.";
|
|
51
51
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
52
52
|
}
|
|
53
53
|
// ── Logical ─────────────────────────────────────────────────
|
|
54
|
-
|
|
54
|
+
viewpoint vpLogicalArchitecture : MemoViewpoint {
|
|
55
55
|
attribute :>> id = "VP-CAT-008"; attribute :>> name = "LogicalArchitectureViewpoint";
|
|
56
56
|
attribute :>> purpose = "Logical components, channels, and allocations.";
|
|
57
57
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
viewpoint vpSystemDecomposition : MemoViewpoint {
|
|
60
60
|
attribute :>> id = "VP-CAT-009"; attribute :>> name = "SystemDecompositionViewpoint";
|
|
61
61
|
attribute :>> purpose = "Composition hierarchy of the system of interest.";
|
|
62
62
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
viewpoint vpInternalInterconnection : MemoViewpoint {
|
|
65
65
|
attribute :>> id = "VP-CAT-010"; attribute :>> name = "InternalInterconnectionViewpoint";
|
|
66
66
|
attribute :>> purpose = "Ports, connectors, and exchanges inside a component boundary.";
|
|
67
67
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
68
68
|
}
|
|
69
69
|
// ── Implementation ──────────────────────────────────────────
|
|
70
|
-
|
|
70
|
+
viewpoint vpSoftwareModule : MemoViewpoint {
|
|
71
71
|
attribute :>> id = "VP-CAT-011"; attribute :>> name = "SoftwareModuleViewpoint";
|
|
72
72
|
attribute :>> purpose = "IEC 62304 module structure: systems, items, units, SOUP.";
|
|
73
73
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
viewpoint vpSoftwareComponents : MemoViewpoint {
|
|
76
76
|
attribute :>> id = "VP-CAT-012"; attribute :>> name = "SoftwareComponentViewpoint";
|
|
77
77
|
attribute :>> purpose = "Runtime component-and-connector structure with concurrency and scheduling.";
|
|
78
78
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
viewpoint vpHardwareArchitecture : MemoViewpoint {
|
|
81
81
|
attribute :>> id = "VP-CAT-013"; attribute :>> name = "HardwareArchitectureViewpoint";
|
|
82
82
|
attribute :>> purpose = "Electronic/electrical structure and processing platform.";
|
|
83
83
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
viewpoint vpPhysicalArchitecture : MemoViewpoint {
|
|
86
86
|
attribute :>> id = "VP-CAT-014"; attribute :>> name = "PhysicalArchitectureViewpoint";
|
|
87
87
|
attribute :>> purpose = "Mechanical, fluidic, optical, and other physical realization.";
|
|
88
88
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
viewpoint vpDeviceComposition : MemoViewpoint {
|
|
91
91
|
attribute :>> id = "VP-CAT-015"; attribute :>> name = "DeviceCompositionViewpoint";
|
|
92
92
|
attribute :>> purpose = "Device definitions, instances, accessories, and consumables.";
|
|
93
93
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
viewpoint vpNetworkDeployment : MemoViewpoint {
|
|
96
96
|
attribute :>> id = "VP-CAT-016"; attribute :>> name = "NetworkDeploymentViewpoint";
|
|
97
97
|
attribute :>> purpose = "Deployment units on processing nodes and network topology.";
|
|
98
98
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
99
99
|
}
|
|
100
100
|
// ── Interaction and behavior ────────────────────────────────
|
|
101
|
-
|
|
101
|
+
viewpoint vpUiFlow : MemoViewpoint {
|
|
102
102
|
attribute :>> id = "VP-CAT-017"; attribute :>> name = "UiFlowViewpoint";
|
|
103
103
|
attribute :>> purpose = "Interaction flows, UI states, and transitions.";
|
|
104
104
|
attribute :>> defaultViewKind = DiagramViewKind::statetransition;
|
|
105
105
|
}
|
|
106
|
-
|
|
106
|
+
viewpoint vpStateMode : MemoViewpoint {
|
|
107
107
|
attribute :>> id = "VP-CAT-018"; attribute :>> name = "StateModeViewpoint";
|
|
108
108
|
attribute :>> purpose = "System states, device modes, and transitions.";
|
|
109
109
|
attribute :>> defaultViewKind = DiagramViewKind::statetransition;
|
|
110
110
|
}
|
|
111
|
-
|
|
111
|
+
viewpoint vpSequenceInteraction : MemoViewpoint {
|
|
112
112
|
attribute :>> id = "VP-CAT-019"; attribute :>> name = "SequenceInteractionViewpoint";
|
|
113
113
|
attribute :>> purpose = "Ordered message exchanges between participants in a scenario.";
|
|
114
114
|
attribute :>> defaultViewKind = DiagramViewKind::sequence;
|
|
115
115
|
}
|
|
116
116
|
// ── Assurance ───────────────────────────────────────────────
|
|
117
|
-
|
|
117
|
+
viewpoint vpRequirementsTraceability : MemoViewpoint {
|
|
118
118
|
attribute :>> id = "VP-CAT-020"; attribute :>> name = "RequirementsTraceabilityViewpoint";
|
|
119
119
|
attribute :>> purpose = "Needs → requirements → architecture → verification trace matrix.";
|
|
120
120
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
viewpoint vpRiskChain : MemoViewpoint {
|
|
123
123
|
attribute :>> id = "VP-CAT-021"; attribute :>> name = "RiskChainViewpoint";
|
|
124
124
|
attribute :>> purpose = "ISO 14971 chain: hazard → hazardous situation → harm with controls.";
|
|
125
125
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
viewpoint vpCybersecurity : MemoViewpoint {
|
|
128
128
|
attribute :>> id = "VP-CAT-022"; attribute :>> name = "CybersecurityViewpoint";
|
|
129
129
|
attribute :>> purpose = "Assets, threats, trust boundaries, and security controls.";
|
|
130
130
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
131
131
|
}
|
|
132
|
-
|
|
132
|
+
viewpoint vpHumanFactors : MemoViewpoint {
|
|
133
133
|
attribute :>> id = "VP-CAT-023"; attribute :>> name = "HumanFactorsViewpoint";
|
|
134
134
|
attribute :>> purpose = "Users, tasks, use errors, and hazard-related use scenarios.";
|
|
135
135
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
136
136
|
}
|
|
137
|
-
|
|
137
|
+
viewpoint vpVerificationCoverage : MemoViewpoint {
|
|
138
138
|
attribute :>> id = "VP-CAT-024"; attribute :>> name = "VerificationCoverageViewpoint";
|
|
139
139
|
attribute :>> purpose = "Verification cases against requirements and functions.";
|
|
140
140
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
viewpoint vpValidationCoverage : MemoViewpoint {
|
|
143
143
|
attribute :>> id = "VP-CAT-025"; attribute :>> name = "ValidationCoverageViewpoint";
|
|
144
144
|
attribute :>> purpose = "Validation cases against use cases and critical tasks.";
|
|
145
145
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
viewpoint vpEvidenceTraceability : MemoViewpoint {
|
|
148
148
|
attribute :>> id = "VP-CAT-026"; attribute :>> name = "EvidenceTraceabilityViewpoint";
|
|
149
149
|
attribute :>> purpose = "Evidence records back to the cases and elements they support.";
|
|
150
150
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
151
151
|
}
|
|
152
152
|
// A software sequence diagram is a VIEW conforming to this viewpoint
|
|
153
153
|
// (ISO/IEC/IEEE 42010): it frames the runtime message ordering between
|
|
154
|
-
// SoftwareComponents realizing a functional
|
|
154
|
+
// SoftwareComponents realizing a functional OperativeScenario. The viewpoint is the
|
|
155
155
|
// reusable spec; the diagram of a specific model is the view.
|
|
156
|
-
|
|
156
|
+
viewpoint vpSoftwareSequence : MemoViewpoint {
|
|
157
157
|
attribute :>> id = "VP-CAT-027"; attribute :>> name = "SoftwareSequenceViewpoint";
|
|
158
158
|
attribute :>> purpose = "Runtime message ordering between software components along a functional scenario.";
|
|
159
159
|
attribute :>> defaultViewKind = DiagramViewKind::sequence;
|
|
160
160
|
}
|
|
161
161
|
// The first cataloged viewpoint to resolve to `geometry`: screen regions
|
|
162
162
|
// carry authored RegionBounds, so a geometry view draws modelled facts.
|
|
163
|
-
|
|
163
|
+
viewpoint vpUILayout : MemoViewpoint {
|
|
164
164
|
attribute :>> id = "VP-CAT-028"; attribute :>> name = "UILayoutViewpoint";
|
|
165
165
|
attribute :>> purpose = "Captured screens with their marked regions and the UI elements those regions present.";
|
|
166
166
|
attribute :>> defaultViewKind = DiagramViewKind::geometry;
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_clinical_clinical_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint clinicalViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-CLIN";
|
|
9
9
|
attribute :>> name = "ClinicalViewpoint";
|
|
10
|
-
attribute :>> title = "Clinical Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows clinical context, users, use environment, and clinical evidence.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the context and assurance layers for clinical stakeholders — intended use, patient/clinician interaction, clinical evidence, and clinical safety claims.";
|
|
13
12
|
attribute :>> purpose = "Communicate clinical use context and clinical evidence for the device.";
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_context_context_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint contextViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-CTX";
|
|
9
9
|
attribute :>> name = "ContextViewpoint";
|
|
10
|
-
attribute :>> title = "System Context Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows actors, use context, and system boundary.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the context layer to communicate who interacts with the device, under which use conditions, and where trust or safety boundaries exist.";
|
|
13
12
|
attribute :>> purpose = "Communicate operational context and boundaries.";
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_context_views_system_context_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-CTX-001";
|
|
12
12
|
attribute :>> name = "SystemContextView";
|
|
13
|
-
attribute :>> title = "System Context View";
|
|
14
13
|
attribute :>> shortDescription = "Actors, use context, and system boundary.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_context_views_system_context_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("context");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the system context view from the context layer.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = contextViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_cybersecurity_cybersecurity_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint cybersecurityViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-CYB";
|
|
9
9
|
attribute :>> name = "CybersecurityViewpoint";
|
|
10
|
-
attribute :>> title = "Cybersecurity Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, and mitigations.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the cybersecurity layer, using STRIDE-style threat categories by default while allowing safety and privacy impacts to be traced into the broader model.";
|
|
13
12
|
attribute :>> purpose = "Communicate cybersecurity design, threat analysis, and cyber risk posture.";
|
|
@@ -20,9 +19,8 @@ package memo_viewpoints_cybersecurity_cybersecurity_viewpoint {
|
|
|
20
19
|
attribute :>> includedLayers = ("cybersecurity", "software_structure", "hardware_structure", "interfaces", "risk", "assurance");
|
|
21
20
|
attribute :>> explorerLane = "assurance";
|
|
22
21
|
attribute :>> explorerOrder = 3;
|
|
23
|
-
attribute :>> allowedElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "
|
|
22
|
+
attribute :>> allowedElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "OperativeScenario[scenarioKind=threat]");
|
|
24
23
|
attribute :>> allowedRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "Mitigates", "DerivesCyberRequirement", "ImpactsSafety", "CrossesTrustBoundary");
|
|
25
|
-
attribute :>> documentUsage = ("Secure Product Development", "Threat Model", "Cybersecurity Risk Assessment", "QMSR");
|
|
26
24
|
attribute :>> userExtensible = true;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
@@ -1,12 +1,37 @@
|
|
|
1
|
+
// MEMO's ISO/IEC/IEEE 42010 view apparatus, built on native SysML v2 — which
|
|
2
|
+
// already models the whole stack: a View conforms to a Viewpoint, a Viewpoint
|
|
3
|
+
// frames Concerns, Concerns are held by Stakeholders. MemoView extends the
|
|
4
|
+
// native Views::View. Concerns are the native `concern def`; stakeholders are
|
|
5
|
+
// native stakeholder memberships (any Part in the stakeholder role); MEMO adds
|
|
6
|
+
// only the medical-device attributes on top, never a parallel type.
|
|
1
7
|
package memo_viewpoints_definitions {
|
|
2
|
-
private import Metaobjects::SemanticMetadata;
|
|
3
8
|
private import ScalarValues::*;
|
|
4
9
|
|
|
5
10
|
private import memo_core_common::*;
|
|
6
11
|
private import memo_core_enumerations::*;
|
|
12
|
+
private import memo_core_dimensions::*;
|
|
13
|
+
private import memo_core_terminology::*;
|
|
7
14
|
private import memo_core_relationships::*;
|
|
8
15
|
|
|
9
|
-
|
|
16
|
+
// Extends the native SysML viewpoint (Views::ViewpointCheck, a
|
|
17
|
+
// RequirementCheck whose subject is a View) with MEMO's catalog
|
|
18
|
+
// attributes. The MEMO identity core is re-declared here because a
|
|
19
|
+
// viewpoint is native requirement-family, not a MemoPart — the same
|
|
20
|
+
// per-metaclass pattern MemoView and the other bases use.
|
|
21
|
+
viewpoint def MemoViewpoint :> Views::ViewpointCheck {
|
|
22
|
+
attribute id : String;
|
|
23
|
+
attribute uuid : String;
|
|
24
|
+
attribute name : String;
|
|
25
|
+
attribute shortDescription : String;
|
|
26
|
+
attribute description : String;
|
|
27
|
+
attribute rationale : String;
|
|
28
|
+
attribute sourceReference : String;
|
|
29
|
+
attribute status : ElementStatusKind;
|
|
30
|
+
attribute lifecycleState : LifecycleStateKind;
|
|
31
|
+
attribute realizationStage : RealizationStageKind[0..1];
|
|
32
|
+
attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
|
|
33
|
+
attribute applicableStandards : ExternalReference[0..*];
|
|
34
|
+
attribute codes : TerminologyCode[0..*];
|
|
10
35
|
attribute purpose : String;
|
|
11
36
|
attribute audience : AudienceKind[*];
|
|
12
37
|
attribute stage : WorkflowStageKind;
|
|
@@ -48,7 +73,24 @@ package memo_viewpoints_definitions {
|
|
|
48
73
|
attribute rationaleText : String;
|
|
49
74
|
}
|
|
50
75
|
|
|
51
|
-
view def MemoView :> Views::View
|
|
76
|
+
view def MemoView :> Views::View {
|
|
77
|
+
// MEMO identity core, re-declared here rather than inherited: a view is
|
|
78
|
+
// native SysML and must stay one, so it does not mix in the MemoPart
|
|
79
|
+
// part hierarchy — same per-metaclass pattern the other MEMO bases use.
|
|
80
|
+
attribute id : String;
|
|
81
|
+
attribute uuid : String;
|
|
82
|
+
attribute name : String;
|
|
83
|
+
attribute shortDescription : String;
|
|
84
|
+
attribute description : String;
|
|
85
|
+
attribute rationale : String;
|
|
86
|
+
attribute sourceReference : String;
|
|
87
|
+
attribute status : ElementStatusKind;
|
|
88
|
+
attribute lifecycleState : LifecycleStateKind;
|
|
89
|
+
attribute realizationStage : RealizationStageKind[0..1];
|
|
90
|
+
attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
|
|
91
|
+
attribute concerns : ConcernKind[0..*];
|
|
92
|
+
attribute applicableStandards : ExternalReference[0..*];
|
|
93
|
+
attribute codes : TerminologyCode[0..*];
|
|
52
94
|
attribute outputKind : ViewOutputKind[*];
|
|
53
95
|
attribute presentationKind : PresentationKind[*];
|
|
54
96
|
attribute filterExpression : String;
|
|
@@ -57,7 +99,7 @@ package memo_viewpoints_definitions {
|
|
|
57
99
|
attribute autoPopulate : Boolean;
|
|
58
100
|
// ISO 42010 conformance is many-to-many: every view has one or more
|
|
59
101
|
// viewpoints, and a viewpoint may be realized by many reusable views.
|
|
60
|
-
|
|
102
|
+
ref viewpointDefinition : MemoViewpoint[1..*];
|
|
61
103
|
// Optional grouping within each viewpoint, interpreted by Architect.
|
|
62
104
|
attribute group : String;
|
|
63
105
|
ref subjectElement : MemoPart[*];
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_functional_functional_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint functionalViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-FUNC";
|
|
9
9
|
attribute :>> name = "FunctionalViewpoint";
|
|
10
|
-
attribute :>> title = "Functional Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows system functions, their decomposition, and allocation.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the functions layer for what the system does, independent of how it is structured — function trees, function allocation, and behavior triggers.";
|
|
13
12
|
attribute :>> purpose = "Describe the system's functional decomposition and behavior.";
|
|
@@ -20,7 +19,7 @@ package memo_viewpoints_functional_functional_viewpoint {
|
|
|
20
19
|
attribute :>> includedLayers = ("functions");
|
|
21
20
|
attribute :>> explorerLane = "architecture";
|
|
22
21
|
attribute :>> explorerOrder = 2;
|
|
23
|
-
attribute :>> allowedElementKinds = ("SystemFunction", "ComponentFunction", "FunctionalFlow", "FunctionalFlowStep", "
|
|
22
|
+
attribute :>> allowedElementKinds = ("SystemFunction", "ComponentFunction", "FunctionalFlow", "FunctionalFlowStep", "OperativeScenario[scenarioKind=functional]", "FunctionalExchange");
|
|
24
23
|
attribute :>> userExtensible = true;
|
|
25
24
|
}
|
|
26
25
|
}
|
package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml
CHANGED
|
@@ -10,7 +10,6 @@ package memo_viewpoints_functional_views_function_allocation_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-FUNC-002";
|
|
12
12
|
attribute :>> name = "FunctionAllocationView";
|
|
13
|
-
attribute :>> title = "Function Allocation View";
|
|
14
13
|
attribute :>> shortDescription = "Functions allocated to logical components.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_functional_views_function_allocation_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("functions", "logical_structure");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate function-to-component allocation from the functions and logical structure layers.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_functional_views_system_functional_tree_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-FUNC-001";
|
|
12
12
|
attribute :>> name = "SystemFunctionalTreeView";
|
|
13
|
-
attribute :>> title = "System Functional Tree";
|
|
14
13
|
attribute :>> shortDescription = "Hierarchical decomposition of system functions.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::activityDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_functional_views_system_functional_tree_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("functions");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the functional tree from the functions layer.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_logical_logical_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint logicalArchitectureViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-LOG";
|
|
9
9
|
attribute :>> name = "LogicalArchitectureViewpoint";
|
|
10
|
-
attribute :>> title = "Logical Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows logical decomposition and interfaces.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the logical architecture layer for subsystem structure, responsibilities, and major interactions, independent of physical realization.";
|
|
13
12
|
attribute :>> purpose = "Describe the system's logical decomposition.";
|
package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml
CHANGED
|
@@ -10,7 +10,6 @@ package memo_viewpoints_logical_views_logical_architecture_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-LOG-001";
|
|
12
12
|
attribute :>> name = "LogicalArchitectureView";
|
|
13
|
-
attribute :>> title = "Logical Architecture View";
|
|
14
13
|
attribute :>> shortDescription = "Logical components and their interfaces.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_logical_views_logical_architecture_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("logical_structure", "interfaces");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the logical architecture view from the logical structure and interfaces layers.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = logicalArchitectureViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_operational_operational_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint operationalViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-OPS";
|
|
9
9
|
attribute :>> name = "OperationalViewpoint";
|
|
10
|
-
attribute :>> title = "Operational & Use-Case Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows actors, use contexts, operational scenarios, and system capabilities.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the context, operational, and system layers for how actors use the device — operational scenarios, capabilities, and the functional chains that realize them.";
|
|
13
12
|
attribute :>> purpose = "Communicate how actors interact with the system and which capabilities they invoke.";
|
|
@@ -20,7 +19,7 @@ package memo_viewpoints_operational_operational_viewpoint {
|
|
|
20
19
|
attribute :>> includedLayers = ("context", "operational", "system");
|
|
21
20
|
attribute :>> explorerLane = "architecture";
|
|
22
21
|
attribute :>> explorerOrder = 1;
|
|
23
|
-
attribute :>> allowedElementKinds = ("Actor", "UseContext", "
|
|
22
|
+
attribute :>> allowedElementKinds = ("Actor", "UseContext", "OperativeAction", "OperativeScenario[scenarioKind=operative]");
|
|
24
23
|
attribute :>> userExtensible = true;
|
|
25
24
|
}
|
|
26
25
|
}
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_operational_views_use_case_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-OPS-001";
|
|
12
12
|
attribute :>> name = "UseCaseView";
|
|
13
|
-
attribute :>> title = "Use Case Overview";
|
|
14
13
|
attribute :>> shortDescription = "Actors connected to the operational scenarios and capabilities they invoke.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::custom);
|
|
@@ -20,10 +19,10 @@ package memo_viewpoints_operational_views_use_case_view {
|
|
|
20
19
|
part :>> selectionQuery {
|
|
21
20
|
attribute :>> id = "QRY-OPS-001";
|
|
22
21
|
attribute :>> name = "UseCaseQuery";
|
|
23
|
-
attribute :>> includeElementKinds = ("Actor", "UseContext", "
|
|
22
|
+
attribute :>> includeElementKinds = ("Actor", "UseContext", "OperativeScenario[scenarioKind=operative]");
|
|
24
23
|
attribute :>> includeLayers = ("context", "operational");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the use case view from the context and operational layers.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = operationalViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_physical_physical_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint physicalViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-PHY";
|
|
9
9
|
attribute :>> name = "PhysicalViewpoint";
|
|
10
|
-
attribute :>> title = "Physical Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows physical components, hardware structure, and their interconnections.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the physical and hardware structure layers for bill-of-materials, hardware decomposition, physical interfaces, and network/connectivity topology.";
|
|
13
12
|
attribute :>> purpose = "Describe the system's physical realization and interconnections.";
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_physical_views_network_topology_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-PHY-002";
|
|
12
12
|
attribute :>> name = "NetworkTopologyView";
|
|
13
|
-
attribute :>> title = "Network Topology View";
|
|
14
13
|
attribute :>> shortDescription = "Physical interconnections and network ports between components.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::internalDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_physical_views_network_topology_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("physical");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the network topology view from the physical interfaces layer.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = physicalViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_physical_views_physical_bom_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-PHY-001";
|
|
12
12
|
attribute :>> name = "PhysicalBOMView";
|
|
13
|
-
attribute :>> title = "Physical Bill of Materials View";
|
|
14
13
|
attribute :>> shortDescription = "Physical and hardware components with their decomposition.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_physical_views_physical_bom_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("hardware_structure", "physical");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the physical BOM view from the hardware and physical layers.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = physicalViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_requirements_requirements_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint requirementsViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-REQ";
|
|
9
9
|
attribute :>> name = "RequirementsViewpoint";
|
|
10
|
-
attribute :>> title = "Requirements Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows stakeholder needs and their decomposition into system, software, and hardware requirements.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the requirements layer for requirements traceability — the chain from stakeholder need through system, software, and hardware requirements, supporting IEC 62304 §5.1.1 and ISO 13485 §7.3.3.";
|
|
13
12
|
attribute :>> purpose = "Communicate requirements decomposition and traceability.";
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_requirements_views_requirements_traceability_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-REQ-001";
|
|
12
12
|
attribute :>> name = "RequirementsTraceabilityView";
|
|
13
|
-
attribute :>> title = "Requirements Traceability View";
|
|
14
13
|
attribute :>> shortDescription = "Stakeholder needs traced through system, software, and hardware requirements.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_requirements_views_requirements_traceability_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("requirements");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate requirements traceability from the requirements layer.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = requirementsViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_risk_risk_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint riskViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-RISK";
|
|
9
9
|
attribute :>> name = "RiskViewpoint";
|
|
10
|
-
attribute :>> title = "Risk and Control Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows hazards, risks, controls, and assurance links.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the risk layer for ISO 14971-style reasoning across hazard, hazardous situation, harm, control, and verification evidence.";
|
|
13
12
|
attribute :>> purpose = "Communicate safety risk chains and controls.";
|
|
@@ -10,7 +10,6 @@ package memo_viewpoints_risk_views_risk_chain_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-RISK-001";
|
|
12
12
|
attribute :>> name = "RiskChainView";
|
|
13
|
-
attribute :>> title = "Risk Mitigation Chain View";
|
|
14
13
|
attribute :>> shortDescription = "Hazards through harms with controls and verification.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::table);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::riskTable);
|
|
@@ -25,6 +24,6 @@ package memo_viewpoints_risk_views_risk_chain_view {
|
|
|
25
24
|
attribute :>> includeConcerns = (ConcernKind::safety);
|
|
26
25
|
attribute :>> rationaleText = "Auto-populate the risk chain view from the risk and assurance layers.";
|
|
27
26
|
}
|
|
28
|
-
|
|
27
|
+
ref :>> viewpointDefinition = riskViewpoint;
|
|
29
28
|
}
|
|
30
29
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_software_software_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint softwareViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-SW";
|
|
9
9
|
attribute :>> name = "SoftwareViewpoint";
|
|
10
|
-
attribute :>> title = "Software Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows software systems, components, SOUP, and software interfaces.";
|
|
12
11
|
attribute :>> description = "Default viewpoint derived from the software structure layer for IEC 62304 software architecture description — software item decomposition, SOUP inventory, and software-to-software interfaces, distinct from system-level logical decomposition.";
|
|
13
12
|
attribute :>> purpose = "Describe the software architecture for IEC 62304 design documentation.";
|
package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml
CHANGED
|
@@ -10,7 +10,6 @@ package memo_viewpoints_software_views_software_architecture_view {
|
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-SW-001";
|
|
12
12
|
attribute :>> name = "SoftwareArchitectureView";
|
|
13
|
-
attribute :>> title = "Software Architecture View";
|
|
14
13
|
attribute :>> shortDescription = "Software systems, components, and SOUP with their decomposition.";
|
|
15
14
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
15
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
@@ -24,6 +23,6 @@ package memo_viewpoints_software_views_software_architecture_view {
|
|
|
24
23
|
attribute :>> includeLayers = ("software_structure");
|
|
25
24
|
attribute :>> rationaleText = "Auto-populate the software architecture view from the software structure layer.";
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
ref :>> viewpointDefinition = softwareViewpoint;
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -4,10 +4,9 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
viewpoint uiLayoutViewpoint : MemoViewpoint {
|
|
8
8
|
attribute :>> id = "VP-UIL";
|
|
9
9
|
attribute :>> name = "UILayoutViewpoint";
|
|
10
|
-
attribute :>> title = "UI Layout Viewpoint";
|
|
11
10
|
attribute :>> shortDescription = "Shows screen captures with the UI element tree laid out over them.";
|
|
12
11
|
attribute :>> description = "Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls.";
|
|
13
12
|
attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
|