用戶:知道做什麽,但不知道怎麽做。
開發商:我知道怎麽做,但是不知道怎麽做。
因此,系統分析師必須與用戶密切合作,充分交流信息,並得到用戶認可的系統需求。
需求分析的目的是明確用戶的需求,並清楚地表達雙方對壹份書面文件的理解——需求規格說明書。
需求分析是壹項軟件工程活動,包括需求獲取、需求建模、需求規格說明和需求評審。
需求分析模型是精確描述需求的圖形化工具,主要包括實體關系圖、數據流圖和狀態轉移圖。需求分析建立的模型,為軟件設計人員提供了壹個未來可以翻譯成數據結構、架構、接口和流程設計的模型。
如上圖所示,建立目標系統模型的過程分四步完成:
將分析結果記錄在正式文檔中,作為最終軟件配置不可或缺的壹部分。需求規格說明書為開發人員和用戶提供了軟件開發完成後進行質量評估的基礎。
作為需求分析階段的審查手段,功能和其他需求的正確性、完整性和清晰性應在需求分析的最後壹步進行評估。
需求分析研究的對象是用戶的需求。我們必須充分了解用戶的需求,準確表達他們的要求。只有精確描述的軟件需求才能成為軟件設計的基礎。
評審應由專人進行,評審小組由軟件開發成員、軟件專家、領域專家和用戶組成。
需求分析是壹個叠代的過程。只有需求全面準確,才能開發出用戶滿意的系統。
需求獲取是軟件開發中最重要的環節之壹,其質量對整個軟件系統開發的成敗有著決定性的影響。需求獲取涉及大量的工作,涉及大量的流程、人員、數據和信息,因此獲取真實、全面的需求需要有正確的方法。常規的需求獲取方法如下:
需求分析模型是精確描述系統需求的圖形化工具。它可以使人們更好地理解要構建的系統,幫助系統分析人員理解系統的信息、功能和行為,成為確定需求規格說明的完整性、壹致性和準確性的重要依據,為軟件設計奠定基礎。
需求分析建模的方法包括結構化分析建模和面向對象分析建模。
結構化分析得出的分析模型包括數據模型、功能模型和行為模型。
需求分析模型以“數據字典”為核心,描述軟件使用的所有數據對象。圍繞這個核心是“實體關系圖”、“數據流圖”、“狀態轉移圖”。
具體形式如下圖所示:
ER(實體-關系圖):是壹種數據模型,用實體、關系、屬性三個基本概念概括數據的基本結構,從而描述靜態的數據結構。
ER包括三個基本要素:
關聯的多重性定義了在關聯的壹端可以存在的數據實體實例的數量。關聯的多重性可以具有下列值之壹:
根據關聯的多樣性,兩個數據對象之間有三種關聯:
下面的實體關系圖描述了教師、課程和學生之間的關系。
下面的實體關系圖描述了考勤、員工、獎金和扣款之間的關系。
數據流圖(DFD)是描述數據流和數據轉換的圖形工具,是結構分析的基本工具,是軟件體系結構設計的基礎。
DFD有四個元素,其基本符號如圖所示:
示例:薪資計算系統頂層(0級)數據流圖:
數據流圖中有時會使用附加符號:*、+和⊕,分別表示與、或和的排他關系。
數據流圖可以分為不同的層次,頂層(0級)DFD稱為基本系統模型,可以將整個軟件系統表示為壹個有輸入輸出的黑盒,其處理是軟件項目的名稱,用圓圈表示。
DFD中的每個流程都可以進壹步展開成壹個獨立的數據流圖,以揭示系統中流程的細節。這種逐漸細化的過程可以繼續下去,直到最低的DFD圖只描述了加工的原子過程。每壹層的數據流圖必須是平衡的,並且與它上面的層的數據流圖的輸入和輸出壹致。
數據流圖是在需求陳述的基礎上繪制的。
這個數據流圖只是壹個高層的系統邏輯模型,反映的是目標系統要實現的功能。
第二層數據流圖-銷售細化:
第二層數據流圖——采購細化;
當軟件系統涉及時序關系時,需要對其進行建模。因為數據流圖沒有描述時序關系,所以需要用行為模型來描述系統的控制和事件流。
在描述系統或每個數據對象的行為時,采用狀態轉移圖。系統或對象的行為通過描述系統或對象的狀態以及導致系統或對象的狀態轉換的事件來表示。
狀態轉換圖(STD)是描述系統狀態如何轉換以響應外部事件的圖形表示。
狀態是可以觀察到的系統的任何行為模式,狀態代表系統的壹種行為模式。狀態指定系統如何響應事件。狀態圖中定義的狀態主要包括:初始狀態、中間狀態和最終狀態。
事件是在特定時刻發生的事情。它是導致系統從壹種狀態轉換到另壹種狀態的外部事件的抽象。
在狀態轉換圖中,圓圈“○”表示可用的系統狀態,箭頭“→”表示從壹個狀態到另壹個狀態的轉換。事件的名稱標記在箭頭旁邊。
數據字典用於在數據流圖中描述數據存儲、數據處理和數據流。數據字典和數據流圖能夠準確清晰地表達數據處理的需求。
定義數據流圖中的每個命名圖形元素,包括名稱、別名或編號、分類、描述、定義、位置等。
在數據字典中,數據元素的定義可以是基本元素及其組合,數據自上而下分解,直到不需要進壹步解釋,參與者知道其含義。
數據流定義示例:機票預訂表單的數據定義
數據元素定義的示例:測試分數的數據定義
數據文件定義示例:圖書庫存的數據定義
數據處理定義示例:編輯預訂的數據定義。
外部實體定義示例:教師數據定義
存折=戶名+辦公號+賬號+開戶日期+性質+(蓋章)+1 {存取款銀行}50。
帳戶名= 2 {letter }24
編號=“001”。"999"
賬號= "0000001 ".."9999999"
開戶日期=年+月+日
Property = "1 "..“6”註:“1”表示普通戶,“5”表示工薪戶等。
Seal = "0 "註意:存折上不顯示印章。
存取款銀行=日期+(匯總)+支出+存款+余額+操作+審核。
SRS(軟件需求規格說明)是系統分析師在需求分析階段完成的文檔,是軟件需求分析的最終結果。
其主要功能是:作為軟件人員與用戶之間事實上的技術合同;作為軟件人員下壹步設計編碼的基礎;作為測試和驗收的依據。
SRS必須在統壹格式的文檔中描述。為了使需求分析和描述具有統壹的風格,我們可以使用現有的能夠滿足項目需求的模板,如中國國家標準推薦的SRS模板,也可以根據項目的特點和軟件開發團隊的特點對標準進行適當的修改,形成我們自己的模板。