本章共分為四個部分,一軟體需求的任務和過程;二結構化分析方法;三,原型化方法四,動態分析方法。
本章學習的要點是
1。了解軟體需求分析的目標和任務;
2.了解軟體需求的獲得方法;
3.掌握結構化的分析方法;
4.了解需求規格說明和需求評審的主要內容。
軟體需求分析的主要任務
:深入描述軟體的功能和效能;
確定軟體設計的約束和軟體同其他系統元素的介面細節;定義軟體的其他有效性需求。
需求分析書要求做到一致性、完整性、現實性、有效性、可驗證性。
需求分析的過程共四個部分:
(1)問題的識別
從系統的角度來理解軟體並評審軟體範圍是否恰當;去誒大**對目標系統的綜合要求,即軟體的需求;提出這些需求實現條件,以及需求應達到的標準。
軟體的需求包括:功能需求;效能需求;環境需求;可靠性需求;安全保密需求;使用者介面需求;資源使用需求、成本消耗需求、開發進度需求;預先估計以後系統可能達到的目標。
問題識別的另一項工作是建立分析所需要的通訊途徑,以保證能順利地對問題進行分析。
(2)分析與綜合
從資訊流和資訊飢餓哦故出發,逐步細化所有的軟體功能找出相同各元素之間的聯絡、介面特性和設計上的約束,分析他們是否滿足功能要求,是否合理。
常用的分析方法:面向資料流的結構化分析方法(
sa面向資料流);面向資料結構的
jackson
方法(jsd
面向資料結構)、結構化資料系統開發方法(
dssd
)、物件導向的分析方法(
ooa)(3
)編制需求分析階段的文件
軟體需求說明書;資料要求說明書;、初步的使用者手冊;修改、完善與確定軟體開發實施計畫。
(4)需求分析評審
相同定義的目標是否與使用者的需求一致;系統需求分析階段提供的文件資料是否齊全;文件中的所有描述是否完整、清晰、準確反映使用者要求;與所有其他系統成分的重要介面是否都已經描述。
軟體需求分析的原則;
需要能夠表達和理解問題的資訊域和功能域;要能以層次化得方式對問題進行分解和不斷細化。
指導性原則:
1。在開始建立分析模型前先理解問題
2開發原型使得使用者能夠了解將如何發生人機互動。3.
記錄每個需求的起源以及原因。
4.使用多個需求檢視
5。給需求賦予優先順序
6.努力刪除含糊性。
軟體需求規格說明的原則:
從現實中分離功能,即描述要「要做什麼「而不是」怎麼樣實現「;要求使用面向處理的規格說明語言(或稱系統定義語言)
軟體需求方法:需求分析方法由對軟體問題的資訊域(資訊流、結構流、資訊內容)和功能域的系統分析過程及表示方法組成;大多數的繡球分析方法是有資訊驅動的
結構化分析方法:面向資料流進行需求分析方法;結構化分析方法適合於資料處理型別軟體的需求分析。
檢查和修改資料流圖的原則
1.資料流圖上所有圖形符號只限於前述四種基本圖形元素;2..
資料流圖的主圖必須包括前述四種基本元素。缺一不可
3.每個加工至少有乙個輸入資料流和乙個輸出資料流4..
在資料流圖中,需按層給加工框編號,標號表明該加工所處層次及上下層的親子關係。
5.5.
規定任何乙個資料流子圖必須與它上一層的乙個加工對應,兩者的輸入資料流和輸出資料流必須一致。
畫資料流圖的時候要注意的:
圖上每個元素都必須有名字;資料流圖中不可夾帶控制流;出畫時可以忽略瑣碎的細節,以集中精力於主要資料流
資料字典:資料字典與資料流圖配合,能清楚地表達資料處理的要求
詞條描述
--------
對於在資料流圖中每乙個別命名的圖形元素,均加以定義,其內容有:名字。別號或編號,分類,描述,定義,位置,其他等
用於寫加工邏輯說明的工具:結構化英語、判定表、判定樹。
結構化英語
的詞彙表有
英語命令動詞、資料詞典中定義的名字、有限的自定義詞、
邏輯關係詞
if -then -else
、case- of . while-do
等。判定樹也是用來表達加工邏輯的一種工具,用時候它比判定表更直觀。
ipo
輸入處理圖
機器可讀性
判定表和結構化英語
優於判定樹
描述的直觀性來講
判定樹好
邏輯驗證和優化能力判斷表優於判定樹和結構化英語
原型化方法:
在開發初期,要想得到乙個完整準確的規格說明不是一件容易的事。
使用者往往對系統只有乙個模糊的想法,很難完全準確地表達對系統的全面要求。
軟體原型的分類
探索型實驗型
進化型原型使用策略
:廢棄策略
追加策略
最常用的動態分析方法:狀態遷移圖、
時序圖、
petri
網圓圈表示可得到的系統中狀態
箭頭表示從一種狀態向另一種狀態的遷移。
狀態遷移圖的優點:
狀態之間的關係能夠直接地捕捉到
由於狀態遷移圖的單純性,能夠機械地分析許多情況,可恨容易地建立分析工具。
處理連兩個程序的同步問題
petri
網需要完成的乙個文件:
需求規格說明書
1.引言
1.1編寫目的
1.2專案背景
1.3定義
1.4參考資料
2.任務概述
2.1目標
2.2執行環境
2.3條件與限制
3.資料描述
3.1靜態資料
3.2動態資料
3.3資料庫介紹
3.4資料庫詞典
3.5資料採集
4.功能需求
4.1功能劃分
4.2功能描述
5.效能要求
5.1資料準確度
5.2時間特性
5.3適應性
6.執行需求
6.1使用者介面
6.2硬體介面
6.3軟體介面
6.4故障處理
7.其他需求(安全,保密等)
需求分析的任務不是確定系統如何完成它的工作,而是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。
在這個階段結束時交出的文件中應該包括詳細的資料流圖(
dfd),資料字典(
dd)和一組簡明的演算法描述。
需求分析方法
大多數的需求分析方法時由資料驅動的,資料域具有三種屬性:資料流
、資料內容和資料結構。
具有的一下的共性:
1.支援資料域
2.功能表示的方法
3.介面的定義
4.問題分解的機制以及對抽象的支援
5.邏輯檢視和物理檢視
6.系統抽象模型
結構化分析方法使用資料流圖
dfd與資料字典
dd來描述。
資料流圖的特性:
抽象性概括性
層次性資料流圖的用途
資料流圖的作用主要有以下幾條;(1
)系統分析員用這種工具可以自頂向下分析系統資訊流程(2
)可在圖上畫出需要計算機處理的部分(3
)根據資料存貯,進一步做資料分析,向資料庫設計過度。(4
)根據資料流向,定出訪問方式(5
)對應乙個處理過程,用相應的語言、判定表等工具表達處理方法。
5.資料流圖的優缺點(1
)總體概念強,每一層都明確強調「幹什麼」「需要什麼」,「給出什麼」(2
)可以反映出資料的流向和處理過程(3
)由於自頂向下的分析,同意及早發現系統各部分的邏輯錯誤,也容易修正(4
)容易與計算機處理相對照(5
)不直觀,一般都要在作業流程分析的基礎上加以概括、抽象、修正
來得到。(6
)如果沒有計算機系統幫助的話,人工繪製太麻煩,工作量較大。
軟體需求分析
軟體需求分析所要做的工作是深入描述軟體的功能和效能,確定軟體設計的限制和軟體同其它系統元素的介面細節,定義軟體的其它有效性需求。進行需求分析時,應注意一切資訊與需求都是站在使用者的角度上。盡量避免分析員的主觀想象,並盡量將分析進度提交給使用者。在不進行直接指導的前提下,讓使用者進行檢查與評價。從而達...
軟體需求分析
軟體需求分析是把軟體計畫期間建立的 軟體可行性分析 求精和細化,分析各種可能的解法,並且分配給各個軟體元素 軟體需求分析的任務 深入描述軟體的功能和i效能 確定軟體設計的約束和軟體 同其他系統元素的介面細節 定義軟體的其他有效性需求 任務 從現有的模型中匯出目標系統的邏輯模型,解決目標系統的 做什麼...
軟體需求分析
需求的三個層次 1.業務需求 組織或客戶高層次的目標,一般來自專案的投資人,購買產品的客戶,實際使用者的管理者,市場營銷部門或產品策劃部門 輸出文件 產品前景和專案範圍 業務需求決定了應用的廣度和深度,廣度只應用能完成哪些工作 即用例 而深度則說明將各項用例實現到何種程度。當依據業務需求確定每項用例...