




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、logo第三章第三章需求分析需求分析主講:李 輝第第3章章 需求分析需求分析3.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)證軟件需求為什么要進(jìn)行需求分析為什么要進(jìn)行需求分析軟件需求分析是軟件開發(fā)的基礎(chǔ)。在需求階軟件需求分析是軟件開發(fā)的基礎(chǔ)。在需求階段修復(fù)一個(gè)錯(cuò)誤的費(fèi)用是編碼階段的段修復(fù)一個(gè)錯(cuò)誤的費(fèi)用是編碼階段的1/51/5-1/10-1/10,是維護(hù)階段修復(fù)費(fèi)用的是維護(hù)階段修復(fù)費(fèi)用的1/1001/100-1/200-1/200,即設(shè)計(jì)錯(cuò)誤,即設(shè)計(jì)錯(cuò)誤的修復(fù)費(fèi)用要遠(yuǎn)遠(yuǎn)高于編碼錯(cuò)
2、誤的修復(fù)費(fèi)用。的修復(fù)費(fèi)用要遠(yuǎn)遠(yuǎn)高于編碼錯(cuò)誤的修復(fù)費(fèi)用。通過通過“分析分析”,理解用戶的各種需求,理解用戶的各種需求, 通過通過“規(guī)格說明規(guī)格說明”把需求表達(dá)出來。要求大家:把需求表達(dá)出來。要求大家:(1 1)掌握掌握具體的步驟和方法具體的步驟和方法(2 2)提高提高分析問題和解決問題的能力分析問題和解決問題的能力(3 3)熟練熟練運(yùn)用一些圖形工具運(yùn)用一些圖形工具為什么需求分析比較困難為什么需求分析比較困難l問題空間的復(fù)雜性問題空間的復(fù)雜性l分析人員和用戶之間的交流障礙分析人員和用戶之間的交流障礙l需求的不斷變化需求的不斷變化基本概念基本概念目的 澄清用戶的各種需求基本任務(wù) (1)軟件定義時(shí)期的
3、最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題。 (2)確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。 (3)寫出軟件需求規(guī)格說明書,以書面形式準(zhǔn)確地描述軟件需求。結(jié)構(gòu)化分析方法遵守的準(zhǔn)則結(jié)構(gòu)化分析方法遵守的準(zhǔn)則(1) 必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。(2) 必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。(3) 必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。(4) 必須對描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié)。 需求:正在構(gòu)建的系統(tǒng)必須符合的事務(wù)。 需求管理:是一種獲取、組織并記
4、錄系統(tǒng)需求的系統(tǒng)化方案以及一個(gè)使客戶與項(xiàng)目團(tuán)隊(duì)不斷變更的系統(tǒng)需求達(dá)成并保持一致的過程。 傳統(tǒng)需求分析:強(qiáng)調(diào)需求的記錄,以一成不變的觀點(diǎn)對待需求,不重視需求實(shí)現(xiàn)與維護(hù)。 現(xiàn)代需求過程:包括需求的獲取、分析、處理、驗(yàn)證、實(shí)現(xiàn)和全過程的需求管理。需求管理覆蓋軟件工程的整個(gè)過程。有關(guān)需求的概念有關(guān)需求的概念傳統(tǒng)與現(xiàn)代需求方法的比較:傳統(tǒng)與現(xiàn)代需求方法的比較: 需求管理過程需求管理過程需求管理功能需求管理功能需求管理思想方法需求管理思想方法傳統(tǒng)傳統(tǒng)局限于需求分局限于需求分析這一個(gè)階段析這一個(gè)階段注重具體的需注重具體的需求分析方法求分析方法一成不變的觀點(diǎn),一成不變的觀點(diǎn),注重注重“描述描述”的方的方法和過
5、程,是純技法和過程,是純技術(shù)性的轉(zhuǎn)換術(shù)性的轉(zhuǎn)換現(xiàn)代現(xiàn)代全過程的,注全過程的,注重整個(gè)產(chǎn)品過重整個(gè)產(chǎn)品過程的全部程的全部功能范圍更廣,功能范圍更廣,包括獲取、分包括獲取、分析、處理、驗(yàn)析、處理、驗(yàn)證、實(shí)現(xiàn)和全證、實(shí)現(xiàn)和全過程的需求管過程的需求管理理注重需求實(shí)現(xiàn)與維注重需求實(shí)現(xiàn)與維護(hù)過程,處理不斷護(hù)過程,處理不斷變更的系統(tǒng)需求變更的系統(tǒng)需求需求管理存在的問題:需求管理存在的問題: 范圍問題:系統(tǒng)目標(biāo)、邊界未被良好定義,用戶和開發(fā)團(tuán)隊(duì)理解不一致。 理解問題:用戶不能完全了解自己需要什么,對系統(tǒng)能力、局限更加不清楚;工程師不理解用戶的問題域和應(yīng)用環(huán)境。 易變問題:需求隨時(shí)間發(fā)生變化。3.1 需求分析的
6、任務(wù)需求分析的任務(wù) 確定對系統(tǒng)的綜合要求確定對系統(tǒng)的綜合要求 功能需求功能需求 性能需求性能需求 可靠性和可用性需求可靠性和可用性需求 出錯(cuò)處理需求出錯(cuò)處理需求 接口需求接口需求 約束約束 逆向需求逆向需求 將來可能提出的要求將來可能提出的要求3.1 需求分析的任務(wù)需求分析的任務(wù) 分析系統(tǒng)的數(shù)據(jù)要求 建立數(shù)據(jù)模型(實(shí)體 聯(lián)系圖) 分析數(shù)據(jù)結(jié)構(gòu)(層次方框圖、warnier圖) 規(guī)范數(shù)據(jù)結(jié)構(gòu)(范式) 導(dǎo)出系統(tǒng)的邏輯模型 數(shù)據(jù)流圖 實(shí)體 聯(lián)系圖 狀態(tài)轉(zhuǎn)換圖 數(shù)據(jù)字典 主要的處理算法 修正系統(tǒng)開發(fā)計(jì)劃需求分析的過程需求分析的過程需求分析階段可分為四個(gè)過程:需求獲取、需求提煉、需求描述、需求驗(yàn)證。(1)
7、需求獲取 需求分析員調(diào)查、分析用戶的需求,客戶或用戶提供必要需求信息。需求調(diào)查的目的是通過各種途徑獲取用戶需求信息,產(chǎn)生用戶需求說明書 。(2)需求提煉 需求提煉的過程就是分析建模的過程。目的是構(gòu)造系統(tǒng)的詳細(xì)邏輯模型。需求分析的過程需求分析的過程(3)需求描述 需求規(guī)格說明書 初步的用戶手冊 修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃(4)需求驗(yàn)證 系統(tǒng)定義的目標(biāo)是否與用戶的要求一致 系統(tǒng)需求分析階段提供的文檔資料是否齊全 文檔中的所有描述是否完整、清晰、準(zhǔn)確地反映用戶要求 與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述用戶需求說明書與軟件需求規(guī)格說明書的主要區(qū)別與聯(lián)系: 1)前者主要采用自然語言和應(yīng)用域語
8、言來表達(dá)用戶需求,其內(nèi)容相對于后者而言比較粗略,不夠詳細(xì)。2)后者是前者的細(xì)化,更多地采用計(jì)算機(jī)語言和圖形符號來刻畫需求。3)軟件需求規(guī)格說明書是軟件系統(tǒng)設(shè)計(jì)的直接依據(jù),軟件開發(fā)人員應(yīng)當(dāng)依據(jù)軟件需求規(guī)格說明書來開發(fā)產(chǎn)品。3.2 需求獲取的方法需求獲取的方法l 訪談l 面向數(shù)據(jù)流自頂向下求精l 簡易的應(yīng)用規(guī)格說明技術(shù)l 快速建立軟件原型 訪談 訪談?dòng)姓皆L談和非正式訪談兩種形式。 正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題。 非正式訪談中,分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說出自己的想法。 向被調(diào)查人分發(fā)調(diào)查表是一個(gè)十分有效的做法,經(jīng)過仔細(xì)考慮寫出的書面回答
9、可能比被訪者對問題的口頭回答更準(zhǔn)確。情景分析技術(shù)情景分析技術(shù)是對用戶將來使用目標(biāo)系統(tǒng)解決某個(gè)具體問題的是對用戶將來使用目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果進(jìn)行分析。方法和結(jié)果進(jìn)行分析。系統(tǒng)分析人員利用情景分系統(tǒng)分析人員利用情景分析技術(shù)往往能獲知用戶的具體需求。析技術(shù)往往能獲知用戶的具體需求。 情景(場景)分析是從軟件系統(tǒng)的一個(gè)交互情景示例中得到需求分析信息。情景分析中用戶在某種程度上演示產(chǎn)品的應(yīng)用“樣本”,通過交互實(shí)例片斷細(xì)節(jié)(情景)的描述,實(shí)現(xiàn)對某個(gè)目標(biāo)產(chǎn)品的表述。 每個(gè)情景可能包含一個(gè)或多個(gè)交互,它們能在不同的細(xì)節(jié)層次上提供不同類型的情景信息。 情景分析技術(shù)的用處: (1) 它能在某種程度
10、上演示目標(biāo)系統(tǒng)的行為,從而便于用戶理解,而且還可能進(jìn)一步揭示出一些分析員目前還不知道的需求。 (2) 由于情景分析較易為用戶所理解,使用這種技術(shù)能保證用戶在需求分析過程中始終扮演一個(gè)積極主動(dòng)的角色。讓用戶起積極主動(dòng)的作用對需求分析工作獲得成功是至關(guān)重要的。 面向數(shù)據(jù)流自頂向下求精l 軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),基本功能是把輸入數(shù)據(jù)轉(zhuǎn)變成需要的輸出信息。數(shù)據(jù)決定了需要的處理和算法,數(shù)據(jù)顯然是需求分析的出發(fā)點(diǎn)。l 通過可行性研究已經(jīng)得出了目標(biāo)系統(tǒng)的高層數(shù)據(jù)流圖,但當(dāng)時(shí)許多實(shí)際的數(shù)據(jù)元素被忽略了,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。面向數(shù)據(jù)流自頂向下求精的過程面向數(shù)據(jù)流自頂向下求
11、精的過程(1)沿?cái)?shù)據(jù)流圖從輸出端往輸入端回溯,確定每個(gè)數(shù)據(jù)元素的來源,初步定義了有關(guān)的算法。通常把有關(guān)數(shù)據(jù)元素的信息記錄在數(shù)據(jù)字典中,把對算法的簡明描述記錄在ipo圖中。 (2)從數(shù)據(jù)流圖輸入端開始,分析員借助數(shù)據(jù)流圖、數(shù)據(jù)字典和ipo圖向用戶解釋輸入數(shù)據(jù)是怎樣一步一步地轉(zhuǎn)變成輸出數(shù)據(jù)的。請用戶對分析結(jié)果仔細(xì)地復(fù)查,驗(yàn)證已知的元素,補(bǔ)充未知的元素,填補(bǔ)文檔中的空白。(3)反復(fù)進(jìn)行上述兩個(gè)過程,分析員通過功能分解完成數(shù)據(jù)流圖的細(xì)化。最終得到對系統(tǒng)數(shù)據(jù)和功能要求的滿意了解。示意圖示意圖圖圖3.1 面向數(shù)據(jù)流自頂向下求精過程面向數(shù)據(jù)流自頂向下求精過程簡易的應(yīng)用規(guī)格說明技術(shù)簡易的應(yīng)用規(guī)格說明技術(shù)是一種
12、是一種面向團(tuán)隊(duì)面向團(tuán)隊(duì)的需求收集法。的需求收集法。l訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位。由于不能像同一個(gè)團(tuán)隊(duì)的人那樣齊心協(xié)力地識別和精化需求,這兩種方法的效果有時(shí)并不理想。l為此,人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡易的應(yīng)用規(guī)格說明技術(shù)。這種方法提倡用戶與開發(fā)者密切合作,共同分析問題,解決問題。分析需求的典型過程如下:分析需求的典型過程如下:1. 初步訪談,準(zhǔn)備會(huì)議初步訪談,準(zhǔn)備會(huì)議首先進(jìn)行初步的訪談,初步確定待解決的問題的范圍和解決方案。然后開發(fā)者和用戶分別寫出“產(chǎn)品需求”。選定會(huì)議的時(shí)間和地點(diǎn),并選舉協(xié)調(diào)人。2. 會(huì)前審查需求,確定列表會(huì)前審查需求,確定列表
13、要求每位與會(huì)者在開會(huì)的前幾天認(rèn)真審查產(chǎn)品需求,并且列出對象、操作這些對象或與這些對象交互的服務(wù)、約束條件和性能標(biāo)準(zhǔn)。3. 會(huì)上討論列表,創(chuàng)建組合列表會(huì)上討論列表,創(chuàng)建組合列表每位與會(huì)者展示列表供大家討論。大家共同創(chuàng)建一張組合列表。由協(xié)調(diào)人主持討論這些列表。4. 分組制定小型規(guī)格說明分組制定小型規(guī)格說明與會(huì)者分成更小的小組,為每張列表中的項(xiàng)目制定小型規(guī)格說明。每個(gè)小組都向全體與會(huì)者展示他們制定的小型規(guī)格說明,供大家討論。5. 制定確認(rèn)標(biāo)準(zhǔn),起草需求規(guī)格說明書制定確認(rèn)標(biāo)準(zhǔn),起草需求規(guī)格說明書每個(gè)與會(huì)者都制定出產(chǎn)品的一整套確認(rèn)標(biāo)準(zhǔn),并提交會(huì)議討論,以創(chuàng)建出意見一致的確認(rèn)標(biāo)準(zhǔn)。最后,起草完整的軟件需求
14、規(guī)格說明書。簡易的應(yīng)用規(guī)格說明技術(shù)的優(yōu)點(diǎn):簡易的應(yīng)用規(guī)格說明技術(shù)的優(yōu)點(diǎn): 開發(fā)者與用戶不分彼此,齊心協(xié)力,密切開發(fā)者與用戶不分彼此,齊心協(xié)力,密切合作;合作; 即時(shí)討論并求精;即時(shí)討論并求精; 有能導(dǎo)出規(guī)格說明的具體步驟。有能導(dǎo)出規(guī)格說明的具體步驟。 3.2.4 快速建立軟件原型快速建立軟件原型 快速建立軟件原型是快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)需求分析技術(shù)。 快速原型就是快速建立起來的旨在演示目標(biāo)系統(tǒng)快速原型就是快速建立起來的旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序。主要功能的可運(yùn)行的程序。 構(gòu)建原型的要點(diǎn)是,它應(yīng)該構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶
15、看得見的功實(shí)現(xiàn)用戶看得見的功能,省略目標(biāo)系統(tǒng)的能,省略目標(biāo)系統(tǒng)的“隱含隱含”功能功能??焖僭偷奶匦裕嚎焖僭偷奶匦裕?“快速”??焖僭偷哪康氖潜M快向用戶提供一個(gè)可在計(jì)算機(jī)上運(yùn)行的目標(biāo)系統(tǒng)的模型。因此,原型的某些缺陷是可以忽略的。 “容易修改”。如果原型的第一版不是用戶所需要的,就必須根據(jù)用戶的意見迅速地修改它,構(gòu)建出原型的第二版,以更好地滿足用戶需求。如果修改耗時(shí)過多,勢必延誤軟件開發(fā)時(shí)間。 快速原型通常使用下述快速原型通常使用下述3種方法和工具:種方法和工具:(1) 第四代技術(shù)(第四代技術(shù)(4gl) 第四代技術(shù)包括眾多數(shù)據(jù)庫查詢(如sql)和報(bào)表語言(如adf)、程序和應(yīng)用系統(tǒng)生成器(如
16、power builder和oracle的應(yīng)用開發(fā)環(huán)境)以及其他非常高級的非過程語言。 第四代技術(shù)使得軟件工程師能夠快速地生成可執(zhí)行的代碼,它們是較理想的快速原型工具。 第四代技術(shù)特點(diǎn):第四代技術(shù)特點(diǎn): 簡單易學(xué),用戶界面良好,面向問題、非過程化程度高,用戶只需告知系統(tǒng)做什么,而無需說明怎么做。用4gl編程使用的代碼量較少,并可成數(shù)量級地提高軟件生產(chǎn)率。程序設(shè)計(jì)語言劃代: 1gl是匯編語言; 2gl是高級程序設(shè)計(jì)語言,如fortran,algol,basic,lisp等; 3gl是增強(qiáng)性的高級程序設(shè)計(jì)語言,如pascal,algol68,fortran77等; 4gl是按計(jì)算機(jī)科學(xué)理論指導(dǎo)設(shè)計(jì)
17、出來的結(jié)構(gòu)化語言,如ada,modula2,smalltalk80,java,vb,vc,vf等。 (2) 可重用的軟件構(gòu)件可重用的軟件構(gòu)件 另外一種快速構(gòu)建原型的方法,是使用一組已有的軟件構(gòu)件(也稱為組件)來裝配(而不是從頭構(gòu)造)原型。 軟件構(gòu)件可以是數(shù)據(jù)結(jié)構(gòu)(或數(shù)據(jù)庫),或軟件體系結(jié)構(gòu)構(gòu)件(即程序),或過程構(gòu)件(即模塊)。(3) 形式化規(guī)格說明和原型環(huán)境形式化規(guī)格說明和原型環(huán)境 非形式化方法:自然語言描述 半形式化方法:數(shù)據(jù)流圖或?qū)嶓w-聯(lián)系圖 形式化方法:基于數(shù)學(xué)的技術(shù) 快速原型過程示意圖快速原型過程示意圖短時(shí)間內(nèi)建立原型用戶滿意修改,完善原型否否是是完成原型3.3 分析建模與規(guī)格說明分析
18、建模與規(guī)格說明分析建模l 模型,就是為了理解事物而對事物做出的一種模型,就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。通抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖形符號和組織這些符號的規(guī)常,模型由一組圖形符號和組織這些符號的規(guī)則組成。則組成。l 分析建模是指通過抽象、概括和一般化的方法,分析建模是指通過抽象、概括和一般化的方法,把研究的具體對象或問題轉(zhuǎn)化為本質(zhì)相同的抽把研究的具體對象或問題轉(zhuǎn)化為本質(zhì)相同的抽象對象或問題,從而加以解決。象對象或問題,從而加以解決。分析建模的目分析建模的目的是構(gòu)造系統(tǒng)的詳細(xì)邏輯模型。的是構(gòu)造系統(tǒng)的詳細(xì)邏輯模型。建模過程建模過
19、程物理模型和邏輯模型物理模型和邏輯模型l物理模型:具體描述系統(tǒng)是如何在物理上實(shí)現(xiàn)的。l邏輯模型:抽象描述系統(tǒng)的業(yè)務(wù)功能,不關(guān)心系統(tǒng)是如何實(shí)施的。分析建模過程示意(1)(1)通過對現(xiàn)實(shí)環(huán)境的調(diào)查,獲得當(dāng)前系統(tǒng)的物理模型。通過對現(xiàn)實(shí)環(huán)境的調(diào)查,獲得當(dāng)前系統(tǒng)的物理模型。分析建模過程示意 (2)(2)去掉物理模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型。去掉物理模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型。 分析建模過程示意 (3)(3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型。分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型。分析建模的方法l結(jié)構(gòu)化分析方法 (sa)l面向?qū)ο蟮姆治龇?/p>
20、法 (ooa)sal結(jié)構(gòu)化分析方法(structured analysis ,簡稱sa方法)是一種面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。這個(gè)方法通常與設(shè)計(jì)階段的結(jié)構(gòu)化設(shè)計(jì)方法(sd)銜接起來。l自頂向下逐步求精體現(xiàn)了分解和抽象的原則,可以有控制地逐步實(shí)現(xiàn)更多的細(xì)節(jié),所以sa方法有效地控制了復(fù)雜性。結(jié)構(gòu)化分析方法示意圖結(jié)構(gòu)化分析方法示意圖結(jié)構(gòu)化分析方法中使用的建模工具:l 數(shù)據(jù)模型-實(shí)體-聯(lián)系圖l 功能模型-數(shù)據(jù)流圖l 行為模型-狀態(tài)轉(zhuǎn)換圖結(jié)構(gòu)化分析模型的體系結(jié)構(gòu)結(jié)構(gòu)化分析模型的體系結(jié)構(gòu)l 模型的核心是模型的核心是數(shù)據(jù)字典數(shù)據(jù)字典(dd),它描述了目標(biāo)系統(tǒng)中所有的數(shù)據(jù)對,它描述了目標(biāo)系統(tǒng)
21、中所有的數(shù)據(jù)對象。象。l 數(shù)據(jù)流圖數(shù)據(jù)流圖(dfd)描繪當(dāng)數(shù)據(jù)在軟件系統(tǒng)中移動(dòng)時(shí)被變換的邏輯過程,描繪當(dāng)數(shù)據(jù)在軟件系統(tǒng)中移動(dòng)時(shí)被變換的邏輯過程,指明系統(tǒng)具有的變換數(shù)據(jù)的功能,因此,數(shù)據(jù)流圖是建立功能模型的指明系統(tǒng)具有的變換數(shù)據(jù)的功能,因此,數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)?;A(chǔ)。l 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖(e-rd)描述數(shù)據(jù)對象及相互之間的關(guān)系,是用于建立描述數(shù)據(jù)對象及相互之間的關(guān)系,是用于建立數(shù)據(jù)模型的圖形。數(shù)據(jù)模型的圖形。l 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(std)描述系統(tǒng)對外部事件如何響應(yīng),如何動(dòng)作,是行描述系統(tǒng)對外部事件如何響應(yīng),如何動(dòng)作,是行為建模的基礎(chǔ)。為建模的基礎(chǔ)。l 模型的外層是描述信息。在
22、實(shí)體模型的外層是描述信息。在實(shí)體-關(guān)系圖中出現(xiàn)的每個(gè)數(shù)據(jù)對象可以使關(guān)系圖中出現(xiàn)的每個(gè)數(shù)據(jù)對象可以使用用數(shù)據(jù)對象描述數(shù)據(jù)對象描述來描述。在數(shù)據(jù)流圖中出現(xiàn)的每個(gè)加工來描述。在數(shù)據(jù)流圖中出現(xiàn)的每個(gè)加工/處理的功能描處理的功能描述包含在述包含在加工規(guī)約加工規(guī)約中。軟件控制方面的附加信息包含在中。軟件控制方面的附加信息包含在控制規(guī)約控制規(guī)約中。中。各模型圖說明各模型圖說明軟件需求規(guī)格說明軟件需求規(guī)格說明l 通過需求分析除了創(chuàng)建分析模型之外,還應(yīng)該寫出軟件需求規(guī)格說明書,它是需求分析階段得出的最主要的文檔。l 通常用自然語言完整、準(zhǔn)確、具體地描述系統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可用性要求、出錯(cuò)
23、處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。 l 通常用自然語言或形式化方法描述。我國定義了我國定義了gb856d-1988國家標(biāo)準(zhǔn),給出了需求規(guī)格說國家標(biāo)準(zhǔn),給出了需求規(guī)格說明的內(nèi)容框架:明的內(nèi)容框架:1 引言引言 1.1 編寫目的編寫目的 1.2 項(xiàng)目背景(單位和其他系統(tǒng)項(xiàng)目背景(單位和其他系統(tǒng)的關(guān)系)的關(guān)系) 1.3 定義(專門術(shù)語和縮寫詞)定義(專門術(shù)語和縮寫詞)2 任務(wù)概述任務(wù)概述 2.1 目標(biāo)目標(biāo) 2.2 運(yùn)行環(huán)境運(yùn)行環(huán)境 2.3 條件限制條件限制3 數(shù)據(jù)描述數(shù)據(jù)描述 3.1 靜態(tài)數(shù)據(jù)靜態(tài)數(shù)據(jù) 3.2 動(dòng)態(tài)數(shù)據(jù)動(dòng)態(tài)數(shù)據(jù) 3.3 數(shù)據(jù)庫描述數(shù)據(jù)庫描述 3.4 數(shù)據(jù)字典數(shù)
24、據(jù)字典 3.5 數(shù)據(jù)采集數(shù)據(jù)采集4 功能需求功能需求 4.1 功能劃分功能劃分 4.2 功能描述功能描述5 性能需求性能需求 5.1 數(shù)據(jù)精確度數(shù)據(jù)精確度 5.2 時(shí)間特性時(shí)間特性 5.3 適應(yīng)性適應(yīng)性6 運(yùn)行需求運(yùn)行需求 6.1 用戶界面用戶界面 6.2 硬件接口硬件接口 6.3 軟件接口軟件接口 6.4 故障處理故障處理7 其他需求其他需求(檢測或驗(yàn)收標(biāo)準(zhǔn)、可用性、可(檢測或驗(yàn)收標(biāo)準(zhǔn)、可用性、可維護(hù)性、可移植性、安全保密性)維護(hù)性、可移植性、安全保密性)3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖 為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立一個(gè)
25、系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型概念性的數(shù)據(jù)模型。 概念性數(shù)據(jù)模型是一種概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型面向問題的數(shù)據(jù)模型,是,是按照用戶的觀點(diǎn)對數(shù)據(jù)建立的模型。它描述了從按照用戶的觀點(diǎn)對數(shù)據(jù)建立的模型。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實(shí)環(huán)境用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實(shí)環(huán)境,且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無關(guān)。,且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無關(guān)。 數(shù)據(jù)模型中包含數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:種相互關(guān)聯(lián)的信息: 數(shù)據(jù)對象數(shù)據(jù)對象 數(shù)據(jù)對象的屬性數(shù)據(jù)對象的屬性 數(shù)據(jù)對象彼此間相互連接的關(guān)系數(shù)據(jù)對象彼此間相互連接的關(guān)系 3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖1.數(shù)據(jù)對象數(shù)據(jù)
26、對象是指具有一系列不同性質(zhì)或?qū)傩缘氖挛?,僅有單個(gè)值的事物(例如,寬度)不是數(shù)據(jù)對象。數(shù)據(jù)對象可以是現(xiàn)實(shí)世界的人、物、抽象的概念、事物之間的聯(lián)系等。數(shù)據(jù)對象可以是外部實(shí)體(例如產(chǎn)生或使用信息的任何事物)、事物(如報(bào)表)、行為(如打電話)、事件(如響警報(bào))、角色(如教師、學(xué)生)、單位(如會(huì)計(jì)科)、地點(diǎn)(如倉庫)等總之,可以由一組屬性來定義的實(shí)體都可以被認(rèn)為是數(shù)據(jù)對象。 3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖2屬性“屬性” 定義了數(shù)據(jù)對象的性質(zhì)。屬性是對實(shí)體的進(jìn)一步描述。如學(xué)生實(shí)體可由學(xué)號、姓名、年齡、性別、學(xué)院、年級等屬性來刻畫。(屬性有屬性名和屬性值的概念)。例如,汽車屬性有品牌、型號、發(fā)動(dòng)機(jī)號碼、車體
27、類型、顏色、生產(chǎn)日期等3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖3聯(lián)系現(xiàn)實(shí)世界里的事物總是存在著這樣或那樣的聯(lián)系,這種聯(lián)系必然要在信息世界中得到反映。在信息世界中,事物之間的聯(lián)系可分為兩類:一是實(shí)體內(nèi)部的聯(lián)系,如組成實(shí)體的各屬性之間的關(guān)系;另一是實(shí)體之間的聯(lián)系,這里我們主要討論實(shí)體與實(shí)體之間的聯(lián)系。實(shí)體彼此間的聯(lián)系分為三類:一對一(1:1)聯(lián)系,一對多(1:n)聯(lián)系,多對多(m:n)聯(lián)系。一對一聯(lián)系(一對一聯(lián)系(1 1) 如果對于如果對于a a中的每一個(gè)實(shí)體,中的每一個(gè)實(shí)體,b b中至多有一個(gè)實(shí)體與其對應(yīng);中至多有一個(gè)實(shí)體與其對應(yīng);b b中的每一中的每一個(gè)實(shí)體也至多對應(yīng)個(gè)實(shí)體也至多對應(yīng)a a中的一個(gè)實(shí)體,
28、則稱中的一個(gè)實(shí)體,則稱a a與與b b是一對一的,記作是一對一的,記作1:1。比如:。比如:學(xué)校校長領(lǐng)導(dǎo)11工廠廠長管理11科室主任病區(qū)負(fù)責(zé)11屬性1屬性n屬性1屬性n校名屬性n屬性1校址姓名職稱屬性1屬性n屬性1屬性n屬性1屬性n屬性1屬性n一對多聯(lián)系(一對多聯(lián)系(1 n)如果對于如果對于a a中的一個(gè)實(shí)體,中的一個(gè)實(shí)體,b b中有一個(gè)以上的實(shí)體與之對應(yīng);中有一個(gè)以上的實(shí)體與之對應(yīng);b b中的每一中的每一個(gè)實(shí)體至多對應(yīng)個(gè)實(shí)體至多對應(yīng)a a中的一個(gè)實(shí)體,則稱中的一個(gè)實(shí)體,則稱a a與與b b是一對多的,記作是一對多的,記作1:1:n n。比如:比如:學(xué)校班級下設(shè)1n工廠車間有1n病區(qū)醫(yī)生擁有1
29、n屬性1屬性n屬性1屬性n屬性1屬性n校名校址屬性1屬性n屬性1屬性n班名人數(shù)屬性1屬性n屬性1屬性n多對多聯(lián)系(多對多聯(lián)系(m n)如果a中有實(shí)體對應(yīng)b中一個(gè)以上實(shí)體;b中也有實(shí)體對應(yīng)a中一個(gè)以上實(shí)體,則稱a與b為多對多的,記作m:n。比如: 學(xué)生課程選課mn項(xiàng)目職工參加mn醫(yī)生病人診治mn成績屬性1屬性n記錄學(xué)號姓名屬性1屬性n屬性1屬性n課程號課程名屬性1屬性n屬性1屬性n3.3.4 4.4.4 實(shí)體實(shí)體聯(lián)系圖的符號聯(lián)系圖的符號 通常,使用實(shí)體-聯(lián)系圖(entity-relationship diagram)來建立數(shù)據(jù)模型??梢园褜?shí)體-聯(lián)系圖簡稱為er圖,相應(yīng)地可把用er圖描繪的數(shù)據(jù)模型
30、稱為er模型。 er圖中包含了實(shí)體(即數(shù)據(jù)對象)、關(guān)系和屬性3種基本成分,通常用矩形框代表實(shí)體,用連接相關(guān)實(shí)體的菱形框表示關(guān)系,用橢圓形或圓角矩形表示實(shí)體(或關(guān)系)的屬性,并用直線把實(shí)體(或關(guān)系)與其屬性連接起來。 比較接近人的習(xí)慣思維方式; 用簡單的圖形符號表達(dá)系統(tǒng)分析員對問題域的理解,用戶也容易理解,可以作為用戶與分析員之間有效的交流工具。 數(shù)據(jù)建模工具:數(shù)據(jù)建模工具:以自動(dòng)化的方式創(chuàng)建以自動(dòng)化的方式創(chuàng)建er圖、數(shù)據(jù)字典圖、數(shù)據(jù)字典及相關(guān)模型。及相關(guān)模型。 powerdesigner 是sybase公司的case工具集,幾乎包括了數(shù)據(jù)庫模型設(shè)計(jì)的全過程. erdesigner ng 是一個(gè)
31、實(shí)體關(guān)系建模工具,開源 modelright3是一款數(shù)據(jù)庫開發(fā)、支持、轉(zhuǎn)換工具 oracle designer 建模、應(yīng)用系統(tǒng)和數(shù)據(jù)庫設(shè)計(jì) opensystemarchitect 開源數(shù)據(jù)庫建模軟件erer圖的優(yōu)點(diǎn):圖的優(yōu)點(diǎn): 如何設(shè)計(jì)如何設(shè)計(jì)e-re-r圖圖 考察客觀事物及其聯(lián)系,抽象出實(shí)體,并一一命名(不能重名) 根據(jù)需求確定實(shí)體的屬性 根據(jù)屬性外在的聯(lián)系,描述實(shí)體間的聯(lián)系 先作出局部e-r圖,再綜合產(chǎn)生總體e-r圖??傮we-r圖不是各局部e-r圖的簡單拼合,而是有可能增加了某些聯(lián)系,也有可能減少了某些聯(lián)系 實(shí)例實(shí)例1 1u一個(gè)學(xué)生管理系統(tǒng)的實(shí)體-聯(lián)系圖【步驟】(1)考察客觀事物及其聯(lián)系,
32、抽象出實(shí)體,并一一命名(不能重名) 實(shí)體:教師,學(xué)生,課程(2)根據(jù)需求確定實(shí)體的屬性 教師:教工號,姓名,性別,職稱,職務(wù) 學(xué)生:學(xué)號,姓名,性別,系,年級 課程:課程號,課名,學(xué)時(shí),學(xué)分例例1:(3)根據(jù)屬性外在的聯(lián)系,描述實(shí)體間的聯(lián)系 教:教師教課程 學(xué):學(xué)生學(xué)課程(4)畫出e-r圖例例2:習(xí)題:習(xí)題3.3 銀行儲蓄系統(tǒng)的銀行儲蓄系統(tǒng)的er圖圖 銀行計(jì)算機(jī)儲蓄系統(tǒng)的工作過程大致如下: 儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲戶; 如果是取款而且存款時(shí)留有
33、密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時(shí)未留密碼,則系統(tǒng)計(jì)算利息并印出利息清單給儲戶。例例2:銀行儲蓄系統(tǒng)的:銀行儲蓄系統(tǒng)的er圖圖 er圖圖 練習(xí)題:練習(xí)題: 請為某倉庫的管理設(shè)計(jì)一個(gè)請為某倉庫的管理設(shè)計(jì)一個(gè)er模型。該模型。該倉庫主要管理零件(包括零件編號、名倉庫主要管理零件(包括零件編號、名稱、顏色、重量)的定購和供應(yīng)等事項(xiàng)稱、顏色、重量)的定購和供應(yīng)等事項(xiàng)。倉庫向工程項(xiàng)目(包括項(xiàng)目編號、項(xiàng)。倉庫向工程項(xiàng)目(包括項(xiàng)目編號、項(xiàng)目名稱、開工日期)供應(yīng)零件,并且根目名稱、開工日期)供應(yīng)零件,并且根據(jù)需要向供應(yīng)商(包括供應(yīng)商編號、名據(jù)需要向供應(yīng)商(包括供應(yīng)商編號、名稱、地址)定購零件。稱
34、、地址)定購零件。倉庫管理系統(tǒng)的倉庫管理系統(tǒng)的er圖圖3.5 數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化l 軟件系統(tǒng)經(jīng)常使用各種長期保存的信息,這些信息通常以一定方式組織并存儲在數(shù)據(jù)庫或文件中,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。范式范式l 通常用“范式(normal forms)”定義消除數(shù)據(jù)冗余的程度。第一范式第一范式(1 nf)數(shù)據(jù)冗余程度最大,第數(shù)據(jù)冗余程度最大,第五范式五范式(5 nf)數(shù)據(jù)冗余程度最小。數(shù)據(jù)冗余程度最小。 范式級別越高,存儲同樣數(shù)據(jù)需要分解成更多張表,因此,“存儲自身”過程越復(fù)雜。 隨著范式級別的提高,數(shù)據(jù)的存儲結(jié)構(gòu)與基于問題域的結(jié)構(gòu)
35、間的匹配程度也隨之下降,因此,在需求變化時(shí)數(shù)據(jù)的穩(wěn)定性較差。 范式級別提高則需要訪問的表增多,因此性能(速度)將下降。從實(shí)用角度來看,在大多數(shù)場合選用第三范式都比較恰當(dāng)。 第一范式,每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡單值而不含內(nèi)部結(jié)構(gòu)。 第二范式,滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。 第三范式,符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵字屬性值不依賴于另一個(gè)非關(guān)鍵字屬性值)。 l 下面以一個(gè)學(xué)校的學(xué)生系統(tǒng)為例分析說明,假設(shè)數(shù)據(jù)庫中包括如下信息:學(xué)號
36、、學(xué)生姓名、年齡、性別、課程、課程學(xué)分、系別、學(xué)科成績,系辦地址、系辦電話等信息。首先我們考慮,把所有這些信息放到一個(gè)表中,因此不滿足第二范式的要求,會(huì)產(chǎn)生如下問題 : 數(shù)據(jù)冗余:同一門課程由n個(gè)學(xué)生選修,學(xué)分重復(fù)n-1次;同一個(gè)學(xué)生選修m門課程,姓名和年齡就重復(fù)m-1次。 更新異常: 1)若調(diào)整了某門課程的學(xué)分,數(shù)據(jù)表中所有行的“學(xué)分”值都要更新,否則會(huì)出現(xiàn)同一門課程學(xué)分不同的情況。 2)假設(shè)要開設(shè)一門新的課程,暫時(shí)還沒有人選修。這樣,由于還沒有“學(xué)號”關(guān)鍵字,課程名稱和學(xué)分也無法記錄入數(shù)據(jù)庫。 刪除異常 :假設(shè)一批學(xué)生已經(jīng)完成課程的選修,這些選修記錄就應(yīng)該從表中刪除。但是,與此同時(shí),課程名
37、稱和學(xué)分信息也被刪除了。很顯然,這也會(huì)導(dǎo)致插入異常。解決方案,改為如下三個(gè)表: 學(xué)生:student(學(xué)號,姓名,年齡,性別,系別,系辦地址、系辦電話); 課程:course(課程名稱,學(xué)分); 選課關(guān)系:selectcourse(學(xué)號,課程名稱,成績)。 3.6 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖 是通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系是通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。統(tǒng)的行為。 狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作(例如,例如,處理數(shù)據(jù)處理數(shù)據(jù))。 狀態(tài)模型一般采用狀態(tài)模型一般采用狀態(tài)轉(zhuǎn)換圖(狀態(tài)圖
38、)狀態(tài)轉(zhuǎn)換圖(狀態(tài)圖)表示,狀態(tài)圖提供了表示,狀態(tài)圖提供了行為建模行為建模機(jī)制。機(jī)制。 狀狀 態(tài)態(tài)1狀狀 態(tài)態(tài)2事件事件/觸發(fā)行為觸發(fā)行為3.6.1 狀態(tài)狀態(tài)狀態(tài):是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。狀態(tài)主要有:初態(tài)(即初始狀態(tài)),只能有1個(gè)終態(tài)(即最終狀態(tài)),可以有0至多個(gè)中間狀態(tài)狀態(tài)圖分類:表示系統(tǒng)循環(huán)運(yùn)行過程,通常不關(guān)心循環(huán)是怎樣啟動(dòng)的。表示系統(tǒng)單程生命期,需要標(biāo)明初始狀態(tài)和最終狀態(tài)。3.6.2 事件事件 事件:是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。簡而言之,事件就
39、是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。 3.6.3 符號符號 初態(tài):用實(shí)心圓表示; 終態(tài):用一對同心圓(內(nèi)圓為實(shí)心圓)表示; 中間狀態(tài):用圓角矩形表示,分成上、中、下3部分。 上面部分-為狀態(tài)的名稱; 中間部分-為狀態(tài)變量的名字和值; 下面部分-是活動(dòng)表。 帶箭頭的連線:稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。 3.6.4 例子例子例例1:電話系統(tǒng)電話系統(tǒng) 例例3:銀行儲蓄系統(tǒng):銀行儲蓄系統(tǒng)存款過程的狀態(tài)圖存款過程的狀態(tài)圖 例例3:銀行儲蓄系統(tǒng):銀行儲蓄系統(tǒng)取款過程的狀態(tài)圖取款過程的狀態(tài)圖 狀態(tài)圖練習(xí)題:習(xí)題狀態(tài)圖練習(xí)題:習(xí)題3.6 復(fù)印機(jī)的工作過程大致如下:復(fù)印機(jī)的工作過程大致如下: 未接到
40、復(fù)印命令時(shí)處于閑置狀態(tài),一旦接未接到復(fù)印命令時(shí)處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完成一個(gè)復(fù)到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完成一個(gè)復(fù)印命令規(guī)定的工作后又回到閑置狀態(tài),等印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個(gè)復(fù)印命令;待下一個(gè)復(fù)印命令; 如果執(zhí)行復(fù)印命令時(shí)發(fā)現(xiàn)沒紙,則進(jìn)入缺如果執(zhí)行復(fù)印命令時(shí)發(fā)現(xiàn)沒紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進(jìn)入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令;進(jìn)入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令; 如果復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀如果復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待維修人員來排除故障,態(tài),發(fā)出警告等待維修人員來排除故障
41、,故障排除后回到閑置狀態(tài)。故障排除后回到閑置狀態(tài)。 3.7 其他圖形工具其他圖形工具 3.7.1 層次方框圖層次方框圖 層次方框圖:用樹形結(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ù)元素(不能再分割的元素)。某計(jì)算機(jī)公司的全部產(chǎn)品的層次方框圖某計(jì)算機(jī)公司的全部產(chǎn)品的層次方框圖3.7.2 warnier圖圖 warnier圖:和層次方框圖類似,warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。 特點(diǎn):用warnier圖
42、可以表明信息的邏輯組織,也可以表示特定信息在某一類信息中是有條件地出現(xiàn)的。因?yàn)橹貜?fù)和條件約束是說明軟件處理過程的基礎(chǔ),所以很容易把warnier圖轉(zhuǎn)變成軟件設(shè)計(jì)的工具。 軟件產(chǎn)品的軟件產(chǎn)品的warnier圖圖3.7.3 ipo圖圖 ipo圖:是輸入、處理、輸出圖的簡稱,它是美國ibm公司發(fā)展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。 基本形式:是在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框內(nèi)列出主要的處理,在右邊的框內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。在ipo圖中還用類似向量符號的粗大箭頭清楚地指出數(shù)據(jù)通信的情況。圖圖3.7 ipo圖的一個(gè)例子圖圖的一個(gè)例子圖ipo圖圖
43、 改進(jìn)的改進(jìn)的ipo圖:圖:這種這種圖中包含某些附加的圖中包含某些附加的信息,在軟件設(shè)計(jì)過信息,在軟件設(shè)計(jì)過程中將比原始的程中將比原始的ipo圖更有用。圖更有用。 在需求分析階段可以在需求分析階段可以使用使用ipo圖簡略地描圖簡略地描述系統(tǒng)的主要算法述系統(tǒng)的主要算法(即數(shù)據(jù)流圖中各個(gè)處即數(shù)據(jù)流圖中各個(gè)處理的基本算法理的基本算法)。 改進(jìn)的改進(jìn)的ipo改進(jìn)改進(jìn)ipo示例示例ipo表表系統(tǒng):定貨系統(tǒng)系統(tǒng):定貨系統(tǒng) 作者:祁燕作者:祁燕模塊:處理事務(wù)模塊:處理事務(wù) 日期:日期:2010.3編號:編號:1.0被調(diào)用:被調(diào)用: 定貨系統(tǒng)定貨系統(tǒng)調(diào)用:調(diào)用: 接受事務(wù)接受事務(wù) 更新庫存清單更新庫存清單 處
44、理定貨處理定貨輸入:輸入: 事務(wù)事務(wù)輸出:定貨信息輸出:定貨信息 庫存清單庫存清單處理:處理:(用過程描述工具描述本模塊的算法,(用過程描述工具描述本模塊的算法,如如pad圖、圖、n-s圖、偽代碼等)圖、偽代碼等)局部數(shù)據(jù)元素:局部數(shù)據(jù)元素:注釋:注釋: 3.8 驗(yàn)證軟件需求驗(yàn)證軟件需求3.8.1 從哪些方面驗(yàn)證軟件需求的正確性從哪些方面驗(yàn)證軟件需求的正確性 一致性,所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。 完整性,需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個(gè)功能或性能。 現(xiàn)實(shí)性,指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。 有效性,必須證明需求是正確
45、有效的,確實(shí)能解決用戶面對的問題。 3.8.2 驗(yàn)證軟件需求的方法驗(yàn)證軟件需求的方法1. 驗(yàn)證需求的一致性 人工技術(shù)審查 形式化的描述軟件需求的方法2. 驗(yàn)證需求的現(xiàn)實(shí)性 仿真或性能模擬技術(shù)3. 驗(yàn)證需求的完整性和有效性 開發(fā)原型系統(tǒng)3.8.3 用于需求分析的軟件工具用于需求分析的軟件工具軟件工具應(yīng)該滿足下列要求: 必須有形式化的語法(或表),因此可以用計(jì)算機(jī)自動(dòng)處理使用這種語法說明的內(nèi)容; 使用這個(gè)軟件工具能夠?qū)С鲈敿?xì)的文檔; 必須提供分析(測試)規(guī)格說明書的不一致性和冗余性的手段,并且應(yīng)該能夠產(chǎn)生一組報(bào)告指明對完整性分析的結(jié)果; 使用這個(gè)軟件工具之后,應(yīng)該能夠改進(jìn)通信狀況。用結(jié)構(gòu)化分析方法
46、分析圖書館系統(tǒng)用結(jié)構(gòu)化分析方法分析圖書館系統(tǒng) 【問題描述】【問題描述】 一個(gè)圖書館藏有圖書和期刊雜志兩大類書籍,每種圖書/雜志可以有多冊。 圖書館可以維護(hù)(注冊、更新和刪除)圖書資料。 圖書館管理員負(fù)責(zé)與借書者打交道。 借書者可以預(yù)約目前借不到的書或雜志。 所有人員都可以瀏覽圖書館的圖書信息和各種告示。 系統(tǒng)能在流行的技術(shù)環(huán)境下運(yùn)行,有一個(gè)良好的圖形交互界面。 系統(tǒng)應(yīng)具有良好的可擴(kuò)展性。 【功能分析】 瀏覽功能:所有人員都可以瀏覽圖書館的圖書信息。 借還功能:借書者可以借/續(xù)借、還、預(yù)約圖書。 圖書管理功能:圖書管理人員可以做錄入、更新和銷毀等圖書信息維護(hù)工作。 借書者管理:系統(tǒng)管理人員可以進(jìn)
47、行注冊、更改、注銷借書者信息等維護(hù)工作。 【建立數(shù)據(jù)流圖】【建立數(shù)據(jù)流圖】 分析圖書館系統(tǒng)有哪些外部用戶,即角色。圖書館系統(tǒng)主要有一般瀏覽者、借書者、一般管理員和系統(tǒng)管理員四類外部用戶。 瀏覽者瀏覽者 瀏覽圖書瀏覽圖書圖書館系統(tǒng)的基本邏輯模型圖書館系統(tǒng)的基本邏輯模型圖書信息圖書信息瀏覽命令瀏覽命令【借借/ /還功能數(shù)據(jù)流圖還功能數(shù)據(jù)流圖】 借借/還功能(第一步)還功能(第一步)dfd 借借/還功能(修改)還功能(修改)dfd借書者借書者顯示顯示信息信息 借書借書 還書還書 續(xù)借續(xù)借 預(yù)約預(yù)約管理員管理員借書者借書者書目號和書目號和借書證號借書證號書目號書目號書目號書目號標(biāo)題號和標(biāo)題號和借書證號借書證號 借書借書 還書還書 續(xù)借續(xù)借 預(yù)約預(yù)約管理員管理員借書者借書者書目號和書目號和借書證號借書證號書目號書目號書目號書目號標(biāo)題號和標(biāo)題號和借書證號借書證號【維護(hù)功能數(shù)據(jù)流圖】【維護(hù)功能數(shù)據(jù)流圖】維護(hù)功能(第一步)維護(hù)功能(第一步)dfd 維護(hù)功能(修改)維護(hù)功能(修改) dfd注冊借書注冊借書者者注銷借書注銷借書者者錄入新書錄入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路管理合同范本
- 醫(yī)院代買服務(wù)合同范本
- 賣房調(diào)換家電合同范本
- 賣場合同范例
- 中學(xué)教師合同范本
- 現(xiàn)代社交媒體對品牌聲譽(yù)的維護(hù)與修復(fù)
- 電子商城的發(fā)展趨勢及影響分析
- 社區(qū)健康教育與公共衛(wèi)生事件的應(yīng)對策略
- 鹵味虎皮雞爪培訓(xùn)課件
- 現(xiàn)代農(nóng)業(yè)技術(shù)助力綠色農(nóng)業(yè)發(fā)展
- 高新技術(shù)企業(yè)認(rèn)定申請書樣例與說明
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter6 Tree
- 高壓氧科工作總結(jié)高壓氧科個(gè)人年終總結(jié).doc
- 《政治學(xué)概論》教學(xué)大綱
- 橋梁缺陷與預(yù)防
- 食品生物化學(xué)習(xí)題謝達(dá)平(動(dòng)態(tài))
- 新蘇教版小學(xué)科學(xué)三年級下冊全冊教案(2022年春修訂)
- 保安員工入職登記表
- 睿達(dá)RDCAM激光雕刻切割軟件V5.0操作說明書
- 機(jī)械設(shè)計(jì)基礎(chǔ)平面連桿機(jī)構(gòu)課件
- 人力資源部經(jīng)理崗位說明書
評論
0/150
提交評論