@memoarchitect/ontology 0.6.5 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/extensions/clinical/memo.package.yaml +18 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
- package/examples/extensions/template/memo.package.yaml +17 -9
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +7 -6
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +27 -23
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
- package/examples/gpca-pump/model/catalog/project.sysml +21 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +7 -7
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +6 -6
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -0
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +174 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +90 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/software-only-medical-device/model/catalog/project.sysml +24 -0
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -19
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +5 -3
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +18 -10
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +2 -1
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +60 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +60 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- package/memo.manifest.yaml +2 -0
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +2 -4
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +7 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
- package/src/architecture/functional/functions/memo_functions.sysml +5 -12
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
- package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
- package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
- package/src/architecture/operational/activities/memo_activities.sysml +0 -1
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
- package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
- package/src/core/annotations/memo_annotations.sysml +77 -0
- package/src/core/common/memo_common.sysml +20 -3
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +5 -1
- package/src/core/enumerations/memo_enumerations.sysml +41 -6
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +4 -2
- package/src/memo_namespaces.sysml +97 -67
- package/src/methodology/core/memo_core.sysml +45 -2
- package/src/methodology/profiles/memo_profiles.sysml +30 -40
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +30 -73
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +3 -1
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +4 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +3 -1
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +3 -1
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fmea.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
// Architecture-layer rendering and Model Explorer taxonomy.
|
|
2
|
+
//
|
|
3
|
+
// This content used to live in `ontology/memo.rendering.yaml`. Both halves of
|
|
4
|
+
// that file decided how MEMO's own kinds are grouped and presented, which makes
|
|
5
|
+
// them ontology metadata, not application settings: a project that received the
|
|
6
|
+
// ontology without the YAML got a different Explorer. They are SysML here so
|
|
7
|
+
// that the ontology carries its own taxonomy wherever it is resolved.
|
|
8
|
+
//
|
|
9
|
+
// The colours are the v12 Visual Map palette. They are the ontology's authored
|
|
10
|
+
// default; an application may still theme over them, but it no longer has to
|
|
11
|
+
// supply them for the model to be complete.
|
|
12
|
+
package memo_viewpoints_rendering {
|
|
13
|
+
private import ScalarValues::*;
|
|
14
|
+
|
|
15
|
+
private import memo_core_common::*;
|
|
16
|
+
|
|
17
|
+
// The presentation identity of one architecture layer.
|
|
18
|
+
part def LayerRendering :> MemoPart {
|
|
19
|
+
attribute layerId : String;
|
|
20
|
+
attribute layerLabel : String;
|
|
21
|
+
attribute layerColor : String;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Where a source namespace's kinds appear in the Model Explorer tree.
|
|
25
|
+
// `sourceNamespace` names the ontology namespace or kind group the
|
|
26
|
+
// classification applies to; `explorerDomain` and `explorerGroup` name its
|
|
27
|
+
// place in MEMO's V-model taxonomy.
|
|
28
|
+
part def ExplorerClassification :> MemoPart {
|
|
29
|
+
attribute sourceNamespace : String;
|
|
30
|
+
attribute explorerDomain : String;
|
|
31
|
+
attribute explorerGroup : String;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
part layerOperationalRendering : LayerRendering {
|
|
35
|
+
attribute :>> id = "LAYER-OPERATIONAL";
|
|
36
|
+
attribute :>> name = "OperationalLayerRendering";
|
|
37
|
+
attribute :>> layerId = "operational";
|
|
38
|
+
attribute :>> layerLabel = "Operational";
|
|
39
|
+
attribute :>> layerColor = "#C0392B";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
part layerBehavioralRendering : LayerRendering {
|
|
43
|
+
attribute :>> id = "LAYER-BEHAVIORAL";
|
|
44
|
+
attribute :>> name = "BehavioralLayerRendering";
|
|
45
|
+
attribute :>> layerId = "behavioral";
|
|
46
|
+
attribute :>> layerLabel = "Behavioral";
|
|
47
|
+
attribute :>> layerColor = "#E74C3C";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
part layerFunctionalRendering : LayerRendering {
|
|
51
|
+
attribute :>> id = "LAYER-FUNCTIONAL";
|
|
52
|
+
attribute :>> name = "FunctionalLayerRendering";
|
|
53
|
+
attribute :>> layerId = "functional";
|
|
54
|
+
attribute :>> layerLabel = "Functional";
|
|
55
|
+
attribute :>> layerColor = "#E67E22";
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
part layerLogicalRendering : LayerRendering {
|
|
59
|
+
attribute :>> id = "LAYER-LOGICAL";
|
|
60
|
+
attribute :>> name = "LogicalLayerRendering";
|
|
61
|
+
attribute :>> layerId = "logical";
|
|
62
|
+
attribute :>> layerLabel = "Logical";
|
|
63
|
+
attribute :>> layerColor = "#7B68EE";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
part layerSoftwareRendering : LayerRendering {
|
|
67
|
+
attribute :>> id = "LAYER-SOFTWARE";
|
|
68
|
+
attribute :>> name = "SoftwareLayerRendering";
|
|
69
|
+
attribute :>> layerId = "software";
|
|
70
|
+
attribute :>> layerLabel = "Software";
|
|
71
|
+
attribute :>> layerColor = "#F39C12";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
part layerSoftwareExtensionRendering : LayerRendering {
|
|
75
|
+
attribute :>> id = "LAYER-SOFTWARE-EXTENSION";
|
|
76
|
+
attribute :>> name = "Software Extension (ROS)LayerRendering";
|
|
77
|
+
attribute :>> layerId = "software-extension";
|
|
78
|
+
attribute :>> layerLabel = "Software Extension (ROS)";
|
|
79
|
+
attribute :>> layerColor = "#D4AC0D";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
part layerHardwareRendering : LayerRendering {
|
|
83
|
+
attribute :>> id = "LAYER-HARDWARE";
|
|
84
|
+
attribute :>> name = "HardwareLayerRendering";
|
|
85
|
+
attribute :>> layerId = "hardware";
|
|
86
|
+
attribute :>> layerLabel = "Hardware";
|
|
87
|
+
attribute :>> layerColor = "#95A5A6";
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
part layerSafetyRendering : LayerRendering {
|
|
91
|
+
attribute :>> id = "LAYER-SAFETY";
|
|
92
|
+
attribute :>> name = "SafetyLayerRendering";
|
|
93
|
+
attribute :>> layerId = "safety";
|
|
94
|
+
attribute :>> layerLabel = "Safety";
|
|
95
|
+
attribute :>> layerColor = "#E74C3C";
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
part layerSecurityRendering : LayerRendering {
|
|
99
|
+
attribute :>> id = "LAYER-SECURITY";
|
|
100
|
+
attribute :>> name = "SecurityLayerRendering";
|
|
101
|
+
attribute :>> layerId = "security";
|
|
102
|
+
attribute :>> layerLabel = "Security";
|
|
103
|
+
attribute :>> layerColor = "#2C3E50";
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
part layerPrivacyRendering : LayerRendering {
|
|
107
|
+
attribute :>> id = "LAYER-PRIVACY";
|
|
108
|
+
attribute :>> name = "PrivacyLayerRendering";
|
|
109
|
+
attribute :>> layerId = "privacy";
|
|
110
|
+
attribute :>> layerLabel = "Privacy";
|
|
111
|
+
attribute :>> layerColor = "#8E44AD";
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
part layerVerificationRendering : LayerRendering {
|
|
115
|
+
attribute :>> id = "LAYER-VERIFICATION";
|
|
116
|
+
attribute :>> name = "VerificationLayerRendering";
|
|
117
|
+
attribute :>> layerId = "verification";
|
|
118
|
+
attribute :>> layerLabel = "Verification";
|
|
119
|
+
attribute :>> layerColor = "#2ECC71";
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
part explorerActivitiesClassification : ExplorerClassification {
|
|
123
|
+
attribute :>> id = "EXPL-001";
|
|
124
|
+
attribute :>> name = "activitiesExplorerClassification";
|
|
125
|
+
attribute :>> sourceNamespace = "activities";
|
|
126
|
+
attribute :>> explorerDomain = "architecture";
|
|
127
|
+
attribute :>> explorerGroup = "operational";
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
part explorerContextClassification : ExplorerClassification {
|
|
131
|
+
attribute :>> id = "EXPL-002";
|
|
132
|
+
attribute :>> name = "contextExplorerClassification";
|
|
133
|
+
attribute :>> sourceNamespace = "context";
|
|
134
|
+
attribute :>> explorerDomain = "architecture";
|
|
135
|
+
attribute :>> explorerGroup = "operational";
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
part explorerActorsClassification : ExplorerClassification {
|
|
139
|
+
attribute :>> id = "EXPL-003";
|
|
140
|
+
attribute :>> name = "actorsExplorerClassification";
|
|
141
|
+
attribute :>> sourceNamespace = "actors";
|
|
142
|
+
attribute :>> explorerDomain = "architecture";
|
|
143
|
+
attribute :>> explorerGroup = "operational";
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
part explorerUseContextClassification : ExplorerClassification {
|
|
147
|
+
attribute :>> id = "EXPL-004";
|
|
148
|
+
attribute :>> name = "use_contextExplorerClassification";
|
|
149
|
+
attribute :>> sourceNamespace = "use_context";
|
|
150
|
+
attribute :>> explorerDomain = "architecture";
|
|
151
|
+
attribute :>> explorerGroup = "operational";
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
part explorerWorkflowsClassification : ExplorerClassification {
|
|
155
|
+
attribute :>> id = "EXPL-005";
|
|
156
|
+
attribute :>> name = "workflowsExplorerClassification";
|
|
157
|
+
attribute :>> sourceNamespace = "workflows";
|
|
158
|
+
attribute :>> explorerDomain = "architecture";
|
|
159
|
+
attribute :>> explorerGroup = "operational";
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
part explorerScenariosClassification : ExplorerClassification {
|
|
163
|
+
attribute :>> id = "EXPL-006";
|
|
164
|
+
attribute :>> name = "scenariosExplorerClassification";
|
|
165
|
+
attribute :>> sourceNamespace = "scenarios";
|
|
166
|
+
attribute :>> explorerDomain = "architecture";
|
|
167
|
+
attribute :>> explorerGroup = "operational";
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
part explorerUseCasesClassification : ExplorerClassification {
|
|
171
|
+
attribute :>> id = "EXPL-007";
|
|
172
|
+
attribute :>> name = "use_casesExplorerClassification";
|
|
173
|
+
attribute :>> sourceNamespace = "use_cases";
|
|
174
|
+
attribute :>> explorerDomain = "architecture";
|
|
175
|
+
attribute :>> explorerGroup = "operational";
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
part explorerInteractionClassification : ExplorerClassification {
|
|
179
|
+
attribute :>> id = "EXPL-008";
|
|
180
|
+
attribute :>> name = "interactionExplorerClassification";
|
|
181
|
+
attribute :>> sourceNamespace = "interaction";
|
|
182
|
+
attribute :>> explorerDomain = "architecture";
|
|
183
|
+
attribute :>> explorerGroup = "operational";
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
part explorerOperationalClassification : ExplorerClassification {
|
|
187
|
+
attribute :>> id = "EXPL-009";
|
|
188
|
+
attribute :>> name = "operationalExplorerClassification";
|
|
189
|
+
attribute :>> sourceNamespace = "operational";
|
|
190
|
+
attribute :>> explorerDomain = "architecture";
|
|
191
|
+
attribute :>> explorerGroup = "operational";
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
part explorerFunctionsClassification : ExplorerClassification {
|
|
195
|
+
attribute :>> id = "EXPL-010";
|
|
196
|
+
attribute :>> name = "functionsExplorerClassification";
|
|
197
|
+
attribute :>> sourceNamespace = "functions";
|
|
198
|
+
attribute :>> explorerDomain = "architecture";
|
|
199
|
+
attribute :>> explorerGroup = "functional";
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
part explorerBehaviorClassification : ExplorerClassification {
|
|
203
|
+
attribute :>> id = "EXPL-011";
|
|
204
|
+
attribute :>> name = "behaviorExplorerClassification";
|
|
205
|
+
attribute :>> sourceNamespace = "behavior";
|
|
206
|
+
attribute :>> explorerDomain = "architecture";
|
|
207
|
+
attribute :>> explorerGroup = "functional";
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
part explorerConstraintsClassification : ExplorerClassification {
|
|
211
|
+
attribute :>> id = "EXPL-012";
|
|
212
|
+
attribute :>> name = "constraintsExplorerClassification";
|
|
213
|
+
attribute :>> sourceNamespace = "constraints";
|
|
214
|
+
attribute :>> explorerDomain = "architecture";
|
|
215
|
+
attribute :>> explorerGroup = "functional";
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
part explorerLogicalStructureClassification : ExplorerClassification {
|
|
219
|
+
attribute :>> id = "EXPL-013";
|
|
220
|
+
attribute :>> name = "logical_structureExplorerClassification";
|
|
221
|
+
attribute :>> sourceNamespace = "logical_structure";
|
|
222
|
+
attribute :>> explorerDomain = "architecture";
|
|
223
|
+
attribute :>> explorerGroup = "logical";
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
part explorerInterfacesClassification : ExplorerClassification {
|
|
227
|
+
attribute :>> id = "EXPL-014";
|
|
228
|
+
attribute :>> name = "interfacesExplorerClassification";
|
|
229
|
+
attribute :>> sourceNamespace = "interfaces";
|
|
230
|
+
attribute :>> explorerDomain = "architecture";
|
|
231
|
+
attribute :>> explorerGroup = "logical";
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
part explorerHardwareStructureClassification : ExplorerClassification {
|
|
235
|
+
attribute :>> id = "EXPL-015";
|
|
236
|
+
attribute :>> name = "hardware_structureExplorerClassification";
|
|
237
|
+
attribute :>> sourceNamespace = "hardware_structure";
|
|
238
|
+
attribute :>> explorerDomain = "architecture";
|
|
239
|
+
attribute :>> explorerGroup = "implementation";
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
part explorerImplementationClassification : ExplorerClassification {
|
|
243
|
+
attribute :>> id = "EXPL-016";
|
|
244
|
+
attribute :>> name = "implementationExplorerClassification";
|
|
245
|
+
attribute :>> sourceNamespace = "implementation";
|
|
246
|
+
attribute :>> explorerDomain = "architecture";
|
|
247
|
+
attribute :>> explorerGroup = "implementation";
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
part explorerSoftwareStructureClassification : ExplorerClassification {
|
|
251
|
+
attribute :>> id = "EXPL-017";
|
|
252
|
+
attribute :>> name = "software_structureExplorerClassification";
|
|
253
|
+
attribute :>> sourceNamespace = "software_structure";
|
|
254
|
+
attribute :>> explorerDomain = "architecture";
|
|
255
|
+
attribute :>> explorerGroup = "implementation";
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
part explorerSoftwareRuntimeClassification : ExplorerClassification {
|
|
259
|
+
attribute :>> id = "EXPL-018";
|
|
260
|
+
attribute :>> name = "software_runtimeExplorerClassification";
|
|
261
|
+
attribute :>> sourceNamespace = "software_runtime";
|
|
262
|
+
attribute :>> explorerDomain = "architecture";
|
|
263
|
+
attribute :>> explorerGroup = "implementation";
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
part explorerPhysicalClassification : ExplorerClassification {
|
|
267
|
+
attribute :>> id = "EXPL-019";
|
|
268
|
+
attribute :>> name = "physicalExplorerClassification";
|
|
269
|
+
attribute :>> sourceNamespace = "physical";
|
|
270
|
+
attribute :>> explorerDomain = "architecture";
|
|
271
|
+
attribute :>> explorerGroup = "realization";
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
part explorerDeploymentClassification : ExplorerClassification {
|
|
275
|
+
attribute :>> id = "EXPL-020";
|
|
276
|
+
attribute :>> name = "deploymentExplorerClassification";
|
|
277
|
+
attribute :>> sourceNamespace = "deployment";
|
|
278
|
+
attribute :>> explorerDomain = "architecture";
|
|
279
|
+
attribute :>> explorerGroup = "realization";
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
part explorerNeedsClassification : ExplorerClassification {
|
|
283
|
+
attribute :>> id = "EXPL-021";
|
|
284
|
+
attribute :>> name = "needsExplorerClassification";
|
|
285
|
+
attribute :>> sourceNamespace = "needs";
|
|
286
|
+
attribute :>> explorerDomain = "assurance";
|
|
287
|
+
attribute :>> explorerGroup = "requirements";
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
part explorerRequirementsClassification : ExplorerClassification {
|
|
291
|
+
attribute :>> id = "EXPL-022";
|
|
292
|
+
attribute :>> name = "requirementsExplorerClassification";
|
|
293
|
+
attribute :>> sourceNamespace = "requirements";
|
|
294
|
+
attribute :>> explorerDomain = "assurance";
|
|
295
|
+
attribute :>> explorerGroup = "requirements";
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
part explorerSafetyClassification : ExplorerClassification {
|
|
299
|
+
attribute :>> id = "EXPL-023";
|
|
300
|
+
attribute :>> name = "safetyExplorerClassification";
|
|
301
|
+
attribute :>> sourceNamespace = "safety";
|
|
302
|
+
attribute :>> explorerDomain = "assurance";
|
|
303
|
+
attribute :>> explorerGroup = "safety-risk";
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
part explorerSafetyAnalysisClassification : ExplorerClassification {
|
|
307
|
+
attribute :>> id = "EXPL-024";
|
|
308
|
+
attribute :>> name = "safety_analysisExplorerClassification";
|
|
309
|
+
attribute :>> sourceNamespace = "safety_analysis";
|
|
310
|
+
attribute :>> explorerDomain = "assurance";
|
|
311
|
+
attribute :>> explorerGroup = "safety-risk";
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
part explorerCybersecurityClassification : ExplorerClassification {
|
|
315
|
+
attribute :>> id = "EXPL-025";
|
|
316
|
+
attribute :>> name = "cybersecurityExplorerClassification";
|
|
317
|
+
attribute :>> sourceNamespace = "cybersecurity";
|
|
318
|
+
attribute :>> explorerDomain = "assurance";
|
|
319
|
+
attribute :>> explorerGroup = "cybersecurity";
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
part explorerHumanFactorsClassification : ExplorerClassification {
|
|
323
|
+
attribute :>> id = "EXPL-026";
|
|
324
|
+
attribute :>> name = "human_factorsExplorerClassification";
|
|
325
|
+
attribute :>> sourceNamespace = "human_factors";
|
|
326
|
+
attribute :>> explorerDomain = "assurance";
|
|
327
|
+
attribute :>> explorerGroup = "human-factors";
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
part explorerVerificationClassification : ExplorerClassification {
|
|
331
|
+
attribute :>> id = "EXPL-027";
|
|
332
|
+
attribute :>> name = "verificationExplorerClassification";
|
|
333
|
+
attribute :>> sourceNamespace = "verification";
|
|
334
|
+
attribute :>> explorerDomain = "assurance";
|
|
335
|
+
attribute :>> explorerGroup = "verification-validation";
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
part explorerCoreClassification : ExplorerClassification {
|
|
339
|
+
attribute :>> id = "EXPL-028";
|
|
340
|
+
attribute :>> name = "coreExplorerClassification";
|
|
341
|
+
attribute :>> sourceNamespace = "core";
|
|
342
|
+
attribute :>> explorerDomain = "assurance";
|
|
343
|
+
attribute :>> explorerGroup = "evidence";
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
part explorerMethodologyClassification : ExplorerClassification {
|
|
347
|
+
attribute :>> id = "EXPL-029";
|
|
348
|
+
attribute :>> name = "methodologyExplorerClassification";
|
|
349
|
+
attribute :>> sourceNamespace = "methodology";
|
|
350
|
+
attribute :>> explorerDomain = "methodology";
|
|
351
|
+
attribute :>> explorerGroup = "methodology";
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
}
|
|
@@ -9,7 +9,7 @@ package memo_viewpoints_requirements_requirements_viewpoint {
|
|
|
9
9
|
attribute :>> name = "RequirementsViewpoint";
|
|
10
10
|
attribute :>> title = "Requirements Viewpoint";
|
|
11
11
|
attribute :>> shortDescription = "Shows stakeholder needs and their decomposition into system, software, and hardware requirements.";
|
|
12
|
-
attribute :>>
|
|
12
|
+
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
13
|
attribute :>> purpose = "Communicate requirements decomposition and traceability.";
|
|
14
14
|
attribute :>> audience = (AudienceKind::regulatoryEngineer, AudienceKind::systemArchitect);
|
|
15
15
|
attribute :>> stage = WorkflowStageKind::requirements;
|
|
@@ -18,6 +18,8 @@ package memo_viewpoints_requirements_requirements_viewpoint {
|
|
|
18
18
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
19
19
|
attribute :>> concernKinds = (ConcernKind::regulatory, ConcernKind::safety);
|
|
20
20
|
attribute :>> includedLayers = ("requirements");
|
|
21
|
+
attribute :>> explorerLane = "assurance";
|
|
22
|
+
attribute :>> explorerOrder = 1;
|
|
21
23
|
attribute :>> allowedElementKinds = ("Need", "Requirement");
|
|
22
24
|
attribute :>> userExtensible = true;
|
|
23
25
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_viewpoints_requirements_views_requirements_traceability_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -6,7 +6,7 @@ package memo_viewpoints_requirements_requirements_traceability_view {
|
|
|
6
6
|
private import memo_viewpoints_requirements_requirements_viewpoint::*;
|
|
7
7
|
|
|
8
8
|
view requirementsTraceabilityView : MemoDiagramView {
|
|
9
|
-
expose
|
|
9
|
+
expose memo_viewpoints_requirements_views_requirements_traceability_view::*;
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-REQ-001";
|
|
12
12
|
attribute :>> name = "RequirementsTraceabilityView";
|
|
@@ -9,7 +9,7 @@ package memo_viewpoints_risk_risk_viewpoint {
|
|
|
9
9
|
attribute :>> name = "RiskViewpoint";
|
|
10
10
|
attribute :>> title = "Risk and Control Viewpoint";
|
|
11
11
|
attribute :>> shortDescription = "Shows hazards, risks, controls, and assurance links.";
|
|
12
|
-
attribute :>>
|
|
12
|
+
attribute :>> description = "Default viewpoint derived from the risk layer for ISO 14971-style reasoning across hazard, hazardous situation, harm, control, and verification evidence.";
|
|
13
13
|
attribute :>> purpose = "Communicate safety risk chains and controls.";
|
|
14
14
|
attribute :>> audience = (AudienceKind::safetyEngineer);
|
|
15
15
|
attribute :>> stage = WorkflowStageKind::risk;
|
|
@@ -18,6 +18,8 @@ package memo_viewpoints_risk_risk_viewpoint {
|
|
|
18
18
|
attribute :>> presentationKind = (PresentationKind::riskTable);
|
|
19
19
|
attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::regulatory);
|
|
20
20
|
attribute :>> includedLayers = ("risk", "assurance");
|
|
21
|
+
attribute :>> explorerLane = "assurance";
|
|
22
|
+
attribute :>> explorerOrder = 2;
|
|
21
23
|
attribute :>> allowedElementKinds = ("SafetyRelatedCharacteristic", "HazardCause", "Hazard", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase");
|
|
22
24
|
attribute :>> userExtensible = true;
|
|
23
25
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_viewpoints_risk_views_risk_chain_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -6,7 +6,7 @@ package memo_viewpoints_risk_risk_chain_view {
|
|
|
6
6
|
private import memo_viewpoints_risk_risk_viewpoint::*;
|
|
7
7
|
|
|
8
8
|
view riskChainView : MemoDiagramView {
|
|
9
|
-
expose
|
|
9
|
+
expose memo_viewpoints_risk_views_risk_chain_view::*;
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-RISK-001";
|
|
12
12
|
attribute :>> name = "RiskChainView";
|
|
@@ -9,7 +9,7 @@ package memo_viewpoints_software_software_viewpoint {
|
|
|
9
9
|
attribute :>> name = "SoftwareViewpoint";
|
|
10
10
|
attribute :>> title = "Software Viewpoint";
|
|
11
11
|
attribute :>> shortDescription = "Shows software systems, components, SOUP, and software interfaces.";
|
|
12
|
-
attribute :>>
|
|
12
|
+
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
13
|
attribute :>> purpose = "Describe the software architecture for IEC 62304 design documentation.";
|
|
14
14
|
attribute :>> audience = (AudienceKind::softwareArchitect);
|
|
15
15
|
attribute :>> stage = WorkflowStageKind::architecture;
|
|
@@ -18,6 +18,8 @@ package memo_viewpoints_software_software_viewpoint {
|
|
|
18
18
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
19
19
|
attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::reliability);
|
|
20
20
|
attribute :>> includedLayers = ("software_structure", "interfaces");
|
|
21
|
+
attribute :>> explorerLane = "architecture";
|
|
22
|
+
attribute :>> explorerOrder = 4;
|
|
21
23
|
attribute :>> allowedElementKinds = ("SoftwareSystem", "SoftwareModule", "SoftwareModule[moduleKind=soup]", "Interface");
|
|
22
24
|
attribute :>> userExtensible = true;
|
|
23
25
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_viewpoints_software_views_software_architecture_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -6,7 +6,7 @@ package memo_viewpoints_software_software_architecture_view {
|
|
|
6
6
|
private import memo_viewpoints_software_software_viewpoint::*;
|
|
7
7
|
|
|
8
8
|
view softwareArchitectureView : MemoDiagramView {
|
|
9
|
-
expose
|
|
9
|
+
expose memo_viewpoints_software_views_software_architecture_view::*;
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-SW-001";
|
|
12
12
|
attribute :>> name = "SoftwareArchitectureView";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
package memo_viewpoints_ui_layout_ui_layout_viewpoint {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_viewpoints_definitions::*;
|
|
5
|
+
private import memo_core_enumerations::*;
|
|
6
|
+
|
|
7
|
+
part uiLayoutViewpoint : Viewpoint {
|
|
8
|
+
attribute :>> id = "VP-UIL";
|
|
9
|
+
attribute :>> name = "UILayoutViewpoint";
|
|
10
|
+
attribute :>> title = "UI Layout Viewpoint";
|
|
11
|
+
attribute :>> shortDescription = "Shows screen captures with the UI element tree laid out over them.";
|
|
12
|
+
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
|
+
attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
|
|
14
|
+
attribute :>> audience = (AudienceKind::usabilityEngineer, AudienceKind::softwareArchitect, AudienceKind::safetyEngineer);
|
|
15
|
+
attribute :>> stage = WorkflowStageKind::architecture;
|
|
16
|
+
attribute :>> abstractionLevel = "implementation";
|
|
17
|
+
attribute :>> outputKind = (ViewOutputKind::diagram, ViewOutputKind::documentSection);
|
|
18
|
+
attribute :>> presentationKind = (PresentationKind::screenLayout);
|
|
19
|
+
attribute :>> concernKinds = (ConcernKind::usability, ConcernKind::safety);
|
|
20
|
+
attribute :>> includedLayers = ("implementation");
|
|
21
|
+
attribute :>> explorerLane = "architecture";
|
|
22
|
+
attribute :>> explorerOrder = 4;
|
|
23
|
+
attribute :>> allowedElementKinds = ("ScreenCapture", "UIElement", "UserInterface");
|
|
24
|
+
attribute :>> allowedRelationshipKinds = ("CapturesScreen", "NavigatesTo", "Composes", "SatisfiedBy", "ElementTriggersAction");
|
|
25
|
+
attribute :>> defaultViewKind = DiagramViewKind::geometry;
|
|
26
|
+
attribute :>> userExtensible = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// The first geometry-kind view in MEMO. ADR-1-19 (memo-architect) deferred the
|
|
2
|
+
// geometry renderer because the ontology carried no geometric data and any 2D
|
|
3
|
+
// placement would have been invented layout rather than model content. With
|
|
4
|
+
// memo_architecture_implementation_ui_layout, placement is modelled: a region's
|
|
5
|
+
// RegionBounds are authored facts, drawn over an authored capture. The
|
|
6
|
+
// renderer now has something true to draw.
|
|
7
|
+
package memo_viewpoints_ui_layout_views_screen_layout_view {
|
|
8
|
+
private import ScalarValues::*;
|
|
9
|
+
|
|
10
|
+
private import memo_viewpoints_definitions::*;
|
|
11
|
+
private import memo_core_enumerations::*;
|
|
12
|
+
|
|
13
|
+
view def MemoScreenLayoutView :> MemoDiagramView {
|
|
14
|
+
attribute :>> viewKind = DiagramViewKind::geometry;
|
|
15
|
+
attribute :>> shortDescription = "Screen capture overlaid with its UI element tree.";
|
|
16
|
+
attribute :>> description = "Renders one ScreenCapture as the backdrop and each UIElement composed under the captured screen as a boundary box at its authored bounds, coloured by boundaryColor. Bounds are relative to the parent element, so the renderer accumulates transforms down the Composes tree. Selecting an element isolates it: siblings recede rather than compete. Following an element's NavigatesTo edge swaps the backdrop to the target screen's capture, so the view walks the interface the way the user does.";
|
|
17
|
+
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
18
|
+
attribute :>> presentationKind = (PresentationKind::screenLayout);
|
|
19
|
+
attribute :>> layoutHint = "authored";
|
|
20
|
+
attribute :>> autoPopulate = true;
|
|
21
|
+
attribute :>> queryDescription = "One ScreenCapture, the screen UIElement it captures, and the UIElement tree composed beneath that screen.";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -9,7 +9,7 @@ package memo_viewpoints_usability_usability_viewpoint {
|
|
|
9
9
|
attribute :>> name = "UsabilityViewpoint";
|
|
10
10
|
attribute :>> title = "Usability Viewpoint";
|
|
11
11
|
attribute :>> shortDescription = "Shows use contexts, actors, use errors, and usability requirements.";
|
|
12
|
-
attribute :>>
|
|
12
|
+
attribute :>> description = "Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer.";
|
|
13
13
|
attribute :>> purpose = "Communicate use-related hazards and usability requirements for the device.";
|
|
14
14
|
attribute :>> audience = (AudienceKind::usabilityEngineer, AudienceKind::safetyEngineer);
|
|
15
15
|
attribute :>> stage = WorkflowStageKind::requirements;
|
|
@@ -18,6 +18,8 @@ package memo_viewpoints_usability_usability_viewpoint {
|
|
|
18
18
|
attribute :>> presentationKind = (PresentationKind::narrativeSection);
|
|
19
19
|
attribute :>> concernKinds = (ConcernKind::usability, ConcernKind::safety);
|
|
20
20
|
attribute :>> includedLayers = ("context", "requirements");
|
|
21
|
+
attribute :>> explorerLane = "assurance";
|
|
22
|
+
attribute :>> explorerOrder = 4;
|
|
21
23
|
attribute :>> allowedElementKinds = ("Actor", "UseContext", "UseError", "Requirement");
|
|
22
24
|
attribute :>> userExtensible = true;
|
|
23
25
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_viewpoints_usability_views_usability_engineering_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
7
|
view def MemoUsabilityEngineeringView :> MemoDocumentView {
|
|
8
|
-
attribute :>> viewKind = DocumentViewKind::
|
|
8
|
+
attribute :>> viewKind = DocumentViewKind::usability;
|
|
9
9
|
attribute :>> generationRule = "Include actors, use contexts, use errors, and requirements tagged with the usability concern to support the Usability Engineering Report.";
|
|
10
10
|
attribute :>> outputKind = (ViewOutputKind::documentSection);
|
|
11
11
|
attribute :>> presentationKind = (PresentationKind::narrativeSection);
|
|
@@ -9,7 +9,7 @@ package memo_viewpoints_verification_verification_viewpoint {
|
|
|
9
9
|
attribute :>> name = "VerificationViewpoint";
|
|
10
10
|
attribute :>> title = "Verification & Validation Viewpoint";
|
|
11
11
|
attribute :>> shortDescription = "Shows verification cases, validation cases, and the evidence they produce, traced to requirements.";
|
|
12
|
-
attribute :>>
|
|
12
|
+
attribute :>> description = "Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8.";
|
|
13
13
|
attribute :>> purpose = "Communicate verification and validation coverage against requirements.";
|
|
14
14
|
attribute :>> audience = (AudienceKind::verificationEngineer);
|
|
15
15
|
attribute :>> stage = WorkflowStageKind::verificationStage;
|
|
@@ -18,6 +18,8 @@ package memo_viewpoints_verification_verification_viewpoint {
|
|
|
18
18
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
19
19
|
attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::regulatory);
|
|
20
20
|
attribute :>> includedLayers = ("requirements", "assurance");
|
|
21
|
+
attribute :>> explorerLane = "assurance";
|
|
22
|
+
attribute :>> explorerOrder = 5;
|
|
21
23
|
attribute :>> allowedElementKinds = ("Requirement", "VerificationCase", "ValidationCase", "Evidence", "TestArtifact");
|
|
22
24
|
attribute :>> userExtensible = true;
|
|
23
25
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_viewpoints_verification_views_verification_coverage_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -6,7 +6,7 @@ package memo_viewpoints_verification_verification_coverage_view {
|
|
|
6
6
|
private import memo_viewpoints_verification_verification_viewpoint::*;
|
|
7
7
|
|
|
8
8
|
view verificationCoverageView : MemoDiagramView {
|
|
9
|
-
expose
|
|
9
|
+
expose memo_viewpoints_verification_views_verification_coverage_view::*;
|
|
10
10
|
attribute depth = 2;
|
|
11
11
|
attribute :>> id = "VIEW-VER-001";
|
|
12
12
|
attribute :>> name = "VerificationCoverageView";
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
# Application/distribution descriptor for this MEMO package.
|
|
2
|
+
#
|
|
3
|
+
# Identity and location only. It records what this package is called, what
|
|
4
|
+
# version it is, and where its SysML source sits so a resolver can find it.
|
|
5
|
+
# It does not select model content: the project's native SysML imports and its
|
|
6
|
+
# ProjectMethodBinding decide what is in the model. Semantic fields
|
|
7
|
+
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
|
+
# removed at the native semantic flip and are now rejected if present.
|
|
9
|
+
name: '{{name}}'
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
description: MEMO connected device model
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Project identity and method binding — the project's native entrypoint.
|
|
2
|
+
//
|
|
3
|
+
// The imports below name the reusable packages this project resolves, and the
|
|
4
|
+
// binding names its methodology with a typed SysML reference. Nothing outside
|
|
5
|
+
// SysML selects model content: delete every YAML file beside this one and the
|
|
6
|
+
// model still means exactly what it means now.
|
|
7
|
+
package connected_device_catalog {
|
|
8
|
+
private import ScalarValues::*;
|
|
9
|
+
|
|
10
|
+
private import memo_core_enumerations::*;
|
|
11
|
+
private import memo_methodology_core::*;
|
|
12
|
+
private import memo_methodology_profiles::*;
|
|
13
|
+
|
|
14
|
+
private import connected_device_architecture::*;
|
|
15
|
+
private import connected_device_assurance::*;
|
|
16
|
+
private import connected_device_artifacts::*;
|
|
17
|
+
|
|
18
|
+
part projectMethodBinding : ProjectMethodBinding {
|
|
19
|
+
attribute :>> id = "PMB-001";
|
|
20
|
+
attribute :>> name = "{{name}}ProjectMethodBinding";
|
|
21
|
+
attribute :>> projectName = "{{name}}";
|
|
22
|
+
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
23
|
+
// The project adds no modules of its own yet. Under `explicit` an
|
|
24
|
+
// empty additive list means exactly that — no additions — rather than
|
|
25
|
+
// being read as "everything".
|
|
26
|
+
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
27
|
+
}
|
|
28
|
+
}
|