@memoarchitect/ontology 0.8.22 → 0.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
- package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
- package/examples/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 +11 -9
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- 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 +9 -7
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.identity.yaml +2179 -0
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
- package/examples/gpca-pump/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -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 +7 -5
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -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/multidimensional_layers.sysml +6 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- 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/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
- 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/project.sysml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
- 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/project.sysml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
- 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/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
- 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/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- 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/project.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
- 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/architecture/functional/functions.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
- package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
- package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/container/src/container_extension.sysml +2 -2
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +2 -2
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
- package/src/architecture/functional/functions/memo_functions.sysml +6 -6
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
- package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
- 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 +5 -14
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
- package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
- package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
- package/src/artifacts/standards/cfr_21_820.sysml +80 -89
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
- package/src/artifacts/standards/iec_60601_1.sysml +108 -121
- package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
- package/src/artifacts/standards/iec_60812.sysml +21 -22
- package/src/artifacts/standards/iec_62304.sysml +150 -169
- package/src/artifacts/standards/iec_62366_1.sysml +80 -89
- package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
- package/src/artifacts/standards/iso_13485.sysml +80 -89
- package/src/artifacts/standards/iso_14971.sysml +66 -73
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
- package/src/artifacts/templates/dhf/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 +7 -12
- package/src/core/common/memo_common.sysml +59 -55
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +29 -56
- package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
- package/src/methodology/core/memo_core.sysml +0 -10
- package/src/methodology/profiles/memo_profiles.sysml +18 -16
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +22 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
- package/src/rules/ontology/ontology_invariants.sysml +121 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
- package/src/viewpoints/context/context_viewpoint.sysml +6 -5
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
- package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
- package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
- package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
- package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
- package/src/viewpoints/software/software_viewpoint.sysml +5 -4
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/memo.package.yaml +2 -0
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/memo.package.yaml +2 -0
- package/templates/samd/model/catalog/project.sysml +3 -1
|
@@ -9,159 +9,160 @@ package memo_viewpoints_catalog {
|
|
|
9
9
|
private import memo_core_enumerations::*;
|
|
10
10
|
private import memo_viewpoints_definitions::*;
|
|
11
11
|
|
|
12
|
+
private import memo_core_common::MemoIdentity;
|
|
12
13
|
// A cataloged viewpoint: the Viewpoint descriptor plus its default
|
|
13
14
|
// resolution to a standard SysML v2 view kind.
|
|
14
15
|
|
|
15
16
|
// ── Content and context ─────────────────────────────────────
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
viewpoint vpModelContent : MemoViewpoint {
|
|
18
|
+
@MemoIdentity { :>> providedId = "VP-CAT-001"; } attribute :>> name = "ModelContentViewpoint";
|
|
18
19
|
attribute :>> purpose = "Browse the model tree and package structure.";
|
|
19
20
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
viewpoint vpSystemContext : MemoViewpoint {
|
|
23
|
+
@MemoIdentity { :>> providedId = "VP-CAT-002"; } attribute :>> name = "SystemContextViewpoint";
|
|
23
24
|
attribute :>> purpose = "System of interest, actors, external systems, and context exchanges.";
|
|
24
25
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
25
26
|
}
|
|
26
27
|
// ── Operational world ───────────────────────────────────────
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
viewpoint vpUseCase : MemoViewpoint {
|
|
29
|
+
@MemoIdentity { :>> providedId = "VP-CAT-003"; } attribute :>> name = "UseCaseViewpoint";
|
|
29
30
|
attribute :>> purpose = "Use cases, initiating users, supporting actors, and motivating needs.";
|
|
30
31
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
viewpoint vpClinicalWorkflow : MemoViewpoint {
|
|
34
|
+
@MemoIdentity { :>> providedId = "VP-CAT-004"; } attribute :>> name = "ClinicalWorkflowViewpoint";
|
|
34
35
|
attribute :>> purpose = "Workflow steps, decisions, parallel work, handoffs, and roles.";
|
|
35
36
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
viewpoint vpScenario : MemoViewpoint {
|
|
39
|
+
@MemoIdentity { :>> providedId = "VP-CAT-005"; } attribute :>> name = "ScenarioViewpoint";
|
|
39
40
|
attribute :>> purpose = "Selected paths through workflows: variants, conditions, variation points.";
|
|
40
41
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
41
42
|
}
|
|
42
43
|
// ── Functional ──────────────────────────────────────────────
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
viewpoint vpFunctionalArchitecture : MemoViewpoint {
|
|
45
|
+
@MemoIdentity { :>> providedId = "VP-CAT-006"; } attribute :>> name = "FunctionalArchitectureViewpoint";
|
|
45
46
|
attribute :>> purpose = "System functions, capabilities, and functional exchanges.";
|
|
46
47
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
viewpoint vpFunctionalFlow : MemoViewpoint {
|
|
50
|
+
@MemoIdentity { :>> providedId = "VP-CAT-007"; } attribute :>> name = "FunctionalFlowViewpoint";
|
|
50
51
|
attribute :>> purpose = "Ordered functional flows and their steps.";
|
|
51
52
|
attribute :>> defaultViewKind = DiagramViewKind::actionflow;
|
|
52
53
|
}
|
|
53
54
|
// ── Logical ─────────────────────────────────────────────────
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
viewpoint vpLogicalArchitecture : MemoViewpoint {
|
|
56
|
+
@MemoIdentity { :>> providedId = "VP-CAT-008"; } attribute :>> name = "LogicalArchitectureViewpoint";
|
|
56
57
|
attribute :>> purpose = "Logical components, channels, and allocations.";
|
|
57
58
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
viewpoint vpSystemDecomposition : MemoViewpoint {
|
|
61
|
+
@MemoIdentity { :>> providedId = "VP-CAT-009"; } attribute :>> name = "SystemDecompositionViewpoint";
|
|
61
62
|
attribute :>> purpose = "Composition hierarchy of the system of interest.";
|
|
62
63
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
viewpoint vpInternalInterconnection : MemoViewpoint {
|
|
66
|
+
@MemoIdentity { :>> providedId = "VP-CAT-010"; } attribute :>> name = "InternalInterconnectionViewpoint";
|
|
66
67
|
attribute :>> purpose = "Ports, connectors, and exchanges inside a component boundary.";
|
|
67
68
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
68
69
|
}
|
|
69
70
|
// ── Implementation ──────────────────────────────────────────
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
viewpoint vpSoftwareModule : MemoViewpoint {
|
|
72
|
+
@MemoIdentity { :>> providedId = "VP-CAT-011"; } attribute :>> name = "SoftwareModuleViewpoint";
|
|
72
73
|
attribute :>> purpose = "IEC 62304 module structure: systems, items, units, SOUP.";
|
|
73
74
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
74
75
|
}
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
viewpoint vpSoftwareComponents : MemoViewpoint {
|
|
77
|
+
@MemoIdentity { :>> providedId = "VP-CAT-012"; } attribute :>> name = "SoftwareComponentViewpoint";
|
|
77
78
|
attribute :>> purpose = "Runtime component-and-connector structure with concurrency and scheduling.";
|
|
78
79
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
viewpoint vpHardwareArchitecture : MemoViewpoint {
|
|
82
|
+
@MemoIdentity { :>> providedId = "VP-CAT-013"; } attribute :>> name = "HardwareArchitectureViewpoint";
|
|
82
83
|
attribute :>> purpose = "Electronic/electrical structure and processing platform.";
|
|
83
84
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
viewpoint vpPhysicalArchitecture : MemoViewpoint {
|
|
87
|
+
@MemoIdentity { :>> providedId = "VP-CAT-014"; } attribute :>> name = "PhysicalArchitectureViewpoint";
|
|
87
88
|
attribute :>> purpose = "Mechanical, fluidic, optical, and other physical realization.";
|
|
88
89
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
89
90
|
}
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
viewpoint vpDeviceComposition : MemoViewpoint {
|
|
92
|
+
@MemoIdentity { :>> providedId = "VP-CAT-015"; } attribute :>> name = "DeviceCompositionViewpoint";
|
|
92
93
|
attribute :>> purpose = "Device definitions, instances, accessories, and consumables.";
|
|
93
94
|
attribute :>> defaultViewKind = DiagramViewKind::browser;
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
viewpoint vpNetworkDeployment : MemoViewpoint {
|
|
97
|
+
@MemoIdentity { :>> providedId = "VP-CAT-016"; } attribute :>> name = "NetworkDeploymentViewpoint";
|
|
97
98
|
attribute :>> purpose = "Deployment units on processing nodes and network topology.";
|
|
98
99
|
attribute :>> defaultViewKind = DiagramViewKind::interconnection;
|
|
99
100
|
}
|
|
100
101
|
// ── Interaction and behavior ────────────────────────────────
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
viewpoint vpUiFlow : MemoViewpoint {
|
|
103
|
+
@MemoIdentity { :>> providedId = "VP-CAT-017"; } attribute :>> name = "UiFlowViewpoint";
|
|
103
104
|
attribute :>> purpose = "Interaction flows, UI states, and transitions.";
|
|
104
105
|
attribute :>> defaultViewKind = DiagramViewKind::statetransition;
|
|
105
106
|
}
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
viewpoint vpStateMode : MemoViewpoint {
|
|
108
|
+
@MemoIdentity { :>> providedId = "VP-CAT-018"; } attribute :>> name = "StateModeViewpoint";
|
|
108
109
|
attribute :>> purpose = "System states, device modes, and transitions.";
|
|
109
110
|
attribute :>> defaultViewKind = DiagramViewKind::statetransition;
|
|
110
111
|
}
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
viewpoint vpSequenceInteraction : MemoViewpoint {
|
|
113
|
+
@MemoIdentity { :>> providedId = "VP-CAT-019"; } attribute :>> name = "SequenceInteractionViewpoint";
|
|
113
114
|
attribute :>> purpose = "Ordered message exchanges between participants in a scenario.";
|
|
114
115
|
attribute :>> defaultViewKind = DiagramViewKind::sequence;
|
|
115
116
|
}
|
|
116
117
|
// ── Assurance ───────────────────────────────────────────────
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
viewpoint vpRequirementsTraceability : MemoViewpoint {
|
|
119
|
+
@MemoIdentity { :>> providedId = "VP-CAT-020"; } attribute :>> name = "RequirementsTraceabilityViewpoint";
|
|
119
120
|
attribute :>> purpose = "Needs → requirements → architecture → verification trace matrix.";
|
|
120
121
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
viewpoint vpRiskChain : MemoViewpoint {
|
|
124
|
+
@MemoIdentity { :>> providedId = "VP-CAT-021"; } attribute :>> name = "RiskChainViewpoint";
|
|
124
125
|
attribute :>> purpose = "ISO 14971 chain: hazard → hazardous situation → harm with controls.";
|
|
125
126
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
126
127
|
}
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
viewpoint vpCybersecurity : MemoViewpoint {
|
|
129
|
+
@MemoIdentity { :>> providedId = "VP-CAT-022"; } attribute :>> name = "CybersecurityViewpoint";
|
|
129
130
|
attribute :>> purpose = "Assets, threats, trust boundaries, and security controls.";
|
|
130
131
|
attribute :>> defaultViewKind = DiagramViewKind::general;
|
|
131
132
|
}
|
|
132
|
-
|
|
133
|
-
|
|
133
|
+
viewpoint vpHumanFactors : MemoViewpoint {
|
|
134
|
+
@MemoIdentity { :>> providedId = "VP-CAT-023"; } attribute :>> name = "HumanFactorsViewpoint";
|
|
134
135
|
attribute :>> purpose = "Users, tasks, use errors, and hazard-related use scenarios.";
|
|
135
136
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
viewpoint vpVerificationCoverage : MemoViewpoint {
|
|
139
|
+
@MemoIdentity { :>> providedId = "VP-CAT-024"; } attribute :>> name = "VerificationCoverageViewpoint";
|
|
139
140
|
attribute :>> purpose = "Verification cases against requirements and functions.";
|
|
140
141
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
-
|
|
143
|
+
viewpoint vpValidationCoverage : MemoViewpoint {
|
|
144
|
+
@MemoIdentity { :>> providedId = "VP-CAT-025"; } attribute :>> name = "ValidationCoverageViewpoint";
|
|
144
145
|
attribute :>> purpose = "Validation cases against use cases and critical tasks.";
|
|
145
146
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
146
147
|
}
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
viewpoint vpEvidenceTraceability : MemoViewpoint {
|
|
149
|
+
@MemoIdentity { :>> providedId = "VP-CAT-026"; } attribute :>> name = "EvidenceTraceabilityViewpoint";
|
|
149
150
|
attribute :>> purpose = "Evidence records back to the cases and elements they support.";
|
|
150
151
|
attribute :>> defaultViewKind = DiagramViewKind::grid;
|
|
151
152
|
}
|
|
152
153
|
// A software sequence diagram is a VIEW conforming to this viewpoint
|
|
153
154
|
// (ISO/IEC/IEEE 42010): it frames the runtime message ordering between
|
|
154
|
-
// SoftwareComponents realizing a functional
|
|
155
|
+
// SoftwareComponents realizing a functional OperativeScenario. The viewpoint is the
|
|
155
156
|
// reusable spec; the diagram of a specific model is the view.
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
viewpoint vpSoftwareSequence : MemoViewpoint {
|
|
158
|
+
@MemoIdentity { :>> providedId = "VP-CAT-027"; } attribute :>> name = "SoftwareSequenceViewpoint";
|
|
158
159
|
attribute :>> purpose = "Runtime message ordering between software components along a functional scenario.";
|
|
159
160
|
attribute :>> defaultViewKind = DiagramViewKind::sequence;
|
|
160
161
|
}
|
|
161
162
|
// The first cataloged viewpoint to resolve to `geometry`: screen regions
|
|
162
163
|
// carry authored RegionBounds, so a geometry view draws modelled facts.
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
viewpoint vpUILayout : MemoViewpoint {
|
|
165
|
+
@MemoIdentity { :>> providedId = "VP-CAT-028"; } attribute :>> name = "UILayoutViewpoint";
|
|
165
166
|
attribute :>> purpose = "Captured screens with their marked regions and the UI elements those regions present.";
|
|
166
167
|
attribute :>> defaultViewKind = DiagramViewKind::geometry;
|
|
167
168
|
}
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_clinical_clinical_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint clinicalViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-CLIN"; }
|
|
9
11
|
attribute :>> name = "ClinicalViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows clinical context, users, use environment, and clinical evidence.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows clinical context, users, use environment, and clinical evidence."; }
|
|
12
13
|
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
14
|
attribute :>> purpose = "Communicate clinical use context and clinical evidence for the device.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::clinicalEngineer, AudienceKind::regulatoryEngineer);
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_context_context_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint contextViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-CTX"; }
|
|
9
11
|
attribute :>> name = "ContextViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows actors, use context, and system boundary.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows actors, use context, and system boundary."; }
|
|
12
13
|
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
14
|
attribute :>> purpose = "Communicate operational context and boundaries.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::systemArchitect);
|
|
@@ -29,7 +30,7 @@ package memo_viewpoints_context_context_viewpoint {
|
|
|
29
30
|
// boundary picture. Projects derive their own verbs from it and are
|
|
30
31
|
// picked up through the specialization closure. The three older
|
|
31
32
|
// relations remain for models authored before it existed.
|
|
32
|
-
attribute :>> allowedRelationshipKinds = ("InteractsInContext", "
|
|
33
|
+
attribute :>> allowedRelationshipKinds = ("InteractsInContext", "connect", "flow", "bind");
|
|
33
34
|
attribute :>> userExtensible = true;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -5,25 +5,26 @@ package memo_viewpoints_context_views_system_context_view {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
private import memo_viewpoints_context_context_viewpoint::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view systemContextView : MemoDiagramView {
|
|
9
11
|
expose memo_viewpoints_context_views_system_context_view::*;
|
|
10
12
|
attribute depth = 2;
|
|
11
|
-
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-CTX-001"; }
|
|
12
14
|
attribute :>> name = "SystemContextView";
|
|
13
|
-
|
|
14
|
-
attribute :>> shortDescription = "Actors, use context, and system boundary.";
|
|
15
|
+
@MemoIdentity { :>> shortDescription = "Actors, use context, and system boundary."; }
|
|
15
16
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
17
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
17
18
|
attribute :>> diagramType = "bdd";
|
|
18
19
|
attribute :>> autoPopulate = true;
|
|
19
20
|
attribute :>> queryDescription = "Include actors, use contexts, and trust boundaries at the system boundary.";
|
|
20
21
|
part :>> selectionQuery {
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "QRY-CTX-001"; }
|
|
22
23
|
attribute :>> name = "SystemContextQuery";
|
|
23
24
|
attribute :>> includeElementKinds = ("Actor", "UseContext", "TrustBoundary");
|
|
24
25
|
attribute :>> includeLayers = ("context");
|
|
25
26
|
attribute :>> rationaleText = "Auto-populate the system context view from the context layer.";
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
ref :>> viewpointDefinition = contextViewpoint;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_cybersecurity_cybersecurity_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint cybersecurityViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-CYB"; }
|
|
9
11
|
attribute :>> name = "CybersecurityViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, and mitigations.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, and mitigations."; }
|
|
12
13
|
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
14
|
attribute :>> purpose = "Communicate cybersecurity design, threat analysis, and cyber risk posture.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::securityEngineer);
|
|
@@ -20,9 +21,8 @@ package memo_viewpoints_cybersecurity_cybersecurity_viewpoint {
|
|
|
20
21
|
attribute :>> includedLayers = ("cybersecurity", "software_structure", "hardware_structure", "interfaces", "risk", "assurance");
|
|
21
22
|
attribute :>> explorerLane = "assurance";
|
|
22
23
|
attribute :>> explorerOrder = 3;
|
|
23
|
-
attribute :>> allowedElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "
|
|
24
|
+
attribute :>> allowedElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "OperativeScenario[scenarioKind=threat]");
|
|
24
25
|
attribute :>> allowedRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "Mitigates", "DerivesCyberRequirement", "ImpactsSafety", "CrossesTrustBoundary");
|
|
25
|
-
attribute :>> documentUsage = ("Secure Product Development", "Threat Model", "Cybersecurity Risk Assessment", "QMSR");
|
|
26
26
|
attribute :>> userExtensible = true;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -1,12 +1,32 @@
|
|
|
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. Identity comes from the `@MemoIdentity` metadata carrier
|
|
19
|
+
// rather than a re-declared core: a viewpoint is native requirement-family,
|
|
20
|
+
// not a MemoPart, and metadata crosses metaclasses where inheritance cannot.
|
|
21
|
+
viewpoint def MemoViewpoint :> Views::ViewpointCheck {
|
|
22
|
+
attribute name : String;
|
|
23
|
+
attribute description : String;
|
|
24
|
+
attribute status : ElementStatusKind;
|
|
25
|
+
attribute lifecycleState : LifecycleStateKind;
|
|
26
|
+
attribute realizationStage : RealizationStageKind[0..1];
|
|
27
|
+
attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
|
|
28
|
+
attribute applicableStandards : ExternalReference[0..*];
|
|
29
|
+
attribute codes : TerminologyCode[0..*];
|
|
10
30
|
attribute purpose : String;
|
|
11
31
|
attribute audience : AudienceKind[*];
|
|
12
32
|
attribute stage : WorkflowStageKind;
|
|
@@ -48,7 +68,19 @@ package memo_viewpoints_definitions {
|
|
|
48
68
|
attribute rationaleText : String;
|
|
49
69
|
}
|
|
50
70
|
|
|
51
|
-
view def MemoView :> Views::View
|
|
71
|
+
view def MemoView :> Views::View {
|
|
72
|
+
// Identity comes from the `@MemoIdentity` metadata carrier, which
|
|
73
|
+
// annotates any metaclass — so a view stays native SysML without
|
|
74
|
+
// re-declaring the identification core the other bases used to copy.
|
|
75
|
+
attribute name : String;
|
|
76
|
+
attribute description : String;
|
|
77
|
+
attribute status : ElementStatusKind;
|
|
78
|
+
attribute lifecycleState : LifecycleStateKind;
|
|
79
|
+
attribute realizationStage : RealizationStageKind[0..1];
|
|
80
|
+
attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
|
|
81
|
+
attribute concerns : ConcernKind[0..*];
|
|
82
|
+
attribute applicableStandards : ExternalReference[0..*];
|
|
83
|
+
attribute codes : TerminologyCode[0..*];
|
|
52
84
|
attribute outputKind : ViewOutputKind[*];
|
|
53
85
|
attribute presentationKind : PresentationKind[*];
|
|
54
86
|
attribute filterExpression : String;
|
|
@@ -57,7 +89,7 @@ package memo_viewpoints_definitions {
|
|
|
57
89
|
attribute autoPopulate : Boolean;
|
|
58
90
|
// ISO 42010 conformance is many-to-many: every view has one or more
|
|
59
91
|
// viewpoints, and a viewpoint may be realized by many reusable views.
|
|
60
|
-
|
|
92
|
+
ref viewpointDefinition : MemoViewpoint[1..*];
|
|
61
93
|
// Optional grouping within each viewpoint, interpreted by Architect.
|
|
62
94
|
attribute group : String;
|
|
63
95
|
ref subjectElement : MemoPart[*];
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_functional_functional_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint functionalViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-FUNC"; }
|
|
9
11
|
attribute :>> name = "FunctionalViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows system functions, their decomposition, and allocation.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows system functions, their decomposition, and allocation."; }
|
|
12
13
|
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
14
|
attribute :>> purpose = "Describe the system's functional decomposition and behavior.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::systemArchitect);
|
|
@@ -20,7 +21,7 @@ package memo_viewpoints_functional_functional_viewpoint {
|
|
|
20
21
|
attribute :>> includedLayers = ("functions");
|
|
21
22
|
attribute :>> explorerLane = "architecture";
|
|
22
23
|
attribute :>> explorerOrder = 2;
|
|
23
|
-
attribute :>> allowedElementKinds = ("SystemFunction", "ComponentFunction", "FunctionalFlow", "FunctionalFlowStep", "
|
|
24
|
+
attribute :>> allowedElementKinds = ("SystemFunction", "ComponentFunction", "FunctionalFlow", "FunctionalFlowStep", "OperativeScenario[scenarioKind=functional]", "FunctionalExchange");
|
|
24
25
|
attribute :>> userExtensible = true;
|
|
25
26
|
}
|
|
26
27
|
}
|
package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml
CHANGED
|
@@ -5,25 +5,26 @@ package memo_viewpoints_functional_views_function_allocation_view {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view functionAllocationView : MemoDiagramView {
|
|
9
11
|
expose memo_viewpoints_functional_views_function_allocation_view::*;
|
|
10
12
|
attribute depth = 2;
|
|
11
|
-
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-FUNC-002"; }
|
|
12
14
|
attribute :>> name = "FunctionAllocationView";
|
|
13
|
-
|
|
14
|
-
attribute :>> shortDescription = "Functions allocated to logical components.";
|
|
15
|
+
@MemoIdentity { :>> shortDescription = "Functions allocated to logical components."; }
|
|
15
16
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
17
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
17
18
|
attribute :>> diagramType = "bdd";
|
|
18
19
|
attribute :>> autoPopulate = true;
|
|
19
20
|
attribute :>> queryDescription = "Include functions and the logical components they are allocated to.";
|
|
20
21
|
part :>> selectionQuery {
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "QRY-FUNC-002"; }
|
|
22
23
|
attribute :>> name = "FunctionAllocationQuery";
|
|
23
24
|
attribute :>> includeElementKinds = ("SystemFunction", "ComponentFunction", "LogicalComponent");
|
|
24
25
|
attribute :>> includeLayers = ("functions", "logical_structure");
|
|
25
26
|
attribute :>> rationaleText = "Auto-populate function-to-component allocation from the functions and logical structure layers.";
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -5,25 +5,26 @@ package memo_viewpoints_functional_views_system_functional_tree_view {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
private import memo_viewpoints_functional_functional_viewpoint::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view systemFunctionalTreeView : MemoDiagramView {
|
|
9
11
|
expose memo_viewpoints_functional_views_system_functional_tree_view::*;
|
|
10
12
|
attribute depth = 2;
|
|
11
|
-
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-FUNC-001"; }
|
|
12
14
|
attribute :>> name = "SystemFunctionalTreeView";
|
|
13
|
-
|
|
14
|
-
attribute :>> shortDescription = "Hierarchical decomposition of system functions.";
|
|
15
|
+
@MemoIdentity { :>> shortDescription = "Hierarchical decomposition of system functions."; }
|
|
15
16
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
17
|
attribute :>> presentationKind = (PresentationKind::activityDiagram);
|
|
17
18
|
attribute :>> diagramType = "act";
|
|
18
19
|
attribute :>> autoPopulate = true;
|
|
19
20
|
attribute :>> queryDescription = "Include functions and their decomposition into subfunctions.";
|
|
20
21
|
part :>> selectionQuery {
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "QRY-FUNC-001"; }
|
|
22
23
|
attribute :>> name = "SystemFunctionalTreeQuery";
|
|
23
24
|
attribute :>> includeElementKinds = ("SystemFunction", "ComponentFunction");
|
|
24
25
|
attribute :>> includeLayers = ("functions");
|
|
25
26
|
attribute :>> rationaleText = "Auto-populate the functional tree from the functions layer.";
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_logical_logical_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint logicalArchitectureViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-LOG"; }
|
|
9
11
|
attribute :>> name = "LogicalArchitectureViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows logical decomposition and interfaces.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows logical decomposition and interfaces."; }
|
|
12
13
|
attribute :>> description = "Default viewpoint derived from the logical architecture layer for subsystem structure, responsibilities, and major interactions, independent of physical realization.";
|
|
13
14
|
attribute :>> purpose = "Describe the system's logical decomposition.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::systemArchitect);
|
package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml
CHANGED
|
@@ -5,25 +5,26 @@ package memo_viewpoints_logical_views_logical_architecture_view {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
private import memo_viewpoints_logical_logical_viewpoint::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view logicalArchitectureView : MemoDiagramView {
|
|
9
11
|
expose memo_viewpoints_logical_views_logical_architecture_view::*;
|
|
10
12
|
attribute depth = 2;
|
|
11
|
-
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-LOG-001"; }
|
|
12
14
|
attribute :>> name = "LogicalArchitectureView";
|
|
13
|
-
|
|
14
|
-
attribute :>> shortDescription = "Logical components and their interfaces.";
|
|
15
|
+
@MemoIdentity { :>> shortDescription = "Logical components and their interfaces."; }
|
|
15
16
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
17
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
17
18
|
attribute :>> diagramType = "bdd";
|
|
18
19
|
attribute :>> autoPopulate = true;
|
|
19
20
|
attribute :>> queryDescription = "Include logical components and the interfaces that connect them.";
|
|
20
21
|
part :>> selectionQuery {
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "QRY-LOG-001"; }
|
|
22
23
|
attribute :>> name = "LogicalArchitectureQuery";
|
|
23
24
|
attribute :>> includeElementKinds = ("LogicalComponent", "Interface");
|
|
24
25
|
attribute :>> includeLayers = ("logical_structure", "interfaces");
|
|
25
26
|
attribute :>> rationaleText = "Auto-populate the logical architecture view from the logical structure and interfaces layers.";
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
ref :>> viewpointDefinition = logicalArchitectureViewpoint;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -4,11 +4,12 @@ package memo_viewpoints_operational_operational_viewpoint {
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
viewpoint operationalViewpoint : MemoViewpoint {
|
|
10
|
+
@MemoIdentity { :>> providedId = "VP-OPS"; }
|
|
9
11
|
attribute :>> name = "OperationalViewpoint";
|
|
10
|
-
|
|
11
|
-
attribute :>> shortDescription = "Shows actors, use contexts, operational scenarios, and system capabilities.";
|
|
12
|
+
@MemoIdentity { :>> shortDescription = "Shows actors, use contexts, operational scenarios, and system capabilities."; }
|
|
12
13
|
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
14
|
attribute :>> purpose = "Communicate how actors interact with the system and which capabilities they invoke.";
|
|
14
15
|
attribute :>> audience = (AudienceKind::projectLead, AudienceKind::systemArchitect);
|
|
@@ -20,7 +21,7 @@ package memo_viewpoints_operational_operational_viewpoint {
|
|
|
20
21
|
attribute :>> includedLayers = ("context", "operational", "system");
|
|
21
22
|
attribute :>> explorerLane = "architecture";
|
|
22
23
|
attribute :>> explorerOrder = 1;
|
|
23
|
-
attribute :>> allowedElementKinds = ("Actor", "UseContext", "
|
|
24
|
+
attribute :>> allowedElementKinds = ("Actor", "UseContext", "OperativeAction", "OperativeScenario[scenarioKind=operative]");
|
|
24
25
|
attribute :>> userExtensible = true;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
@@ -5,25 +5,26 @@ package memo_viewpoints_operational_views_use_case_view {
|
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
7
7
|
|
|
8
|
+
private import memo_core_common::*;
|
|
9
|
+
private import memo_core_common::MemoIdentity;
|
|
8
10
|
view useCaseView : MemoDiagramView {
|
|
9
11
|
expose memo_viewpoints_operational_views_use_case_view::*;
|
|
10
12
|
attribute depth = 2;
|
|
11
|
-
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-OPS-001"; }
|
|
12
14
|
attribute :>> name = "UseCaseView";
|
|
13
|
-
|
|
14
|
-
attribute :>> shortDescription = "Actors connected to the operational scenarios and capabilities they invoke.";
|
|
15
|
+
@MemoIdentity { :>> shortDescription = "Actors connected to the operational scenarios and capabilities they invoke."; }
|
|
15
16
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
16
17
|
attribute :>> presentationKind = (PresentationKind::custom);
|
|
17
18
|
attribute :>> diagramType = "ucd";
|
|
18
19
|
attribute :>> autoPopulate = true;
|
|
19
20
|
attribute :>> queryDescription = "Include actors, use contexts, and the operational scenarios they participate in.";
|
|
20
21
|
part :>> selectionQuery {
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "QRY-OPS-001"; }
|
|
22
23
|
attribute :>> name = "UseCaseQuery";
|
|
23
|
-
attribute :>> includeElementKinds = ("Actor", "UseContext", "
|
|
24
|
+
attribute :>> includeElementKinds = ("Actor", "UseContext", "OperativeScenario[scenarioKind=operative]");
|
|
24
25
|
attribute :>> includeLayers = ("context", "operational");
|
|
25
26
|
attribute :>> rationaleText = "Auto-populate the use case view from the context and operational layers.";
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
ref :>> viewpointDefinition = operationalViewpoint;
|
|
28
29
|
}
|
|
29
30
|
}
|