《《軟件工程與項目管理》第3章軟件需求分析.ppt》由會員分享,可在線閱讀,更多相關(guān)《《軟件工程與項目管理》第3章軟件需求分析.ppt(70頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第3章 軟件需求分析,掌握:需求分析的重要性、需求分析的任務(wù)、需求分析的步驟、數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表和判定樹、軟件需求分析規(guī)格說明書。,3.1 需求分析概述,3.1.1 需求分析的重要性,通俗地說,需求分析就是分析軟件用戶的需求是什么。試想一下,如果投入大量的人力、物力、財力和時間,開發(fā)出的軟件卻滿足不了客戶的要求,那所有的投入都是徒勞。如果費了很大的精力,開發(fā)一個軟件,最后卻因不滿足用戶的要求,而要重新開發(fā),這種返工同樣也是讓人痛心疾首的。,3.1.2 需求分析的任務(wù),需求分析階段的任務(wù)主要要解決的是系統(tǒng)“做什么”的問題。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整地、準確
2、地表達出來,也不知道怎樣用計算機解決他們的問題。而軟件開發(fā)人員雖然知道怎樣用軟件完成人們提出的各種功能要求,但是,對用戶的具體業(yè)務(wù)和需求不完全清楚,這是需求分析階段的困難所在。,3.1.2 需求分析的原則,1分析人員要使用符合用戶語言習慣的表達 2分析人員要了解用戶的業(yè)務(wù)及目標 3分析人員必須編寫軟件需求報告 4要求得到需求工作結(jié)果的解釋說明 5開發(fā)人員要尊重客戶的意見 6開發(fā)人員要對需求及產(chǎn)品實施提出建議和解決方案,7描述產(chǎn)品使用特性 8允許重用已有的軟件組件 9要求對變更的代價提供真實可靠的評估 10獲得滿足客戶功能和質(zhì)量要求的系統(tǒng) 11給分析人員講解業(yè)務(wù) 12用戶應(yīng)抽出時間清楚地說明并完
3、善需求 13準確而詳細地說明需求,14及時做出決定 15尊重開發(fā)人員的需求可行性及成本評估 16劃分需求的優(yōu)先級 17評審需求文檔和原型 18需求變更要立即聯(lián)系 19遵照開發(fā)小組處理需求變更的控制過程 20尊重開發(fā)人員采用的需求分析過程,3.1.3 需求分析的步驟,(1)歸納整理用戶提出的各種問題和要求,弄清用戶企圖通過軟件達到的目的,并把它作為要求和條件予以明確。分析人員借助各種工具和方法,獲得對用戶需求的基本理解,然后在需求獲取方法的驅(qū)動和指導(dǎo)下,從非正式需求陳述中提取出用戶的實際需求,由此確定軟件的功能、性能、接口關(guān)系及有關(guān)屬性、限制和邊界等,標定軟件的作用范圍,確認支持性的軟硬件環(huán)境及
4、輔助工具與條件。此階段還為軟件需求分析活動提供了相應(yīng)的過程控制機制。,(2)在需求獲取的基礎(chǔ)上建立邏輯模型,使用自頂向下、逐層分解的方法,把用戶對軟件的需求分解成若干子系統(tǒng)或軟件成分,定義軟件成分的內(nèi)部功能,并標定它們之間的接口。 (3)用準確、簡練、無二義性的語言將用戶需求規(guī)格化為軟件需求規(guī)格說明,使用戶和開發(fā)人員對擬開發(fā)的軟件有共同的理解。軟件需求規(guī)格說明同時還是軟件測試、驗收和交付的基準。,(4)通過需求評審,對需求獲取、需求定義等進行全面審查,力圖發(fā)現(xiàn)需求分析中的錯誤和缺陷,最終確認軟件需求規(guī)格說明。同時,以需求規(guī)格說明為輸入,通過模擬或快速原型等方法,向用戶展示需求規(guī)格說明所描述的
5、系統(tǒng)外部行為和相應(yīng)特征。,3.2 結(jié)構(gòu)化分析方法及工具,3.2.1 概述,結(jié)構(gòu)化分析(簡稱SA 法)方法是面向數(shù)據(jù)流的需求分析方法,由Yourdon,Constaintine 及DeMarco 等人于70 年代末提出,并得到廣泛的應(yīng)用。結(jié)構(gòu)化分析方法適合于分析大型的數(shù)據(jù)處理系統(tǒng),特別是企事業(yè)管理系統(tǒng)。,結(jié)構(gòu)化分析的步驟如下: (1)分析當前的情況,做出反映當前物理模型的數(shù)據(jù)流圖。 (2)推導(dǎo)出等價的邏輯模型的數(shù)據(jù)流圖。 (3)設(shè)計新的邏輯系統(tǒng),生成數(shù)據(jù)字典和基元描述。 (4)建立人機接口,提出可供選擇的目標系統(tǒng)物理模型的數(shù)據(jù)流圖。 (5)確定各種方案的成本和風險等級,據(jù)此對各種方案進行分析。
6、(6)選擇一種方案。 (7)建立完整的需求規(guī)約。,3.2.2 數(shù)據(jù)流圖,數(shù)據(jù)流圖,簡稱DFD(Data Flow Diagraph),是采用圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。,數(shù)據(jù)流圖由以下4部分組成: 1數(shù)據(jù)流 數(shù)據(jù)流由一組固定成分的數(shù)據(jù)組成,表示數(shù)據(jù)的流向。值得注意的是,數(shù)據(jù)流圖中描述的是數(shù)據(jù)流,而不是控制流。除了流向數(shù)據(jù)存儲或從數(shù)據(jù)存儲流出的數(shù)據(jù)不必命名外,每個數(shù)據(jù)流必須要有一個合適的名字,以反映該數(shù)據(jù)流的含義。 2加工 加工描述了輸入數(shù)據(jù)流到輸出數(shù)據(jù)之間的變換,也就是
7、輸入數(shù)據(jù)流經(jīng)過什么處理后變成了輸出數(shù)據(jù)。每個加工都有一個名字和編號。編號能反映該加工位于分層的數(shù)據(jù)流圖的哪個層次和哪張圖中,能夠看出它是由哪個加工分解出來的子加工。,3數(shù)據(jù)存儲 數(shù)據(jù)存儲表示暫時存儲的數(shù)據(jù)。每個數(shù)據(jù)存儲都有一個名字。 4外部實體 外部實體是存在于軟件系統(tǒng)之外的人員或組織,它指出數(shù)據(jù)的發(fā)源地或系統(tǒng)所產(chǎn)生的數(shù)據(jù)的歸屬地。,,,,,,,,,,,,,,,,,在實際應(yīng)用中,一般是采用分層的數(shù)據(jù)流圖來描述軟件系統(tǒng),其步驟如下: (1)從問題描述中分析出4種基本組成成分(外部實體、加工、數(shù)據(jù)存儲、數(shù)據(jù)流)。 (2)根據(jù)(1)的結(jié)果畫出基本系統(tǒng)數(shù)據(jù)流圖,稱為頂層圖。 (3)把(2
8、)得到的基本系統(tǒng)模型細化為功能級數(shù)據(jù)流圖。 (4)對功能級數(shù)據(jù)流圖中的主要功能進一步細化,直至滿意為止。,根據(jù)數(shù)據(jù)處理對象和處理方式的不同,通常又將數(shù)據(jù)流圖分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖: (1)變換型數(shù)據(jù)流圖 具有較明顯的輸入、變換(或主加工)和輸出的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖。在變換型數(shù)據(jù)流圖中,主加工是系統(tǒng)的中心。如圖3-2所示的是一個典型的變換型數(shù)據(jù)流圖,圖中“發(fā)卡”是主加工,“現(xiàn)金”是輸入,“IC卡”是輸出。,圖3-2 IC卡管理系統(tǒng)的頂層數(shù)據(jù)流圖,(2)事務(wù)型數(shù)據(jù)流圖 某個加工將它的輸入分離成一串發(fā)散的數(shù)據(jù)流,形成許多活動路徑,并根據(jù)輸入的值選擇其中一條路徑,具有這樣特
9、征的數(shù)據(jù)流圖是事務(wù)型數(shù)據(jù)流圖。,圖3-1 事務(wù)型數(shù)據(jù)流圖的一個例子,以下以某商場顧客IC卡管理系統(tǒng)為例,來說明數(shù)據(jù)流圖的畫法。 顧客持IC卡進行購物,其中負責管理IC卡的業(yè)務(wù)包括發(fā)卡、維護、對賬及錯誤處理、發(fā)票打印、結(jié)算。發(fā)卡需要向卡內(nèi)寫入發(fā)卡信息;維護是指對卡的修復(fù)、初始化、讀取、查詢的操作;對賬及錯誤處理指將IC卡帳戶主記錄中的金額與帳戶流水賬中的消費明細進行核對,如發(fā)現(xiàn)賬目不同,則進行錯誤處理;發(fā)票打印是打印當前IC卡所產(chǎn)生金額的發(fā)票;結(jié)算指當前IC卡操作員對購物進行結(jié)算。,1)從問題描述中分析出4種基本組成成分 (1)外部實體:顧客。 (2)數(shù)據(jù)流:顧客ID、現(xiàn)金、IC卡信息、購物單
10、、發(fā)票信息、維護結(jié)果、對賬結(jié)果、結(jié)賬信息、正確的帳戶信息。 (3)加工:發(fā)卡、維護、對賬及錯誤處理、發(fā)票打印、結(jié)算。 (4)數(shù)據(jù)存儲:發(fā)卡記錄、結(jié)賬記錄。,2)畫出系統(tǒng)的基本模型,圖3-2 IC卡管理系統(tǒng)的頂層數(shù)據(jù)流圖,3)將基本系統(tǒng)模型細化為成功能級模型 根據(jù)系統(tǒng)個描述,在“發(fā)卡”后,還應(yīng)有“充值”,“購物”后還應(yīng)有“收費”。,圖3-3 對IC卡管理系統(tǒng)基本模型形成功能級模型,4)對系統(tǒng)主要功能進一步細化 以“發(fā)卡”模塊為例,可細化為“發(fā)卡”、“打印”、“維護”、“結(jié)賬”、“對賬”幾個功能模塊。,圖3-4 IC卡管理系統(tǒng)模型的進一步細化,3.2.3 數(shù)據(jù)字典,分層數(shù)據(jù)流圖只是表達了系統(tǒng)的
11、“分解”,為了完整地描述這個系統(tǒng),還需對圖中的每個數(shù)據(jù)和加工給出解釋。數(shù)據(jù)字典的作用就是對數(shù)據(jù)流圖進行描述,它是數(shù)據(jù)流圖中包含的所有元素的定義的集合,是對數(shù)據(jù)流圖的補充。 數(shù)據(jù)字典包括了4類條目:數(shù)據(jù)流、數(shù)據(jù)項、文件及基本加工。,1數(shù)據(jù)流條目 它給出了數(shù)據(jù)流圖中數(shù)據(jù)流的定義,通常將數(shù)據(jù)流簡單描述為該數(shù)據(jù)流的各組成數(shù)據(jù)項。 例如,數(shù)據(jù)流“乘客名單”由 “乘客姓名”、“單位名”和“等級”組成,則數(shù)據(jù)字典中的“乘客名單”條目是: 乘客名單=乘客姓名+單位名+等級 又如,報名單=姓名+單位名+年齡+性別+課程名。,數(shù)據(jù)流名:查詢 簡 述:系統(tǒng)處理的一個命令 別 名:無 組 成:學生查詢|教
12、師查詢|課程查詢 注 釋 : 至2010年底還將增加3 4 種查詢,2文件條目 給出某個文件的定義。文件的定義通常是列出文件記錄的組成數(shù)據(jù)流,還可指出文件的組織方式。 例如,某銷售系統(tǒng)的訂單文件: 訂單文件=訂單編號+顧客名稱+產(chǎn)品名稱+訂貨數(shù)量+交貨日期,3數(shù)據(jù)項條目 給出某個數(shù)據(jù)單項的定義,通常是該數(shù)據(jù)項的值類型、允許值等。 例如,賬號= 00000 99999;存款期= 1 | 3 | 5 (單位:年) 4加工條目 加工條目就是“加工小說明”,是對“加工”的注釋。由于“加工”是DFD 圖的重要組成部分,一般應(yīng)單獨進行說明。,表3-2 在數(shù)據(jù)字典的定義中出現(xiàn)的符號,3.2.4
13、 結(jié)構(gòu)化語言,結(jié)構(gòu)化語言是介乎自然語言和形式語言之間的一種半形式語言,它是自然語言的一個受限制的子集。結(jié)構(gòu)化語言一般分為兩層結(jié)構(gòu):外層語法較具體,為控制結(jié)構(gòu);內(nèi)層較靈活,表達要做什么。一般來說,外層的控制結(jié)構(gòu)可參考編程語言中的順序、選擇和循環(huán)結(jié)構(gòu)。 以火車票售票為例,如果是學生,并且每年累計的乘車次數(shù)少于4次,則售半票,否則售全票。用形式化語言可描述如下:,IF 乘客是學生 THEN IF 每年累計的乘車次數(shù)少于4次 THEN 售半票 ELSE 售全票 ENDIF ELSE 售全票 ENDIF,結(jié)構(gòu)化語言的特點是簡單直觀,且容易轉(zhuǎn)化為程序,但它不方便處理組合條件。,3.2.5 判
14、定表和判定樹,判定表和判定樹都是用于描述加工的圖形工具。 判定表采用表格形式來表達邏輯判斷問題,表格分成4個部分:左上角為條件說明,左下角為行動說明,右上角為各種條件的組合說明,右下角為各條件組合下相應(yīng)的行動。 以某校教師的課時津貼為例,課時津貼標準是由教師的職稱及類別(本校、外聘)來決定的,本校教師:教授50元,副教授40元,講師35元,助教30元。外聘:教授60元,副教授50元,講師40元,助教35元。用判定表表達如表3-3所示。,表3-3 教師課時津貼的判定表表示,圖3-5 教師課時津貼的判定樹表示,判定表雖然能清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系,但其含義卻不是一眼就
15、能看出來的,初次接觸這種工具的人要理解它需要有一個簡短的學習過程。 判定樹的優(yōu)點在于,它的形式簡單到不需任何說明,一眼就可以看出其含義,因此易于掌握和使用。 雖然判定樹比判定表更直觀,但簡潔性卻不如判定表,3.2.6 層次方框圖,層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)結(jié)構(gòu)的子集,最底層的各個框代表組成這個數(shù)據(jù)結(jié)構(gòu)的實際數(shù)據(jù)元素。 例如,描繪一家計算機公司的產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可用如圖3-6所示的層次方框圖來表示。,圖3-6 計算機公司產(chǎn)品結(jié)構(gòu)的層次方框圖,3.2.7 Warnier圖,法國計
16、算機科學家Warnier提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具Warnier圖。與層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息。圖3-7是用Warnier圖描繪軟件概念的例子,它說明了這種圖形工具的用法。,圖3-7 軟件概念的Warnier圖,3.2.8 IPO圖,IPO圖是輸入/處理/輸出圖的簡稱,它是由美國IBM公司發(fā)展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、數(shù)據(jù)處理和輸出數(shù)據(jù)的關(guān)系。IPO圖使用的基本符號既少又簡單,因此很容易學會。IPO圖的基本形式是在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框中列出主要的處理,在右邊的框中列出產(chǎn)生的輸出數(shù)據(jù)。,圖3-8 數(shù)據(jù)庫更新記錄的
17、IPO圖,IPO圖的不足之處在于: (1)它沒有驗證功能。 (2)它沒有反映軟件的性能要求。 (3)對于一些大型軟件,資料量太大。例如,如果程序有1000個模塊,則僅IPO圖就需1000張。,3.3 需求評審,3.3.1 需求評審的原則,1分層次評審 2正式評審與非正式評審結(jié)合 3分階段評審 4精心挑選評審員 5對評審員進行培訓(xùn) 6充分利用需求評審檢查單 7建立標準的評審流程 8做好評審后的跟蹤工作 9充分準備評審,3.4 軟件需求分析規(guī)格說明書,3.4.1 軟件需求分析規(guī)格說明書的內(nèi)容,1引言 1.1編寫目的 1.2背景 1.3定義 1.4參考資料 2任務(wù)概述 2.1目標 2.2用戶的特點 2.3假定和約束 3需求規(guī)定 3.1對功能的規(guī)定 3.2對性能的規(guī)定 3.2.1精度 3.2.2時間特性要求 3.2.3靈活性,3.3輸人輸出要求 3.4數(shù)據(jù)管理能力要求 3.5故障處理要求 3.6其他專門要求 4運行環(huán)境規(guī)定 4.1設(shè)備 4.2支持軟件 4.3接口 4.4控制,3.4.2 案例分析,圖3-9 學生成績管理系統(tǒng)數(shù)據(jù)流圖,第3章 結(jié)束,謝謝!,