《軟件工程》03-結(jié)構(gòu)化需求分析_第1頁
《軟件工程》03-結(jié)構(gòu)化需求分析_第2頁
《軟件工程》03-結(jié)構(gòu)化需求分析_第3頁
《軟件工程》03-結(jié)構(gòu)化需求分析_第4頁
《軟件工程》03-結(jié)構(gòu)化需求分析_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件工程2022/12/102第3章需求分析為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,首先必須知道用戶的需求。對軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提和關(guān)鍵,不論設(shè)計(jì)和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會給用戶帶來失望,給開發(fā)者帶來煩惱。傳統(tǒng)的軟件工程方法學(xué)采用結(jié)構(gòu)化分析(StructuredAnalysis,SA)技術(shù)完成需求分析工作。2022/12/1033.1需求分析的任務(wù)3.2與用戶溝通獲取需求的方法3.3分析建模與規(guī)格說明3.4實(shí)體—聯(lián)系圖3.5數(shù)據(jù)規(guī)范化3.6狀態(tài)轉(zhuǎn)換圖3.7其它圖形工具3.8驗(yàn)證軟件需求3.9小結(jié)2022/12/104概述需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審的過程。為發(fā)現(xiàn)真正的需求,首先應(yīng)該從宏觀角度調(diào)查、分析用戶所面臨的問題,即需求分析的第一步是盡可能準(zhǔn)確地了解用戶當(dāng)前的情況和需要解決的問題。分析員對用戶提出的初步要求應(yīng)該反復(fù)求精多次細(xì)化,才能充分理解用戶的需求,得出對目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的要求。

2022/12/105為了更好理解問題,常常采用建立模型的方法。模型,就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。模型由一組圖形符號和組織這些符號的規(guī)則組成。結(jié)構(gòu)化分析就是一種建立模型的活動,通常建立數(shù)據(jù)模型、功能模型和行為模型等三種模型。除了用分析模型表示軟件需求之外,還要寫出準(zhǔn)確的軟件需求規(guī)格說明。模型既是軟件設(shè)計(jì)的基礎(chǔ),也是編寫軟件規(guī)格說明的基礎(chǔ)。2022/12/106在分析軟件需求和編寫軟件規(guī)格說明的過程中,軟件開發(fā)者和軟件用戶都起著關(guān)鍵的、必不可少的作用。用戶與開發(fā)者之間需要通信、溝通的內(nèi)容非常多,在雙方交流信息的過程中很容易出現(xiàn)誤解或遺漏,也可能存在二義性。不僅在整個需求分析過程中應(yīng)該采用行之有效的通信技術(shù),集中精力過細(xì)工作,對需求分析的結(jié)果(分析模型和規(guī)格說明)必須嚴(yán)格審查。2022/12/107盡管目前存在許多不同的結(jié)構(gòu)化分析方法,但是,所有這些分析方法都遵守下述準(zhǔn)則。必須理解和表示問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。必須表示作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。必須對描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié)。分析過程應(yīng)該從要素信息移向?qū)崿F(xiàn)細(xì)節(jié)。業(yè)務(wù)

技術(shù)邏輯

物理要素細(xì)節(jié)2022/12/1083.1需求分析的任務(wù)系統(tǒng)的綜合要求功能需求性能需求可靠性和可用性需求出錯處理需求接口需求約束逆向需求將來可能提出的要求2022/12/109需求分析的任務(wù)(2)系統(tǒng)的數(shù)據(jù)要求任何軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng)建立數(shù)據(jù)模型(E-R圖)數(shù)據(jù)字典層次方框圖Warnier圖2022/12/1010需求分析的任務(wù)(3)系統(tǒng)的邏輯模型數(shù)據(jù)流圖、E-R圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典、算法描述修正系統(tǒng)的開發(fā)計(jì)劃2022/12/10113.2與用戶溝通獲取需求的方法軟件需求分析總是從兩方或多方之間的通信開始。用戶面臨的問題需要用基于計(jì)算機(jī)的方案來解決;開發(fā)者應(yīng)該對用戶的需求作出反應(yīng),給用戶提供幫助。這樣就產(chǎn)生了相互通信的需求。從開始通信到真正相互理解的道路通常是充滿坎坷的。良好的通信技術(shù)有助于加快理解的過程。訪談訪談(或稱為會談)是最早開始運(yùn)用的獲?。ú皇欠治觯┯脩粜枨蟮募夹g(shù),也是迄今為止仍然廣泛使用的主要的需求分析技術(shù)。用戶不懂技術(shù);開發(fā)者不懂業(yè)務(wù);溝通需要橋梁。2022/12/1012(簡單)用例分析訪談簡易應(yīng)用規(guī)格說明技術(shù)(頭腦風(fēng)暴)原型化正式非正式(休閑聊天、面對面)領(lǐng)域分析、了解背景、學(xué)習(xí)術(shù)語觀察領(lǐng)域?qū)<翌I(lǐng)域書籍現(xiàn)有軟件及其文檔其它任何材料,如網(wǎng)站等2022/12/1013訪談有兩種基本形式,分別是正式的和非正式的訪談。在正式的訪談中,系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題,例如,詢問客戶公司銷售的商品種類、雇用的銷售人員數(shù)目以及信息反饋時間應(yīng)該多快等。在非正式的訪談中,將提出一些可以自由回答的開放性問題,以鼓勵被訪問的人員表達(dá)自己的想法,例如,詢問用戶為什么對目前正在使用的系統(tǒng)感到不滿意。2022/12/1014訪談當(dāng)需要調(diào)查大量人員的意見時,向被調(diào)查的人員分發(fā)調(diào)查表是一個十分有效的做法。在對用戶進(jìn)行訪談的過程中使用情景分析技術(shù)往往非常有效。所謂情景分析就是對用戶運(yùn)用目標(biāo)系統(tǒng)解決某個具體問題的方法和結(jié)果進(jìn)行分析。2022/12/1015面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)決定了需要的處理和算法,是需求分析的出發(fā)點(diǎn)。結(jié)構(gòu)化分析方法——面向數(shù)據(jù)流的自頂向下的逐步求精進(jìn)行需求分析的方法。高層數(shù)據(jù)流圖從輸出端回溯并逐步細(xì)節(jié)化2022/12/1016面向數(shù)據(jù)流自頂向下求精面向數(shù)據(jù)流自頂向下求精過程2022/12/1017提倡用戶與開發(fā)者密切合作,共同標(biāo)識問題,提出解決方案的要素,商討不同的方法并指定基本的需求。簡易的應(yīng)用規(guī)格說明技術(shù)已經(jīng)成為信息系統(tǒng)界使用的主流技術(shù)。簡易應(yīng)用規(guī)格說明方法基本準(zhǔn)則:簡易的應(yīng)用規(guī)格說明技術(shù)2022/12/1018簡易的應(yīng)用規(guī)格說明技術(shù)在中立地點(diǎn)舉行由開發(fā)者和用戶雙方出席的會議。制定準(zhǔn)備會議和參加會議的規(guī)則。提出一個議事日程,這個日程應(yīng)該足夠正式,以便能夠涵蓋所有要點(diǎn);同時這個日程又應(yīng)該足夠非正式,以便鼓勵自由思維。由一個“協(xié)調(diào)人”來主持會議。使用一種“定義機(jī)制”(例如,工作表、圖表等)。目標(biāo)是標(biāo)識問題、提出解決方案要素、商討不同的方法以及在有利于實(shí)現(xiàn)目標(biāo)的氛圍中指定初步的需求。2022/12/1019快速建立軟件原型構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶看得見的功能(例如屏幕顯示或打印報(bào)表),省略目標(biāo)系統(tǒng)的“隱含”功能(例如修改文件)??焖僭蛻?yīng)該具備的第一個特性是“快速”??焖僭偷哪康氖潜M快向用戶提供一個可在計(jì)算機(jī)上運(yùn)行的目標(biāo)系統(tǒng)的模型,以便使用戶和開發(fā)者在目標(biāo)系統(tǒng)應(yīng)該“做什么”這個問題上盡可能快地達(dá)成共識。2022/12/1020快速建立原型(2)快速原型應(yīng)該具備的第二個特性是“容易修改”。如果原型的第一版不是用戶所需要的,就必須根據(jù)用戶的意見迅速地修改它,構(gòu)建出原型的第二版,以更好地滿足用戶的需求。在實(shí)際開發(fā)軟件產(chǎn)品時,“修改—試用—反饋”的過程可能重復(fù)多遍,如果修改耗時過多,勢必延誤軟件開發(fā)時間。2022/12/1021快速建立原型(3)構(gòu)建原型的方法和工具第四代技術(shù)(4GL)報(bào)表工具、界面工具可重用的軟件構(gòu)件軟件體系構(gòu)件(Framework)、模塊、數(shù)據(jù)結(jié)構(gòu)形式化規(guī)格說明和原型環(huán)境Metatools,Z語言等2022/12/10223.3分析建模與規(guī)格說明分析建模結(jié)構(gòu)化分析實(shí)質(zhì)是一種創(chuàng)建模型的活動。通過需求分析而建立的模型必須達(dá)到下述的三個基本目標(biāo)。描述用戶的需求。為軟件設(shè)計(jì)工作奠定基礎(chǔ)。定義一組需求,一旦開發(fā)出軟件產(chǎn)品之后,就可以用這組需求為標(biāo)準(zhǔn)來驗(yàn)收該產(chǎn)品。2022/12/1023分析模型的結(jié)構(gòu)數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)轉(zhuǎn)換圖處理規(guī)格控制規(guī)格說明數(shù)據(jù)對描象述說明2022/12/1024軟件需求規(guī)格說明軟件需求規(guī)格說明——分析階段的最終成果。軟件需求規(guī)格說明的框架。見《3軟件需求規(guī)格說明書框架.doc》自然語言:容易書寫、容易理解形式化方法:無歧義、明確2022/12/10253.4實(shí)體—聯(lián)系圖數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對象、描述數(shù)據(jù)對象屬性及數(shù)據(jù)對象彼此間相互連接的關(guān)系。數(shù)據(jù)對象數(shù)據(jù)對象是對軟件必須理解的復(fù)合信息的表示。所謂復(fù)合信息是指具有一系列不同性質(zhì)或?qū)傩缘氖挛?,因此,僅有單個值的事物(例如寬度)不是數(shù)據(jù)對象。2022/12/1026數(shù)據(jù)對象屬性屬性定義了數(shù)據(jù)對象的性質(zhì)。應(yīng)該根據(jù)對所要解決的問題的理解,來確定特定數(shù)據(jù)對象的一組合適的屬性。關(guān)系數(shù)據(jù)對象彼此之間相互連接的方式稱為關(guān)系(聯(lián)系)。一對一聯(lián)系(1∶1)一對多聯(lián)系(1∶N)多對多聯(lián)系(M∶N)聯(lián)系也可能有屬性。2022/12/1027ER模型表示方法ER圖中包含實(shí)體(即數(shù)據(jù)對象)、關(guān)系和屬性三種基本成分,通常用矩形框代表實(shí)體,用連接相關(guān)實(shí)體的菱形框表示關(guān)系,用橢圓形或圓角矩形表示實(shí)體(或關(guān)系)的屬性,并用無向邊把實(shí)體(或關(guān)系)與其屬性連接起來。例如,某學(xué)校教學(xué)管理的ER圖。2022/12/1028某校教學(xué)管理ER圖2022/12/1029學(xué)生和課程之間的E-R模型學(xué)生和課程之間的多對多聯(lián)系E-R模型;(b)將多對多聯(lián)系轉(zhuǎn)換為一對多聯(lián)系E-R模型選課mn學(xué)號專業(yè)年級課名課號學(xué)時1n學(xué)號專業(yè)課名課號學(xué)時學(xué)號課號n1姓名課程學(xué)生姓名課程學(xué)分學(xué)生年級選課學(xué)分(a)(b)2022/12/1030ER圖的建立對系統(tǒng)的數(shù)據(jù)域和功能域進(jìn)行分析,確定系統(tǒng)中所涉及的實(shí)體。例如,在工資計(jì)算系統(tǒng)中,單位對職工的工作情況進(jìn)行考勤,根據(jù)出勤結(jié)果、基本工資檔案、獎金及扣款計(jì)算職工的實(shí)發(fā)工資。因此,工資系統(tǒng)中所涉及的實(shí)體就包括職工、出勤、獎勵和扣款。2022/12/1031ER圖的建立(2)確定系統(tǒng)中各實(shí)體之間的關(guān)系。如工資計(jì)算系統(tǒng)中,一名職工一個月只有一條出勤記錄,因此職工和出勤兩個實(shí)體之間是一對一的關(guān)系;一名職工在一個月中對應(yīng)著多項(xiàng)扣款,如水電費(fèi)、缺勤扣款、個人所得稅等,因此職工和扣款之間是一對多的關(guān)系;同理,一名職工在一個月中可以獲得多項(xiàng)獎勵,因此職工和獎金之間也是一對多的關(guān)系。確定各實(shí)體及聯(lián)系的屬性。例如,工資計(jì)算系統(tǒng)的職工實(shí)體具有職工號、性別、職稱、年齡、部門、基本工資等屬性。2022/12/1032工資計(jì)算系統(tǒng)的E-R模型2022/12/10333.5數(shù)據(jù)規(guī)范化第一范式每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)第二范式滿足第一范式的條件,而且每個非關(guān)鍵字屬性都由整個關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)第三范式符合第二范式條件,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進(jìn)一步描述(即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值)2022/12/10343.6狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。在狀態(tài)圖中用圓形框或橢圓框表示狀態(tài),通常在框內(nèi)標(biāo)上狀態(tài)名。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。系統(tǒng)對事件的響應(yīng),既可以是做一個(或一系列)動作,也可以是僅僅改變系統(tǒng)本身的狀態(tài)。通常,在表示狀態(tài)的框內(nèi)用關(guān)鍵字do(后接冒號)標(biāo)明進(jìn)入該狀態(tài)時系統(tǒng)的行為(即所做的動作)。2022/12/1035狀態(tài)轉(zhuǎn)換圖(2)事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外界事件的抽象。簡而言之,事件就是引起系統(tǒng)狀態(tài)轉(zhuǎn)換的控制信息。在狀態(tài)圖中,從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)換用箭頭線表示,箭頭表明轉(zhuǎn)換方向,箭頭線上標(biāo)上事件名。必要時可在事件名后面加一個方括號,括號內(nèi)寫上狀態(tài)轉(zhuǎn)換的條件。也就是說,僅當(dāng)方括號內(nèi)所列出的條件為真時,該事件的發(fā)生才引起箭頭所示的狀態(tài)轉(zhuǎn)換.2022/12/10362022/12/1037電話系統(tǒng)的狀態(tài)圖號碼驗(yàn)證[無效號碼]號碼驗(yàn)證[有效號碼]2022/12/10383.7其他圖形工具Warnier圖2022/12/1039其他圖形工具(2)IPO圖IPO圖是輸入、處理、輸出圖的簡稱左邊框中列出有關(guān)的輸入中間框中列出主要的處理右邊框中列出產(chǎn)生的輸出處理的順序暗示了執(zhí)行的順序箭頭指出數(shù)據(jù)通信的情況2022/12/1040其他圖形工具(3)IPO圖2022/12/10413.8驗(yàn)證軟件需求驗(yàn)證需求的方面一致性:任何一條需求不能與其他需求相互矛盾完整性:包含用戶需要的每一個功能或性能實(shí)現(xiàn)性:硬件、軟件技術(shù)都可以實(shí)現(xiàn)。有效性:確實(shí)能夠解決用戶面對的問題。2022/12/1042驗(yàn)證軟件需求(2)驗(yàn)證需求的方法1驗(yàn)證需求的一致性自然語言書寫:人工技術(shù)審查大規(guī)模項(xiàng)目時比較困難形式化描述:軟件工具2022/12/1043驗(yàn)證軟件需求(3)驗(yàn)證需求的方法2驗(yàn)證需求的現(xiàn)實(shí)性開發(fā)經(jīng)驗(yàn)、仿真或性能模擬技術(shù)3驗(yàn)證需求的完整性和有效性用戶驗(yàn)證原型2022/12/1044驗(yàn)證軟件需求(4)用于需求分析的軟件工具工具要求(1)必須有形式化的語法(2)使用這個軟件工具能夠?qū)С鲈敿?xì)的文檔(3)必須提供規(guī)格說明書中的不一致性和冗余性的手段(4)使用這個軟件工具之后,應(yīng)該能夠改進(jìn)通信狀況2022/12/1045驗(yàn)證軟件需求(5)用于需求分析的軟件工具工具舉例RSL(需求陳述語言)PSL/PSA(問題陳述語言/問題陳述分析程序)2022/12/1046結(jié)構(gòu)化分析實(shí)例1問題陳述用學(xué)校自己的微型計(jì)算機(jī)生成工資明細(xì)表和各種財(cái)務(wù)報(bào)表。問題定義可行性研究需求分析2022/12/10472問題定義預(yù)期將獲得的經(jīng)濟(jì)效益能超過開發(fā)這個系統(tǒng)的成本么?用戶面臨的問題究竟是什么?該校一直為人工計(jì)算工資,工作量大。項(xiàng)目預(yù)期規(guī)模目前計(jì)算工資所花費(fèi)的成本新系統(tǒng)的開發(fā)成本運(yùn)行費(fèi)用輸出:關(guān)于系統(tǒng)規(guī)模和目標(biāo)的報(bào)告書2022/12/10483可行性研究目標(biāo):用最小的代價盡快確定問題是否能夠解決。步驟:澄清系統(tǒng)規(guī)模和目標(biāo)研究現(xiàn)有系統(tǒng)導(dǎo)出高層邏輯模型進(jìn)一步確定系統(tǒng)規(guī)模和目標(biāo)導(dǎo)出供選擇的解法推薦最佳方案草擬開發(fā)計(jì)劃寫出文檔提交審查2022/12/1049教師職工課時表任務(wù)表審核數(shù)據(jù)審核后的數(shù)據(jù)排序?qū)S帽砀裼?jì)算課時費(fèi)計(jì)算崗位津貼計(jì)算工資總額計(jì)算個人所得稅計(jì)算住房公積金計(jì)算保險(xiǎn)費(fèi)計(jì)算實(shí)發(fā)工資工資表銀行工資表工資明細(xì)表教師職工編制報(bào)表報(bào)表更新分類表分類帳會計(jì)現(xiàn)有的工資支付系統(tǒng)2022/12/1050D1事務(wù)數(shù)據(jù)教師職工1收集數(shù)據(jù)2審核數(shù)據(jù)3加工事務(wù)數(shù)據(jù)D4報(bào)表5更新分類帳D3工資明細(xì)表D2工資表會計(jì)銀行4分發(fā)工資明細(xì)表職工教師定時假設(shè)處理運(yùn)行頻率1每月一次2每月一次3每月一次4每月一次5每月一次工資支付系統(tǒng)的數(shù)據(jù)流圖2022/12/10514需求分析更精確的數(shù)據(jù)流圖需求分析過程:沿?cái)?shù)據(jù)流圖回溯寫出文檔初稿定義邏輯系統(tǒng)細(xì)化數(shù)據(jù)流圖書寫正式文檔技

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論