




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章軟件需求分析教學(xué)目的與要求:深刻理解需求分析階段的概念及任務(wù),熟練掌握ER圖,HIOP圖的畫法。教學(xué)重點(diǎn):需求分析階段的任務(wù)、方法、具體任務(wù)。教學(xué)難點(diǎn):寫出需求規(guī)格說明書第3章軟件需求分析教學(xué)目的與要求第3章軟件需求分析3.1需求分析的任務(wù)3.2與用戶溝通獲取需求的方法3.3分析建模與規(guī)格說明3.4實(shí)體-聯(lián)系圖(數(shù)據(jù)建模)3.5(存儲(chǔ))數(shù)據(jù)的規(guī)范化3.6狀態(tài)轉(zhuǎn)換圖(行為建模)3.7其他圖形工具(數(shù)據(jù)建模:層次圖、Warnier,IPO:描述數(shù)據(jù)處理的算法)3.8驗(yàn)證軟件需求3.9小結(jié)習(xí)題第3章軟件需求分析3.1需求分析的任務(wù)成功來之不易31%(取消)16.2%(成功地完成)53.8%(受到挑戰(zhàn))Source:StandishGroup2成功來之不易31%(取消)16.2%(成功地完成)軟件項(xiàng)目失敗的原因軟件項(xiàng)目失敗的最重要的五個(gè)主要原因:需求不完整缺少客戶的參與缺少資源期望值過高缺少高層的支持0%5%10%15%3軟件項(xiàng)目失敗的原因軟件項(xiàng)目失敗的最重要的五個(gè)主要原因:需求需求錯(cuò)誤的成本4需求錯(cuò)誤的成本4軟件需求的重要性:?軟件需求分析是決定軟件成功開發(fā)的一個(gè)關(guān)鍵因素-幫助分析員真正理解業(yè)務(wù)問題-是估算成本和進(jìn)度的基礎(chǔ)-避免建造錯(cuò)誤的系統(tǒng),從而減少不必要的浪費(fèi)-軟件規(guī)格說明有助于分析員與用戶在系統(tǒng)需求問題上達(dá)成
正式契約
-有助于管理軟件的演化和變更-是軟件質(zhì)量的基礎(chǔ),為系統(tǒng)驗(yàn)收測(cè)試提供了標(biāo)準(zhǔn)
5軟件需求的重要性:5軟件需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”
軟件需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”3.1.1確定對(duì)系統(tǒng)的綜合要求1.功能需求
這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。2.性能需求
性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、等方面的需求。3.可靠性、可用性、安全性、保密性等需求
要求定量地指定系統(tǒng)的可靠性、可用性、安全性、保密性等。3.1需求分析的任務(wù)3.1.1確定對(duì)系統(tǒng)的綜合要求1.功能需求3.1需求4.出錯(cuò)處理需求
在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)錯(cuò)誤時(shí)所采取的行動(dòng)。但是,應(yīng)該有選擇地提出這類出錯(cuò)處理需求。對(duì)應(yīng)用系統(tǒng)本身錯(cuò)誤的檢測(cè)應(yīng)該僅限于系統(tǒng)的關(guān)鍵部分,而且應(yīng)該盡可能少。5.接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。6.約束常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)。4.出錯(cuò)處理需求7、用戶界面需求,系統(tǒng)環(huán)境軟件界面,多少臺(tái)機(jī)器、機(jī)型等接口。8、逆向需求軟件不應(yīng)該有的功能及性能。9.將來可能提出的要求7、用戶界面需求,系統(tǒng)環(huán)境
這是軟件需求分析的一個(gè)重要任務(wù)。通常采用建立數(shù)據(jù)流圖、數(shù)據(jù)字典、數(shù)據(jù)模型的方法。
常用的圖形工具有層次方框圖HIPO和Warnier圖,在本章第3.7節(jié)中將簡(jiǎn)要地介紹這兩種圖形工具。軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡(jiǎn)化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化(見3.5節(jié))。3.1.3導(dǎo)出系統(tǒng)的邏輯模型在分析綜合中逐步細(xì)化軟件功能劃分各子功能,對(duì)系統(tǒng)數(shù)據(jù)域進(jìn)行分析,建立新系統(tǒng)的邏輯模型(系統(tǒng)流程圖、數(shù)據(jù)流圖、數(shù)據(jù)字典、E-R圖、UML模型圖表示)。常用方法有:面對(duì)結(jié)構(gòu)化分析方法(SA)、面向數(shù)據(jù)結(jié)構(gòu)(JSP)方法、面向?qū)ο驩OA方法。3.1.2分析系統(tǒng)的數(shù)據(jù)要求3.1.4修正系統(tǒng)開發(fā)計(jì)劃這是軟件需求分析的一個(gè)重要任務(wù)。通常采用建立數(shù)據(jù)流圖、3.1.4修正系統(tǒng)開發(fā)計(jì)劃
根據(jù)在分析過程中獲得的對(duì)系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。補(bǔ)充:與用戶溝通獲取需求的方法3.1.4修正系統(tǒng)開發(fā)計(jì)劃補(bǔ)充:與用戶溝通獲取需求的方法3.2與用戶溝通獲取需求的方法需求獲取的困難:-用戶通常并不真正知道自己希望計(jì)算機(jī)系統(tǒng)做什么用戶通常使用業(yè)務(wù)語言表達(dá)需求,開發(fā)人員缺乏相關(guān)的領(lǐng)域知識(shí)和經(jīng)驗(yàn),難以準(zhǔn)確理解這些需求-不同的用戶提出不同的需求,可能存在矛盾和沖突管理者可能出于增加影響力的原因而提出特別的需求-由于經(jīng)濟(jì)和業(yè)務(wù)環(huán)境的動(dòng)態(tài)性,需求經(jīng)常發(fā)生變更補(bǔ)充:與用戶溝通獲取需求的方法3.2與用戶溝通獲取需求的方法補(bǔ)充:與用戶溝通獲取需求的3.2與用戶溝通獲取需求的方法需求獲取的關(guān)鍵在于通過與用戶的溝通和交流,收集和理解用戶的各項(xiàng)要求。
3.2.1訪談--訪問用戶和用戶領(lǐng)域的專家形式:分別交流需求討論會(huì)
問卷調(diào)查
現(xiàn)場(chǎng)考察
3.2.2對(duì)數(shù)據(jù)流圖自頂向下逐步細(xì)化求精
根據(jù)數(shù)據(jù)字典,用IPO圖描繪出輸入的數(shù)據(jù)怎樣加工成輸出的數(shù)據(jù)。3.2.3簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)分析員與用戶開會(huì),共同完善需求規(guī)格說明書。3.2.4快速建立軟件原型---通過用戶試用原型,反饋需求,收集需求
建立原型的三種方法及工具:1、第四代技術(shù):數(shù)據(jù)庫語言、程序生成器、非過程的高級(jí)語言2、形式化規(guī)格說明、自動(dòng)翻譯軟件、原型3.2與用戶溝通獲取需求的方法需求獲取的關(guān)鍵在于3.3.1根據(jù)需求分析結(jié)果建立模型
模型:用于描述客觀事物的圖形。
根據(jù)需求分析過程中獲取的用戶需求,建立三種模型:數(shù)據(jù)模型:E-R圖,層次圖,Warnier圖功能模型:數(shù)據(jù)流圖行為模型:狀態(tài)轉(zhuǎn)換圖3.3.2書寫軟件需求規(guī)格說明書3.3建立模型、書寫規(guī)格說明2、分析和綜合導(dǎo)出軟件的邏輯模型3.3.1根據(jù)需求分析結(jié)果建立模型3.3建立模型、書應(yīng)該包括在SRS(需求規(guī)格說明)中的內(nèi)容-功能:軟件應(yīng)該提供什么功能?外部接口:軟件如何與人、系統(tǒng)硬件和其他系統(tǒng)等進(jìn)行相互作用?性能:在運(yùn)行速度、可用性、響應(yīng)時(shí)間、恢復(fù)時(shí)間等方面有什么要求?特性:軟件系統(tǒng)在可移植性、可維護(hù)性、安全性等方面有什么考慮?設(shè)計(jì)約束:是否存在必要的標(biāo)準(zhǔn)、開發(fā)語言、數(shù)據(jù)庫、資源限制、運(yùn)行環(huán)境等因素的影響和策略?不應(yīng)該包括在SRS中的內(nèi)容-項(xiàng)目開發(fā)計(jì)劃:如成本、人員、進(jìn)度、工具、方法等
-產(chǎn)品保證計(jì)劃:如配置管理、驗(yàn)證與測(cè)試、質(zhì)量保證等-軟件設(shè)計(jì)細(xì)節(jié):需求通常用于表達(dá)“做什么”,而不描述“如何做”。應(yīng)該包括在SRS(需求規(guī)格說明)中的內(nèi)容編寫需求規(guī)格說明的原則原則1:只描述“做什么”而無須描述“怎么做”
原則2:必須說明運(yùn)行環(huán)境
原則3:考慮用戶、分析員和實(shí)現(xiàn)者的交流
---對(duì)形式化和自然語言之間作出恰當(dāng)?shù)倪x擇---明確的理解最重要,不存在十全十美的軟件規(guī)格說明書
編寫需求規(guī)格說明的原則原則1:只描述“做什么”而無須描述編寫需求規(guī)格說明的原則原則4:力求尋找到恰如其分的需求詳細(xì)程度---一個(gè)有益的原則就是編寫單個(gè)的可測(cè)試需求文檔---建議將可測(cè)試的需求作為衡量軟件產(chǎn)品規(guī)模大小的尺度原則5:文檔段落不宜太長(zhǎng)
簡(jiǎn)短
-記?。翰灰谛枨笳f明中使用“和/或”、“等等”之類的詞原則6:避免使用模糊的、主觀的術(shù)語‘-如用戶友好、容易、簡(jiǎn)單、迅速、有效、許多、最新技術(shù)、優(yōu)越的、可接受的、最大化、最小化、提高等-不可驗(yàn)證?
建議:采用一種標(biāo)準(zhǔn)的SRS模板編寫需求規(guī)格說明的原則原則4:力求尋找到恰如其分的需求詳細(xì)為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型(也稱為信息模型)。數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。3.4.1數(shù)據(jù)對(duì)象(實(shí)體):是指具有多個(gè)特征的復(fù)合信息。3.4.2聯(lián)系:數(shù)據(jù)對(duì)象之間的關(guān)系(1:1,1:n,m:n)。3.4.3屬性:數(shù)據(jù)對(duì)象的、聯(lián)系的特征。3.4.4表示符號(hào)(矩形,菱形,圓角矩形或橢圓)
通常,使用實(shí)體-聯(lián)系圖(entity-relationshipdiagram)來建立數(shù)據(jù)模型。可以把實(shí)體-聯(lián)系圖簡(jiǎn)稱為ER圖,相應(yīng)地可把用ER圖描繪的數(shù)據(jù)模型稱為ER模型。3.4實(shí)體-聯(lián)系圖(E-R圖)E—R信息模型的設(shè)計(jì)為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立三個(gè)例子三個(gè)例子軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一定方式組織并存儲(chǔ)在數(shù)據(jù)庫或文件中,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡(jiǎn)化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。下面給出第一、第二和第三范式的定義:(1)第一范式在同一表中沒有重復(fù)項(xiàng)出現(xiàn),如果有則應(yīng)將重復(fù)項(xiàng)去掉。每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。3.5數(shù)據(jù)規(guī)范化(2)第二范式滿足第一范式條件軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一(2)第二范式滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。
每個(gè)表必須有一個(gè)(而且僅一個(gè))數(shù)據(jù)元素為主關(guān)鍵字,其它元素與主關(guān)鍵字一一對(duì)應(yīng)。(3)第三范式符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵字屬性值不依賴于另一個(gè)非關(guān)鍵字屬性值)。
表中的所有數(shù)據(jù)元素,不但要能夠唯一地被主關(guān)鍵字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它的函數(shù)關(guān)系。
3.6狀態(tài)轉(zhuǎn)換圖(2)第二范式滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整根據(jù)本章開頭講的結(jié)構(gòu)化分析的第3條準(zhǔn)則,在需求分析過程中應(yīng)該建立起軟件系統(tǒng)的行為模型。狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作(例如,處理數(shù)據(jù))。(面向?qū)ο竽P椭薪榻B)3.6狀態(tài)轉(zhuǎn)換圖(略)3.7其他圖形工具根據(jù)本章開頭講的結(jié)構(gòu)化分析的第3條準(zhǔn)則,在需求分析3.7其他圖形工具3.7.1層次方框圖(H圖)層次方框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分割的元素)。3.7.2Warnier圖3.7其他圖形工具3.7.2Warnier圖圖3.5層次方框圖的一個(gè)例子軟件工程導(dǎo)論-第3章需求分析(第五版)
法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具。和層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。3.7.2Warnier圖HIPO圖圖3.6Warnier圖的一個(gè)例子法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層3.7.3HIPO圖HIPO(HierarchyPlusInput—Process—Output,輸入、處理、輸出)圖,是IBM公司于70年代中期在層次結(jié)構(gòu)圖的基礎(chǔ)上,做出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的工具。HIPO圖,有H圖和IPO圖兩部分組成。H圖描述整個(gè)系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)合格模塊之間的關(guān)系,H圖畫n層,每層根據(jù)經(jīng)驗(yàn)一般為3—10個(gè)模塊,層次(n層)按具體情況定。IPO圖描述某一特定模塊內(nèi)部的處理過程和輸入輸出關(guān)系。HIPO圖一般有1張H圖,多張
IPO圖組成
層次模塊結(jié)構(gòu)圖3.7.3HIPO圖層次模塊結(jié)構(gòu)圖H圖特點(diǎn)H圖特點(diǎn)層次模塊結(jié)構(gòu)圖(H圖)
1、H圖基本做法:是將系統(tǒng)劃分為若干子系統(tǒng),子系統(tǒng)下再劃分為若干的模塊,大模塊內(nèi)再分子模塊。2、H圖特點(diǎn):主要關(guān)心模塊的外部屬性,不關(guān)心模塊的內(nèi)部,即只關(guān)心它是什么能夠做什么,不關(guān)心它怎么做。(怎么做IPO圖解決)3、模塊的定義(什么是模塊):具有輸入輸出、邏輯功能、運(yùn)行程序和內(nèi)部數(shù)據(jù)這四種屬性的一個(gè)程序。圖3.7IPO圖的一個(gè)例子圖層次模塊結(jié)構(gòu)圖(H圖)1、H圖基本做法:是將系圖3.7IPO圖的一個(gè)例子圖模塊編號(hào):c.5.5.8圖3.8改進(jìn)的IPO圖的形式模塊編號(hào):c.5.5.8圖3.8改進(jìn)的IPO圖的形式圖3.8改進(jìn)的IPO圖的形式本書建議使用一種改進(jìn)的IPO圖(也稱為IPO表),3.8驗(yàn)證軟件需求本書建議使用一種改進(jìn)的IPO圖(也稱為IPO表),3.8(1)一致性:所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。(2)完整性:需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個(gè)功能或性能。(3)現(xiàn)實(shí)性:指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。對(duì)硬件技術(shù)的進(jìn)步可以做些預(yù)測(cè),對(duì)軟件技術(shù)的進(jìn)步則很難做出預(yù)測(cè),只能從現(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實(shí)性。(4)有效性:必須證明需求是正確有效的,確實(shí)能解決用戶面對(duì)的問題。3.8.2驗(yàn)證軟件需求的方法3.8驗(yàn)證軟件需求3.8.1從哪些方面驗(yàn)證軟件需求的正確性(1)一致性:所有需求必須是一致的,任何一條需求不能和其他需求驗(yàn)證是檢驗(yàn)需求能否滿足客戶的意愿。需求驗(yàn)證的技術(shù):需求評(píng)審:若需求說明書用自然語言表達(dá),則由不同代表(如分析員、客戶、設(shè)計(jì)人員、測(cè)試人員)組成的評(píng)審小組以會(huì)議形式對(duì)需求進(jìn)行系統(tǒng)性分析;若用形式化方法表達(dá),則用軟件工具。
原型評(píng)價(jià):客戶和用戶在一個(gè)可運(yùn)行的系統(tǒng)模型上實(shí)際檢驗(yàn)系統(tǒng)是否符合他們的真正需要。參照經(jīng)驗(yàn),仿真:通過設(shè)計(jì)具體的測(cè)試方法,發(fā)現(xiàn)需求中的許多問題。3.8.2驗(yàn)證軟件需求的方法驗(yàn)證一致性驗(yàn)證完整性與有效性驗(yàn)證現(xiàn)實(shí)性需求驗(yàn)證是檢驗(yàn)需求能否滿足客戶的意愿。3.8.2驗(yàn)證軟件需求驗(yàn)證是檢驗(yàn)需求能否滿足客戶的意愿。需求驗(yàn)證的工具:RSL:需求陳述語言PSL/PSA:需求陳述語言/需求陳述分析工具3.8.2驗(yàn)證軟件需求的方法需求驗(yàn)證是檢驗(yàn)需求能否滿足客戶的意愿。3.8.2驗(yàn)證軟件傳統(tǒng)軟件工程方法學(xué)使用結(jié)構(gòu)化分析技術(shù),完成分析用戶需求的工作。需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審的過程。第一步是進(jìn)一步了解用戶當(dāng)前所處的情況,發(fā)現(xiàn)用戶所面臨的問題和對(duì)目標(biāo)系統(tǒng)的基本需求;接下來應(yīng)該與用戶深入交流,對(duì)用戶的基本需求反復(fù)細(xì)化逐步求精,以得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的需求。具體地說,應(yīng)該確定系統(tǒng)必須具有的功能、性能、可靠性和可用性,必須實(shí)現(xiàn)的出錯(cuò)處理需求、接口需求和逆向需求,必須滿足的約束條件,并且預(yù)測(cè)系統(tǒng)的發(fā)展前景。3.9小結(jié)傳統(tǒng)軟件工程方法學(xué)使用結(jié)構(gòu)化分析技術(shù),完成分析用戶需在需求分析階段還應(yīng)該寫出軟件需求規(guī)格說明書,經(jīng)過嚴(yán)格評(píng)審并得到用戶確認(rèn)之后,作為這個(gè)階段的最終成果。通常主要從一致性、完整性、現(xiàn)實(shí)性和有效性等4個(gè)方面復(fù)審軟件需求規(guī)格說明書。多數(shù)人習(xí)慣于使用實(shí)體-聯(lián)系圖建立數(shù)據(jù)模型,使用數(shù)據(jù)流圖建立功能模型,使用狀態(tài)圖建立行為模型。讀者應(yīng)該掌握這些圖形的基本符號(hào),并能正確地使用這些符號(hào)建立軟件系統(tǒng)的模型。為了提高可理解性,還可以用層次方框圖或Warnier圖等圖形工具輔助描繪系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。概括地說,任何一個(gè)計(jì)算機(jī)系統(tǒng)的基本功能都是把輸入數(shù)據(jù)轉(zhuǎn)變成輸出信息,算法定義了轉(zhuǎn)變的規(guī)則。因此,沒有對(duì)算法的了解就不能確切知道系統(tǒng)的功能。IPO圖是描述算法的有效工具。在需求分析階段還應(yīng)該寫出軟件需求規(guī)格說明書,經(jīng)過嚴(yán)格第3章軟件需求分析教學(xué)目的與要求:深刻理解需求分析階段的概念及任務(wù),熟練掌握ER圖,HIOP圖的畫法。教學(xué)重點(diǎn):需求分析階段的任務(wù)、方法、具體任務(wù)。教學(xué)難點(diǎn):寫出需求規(guī)格說明書第3章軟件需求分析教學(xué)目的與要求第3章軟件需求分析3.1需求分析的任務(wù)3.2與用戶溝通獲取需求的方法3.3分析建模與規(guī)格說明3.4實(shí)體-聯(lián)系圖(數(shù)據(jù)建模)3.5(存儲(chǔ))數(shù)據(jù)的規(guī)范化3.6狀態(tài)轉(zhuǎn)換圖(行為建模)3.7其他圖形工具(數(shù)據(jù)建模:層次圖、Warnier,IPO:描述數(shù)據(jù)處理的算法)3.8驗(yàn)證軟件需求3.9小結(jié)習(xí)題第3章軟件需求分析3.1需求分析的任務(wù)成功來之不易31%(取消)16.2%(成功地完成)53.8%(受到挑戰(zhàn))Source:StandishGroup2成功來之不易31%(取消)16.2%(成功地完成)軟件項(xiàng)目失敗的原因軟件項(xiàng)目失敗的最重要的五個(gè)主要原因:需求不完整缺少客戶的參與缺少資源期望值過高缺少高層的支持0%5%10%15%3軟件項(xiàng)目失敗的原因軟件項(xiàng)目失敗的最重要的五個(gè)主要原因:需求需求錯(cuò)誤的成本4需求錯(cuò)誤的成本4軟件需求的重要性:?軟件需求分析是決定軟件成功開發(fā)的一個(gè)關(guān)鍵因素-幫助分析員真正理解業(yè)務(wù)問題-是估算成本和進(jìn)度的基礎(chǔ)-避免建造錯(cuò)誤的系統(tǒng),從而減少不必要的浪費(fèi)-軟件規(guī)格說明有助于分析員與用戶在系統(tǒng)需求問題上達(dá)成
正式契約
-有助于管理軟件的演化和變更-是軟件質(zhì)量的基礎(chǔ),為系統(tǒng)驗(yàn)收測(cè)試提供了標(biāo)準(zhǔn)
5軟件需求的重要性:5軟件需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”
軟件需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”3.1.1確定對(duì)系統(tǒng)的綜合要求1.功能需求
這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。2.性能需求
性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、等方面的需求。3.可靠性、可用性、安全性、保密性等需求
要求定量地指定系統(tǒng)的可靠性、可用性、安全性、保密性等。3.1需求分析的任務(wù)3.1.1確定對(duì)系統(tǒng)的綜合要求1.功能需求3.1需求4.出錯(cuò)處理需求
在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)錯(cuò)誤時(shí)所采取的行動(dòng)。但是,應(yīng)該有選擇地提出這類出錯(cuò)處理需求。對(duì)應(yīng)用系統(tǒng)本身錯(cuò)誤的檢測(cè)應(yīng)該僅限于系統(tǒng)的關(guān)鍵部分,而且應(yīng)該盡可能少。5.接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。6.約束常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)。4.出錯(cuò)處理需求7、用戶界面需求,系統(tǒng)環(huán)境軟件界面,多少臺(tái)機(jī)器、機(jī)型等接口。8、逆向需求軟件不應(yīng)該有的功能及性能。9.將來可能提出的要求7、用戶界面需求,系統(tǒng)環(huán)境
這是軟件需求分析的一個(gè)重要任務(wù)。通常采用建立數(shù)據(jù)流圖、數(shù)據(jù)字典、數(shù)據(jù)模型的方法。
常用的圖形工具有層次方框圖HIPO和Warnier圖,在本章第3.7節(jié)中將簡(jiǎn)要地介紹這兩種圖形工具。軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡(jiǎn)化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化(見3.5節(jié))。3.1.3導(dǎo)出系統(tǒng)的邏輯模型在分析綜合中逐步細(xì)化軟件功能劃分各子功能,對(duì)系統(tǒng)數(shù)據(jù)域進(jìn)行分析,建立新系統(tǒng)的邏輯模型(系統(tǒng)流程圖、數(shù)據(jù)流圖、數(shù)據(jù)字典、E-R圖、UML模型圖表示)。常用方法有:面對(duì)結(jié)構(gòu)化分析方法(SA)、面向數(shù)據(jù)結(jié)構(gòu)(JSP)方法、面向?qū)ο驩OA方法。3.1.2分析系統(tǒng)的數(shù)據(jù)要求3.1.4修正系統(tǒng)開發(fā)計(jì)劃這是軟件需求分析的一個(gè)重要任務(wù)。通常采用建立數(shù)據(jù)流圖、3.1.4修正系統(tǒng)開發(fā)計(jì)劃
根據(jù)在分析過程中獲得的對(duì)系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。補(bǔ)充:與用戶溝通獲取需求的方法3.1.4修正系統(tǒng)開發(fā)計(jì)劃補(bǔ)充:與用戶溝通獲取需求的方法3.2與用戶溝通獲取需求的方法需求獲取的困難:-用戶通常并不真正知道自己希望計(jì)算機(jī)系統(tǒng)做什么用戶通常使用業(yè)務(wù)語言表達(dá)需求,開發(fā)人員缺乏相關(guān)的領(lǐng)域知識(shí)和經(jīng)驗(yàn),難以準(zhǔn)確理解這些需求-不同的用戶提出不同的需求,可能存在矛盾和沖突管理者可能出于增加影響力的原因而提出特別的需求-由于經(jīng)濟(jì)和業(yè)務(wù)環(huán)境的動(dòng)態(tài)性,需求經(jīng)常發(fā)生變更補(bǔ)充:與用戶溝通獲取需求的方法3.2與用戶溝通獲取需求的方法補(bǔ)充:與用戶溝通獲取需求的3.2與用戶溝通獲取需求的方法需求獲取的關(guān)鍵在于通過與用戶的溝通和交流,收集和理解用戶的各項(xiàng)要求。
3.2.1訪談--訪問用戶和用戶領(lǐng)域的專家形式:分別交流需求討論會(huì)
問卷調(diào)查
現(xiàn)場(chǎng)考察
3.2.2對(duì)數(shù)據(jù)流圖自頂向下逐步細(xì)化求精
根據(jù)數(shù)據(jù)字典,用IPO圖描繪出輸入的數(shù)據(jù)怎樣加工成輸出的數(shù)據(jù)。3.2.3簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)分析員與用戶開會(huì),共同完善需求規(guī)格說明書。3.2.4快速建立軟件原型---通過用戶試用原型,反饋需求,收集需求
建立原型的三種方法及工具:1、第四代技術(shù):數(shù)據(jù)庫語言、程序生成器、非過程的高級(jí)語言2、形式化規(guī)格說明、自動(dòng)翻譯軟件、原型3.2與用戶溝通獲取需求的方法需求獲取的關(guān)鍵在于3.3.1根據(jù)需求分析結(jié)果建立模型
模型:用于描述客觀事物的圖形。
根據(jù)需求分析過程中獲取的用戶需求,建立三種模型:數(shù)據(jù)模型:E-R圖,層次圖,Warnier圖功能模型:數(shù)據(jù)流圖行為模型:狀態(tài)轉(zhuǎn)換圖3.3.2書寫軟件需求規(guī)格說明書3.3建立模型、書寫規(guī)格說明2、分析和綜合導(dǎo)出軟件的邏輯模型3.3.1根據(jù)需求分析結(jié)果建立模型3.3建立模型、書應(yīng)該包括在SRS(需求規(guī)格說明)中的內(nèi)容-功能:軟件應(yīng)該提供什么功能?外部接口:軟件如何與人、系統(tǒng)硬件和其他系統(tǒng)等進(jìn)行相互作用?性能:在運(yùn)行速度、可用性、響應(yīng)時(shí)間、恢復(fù)時(shí)間等方面有什么要求?特性:軟件系統(tǒng)在可移植性、可維護(hù)性、安全性等方面有什么考慮?設(shè)計(jì)約束:是否存在必要的標(biāo)準(zhǔn)、開發(fā)語言、數(shù)據(jù)庫、資源限制、運(yùn)行環(huán)境等因素的影響和策略?不應(yīng)該包括在SRS中的內(nèi)容-項(xiàng)目開發(fā)計(jì)劃:如成本、人員、進(jìn)度、工具、方法等
-產(chǎn)品保證計(jì)劃:如配置管理、驗(yàn)證與測(cè)試、質(zhì)量保證等-軟件設(shè)計(jì)細(xì)節(jié):需求通常用于表達(dá)“做什么”,而不描述“如何做”。應(yīng)該包括在SRS(需求規(guī)格說明)中的內(nèi)容編寫需求規(guī)格說明的原則原則1:只描述“做什么”而無須描述“怎么做”
原則2:必須說明運(yùn)行環(huán)境
原則3:考慮用戶、分析員和實(shí)現(xiàn)者的交流
---對(duì)形式化和自然語言之間作出恰當(dāng)?shù)倪x擇---明確的理解最重要,不存在十全十美的軟件規(guī)格說明書
編寫需求規(guī)格說明的原則原則1:只描述“做什么”而無須描述編寫需求規(guī)格說明的原則原則4:力求尋找到恰如其分的需求詳細(xì)程度---一個(gè)有益的原則就是編寫單個(gè)的可測(cè)試需求文檔---建議將可測(cè)試的需求作為衡量軟件產(chǎn)品規(guī)模大小的尺度原則5:文檔段落不宜太長(zhǎng)
簡(jiǎn)短
-記?。翰灰谛枨笳f明中使用“和/或”、“等等”之類的詞原則6:避免使用模糊的、主觀的術(shù)語‘-如用戶友好、容易、簡(jiǎn)單、迅速、有效、許多、最新技術(shù)、優(yōu)越的、可接受的、最大化、最小化、提高等-不可驗(yàn)證?
建議:采用一種標(biāo)準(zhǔn)的SRS模板編寫需求規(guī)格說明的原則原則4:力求尋找到恰如其分的需求詳細(xì)為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型(也稱為信息模型)。數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。3.4.1數(shù)據(jù)對(duì)象(實(shí)體):是指具有多個(gè)特征的復(fù)合信息。3.4.2聯(lián)系:數(shù)據(jù)對(duì)象之間的關(guān)系(1:1,1:n,m:n)。3.4.3屬性:數(shù)據(jù)對(duì)象的、聯(lián)系的特征。3.4.4表示符號(hào)(矩形,菱形,圓角矩形或橢圓)
通常,使用實(shí)體-聯(lián)系圖(entity-relationshipdiagram)來建立數(shù)據(jù)模型??梢园褜?shí)體-聯(lián)系圖簡(jiǎn)稱為ER圖,相應(yīng)地可把用ER圖描繪的數(shù)據(jù)模型稱為ER模型。3.4實(shí)體-聯(lián)系圖(E-R圖)E—R信息模型的設(shè)計(jì)為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立三個(gè)例子三個(gè)例子軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一定方式組織并存儲(chǔ)在數(shù)據(jù)庫或文件中,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡(jiǎn)化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。下面給出第一、第二和第三范式的定義:(1)第一范式在同一表中沒有重復(fù)項(xiàng)出現(xiàn),如果有則應(yīng)將重復(fù)項(xiàng)去掉。每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。3.5數(shù)據(jù)規(guī)范化(2)第二范式滿足第一范式條件軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一(2)第二范式滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。
每個(gè)表必須有一個(gè)(而且僅一個(gè))數(shù)據(jù)元素為主關(guān)鍵字,其它元素與主關(guān)鍵字一一對(duì)應(yīng)。(3)第三范式符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵字屬性值不依賴于另一個(gè)非關(guān)鍵字屬性值)。
表中的所有數(shù)據(jù)元素,不但要能夠唯一地被主關(guān)鍵字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它的函數(shù)關(guān)系。
3.6狀態(tài)轉(zhuǎn)換圖(2)第二范式滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整根據(jù)本章開頭講的結(jié)構(gòu)化分析的第3條準(zhǔn)則,在需求分析過程中應(yīng)該建立起軟件系統(tǒng)的行為模型。狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作(例如,處理數(shù)據(jù))。(面向?qū)ο竽P椭薪榻B)3.6狀態(tài)轉(zhuǎn)換圖(略)3.7其他圖形工具根據(jù)本章開頭講的結(jié)構(gòu)化分析的第3條準(zhǔn)則,在需求分析3.7其他圖形工具3.7.1層次方框圖(H圖)層次方框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分割的元素)。3.7.2Warnier圖3.7其他圖形工具3.7.2Warnier圖圖3.5層次方框圖的一個(gè)例子軟件工程導(dǎo)論-第3章需求分析(第五版)
法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具。和層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。3.7.2Warnier圖HIPO圖圖3.6Warnier圖的一個(gè)例子法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層3.7.3HIPO圖HIPO(HierarchyPlusInput—Process—Output,輸入、處理、輸出)圖,是IBM公司于70年代中期在層次結(jié)構(gòu)圖的基礎(chǔ)上,做出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的工具。HIPO圖,有H圖和IPO圖兩部分組成。H圖描述整個(gè)系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)合格模塊之間的關(guān)系,H圖畫n層,每層根據(jù)經(jīng)驗(yàn)一般為3—10個(gè)模塊,層次(n層)按具體情況定。IPO圖描述某一特定模塊內(nèi)部的處理過程和輸入輸出關(guān)系。HIPO圖一般有1張H圖,多張
IPO圖組成
層次模塊結(jié)構(gòu)圖3.7.3HIPO圖層次模塊結(jié)構(gòu)圖H圖特點(diǎn)H圖特點(diǎn)層次模塊結(jié)構(gòu)圖(H圖)
1、H圖基本做法:是將系統(tǒng)劃分為若干子系統(tǒng),子系統(tǒng)下再劃分為若干的模塊,大模塊內(nèi)再分子模塊。2、H圖特點(diǎn):主要關(guān)心模塊的外部屬性,不關(guān)心模塊的內(nèi)部,即只關(guān)心它是什么能夠做什么,不關(guān)心它怎么做。(怎么做IPO圖解決)3、模塊的定義(什么是模塊):具有輸入輸出、邏輯功能、運(yùn)行程序和內(nèi)部數(shù)據(jù)這四種屬性的一個(gè)程序。圖3.7IPO圖的一個(gè)例子圖層次模塊結(jié)構(gòu)圖(H圖)1、H圖基本做法:是將系圖3.7IPO圖的一個(gè)例子圖模塊編號(hào):c.5.5.8圖3.8改進(jìn)的IPO圖的形式模塊編號(hào):c.5.5.8圖3.8改進(jìn)的IPO圖的形式圖3.8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拔尖創(chuàng)新人才課題申報(bào)書
- 貴州課題申報(bào)書怎么寫的
- 低年級(jí)微型課題申報(bào)書
- 高校思政類課題申報(bào)書
- 教師課題申報(bào)評(píng)審書
- 化工課題申報(bào)書范文
- 黨務(wù)課題申報(bào)書范文模板
- 醫(yī)學(xué)課題申報(bào)書的撰寫
- 校史課題研究申報(bào)書
- 智能項(xiàng)目課題申報(bào)書范文
- (部編版2025新教材)道德與法治一年級(jí)下冊(cè)-第1課《有個(gè)新目標(biāo)》課件
- 廉政從業(yè)培訓(xùn)課件
- 2025新 公司法知識(shí)競(jìng)賽題庫與參考答案
- 大學(xué)生美甲創(chuàng)業(yè)項(xiàng)目路演
- 2025年中國(guó)中煤能源集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2024年濰坊工程職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動(dòng)葫蘆吊裝方案計(jì)劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫含答案解析
- 作業(yè)批改符號(hào)
- 《建立特種設(shè)備“日管控、周排查、月調(diào)度”工作機(jī)制》專題培訓(xùn)
評(píng)論
0/150
提交評(píng)論