Mars's Blog

軟體開發文件SOP範本

一、範本內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
軟體開發文件(SRS,SDD,STP)範本
===

> 範例使用原則:
> - 請複制一份到自己新增的頁面再行修改
> - 不需要的項目請自行刪除
> - 如有沒有寫到的部份請自行增加
> - 如有需要,排版方式可自行變動

###### tags: `文件` `範本` `開發`

> - 開發日期: 2017-07-28
> - 規劃者 : 名子 (如果有)
> - 規劃文件 : 規劃文件路徑、網址 (如果有)
> - 初步設計 : 名子 (如果有)
> - 細部設計 : 名子 (如果有)
> - 指導者 : 名子 (如果有)
> - 參與名單 :
> - 名子 (如果有)

# 一、說明
> 簡述開發原因、目標、期許

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄

---

# 二、需求
## 2.1 需求收集
> SA : SRS文件
> PM規劃、需求訪談、使用者反應

## 2.2 需求分析
> SA : SRS文件
> 需求收集的解答:需求結合、細化、捨去

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄
>
> 需求收集、需求分析 可視狀況合併

---

# 三、案例
## 3.1 案例收集
> SA : SRS文件
> 需求的解答/示範:可能案例描述

## 3.2 案例分析
> SA : SRS文件
> Who, What, When, Where, Why, How
> 狀況 => 需求 => 產生 => 狀況 => 需求 => … => 結束
> 案例收集的解答:分析過程可能會出現副產品 功能雛形/流程雛形
> 副產品為此項目的解答方向

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄
>
> 案例收集、案例分析 可視狀況合併

### 功能收集
### 流程收集

---

# 四、功能
## 4.1 功能劃分
> SA : SRS文件
> 案例/需求的解答:將需求劃分成具體功能

## 4.2 功能流程分析
> SA : SRS文件
> SD : SDD文件
> 功能劃分的解答/推衍:功能實現流程的具體推衍,注意收集副產品
> 副產品為此項目的解答方向

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄
>
> 功能劃分、功能流程分析 可視狀況合併

### 頁面 收集
### 狀態/控制參數 收集
### 欄位/資料內容 收集
### 細部動作/函式 收集

---

# 五、頁面
## 5.1 頁面統整
> SA : SRS文件
> SD : SDD文件
> 功能/流程的解答:會用到的頁面清單

## 5.2 頁面分析
> SA : SRS文件
> SD : SDD文件
> 頁面統整的解答:頁面具體排版、欄位、及動態畫面規則,注意收集副產品
> 副產品為此項目的解答方向

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄
>
> 頁面統整、頁面分析 可視狀況合併

### 狀態/控制參數 收集
### 欄位/資料內容 收集
### 細部動作/函式 收集

---

# 六、欄位
## 6.1 欄位統整
> SD : SDD文件
> 收集會用到的資料欄位,並分類

## 6.2 資料庫設計
> SD : SDD文件
> 欄位統整的解答:依照分類好的資料設計Database Schema,並注意和其他資料庫關系

---

# 七、資料格式分析/定義
## 7.1 流程控制參數、資料交換格式
> SD : SDD文件
> 案例分析/流程分析/頁面分析的解答
>
> - Request:
> POST/GIT/PUT/DELETE URL
>
> - Request Body:
> {
> 'dataKey1': $dataValue1,
> 'dataKey2': $dataValue2,
> :
> :
> }
>
> - Response:
> {
> 'code': 200, // HTTP狀態碼 200,400
> 'data': [$data], // 回傳資料
> 'message': '',// 回傳訊息
> }
>
> $data = {
> 'dataKey1': $dataValue1,
> 'dataKey2': $dataValue2,
> :
> :
> }

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄

## 7.2 資料格式、物件格式
> SD : SDD文件
> 案例分析/流程分析/頁面分析的解答

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄

---

# 八、函式庫設計
### 8.1 影響 - 檔案結構
- 資料夾1
- 資料夾2
- 檔案1
- 檔案2
- 資料夾3
- 檔案3
- 檔案4

> 列出相關檔案結構有助於整體性的了解相關檔案

## 8.2 函式統整
### 8.2.1 前端函式
> SD : SDD文件
> 收集會用到的前端函式,並分類
> 案例分析/流程分析/頁面分析的解答

### 8.2.2 後端函式
> SD : SDD文件
> 收集會用到的後端函式,並分類
> 案例分析/流程分析/頁面分析的解答

## 8.3 函式庫設計
### 8.3.1 前端函式庫設計
> SD : SDD文件
> 依照分類好的函式設計函式庫,並注意和其他函式庫關系、複用性


> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄

### 8.3.2 後端函式庫設計
> SD : SDD文件
> 依照分類好的函式設計函式庫,並注意和其他函式庫關系、複用性
> 案例分析/流程分析/頁面分析的解答

> - 設計說明
> - 重要規則
> - 模糊的地方
> - 問題點記錄

---

# 九 工作&測試項目
## 9.1 工作項目
> 將要做的事條列成工作項目,並排列執行順序

## 9.2 測試項目
> 針對工作項目、需求做測試,需注意明定測試步驟與通過標準

### 前端測試項目
> 頁面規則測試,請確定 需求、案例、頁面動態 中重要的地方都有測到
> 請條列化或表格化

### 後端測試項目
> 邏輯測試,請確定 需求、案例、功能流程 中重要的地方都有測到
> 請條列化或表格化


---

# 十、問題與討論
> 記錄要討論的問題或想法

---

# 十一、註解、參數定義、名詞定義
> 重要說明、重要規則、未做到的項目、地雷、將來要改進的項目、套件相依性、版本相依性

---

# 十二、參考資料
> 參考資料清單

二、Log

  • 2017-09: Mars Hung編寫於HackMD
  • 2017-11: Mars Hung修訂
  • 2019-07-30: Mars Hung重製成md檔
  • 2020-02-25: Mars HUng內容調整