一:編寫目的
本文檔的編寫旨在探尋規(guī)范的軟件開發(fā)流程、加快軟件開發(fā)速度、提高軟件開發(fā)質(zhì)量、降低項(xiàng)目綜合成本。
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我們要做的就是:提供優(yōu)質(zhì)服務(wù)、項(xiàng)目周期短、成本低廉
二:總體說明
項(xiàng)目從用戶需求說明書的提出,到系統(tǒng)的第一個(gè)完整版本的交付使用經(jīng)歷了若干或復(fù)雜或簡單的過程,但不管項(xiàng)目大小如何一般需要經(jīng)歷以下幾個(gè)步驟:
1. 需求分析。
2. 撰寫需求規(guī)格說明書
3. 總體設(shè)計(jì)
4. 詳細(xì)設(shè)計(jì)
5. 編碼實(shí)現(xiàn)
6. 測試、試運(yùn)行、上線
7. 驗(yàn)收
8. 日常維護(hù)
9. (下一個(gè)版本的循環(huán)開發(fā))
在以上各步驟中尤其重要的是系統(tǒng)分析和撰寫需求規(guī)格說明書。當(dāng)定義好《需求規(guī)格說明書》后需要用戶簽字確認(rèn),以此作為項(xiàng)目驗(yàn)收的依據(jù),在中大型項(xiàng)目中尤其重要。
失敗的項(xiàng)目原因很多但以下幾點(diǎn)比較普遍:
(1)商務(wù)運(yùn)作中為了拉住“單子”對(duì)客戶的眾多紛繁復(fù)雜的要求一味的妥協(xié)讓步滿口答應(yīng)。項(xiàng)目開發(fā)計(jì)劃、時(shí)間表等完全依照客戶意見,不以具體項(xiàng)目的客觀事實(shí)為依據(jù),不做認(rèn)真細(xì)致嚴(yán)格的項(xiàng)目復(fù)雜度、項(xiàng)目工作量的評(píng)估。
(2) 不做細(xì)致的用戶需求分析導(dǎo)致項(xiàng)目后期的需求變更較大不能按期完成項(xiàng)目。
三:項(xiàng)目開發(fā)經(jīng)歷的各階段
在項(xiàng)目開發(fā)的各階段時(shí)間比例方面,中小項(xiàng)目一般控制在
1: 40% 設(shè)計(jì)
2: 40% 編碼
3: 20% 總體設(shè)計(jì)/試運(yùn)行
3.1 需求分析階段
研究客戶需求,從中找出需求中模糊不清的地方,反復(fù)討論確認(rèn)。在不斷的確認(rèn)中,包括需求的總體認(rèn)知、需求邊界定義、目前技術(shù)條件下的可實(shí)現(xiàn)需求、用戶界面等。通過項(xiàng)目組內(nèi)討論、與客戶(直接客戶、間接客戶)討論等方式不斷清晰客戶真正的需求,從而撰寫〈〈需求規(guī)格說明書〉〉,在取的客戶認(rèn)可后簽字,以此做為項(xiàng)目開發(fā)的第一個(gè)里程碑。在項(xiàng)目驗(yàn)收時(shí)以此作為驗(yàn)收的主要依據(jù)
在系統(tǒng)分析階段與客戶的溝通方式可以通過(1)項(xiàng)目靜態(tài)圖、項(xiàng)目靜態(tài)界面DEMO(2) 系統(tǒng)用例圖(例如:rose軟件的用例圖) 等方式與客戶溝通。
本階段要完成的工作有:
1.撰寫項(xiàng)目需求分析報(bào)告
本報(bào)告主要目的是項(xiàng)目分析人員提出需求的疑難不清問題,為與客戶有效、準(zhǔn)確溝通準(zhǔn)備必要的材料。
2.畫用例圖
描述系統(tǒng)各個(gè)不同用戶類型與本系統(tǒng)及其他系統(tǒng)等的交互過程。
3.建立項(xiàng)目靜態(tài)界面DEMO
使得用戶在項(xiàng)目初期就可以看到項(xiàng)目上線實(shí)施后的使用界面和使用方法等
4. 做必要的技術(shù)預(yù)研等。
3.2撰寫需求規(guī)格說明書
需求規(guī)格說明書的撰寫主要目的是把客戶天馬行空、紛繁復(fù)雜、憑想象等的理想需求中變成在一定時(shí)間段、一定技術(shù)條件下可實(shí)現(xiàn)的需求。不然項(xiàng)目會(huì)很難滿足客戶的理想需求,永遠(yuǎn)被客戶的理想需求所限制,陷入一種非常被動(dòng)的狀態(tài)。
3.3總體設(shè)計(jì)
在完成項(xiàng)目需求規(guī)格說明書后,就進(jìn)入項(xiàng)目總體設(shè)計(jì)的階段。
在總體設(shè)計(jì)階段需要完成的文檔有:
1. 《項(xiàng)目總體設(shè)計(jì)---概要設(shè)計(jì)說明書》、
2. 《數(shù)據(jù)庫設(shè)計(jì)報(bào)告》
3. 《項(xiàng)目總體開發(fā)時(shí)間表》
在此階段應(yīng)該建立項(xiàng)目的正式開發(fā)環(huán)境、項(xiàng)目測試環(huán)境、建立項(xiàng)目基本開發(fā)框架且導(dǎo)入項(xiàng)目管理配置工具中(例如:CVS、VSS等)等
在項(xiàng)目的以上階段完成后,建議進(jìn)行項(xiàng)目總體設(shè)計(jì)和總體開發(fā)準(zhǔn)備情況的評(píng)審工作。在公司、集團(tuán)專家組評(píng)審?fù)ㄟ^后本階段結(jié)束,這算做項(xiàng)目的第二個(gè)里程碑。
在進(jìn)行下一階段前,目前項(xiàng)目組可以對(duì)SCCB(軟件變更控制委員會(huì))提交的資料有:
1:《需求規(guī)格說明書》
2:《項(xiàng)目總體設(shè)計(jì)概要說明書》
3:《項(xiàng)目界面設(shè)計(jì)說明書》(及界面DEMO)
4:《項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)說明書》等
5:《項(xiàng)目總體開發(fā)時(shí)間表》
3.4詳細(xì)設(shè)計(jì)
在項(xiàng)目完成總體設(shè)計(jì)和搭建完畢開發(fā)環(huán)境后,就可以進(jìn)行項(xiàng)目的詳細(xì)設(shè)計(jì)。
在項(xiàng)目中建議詳細(xì)設(shè)計(jì)由項(xiàng)目編寫“后臺(tái)”程序的資深人員編寫。主要完成每個(gè)負(fù)責(zé)的業(yè)務(wù)模塊從界面到業(yè)務(wù)實(shí)現(xiàn)到數(shù)據(jù)庫連接操作的主要步驟和數(shù)據(jù)庫的實(shí)現(xiàn)SQL。最好在條件允許的情況下編寫模塊單元測試程序,在整個(gè)模塊編碼階段完成后進(jìn)行程序單元測試工作。(“測試驅(qū)動(dòng)”的開發(fā)理念)
詳細(xì)設(shè)計(jì)目的是在不編寫代碼和少量代碼的情況下,完成項(xiàng)目模塊的模擬編程實(shí)現(xiàn)。
在詳細(xì)設(shè)計(jì)階段可以對(duì)項(xiàng)目某模塊做準(zhǔn)確的工作量統(tǒng)計(jì),依此為依據(jù)整個(gè)項(xiàng)目比較準(zhǔn)確的工作量就可以被統(tǒng)計(jì)出來。
3.5編碼實(shí)現(xiàn)
(略)
3.6測試、試運(yùn)行、上線
(略)