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