@neobiotechlabs/neobiotech-dev-agent 0.1.7
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/.claude-plugin/marketplace.json +22 -0
- package/.claude-plugin/plugin.json +58 -0
- package/.mcp.json +14 -0
- package/README.md +442 -0
- package/dist/__tests__/adf.test.d.ts +1 -0
- package/dist/__tests__/adf.test.js +68 -0
- package/dist/__tests__/adf.test.js.map +1 -0
- package/dist/__tests__/annex-ii-template.test.d.ts +1 -0
- package/dist/__tests__/annex-ii-template.test.js +39 -0
- package/dist/__tests__/annex-ii-template.test.js.map +1 -0
- package/dist/__tests__/doc-render.test.d.ts +1 -0
- package/dist/__tests__/doc-render.test.js +93 -0
- package/dist/__tests__/doc-render.test.js.map +1 -0
- package/dist/__tests__/help.test.d.ts +1 -0
- package/dist/__tests__/help.test.js +31 -0
- package/dist/__tests__/help.test.js.map +1 -0
- package/dist/__tests__/jira-fields.test.d.ts +1 -0
- package/dist/__tests__/jira-fields.test.js +81 -0
- package/dist/__tests__/jira-fields.test.js.map +1 -0
- package/dist/__tests__/plugin-manifest.test.d.ts +1 -0
- package/dist/__tests__/plugin-manifest.test.js +91 -0
- package/dist/__tests__/plugin-manifest.test.js.map +1 -0
- package/dist/__tests__/setup.test.d.ts +1 -0
- package/dist/__tests__/setup.test.js +7 -0
- package/dist/__tests__/setup.test.js.map +1 -0
- package/dist/__tests__/sync-version.test.d.ts +1 -0
- package/dist/__tests__/sync-version.test.js +37 -0
- package/dist/__tests__/sync-version.test.js.map +1 -0
- package/dist/clients/risk-client.d.ts +17 -0
- package/dist/clients/risk-client.js +54 -0
- package/dist/clients/risk-client.js.map +1 -0
- package/dist/clients/xray-client.d.ts +34 -0
- package/dist/clients/xray-client.js +127 -0
- package/dist/clients/xray-client.js.map +1 -0
- package/dist/config/project-config.d.ts +14 -0
- package/dist/config/project-config.js +45 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/confluence-client.d.ts +16 -0
- package/dist/confluence-client.js +97 -0
- package/dist/confluence-client.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/jira-client.d.ts +35 -0
- package/dist/jira-client.js +119 -0
- package/dist/jira-client.js.map +1 -0
- package/dist/tools/annex-ii-template.d.ts +30 -0
- package/dist/tools/annex-ii-template.js +129 -0
- package/dist/tools/annex-ii-template.js.map +1 -0
- package/dist/tools/confluence.d.ts +2 -0
- package/dist/tools/confluence.js +54 -0
- package/dist/tools/confluence.js.map +1 -0
- package/dist/tools/cvss.d.ts +2 -0
- package/dist/tools/cvss.js +59 -0
- package/dist/tools/cvss.js.map +1 -0
- package/dist/tools/doc-render.d.ts +2 -0
- package/dist/tools/doc-render.js +96 -0
- package/dist/tools/doc-render.js.map +1 -0
- package/dist/tools/doc-validation.d.ts +2 -0
- package/dist/tools/doc-validation.js +221 -0
- package/dist/tools/doc-validation.js.map +1 -0
- package/dist/tools/help-data.d.ts +7 -0
- package/dist/tools/help-data.js +144 -0
- package/dist/tools/help-data.js.map +1 -0
- package/dist/tools/help.d.ts +2 -0
- package/dist/tools/help.js +39 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/iec.d.ts +2 -0
- package/dist/tools/iec.js +203 -0
- package/dist/tools/iec.js.map +1 -0
- package/dist/tools/init.d.ts +2 -0
- package/dist/tools/init.js +38 -0
- package/dist/tools/init.js.map +1 -0
- package/dist/tools/jira-crud.d.ts +2 -0
- package/dist/tools/jira-crud.js +142 -0
- package/dist/tools/jira-crud.js.map +1 -0
- package/dist/tools/risk.d.ts +2 -0
- package/dist/tools/risk.js +172 -0
- package/dist/tools/risk.js.map +1 -0
- package/dist/tools/traceability.d.ts +2 -0
- package/dist/tools/traceability.js +85 -0
- package/dist/tools/traceability.js.map +1 -0
- package/dist/tools/types.d.ts +13 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/usability.d.ts +2 -0
- package/dist/tools/usability.js +149 -0
- package/dist/tools/usability.js.map +1 -0
- package/dist/tools/xray.d.ts +2 -0
- package/dist/tools/xray.js +35 -0
- package/dist/tools/xray.js.map +1 -0
- package/dist/utils/adf.d.ts +27 -0
- package/dist/utils/adf.js +104 -0
- package/dist/utils/adf.js.map +1 -0
- package/dist/utils/cvss.d.ts +15 -0
- package/dist/utils/cvss.js +86 -0
- package/dist/utils/cvss.js.map +1 -0
- package/dist/utils/doc-render.d.ts +28 -0
- package/dist/utils/doc-render.js +50 -0
- package/dist/utils/doc-render.js.map +1 -0
- package/dist/utils/jira-fields.d.ts +38 -0
- package/dist/utils/jira-fields.js +53 -0
- package/dist/utils/jira-fields.js.map +1 -0
- package/dist/utils/sync-version.d.ts +2 -0
- package/dist/utils/sync-version.js +20 -0
- package/dist/utils/sync-version.js.map +1 -0
- package/package.json +49 -0
- package/skills/doc-render/SKILL.md +79 -0
- package/vendor/dev-docs-templates/templates/dev_docs/plan_template.md +104 -0
- package/vendor/dev-docs-templates/templates/dev_docs/prd_template.md +110 -0
- package/vendor/dev-docs-templates/templates/dev_docs/spec_template.md +81 -0
- package/vendor/dev-docs-templates/templates/dev_docs/tasks_template.md +122 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/checklist-clinical-evaluation.md +81 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/checklist-gspr-mdr.md +403 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/clinical-evaluation-report.md +492 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/instructions-for-use.md +132 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/literature-evaluation-table.md +15 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/mdr-declaration-of-conformity.md +75 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/post-market-clinical-follow-up-plan.md +162 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/post-market-surveillance-plan.md +175 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/risk-management-cybersecurity-checklist.md +67 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/risk-management-report.md +111 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/usability-evaluation-report.md +70 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/clinical-evaluation-plan.md +154 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/list-of-hazard-related-use-scenarios.md +34 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/risk-table-fmea.md +155 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/software-architecture-description.md +307 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/software-requirements-list.md +156 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/soup-list.md +82 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/usability-evaluation-plan.md +103 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/bug-fixes-documentation-list.md +35 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/change-evaluation-list.md +100 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/list-of-known-anomalies.md +29 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/algorithm-validation-report.md +170 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/checklist-software-release.md +52 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/checklist-software-requirements-review.md +50 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-architecture-checklist.md +41 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-detailed-design.md +321 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-system-test-plan.md +155 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/usability-evaluation-protocol.md +63 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/intended-use.md +116 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/mdr-classification-document.md +114 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/risk-management-plan.md +198 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/software-development-maintenance-plan.md +225 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/system-requirements-spec.md +182 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/information_security/information-security-controls.md +966 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/information_security/information-security-policy-and-scope.md +99 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/quality-manual-policy-objectives.md +187 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-capa.md +112 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-change-management.md +128 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-clinical-evaluation.md +102 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-feedback-management.md +140 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-integrated-software-development.md +361 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-post-market-surveillance.md +159 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-software-problem-resolution.md +99 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
# Software Architecture Description (SAD): {PRODUCT_NAME}
|
|
2
|
+
|
|
3
|
+
<!-- AI AGENT 작성 지침
|
|
4
|
+
이 문서는 IEC 62304 Cl.5.3 기반 SW 아키텍처 설계서입니다.
|
|
5
|
+
작성 전 반드시 다음 문서를 참조하세요:
|
|
6
|
+
- 시스템 요구사항 명세서(system-requirements-spec.md): 시스템 요구사항 및 안전등급 확인
|
|
7
|
+
- SOUP 리스트(soup-list.md): 외부 라이브러리 목록 확인
|
|
8
|
+
- 위험 관리 계획서(risk-management-plan.md): 위험 통제 관련 아키텍처 결정 반영
|
|
9
|
+
|
|
10
|
+
작성 지침:
|
|
11
|
+
1. 모든 SW 아이템은 고유 식별자를 부여하세요 (예: ITEM-001)
|
|
12
|
+
2. 안전 등급(Class A/B/C)을 아이템마다 명시하세요
|
|
13
|
+
3. SOUP는 반드시 격리 전략을 기술하세요 (IEC 62304 Cl.5.3.5)
|
|
14
|
+
4. 다이어그램은 아래 PlantUML 지침에 따라 작성하세요
|
|
15
|
+
5. 보안 아키텍처 섹션을 반드시 채워주세요 (MDR Annex I 17.2)
|
|
16
|
+
|
|
17
|
+
PlantUML 다이어그램 작성 지침:
|
|
18
|
+
- 컴포넌트 다이어그램: SW 아이템 간 관계 표현 -> 섹션 2.3에 작성
|
|
19
|
+
- 시퀀스 다이어그램: 주요 데이터 흐름 표현 -> 섹션 4에 작성
|
|
20
|
+
- 배포 다이어그램: 실행 환경 구성 표현 -> 섹션 5에 작성
|
|
21
|
+
|
|
22
|
+
PlantUML 문법 예시 (```plantuml ... ``` 블록 사용):
|
|
23
|
+
```
|
|
24
|
+
@startuml Component_Overview
|
|
25
|
+
package "Medical Device Software" {
|
|
26
|
+
component [Frontend Module] as FE
|
|
27
|
+
component [Backend Module] as BE
|
|
28
|
+
component [AI Algorithm Module] as AI
|
|
29
|
+
}
|
|
30
|
+
FE --> BE : REST API
|
|
31
|
+
BE --> AI : Internal Call
|
|
32
|
+
@enduml
|
|
33
|
+
```
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
**문서 번호**: {DOC_ID}
|
|
37
|
+
**버전**: {VERSION} | **상태**: Draft
|
|
38
|
+
**작성일**: {DATE} | **작성자**: {AUTHOR}
|
|
39
|
+
**검토자**: {REVIEWER} | **승인자**: {APPROVER}
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 표준 요건 매핑 (Standard Requirements Mapping)
|
|
44
|
+
|
|
45
|
+
| IEC 62304 조항 | 제목 | 해당 섹션 | Class |
|
|
46
|
+
| ------------------ | ---------------------------- | -------------------------- | ----- |
|
|
47
|
+
| Cl. 5.3.1 | SW 아키텍처 변환 | 2. SW 시스템 구조 | B, C |
|
|
48
|
+
| Cl. 5.3.2 | SW 아이템 간 인터페이스 정의 | 3. 인터페이스 정의 | B, C |
|
|
49
|
+
| Cl. 5.3.3 | 공개된 알려진 이상 식별 | 2. SW 시스템 구조 | B, C |
|
|
50
|
+
| Cl. 5.3.4 | 추가 위험 평가 실시 | 6. 위험 관련 아키텍처 결정 | B, C |
|
|
51
|
+
| Cl. 5.3.5 | SOUP 소프트웨어 아이템 격리 | 5. SOUP 격리 전략 | B, C |
|
|
52
|
+
| Cl. 5.3.6 | 형상 항목 식별 | 7. 형상 항목 목록 | B, C |
|
|
53
|
+
| MDR Annex II 3.(c) | 설계 및 제조 정보 | 전체 | - |
|
|
54
|
+
| MDR Annex I 17.2 | IT 보안 고려 | 4. 보안 아키텍처 | - |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 1. 개요 (Overview)
|
|
59
|
+
|
|
60
|
+
### 1.1 목적
|
|
61
|
+
|
|
62
|
+
이 문서는 {PRODUCT_NAME}의 SW 아키텍처를 정의한다.
|
|
63
|
+
IEC 62304의 안전 등급 결정에 따라 SW 시스템을 아이템(Item) 단위로 분해하고, 아이템 간 인터페이스 및 SOUP 격리 전략을 명시한다.
|
|
64
|
+
|
|
65
|
+
### 1.2 연관 문서
|
|
66
|
+
|
|
67
|
+
| 문서명 | 문서 ID | 비고 |
|
|
68
|
+
| ---------------------- | --------------- | -------------------- |
|
|
69
|
+
| 시스템 요구사항 명세서 | {SRS_DOC_ID} | 아키텍처의 입력 |
|
|
70
|
+
| SW 요구사항 명세서 | {SRS_SW_DOC_ID} | 기능 요구사항 출처 |
|
|
71
|
+
| 위험 관리 계획서 | {RMP_DOC_ID} | 위험 통제 조치 반영 |
|
|
72
|
+
| SOUP 리스트 | {SOUP_DOC_ID} | 외부 라이브러리 목록 |
|
|
73
|
+
|
|
74
|
+
### 1.3 SW 안전 등급 요약
|
|
75
|
+
|
|
76
|
+
<!-- AI AGENT: 시스템 요구사항 명세서의 등급 분류 결과를 옮겨 기재하세요 -->
|
|
77
|
+
|
|
78
|
+
| SW 아이템 | IEC 62304 등급 | 근거 |
|
|
79
|
+
| ------------- | -------------- | ----------- |
|
|
80
|
+
| {ITEM_1_NAME} | Class {A/B/C} | {RATIONALE} |
|
|
81
|
+
| {ITEM_2_NAME} | Class {A/B/C} | {RATIONALE} |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 2. SW 시스템 구조 (SW System Architecture)
|
|
86
|
+
|
|
87
|
+
> IEC 62304 Cl.5.3.1: SW 시스템을 SW 아이템으로 분해하고 각각의 기능, 인터페이스, 안전 등급을 정의해야 함
|
|
88
|
+
|
|
89
|
+
### 2.1 전체 구조 요약
|
|
90
|
+
|
|
91
|
+
<!-- AI AGENT: 제품의 주요 SW 아이템을 나열하고 각각의 역할을 간략히 기술하세요
|
|
92
|
+
예시:
|
|
93
|
+
- Frontend (ITEM-001): 사용자 인터페이스, 웹 브라우저 기반
|
|
94
|
+
- Backend API (ITEM-002): 비즈니스 로직 처리, REST API 제공
|
|
95
|
+
- AI/ML 추론 모듈 (ITEM-003): 진단 보조 알고리즘 실행
|
|
96
|
+
- 데이터베이스 (ITEM-004): 환자 데이터 영구 저장
|
|
97
|
+
-->
|
|
98
|
+
|
|
99
|
+
{ARCHITECTURE_SUMMARY}
|
|
100
|
+
|
|
101
|
+
### 2.2 SW 아이템 목록
|
|
102
|
+
|
|
103
|
+
| 아이템 ID | 아이템 명 | 기능 설명 | 안전 등급 | 기술 스택 | 배포 방식 |
|
|
104
|
+
| --------- | ------------- | ----------------- | ------------- | ------------ | ------------ |
|
|
105
|
+
| ITEM-001 | {ITEM_1_NAME} | {ITEM_1_FUNCTION} | Class {CLASS} | {TECH_STACK} | {DEPLOYMENT} |
|
|
106
|
+
| ITEM-002 | {ITEM_2_NAME} | {ITEM_2_FUNCTION} | Class {CLASS} | {TECH_STACK} | {DEPLOYMENT} |
|
|
107
|
+
|
|
108
|
+
### 2.3 컴포넌트 다이어그램
|
|
109
|
+
|
|
110
|
+
<!-- AI AGENT: 아래 PlantUML 블록 안에 SW 아이템 간 관계를 컴포넌트 다이어그램으로 작성하세요
|
|
111
|
+
IEC 62304 Cl.5.3.1 요구: SW 아이템 간 관계 및 인터페이스를 시각적으로 정의해야 함
|
|
112
|
+
|
|
113
|
+
지침:
|
|
114
|
+
- 각 SW 아이템은 component 또는 package로 표현
|
|
115
|
+
- 아이템 간 통신 방향과 프로토콜을 화살표에 명시
|
|
116
|
+
- SOUP는 별도 영역(package)으로 표현하여 격리 관계를 명시
|
|
117
|
+
- 외부 시스템(HW, 외부 서비스)은 actor 또는 boundary로 표현
|
|
118
|
+
|
|
119
|
+
예시: -->
|
|
120
|
+
|
|
121
|
+
```plantuml
|
|
122
|
+
@startuml SAD_Component
|
|
123
|
+
skinparam componentStyle rectangle
|
|
124
|
+
|
|
125
|
+
package "Medical Device Software (IEC 62304)" {
|
|
126
|
+
component [Frontend\nITEM-001\nClass B] as FE #LightBlue
|
|
127
|
+
component [Backend API\nITEM-002\nClass B] as BE #LightGreen
|
|
128
|
+
component [AI Algorithm\nITEM-003\nClass C] as AI #Orange
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
package "SOUP (외부 라이브러리)" {
|
|
132
|
+
component [React v18\n(SOUP-001)] as REACT
|
|
133
|
+
component [PyTorch v2\n(SOUP-002)] as TORCH
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
actor "Healthcare User" as USER
|
|
137
|
+
actor "EHR System" as EHR
|
|
138
|
+
|
|
139
|
+
USER --> FE : HTTPS
|
|
140
|
+
FE --> BE : REST API (JSON)
|
|
141
|
+
BE --> AI : Internal gRPC
|
|
142
|
+
BE --> EHR : HL7 FHIR
|
|
143
|
+
|
|
144
|
+
FE ..> REACT : uses
|
|
145
|
+
AI ..> TORCH : uses
|
|
146
|
+
|
|
147
|
+
note right of AI
|
|
148
|
+
Class C: 진단 보조 출력
|
|
149
|
+
오분류 시 환자 위해 가능성
|
|
150
|
+
end note
|
|
151
|
+
@enduml
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 3. 인터페이스 정의 (Interface Definitions)
|
|
157
|
+
|
|
158
|
+
> IEC 62304 Cl.5.3.2: 각 SW 아이템 간 인터페이스를 명확하게 정의해야 함
|
|
159
|
+
|
|
160
|
+
### 3.1 내부 인터페이스 (Internal Interfaces)
|
|
161
|
+
|
|
162
|
+
| 인터페이스 ID | 송신 아이템 | 수신 아이템 | 프로토콜 | 데이터 형식 | 보안 요건 |
|
|
163
|
+
| ------------- | ------------------- | ------------------ | ---------- | ----------- | ------------- |
|
|
164
|
+
| INT-001 | ITEM-001 (Frontend) | ITEM-002 (Backend) | HTTPS REST | JSON | JWT 인증 필수 |
|
|
165
|
+
| INT-002 | ITEM-002 (Backend) | ITEM-003 (AI) | gRPC | Protobuf | mTLS |
|
|
166
|
+
|
|
167
|
+
### 3.2 외부 인터페이스 (External Interfaces)
|
|
168
|
+
|
|
169
|
+
<!-- AI AGENT: 외부 시스템과의 연동 규격을 기술하세요. 없으면 해당 없음으로 기재 -->
|
|
170
|
+
|
|
171
|
+
| 인터페이스 ID | 대상 시스템 | 프로토콜 | 표준 | 데이터 형식 | 비고 |
|
|
172
|
+
| ------------- | ----------------- | ---------- | ---------- | ----------- | ------ |
|
|
173
|
+
| EXT-001 | {EXTERNAL_SYSTEM} | {PROTOCOL} | {STANDARD} | {FORMAT} | {NOTE} |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 4. 보안 아키텍처 (Security Architecture)
|
|
178
|
+
|
|
179
|
+
> MDR Annex I 17.2 (IT 보안), IEC 81001-5-1 Cl.5.3
|
|
180
|
+
|
|
181
|
+
<!-- AI AGENT: 보안 아키텍처를 데이터 흐름 관점에서 기술하세요.
|
|
182
|
+
아래 항목을 반드시 포함하세요:
|
|
183
|
+
- 인증/인가 방식
|
|
184
|
+
- 데이터 암호화 (저장/전송)
|
|
185
|
+
- 네트워크 격리 방식
|
|
186
|
+
- 감사 로그 전략 -->
|
|
187
|
+
|
|
188
|
+
### 4.1 데이터 보호
|
|
189
|
+
|
|
190
|
+
| 구분 | 방식 | 표준/알고리즘 |
|
|
191
|
+
| -------------------------------- | ------------------- | ------------- |
|
|
192
|
+
| 전송 중 데이터 (Data in Transit) | TLS 1.3 | AES-256-GCM |
|
|
193
|
+
| 저장 데이터 (Data at Rest) | {ENCRYPTION_METHOD} | {ALGORITHM} |
|
|
194
|
+
| 민감 데이터 마스킹 | {MASKING_METHOD} | {STANDARD} |
|
|
195
|
+
|
|
196
|
+
### 4.2 인증 및 접근 제어
|
|
197
|
+
|
|
198
|
+
<!-- AI AGENT: RBAC/ABAC 방식, MFA 적용 여부, 세션 관리 방식을 기술하세요 -->
|
|
199
|
+
|
|
200
|
+
{AUTH_AND_ACCESS_CONTROL_DESCRIPTION}
|
|
201
|
+
|
|
202
|
+
### 4.3 보안 데이터 흐름 다이어그램
|
|
203
|
+
|
|
204
|
+
<!-- AI AGENT: 인증 흐름을 시퀀스 다이어그램으로 표현하세요
|
|
205
|
+
|
|
206
|
+
예시: -->
|
|
207
|
+
|
|
208
|
+
```plantuml
|
|
209
|
+
@startuml SAD_Security_Sequence
|
|
210
|
+
actor "User" as USER
|
|
211
|
+
participant "Frontend\n(ITEM-001)" as FE
|
|
212
|
+
participant "Auth Service\n(ITEM-002)" as AUTH
|
|
213
|
+
participant "Backend API\n(ITEM-002)" as BE
|
|
214
|
+
database "Database\n(ITEM-004)" as DB
|
|
215
|
+
|
|
216
|
+
USER -> FE : Login (ID/PW)
|
|
217
|
+
FE -> AUTH : POST /auth/login
|
|
218
|
+
AUTH -> DB : Verify credentials (hashed)
|
|
219
|
+
DB --> AUTH : User record
|
|
220
|
+
AUTH --> FE : JWT Access Token (exp: 1h)
|
|
221
|
+
FE -> BE : API Request + Bearer Token
|
|
222
|
+
BE -> AUTH : Token validation
|
|
223
|
+
AUTH --> BE : Valid (User Role: {ROLE})
|
|
224
|
+
BE --> FE : Response data (encrypted)
|
|
225
|
+
@enduml
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 5. SOUP 격리 전략 (SOUP Isolation Strategy)
|
|
231
|
+
|
|
232
|
+
> IEC 62304 Cl.5.3.5: SOUP 소프트웨어 아이템을 격리하여 잠재적 결함이 안전 기능에 미치는 영향을 최소화해야 함
|
|
233
|
+
|
|
234
|
+
<!-- AI AGENT: SOUP 리스트(soup-list.md)를 참조하여 각 SOUP의 격리 전략을 기술하세요 -->
|
|
235
|
+
|
|
236
|
+
| SOUP ID | SOUP 명 | 버전 | 사용 아이템 | 격리 방식 | 고장 시 영향 | 알려진 취약점 |
|
|
237
|
+
| -------- | ------------- | --------- | ----------- | ------------------ | ------------ | ---------------- |
|
|
238
|
+
| SOUP-001 | {SOUP_1_NAME} | {VERSION} | ITEM-001 | {ISOLATION_METHOD} | {IMPACT} | CVE 검토: {DATE} |
|
|
239
|
+
| SOUP-002 | {SOUP_2_NAME} | {VERSION} | ITEM-003 | {ISOLATION_METHOD} | {IMPACT} | CVE 검토: {DATE} |
|
|
240
|
+
|
|
241
|
+
### 5.1 배포 환경 구성도
|
|
242
|
+
|
|
243
|
+
<!-- AI AGENT: 실제 배포 환경(컨테이너, 네트워크 경계 등)을 배포 다이어그램으로 표현하세요
|
|
244
|
+
|
|
245
|
+
예시: -->
|
|
246
|
+
|
|
247
|
+
```plantuml
|
|
248
|
+
@startuml SAD_Deployment
|
|
249
|
+
node "User Device" {
|
|
250
|
+
artifact "Web Browser" as BROWSER
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
node "Cloud (VPC - Private Network)" {
|
|
254
|
+
node "API Server" {
|
|
255
|
+
artifact "Backend API\n(Docker Container)" as BE_APP
|
|
256
|
+
artifact "AI Module\n(Docker Container)" as AI_APP
|
|
257
|
+
}
|
|
258
|
+
database "Database\n(Encrypted at rest)" as DB
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
node "CDN" {
|
|
262
|
+
artifact "Frontend\n(Static Assets)" as FE
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
BROWSER --> FE : HTTPS
|
|
266
|
+
BROWSER --> BE_APP : HTTPS REST API
|
|
267
|
+
BE_APP --> AI_APP : gRPC (Internal)
|
|
268
|
+
BE_APP --> DB : TLS (Internal)
|
|
269
|
+
@enduml
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 6. 위험 관련 아키텍처 결정 (Risk-Related Architecture Decisions)
|
|
275
|
+
|
|
276
|
+
> IEC 62304 Cl.5.3.4: 아키텍처 설계 단계에서 추가 위험 평가를 수행해야 함
|
|
277
|
+
|
|
278
|
+
<!-- AI AGENT: 위험 관리 계획서(risk-management-plan.md) 및 FMEA(risk-table-fmea.md)를
|
|
279
|
+
참조하여 아키텍처 결정이 위험 통제에 기여하는 방식을 기술하세요 -->
|
|
280
|
+
|
|
281
|
+
| 위험 ID | 위험 설명 | 아키텍처 통제 결정 | 관련 아이템 |
|
|
282
|
+
| ----------- | ----------- | ------------------ | ----------- |
|
|
283
|
+
| {RISK_ID_1} | {RISK_DESC} | {ARCH_DECISION} | ITEM-{N} |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## 7. 형상 항목 목록 (Configuration Items)
|
|
288
|
+
|
|
289
|
+
> IEC 62304 Cl.5.3.6: 형상 관리 대상 SW 아이템을 식별해야 함
|
|
290
|
+
|
|
291
|
+
| 항목 ID | 항목명 | 유형 | 버전 관리 방식 | 저장소 경로 |
|
|
292
|
+
| ------- | ---------------- | ------------ | -------------------------- | ------------- |
|
|
293
|
+
| CI-001 | {ITEM_1_NAME} | 소스 코드 | Git (tag: v{VERSION}) | {REPO_PATH} |
|
|
294
|
+
| CI-002 | {ITEM_2_NAME} | Docker Image | Container Registry | {IMAGE_URL} |
|
|
295
|
+
| CI-003 | 시스템 구성 파일 | 설정 | Git (암호화된 secret 제외) | {CONFIG_PATH} |
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 8. 변경 이력 (Revision History)
|
|
300
|
+
|
|
301
|
+
| 버전 | 날짜 | 작성자 | 변경 내용 |
|
|
302
|
+
| ---- | ------ | -------- | --------- |
|
|
303
|
+
| 0.1 | {DATE} | {AUTHOR} | 초안 작성 |
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
> Template based on IEC 62304:2006/AMD1:2015 Clause 5.3, MDR 2017/745 Annex I/II, IEC 81001-5-1
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Software Requirements List (SRS): {PRODUCT_NAME}
|
|
2
|
+
|
|
3
|
+
<!-- AI AGENT 작성 지침
|
|
4
|
+
이 문서는 IEC 62304 Cl.5.2 기반 SW 요구사항 명세서입니다.
|
|
5
|
+
A/B/C 전체 등급에서 필수 산출물입니다.
|
|
6
|
+
|
|
7
|
+
작성 전 반드시 다음 문서를 참조하세요:
|
|
8
|
+
- 시스템 요구사항 명세서(system-requirements-spec.md): 시스템 요구사항 및 SRS로 분해할 항목 확인
|
|
9
|
+
- 사용 목적 정의서(intended-use.md): 의도된 사용자, 사용 환경 확인
|
|
10
|
+
- FMEA(risk-table-fmea.md): 위험 통제 조치(Risk Control Measure)가 SRS에 반영되었는지 확인
|
|
11
|
+
|
|
12
|
+
작성 지침:
|
|
13
|
+
1. 모든 요구사항에 고유 ID를 부여하세요 (예: SRS-F-001, SRS-S-001)
|
|
14
|
+
2. IEC 62304 카테고리를 정확히 분류하세요:
|
|
15
|
+
- Functional (기능 요구사항)
|
|
16
|
+
- Performance (성능 요구사항)
|
|
17
|
+
- User Interface (사용자 인터페이스)
|
|
18
|
+
- Security (보안 요구사항)
|
|
19
|
+
- Interface (외부 인터페이스)
|
|
20
|
+
- Regulatory (규제 준수 요구사항)
|
|
21
|
+
3. 보안 요구사항(IEC 81001-5-1)은 Security 카테고리로 반드시 포함하세요
|
|
22
|
+
4. 위험 통제 조치(Risk Control Measure)를 요구사항으로 추가할 때는
|
|
23
|
+
Risk Control Measure 열을 Yes로 표시하고 FMEA의 Risk ID를 연결하세요
|
|
24
|
+
5. 각 요구사항은 독립적으로 검증 가능해야 합니다 (Verifiable)
|
|
25
|
+
|
|
26
|
+
예시 요구사항 ID 체계:
|
|
27
|
+
SRS-F-001: 기능 요구사항 #001
|
|
28
|
+
SRS-P-001: 성능 요구사항 #001
|
|
29
|
+
SRS-UI-001: 사용자 인터페이스 요구사항 #001
|
|
30
|
+
SRS-S-001: 보안 요구사항 #001
|
|
31
|
+
SRS-I-001: 인터페이스 요구사항 #001
|
|
32
|
+
SRS-R-001: 규제 요구사항 #001
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
**문서 번호**: {DOC_ID}
|
|
36
|
+
**버전**: {VERSION} | **상태**: Draft
|
|
37
|
+
**작성일**: {DATE} | **작성자**: {AUTHOR}
|
|
38
|
+
**검토자**: {REVIEWER} | **승인자**: {APPROVER}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 표준 요건 매핑 (Standard Requirements Mapping)
|
|
43
|
+
|
|
44
|
+
| 표준 조항 | 제목 | 해당 섹션 | Class |
|
|
45
|
+
| -------------------- | --------------------------- | ---------------- | ------- |
|
|
46
|
+
| IEC 62304 Cl.5.2.1 | SW 요구사항 정의 | 1~3 | A, B, C |
|
|
47
|
+
| IEC 62304 Cl.5.2.2 | SW 요구사항 내용 | 1~3 | A, B, C |
|
|
48
|
+
| IEC 62304 Cl.5.2.3 | SW 요구사항 검토 | 전체 | A, B, C |
|
|
49
|
+
| IEC 62366-1 Cl.5.2 | 사용 오류 관련 UI 특성 식별 | 2. UI 요구사항 | - |
|
|
50
|
+
| IEC 62366-1 Cl.5.6 | 사용자 인터페이스 사양 | 2. UI 요구사항 | - |
|
|
51
|
+
| IEC 81001-5-1 Cl.5.2 | 보안 요구사항 | 3. 보안 요구사항 | - |
|
|
52
|
+
| MDR Annex I 17.2 | IT 보안 고려 | 3. 보안 요구사항 | - |
|
|
53
|
+
| ISO 13485 Cl.7.2.1 | 고객 관련 프로세스 | 전체 | - |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 1. 기능 및 성능 요구사항 (Functional & Performance Requirements)
|
|
58
|
+
|
|
59
|
+
<!-- AI AGENT: 시스템 요구사항 명세서의 SYS-F-xxx 항목을 SW 수준으로 분해하여 작성하세요
|
|
60
|
+
각 요구사항은 "SW는 [조건]에서 [동작]을 [기준]으로 수행해야 한다" 형식으로 작성하면 좋습니다
|
|
61
|
+
|
|
62
|
+
예시:
|
|
63
|
+
- SRS-F-001: 사용자가 로그인 후 대시보드를 요청할 경우, 시스템은 3초 이내에 결과를 반환해야 한다.
|
|
64
|
+
- SRS-P-001: 시스템은 동시 사용자 100명 이상을 처리할 수 있어야 한다. -->
|
|
65
|
+
|
|
66
|
+
| ID | SW 시스템 | 카테고리 | 요구사항 설명 | 위험 통제 조치? | 관련 Risk ID | 검증 방법 |
|
|
67
|
+
| --------- | ----------- | ----------- | --------------------------------- | --------------- | ------------ | ---------------- |
|
|
68
|
+
| SRS-F-001 | {SW_SYSTEM} | Functional | {REQ_DESC} | Yes / No | {RISK_ID} | System Test |
|
|
69
|
+
| SRS-P-001 | {SW_SYSTEM} | Performance | 시스템은 {N}초 이내 응답해야 한다 | No | - | Performance Test |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 2. 사용자 인터페이스 요구사항 (User Interface Requirements)
|
|
74
|
+
|
|
75
|
+
<!-- AI AGENT: IEC 62366-1 관점에서 사용 오류(Use Error)를 방지하는 UI 요구사항을 작성하세요
|
|
76
|
+
다음 항목을 고려하세요:
|
|
77
|
+
- 위험 관련 정보의 가시성 (색상, 크기, 위치)
|
|
78
|
+
- 사용자 확인(Confirmation) 절차가 필요한 위험 동작
|
|
79
|
+
- 오류 메시지의 명확성
|
|
80
|
+
|
|
81
|
+
예시:
|
|
82
|
+
- SRS-UI-001: 위험 등급 HIGH 결과는 빨간색 배경과 경고 아이콘으로 표시해야 한다.
|
|
83
|
+
- SRS-UI-002: 데이터 삭제 동작 전 사용자 확인(Confirmation Dialog)을 표시해야 한다. -->
|
|
84
|
+
|
|
85
|
+
| ID | SW 시스템 | 카테고리 | 요구사항 설명 | 위험 통제 조치? | 관련 Risk ID | 검증 방법 |
|
|
86
|
+
| ---------- | ----------- | -------------- | ------------- | --------------- | ------------ | -------------- |
|
|
87
|
+
| SRS-UI-001 | {SW_SYSTEM} | User Interface | {UI_REQ_DESC} | Yes / No | {RISK_ID} | Usability Test |
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. 보안 요구사항 (Security Requirements)
|
|
92
|
+
|
|
93
|
+
<!-- AI AGENT: MDR Annex I 17.2 및 IEC 81001-5-1 기준으로 사이버보안 요구사항을 작성하세요
|
|
94
|
+
다음 항목을 필수로 포함하세요:
|
|
95
|
+
- 인증 및 접근 제어
|
|
96
|
+
- 데이터 암호화 (전송/저장)
|
|
97
|
+
- 감사 로그
|
|
98
|
+
- 취약점 패치 정책
|
|
99
|
+
|
|
100
|
+
예시:
|
|
101
|
+
- SRS-S-001: 시스템은 모든 사용자 세션에 JWT 기반 인증을 적용해야 한다 (exp: 1시간).
|
|
102
|
+
- SRS-S-002: 모든 API 통신은 TLS 1.2 이상을 사용해야 한다.
|
|
103
|
+
- SRS-S-003: 로그인 실패 5회 이상 시 계정을 30분간 잠금 처리해야 한다. -->
|
|
104
|
+
|
|
105
|
+
| ID | SW 시스템 | 카테고리 | 요구사항 설명 | 위험 통제 조치? | 관련 Risk ID | 검증 방법 |
|
|
106
|
+
| --------- | ----------- | -------- | -------------------------------------------------- | --------------- | ------------ | ------------- |
|
|
107
|
+
| SRS-S-001 | All | Security | 모든 사용자 인증은 {AUTH_METHOD}을 사용해야 한다 | Yes | {RISK_ID} | Security Test |
|
|
108
|
+
| SRS-S-002 | All | Security | 모든 API 통신은 TLS 1.2 이상을 사용해야 한다 | Yes | {RISK_ID} | Security Test |
|
|
109
|
+
| SRS-S-003 | {SW_SYSTEM} | Security | 환자 데이터는 AES-256으로 암호화하여 저장해야 한다 | Yes | {RISK_ID} | Security Test |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 4. 인터페이스 요구사항 (Interface Requirements)
|
|
114
|
+
|
|
115
|
+
<!-- AI AGENT: 시스템 요구사항 명세서의 SYS-I-xxx 항목을 SW 수준으로 구체화하세요
|
|
116
|
+
외부 시스템(EHR, PACS, DICOM 서버 등)과의 연동 사양을 포함하세요 -->
|
|
117
|
+
|
|
118
|
+
| ID | SW 시스템 | 카테고리 | 요구사항 설명 | 위험 통제 조치? | 관련 Risk ID | 검증 방법 |
|
|
119
|
+
| --------- | --------- | --------- | ------------------------------------------------------- | --------------- | ------------ | ---------------- |
|
|
120
|
+
| SRS-I-001 | Backend | Interface | 시스템은 {EXTERNAL_SYSTEM}과 {PROTOCOL}로 연동해야 한다 | No | - | Integration Test |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 5. 규제 준수 요구사항 (Regulatory Compliance Requirements)
|
|
125
|
+
|
|
126
|
+
<!-- AI AGENT: MDR 및 적용 표준에서 요구하는 SW 준수 사항을 명시하세요 -->
|
|
127
|
+
|
|
128
|
+
| ID | SW 시스템 | 카테고리 | 요구사항 설명 | 근거 표준 | 검증 방법 |
|
|
129
|
+
| --------- | --------- | ---------- | -------------------------------------------------------- | --------- | --------------- |
|
|
130
|
+
| SRS-R-001 | All | Regulatory | SW는 IEC 62304:2006/AMD1:2015를 준수하여 개발되어야 한다 | IEC 62304 | Document Review |
|
|
131
|
+
| SRS-R-002 | All | Regulatory | SW는 ISO 14971:2019에 따른 위험 관리를 수행해야 한다 | ISO 14971 | Document Review |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 6. 추적성 (Traceability)
|
|
136
|
+
|
|
137
|
+
이 문서의 요구사항은 다음 문서와 연결된다:
|
|
138
|
+
|
|
139
|
+
| 연결 방향 | 연결 문서 |
|
|
140
|
+
| ----------------- | --------------------------------------------------------- |
|
|
141
|
+
| 입력 (Input from) | 시스템 요구사항 명세서 (system-requirements-spec.md) |
|
|
142
|
+
| 입력 (Input from) | FMEA 위험 통제 조치 (risk-table-fmea.md) |
|
|
143
|
+
| 출력 (Input for) | SW 아키텍처 설계서 (software-architecture-description.md) |
|
|
144
|
+
| 출력 (Input for) | 시스템 테스트 계획서 (software-system-test-plan.md) |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 7. 변경 이력 (Revision History)
|
|
149
|
+
|
|
150
|
+
| 버전 | 날짜 | 작성자 | 변경 내용 |
|
|
151
|
+
| ---- | ------ | -------- | --------- |
|
|
152
|
+
| 0.1 | {DATE} | {AUTHOR} | 초안 작성 |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
> Template based on IEC 62304:2006/AMD1:2015 Clausee 5.2, IEC 81001-5-1, MDR 2017/745 Annex I
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# SOUP List (Software of Unknown Provenance)
|
|
2
|
+
|
|
3
|
+
<!-- AI AGENT 작성 지침
|
|
4
|
+
이 문서는 IEC 62304 Cl.8.1.2 기반 SOUP 목록입니다. EA 단계에서 초안 작성 후 매 Sprint 업데이트합니다.
|
|
5
|
+
|
|
6
|
+
작성 전 반드시 다음 문서를 참조하세요:
|
|
7
|
+
- SW 아키텍처 설계서(software-architecture-description.md): SOUP 격리 전략 확인
|
|
8
|
+
- 프로젝트 requirements.txt / package.json: 실제 사용 라이브러리 목록 확인
|
|
9
|
+
|
|
10
|
+
작성 지침:
|
|
11
|
+
1. SOUP ID 체계: SOUP-{N:3d} (예: SOUP-001)
|
|
12
|
+
2. 프로젝트에서 실제 사용하는 모든 서드파티 라이브러리/프레임워크를 포함하세요
|
|
13
|
+
(직접 의존성 + 주요 간접 의존성)
|
|
14
|
+
3. 위험 등급 판단 기준:
|
|
15
|
+
- Low: 고장 시 환자 위해 없음 (로깅, UI 유틸리티 등)
|
|
16
|
+
- Medium: 고장 시 가역적 위해 가능 (데이터 처리 라이브러리 등)
|
|
17
|
+
- High: 고장 시 비가역적 위해 가능 (인증, 암호화, 진단 알고리즘 라이브러리 등)
|
|
18
|
+
4. CVE 취약점은 최소 6개월마다 검토하고 "Last verified at" 날짜를 업데이트하세요
|
|
19
|
+
(SOP Integrated Software Development 참조)
|
|
20
|
+
5. IEC 81001-5-1 관점: 보안 관련 SOUP(인증, 암호화 등)는 Known Anomalies를 반드시 확인하세요
|
|
21
|
+
|
|
22
|
+
SOUP 추가 체크리스트 (신규 추가 시):
|
|
23
|
+
[ ] 버전 고정 (pinned version) 여부 확인
|
|
24
|
+
[ ] CVE 데이터베이스 조회 (https://nvd.nist.gov)
|
|
25
|
+
[ ] 라이선스 호환성 확인
|
|
26
|
+
[ ] SBOM(Software Bill of Materials) 업데이트
|
|
27
|
+
[ ] SAD의 SOUP 격리 전략 섹션에 반영
|
|
28
|
+
-->
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
> The 62304 requires you to document your SOUP, which is short for Software of Unknown Provenance. In human
|
|
32
|
+
> language, those are the third-party libraries you're using in your code, typically in your
|
|
33
|
+
> `requirements.txt` or `Gemfile`.
|
|
34
|
+
|
|
35
|
+
| Classes | IEC 62304:2006 Section | Document Section |
|
|
36
|
+
| ------- | ----------------------------------------------- | ---------------- |
|
|
37
|
+
| B, C | 5.3.3 (Functional and Performance Requirements) | 2 |
|
|
38
|
+
| B, C | 5.3.4 (Hardware and Software Requirements) | 2 |
|
|
39
|
+
| B, C | 7.1.2 (Hazardous Situations) | 2 |
|
|
40
|
+
| B, C | 7.1.3 (SOUP Anomaly Lists) | 2 |
|
|
41
|
+
| A, B, C | 8.1.2 (Identify SOUP) | 2 |
|
|
42
|
+
|
|
43
|
+
## 1 Risk Level Definitions
|
|
44
|
+
|
|
45
|
+
> The 62304 requires you to assess risks associated with SOUP. The simplest way to do this is to classify each
|
|
46
|
+
> SOUP as a certain risk level. Unless you're developing software which shoots radiation at patients, it's
|
|
47
|
+
> likely that your SOUP risk levels remain "low" or "medium".
|
|
48
|
+
|
|
49
|
+
| Risk Level | Definition |
|
|
50
|
+
| ---------- | ---------------------------------------------------------- |
|
|
51
|
+
| Low | Malfunction in SOUP can't lead to patient harm. |
|
|
52
|
+
| Medium | Malfunction in SOUP can lead to reversible patient harm. |
|
|
53
|
+
| High | Malfunction in SOUP can lead to irreversible patient harm. |
|
|
54
|
+
|
|
55
|
+
## 2 SOUP List
|
|
56
|
+
|
|
57
|
+
> This is the actual SOUP list. For each third-party library you use, add an entry in the table below. The
|
|
58
|
+
> idea is to only have one "global" SOUP list for your medical device even though the code may actually live
|
|
59
|
+
> in multiple repositories. That's what the "software system" column is for; you could also mention your (git)
|
|
60
|
+
> repository there.
|
|
61
|
+
|
|
62
|
+
> When specifying requirements, the 62304 requires you to mention functional, performance, hard- and software
|
|
63
|
+
> requirements. However, you may not have to re-state certain requirements if they apply to all SOUP,
|
|
64
|
+
> e.g., "runs on Linux". So prefer to keep the requirements simple, in a way in which you would communicate them
|
|
65
|
+
> to colleagues on your development team when answering the question "why did we import this library?".
|
|
66
|
+
|
|
67
|
+
> As with all templates: It's more about the content (i.e., the columns you see below) than the tool (filling
|
|
68
|
+
> this out in Google sheets / markdown / wherever). Nobody says that you have to maintain this as a Google
|
|
69
|
+
> sheet. If you can find a way to integrate this in your workflow in a better way, e.g., in a markdown file in
|
|
70
|
+
> your git repository, go for it! Just keep in mind that you need to be able to export it to send it to
|
|
71
|
+
> auditors.
|
|
72
|
+
|
|
73
|
+
| ID | Software System | Package Name | Programming Language | Version | Website | Last verified at | Risk Level | Requirements | Verification Reasoning |
|
|
74
|
+
| --- | --------------- | ------------ | -------------------- | ------- | ------------------------------------------------ | ---------------- | ---------- | -------------------------- | --------------------------------------------------------------------------- |
|
|
75
|
+
| 1 | Mobile App | react-native | JavaScript | 0.61 | [Link](https://facebook.github.io/react-native/) | 23.10.2020 | Low | * Runs JS on Android / iOS | Commonly used, maintained by a large organisation, sufficient test coverage |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
Template Copyright [openregulatory.com](https://openregulatory.com). See [template
|
|
80
|
+
license](https://openregulatory.com/template-license).
|
|
81
|
+
|
|
82
|
+
Please don't remove this notice even if you've modified contents of this template.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Usability Evaluation Plan
|
|
2
|
+
|
|
3
|
+
The Usability Evaluation Plan describes the Usability Evaluation activities and their required resources which
|
|
4
|
+
will be performed for the device.
|
|
5
|
+
|
|
6
|
+
## Mapping of Standard Requirements to Document Sections
|
|
7
|
+
|
|
8
|
+
| IEC 62366-1:2015 Section | Title | Document Section |
|
|
9
|
+
|--------------------------|-----------------------------------------------|------------------|
|
|
10
|
+
| 4.2 | Usability Engineering File | (all) |
|
|
11
|
+
| 4.3 | Tailoring of the Usability Engineering effort | (all) |
|
|
12
|
+
|
|
13
|
+
## 1. Relevant Processes
|
|
14
|
+
|
|
15
|
+
Usability Engineering and Evaluation activities are defined in the **SOP Integrated Software Development**.
|
|
16
|
+
|
|
17
|
+
## 2. Related Documents
|
|
18
|
+
|
|
19
|
+
* List of Hazard-Related Use Scenarios
|
|
20
|
+
* Usability Evaluation Report
|
|
21
|
+
|
|
22
|
+
## 3. Roles
|
|
23
|
+
|
|
24
|
+
| Title | Name(s) |
|
|
25
|
+
|-------------------------------------------------|---------|
|
|
26
|
+
| Head of Usability | |
|
|
27
|
+
| Context / Subject Matter Expert, e.g., physician | |
|
|
28
|
+
|
|
29
|
+
## 4. Formative Usability Evaluation
|
|
30
|
+
|
|
31
|
+
### 4.1 Methods
|
|
32
|
+
|
|
33
|
+
Formative Usability Evaluation is performed with the following methods:
|
|
34
|
+
|
|
35
|
+
* **Presentation of mockups or prototypes to subject matter experts:** E.g., by demonstrating the
|
|
36
|
+
functionality in an in-person or remote screen sharing session.
|
|
37
|
+
* **Feedback sessions with UX/UI experts:** Showing concepts, designs, mockups or prototypes to internal or
|
|
38
|
+
external UX/UI experts with the goal of gathering feedback on potential usability problems and
|
|
39
|
+
improvements.
|
|
40
|
+
* **User Tests:** Letting users of the intended target user group use the device based on a Usability
|
|
41
|
+
Evaluation protocol, observing them and documenting potential Usability problems. This is essentially the
|
|
42
|
+
same methods as the Summative Usability Evaluation, with the only difference being that it's being done on
|
|
43
|
+
a development (non-final, non-release) version of the device with the goal of gathering knowledge for
|
|
44
|
+
improving the final device.
|
|
45
|
+
|
|
46
|
+
### 4.2 Planning (Overview)
|
|
47
|
+
|
|
48
|
+
| Date | Description |
|
|
49
|
+
|------------|-------------------------------------------------------------------------------------------|
|
|
50
|
+
| 01.01.2021 | *Formative Evaluation 1*<br>(Description of methods incl. environment, participants etc.) |
|
|
51
|
+
|
|
52
|
+
## 5 Summative Usability Evaluation
|
|
53
|
+
|
|
54
|
+
### 5.1 Method
|
|
55
|
+
|
|
56
|
+
Summative Usability Evaluation is conducted by performing User Tests.
|
|
57
|
+
|
|
58
|
+
User Tests must comply with the following requirements:
|
|
59
|
+
|
|
60
|
+
* The user profile is the one specified in the Device Description.
|
|
61
|
+
* All Hazard-Related Use Scenarios must be covered by test cases (see IEC 62366, para. 5.7.3 / 5.9).
|
|
62
|
+
* Sufficient stakeholder requirements / user needs must be covered by test cases to ensure that the product
|
|
63
|
+
meets its intended use (see ISO 13485, para. 7.3.7)
|
|
64
|
+
* At least five test participants.
|
|
65
|
+
* The Usability Test Protocol must be filled out which descriptions of each use scenario and
|
|
66
|
+
instructions. It is also used to document the observations and discovered hazards.
|
|
67
|
+
|
|
68
|
+
The following requirements are optional:
|
|
69
|
+
|
|
70
|
+
* Usability Tests are recorded, e.g., video/audio (either in-person or remotely) and screen recording (of
|
|
71
|
+
phone / desktop computer)
|
|
72
|
+
|
|
73
|
+
Results of Summative Usability Evaluation are summarized in the Usability Evaluation Report, most importantly:
|
|
74
|
+
|
|
75
|
+
* Could all tasks in the Usability Test Protocol be achieved?
|
|
76
|
+
* If not, why?
|
|
77
|
+
* Which Use Errors occurred and could they lead to Hazardous Situations? --> Risk analysis of use errors
|
|
78
|
+
|
|
79
|
+
## 5.2 Planning (Setting)
|
|
80
|
+
|
|
81
|
+
#### Participants
|
|
82
|
+
|
|
83
|
+
#### Setting
|
|
84
|
+
|
|
85
|
+
#### Methods and Analysis
|
|
86
|
+
|
|
87
|
+
> Describe whether it's done in person or remotely and how you will document the results (have a protocol at
|
|
88
|
+
> the minimum), optionally also record the sessions.
|
|
89
|
+
>
|
|
90
|
+
> Also, describe how you plan to analyse the data.
|
|
91
|
+
|
|
92
|
+
## 5.3 Planning (Overview)
|
|
93
|
+
|
|
94
|
+
| Date | Description |
|
|
95
|
+
|------------|-------------------------------------------------------------------------------------------|
|
|
96
|
+
| 02.01.2021 | *Summative Evaluation 1*<br>(Description of methods incl. environment, participants etc.) |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
Template Copyright [openregulatory.com](https://openregulatory.com). See [template
|
|
101
|
+
license](https://openregulatory.com/template-license).
|
|
102
|
+
|
|
103
|
+
Please don't remove this notice even if you've modified contents of this template.
|