@memoarchitect/ontology 0.4.4
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/LICENSE +19 -0
- package/README.md +70 -0
- package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +210 -0
- package/examples/gpca-pump/memo.config.yaml +9 -0
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +11 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +25 -0
- package/examples/gpca-pump/methodology/gpca_scope.sysml +25 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +231 -0
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +272 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +81 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +363 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +205 -0
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +113 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +172 -0
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +173 -0
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +1062 -0
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +209 -0
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +53 -0
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1505 -0
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +744 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +144 -0
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +696 -0
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +285 -0
- package/examples/gpca-pump/model/samples/README.md +24 -0
- package/examples/gpca-pump/model/samples/action_flow_view.sysml +72 -0
- package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +9 -0
- package/examples/gpca-pump/model/samples/functional_flow_view.sysml +153 -0
- package/examples/gpca-pump/model/samples/interconnection_view.sysml +93 -0
- package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +99 -0
- package/examples/gpca-pump/model/samples/operational_behaviour_view.sysml +145 -0
- package/examples/gpca-pump/model/samples/tree_view.sysml +56 -0
- package/examples/gpca-pump/model/views/behavior_action_flow_view.sysml +41 -0
- package/examples/gpca-pump/model/views/context_system_context_view.sysml +43 -0
- package/examples/gpca-pump/model/views/cybersecurity_cybersecurity_view.sysml +44 -0
- package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_dhf_index_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_rmf_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_sdd_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_threat_model_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_usability_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_vv_view.sysml +29 -0
- package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +42 -0
- package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +41 -0
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +43 -0
- package/examples/gpca-pump/model/views/logical_logical_architecture_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +44 -0
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +41 -0
- package/examples/gpca-pump/model/views/operational_use_case_view.sysml +43 -0
- package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +41 -0
- package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_fmea_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +44 -0
- package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +43 -0
- package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +42 -0
- package/memo.manifest.yaml +13 -0
- package/methodologies/default/memo.package.yaml +9 -0
- package/methodologies/gpca/memo.package.yaml +9 -0
- package/ontology/memo.package.yaml +8 -0
- package/ontology/memo.rendering.yaml +47 -0
- package/package.json +65 -0
- package/profile/archetypes.yaml +36 -0
- package/profile/memo.package.yaml +9 -0
- package/profile/templates/connected-device/starter.sysml +8 -0
- package/profile/templates/infusion-pump/starter.sysml +8 -0
- package/profile/templates/monitoring-device/starter.sysml +8 -0
- package/profile/templates/samd/starter.sysml +8 -0
- package/src/architecture/analysis/memo_fmea.sysml +91 -0
- package/src/architecture/assurance/memo_assurance.sysml +29 -0
- package/src/architecture/behavior/memo_behavior.sysml +65 -0
- package/src/architecture/constraints/memo_constraints.sysml +14 -0
- package/src/architecture/context/memo_context.sysml +58 -0
- package/src/architecture/cybersecurity/memo_cybersecurity.sysml +99 -0
- package/src/architecture/decisions/memo_decisions.sysml +12 -0
- package/src/architecture/functions/memo_functions.sysml +30 -0
- package/src/architecture/hardware_structure/memo_hardware_structure.sysml +15 -0
- package/src/architecture/interfaces/memo_interfaces.sysml +103 -0
- package/src/architecture/logical_structure/memo_logical_structure.sysml +10 -0
- package/src/architecture/operational/memo_operational.sysml +51 -0
- package/src/architecture/physical/memo_physical_architecture.sysml +19 -0
- package/src/architecture/requirements/memo_requirements.sysml +69 -0
- package/src/architecture/risk/memo_arch_risk.sysml +7 -0
- package/src/architecture/risk/memo_risk.sysml +80 -0
- package/src/architecture/software_structure/memo_software_structure.sysml +44 -0
- package/src/architecture/system/memo_system_analysis.sysml +54 -0
- package/src/artifacts/clinical_safety_report.sysml +12 -0
- package/src/artifacts/cybersecurity_assessment_report.sysml +12 -0
- package/src/artifacts/definitions/memo_artifact_definitions.sysml +12 -0
- package/src/artifacts/design_change_log.sysml +12 -0
- package/src/artifacts/design_history_file_index.sysml +12 -0
- package/src/artifacts/design_input_plan.sysml +12 -0
- package/src/artifacts/design_output_plan.sysml +12 -0
- package/src/artifacts/evidence_record.sysml +12 -0
- package/src/artifacts/failure_mode_effects_analysis.sysml +12 -0
- package/src/artifacts/hazard_analysis_report.sysml +12 -0
- package/src/artifacts/labeling_specification.sysml +12 -0
- package/src/artifacts/requirements_specification.sysml +12 -0
- package/src/artifacts/requirements_traceability_matrix.sysml +12 -0
- package/src/artifacts/risk_management_plan.sysml +12 -0
- package/src/artifacts/software_design_description.sysml +12 -0
- package/src/artifacts/software_development_plan.sysml +12 -0
- package/src/artifacts/soup_list.sysml +12 -0
- package/src/artifacts/system_architecture_description.sysml +12 -0
- package/src/artifacts/test_protocol.sysml +12 -0
- package/src/artifacts/test_report.sysml +12 -0
- package/src/artifacts/threat_model_report.sysml +12 -0
- package/src/artifacts/usability_engineering_report.sysml +12 -0
- package/src/compliance/artifacts/memo_artifacts.sysml +13 -0
- package/src/compliance/change/memo_change.sysml +17 -0
- package/src/compliance/dhf-templates/21cfr820/change-record.md +45 -0
- package/src/compliance/dhf-templates/21cfr820/design-input.md +67 -0
- package/src/compliance/dhf-templates/21cfr820/design-output.md +80 -0
- package/src/compliance/dhf-templates/21cfr820/design-review.md +51 -0
- package/src/compliance/dhf-templates/21cfr820/design-validation.md +64 -0
- package/src/compliance/dhf-templates/21cfr820/design-verification.md +57 -0
- package/src/compliance/dhf-templates/21cfr820/dhf-index.md +111 -0
- package/src/compliance/dhf-templates/21cfr820/transfer-plan.md +50 -0
- package/src/compliance/dhf-templates/21cfr820/user-needs.md +81 -0
- package/src/compliance/dhf-templates/21cfr820/vv-plan.md +89 -0
- package/src/compliance/dhf-templates/21cfr820/vv-report.md +85 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/incident-response.md +66 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/postmarket-surveillance.md +63 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/security-arch.md +83 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/threat-model.md +100 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/vuln-assessment.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/change-control.md +40 -0
- package/src/compliance/dhf-templates/iec-62304/detailed-design.md +69 -0
- package/src/compliance/dhf-templates/iec-62304/integration-test.md +68 -0
- package/src/compliance/dhf-templates/iec-62304/sad.md +115 -0
- package/src/compliance/dhf-templates/iec-62304/sbom.md +67 -0
- package/src/compliance/dhf-templates/iec-62304/sdp.md +108 -0
- package/src/compliance/dhf-templates/iec-62304/soup.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/srs.md +138 -0
- package/src/compliance/dhf-templates/iec-62304/sw-traceability.md +111 -0
- package/src/compliance/dhf-templates/iec-62304/system-test.md +67 -0
- package/src/compliance/dhf-templates/iec-62366/formative-eval.md +47 -0
- package/src/compliance/dhf-templates/iec-62366/summative-eval.md +69 -0
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +57 -0
- package/src/compliance/dhf-templates/iec-62366/ue-plan.md +81 -0
- package/src/compliance/dhf-templates/iec-62366/ui-spec.md +61 -0
- package/src/compliance/dhf-templates/iec-62366/urra.md +74 -0
- package/src/compliance/dhf-templates/iec-62366/use-spec.md +61 -0
- package/src/compliance/dhf-templates/iso-14971/fmea.md +93 -0
- package/src/compliance/dhf-templates/iso-14971/fta.md +70 -0
- package/src/compliance/dhf-templates/iso-14971/har.md +165 -0
- package/src/compliance/dhf-templates/iso-14971/risk-benefit.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/rmp.md +169 -0
- package/src/compliance/dhf-templates/iso-14971/rmr.md +101 -0
- package/src/compliance/dhf-templates/shared/snippets/approval-block.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/document-control-header.md +15 -0
- package/src/compliance/dhf-templates/shared/snippets/references-section.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/revision-history-table.md +11 -0
- package/src/compliance/document_views/memo_document_views.sysml +7 -0
- package/src/compliance/iso14971/risk_management_file.sysml +16 -0
- package/src/compliance/postmarket/memo_postmarket.sysml +16 -0
- package/src/core/common/memo_common.sysml +50 -0
- package/src/core/consistency_rules/consistency_rules.sysml +41 -0
- package/src/core/dimensions/dimensions.sysml +37 -0
- package/src/core/enumerations/memo_enumerations.sysml +562 -0
- package/src/core/methodology_scope/methodology_scope.sysml +46 -0
- package/src/core/relationships/memo_relationships.sysml +230 -0
- package/src/core/semantics/semantics.sysml +20 -0
- package/src/core/stdlib/collections.sysml +6 -0
- package/src/core/stdlib/functions.sysml +6 -0
- package/src/core/stdlib/scalars.sysml +6 -0
- package/src/core/stdlib/time.sysml +6 -0
- package/src/medical_device_library.sysml +100 -0
- package/src/memo_namespaces.sysml +668 -0
- package/src/methodology/LICENSES/MIT.txt +19 -0
- package/src/methodology/memo_archetypes.sysml +93 -0
- package/src/methodology/memo_core.sysml +53 -0
- package/src/methodology/memo_gates.sysml +11 -0
- package/src/methodology/memo_patterns.sysml +12 -0
- package/src/methodology/memo_profiles.sysml +218 -0
- package/src/methodology/memo_rules.sysml +15 -0
- package/src/methodology/memo_viewpoints.sysml +5 -0
- package/src/methodology/memo_workflow.sysml +14 -0
- package/src/rules/closure/closure_rules.sysml +180 -0
- package/src/rules/coverage/coverage_rules.sysml +258 -0
- package/src/rules/crosslayer/cross_layer_rules.sysml +38 -0
- package/src/rules/lifecycle/lifecycle_rules.sysml +41 -0
- package/src/rules/quantitative/quantitative_rules.sysml +34 -0
- package/src/viewpoints/clinical/clinical_evidence_view.sysml +13 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +25 -0
- package/src/viewpoints/context/context_viewpoint.sysml +25 -0
- package/src/viewpoints/context/system_context_view.sysml +29 -0
- package/src/viewpoints/cybersecurity/cybersecurity_assessment_view.sysml +13 -0
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +27 -0
- package/src/viewpoints/cybersecurity/threat_model_view.sysml +13 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +82 -0
- package/src/viewpoints/functional/function_allocation_view.sysml +29 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +25 -0
- package/src/viewpoints/functional/system_functional_tree_view.sysml +29 -0
- package/src/viewpoints/logical/logical_architecture_view.sysml +29 -0
- package/src/viewpoints/logical/logical_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/operational_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/use_case_view.sysml +29 -0
- package/src/viewpoints/physical/network_topology_view.sysml +29 -0
- package/src/viewpoints/physical/physical_bom_view.sysml +29 -0
- package/src/viewpoints/physical/physical_viewpoint.sysml +25 -0
- package/src/viewpoints/requirements/requirements_traceability_view.sysml +29 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +25 -0
- package/src/viewpoints/risk/risk_chain_view.sysml +30 -0
- package/src/viewpoints/risk/risk_viewpoint.sysml +25 -0
- package/src/viewpoints/software/software_architecture_view.sysml +29 -0
- package/src/viewpoints/software/software_viewpoint.sysml +25 -0
- package/src/viewpoints/usability/usability_engineering_view.sysml +13 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +25 -0
- package/src/viewpoints/verification/verification_coverage_view.sysml +29 -0
- package/src/viewpoints/verification/verification_viewpoint.sysml +25 -0
- package/template/memo.package.yaml +5 -0
- package/template/src/catalog/starter.sysml +12 -0
- package/template/src/documents/.gitkeep +1 -0
- package/template/src/views/.gitkeep +1 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: change-control
|
|
3
|
+
title: Software Change Control Log
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["6"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Purpose
|
|
14
|
+
|
|
15
|
+
This log documents all changes to **{{project.product}}** software, including the change description, impact assessment, and approval per IEC 62304:2006 §6.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 2. Change Log
|
|
20
|
+
|
|
21
|
+
Record each change with its identifier, description, affected items, and verification status:
|
|
22
|
+
|
|
23
|
+
| Change ID | Date | Version | Description | Impact Assessment | Approved By |
|
|
24
|
+
| --- | --- | --- | --- | --- | --- |
|
|
25
|
+
| CHG-001 | | 1.0.0 | Initial release | N/A | |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 3. Change Procedure
|
|
30
|
+
|
|
31
|
+
All changes must:
|
|
32
|
+
1. Be requested via the change request process
|
|
33
|
+
2. Have an impact assessment (safety, requirements, design, test)
|
|
34
|
+
3. Be approved prior to implementation
|
|
35
|
+
4. Be verified and validated after implementation
|
|
36
|
+
5. Be documented in this log
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: detailed-design
|
|
3
|
+
title: Software Detailed Design
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.4"]
|
|
6
|
+
required_for: ["CE", "FDA_510k"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This document provides detailed design specifications for **{{project.product}}** software per IEC 62304:2006 §5.4, sufficient to implement and test each software unit.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Software Units
|
|
22
|
+
|
|
23
|
+
The software units — the lowest level of decomposition per IEC 62304 — are listed below from the model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: SoftwareUnit
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No SoftwareUnit elements defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Unit Specifications
|
|
36
|
+
|
|
37
|
+
### 3.1 Algorithms and Data Structures
|
|
38
|
+
|
|
39
|
+
_[TODO: Describe key algorithms, data structures, and design patterns]_
|
|
40
|
+
|
|
41
|
+
### 3.2 State Machines
|
|
42
|
+
|
|
43
|
+
{{diagram:state-machine}}
|
|
44
|
+
|
|
45
|
+
_[TODO: Document state machine diagrams for stateful components]_
|
|
46
|
+
|
|
47
|
+
### 3.3 Interface Specifications
|
|
48
|
+
|
|
49
|
+
```memo-query
|
|
50
|
+
kind: Interface
|
|
51
|
+
display: table
|
|
52
|
+
columns: name, layer, doc
|
|
53
|
+
sort: name
|
|
54
|
+
empty: "No Interface elements defined."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 4. Design Verification Criteria
|
|
60
|
+
|
|
61
|
+
The criteria used to verify that design outputs meet design inputs:
|
|
62
|
+
|
|
63
|
+
_[TODO: List criteria that verify this design meets software requirements]_
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
68
|
+
|
|
69
|
+
{{include:shared/snippets/approval-block.md}}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: integration-test
|
|
3
|
+
title: Software Integration Test Plan
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.6"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Integration Test Plan defines the approach for integration testing of **{{project.product}}** software per IEC 62304:2006 §5.6.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Software Items Under Test
|
|
22
|
+
|
|
23
|
+
The software items in scope for this test plan, drawn from the model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: [SoftwareItem, SoftwareUnit]
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, kind, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No software items defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Integration Test Cases
|
|
36
|
+
|
|
37
|
+
Integration test cases are listed below from the model:
|
|
38
|
+
|
|
39
|
+
```memo-query
|
|
40
|
+
kind: TestCase
|
|
41
|
+
where: layer == "verification"
|
|
42
|
+
display: table
|
|
43
|
+
columns: name, layer, doc
|
|
44
|
+
sort: name
|
|
45
|
+
empty: "No integration test cases defined. Add TestCase elements."
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 4. Integration Sequence
|
|
51
|
+
|
|
52
|
+
Describe the order in which software items are integrated and tested, and the rationale for that order.
|
|
53
|
+
|
|
54
|
+
_[TODO: Define the order in which software items are integrated and tested]_
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 5. Pass/Fail Criteria
|
|
59
|
+
|
|
60
|
+
State the objective criteria used to judge each test as passed or failed.
|
|
61
|
+
|
|
62
|
+
_[TODO: Define objective pass/fail criteria for integration tests]_
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
67
|
+
|
|
68
|
+
{{include:shared/snippets/approval-block.md}}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sad
|
|
3
|
+
title: Software Architecture Description
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.3"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Software Architecture Description (SAD) defines the architecture of **{{project.product}}** software per IEC 62304:2006 §5.3 and ISO/IEC/IEEE 42010:2022.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. System Overview
|
|
22
|
+
|
|
23
|
+
This section gives a high-level overview of the **{{project.product}}** software system. The composition below is drawn live from the architecture model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: SoftwareSystem
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No SoftwareSystem defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Total elements:**
|
|
34
|
+
|
|
35
|
+
```memo-query
|
|
36
|
+
kind: [SoftwareSystem, SoftwareItem, SoftwareUnit, SOUPComponent]
|
|
37
|
+
display: count
|
|
38
|
+
label: Total software elements
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. Software Architecture
|
|
44
|
+
|
|
45
|
+
This section describes the decomposition of the software into software items per IEC 62304 §5.3.1. The architecture view and the element tables that follow are generated from the model:
|
|
46
|
+
|
|
47
|
+
{{diagram:software-architecture}}
|
|
48
|
+
|
|
49
|
+
### 3.1 Software Items
|
|
50
|
+
|
|
51
|
+
```memo-query
|
|
52
|
+
kind: SoftwareItem
|
|
53
|
+
display: table
|
|
54
|
+
columns: name, layer, doc
|
|
55
|
+
sort: name
|
|
56
|
+
empty: "No SoftwareItem elements defined."
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 3.2 Software Units
|
|
60
|
+
|
|
61
|
+
```memo-query
|
|
62
|
+
kind: SoftwareUnit
|
|
63
|
+
display: table
|
|
64
|
+
columns: name, layer, doc
|
|
65
|
+
sort: name
|
|
66
|
+
empty: "No SoftwareUnit elements defined."
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3.3 Interfaces
|
|
70
|
+
|
|
71
|
+
```memo-query
|
|
72
|
+
kind: Interface
|
|
73
|
+
display: table
|
|
74
|
+
columns: name, layer, doc
|
|
75
|
+
sort: name
|
|
76
|
+
empty: "No Interface elements defined."
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 4. SOUP Components
|
|
82
|
+
|
|
83
|
+
Software of Unknown Provenance (SOUP) used by **{{project.product}}** is listed below per IEC 62304 §5.3.3–5.3.4. For each SOUP item, functional/performance requirements and required hardware/software must be specified:
|
|
84
|
+
|
|
85
|
+
```memo-query
|
|
86
|
+
kind: SOUPComponent
|
|
87
|
+
display: table
|
|
88
|
+
columns: name, doc, layer
|
|
89
|
+
sort: name
|
|
90
|
+
empty: "No SOUP components identified."
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Architecture Decisions
|
|
96
|
+
|
|
97
|
+
Record the significant architecture decisions, the alternatives considered, and the rationale — including decisions driven by risk control measures (ISO 14971) or cybersecurity considerations.
|
|
98
|
+
|
|
99
|
+
_[TODO: Document key architecture decisions and their rationale]_
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 6. Software Item Segregation
|
|
104
|
+
|
|
105
|
+
Describe the segregation between software items that is necessary for risk control per IEC 62304 §5.3.5, and the rationale for the integrity of each segregation boundary.
|
|
106
|
+
|
|
107
|
+
_[TODO: Describe how safety-critical software items are segregated from non-safety-critical items]_
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
112
|
+
|
|
113
|
+
{{include:shared/snippets/approval-block.md}}
|
|
114
|
+
|
|
115
|
+
{{include:shared/snippets/references-section.md}}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sbom
|
|
3
|
+
title: Software Bill of Materials (SBOM)
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["8.1.2"]
|
|
6
|
+
required_for: ["FDA_510k", "FDA_PMA", "CE"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Software Bill of Materials (SBOM) provides a complete inventory of software components in **{{project.product}}**, including first-party code, SOUP, and open-source dependencies. Required for FDA cybersecurity submissions and EU MDR.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. First-Party Software
|
|
22
|
+
|
|
23
|
+
Software developed in-house for this system is listed below from the model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: [SoftwareSystem, SoftwareItem, SoftwareUnit]
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, kind, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No first-party software items defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. SOUP and Third-Party Components
|
|
36
|
+
|
|
37
|
+
All third-party and SOUP components with their versions and origins, generated from the model:
|
|
38
|
+
|
|
39
|
+
```memo-query
|
|
40
|
+
kind: SOUPComponent
|
|
41
|
+
display: table
|
|
42
|
+
columns: name, doc, layer
|
|
43
|
+
sort: name
|
|
44
|
+
empty: "No SOUP components defined."
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 4. Dependency Versions
|
|
50
|
+
|
|
51
|
+
Exact component versions currently recorded in the model — keep these synchronized with the build system:
|
|
52
|
+
|
|
53
|
+
_[TODO: Attach machine-readable SBOM (CycloneDX or SPDX format)]_
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 5. Vulnerability Assessment
|
|
58
|
+
|
|
59
|
+
Assessment of component vulnerabilities and their disposition:
|
|
60
|
+
|
|
61
|
+
_[TODO: Reference FDA cybersecurity submission or security assessment]_
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
66
|
+
|
|
67
|
+
{{include:shared/snippets/approval-block.md}}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sdp
|
|
3
|
+
title: Software Development Plan
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.1"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose and Scope
|
|
16
|
+
|
|
17
|
+
This Software Development Plan (SDP) defines the processes, activities, and tasks for the development of software for **{{project.product}}**. This plan is maintained per IEC 62304:2006 §5.1.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Software Classification
|
|
22
|
+
|
|
23
|
+
<!-- [GUIDANCE] Classify software per IEC 62304 §4.3: Class A (no injury), Class B (non-serious injury), Class C (death or serious injury). -->
|
|
24
|
+
|
|
25
|
+
| Software Item | Classification | Justification |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| {{project.product}} Software System | Class B | |
|
|
28
|
+
|
|
29
|
+
```memo-query
|
|
30
|
+
kind: [SoftwareSystem, SoftwareItem]
|
|
31
|
+
display: table
|
|
32
|
+
columns: name, kind, layer, doc
|
|
33
|
+
sort: name
|
|
34
|
+
empty: "No software items defined. Add SoftwareSystem or SoftwareItem elements."
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 3. Development Standards and Procedures
|
|
40
|
+
|
|
41
|
+
Identify the coding standards, review procedures, and quality gates applied during development.
|
|
42
|
+
|
|
43
|
+
| Activity | Standard | Reference Procedure |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| Requirements | IEC 62304 §5.2 | SRS |
|
|
46
|
+
| Architecture | IEC 62304 §5.3 | SAD |
|
|
47
|
+
| Detailed Design | IEC 62304 §5.4 | SDS |
|
|
48
|
+
| Implementation | IEC 62304 §5.5 | Coding standard |
|
|
49
|
+
| Integration | IEC 62304 §5.6 | Integration Test Plan |
|
|
50
|
+
| System Testing | IEC 62304 §5.7 | System Test Plan |
|
|
51
|
+
| Release | IEC 62304 §5.8 | Release procedure |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 4. Software Safety Activities
|
|
56
|
+
|
|
57
|
+
### 4.1 Software Items of Unknown Provenance (SOUP)
|
|
58
|
+
|
|
59
|
+
```memo-query
|
|
60
|
+
kind: SOUPComponent
|
|
61
|
+
display: table
|
|
62
|
+
columns: name, doc, layer
|
|
63
|
+
sort: name
|
|
64
|
+
empty: "No SOUP components defined."
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 4.2 Software-Related Hazards
|
|
68
|
+
|
|
69
|
+
```memo-query
|
|
70
|
+
kind: Hazard
|
|
71
|
+
where: layer == "software"
|
|
72
|
+
display: table
|
|
73
|
+
columns: name, doc, layer
|
|
74
|
+
sort: name
|
|
75
|
+
empty: "No software-related hazards defined."
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 5. Configuration Management
|
|
81
|
+
|
|
82
|
+
Describe how configuration items are identified, versioned, and controlled per IEC 62304 §8.
|
|
83
|
+
|
|
84
|
+
_[TODO: Describe version control, branching strategy, and release process]_
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 6. Problem Resolution
|
|
89
|
+
|
|
90
|
+
Describe the problem resolution process per IEC 62304 §9, including how problems are reported, investigated, and tracked to closure.
|
|
91
|
+
|
|
92
|
+
_[TODO: Describe defect tracking and resolution process]_
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 7. Development Environment
|
|
97
|
+
|
|
98
|
+
Describe the toolchain, languages, build system, and environments used for development.
|
|
99
|
+
|
|
100
|
+
_[TODO: List development tools, compilers, IDEs, and their versions]_
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
105
|
+
|
|
106
|
+
{{include:shared/snippets/approval-block.md}}
|
|
107
|
+
|
|
108
|
+
{{include:shared/snippets/references-section.md}}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: soup
|
|
3
|
+
title: SOUP List (Software of Unknown Provenance)
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["8.1.2"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This document lists all Software of Unknown Provenance (SOUP) components used in **{{project.product}}** per IEC 62304:2006 §8.1.2. SOUP includes off-the-shelf software, open-source libraries, and third-party components that were not developed under a quality management system.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. SOUP Inventory
|
|
22
|
+
|
|
23
|
+
The complete inventory of SOUP and third-party components in **{{project.product}}**, generated from the model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: SOUPComponent
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No SOUP components defined. Add SOUPComponent elements to the model."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. SOUP Risk Assessment
|
|
36
|
+
|
|
37
|
+
For each SOUP component, the potential impact on device safety must be evaluated.
|
|
38
|
+
|
|
39
|
+
```memo-query
|
|
40
|
+
kind: SOUPComponent
|
|
41
|
+
display: table
|
|
42
|
+
columns: name, doc
|
|
43
|
+
sort: name
|
|
44
|
+
empty: "No SOUP components to evaluate."
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3.1 Known Anomalies
|
|
48
|
+
|
|
49
|
+
_[TODO: For each SOUP component, list known anomalies and assess impact on safety]_
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 4. SOUP Maintenance
|
|
54
|
+
|
|
55
|
+
### 4.1 Update Monitoring
|
|
56
|
+
|
|
57
|
+
_[TODO: Describe the process for monitoring SOUP components for security patches and updates]_
|
|
58
|
+
|
|
59
|
+
### 4.2 Version Pinning
|
|
60
|
+
|
|
61
|
+
_[TODO: Describe how SOUP versions are pinned in configuration management]_
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 5. SBOM Integration
|
|
66
|
+
|
|
67
|
+
Describe how this document relates to the machine-readable SBOM (e.g. SPDX/CycloneDX) produced by the build pipeline.
|
|
68
|
+
|
|
69
|
+
_[TODO: Reference Software Bill of Materials (SBOM) for FDA cybersecurity requirements]_
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
74
|
+
|
|
75
|
+
{{include:shared/snippets/approval-block.md}}
|
|
76
|
+
|
|
77
|
+
{{include:shared/snippets/references-section.md}}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: srs
|
|
3
|
+
title: Software Requirements Specification
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.2"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Software Requirements Specification (SRS) defines the software requirements for **{{project.product}}** in accordance with IEC 62304:2006 §5.2.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Requirements Summary
|
|
22
|
+
|
|
23
|
+
Summary metrics for the requirements captured in the model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: Requirement
|
|
27
|
+
display: count
|
|
28
|
+
label: Total software requirements
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```memo-query
|
|
32
|
+
kind: Requirement
|
|
33
|
+
display: count
|
|
34
|
+
label: System requirements
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 3. Functional Requirements
|
|
40
|
+
|
|
41
|
+
Functional requirements are listed below from the model:
|
|
42
|
+
|
|
43
|
+
```memo-query
|
|
44
|
+
kind: Requirement
|
|
45
|
+
where: doc contains "shall"
|
|
46
|
+
display: table
|
|
47
|
+
columns: name, layer, doc
|
|
48
|
+
sort: name
|
|
49
|
+
empty: "No functional software requirements defined."
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### All Software Requirements
|
|
53
|
+
|
|
54
|
+
```memo-query
|
|
55
|
+
kind: Requirement
|
|
56
|
+
display: table
|
|
57
|
+
columns: name, kind, layer, doc
|
|
58
|
+
sort: name
|
|
59
|
+
empty: "No software requirements defined. Add Requirement elements to model/requirements/*.sysml."
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 4. System Requirements (Allocated to Software)
|
|
65
|
+
|
|
66
|
+
System requirements allocated to software per IEC 62304 §5.2, drawn from the model:
|
|
67
|
+
|
|
68
|
+
```memo-query
|
|
69
|
+
kind: Requirement
|
|
70
|
+
display: table
|
|
71
|
+
columns: name, layer, doc
|
|
72
|
+
sort: name
|
|
73
|
+
empty: "No system requirements defined."
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 5. Non-Functional Requirements
|
|
79
|
+
|
|
80
|
+
### 5.1 Performance Requirements
|
|
81
|
+
|
|
82
|
+
_[TODO: Define performance requirements (response time, throughput, memory)]_
|
|
83
|
+
|
|
84
|
+
### 5.2 Safety Requirements
|
|
85
|
+
|
|
86
|
+
```memo-query
|
|
87
|
+
kind: Hazard
|
|
88
|
+
where: layer == "software"
|
|
89
|
+
display: table
|
|
90
|
+
columns: name, doc
|
|
91
|
+
sort: name
|
|
92
|
+
empty: "No software safety requirements derived from hazard analysis."
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 5.3 Security Requirements
|
|
96
|
+
|
|
97
|
+
```memo-query
|
|
98
|
+
kind: [SecurityControl, ThreatModel]
|
|
99
|
+
display: table
|
|
100
|
+
columns: name, layer, doc
|
|
101
|
+
empty: "No security requirements defined."
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 6. SOUP Requirements
|
|
107
|
+
|
|
108
|
+
This section is generated from the system model. The table below lists the **SOUP Requirements** elements currently defined:
|
|
109
|
+
|
|
110
|
+
```memo-query
|
|
111
|
+
kind: SOUPComponent
|
|
112
|
+
display: table
|
|
113
|
+
columns: name, doc
|
|
114
|
+
sort: name
|
|
115
|
+
empty: "No SOUP components identified."
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 7. Requirements Traceability
|
|
121
|
+
|
|
122
|
+
This section is generated from the system model. The table below lists the **Requirements Traceability** elements currently defined:
|
|
123
|
+
|
|
124
|
+
```memo-query
|
|
125
|
+
kind: Requirement
|
|
126
|
+
display: table
|
|
127
|
+
columns: name, layer
|
|
128
|
+
sort: name
|
|
129
|
+
empty: "No software requirements to trace."
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
135
|
+
|
|
136
|
+
{{include:shared/snippets/approval-block.md}}
|
|
137
|
+
|
|
138
|
+
{{include:shared/snippets/references-section.md}}
|