通過采用適當?shù)姆椒?,將要研究的復雜問題,分解成多階段,多個相對簡單的小問題,逐個地分階段進行解決。
在軟件開發(fā)的整個過程中,要經歷這樣幾個階段:需求分析→提出總體方案→系統(tǒng)規(guī)劃→概要設計→詳細設計→代碼設計→測試→用戶培訓→試運行→用戶意見反饋→產品完善→正式運行→用戶意見反饋→產品升級,最終成為完善的軟件產品。

其中最重要的是需求分析階段。只有明確需求,并滿足軟件設計人員和用戶在對同一問題的理解完全一致的前提下,才能確保一個軟件開發(fā)工作的順利進行,該階段是項目能否成功的關鍵。這個階段需要和用戶反復溝通,明確用戶要實現(xiàn)的功能、達到的效果以及其現(xiàn)有硬件設備和網(wǎng)絡環(huán)境等情況。一個大的項目有時需要進行幾十次需求溝通,每次形成一個簡單的需求說明書,當需求說明書得到用戶的認可后,才可以進入下一階段。也有人說,完成需求,就已經完成了項目的一半。該階段需要介入的人員有項目經理、系統(tǒng)分析師、軟件設計師、美工。其中,項目經理負責整個項目的協(xié)調工作;系統(tǒng)分析師和軟件設計師負責根據(jù)用戶提出的需求,判斷該需求根據(jù)現(xiàn)有人員、技術是否可以實現(xiàn),如果不可以,協(xié)商用戶以可以實現(xiàn)的方式解決問題;美工負責理解用戶對軟件產品展現(xiàn)形式的需求,并以此來設計軟件的外觀(包括內容展現(xiàn)形式、色調、風格等)。該階段形成的書面材料:《需求分析說明書》。
明確需求后,由系統(tǒng)分析師和軟件設計師嚴格按照《需求分析說明書》為用戶設計總體方案,該方案是面向用戶的,內容盡量少地涉及技術層面內容,主要側重功能描述。包括該軟件有多少功能模塊,具體功能描述,輔助手段說明,最終達到的使用效果,以及對一些用戶關心的特性(如安全性、可靠性等)方面的描述,同時,為客戶提供一些硬件設備選擇方案。該階段形成的書面材料:《項目總體方案》。
系統(tǒng)分析師和軟件設計師根據(jù)《項目總體方案》,做系統(tǒng)規(guī)劃和概要設計。從該步驟開始,以下的各步都將面向開發(fā)人員,形成的文字材料均以專業(yè)術語和列表等形式展現(xiàn),盡量少用或不用描述性語言,力求言簡意賅地表達。該階段按軟件模塊提取功能點,不同模塊間有交叉或相似內容的進行合并,并詳細說明每個模塊下包含的具體功能點,如增加、刪除、修改、檢索、分類、排序等,即對功能模塊進行細化。形成的書面材料:《概要設計說明書》。
在概要設計基礎上,系統(tǒng)分析師和軟件設計師進行詳細設計。該階段將搭建軟件系統(tǒng)的整體框架,框架搭建一般有兩種方式:一種從技術角度,按功能點搭建;另一種按內容,即按模塊來組織。其中第二種用的居多,即按內容分成若干模塊,在每個模塊下,確定需要開發(fā)的功能函數(shù)(在面向對象的設計方法中我們稱其為方法),把這些函數(shù)或方法要實現(xiàn)的功能都確定下來,并設計數(shù)據(jù)庫的結構,包括有多少表,每個表有哪些字段,主鍵,外鍵,字段長度,是否需要索引,表與表間是否有關聯(lián),是否需要建立觸發(fā)器等內容。形成的書面材料:《功能設計說明書》、《數(shù)據(jù)庫設計說明書》。
代碼設計,即逐行編寫代碼的過程,也是從無到有建立該軟件的過程。很多人通常所說的開發(fā),都狹義地指這部分。實際開發(fā)中,這部分在前面各項設計完成的基礎上,僅僅是一個實施過程,難度很小。該階段主要介入的人員是軟件設計師和程序員。形成的書面材料:《項目實施計劃》、《軟件安裝手冊》、《客戶端配置說明書》、《性能優(yōu)化配置參考》、《系統(tǒng)常見問題幫助文檔》、《用戶使用手冊》、《管理員使用手冊》、《軟件驗收確認單》、《培訓計劃》等。
完成代碼設計的軟件產品,要經過測試才能拿給用戶。測試種類很多,根據(jù)軟件產品的規(guī)模和每個開發(fā)團隊的實際情況選擇最適合自己的方法。常用的小規(guī)模軟件測試一般按下面流程進行:首先是自測,誰寫的程序由誰來測試;如果沒有發(fā)現(xiàn)問題,再由本組的軟件設計師進行測試,稱這部分為組內測試;之后由非開發(fā)組的成員,但仍然是開發(fā)人員進行測試,稱為組間測試;前面的這些測試,都是針對軟件的代碼、可靠性、安全性、穩(wěn)定性等方面進行的,完成的是集成、系統(tǒng)、環(huán)境等方面的測試,是面向技術層面的。之后由用戶測試,這部分主要對軟件功能進行測試,看能否滿足用戶的需求,與他們要達到的效果是否一致。形成的書面材料:《測試用例說明》、《系統(tǒng)測試報告》。
完成測試的軟件產品,到現(xiàn)場給用戶安裝、調試,之后進行用戶培訓。培訓分兩個層次:一層是針對系統(tǒng)管理員,一層是針對普通用戶。之后進入試運行階段,時間通常是3到6個月,視軟件規(guī)模、復雜性而定,這個階段及以后的正式運行階段,用戶將不停地提出反饋意見,軟件設計人員根據(jù)意見反復修改,之后完成產品的升級,形成最終的軟件產品。