1. 程式人生 > >軟體專案的生命週期

軟體專案的生命週期

 

              專案計劃

              需求分析

              設計(概要設計和詳細設計)

              編碼

              測試

              釋出

              維護

   專案計劃階段:走訪客戶,進行交流溝通,獲得客戶原始需求。

對客戶的需求和市場等進行調研,分析,編寫可行性分析報告。

通過不斷的與客戶溝通,找客戶不同環節的使用者進行交流來獲取需求。召開評審會議,報告可行性分析,報告使用者原始需求,報告專案遠景規化。

       需求分析階段:

              在客戶原始需求的基礎上不斷與客戶溝通,充分的熟悉和深入客戶業務,獲得充分的業務需求,完善使用者需求和功能性需求,瞭解客戶的相關約束而獲得非功能性需求。最終編寫《需求規格說明書》;召開需求評審會議,客戶確定需求,並簽定合同;編寫專案計劃說明書;編寫測試計劃;召開專案啟動會議,專案正式啟動。

       概要設計階段:根據《需求分析說明書》,進行用例分析,獲得充分而有效的用例。編寫介面原型,編寫編碼規範和介面風格規範,資料庫設計規範。用uml工具畫用例圖,編寫有效的用例規約文件。劃分專案功能模組.評審用例及用例規約文件。

       詳細設計階段:根據完整的用例及需求進行分析,獲得資料庫所需的相關資訊,畫資料庫E-R圖,編寫資料設計說明書.進行資料庫建模。進行詳細的分析,用uml工具畫類圖,確定每個功能模組的子功能,抽取專案的公共部分成為一個公共模組。確定專案的架構基礎。確定需要用到的類及類成員和方法。確定一些輔助類及方法。對每一個用例都用uml工具畫出順序圖。編寫詳細設計說明書,評審詳細設計說明書, 進行基礎框架搭建。列出任務清單,進行任務分配。

       編碼階段:以小組的形式進行程式碼編寫,編寫單元測試用例,每完成一個類都要進行單元測試。每完成一個功能點和模組都要進行整合測試。確保每一個功能點和模組完成後都是一個可以看得見、摸得著的產品。而不是等到最後才進行統一的除錯和搭配。每天都要對程式碼進行檢查和優化,也就是所謂的重構。

       測試階段:根據測試計劃對專案進行系統測試,以及使用者的驗收測試

       產品釋出:交付完整的產品和設計文件。把產品佈署到客戶的計算機上,確保產品的正常執行。客戶簽收。

       維護階段:為客戶提供技術保障,對產品進行相應的維護和升級工作。

軟體常見開發模型

       瀑布模型:最經典的過程模型,適用於需求明確,規模較小的專案

       噴泉模型:迭代,無間隙特點,適用於面向物件的軟體開發過程

       螺旋模型:

       MSF模型:微軟解決方案過程模型

單元測試:和開發同步的測試。

整合測試:一個大的功能模組測試。

系統測試:整個專案完成後釋出測試。

驗收測試:交付客戶測試。

考官:令狐沖,能談談你們是怎麼樣對這個專案開發的嗎?

令狐沖:首先,我們這個專案已經有了一個基本的使用者原始需求。但這是不夠的,我們都知道需求分析是十分重要的,所以我們在使用者原始需求文件的基礎上,再次進行了分析,通過不斷的與客戶溝通,充分的瞭解和熟悉使用者的業務,完善了業務需求和功能需求。還對使用者業務需求和功能需求分析完善為實現軟體的必須的非功能性需求。得出專案需求規格說明書,經過評審會議確認通過。

根據需求規格說明書進行用例分析,通過分析和討論找出充分的有效用例,並用Rose畫用例圖。對每一個用例進行詳細的分析,完成每個用例的用例規約文件,並編寫介面原型。劃分專案模組。最後對用例及用例規約文件進行評審驗證。編寫”程式碼編寫規範”及介面風格規範,資料庫設計規範,編寫概要設計說明書。

根據需求規格說明書和分析各個用例規約文件,獲得資料庫的基本資訊原型。也可以說是資料庫表的草稿,根據資料庫表草搞進行分析,進行資料庫設計和優化。編寫資料庫設計說明書。採用PowerDesigner進行資料庫建模,並生成SQL指令碼。確定專案框架,設計公共模組和輔助類。根據對資料庫模型和用例規約文件的分析,列出物件清單和理清物件關係。用Rose來畫類圖。對每一個用例都用rose畫出時序圖。編寫詳細設計說明書。列出任務清單,分組進行程式碼編寫。

在程式碼編寫階段,先統一完成所有的實體類。對於非實體類則先完成類的框架,也就是隻寫方法和註釋文字。具體方法的實現暫時為空。然後再進行程式碼填寫。每完成一個類的程式碼編譯通過後都要進行重構和單元測試。每完成一個功能和模組都由會由小組長進行整合測試。使得完成的模組是一個真正可以執行的,可見的功能實現。

在各個小組都完成自己的模組後就進行模組整合,進行一次大規模的整合測試。然後把產品產給產品測試小組進行系統測試。