@memoarchitect/ontology 0.4.6 → 0.6.1
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 +7 -6
- package/examples/connected-patient-monitor/README.md +7 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +70 -0
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +3 -0
- package/examples/connected-patient-monitor/model/viewpoints/connected_patient_monitor_overview.sysml +6 -0
- package/examples/embedded-infusion-pump/README.md +7 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +66 -0
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +3 -0
- package/examples/embedded-infusion-pump/model/viewpoints/embedded_infusion_pump_overview.sysml +6 -0
- package/examples/extensions/README.md +16 -0
- package/examples/extensions/clinical/memo.package.yaml +9 -0
- package/examples/extensions/clinical/src/clinical_extension.sysml +3 -0
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +14 -0
- package/examples/extensions/clinical/src/procedures/memo_clinical_procedures.sysml +16 -0
- package/examples/extensions/template/memo.package.yaml +9 -0
- package/examples/extensions/template/src/extension.sysml +15 -0
- package/examples/functional-logical-physical/README.md +7 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +50 -0
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +3 -0
- package/examples/functional-logical-physical/model/viewpoints/functional_logical_physical_overview.sysml +6 -0
- package/examples/gpca-pump/README.md +26 -0
- package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +1 -1
- package/examples/gpca-pump/memo.config.yaml +2 -2
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_scope.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +10 -10
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +17 -6
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +11 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +35 -22
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +25 -6
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +29 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +293 -169
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +145 -27
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +210 -105
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +66 -69
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +43 -76
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +73 -70
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +27 -27
- package/examples/gpca-pump/model/views/context_system_context_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_rmf_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_sdd_view.sysml +2 -2
- package/examples/gpca-pump/model/views/document_threat_model_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
- package/examples/gpca-pump/model/views/document_vv_view.sysml +1 -1
- package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +1 -1
- package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +1 -1
- package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +1 -1
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/gpca-pump/model/views/operational_use_case_view.sysml +6 -6
- package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +1 -1
- package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +1 -1
- package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +2 -2
- package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +1 -1
- package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +1 -1
- package/examples/ivd-laboratory-system/README.md +7 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +58 -0
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +3 -0
- package/examples/ivd-laboratory-system/model/viewpoints/ivd_laboratory_system_overview.sysml +6 -0
- package/examples/manual-surgical-instrument/README.md +7 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +41 -0
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +3 -0
- package/examples/manual-surgical-instrument/model/viewpoints/manual_surgical_instrument_overview.sysml +6 -0
- package/examples/multidimensional-layers/README.md +7 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +51 -0
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +4 -0
- package/examples/multidimensional-layers/model/viewpoints/multidimensional_layers_overview.sysml +13 -0
- package/examples/reusable-instrument/README.md +7 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +71 -0
- package/examples/reusable-instrument/model/reusable_instrument.sysml +4 -0
- package/examples/reusable-instrument/model/viewpoints/reusable_instrument_overview.sysml +13 -0
- package/examples/software-only-medical-device/README.md +7 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +62 -0
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +4 -0
- package/examples/software-only-medical-device/model/viewpoints/software_only_medical_device_overview.sysml +13 -0
- package/examples/surgical-closure-workflow/README.md +8 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +151 -0
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +4 -0
- package/examples/surgical-closure-workflow/model/viewpoints/surgical_closure_workflow_overview.sysml +13 -0
- package/examples/surgical-robot/README.md +7 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +58 -0
- package/examples/surgical-robot/model/surgical_robot.sysml +4 -0
- package/examples/surgical-robot/model/viewpoints/surgical_robot_overview.sysml +13 -0
- package/examples/sysml-diagram-samples/README.md +32 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +5 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/action_flow_view.sysml +22 -4
- package/examples/sysml-diagram-samples/model/samples/context_view.sysml +55 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/functional_flow_view.sysml +17 -6
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/interconnection_view.sysml +4 -3
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/operational_behaviour_view.sysml +32 -42
- package/examples/sysml-diagram-samples/model/samples/requirements_view.sysml +63 -0
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +109 -0
- package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/tree_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/samples/use_case_view.sysml +81 -0
- package/examples/temperature-alarm/README.md +7 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +140 -0
- package/examples/temperature-alarm/model/temperature_alarm.sysml +4 -0
- package/examples/temperature-alarm/model/viewpoints/temperature_alarm_overview.sysml +13 -0
- package/memo.manifest.yaml +12 -4
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +4 -4
- package/ontology/memo.package.yaml +1 -1
- package/ontology/memo.rendering.yaml +37 -0
- package/package.json +19 -11
- package/profile/memo.package.yaml +3 -3
- package/src/architecture/decisions/memo_decisions.sysml +1 -1
- package/src/architecture/{behavior → functional/behavior}/memo_behavior.sysml +12 -11
- package/src/architecture/{constraints → functional/constraints}/memo_constraints.sysml +2 -2
- package/src/architecture/functional/functions/memo_functions.sysml +81 -0
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +46 -0
- package/src/architecture/implementation/hardware/electrical/memo_hardware_electrical.sysml +36 -0
- package/src/architecture/implementation/hardware/fluidic/memo_hardware_fluidic.sysml +14 -0
- package/src/architecture/implementation/hardware/mechanical/memo_hardware_mechanical.sysml +14 -0
- package/src/architecture/implementation/hardware/optical/memo_hardware_optical.sysml +11 -0
- package/src/architecture/implementation/hardware/sensing/memo_hardware_sensing.sysml +17 -0
- package/src/architecture/implementation/hardware/structure/memo_hardware_structure.sysml +12 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +70 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +80 -0
- package/src/architecture/implementation/ui/memo_ui.sysml +159 -0
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +102 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +150 -0
- package/src/architecture/operational/activities/memo_activities.sysml +86 -0
- package/src/architecture/operational/context/actors/memo_actors.sysml +38 -0
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +64 -0
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +53 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +116 -0
- package/src/architecture/operational/structure/memo_operational.sysml +31 -0
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +67 -0
- package/src/architecture/operational/workflows/memo_workflows.sysml +126 -0
- package/src/architecture/realization/deployment/memo_deployment.sysml +90 -0
- package/src/architecture/{physical → realization/physical}/memo_physical_architecture.sysml +12 -1
- package/src/artifacts/definitions/memo_artifact_definitions.sysml +1 -1
- package/src/{architecture → assurance}/cybersecurity/memo_cybersecurity.sysml +14 -10
- package/src/assurance/human_factors/memo_human_factors.sysml +50 -0
- package/src/{architecture → assurance}/requirements/memo_requirements.sysml +45 -21
- package/src/assurance/requirements/needs/memo_needs.sysml +43 -0
- package/src/{architecture → assurance/safety_risk}/analysis/memo_fmea.sysml +13 -13
- package/src/{architecture/risk → assurance/safety_risk}/memo_arch_risk.sysml +2 -2
- package/src/{architecture/risk → assurance/safety_risk}/memo_risk.sysml +25 -16
- package/src/assurance/verification_validation/memo_assurance.sysml +49 -0
- package/src/compliance/artifacts/memo_artifacts.sysml +1 -1
- package/src/compliance/change/memo_change.sysml +2 -2
- package/src/compliance/dhf-templates/21cfr820/design-input.md +1 -1
- package/src/compliance/dhf-templates/21cfr820/design-validation.md +1 -1
- package/src/compliance/dhf-templates/21cfr820/user-needs.md +2 -2
- package/src/compliance/dhf-templates/iec-62366/urra.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/fmea.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/har.md +4 -4
- package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/rmp.md +1 -1
- package/src/compliance/dhf-templates/iso-14971/rmr.md +1 -1
- package/src/compliance/iso14971/risk_management_file.sysml +1 -1
- package/src/compliance/postmarket/memo_postmarket.sysml +2 -2
- package/src/core/common/memo_common.sysml +123 -14
- package/src/core/consistency_rules/consistency_rules.sysml +2 -2
- package/src/core/dimensions/dimensions.sysml +45 -24
- package/src/core/enumerations/memo_enumerations.sysml +11 -16
- package/src/core/methodology_scope/methodology_scope.sysml +10 -28
- package/src/core/relationships/memo_relationships.sysml +178 -146
- package/src/core/stdlib/{collections.sysml → collections/collections.sysml} +1 -1
- package/src/core/stdlib/{functions.sysml → functions/functions.sysml} +1 -1
- package/src/core/stdlib/{scalars.sysml → scalars/scalars.sysml} +1 -1
- package/src/core/stdlib/{time.sysml → time/time.sysml} +1 -1
- package/src/core/terminology/terminology.sysml +35 -0
- package/src/memo_namespaces.sysml +247 -302
- package/src/methodology/{memo_core.sysml → core/memo_core.sysml} +19 -13
- package/src/methodology/{memo_gates.sysml → gates/memo_gates.sysml} +1 -1
- package/src/methodology/{memo_patterns.sysml → patterns/memo_patterns.sysml} +1 -1
- package/src/methodology/{memo_profiles.sysml → profiles/memo_profiles.sysml} +27 -35
- package/src/methodology/{memo_workflow.sysml → workflow/memo_workflow.sysml} +1 -1
- package/src/rules/closure/closure_rules.sysml +11 -11
- package/src/rules/coverage/coverage_rules.sysml +8 -8
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/lifecycle/lifecycle_rules.sysml +1 -1
- package/src/rules/ontology/ontology_invariants.sysml +133 -0
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +189 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +0 -1
- package/src/viewpoints/context/context_viewpoint.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +8 -8
- package/src/viewpoints/functional/{function_allocation_view.sysml → function_allocation_view/function_allocation_view.sysml} +1 -1
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/{system_functional_tree_view.sysml → system_functional_tree_view/system_functional_tree_view.sysml} +1 -1
- package/src/viewpoints/logical/logical_viewpoint.sysml +0 -1
- package/src/viewpoints/operational/operational_viewpoint.sysml +1 -2
- package/src/viewpoints/operational/{use_case_view.sysml → use_case_view/use_case_view.sysml} +1 -1
- package/src/viewpoints/physical/physical_viewpoint.sysml +0 -1
- package/src/viewpoints/requirements/{requirements_traceability_view.sysml → requirements_traceability_view/requirements_traceability_view.sysml} +1 -1
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/{risk_chain_view.sysml → risk_chain_view/risk_chain_view.sysml} +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/software/{software_architecture_view.sysml → software_architecture_view/software_architecture_view.sysml} +1 -1
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/usability/usability_viewpoint.sysml +0 -1
- package/src/viewpoints/verification/verification_viewpoint.sysml +0 -1
- package/templates/connected-device/memo.package.yaml +5 -0
- package/templates/connected-device/src/architecture/system.sysml +5 -0
- package/templates/connected-device/src/artifacts/artifacts.sysml +5 -0
- package/templates/connected-device/src/assurance/requirements.sysml +7 -0
- package/templates/default/memo.package.yaml +5 -0
- package/templates/default/src/architecture/system.sysml +7 -0
- package/templates/default/src/artifacts/artifacts.sysml +5 -0
- package/templates/default/src/assurance/requirements.sysml +8 -0
- package/templates/infusion-pump/memo.package.yaml +5 -0
- package/templates/infusion-pump/src/architecture/system.sysml +5 -0
- package/templates/infusion-pump/src/artifacts/artifacts.sysml +5 -0
- package/templates/infusion-pump/src/assurance/requirements.sysml +7 -0
- package/templates/monitoring-device/memo.package.yaml +5 -0
- package/templates/monitoring-device/src/architecture/system.sysml +5 -0
- package/templates/monitoring-device/src/artifacts/artifacts.sysml +5 -0
- package/templates/monitoring-device/src/assurance/requirements.sysml +7 -0
- package/templates/samd/memo.package.yaml +5 -0
- package/templates/samd/src/architecture/system.sysml +5 -0
- package/templates/samd/src/artifacts/artifacts.sysml +5 -0
- package/templates/samd/src/assurance/requirements.sysml +7 -0
- package/examples/gpca-pump/model/samples/README.md +0 -24
- package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +0 -9
- package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +0 -99
- package/profile/archetypes.yaml +0 -36
- package/profile/templates/connected-device/starter.sysml +0 -8
- package/profile/templates/infusion-pump/starter.sysml +0 -8
- package/profile/templates/monitoring-device/starter.sysml +0 -8
- package/profile/templates/samd/starter.sysml +0 -8
- package/src/architecture/assurance/memo_assurance.sysml +0 -29
- package/src/architecture/context/memo_context.sysml +0 -58
- package/src/architecture/functions/memo_functions.sysml +0 -30
- package/src/architecture/hardware_structure/memo_hardware_structure.sysml +0 -15
- package/src/architecture/interfaces/memo_interfaces.sysml +0 -103
- package/src/architecture/logical_structure/memo_logical_structure.sysml +0 -10
- package/src/architecture/operational/memo_operational.sysml +0 -51
- package/src/architecture/software_structure/memo_software_structure.sysml +0 -44
- package/src/architecture/system/memo_system_analysis.sysml +0 -54
- package/src/artifacts/clinical_safety_report.sysml +0 -12
- package/src/artifacts/cybersecurity_assessment_report.sysml +0 -12
- package/src/artifacts/design_change_log.sysml +0 -12
- package/src/artifacts/design_history_file_index.sysml +0 -12
- package/src/artifacts/design_input_plan.sysml +0 -12
- package/src/artifacts/design_output_plan.sysml +0 -12
- package/src/artifacts/evidence_record.sysml +0 -12
- package/src/artifacts/failure_mode_effects_analysis.sysml +0 -12
- package/src/artifacts/hazard_analysis_report.sysml +0 -12
- package/src/artifacts/labeling_specification.sysml +0 -12
- package/src/artifacts/requirements_specification.sysml +0 -12
- package/src/artifacts/requirements_traceability_matrix.sysml +0 -12
- package/src/artifacts/risk_management_plan.sysml +0 -12
- package/src/artifacts/software_design_description.sysml +0 -12
- package/src/artifacts/software_development_plan.sysml +0 -12
- package/src/artifacts/soup_list.sysml +0 -12
- package/src/artifacts/system_architecture_description.sysml +0 -12
- package/src/artifacts/test_protocol.sysml +0 -12
- package/src/artifacts/test_report.sysml +0 -12
- package/src/artifacts/threat_model_report.sysml +0 -12
- package/src/artifacts/usability_engineering_report.sysml +0 -12
- package/src/medical_device_library.sysml +0 -100
- package/template/memo.package.yaml +0 -5
- package/template/src/catalog/starter.sysml +0 -12
- package/template/src/documents/.gitkeep +0 -1
- package/template/src/views/.gitkeep +0 -1
- /package/src/methodology/{memo_archetypes.sysml → archetypes/memo_archetypes.sysml} +0 -0
- /package/src/methodology/{memo_rules.sysml → rules/memo_rules.sysml} +0 -0
- /package/src/methodology/{memo_viewpoints.sysml → viewpoints/memo_viewpoints.sysml} +0 -0
- /package/src/viewpoints/clinical/{clinical_evidence_view.sysml → clinical_evidence_view/clinical_evidence_view.sysml} +0 -0
- /package/src/viewpoints/context/{system_context_view.sysml → system_context_view/system_context_view.sysml} +0 -0
- /package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view.sysml → cybersecurity_assessment_view/cybersecurity_assessment_view.sysml} +0 -0
- /package/src/viewpoints/cybersecurity/{threat_model_view.sysml → threat_model_view/threat_model_view.sysml} +0 -0
- /package/src/viewpoints/logical/{logical_architecture_view.sysml → logical_architecture_view/logical_architecture_view.sysml} +0 -0
- /package/src/viewpoints/physical/{network_topology_view.sysml → network_topology_view/network_topology_view.sysml} +0 -0
- /package/src/viewpoints/physical/{physical_bom_view.sysml → physical_bom_view/physical_bom_view.sysml} +0 -0
- /package/src/viewpoints/usability/{usability_engineering_view.sysml → usability_engineering_view/usability_engineering_view.sysml} +0 -0
- /package/src/viewpoints/verification/{verification_coverage_view.sysml → verification_coverage_view/verification_coverage_view.sysml} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_assurance_safety_risk_analysis {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_core_common::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
-
item def FMEAWorksheet specializes
|
|
6
|
+
item def FMEAWorksheet specializes AnalysisArtifact {
|
|
7
7
|
attribute analysisScope : String;
|
|
8
8
|
attribute standardReference : String;
|
|
9
9
|
attribute analysisBasis : String;
|
|
10
10
|
attribute revisionDate : String;
|
|
11
11
|
attribute reviewer : String;
|
|
12
12
|
}
|
|
13
|
-
item def FailureMode specializes
|
|
13
|
+
item def FailureMode specializes MemoPart {
|
|
14
14
|
attribute failureModeKind : FailureModeKind;
|
|
15
15
|
attribute severityRating : Integer;
|
|
16
16
|
attribute occurrenceRating : Integer;
|
|
@@ -18,20 +18,20 @@ package memo_architecture_analysis {
|
|
|
18
18
|
attribute rpn : Integer;
|
|
19
19
|
attribute criticality : CriticalityKind;
|
|
20
20
|
}
|
|
21
|
-
item def FailureEffect specializes
|
|
21
|
+
item def FailureEffect specializes MemoPart {
|
|
22
22
|
attribute effectLevel : FailureEffectLevelKind;
|
|
23
23
|
attribute effectOnPatient : String;
|
|
24
24
|
attribute effectOnOperator : String;
|
|
25
25
|
attribute effectOnSystem : String;
|
|
26
26
|
attribute severity : SeverityKind;
|
|
27
27
|
}
|
|
28
|
-
item def FailureCause specializes
|
|
28
|
+
item def FailureCause specializes MemoPart {
|
|
29
29
|
attribute causeCategory : FailureCauseCategoryKind;
|
|
30
30
|
attribute causeDescription : String;
|
|
31
31
|
attribute occurrenceRating : ProbabilityKind;
|
|
32
32
|
attribute preventionMethod : String;
|
|
33
33
|
}
|
|
34
|
-
item def DetectionMethod specializes
|
|
34
|
+
item def DetectionMethod specializes MemoPart {
|
|
35
35
|
attribute methodKind : DetectionMethodKind;
|
|
36
36
|
attribute detectionPoint : String;
|
|
37
37
|
attribute confidence : DetectionKind;
|
|
@@ -42,43 +42,43 @@ package memo_architecture_analysis {
|
|
|
42
42
|
attribute targetCompletionDate : String;
|
|
43
43
|
attribute revisedRpn : Integer;
|
|
44
44
|
}
|
|
45
|
-
item def FaultTree specializes
|
|
45
|
+
item def FaultTree specializes AnalysisArtifact {
|
|
46
46
|
attribute standardReference : String;
|
|
47
47
|
attribute analysisScope : String;
|
|
48
48
|
attribute topEventDescription : String;
|
|
49
49
|
attribute cutSetSummary : String;
|
|
50
50
|
attribute revisionDate : String;
|
|
51
51
|
}
|
|
52
|
-
item def FaultTreeEvent specializes
|
|
52
|
+
item def FaultTreeEvent specializes MemoPart {
|
|
53
53
|
attribute eventKind : FaultTreeEventKind;
|
|
54
54
|
attribute probability : Real;
|
|
55
55
|
attribute failureRate : Real;
|
|
56
56
|
attribute exposureTime : Real;
|
|
57
57
|
attribute :>> description : String;
|
|
58
58
|
}
|
|
59
|
-
item def FaultTreeGate specializes
|
|
59
|
+
item def FaultTreeGate specializes MemoPart {
|
|
60
60
|
attribute gateKind : FaultTreeGateKind;
|
|
61
61
|
attribute kValue : Integer;
|
|
62
62
|
attribute nValue : Integer;
|
|
63
63
|
}
|
|
64
|
-
item def MinimalCutSet specializes
|
|
64
|
+
item def MinimalCutSet specializes MemoPart {
|
|
65
65
|
attribute cutSetOrder : Integer;
|
|
66
66
|
attribute probability : Real;
|
|
67
67
|
attribute involvedEvents : String;
|
|
68
68
|
attribute significance : String;
|
|
69
69
|
}
|
|
70
|
-
item def HAZOPStudy specializes
|
|
70
|
+
item def HAZOPStudy specializes AnalysisArtifact {
|
|
71
71
|
attribute standardReference : String;
|
|
72
72
|
attribute processDescription : String;
|
|
73
73
|
attribute studyScope : String;
|
|
74
74
|
attribute teamComposition : String;
|
|
75
75
|
}
|
|
76
|
-
item def HAZOPNode specializes
|
|
76
|
+
item def HAZOPNode specializes MemoPart {
|
|
77
77
|
attribute nodeDescription : String;
|
|
78
78
|
attribute designIntent : String;
|
|
79
79
|
attribute operatingConditions : String;
|
|
80
80
|
}
|
|
81
|
-
item def HAZOPDeviation specializes
|
|
81
|
+
item def HAZOPDeviation specializes MemoPart {
|
|
82
82
|
attribute guideWord : HAZOPGuideWordKind;
|
|
83
83
|
attribute parameter : String;
|
|
84
84
|
attribute cause : String;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_assurance_safety_risk_arch_risk {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
doc /* Configuration Item (CI) aggregator for MEMO architecture risk domain.
|
|
5
5
|
* Re-exports all risk-related packages for Sysand build. */
|
|
6
|
-
public import
|
|
6
|
+
public import memo_assurance_safety_risk::*;
|
|
7
7
|
}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_assurance_safety_risk {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_core_common::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
-
private import
|
|
6
|
+
private import memo_assurance_requirements::*;
|
|
7
7
|
part def Risk specializes RiskDriver {
|
|
8
8
|
attribute probabilityEstimate : ProbabilityKind;
|
|
9
9
|
attribute severityEstimate : SeverityKind;
|
|
10
10
|
attribute riskLevel : CriticalityKind;
|
|
11
11
|
attribute acceptability : RiskAcceptabilityKind;
|
|
12
|
-
}
|
|
13
|
-
part def RiskBeforeMitigation specializes Risk {
|
|
14
12
|
attribute estimationBasis : String;
|
|
15
13
|
attribute analysisContext : String;
|
|
16
14
|
attribute foreseeableMisuseIncluded : Boolean;
|
|
17
15
|
}
|
|
18
|
-
part def
|
|
19
|
-
attribute residualProbability : ProbabilityKind;
|
|
20
|
-
attribute residualSeverity : SeverityKind;
|
|
21
|
-
attribute residualAcceptability : RiskAcceptabilityKind;
|
|
16
|
+
part def ResidualRisk specializes Risk {
|
|
22
17
|
attribute benefitRiskRequired : Boolean;
|
|
23
18
|
}
|
|
24
|
-
part def RiskMatrix specializes
|
|
19
|
+
part def RiskMatrix specializes MemoPart {
|
|
25
20
|
attribute probabilityScaleDefinition : String;
|
|
26
21
|
attribute severityScaleDefinition : String;
|
|
27
22
|
attribute riskLevelMapping : String;
|
|
@@ -43,37 +38,51 @@ package memo_architecture_risk_risk {
|
|
|
43
38
|
attribute cannotReduceFurther : Boolean;
|
|
44
39
|
attribute linkSummary : String;
|
|
45
40
|
}
|
|
46
|
-
|
|
41
|
+
// A device characteristic whose implementation, failure, or misuse can
|
|
42
|
+
// affect safety. This is the modelable output of ISO 14971 §5.3.
|
|
43
|
+
part def SafetyRelatedCharacteristic specializes MemoPart {
|
|
44
|
+
attribute characteristic : String;
|
|
45
|
+
attribute safetyImpact : String;
|
|
46
|
+
attribute normalUseRelevant : Boolean;
|
|
47
|
+
attribute faultConditionRelevant : Boolean;
|
|
48
|
+
}
|
|
49
|
+
item def Hazard specializes MemoPart {
|
|
47
50
|
attribute hazardType : HazardTypeKind;
|
|
48
51
|
attribute severity : SeverityKind;
|
|
49
52
|
attribute foreseeable : Boolean;
|
|
50
53
|
}
|
|
51
|
-
item def SequenceOfEvents specializes
|
|
54
|
+
item def SequenceOfEvents specializes MemoPart {
|
|
52
55
|
attribute initiatingEvent : String;
|
|
53
56
|
attribute contributingFactors : String;
|
|
54
57
|
}
|
|
55
58
|
// A categorized root cause in a hazard causal tree (FDA GIIP
|
|
56
59
|
// taxonomy pattern: cause -> hazard -> hazardous situation -> harm;
|
|
57
60
|
// several HazardCause elements may converge on one Hazard).
|
|
58
|
-
item def HazardCause specializes
|
|
61
|
+
item def HazardCause specializes MemoPart {
|
|
59
62
|
attribute causeSource : CauseSourceKind;
|
|
60
63
|
attribute contributingFactors : String;
|
|
61
64
|
}
|
|
62
|
-
item def HazardousSituation specializes
|
|
65
|
+
item def HazardousSituation specializes MemoPart {
|
|
63
66
|
attribute exposedPersons : String;
|
|
64
67
|
attribute operatingCondition : String;
|
|
65
68
|
}
|
|
66
|
-
item def Harm specializes
|
|
69
|
+
item def Harm specializes MemoPart {
|
|
67
70
|
attribute clinicalImpact : String;
|
|
68
71
|
attribute reversibility : String;
|
|
69
72
|
attribute severity : SeverityKind;
|
|
70
73
|
}
|
|
71
|
-
item def
|
|
74
|
+
item def RiskControlMeasure specializes VerifiableElement {
|
|
72
75
|
attribute controlKind : RiskControlKind;
|
|
73
76
|
attribute implementationKind : RiskControlImplementationKind;
|
|
74
77
|
attribute verificationStatus : String;
|
|
75
78
|
}
|
|
76
|
-
|
|
79
|
+
part def Benefit specializes MemoPart {
|
|
80
|
+
attribute beneficialOutcome : String;
|
|
81
|
+
attribute beneficiary : String;
|
|
82
|
+
attribute clinicalSignificance : String;
|
|
83
|
+
attribute supportingEvidence : String;
|
|
84
|
+
}
|
|
85
|
+
item def OverallResidualRiskEvaluation specializes MemoPart {
|
|
77
86
|
attribute conclusion : String;
|
|
78
87
|
attribute reviewer : String;
|
|
79
88
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
package memo_assurance_verification_validation {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_core_common::*;
|
|
5
|
+
private import memo_core_enumerations::*;
|
|
6
|
+
private import memo_core_relationships::*;
|
|
7
|
+
private import memo_architecture_operational_scenarios::*;
|
|
8
|
+
private import memo_architecture_operational_use_cases::*;
|
|
9
|
+
private import memo_architecture_functional_functions::*;
|
|
10
|
+
// Verification and validation cases are SysML v2 verification cases
|
|
11
|
+
// (behaviours that check requirements), not verifiable structures — they
|
|
12
|
+
// derive from the MemoVerificationCase foundation, not MemoPart.
|
|
13
|
+
verification def VerificationCase :> MemoVerificationCase {
|
|
14
|
+
attribute methodKind : VerificationMethodKind;
|
|
15
|
+
attribute acceptanceCriteria : String;
|
|
16
|
+
attribute status : String;
|
|
17
|
+
}
|
|
18
|
+
verification def ValidationCase :> MemoVerificationCase {
|
|
19
|
+
attribute validationMethod : ValidationMethodKind;
|
|
20
|
+
attribute userParticipation : String;
|
|
21
|
+
attribute acceptanceCriteria : String;
|
|
22
|
+
attribute clinicalContext : String;
|
|
23
|
+
}
|
|
24
|
+
part def TestArtifact specializes MemoEvidence {
|
|
25
|
+
attribute version : String;
|
|
26
|
+
attribute artifactKind : ArtifactKind;
|
|
27
|
+
attribute resultSummary : String;
|
|
28
|
+
}
|
|
29
|
+
part def Evidence specializes MemoEvidence {
|
|
30
|
+
attribute version : String;
|
|
31
|
+
attribute evidenceType : String;
|
|
32
|
+
attribute integrityStatus : String;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// A scenario executed to verify — selected path with purpose
|
|
36
|
+
// 'verification'.
|
|
37
|
+
part def VerificationScenario specializes MemoScenario {
|
|
38
|
+
attribute verificationEnvironment : String;
|
|
39
|
+
attribute stimulusSummary : String;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Operational validation confirms the user's goal is achieved in the
|
|
43
|
+
// use environment (§5): ValidationCase validates a UseCase.
|
|
44
|
+
// Safety-critical functions must trace to verification (rules/coverage).
|
|
45
|
+
connection def ExecutesScenario :> MemoRelationship {
|
|
46
|
+
end verificationCase : VerificationCase;
|
|
47
|
+
end scenario : MemoScenario;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -3,7 +3,7 @@ package memo_compliance_artifacts {
|
|
|
3
3
|
|
|
4
4
|
private import memo_core_common::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
-
item def ControlledArtifact specializes
|
|
6
|
+
item def ControlledArtifact specializes MemoPart {
|
|
7
7
|
attribute version : String;
|
|
8
8
|
attribute lifecycleState : LifecycleStateKind;
|
|
9
9
|
attribute artifactKind : ArtifactKind;
|
|
@@ -3,13 +3,13 @@ package memo_compliance_change {
|
|
|
3
3
|
|
|
4
4
|
private import memo_core_common::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
-
part def ChangeRequest specializes
|
|
6
|
+
part def ChangeRequest specializes MemoPart {
|
|
7
7
|
attribute changeType : ChangeTypeKind;
|
|
8
8
|
attribute impactAssessment : String;
|
|
9
9
|
attribute approvalStatus : String;
|
|
10
10
|
attribute affectedBaseline : String;
|
|
11
11
|
}
|
|
12
|
-
part def ConfigurationItem specializes
|
|
12
|
+
part def ConfigurationItem specializes MemoPart {
|
|
13
13
|
attribute version : String;
|
|
14
14
|
attribute baseline : String;
|
|
15
15
|
attribute controlLevel : String;
|
|
@@ -43,7 +43,7 @@ empty: "No validation activities defined."
|
|
|
43
43
|
Coverage of user needs by validation activities, computed live from the model:
|
|
44
44
|
|
|
45
45
|
```memo-query
|
|
46
|
-
kind: [
|
|
46
|
+
kind: [Need, Requirement]
|
|
47
47
|
display: table
|
|
48
48
|
columns: name, layer, doc
|
|
49
49
|
empty: "No user needs defined."
|
|
@@ -31,11 +31,11 @@ _[TODO: Describe all intended user groups with their roles, training levels, and
|
|
|
31
31
|
User needs captured for **{{project.product}}** are listed below from the model. Each user need should trace forward to at least one design input:
|
|
32
32
|
|
|
33
33
|
```memo-query
|
|
34
|
-
kind: [
|
|
34
|
+
kind: [Need, Requirement]
|
|
35
35
|
display: table
|
|
36
36
|
columns: name, layer, doc
|
|
37
37
|
sort: name
|
|
38
|
-
empty: "No user need elements defined. Add
|
|
38
|
+
empty: "No user need elements defined. Add Need or Requirement elements."
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
---
|
|
@@ -60,7 +60,7 @@ _[TODO: Identify the critical tasks whose failure could cause a hazardous situat
|
|
|
60
60
|
This section is generated from the system model. The table below lists the **Mitigation Measures** elements currently defined:
|
|
61
61
|
|
|
62
62
|
```memo-query
|
|
63
|
-
kind: [
|
|
63
|
+
kind: [RiskControlMeasure, UsabilityRequirement]
|
|
64
64
|
display: table
|
|
65
65
|
columns: name, layer, doc
|
|
66
66
|
sort: name
|
|
@@ -71,7 +71,7 @@ empty: "No interfaces defined."
|
|
|
71
71
|
This section is generated from the system model. The table below lists the **Risk Controls for FMEA Items** elements currently defined:
|
|
72
72
|
|
|
73
73
|
```memo-query
|
|
74
|
-
kind:
|
|
74
|
+
kind: RiskControlMeasure
|
|
75
75
|
display: table
|
|
76
76
|
columns: name, layer, doc
|
|
77
77
|
sort: name
|
|
@@ -35,7 +35,7 @@ label: Hazardous situations
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
```memo-query
|
|
38
|
-
kind:
|
|
38
|
+
kind: RiskControlMeasure
|
|
39
39
|
display: count
|
|
40
40
|
label: Risk control measures
|
|
41
41
|
```
|
|
@@ -113,7 +113,7 @@ empty: "No harm elements defined. Add Harm elements linked to HazardousSituation
|
|
|
113
113
|
### 6.1 Inherent Safety by Design
|
|
114
114
|
|
|
115
115
|
```memo-query
|
|
116
|
-
kind:
|
|
116
|
+
kind: RiskControlMeasure
|
|
117
117
|
where: doc contains "design"
|
|
118
118
|
display: table
|
|
119
119
|
columns: name, doc, layer
|
|
@@ -123,11 +123,11 @@ empty: "No inherent safety controls."
|
|
|
123
123
|
### 6.2 Protective Measures
|
|
124
124
|
|
|
125
125
|
```memo-query
|
|
126
|
-
kind:
|
|
126
|
+
kind: RiskControlMeasure
|
|
127
127
|
display: table
|
|
128
128
|
columns: name, doc, layer
|
|
129
129
|
sort: name
|
|
130
|
-
empty: "No risk controls defined. Add
|
|
130
|
+
empty: "No risk controls defined. Add RiskControlMeasure elements."
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
### 6.3 Information for Safety
|
|
@@ -39,7 +39,7 @@ empty: "No risk elements defined."
|
|
|
39
39
|
This section is generated from the system model. The table below lists the **Risk Control Coverage** elements currently defined:
|
|
40
40
|
|
|
41
41
|
```memo-query
|
|
42
|
-
kind:
|
|
42
|
+
kind: RiskControlMeasure
|
|
43
43
|
display: table
|
|
44
44
|
columns: name, layer, doc
|
|
45
45
|
sort: name
|
|
@@ -7,7 +7,7 @@ package memo_compliance_iso14971 {
|
|
|
7
7
|
doc /* ISO 14971 Risk Management File — the top-level deliverable
|
|
8
8
|
that aggregates all risk management artifacts required by
|
|
9
9
|
ISO 14971:2019 clause 4.5. */
|
|
10
|
-
part def RiskManagementFile specializes
|
|
10
|
+
part def RiskManagementFile specializes MemoPart {
|
|
11
11
|
attribute standardReference : String;
|
|
12
12
|
attribute clause : String;
|
|
13
13
|
attribute edition : String;
|
|
@@ -3,12 +3,12 @@ package memo_compliance_postmarket {
|
|
|
3
3
|
|
|
4
4
|
private import memo_core_common::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
-
part def ClinicalEvaluation specializes
|
|
6
|
+
part def ClinicalEvaluation specializes MemoPart {
|
|
7
7
|
attribute evaluationStage : String;
|
|
8
8
|
attribute clinicalDataSource : String;
|
|
9
9
|
attribute conclusion : String;
|
|
10
10
|
}
|
|
11
|
-
part def PostMarketSurveillance specializes
|
|
11
|
+
part def PostMarketSurveillance specializes MemoPart {
|
|
12
12
|
attribute surveillanceKind : String;
|
|
13
13
|
attribute dataSource : String;
|
|
14
14
|
attribute reportingObligation : String;
|
|
@@ -1,20 +1,57 @@
|
|
|
1
|
+
// MEMO base hierarchy. Construct-specific foundations: one base per
|
|
2
|
+
// SysML v2 metaclass family (part, action, port, interface, item, requirement,
|
|
3
|
+
// connection), each carrying the shared MEMO semantics. Common inheritance
|
|
4
|
+
// across metaclasses is not portable, so non-part bases re-declare the small
|
|
5
|
+
// identification core and share classification through the metadata defs in
|
|
6
|
+
// memo_core_dimensions.
|
|
1
7
|
package memo_core_common {
|
|
2
8
|
private import ScalarValues::*;
|
|
3
9
|
|
|
10
|
+
private import memo_core_dimensions::*;
|
|
11
|
+
private import memo_core_terminology::*;
|
|
4
12
|
private import memo_core_enumerations::*;
|
|
5
13
|
|
|
6
|
-
part
|
|
14
|
+
// ─── Single abstract part root ──────────────────────────────────
|
|
15
|
+
// Every structural MEMO concept specializes MemoPart. Identity and
|
|
16
|
+
// traceability are attributes of this one root — MEMO has no separate
|
|
17
|
+
// IdentifiedElement/TraceableElement classes, because *everything* is
|
|
18
|
+
// identifiable and traceable by definition; that is not a type a modeler
|
|
19
|
+
// picks. MemoPart is abstract: never instantiated, only specialized.
|
|
20
|
+
//
|
|
21
|
+
// Axis ownership (horizontal architecture layer vs. vertical assurance
|
|
22
|
+
// discipline) is NOT an attribute — it is the element's owning package
|
|
23
|
+
// (memo_architecture_* xor memo_assurance_*), enforced by CR-ONT-045.
|
|
24
|
+
// The remaining dimensions are orthogonal to the axis: realization stage,
|
|
25
|
+
// cross-cutting concern, and editorial status.
|
|
26
|
+
abstract part def MemoPart {
|
|
27
|
+
// identity
|
|
7
28
|
attribute id : String;
|
|
8
29
|
attribute name : String;
|
|
9
30
|
attribute description : String;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
part def TraceableElement specializes IdentifiedElement {
|
|
31
|
+
// traceability
|
|
13
32
|
attribute rationale : String;
|
|
14
33
|
attribute sourceReference : String;
|
|
34
|
+
// editorial status and lifecycle
|
|
35
|
+
attribute status : ElementStatusKind;
|
|
36
|
+
attribute lifecycleState : LifecycleStateKind;
|
|
37
|
+
// orthogonal dimensions
|
|
38
|
+
attribute realizationStage : RealizationStageKind[0..1];
|
|
39
|
+
attribute crossCuttingConcerns : CrossCuttingConcernKind[0..*];
|
|
40
|
+
attribute concerns : ConcernKind[0..*];
|
|
41
|
+
attribute applicableStandards : ExternalReference[0..*];
|
|
42
|
+
attribute codes : TerminologyCode[0..*];
|
|
15
43
|
}
|
|
16
44
|
|
|
17
|
-
|
|
45
|
+
// ─── Role bases retained from the original kernel, re-founded on
|
|
46
|
+
// MemoPart so all existing content inherits the dimensions. ───
|
|
47
|
+
part def RequirementDriver specializes MemoPart;
|
|
48
|
+
abstract part def VerifiableElement specializes MemoPart;
|
|
49
|
+
abstract part def ArchitectureElement specializes MemoPart;
|
|
50
|
+
part def InterfaceElement specializes MemoPart;
|
|
51
|
+
part def MemoEvidence specializes MemoPart;
|
|
52
|
+
abstract part def AnalysisArtifact specializes MemoPart;
|
|
53
|
+
|
|
54
|
+
part def DocumentedElement specializes MemoPart {
|
|
18
55
|
attribute title : String;
|
|
19
56
|
attribute shortDescription : String;
|
|
20
57
|
attribute longDescription : String;
|
|
@@ -22,26 +59,98 @@ package memo_core_common {
|
|
|
22
59
|
attribute sectionIdentifier : String;
|
|
23
60
|
}
|
|
24
61
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
62
|
+
// ─── Construct-specific foundations (non-part metaclasses) ───────
|
|
63
|
+
|
|
64
|
+
// Behavioral foundation: operational activities, tasks, system actions,
|
|
65
|
+
// and interaction steps specialize MemoAction.
|
|
66
|
+
action def MemoAction {
|
|
67
|
+
attribute id : String;
|
|
68
|
+
attribute name : String;
|
|
69
|
+
attribute description : String;
|
|
70
|
+
attribute rationale : String;
|
|
71
|
+
attribute sourceReference : String;
|
|
72
|
+
attribute status : ElementStatusKind;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Boundary feature foundation for typed ports.
|
|
76
|
+
port def MemoPort {
|
|
77
|
+
attribute id : String;
|
|
78
|
+
attribute name : String;
|
|
79
|
+
attribute description : String;
|
|
80
|
+
attribute direction : DirectionKind;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Interaction-contract foundation for interface definitions between ports.
|
|
84
|
+
interface def MemoInterface {
|
|
85
|
+
attribute id : String;
|
|
86
|
+
attribute name : String;
|
|
87
|
+
attribute description : String;
|
|
88
|
+
attribute rationale : String;
|
|
89
|
+
attribute sourceReference : String;
|
|
90
|
+
}
|
|
30
91
|
|
|
31
|
-
|
|
92
|
+
// Exchange-content foundation: everything that flows — information,
|
|
93
|
+
// command, material, energy — is an item, not a part.
|
|
94
|
+
item def MemoExchangeItem {
|
|
95
|
+
attribute id : String;
|
|
96
|
+
attribute name : String;
|
|
97
|
+
attribute description : String;
|
|
98
|
+
attribute rationale : String;
|
|
99
|
+
attribute sourceReference : String;
|
|
32
100
|
attribute semantics : String;
|
|
33
101
|
attribute unit : String;
|
|
34
102
|
attribute minValue : String;
|
|
35
103
|
attribute maxValue : String;
|
|
36
104
|
attribute encoding : String;
|
|
37
105
|
attribute timestampRequired : Boolean;
|
|
106
|
+
attribute codes : TerminologyCode[0..*];
|
|
38
107
|
}
|
|
39
108
|
|
|
40
|
-
|
|
41
|
-
|
|
109
|
+
// Requirement-family foundations. MemoNeed captures a problem-space
|
|
110
|
+
// expectation in stakeholder language; MemoRequirement a testable
|
|
111
|
+
// solution-space obligation.
|
|
112
|
+
requirement def MemoNeed {
|
|
113
|
+
attribute needId : String;
|
|
114
|
+
attribute statement : String;
|
|
115
|
+
attribute needRationale : String;
|
|
116
|
+
attribute needSource : String;
|
|
117
|
+
attribute priority : String;
|
|
118
|
+
attribute needStatus : ElementStatusKind;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
requirement def MemoRequirement {
|
|
122
|
+
attribute requirementId : String;
|
|
123
|
+
attribute statement : String;
|
|
124
|
+
attribute acceptanceCriteria : String;
|
|
125
|
+
attribute requirementStatus : ElementStatusKind;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Verification-case foundation. A SysML v2 verification case is a behaviour
|
|
129
|
+
// (it checks requirements), and KerML forbids a behaviour from specializing
|
|
130
|
+
// the part-based MemoPart — so, like MemoAction, it re-declares the small
|
|
131
|
+
// identification core rather than inheriting it.
|
|
132
|
+
verification def MemoVerificationCase {
|
|
133
|
+
attribute id : String;
|
|
134
|
+
attribute name : String;
|
|
135
|
+
attribute description : String;
|
|
136
|
+
attribute rationale : String;
|
|
137
|
+
attribute sourceReference : String;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// State foundation. SysML v2 states (state machines and their mode states)
|
|
141
|
+
// are behaviours, so — like MemoAction and MemoVerificationCase — they
|
|
142
|
+
// re-declare the identification core instead of specializing MemoPart
|
|
143
|
+
// Transitions stay part-based to keep their traceable safety
|
|
144
|
+
// attributes (id, sourceReference, priority, sameStepCritical).
|
|
145
|
+
abstract state def MemoState {
|
|
146
|
+
attribute id : String;
|
|
147
|
+
attribute name : String;
|
|
148
|
+
attribute description : String;
|
|
149
|
+
attribute rationale : String;
|
|
150
|
+
attribute sourceReference : String;
|
|
42
151
|
}
|
|
43
152
|
|
|
44
|
-
part def Citation specializes
|
|
153
|
+
part def Citation specializes MemoPart {
|
|
45
154
|
attribute source : String;
|
|
46
155
|
attribute section : String;
|
|
47
156
|
attribute uri : String;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Consistency rule base types per Epic N.
|
|
2
|
-
// Bare imports
|
|
2
|
+
// Bare imports are required by the current compatibility surface.
|
|
3
3
|
package memo_core_consistency_rules {
|
|
4
4
|
private import ScalarValues::*;
|
|
5
5
|
|
|
6
6
|
private import memo_core_common::*;
|
|
7
7
|
private import memo_core_enumerations::*;
|
|
8
8
|
|
|
9
|
-
part def ConsistencyRule specializes
|
|
9
|
+
part def ConsistencyRule specializes MemoPart {
|
|
10
10
|
attribute appliesTo : String;
|
|
11
11
|
attribute predicate : RulePredicateKind;
|
|
12
12
|
attribute strength : RuleStrengthKind;
|