一、角色劃分
1. 項目負(fù)責(zé)人
? 負(fù)責(zé)項目的業(yè)務(wù)分析、人事協(xié)調(diào)、時間進(jìn)度,用戶體驗等安排等;
2. 開發(fā)工程師
? 主要負(fù)責(zé)項目的需求分析,概要設(shè)計,詳細(xì)設(shè)計、代碼編寫,代碼整合,代碼測試,項目部署,項目維護(hù)等工作
3. 美工/UI
? 主要負(fù)責(zé)網(wǎng)站/app的界面設(shè)計、版面規(guī)劃等。
注:開發(fā)工程師又可分為前端開發(fā)和后臺開發(fā)。
二、項目開發(fā)流程
1. 需求階段
- 用戶/市場調(diào)研
- 問題分析:獲取需求定義,又稱軟件需求規(guī)約.
- 需求分析:需求分析生成功能規(guī)約。
- 項目評估:了解開發(fā)難度,評估開發(fā)工作量,指定開大進(jìn)度計劃和里程碑節(jié)點。
2. 設(shè)計階段
-
概要設(shè)計
??建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊的接口定義,命名規(guī)則,模塊之間的調(diào)用關(guān)系等。
概要設(shè)計的重要輸出
編碼規(guī)范:信息形式、接口規(guī)約、命名規(guī)則;
物理模型:組件圖、配置圖;
不同角度的構(gòu)架視圖:用例視圖、邏輯視圖、進(jìn)程視圖、部署視圖、實施視圖、數(shù)據(jù)視圖(可選);
系統(tǒng)總體布局:哪些部分組成、各部分在物理上、邏輯上的相互關(guān)系;
兩個不可忽視的輸出:
與需求功能的關(guān)系:對于需求中的每一個功能,用哪一層、哪個模塊、哪個類、哪個對象來實現(xiàn)(一對多關(guān)系);反過來,應(yīng)當(dāng)說明將要創(chuàng)建的系統(tǒng)每一層、每個模塊、每個對象、每一個類“做什么”,他們是為了幫助實現(xiàn)哪些功能(一對多關(guān)系)。(需求的顆粒度在一開始往往是比較粗的,因此根據(jù)功能點對于整體項目規(guī)模的估計或得到項目WBS其誤差范圍也是比較大的。更為重要的原因是,需求往往不是編碼工作分解的準(zhǔn)確依據(jù),因為一個需求的功能點可能對應(yīng)多個代碼模塊,而多個需求的功能點也可能只對應(yīng)一個或少數(shù)代碼模塊,同時還有軟件復(fù)用等因素要考慮,因此只有在概要設(shè)計完成以后才能準(zhǔn)確地得到詳細(xì)設(shè)計或編碼階段的二次WBS,并估計較為準(zhǔn)確的整體項目規(guī)模。)
邏輯與物理位置:每個對象在邏輯上分別落在哪一層、哪個模塊、哪個類;在物理上每個模塊、每個對象、每一個類放在哪個應(yīng)用服務(wù)器或客戶端的哪個目錄、哪個文件(庫),或者是建立在數(shù)據(jù)庫管理系統(tǒng)中的什么東東(過程、函數(shù)、視圖、觸發(fā)器等等)。
-
詳細(xì)設(shè)計
??產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。
-
(1) 總體結(jié)構(gòu)設(shè)計
- 系統(tǒng)結(jié)構(gòu)圖
- 模塊調(diào)用關(guān)系
-
(2) 模塊設(shè)計
-
用戶界面設(shè)計
- 版式設(shè)計
- 交互設(shè)計
-
需求規(guī)格設(shè)計:明確業(yè)務(wù)細(xì)節(jié),使開發(fā)者對業(yè)務(wù)功能理解基本一致。
- (業(yè)務(wù))功能需求
- 安全性需求
- 維護(hù)性需求:對源代碼的標(biāo)準(zhǔn)化、文檔的標(biāo)準(zhǔn)化等
- 移植性需求:二次開發(fā)接口
- 性能需求:內(nèi)存,運行速度,響應(yīng)時間,帶寬需求,并發(fā)性支持等
- 運行環(huán)境需求:系統(tǒng)環(huán)境,協(xié)同工具等
- 可靠性需求
-
通訊協(xié)議設(shè)計
- 模塊接口設(shè)計
- 軟件接口設(shè)計
- 前后端接口設(shè)計
- 用戶接口設(shè)計(交互)
-
數(shù)據(jù)庫設(shè)計
- 對象屬性結(jié)構(gòu)設(shè)計
- 對象關(guān)聯(lián)、級聯(lián)設(shè)計
- 數(shù)據(jù)庫備份設(shè)計
-
測試用例設(shè)計
- 白盒測試用例設(shè)計
- 黑盒測試用例設(shè)計
-
3. 開發(fā)階段
- 框架和工具的選擇
4. 測試階段
- 功能測試
- 壓力測試