軟體開發流程

2021-07-04 17:46:19 字數 2169 閱讀 1255

1. 產品需求定義

產品需求定義的目標是:「清楚地描述要做的產品是什麼樣的?不涉及具體實現方法。」,其定義過程如下圖所示。

此產品需求定義包括:軟體+硬體。

2.結構化設計方法的基本思路

按照需求,將軟體逐級細化,分解為不必再分解的的模組,每個模組完成一定的功能,為乙個或多個父模組服務(即接受呼叫),也接受乙個或多個子模組的服務(即呼叫子模組)。模組的概念,和程式語言中的子程式或函式是對應的。

3. 架構設計/概要設計

架構設計或概要設計的目標是:「為系統需求或產品需求提供解決方案」。

概要設計:把軟體按照一定的原則分解為模組層次,賦予每個模組一定的任務,並確定模組間呼叫關係和介面。通常輸出的為:「軟體結構圖」。 

在架構設計或概要設計,設計者會大致考慮並照顧模組的內部實現,但不過多糾纏於此。主要集中於:

(1)劃分模組

(2)分配任務

(3)定義呼叫關係

模組間的介面與傳參在這個階段要定得十分細緻明確,應編寫嚴謹的資料字典,避免後續設計產生不解或誤解。概要設計一般不是一次就能做到位,而是反覆地進行結構調整。典型的調整是合併功能重複的模組,或者進一步分解出可以復用的模組。在概要設計階段,應最大限度地提取可以重用的模組,建立合理的結構體系,節省後續環節的工作量。

概要設計文件最重要的部分是:

(1)分層資料流圖

(2)結構圖

(3)資料字典

(4)相應的文字說明

以概要設計文件為依據,各個模組的詳細設計就可以並行展開了。

4.詳細設計

詳細設計的目標是:「提供編碼的依據(資料結構+流程)」。

詳細設計:依據概要設計階段的分解,設計每個模組內的演算法、流程等。通常採用「流程圖」進行描述。

在詳細設計階段,各個模組可以分給不同的人去並行設計。在詳細設計階段,設計者的工作物件是乙個模組,根據概要設計賦予的區域性任務和對外介面,設計並表達出模組的以下內容:

(1)演算法

(2)流程

(3)狀態轉換(狀態機)

注意:如果發現有結構調整(如分解出子模組等)的必要,必須返回到概要設計階段,將調整反應到概要設計文件中,而不能就地解決,不打招呼。

詳細設計文件最重要的部分是模組的以下內容:

(1)流程圖

(2)狀態圖

(3)區域性變數及相應的文字說明。

乙個模組一篇詳細設計文件。

概要設計文件相當於機械設計中的裝配圖,而詳細設計文件相當於機械設計中的零件圖。概要設計中較頂層的部分便是所謂的方案。方案文件的作用是在巨集觀的角度上保持設計的合理性。

有的專案採用物件導向的分析、設計方法。可能在概要設計、詳細設計的分工上疑問更多。其實,物件導向的分析、設計方法並沒有強調結構化方法那樣的階段性,因此一般不引入概要、詳細設計的概念。如果按照公司的文件體系,非要有這種分工的話,可以將包的劃分、類及物件間的關係、類的對外屬性、方法及協作設計看做概要設計;類屬性、方法的內部實現看做詳細設計。

5. 需要分析&概要設計&詳細設計

1)需求分析:產生軟體功能規格說明書,需要確定使用者對軟體的需求,要作到明確、無歧義。不涉及具體實現方法。使用者能看得明白,開發人員也可據此進行下面的工作(概要設計)。

2)概要設計:產生軟體概要設計說明書,說明系統模組劃分、選擇的技術路線等,整體說明軟體的實現思路。並且需要指出關鍵技術難點等。  

3)詳細設計:產生軟體詳細設計說明書,對概要設計的進一步細化,一般由各部分的擔當人員依據概要設計分別完成,然後在整合,是具體的實現細節。理論上要求可以照此編碼。

6. 瀑布模型

瀑布模型如下圖所示:

1)可靠性研究與計畫:做還是不做

2)需求分析:都有什麼功能

3)概要設計:共有多少子功能

4)詳細設計:子功能怎麼實現

5)編碼:子功能實現了嗎?

6)測試:功能完備嗎?

7)部署:需要多少裝置和軟體的支援

8)維護:軟體運動得正常嗎?

軟體開發流程

課程的主講老師是msdn的特約講師邵志東先生。課程中間,邵志東老師介紹了軟體開發流程 程式設計師基本素質 關於質量控制和開發模板及專案組建設。邵老師首先介紹了軟體開發的流程,他把軟體開發分為了兩大類,即專案開發及產品開發。專案開發是公司根據某一客戶的需求單獨為某一客戶訂製的軟體 產品開發是公司針對某...

軟體開發流程

軟體開發流程 software development process 即軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法 軟體的總體結構設計和模組設計 程式設計和除錯 程式聯調和測試以及編寫 提交程式。第一步 需求調研分析 1相關系統分析員向使用者初步了解需求,然後用word列...

軟體開發流程

軟體開發流程 software development process 即軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法 軟體的總體結構設計和模組設計 程式設計和除錯 程式聯調和測試以及編寫 提交程式。目錄開發流程 軟體維護 軟體公升級 報廢處理 舉例解析 第一步 需求調研分析...