第三章 軟件需求分析
需求分析:開發(fā)人員準確地理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的需求規(guī)格說明的過程。
它有以下幾難點:
、 問題的復雜性。由用用戶需求涉及的因素繁多引起,如運行環(huán)境和系統(tǒng)功能
、 交流障礙。需求分析涉及人員較多,這些人具備不同的背景知識,處于不同角度,扮演不同角色,造成相互之間交流困難。
、 不完備性和不一致性。用戶對問題的陳述往往是不完備的,各方面的需求可能還存在矛盾,需求分析要消除矛盾,形成完備及一致的定義。
⑷ 需求易變性。
近幾年來已提出多種分析和說明方法,但都必須適用以下原則:
、 必須能夠表達和理解問題的數(shù)據(jù)域和功能域。數(shù)據(jù)域包括數(shù)據(jù)流(數(shù)據(jù)通過一個系統(tǒng)時的變化方式)數(shù)據(jù)內(nèi)容和數(shù)據(jù)結構,功能域反映上述三方面的控制信息。
、 可以把一個復雜問題按功能進行分解并可逐層細化。
、 建模?筛玫乩斫廛浖到y(tǒng)的信息,功能,行為。也是軟件設計的基礎。
需求分析的任務:
、 問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。
、 分析與綜合,導出軟件的邏輯模型
、 編寫文檔:包括編寫"需求規(guī)格說明書""初步用戶使用手冊""確認測試計劃""修改完善軟件開發(fā)計劃"
結構化分析:簡稱SA,面向數(shù)據(jù)流進行數(shù)據(jù)分析的方法。采用自頂向下逐層分解的分析策略。頂層抽象地描述整個系統(tǒng),底層具體地畫出系統(tǒng)工程的每個細節(jié)。中間層則是從抽象到具體的過渡。使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結構化語言,判定表,判定樹描述加工邏輯。
結構化(SA)分析步驟:
、帕私猱斍跋到y(tǒng)的工作流程,獲得當前系統(tǒng)的物理模型。
、瞥橄蟪霎斍跋到y(tǒng)的邏輯模型。
、墙⒛繕讼到y(tǒng)的邏輯模型。
⑷作進一步補充和優(yōu)化。
數(shù)據(jù)流圖(DFD)
以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過程。只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。
畫數(shù)據(jù)流圖的步驟:
⑴首先畫系統(tǒng)的輸入輸出,即先畫頂層數(shù)據(jù)流圖。頂層圖只包含一個加工,用以表示被開發(fā)的系統(tǒng)。
⑵畫系統(tǒng)內(nèi)部,即畫下層數(shù)據(jù)流圖。將層號從0號開始編號,采用自頂向下,由外向內(nèi)的原則。畫更下層數(shù)據(jù)流圖時,則分解上層圖中的加工,一般沿著輸出入流的方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設置一個加工,一直進行到輸出數(shù)據(jù)流。如果加工的內(nèi)部還有數(shù)據(jù)流,則繼續(xù)分解,直到每個加工足夠簡單,不能再分解為止。不能分解的加工稱為基本加工。
、亲⒁馐马棧
、泵。不能使用缺乏具體含義的名字,加工名應能反映出處理的功能。
⒉畫數(shù)據(jù)流而不是控制流。數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。
、骋话悴划嬑镔|(zhì)流。
、疵總加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結果 。
⒌編號。某個加工分解成加一張數(shù)據(jù)流圖時,上層圖為父圖,下層圖為子圖。子圖應編號,子圖上的所有加工也應編號,子圖的編號應與父圖的編號相對應。
、陡笀D與子圖的平衡。子圖的輸入輸出數(shù)據(jù)流同父圖相應加工的輸入輸出數(shù)據(jù)流必須一致
、肪植繑(shù)據(jù)存儲。當某數(shù)據(jù)流圖書館中的數(shù)據(jù)存儲不是父圖中相外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。
、柑岣邤(shù)據(jù)流圖的易理解性。
為使數(shù)據(jù)流圖便于在計算機上輸入和輸出,給出了描述數(shù)據(jù)流圖的另一套圖形符號表示數(shù)據(jù)流,只能水平或垂直畫
數(shù)據(jù)字典(DD)用來定義數(shù)據(jù)庫流圖中的各個成分的具體含義。有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項,數(shù)據(jù)存儲,基本加工。
⒈數(shù)據(jù)流條目,內(nèi)容及舉例如下:
數(shù)據(jù)流名稱:訂單
別名:無
簡述:顧客訂貨時填寫的項目
來源:顧客
去向:加工1"檢驗訂單"
數(shù)據(jù)流量:1000份/每周(單位時間內(nèi)的傳輸次數(shù))
組成:編號+訂貨日期+顧客編號+地址+電話+銀行帳號+貨物名稱+規(guī)格+數(shù)量
⒉數(shù)據(jù)存儲條目,內(nèi)空及舉例
數(shù)據(jù)存儲名稱:庫存記錄
別名:無
簡述:存放庫存所有可供貨物的信息
組成:貨物名稱+編號+生產(chǎn)廠家+單價+庫存量
組織方式:索引文件,以貨物編號為關鍵字
查詢要求:要求能立即查詢
、硵(shù)據(jù)條目,內(nèi)容及舉例
數(shù)據(jù)項名稱:貨物編號
別名:G-No,G-num,Goods-No
簡述:本公司所有貨物的編號
類型:字符串
長度:10
取值范圍及含義:
第一位:進口/國產(chǎn)
第2-4位:類別
第5-7位:規(guī)格
第8-10位:品名編號
、醇庸l目,內(nèi)容及舉例
加工名:查閱庫存
編號:1﹒2
激發(fā)條件:接收到合格訂單時
優(yōu)先級:普通
輸入:合格合格訂單
輸出:可供貨訂單,缺貨訂單
加工邏輯:根據(jù)庫存記錄
IF 訂單項目數(shù)量<該項目庫存量臨界值
THEN 可供貨處理
ELSE 此訂單缺貨,登錄,待進貨后再處理
ENDIF
數(shù)據(jù)字典的實現(xiàn):
、攀止そⅲ簲(shù)據(jù)字典的內(nèi)容用卡片形式存放
、评糜嬎銠C輔助建立并維護
加工邏輯的描述:一般用結構化語言,判定表,判定樹
結構化語言是介于自然語言和形式語言之間的一種半形式化語言。它的結構可分里層和內(nèi)層
、磐鈱樱河脕砻枋隹刂平Y構,采用順序,選擇,重復三種基本結構。
、夙樞蚪Y構:是一組祈使語句,選擇語句,重復語句的順序排列
、谶x擇結構:一般用IF-THEN-ELASE-ENDIF,CASE-OF-ENDCASE等關鍵詞。
、壑貜徒Y構:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等關鍵詞。
、苾(nèi)層:一般采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞和有限的自定義詞,其
動詞含義要具體,盡量不使用形容詞和副詞來修飾。
判定表由四個部分組成:條件定義 條件取值的組合
動作定義 在各種取值的組合下應執(zhí)行的動作
例:加工邏輯描述為,如果申請者的年齡在21歲以下,要額外收費;如果申請者是21歲以上并是26歲以下的女性,適用于A類保險;如果申請者是26歲以下的已婚男性,或者是26歲以上的男性,適用于B類保險;如果申請者是21歲以下的女性或是26歲以下的單身C類保險。附此之外的其他申請者都適用于A類保險。
條件取值表
判定表能在什么條件下系統(tǒng)應做什么動作準確無誤地表示出來,但不能描述循環(huán)的處理特性,循環(huán)處理還需結構化語言。
判定樹,是判定表的變形,比判定表更直觀,更易于理解和使用。
下面的判定樹與所舉例的判定表等價
相關推薦:2010年下半年軟考試題及答案解析匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |