目的
要求開發人員準確地理解使用者需要什麼,進行細緻地調查分析,將使用者的需求陳述轉化為完整的需求定義,再由需求定義轉化為相應的軟體需求規格說明。
作用
需求分析雖處於軟體開發的初期階段,但它對於整個軟體開發過程以及產品質量至關重要。
只有做好需求分析才能做出符合需要的軟體功能。
業務需求(business requirement):反映了組織機構或客戶對系統、產品高層次的目標要求
從組織或者客戶的角度,實質就是業務的建設方;比如房地產市場的開發商;
使用者需求(user requirement):使用者的目標,或使用者要求系統必須能完成的任務
從使用產品的使用者的角度;比如買房的人;
功能需求( functional requirement):規定開發人員必須在產品中實現的軟體功能,使用者利用這些功能來完成任務,滿足業務需求
從產品本身的角度,即產品要具備怎樣的功能,才能滿足相應的業務需求和使用者需求;比如房子。
非功能需求(non-functional requirements):非功能需求主要與系統的總體特徵相關,是一些限制性要求,是對實際使用環境所做的要求
效能外部介面
設計約束
質量屬性
舉例:
**交易系統必須在一定時間內返回使用者查詢結果。
火車票購票系統、電商購物平台、大學選課軟體必須能支援一定數量的使用者同時訪問。
需求分析主要是理解客戶需要什麼、分析要求、評價可行性、協商合理的方案、無歧義地詳細說明方案、確認規格說明、管理需求以至將這些需求轉化為需求規格說明定義。
過程包括:
溝通匯出需求
與客戶和使用者協商
可行性研究
精化需求
編寫需求規格說明
驗證需求
管理需求
會談技術
非正式會談:提出一些可自由回答的問題.
正式會談:提出一些事先準備好的議題.
調查技術
確定調查內容
非正式會談
制定調查表
組織調查
可靠可信分析
檢查問卷指標是否合理
指標之間是否存在關聯
結果是否可信
場景分析技術
場景:使用者與軟體系統互動的過程
分析員與專案相關人員共同識別出場景,並捕獲這些場景的細節。
場景是對互動例項片斷的描述,每個場景可能包含乙個或多個互動,它們能在不同的細節層次上提供不同型別的場景資訊。
情景開始於乙個框架,在匯出過程中,細節被逐漸增加,直到產生互動的乙個完整的描述。
快速原型法
快速建立軟體原型
快速建立軟體原型的核心是用互動的、快速建立起來的原型取代了形式的、僵硬的(不易修改的)的規格說明,使用者通過在計算機上實際執行和試用原型而向開發者提供真實的反饋意見。
調查技術 快速原型法
Java物件導向程式設計 第5章思考題
1 執行以下 將得到什麼列印結果?int i 3 int j 0 double k 3.2 if i if i j system.out.println i else system.out.println j else system.out.println k 列印結果 0。2 以下 能否編譯通過?...
演算法導論第21章思考題
給定乙個操作序列,包括insert x 和extract min,運算元x 1,n 4,8,e,3,e,9,2,e,e 將第i次extract min的數儲存在extract i 中 建立乙個優先佇列,給定乙個操作,馬上在優先佇列中做出相應改變即可 演算法解釋 將樣例輸入看成s1,e,s2,e,s3...
討論 思考題
1 功能 編寫函式 float fun 利用以簡單迭代方法 xn 1 cos xn 求方程 cos x x 0 的乙個實根。迭代步驟如下 1 取x1 初值為0.0 2 x0 x1 把x1 的值賦給x0 3 x1 cos x0 求出乙個新的x1 4 若x0 x1 的絕對值小於 0.000001 執行步...