@ngocsangairvds/vsaf 4.1.25 → 4.1.26
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/package.json +1 -1
- package/skills/sdlc/ba-validate-srs/SKILL.md +8 -0
- package/skills/sdlc/ba-validate-srs/data/domain-checklists/insurance.yaml +110 -0
- package/skills/sdlc/ba-validate-srs/data/grep-patterns-srs.yaml +158 -0
- package/skills/sdlc/ba-validate-srs/data/srs-review-glossary.md +237 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-01-discovery.md +280 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-02-business-alignment.md +351 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-03-completeness.md +353 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-04-consistency.md +352 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-05-quality.md +347 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-06-system-nfr.md +217 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-07-delivery-readiness.md +288 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-08-risk-analysis.md +283 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-09-user-impact.md +262 -0
- package/skills/sdlc/ba-validate-srs/steps-v/step-v-10-report.md +308 -0
- package/skills/sdlc/ba-validate-srs/workflow.md +269 -0
- package/skills/sdlc/ba-write-srs/SKILL.md +8 -0
- package/skills/sdlc/ba-write-srs/srs-feature-template.md +669 -0
- package/skills/sdlc/ba-write-srs/srs-system-template.md +430 -0
- package/skills/sdlc/ba-write-srs/workflow.md +139 -0
- package/skills/sdlc/pack.yaml +4 -0
- package/skills/sdlc/srs/SKILL.md +44 -55
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
# Software Requirements Specification (SRS)
|
|
2
|
+
## {{TÊN HỆ THỐNG}}
|
|
3
|
+
|
|
4
|
+
| Thông tin | Chi tiết |
|
|
5
|
+
|---|---|
|
|
6
|
+
| **Dự án** | {{Tên dự án đầy đủ}} |
|
|
7
|
+
| **Phiên bản** | {{X.Y}} |
|
|
8
|
+
| **Trạng thái** | Draft |
|
|
9
|
+
| **Ngày tạo** | {{YYYY-MM-DD}} |
|
|
10
|
+
| **Người soạn** | {{Tên / Team}} |
|
|
11
|
+
| **Nguồn** | {{Danh sách tài liệu nguồn: PRD, Architecture, BRD, Epics,...}} |
|
|
12
|
+
|
|
13
|
+
### Lịch sử phiên bản
|
|
14
|
+
|
|
15
|
+
| Phiên bản | Ngày | Người thực hiện | Nội dung thay đổi |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| {{X.Y}} | {{YYYY-MM-DD}} | {{Tên}} | {{Mô tả thay đổi}} |
|
|
18
|
+
|
|
19
|
+
### Bảng phê duyệt
|
|
20
|
+
|
|
21
|
+
| Vai trò | Họ tên | Chữ ký | Ngày |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| BA Lead | | | |
|
|
24
|
+
| Product Owner | | | |
|
|
25
|
+
| CTO / Tech Lead | | | |
|
|
26
|
+
| Legal / Compliance | | | |
|
|
27
|
+
| UX Lead | | | |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. Giới thiệu
|
|
32
|
+
|
|
33
|
+
### 1.1 Mục đích tài liệu
|
|
34
|
+
|
|
35
|
+
{{Mô tả mục đích SRS — tài liệu này phục vụ ai, dùng để làm gì}}
|
|
36
|
+
|
|
37
|
+
Tài liệu phục vụ:
|
|
38
|
+
- Làm cơ sở cho thiết kế kỹ thuật (Architecture, SDD)
|
|
39
|
+
- Cơ sở viết test plan và test cases
|
|
40
|
+
- Xác nhận scope và chức năng với stakeholders
|
|
41
|
+
- {{Thêm mục đích khác nếu cần}}
|
|
42
|
+
|
|
43
|
+
### 1.2 Đối tượng đọc
|
|
44
|
+
|
|
45
|
+
| Đối tượng | Mục đích sử dụng |
|
|
46
|
+
|---|---|
|
|
47
|
+
| BA Team | Tài liệu gốc để phát triển và kiểm soát thay đổi |
|
|
48
|
+
| Dev Team | Hiểu yêu cầu để thiết kế và lập trình |
|
|
49
|
+
| Test Lead | Cơ sở viết test plan và test case |
|
|
50
|
+
| Product Owner | Xác nhận scope, phân kỳ |
|
|
51
|
+
| {{Thêm đối tượng khác}} | {{Mục đích}} |
|
|
52
|
+
|
|
53
|
+
### 1.3 Phạm vi hệ thống
|
|
54
|
+
|
|
55
|
+
**In-scope (MVP — Phase 1):**
|
|
56
|
+
- {{Module/Feature 1}} (FR range)
|
|
57
|
+
- {{Module/Feature 2}} (FR range)
|
|
58
|
+
- ...
|
|
59
|
+
|
|
60
|
+
**Out-of-scope (Phase 2/3):**
|
|
61
|
+
- {{Feature}} — Phase X
|
|
62
|
+
- ...
|
|
63
|
+
|
|
64
|
+
### 1.4 Định nghĩa & Từ viết tắt
|
|
65
|
+
|
|
66
|
+
| Thuật ngữ / Viết tắt | Giải thích |
|
|
67
|
+
|---|---|
|
|
68
|
+
| SRS | Software Requirements Specification |
|
|
69
|
+
| UC | Use Case |
|
|
70
|
+
| FR | Functional Requirement |
|
|
71
|
+
| NFR | Non-Functional Requirement |
|
|
72
|
+
| BR | Business Rule |
|
|
73
|
+
| RTM | Requirements Traceability Matrix |
|
|
74
|
+
| {{Thêm thuật ngữ domain}} | {{Giải thích}} |
|
|
75
|
+
|
|
76
|
+
### 1.5 Tài liệu tham chiếu
|
|
77
|
+
|
|
78
|
+
| Tài liệu | Phiên bản | Vị trí |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| {{Tên tài liệu}} | {{vX.Y}} | {{Đường dẫn}} |
|
|
81
|
+
| ... | | |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 2. Tổng quan hệ thống
|
|
86
|
+
|
|
87
|
+
### 2.1 Mô tả sản phẩm
|
|
88
|
+
|
|
89
|
+
{{Mô tả tổng quan hệ thống: giải quyết vấn đề gì, mô hình hoạt động, MVP scope}}
|
|
90
|
+
|
|
91
|
+
### 2.2 Sơ đồ ngữ cảnh hệ thống (System Context Diagram)
|
|
92
|
+
|
|
93
|
+
```mermaid
|
|
94
|
+
graph LR
|
|
95
|
+
actor1([Actor 1]) --> system[Hệ thống]
|
|
96
|
+
actor2([Actor 2]) --> system
|
|
97
|
+
system --> ext1[External System 1]
|
|
98
|
+
system --> ext2[External System 2]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 2.3 Môi trường vận hành
|
|
102
|
+
|
|
103
|
+
| Hạng mục | Chi tiết |
|
|
104
|
+
|---|---|
|
|
105
|
+
| Nền tảng | {{Web / Mobile / WebView / API}} |
|
|
106
|
+
| Trình duyệt hỗ trợ | {{Chrome X+, Safari X+,...}} |
|
|
107
|
+
| Hạ tầng | {{Cloud provider, deployment model}} |
|
|
108
|
+
| Backend | {{Tech stack}} |
|
|
109
|
+
| Database | {{DB technologies}} |
|
|
110
|
+
| Message Broker | {{Nếu có}} |
|
|
111
|
+
| API Gateway | {{Nếu có}} |
|
|
112
|
+
| Auth | {{Auth solution}} |
|
|
113
|
+
|
|
114
|
+
### 2.4 Actors và đặc điểm người dùng
|
|
115
|
+
|
|
116
|
+
| Actor | Mô tả | Tần suất | Kênh | Mức kỹ thuật |
|
|
117
|
+
|---|---|---|---|---|
|
|
118
|
+
| **{{Persona 1}}** | {{Mô tả}} | {{Tần suất}} | {{Kênh}} | {{Mức}} |
|
|
119
|
+
| **{{Persona 2}}** | {{Mô tả}} | {{Tần suất}} | {{Kênh}} | {{Mức}} |
|
|
120
|
+
|
|
121
|
+
### 2.5 Module Map
|
|
122
|
+
|
|
123
|
+
```mermaid
|
|
124
|
+
graph LR
|
|
125
|
+
actor1([Actor]) --> m1[Module 1]
|
|
126
|
+
actor1 --> m2[Module 2]
|
|
127
|
+
actor2([Actor 2]) --> m3[Module 3]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
| Module | Flows | FRs | Priority |
|
|
131
|
+
|---|---|---|---|
|
|
132
|
+
| **{{M1: Tên module}}** | Flow XX | FR range | Must Have / Should Have |
|
|
133
|
+
| **{{M2: Tên module}}** | Flow XX | FR range | Must Have / Should Have |
|
|
134
|
+
|
|
135
|
+
### 2.6 Kiến trúc tích hợp
|
|
136
|
+
|
|
137
|
+
| Hệ thống bên ngoài | Loại | Mục đích | Giao thức | Chiều | SLA |
|
|
138
|
+
|---|---|---|---|---|---|
|
|
139
|
+
| {{Tên hệ thống}} | Partner / Third-party | {{Mục đích}} | {{REST/SOAP/File}} | Inbound / Outbound / Bidirectional | {{SLA}} |
|
|
140
|
+
|
|
141
|
+
### 2.7 Giả định và phụ thuộc cấp hệ thống
|
|
142
|
+
|
|
143
|
+
**Giả định:**
|
|
144
|
+
- A1: {{Giả định 1}}
|
|
145
|
+
- A2: {{Giả định 2}}
|
|
146
|
+
|
|
147
|
+
**Phụ thuộc:**
|
|
148
|
+
- D1: {{Phụ thuộc 1 — hậu quả nếu không có}}
|
|
149
|
+
- D2: {{Phụ thuộc 2 — hậu quả nếu không có}}
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 3. Yêu cầu chức năng (Functional Requirements)
|
|
154
|
+
|
|
155
|
+
> **ID scheme:** `UC-[MODULE]-[NNN]` | **Business Rule:** `BR-[NNN]` | **Thông báo:** `MSG-[NNN]`
|
|
156
|
+
|
|
157
|
+
### 3.X Module X — {{Tên Module}} (Flow XX)
|
|
158
|
+
|
|
159
|
+
> **Tài liệu chi tiết:** Xem `srs/SRS-{{code}}-FlowXX-vX.Y.md` (nếu có SRS feature-level riêng)
|
|
160
|
+
|
|
161
|
+
**Tóm tắt UCs:**
|
|
162
|
+
|
|
163
|
+
| UC ID | Tên | Actor | Priority | FRs |
|
|
164
|
+
|---|---|---|---|---|
|
|
165
|
+
| UC-MX-001 | {{Tên UC}} | {{Actor}} | Must Have | {{FR range}} |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
#### UC-MX-001: {{Tên Use Case}}
|
|
170
|
+
|
|
171
|
+
| Thông tin | Chi tiết |
|
|
172
|
+
|---|---|
|
|
173
|
+
| **ID** | UC-MX-001 |
|
|
174
|
+
| **Tên** | {{Tên UC}} |
|
|
175
|
+
| **Mô tả** | {{Mô tả ngắn gọn}} |
|
|
176
|
+
| **Ưu tiên** | Must Have / Should Have / Could Have |
|
|
177
|
+
| **Trạng thái** | Draft |
|
|
178
|
+
| **Nguồn** | {{PRD vX FR range}} |
|
|
179
|
+
| **Actor** | {{Actor chính}} |
|
|
180
|
+
| **Kênh** | {{Kênh sử dụng}} |
|
|
181
|
+
| **Đường dẫn chức năng** | {{Navigation path}} |
|
|
182
|
+
| **Trigger** | {{Sự kiện kích hoạt}} |
|
|
183
|
+
| **Tần suất sử dụng** | {{Tần suất}} |
|
|
184
|
+
| **Điều kiện tiên quyết** | {{Preconditions}} |
|
|
185
|
+
|
|
186
|
+
**Luồng chính (Main Flow):**
|
|
187
|
+
1. {{Bước 1}}
|
|
188
|
+
2. {{Bước 2}}
|
|
189
|
+
3. ...
|
|
190
|
+
|
|
191
|
+
> Khi UC ≥5 bước hoặc ≥2 lần rẽ nhánh, **bắt buộc** kèm sequence diagram và/hoặc activity diagram (PlantUML). Xem mẫu trong `srs-feature-template.md` §3.1, §3.2.
|
|
192
|
+
|
|
193
|
+
**Luồng thay thế:**
|
|
194
|
+
- **Alt-1 — {{Tên}}:** {{Mô tả}}
|
|
195
|
+
- **Alt-2 — {{Tên}}:** {{Mô tả}}
|
|
196
|
+
|
|
197
|
+
**Luồng ngoại lệ:**
|
|
198
|
+
- **Exc-1 — {{Tên}}:** {{Mô tả}}
|
|
199
|
+
|
|
200
|
+
**Hậu điều kiện:**
|
|
201
|
+
- Thành công: {{Kết quả khi thành công}}
|
|
202
|
+
- Thất bại: {{Kết quả khi thất bại}}
|
|
203
|
+
|
|
204
|
+
**Yêu cầu dữ liệu:**
|
|
205
|
+
|
|
206
|
+
| Trường | Kiểu | Bắt buộc | Validation | Ghi chú |
|
|
207
|
+
|---|---|---|---|---|
|
|
208
|
+
| {{field_name}} | {{String/Integer/Enum/Date/...}} | Có/Không | {{Rule}} | {{Ghi chú}} |
|
|
209
|
+
|
|
210
|
+
**Business Rules:**
|
|
211
|
+
|
|
212
|
+
| Mã | Nội dung | Tham chiếu |
|
|
213
|
+
|---|---|---|
|
|
214
|
+
| BR-XXX | {{Nội dung rule}} | {{PRD/FR/NFR reference}} |
|
|
215
|
+
|
|
216
|
+
**Các thông báo hệ thống:**
|
|
217
|
+
|
|
218
|
+
| Mã | Loại | Nội dung | Điều kiện |
|
|
219
|
+
|---|---|---|---|
|
|
220
|
+
| MSG-XXX | Success/Error/Info/Push | {{Nội dung thông báo}} | {{Điều kiện hiển thị}} |
|
|
221
|
+
|
|
222
|
+
**Phương pháp kiểm thử:** {{Manual / API test / E2E automation / Integration test / Load test}}
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
> **Lặp lại section 3.X cho mỗi Module. Lặp lại UC block cho mỗi Use Case trong module.**
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 4. Yêu cầu phi chức năng (Non-Functional Requirements)
|
|
231
|
+
|
|
232
|
+
### 4.1 Hiệu năng (Performance)
|
|
233
|
+
|
|
234
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
235
|
+
|---|---|---|
|
|
236
|
+
| NFR-PERF-001 | {{Yêu cầu}} | {{p95 / p99 / SLA}} |
|
|
237
|
+
|
|
238
|
+
### 4.2 Bảo mật (Security)
|
|
239
|
+
|
|
240
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
241
|
+
|---|---|---|
|
|
242
|
+
| NFR-SEC-001 | {{Yêu cầu}} | {{Tiêu chí}} |
|
|
243
|
+
|
|
244
|
+
### 4.3 Khả dụng & Độ tin cậy (Availability)
|
|
245
|
+
|
|
246
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
247
|
+
|---|---|---|
|
|
248
|
+
| NFR-AVAIL-001 | {{Yêu cầu}} | {{% uptime}} |
|
|
249
|
+
| NFR-REL-001 | RPO | {{< X minutes}} |
|
|
250
|
+
| NFR-REL-002 | RTO | {{< X hours}} |
|
|
251
|
+
|
|
252
|
+
### 4.4 Khả dụng với người dùng (Usability)
|
|
253
|
+
|
|
254
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
255
|
+
|---|---|---|
|
|
256
|
+
| NFR-USAB-001 | {{Accessibility — WCAG level}} | {{VD: WCAG 2.1 Level AA cho contrast, font size}} |
|
|
257
|
+
| NFR-USAB-002 | {{Learnability — thời gian onboarding}} | {{VD: User hoàn thành task chính trong ≤X phút lần đầu}} |
|
|
258
|
+
| NFR-USAB-003 | {{Error recovery — khả năng phục hồi}} | {{VD: Mọi lỗi có hướng dẫn sửa, undo trong ≤X bước}} |
|
|
259
|
+
| NFR-USAB-004 | {{Đa ngôn ngữ / Localization}} | {{VD: Hỗ trợ vi-VN, en-US}} |
|
|
260
|
+
|
|
261
|
+
### 4.5 Khả năng mở rộng (Scalability)
|
|
262
|
+
|
|
263
|
+
| ID | Yêu cầu | MVP | Year 1 |
|
|
264
|
+
|---|---|---|---|
|
|
265
|
+
| NFR-SCALE-001 | {{Yêu cầu}} | {{MVP target}} | {{Year 1 target}} |
|
|
266
|
+
|
|
267
|
+
### 4.7 Tuân thủ quy định (Compliance)
|
|
268
|
+
|
|
269
|
+
| ID | Yêu cầu | Quy định | Tiêu chí |
|
|
270
|
+
|---|---|---|---|
|
|
271
|
+
| NFR-COMP-001 | {{Yêu cầu}} | {{Tên quy định}} | {{Tiêu chí}} |
|
|
272
|
+
|
|
273
|
+
### 4.8 Audit & Ghi log
|
|
274
|
+
|
|
275
|
+
| ID | Yêu cầu | Tiêu chí |
|
|
276
|
+
|---|---|---|
|
|
277
|
+
| NFR-AUDIT-001 | {{Scope}} | {{Chi tiết}} |
|
|
278
|
+
| NFR-AUDIT-002 | Retention | {{>= X years}} |
|
|
279
|
+
|
|
280
|
+
### 4.9 Monitoring & Alerting
|
|
281
|
+
|
|
282
|
+
| ID | Yêu cầu | Tiêu chí |
|
|
283
|
+
|---|---|---|
|
|
284
|
+
| NFR-MON-001 | {{Dashboard / metric}} | {{Chi tiết}} |
|
|
285
|
+
|
|
286
|
+
### 4.10 Khả năng bảo trì (Maintainability)
|
|
287
|
+
|
|
288
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
289
|
+
|---|---|---|
|
|
290
|
+
| NFR-MAINT-001 | {{Code quality / test coverage}} | {{VD: Unit test coverage ≥X%, SonarQube quality gate pass}} |
|
|
291
|
+
| NFR-MAINT-002 | {{Documentation}} | {{VD: API docs auto-generated (OpenAPI 3.x), architecture docs up-to-date}} |
|
|
292
|
+
| NFR-MAINT-003 | {{Modular design}} | {{VD: Microservices loosely coupled, thay thế 1 service không ảnh hưởng service khác}} |
|
|
293
|
+
|
|
294
|
+
### 4.11 Khả năng di chuyển (Portability)
|
|
295
|
+
|
|
296
|
+
| ID | Yêu cầu | Tiêu chí chấp nhận |
|
|
297
|
+
|---|---|---|
|
|
298
|
+
| NFR-PORT-001 | {{Platform independence}} | {{VD: Containerized (Docker/K8s), không vendor-locked}} |
|
|
299
|
+
| NFR-PORT-002 | {{Database portability}} | {{VD: Dùng standard SQL, tránh vendor-specific extensions}} |
|
|
300
|
+
| NFR-PORT-003 | {{Multi-channel support}} | {{VD: API-first, hỗ trợ embed vào host app khác ngoài channel hiện tại}} |
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 5. Ràng buộc, Giả định & Phụ thuộc
|
|
305
|
+
|
|
306
|
+
### 5.1 Ràng buộc kỹ thuật
|
|
307
|
+
|
|
308
|
+
- {{Ràng buộc tech stack}}
|
|
309
|
+
- {{Ràng buộc deployment}}
|
|
310
|
+
- {{Ràng buộc infra}}
|
|
311
|
+
|
|
312
|
+
### 5.2 Ràng buộc quy định pháp lý
|
|
313
|
+
|
|
314
|
+
- {{Ràng buộc pháp lý 1}}
|
|
315
|
+
- {{Ràng buộc pháp lý 2}}
|
|
316
|
+
|
|
317
|
+
### 5.3 Yêu cầu chuyển đổi (Transition Requirements)
|
|
318
|
+
|
|
319
|
+
> *(ISO 29148 §6.4 + BABOK v3 §7.4.3 — bắt buộc khi hệ thống thay thế/migrate từ hệ thống cũ)*
|
|
320
|
+
|
|
321
|
+
| # | Yêu cầu | Mô tả | Owner | Timeline |
|
|
322
|
+
|---|---|---|---|---|
|
|
323
|
+
| TR-001 | {{Data migration}} | {{VD: Migrate X records từ hệ thống cũ, mapping rules, validation}} | {{Team}} | {{Sprint/Phase}} |
|
|
324
|
+
| TR-002 | {{Parallel-run}} | {{VD: Chạy song song old/new system trong X tuần, so sánh output}} | {{Team}} | {{Period}} |
|
|
325
|
+
| TR-003 | {{Rollback plan}} | {{VD: Nếu migration fail, rollback trong ≤X giờ, data intact}} | {{Team}} | {{Trigger}} |
|
|
326
|
+
| TR-004 | {{User training / communication}} | {{VD: Training cho X users trước go-live, hướng dẫn sử dụng}} | {{Team}} | {{Before go-live}} |
|
|
327
|
+
|
|
328
|
+
> Nếu không có migration/chuyển đổi, ghi rõ: "Không áp dụng — hệ thống mới hoàn toàn."
|
|
329
|
+
|
|
330
|
+
### 5.4 Rủi ro ảnh hưởng đến yêu cầu
|
|
331
|
+
|
|
332
|
+
| Rủi ro | Mức độ | Ảnh hưởng | Biện pháp |
|
|
333
|
+
|---|---|---|---|
|
|
334
|
+
| {{Rủi ro}} | Cao/Trung bình/Thấp | {{Module/Feature bị ảnh hưởng}} | {{Mitigation}} |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 6. Ma trận truy xuất yêu cầu (RTM)
|
|
339
|
+
|
|
340
|
+
| PRD FR | UC ID | Module | Màn hình | Epic/Story |
|
|
341
|
+
|---|---|---|---|---|
|
|
342
|
+
| {{FR ID}} | {{UC ID}} | {{Module}} | {{Screen name}} | {{Epic/Story ref}} |
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 7. Phụ lục
|
|
347
|
+
|
|
348
|
+
### A. Danh sách màn hình (Screen Inventory)
|
|
349
|
+
|
|
350
|
+
| Màn hình | Module | Figma/Screenshot | UC liên quan |
|
|
351
|
+
|---|---|---|---|
|
|
352
|
+
| {{Tên màn hình}} | {{Module}} | {{Đường dẫn}} | {{UC ID}} |
|
|
353
|
+
|
|
354
|
+
### B. Business Rules Index
|
|
355
|
+
|
|
356
|
+
| Mã | Nội dung | Module | UC |
|
|
357
|
+
|---|---|---|---|
|
|
358
|
+
| BR-XXX→YYY | {{Nhóm rule}} | {{Module}} | {{UC ID}} |
|
|
359
|
+
|
|
360
|
+
### C. Open Issues
|
|
361
|
+
|
|
362
|
+
| # | Vấn đề | Module | Người phụ trách | Hạn | Trạng thái |
|
|
363
|
+
|---|---|---|---|---|---|
|
|
364
|
+
| OI-X | {{Vấn đề}} | {{Module}} | {{Người}} | {{Deadline}} | Open |
|
|
365
|
+
|
|
366
|
+
### D. Danh sách thông báo hệ thống (Message Catalog)
|
|
367
|
+
|
|
368
|
+
| Mã | Loại | Nội dung | UC |
|
|
369
|
+
|---|---|---|---|
|
|
370
|
+
| MSG-XXX | Success/Error/Info/Push | {{Nội dung}} | {{UC ID}} |
|
|
371
|
+
|
|
372
|
+
### E. Data Dictionary
|
|
373
|
+
|
|
374
|
+
> *(ISO 29148 §6.4.3.8 Logical database requirements + BABOK v3 §7.1 Data Models)*
|
|
375
|
+
|
|
376
|
+
| Thực thể | Thuộc tính | Kiểu dữ liệu | Ràng buộc | Bắt buộc | Mô tả | Hệ thống nguồn |
|
|
377
|
+
|---|---|---|---|---|---|---|
|
|
378
|
+
| {{Entity}} | {{field_name}} | {{String/Integer/Date/Enum/UUID}} | {{FK, Unique, Check,...}} | Có/Không | {{Mô tả nghiệp vụ}} | {{NTBH / Insurer / Channel}} |
|
|
379
|
+
|
|
380
|
+
### F. CRUD Matrix
|
|
381
|
+
|
|
382
|
+
| Use Case | {{Entity 1}} | {{Entity 2}} | {{Entity 3}} | {{Entity 4}} |
|
|
383
|
+
|---|---|---|---|---|
|
|
384
|
+
| UC-MX-001 | C | R | — | — |
|
|
385
|
+
| UC-MX-002 | R | U | C | — |
|
|
386
|
+
| UC-MX-003 | — | R | R | D |
|
|
387
|
+
|
|
388
|
+
> C=Create, R=Read, U=Update, D=Delete, —=Không tác động
|
|
389
|
+
|
|
390
|
+
### G. State Diagrams — Entity Lifecycle
|
|
391
|
+
|
|
392
|
+
> *(BABOK v3 §7.1 State Diagrams — bắt buộc cho entities có ≥3 trạng thái)*
|
|
393
|
+
|
|
394
|
+
**{{Entity name}} Lifecycle:**
|
|
395
|
+
|
|
396
|
+
```mermaid
|
|
397
|
+
stateDiagram-v2
|
|
398
|
+
[*] --> {{State1}}: {{Trigger}}
|
|
399
|
+
{{State1}} --> {{State2}}: {{Event/Action}}
|
|
400
|
+
{{State2}} --> {{State3}}: {{Event/Action}}
|
|
401
|
+
{{State2}} --> {{State4}}: {{Event/Action}}
|
|
402
|
+
{{State3}} --> [*]
|
|
403
|
+
{{State4}} --> [*]
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
| Trạng thái | Mô tả | Trigger chuyển trạng thái | Ai thực hiện |
|
|
407
|
+
|---|---|---|---|
|
|
408
|
+
| {{State1}} | {{Mô tả}} | {{Event}} | {{Actor/System}} |
|
|
409
|
+
| {{State2}} | {{Mô tả}} | {{Event}} | {{Actor/System}} |
|
|
410
|
+
|
|
411
|
+
> Lặp lại cho mỗi entity có lifecycle phức tạp (VD: Policy, Claim, Transaction, Order, Payment).
|
|
412
|
+
|
|
413
|
+
### H. Verification Summary
|
|
414
|
+
|
|
415
|
+
> *(ISO 29148 §6.4.4 — cross-reference giữa requirements và phương pháp kiểm thử)*
|
|
416
|
+
|
|
417
|
+
| Module | UC ID | Phương pháp kiểm thử | Test Coverage | Ghi chú |
|
|
418
|
+
|---|---|---|---|---|
|
|
419
|
+
| {{Module}} | UC-MX-001 | {{Manual / API / E2E / Integration / Load / Security}} | {{Unit + Integration + E2E}} | {{Ghi chú đặc biệt}} |
|
|
420
|
+
| {{Module}} | UC-MX-002 | {{...}} | {{...}} | |
|
|
421
|
+
|
|
422
|
+
**Tổng hợp per module:**
|
|
423
|
+
|
|
424
|
+
| Module | Tổng UC | Manual | API Test | E2E | Integration | Load | Security |
|
|
425
|
+
|---|---|---|---|---|---|---|---|
|
|
426
|
+
| {{M1}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} |
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
*Tài liệu cần review bởi: {{Danh sách reviewer roles}} trước khi baseline.*
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
outputDir: '.vsaf/docs/features/{feature-name}'
|
|
3
|
+
featureTemplate: './srs-feature-template.md'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BA Write SRS Workflow
|
|
7
|
+
|
|
8
|
+
**Goal:** Phân tích yêu cầu và viết tài liệu SRS (Software Requirements Specification) feature-level theo template chuẩn Confluence.
|
|
9
|
+
|
|
10
|
+
**Your Role:** Business Analyst chuyên nghiệp — viết SRS theo quy trình chuẩn, đảm bảo truy xuất được từ PRD/BRD → Use Cases → Màn hình → Epic/Story.
|
|
11
|
+
|
|
12
|
+
## WORKFLOW
|
|
13
|
+
|
|
14
|
+
### Bước 0 — Kiểm tra đầu vào
|
|
15
|
+
|
|
16
|
+
Tự động đọc input artifacts từ VSAF pipeline:
|
|
17
|
+
|
|
18
|
+
**Input bắt buộc:**
|
|
19
|
+
- [ ] `.vsaf/docs/features/{feature-name}/02-prd.md` — PRD từ Phase 2
|
|
20
|
+
- [ ] `.vsaf/docs/features/{feature-name}/03-adr.md` — Architecture từ Phase 3
|
|
21
|
+
|
|
22
|
+
**Input tùy chọn:**
|
|
23
|
+
- [ ] `.vsaf/docs/features/{feature-name}/04-epics.md` — Epic breakdown
|
|
24
|
+
- [ ] Figma link — lấy từ `CONTEXT.md` field `figma_url` nếu có
|
|
25
|
+
- [ ] BRD file — nếu project có BRD trong `.vsaf/docs/`
|
|
26
|
+
|
|
27
|
+
Nếu thiếu 02-prd.md hoặc 03-adr.md, **dừng lại ngay**:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Thiếu input artifacts cho Phase 4 SRS:
|
|
31
|
+
|
|
32
|
+
❌ [liệt kê file thiếu]
|
|
33
|
+
|
|
34
|
+
Vui lòng chạy Phase 2 (PRD) và Phase 3 (Architecture) trước.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Chỉ tiếp tục khi đã có đủ PRD + ADR.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### Bước 1 — Đọc & phân tích PRD/BRD
|
|
42
|
+
|
|
43
|
+
Đọc toàn bộ tài liệu PRD từ `02-prd.md` và Architecture từ `03-adr.md`. Nếu có `04-epics.md`, đọc thêm epic breakdown. Trích xuất và tổ chức thông tin theo cấu trúc:
|
|
44
|
+
|
|
45
|
+
**1.1 Mục tiêu dự án**
|
|
46
|
+
- Business objective
|
|
47
|
+
- Problem statement
|
|
48
|
+
- Success criteria
|
|
49
|
+
|
|
50
|
+
**1.2 Phạm vi (Scope)**
|
|
51
|
+
- In-scope features / Sub-FRs
|
|
52
|
+
- Out-of-scope
|
|
53
|
+
- Các module/màn hình chính
|
|
54
|
+
|
|
55
|
+
**1.3 Actors & Use Cases**
|
|
56
|
+
- Danh sách các actor (vai trò người dùng)
|
|
57
|
+
- User stories / use cases đã đề cập
|
|
58
|
+
|
|
59
|
+
**1.4 Business Rules**
|
|
60
|
+
- Quy tắc nghiệp vụ quan trọng
|
|
61
|
+
- Constraints & assumptions
|
|
62
|
+
|
|
63
|
+
**1.5 Non-functional Requirements**
|
|
64
|
+
- Performance, security, scalability, v.v. (nếu có)
|
|
65
|
+
|
|
66
|
+
Sau bước này, xuất ra **"Tóm tắt PRD/BRD"** để user xác nhận trước khi sang bước 2.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Bước 2 — So sánh PRD/BRD với Figma (nếu có Figma)
|
|
71
|
+
|
|
72
|
+
Nếu có Figma link, dùng Figma MCP tools để đọc design:
|
|
73
|
+
1. Gọi `get_figma_data` để lấy danh sách pages/frames
|
|
74
|
+
2. Download screenshots cho từng màn hình chính
|
|
75
|
+
|
|
76
|
+
So sánh và ghi nhận:
|
|
77
|
+
|
|
78
|
+
| Hạng mục | PRD/BRD nói | Figma thiết kế | Trạng thái |
|
|
79
|
+
|---|---|---|---|
|
|
80
|
+
| [Feature/Screen] | ... | ... | ✅ Khớp / ⚠️ Khác biệt / ❓ Chưa rõ |
|
|
81
|
+
|
|
82
|
+
**Phân tích gap:**
|
|
83
|
+
- **Gap 1 — Thiếu trong Figma:** Features có trong PRD nhưng không thấy trong design
|
|
84
|
+
- **Gap 2 — Thêm trong Figma:** UI elements trong Figma nhưng không đề cập trong PRD
|
|
85
|
+
- **Gap 3 — Mâu thuẫn:** Thông tin không nhất quán giữa hai nguồn
|
|
86
|
+
|
|
87
|
+
Nếu không có Figma: ghi rõ "Chưa có Figma design — cần UX team cung cấp" tại mục 2 của SRS.
|
|
88
|
+
|
|
89
|
+
Sau bước này, xuất ra **"Báo cáo Gap Analysis"** và hỏi user có muốn clarify gap nào trước khi viết SRS không.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Bước 3 — Viết tài liệu SRS theo Feature Template
|
|
94
|
+
|
|
95
|
+
Đọc template tại `./srs-feature-template.md` và viết SRS **đúng theo cấu trúc template**, bao gồm đầy đủ 10 phần:
|
|
96
|
+
|
|
97
|
+
1. **Mô tả chung** — Bảng tổng quan, Use Cases, Định nghĩa, Tài liệu tham chiếu
|
|
98
|
+
2. **Đặc tả Use Cases** — Viết tuần tự theo từng UC. Mỗi UC gồm:
|
|
99
|
+
- **Màn hình** — Bảng chi tiết controls từng màn hình thuộc UC
|
|
100
|
+
- **Luồng nghiệp vụ** — Sequence diagram (PlantUML) + Activity diagram (PlantUML, nếu cần) + Bảng mô tả luồng
|
|
101
|
+
- Màn hình dùng chung: đặt bảng đầy đủ tại UC đầu tiên, UC sau ghi tham chiếu
|
|
102
|
+
- Nếu feature có nhiều UC liên kết chặt: thêm Activity Diagram tổng quan ở đầu mục 2
|
|
103
|
+
3. **Bảng/Thực thể liên quan** — ER diagram + mô tả entity
|
|
104
|
+
4. **Danh sách mã lỗi** — Error codes mapping với bước trong flow
|
|
105
|
+
5. **Chức năng ảnh hưởng** — Cross-flow impact
|
|
106
|
+
6. **Business Rules tổng hợp** — Tổng hợp BR với mã duy nhất
|
|
107
|
+
7. **Yêu cầu phi chức năng** — NFR đặc thù cho flow
|
|
108
|
+
8. **Ràng buộc, Giả định & Phụ thuộc** — Constraints, assumptions, dependencies, transition requirements
|
|
109
|
+
9. **State Diagrams** — Entity lifecycle (Mermaid stateDiagram-v2)
|
|
110
|
+
10. **Ma trận truy xuất (Mini-RTM)** — PRD FR → UC → Màn hình → Epic/Story
|
|
111
|
+
|
|
112
|
+
**Quy tắc viết:**
|
|
113
|
+
- Viết bằng **tiếng Việt** trừ khi user yêu cầu tiếng Anh
|
|
114
|
+
- Giữ nguyên business rules từ PRD/BRD, không tự ý thay đổi logic nghiệp vụ
|
|
115
|
+
- Mỗi Use Case phải có: Precondition, Main flow, Alternative flow, Exception flow, Postcondition
|
|
116
|
+
- Activity/Flow diagrams phải dùng Mermaid `flowchart TD`; State diagrams dùng `stateDiagram-v2`; ER dùng `erDiagram` — theo template
|
|
117
|
+
- Nếu thông tin chưa đủ → ghi `{{Cần bổ sung}}` và liệt kê ở phần Gap Analysis
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
### Bước 4 — Lưu file SRS
|
|
122
|
+
|
|
123
|
+
Lưu tài liệu SRS vào: `.vsaf/docs/features/{feature-name}/05-srs.md`
|
|
124
|
+
|
|
125
|
+
Thông báo cho user:
|
|
126
|
+
- Đường dẫn file đã lưu
|
|
127
|
+
- Số lượng use cases đã viết
|
|
128
|
+
- Danh sách gaps quan trọng cần team confirm
|
|
129
|
+
- Các phần SRS còn `{{...}}` cần bổ sung thêm
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Lưu ý quan trọng
|
|
134
|
+
|
|
135
|
+
- Luôn viết bằng **tiếng Việt** trừ khi user yêu cầu tiếng Anh
|
|
136
|
+
- Với mỗi gap phát hiện, đề xuất cách xử lý thay vì bỏ qua
|
|
137
|
+
- Nếu Figma có nhiều pages, hỏi user muốn focus vào page/flow nào trước
|
|
138
|
+
- Giữ nguyên business rules từ PRD/BRD, không tự ý thay đổi logic nghiệp vụ
|
|
139
|
+
- Template phải tuân thủ **đúng format** tại `./srs-feature-template.md` — không được thay đổi cấu trúc section
|