軟件工程課件 第3章 需求分析_第1頁
軟件工程課件 第3章 需求分析_第2頁
軟件工程課件 第3章 需求分析_第3頁
軟件工程課件 第3章 需求分析_第4頁
軟件工程課件 第3章 需求分析_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章需求分析

典型的可行性研究過程有下述八個步驟。1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)2.研究目前正在使用的系統(tǒng)3.導(dǎo)出新系統(tǒng)的高層邏輯模型4.進一步定義問題5.導(dǎo)出和評價供選擇的解法6.推薦行動方針7.草擬開發(fā)計劃8.書寫文檔提交審查知識回顧

數(shù)據(jù)流圖下面以某單位工資管理系統(tǒng)為例,來介紹一下分層數(shù)據(jù)流模型的建立方法。

1.建立頂層數(shù)據(jù)流圖任何系統(tǒng)的頂層數(shù)據(jù)流圖都只有一個,用于反映目標(biāo)系統(tǒng)所要實現(xiàn)的功能及與外部環(huán)境的接口。頂層數(shù)據(jù)流圖中只有一個代表整個系統(tǒng)的加工,數(shù)據(jù)的源點和終點對應(yīng)著系統(tǒng)的外部實體,表明了系統(tǒng)輸入數(shù)據(jù)的來源和輸出數(shù)據(jù)的去向。

工資管理系統(tǒng)頂層數(shù)據(jù)流圖

2.數(shù)據(jù)流圖的分層細(xì)化首先按照系統(tǒng)的功能,對頂層數(shù)據(jù)流圖進行分解,生成第0層數(shù)據(jù)流圖。項目中,工資計算系統(tǒng)可劃分為計算工資、打印工資清單和工資轉(zhuǎn)存三個加工。其中,計算工資完成單位職工工資計算,生成工資清單的功能;打印工資清單完成工資條的打印功能;工資轉(zhuǎn)存完成生成職工工資存款清單并將其發(fā)送到銀行的功能。對劃分得到的加工應(yīng)進行編號,工資計算的編號為1,打印工資清單的編號為2,工資轉(zhuǎn)存的編號為3。

圖1工資計算系統(tǒng)第0層數(shù)據(jù)流圖

對第0層數(shù)據(jù)流圖中的加工繼續(xù)分解,則可得到第1層數(shù)據(jù)流圖。對分解得到的加工進行編號,以反映出它與上層數(shù)據(jù)流圖之間的關(guān)系,若數(shù)據(jù)流圖中的加工還可繼續(xù)細(xì)化,則重復(fù)以上分解過程,直到獲得系統(tǒng)的底層數(shù)據(jù)流圖。如圖2所示

(a)“計算工資”子數(shù)據(jù)流圖;(b)“工資轉(zhuǎn)存”子數(shù)據(jù)流圖獎懲條例F1工資檔案F2

圖2工資計算系統(tǒng)的第1層數(shù)據(jù)流圖

表1數(shù)據(jù)流圖的另一套表示符號編號編號符號含義數(shù)據(jù)流,只能為水平或垂直的帶箭頭直線

加工數(shù)據(jù)存儲數(shù)據(jù)的源點或終點

第3章需求分析需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個問題。確定系統(tǒng)必須完成哪些工作,對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。在需求分析階段結(jié)束之前,系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格說明書,以書面形式準(zhǔn)確地描述軟件需求。

所有這些分析方法都遵守下述四條準(zhǔn)則:(1)必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。(2)必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。(3)必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。(4)必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細(xì)節(jié)。

本章學(xué)習(xí)要點

了解軟件需求分析的任務(wù)和需求獲取的常用方法掌握快速原型方法掌握結(jié)構(gòu)數(shù)據(jù)模型、功能模型和行為模型的設(shè)計方法

確定對系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)計劃3.1需求分析的任務(wù)

功能需求性能需求可靠性和可用性需求出錯處理需求接口需求約束逆向需求將來可能提出的要求3.1.1確定對系統(tǒng)的綜合要求

1.功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。2.性能需求軟件開發(fā)的技術(shù)性指標(biāo)。例如:存儲容量限制執(zhí)行速度、響應(yīng)時間吞吐量

3.可靠性和可用性需求定量地制定系統(tǒng)的可靠性;可用性與可靠性密切相關(guān),量化了用戶可以使用系統(tǒng)的程度。

4.出錯處理需求說明系統(tǒng)對環(huán)境錯誤應(yīng)該怎樣響應(yīng)。指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個錯誤時所采取的行動。

5.接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。6.約束設(shè)計約束或?qū)崿F(xiàn)約束描述在設(shè)計或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時應(yīng)遵守的限制條件。

7.逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。8.將來可能提出的要求應(yīng)該明確列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)的范疇,但是據(jù)分析將來很可能會提出來的要求。

任何一個軟件系統(tǒng)本質(zhì)上都是一個信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應(yīng)該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌。分析系統(tǒng)的數(shù)據(jù)需求是由系統(tǒng)的信息流歸納抽象出數(shù)據(jù)元素組成,數(shù)據(jù)的邏輯關(guān)系,數(shù)據(jù)字典格式,建立數(shù)據(jù)模型。3.1.2分析系統(tǒng)的數(shù)據(jù)要求

導(dǎo)出系統(tǒng)的詳細(xì)邏輯模型,采用下面幾種方式:數(shù)據(jù)流圖實體聯(lián)系圖狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典和主要的處理算法來描述這個模型。3.1.3導(dǎo)出系統(tǒng)的邏輯模型

根據(jù)在分析過程中獲得的對系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計系統(tǒng)的成本和進度,修正以前制定的開發(fā)計劃。3.1.4修正系統(tǒng)開發(fā)計劃

訪談面向數(shù)據(jù)流自頂向下求精簡易規(guī)格說明書快速建立軟件原型3.2與用戶溝通獲取需求的方法

3.2.1訪談兩種基本形式:正式的:

問題事前準(zhǔn)備,發(fā)出調(diào)查表。非正式的:

提出的問題較為開放。

案例:出版社計算機信息管理系統(tǒng)

使用的技術(shù):情景分析技術(shù);情景分析:對用戶將來使用目標(biāo)系統(tǒng)解決某個具體問題的方法和結(jié)果進行分析。用處體現(xiàn)在兩個方面:(1)能在某種程度上演示目標(biāo)系統(tǒng)的行為。(2)保證用戶在需求分析過程中始終扮演一個積極主動的角色。

結(jié)構(gòu)化分析方法(SA)就是面向數(shù)據(jù)流自頂向下求精進行需求分析的方法。

需求分析的目標(biāo)之一,把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。沿輸出端往輸入端回溯會遇到哪些問題?從輸入端開始分析員借助數(shù)據(jù)流圖、數(shù)據(jù)字典和IPO圖向用戶解釋數(shù)據(jù)是怎樣一步一步轉(zhuǎn)化成輸出的對以上過程反復(fù)進行。3.2.2面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)元素有的不存在,或算法還不清楚

前兩種方法使用戶處于被動地位,效果不理想,使人們研究出面向團隊的需求收集法,稱為簡易的應(yīng)用規(guī)格說明技術(shù)。優(yōu)點:開發(fā)者與用戶彼此不分,齊心合力,相互協(xié)作,討論并求精,導(dǎo)出系統(tǒng)規(guī)格說明。3.2.3簡易的應(yīng)用規(guī)格說明技術(shù)

簡易的應(yīng)用規(guī)格說明技術(shù)分析需求的過程如下:首先進行初步的訪談,通過用戶對基本問題的回答,初步確定待解決問題的范圍和解決方案。開發(fā)者和用戶都寫出“產(chǎn)品需求”。選定會議地點、日期和時間,并選舉一個協(xié)調(diào)人。要求與會者認(rèn)真復(fù)審產(chǎn)品需求,列出使用對象、服務(wù),約束條件和性能標(biāo)準(zhǔn)等。

會議中,首先討論是是否需要這個新產(chǎn)品,一旦大家都同意確實需要這個新產(chǎn)品,每位與會者展示會前準(zhǔn)備好的列表供大家討論。討論后,共同創(chuàng)建一張組合意見一致的列表。把與會者分成更小的小組,為每張列表中的一個或多個項目制定出小型規(guī)格說明。小組展示,供與會者討論、增刪、精化。最后,由一名或多名與會者根據(jù)會議成果起草完整的規(guī)格說明。

應(yīng)該具備的兩個特性:(1)快速;(2)容易修改;

修改—試用—反饋的過程會重復(fù)進行。3.2.4快速建立軟件原型

快速構(gòu)建和修改原型常使用的3種方法和工具:1.第四代技術(shù)包括眾多數(shù)據(jù)庫查詢和報表語言、程序和應(yīng)用系統(tǒng)生成器、其他非常高級的非過程語言。可幫助軟件工程師快速生成可執(zhí)行的代碼。2.可重用的軟件構(gòu)件使用一組已有的軟件構(gòu)件來裝配原型。3.形式化規(guī)格說明和原型環(huán)境

3.3.1分析建模模型:

為理解事物而對事物作出的一種抽象,對事物一種無歧異的書面描述。結(jié)構(gòu)化分析實質(zhì)是一種創(chuàng)建模型的活動。需求分析過程應(yīng)該建立的3種模型:數(shù)據(jù)模型:ER(實體聯(lián)系圖)功能模型:DFD(數(shù)據(jù)流圖)行為模型:STD(狀態(tài)轉(zhuǎn)換圖)3.3分析建模與規(guī)格說明

3.3.2軟件需求規(guī)格說明定位:

分析階段得出的最主要的文檔。性質(zhì):

通常用自然語言完整、準(zhǔn)確、具體地描述系統(tǒng)的各種需求。優(yōu)點:

便于書寫和理解。

3.4實體—聯(lián)系圖1.實體模型的概念

E-R(Entity-Relation)方法,即實體—聯(lián)系方法是目前最常用的數(shù)據(jù)建模方法,可以用于在需求分析階段清晰地表達(dá)目標(biāo)系統(tǒng)中數(shù)據(jù)之間的聯(lián)系及其組織方式,建立系統(tǒng)的實體數(shù)據(jù)模型(E-R模型)。實體模型可以根據(jù)需要在軟件實現(xiàn)時轉(zhuǎn)換成各種不同數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)物理模型。實體模型由實體、聯(lián)系和屬性三個基本成分組成。

(1)實體:指客觀世界存在的且可以相互區(qū)分的事物。實體可以是人,也可以是物,還可以是抽象概念。如職工、計算機、產(chǎn)品都是實體。

(2)屬性:有時也稱性質(zhì),是指實體某一方面的特征。一個實體通常由多個屬性值組成。如學(xué)生實體具有學(xué)號、姓名、專業(yè)、年級等屬性。

(3)聯(lián)系:指實體之間的相互關(guān)系。實體之間的聯(lián)系可主要劃分為三類:一對一(1:1)、一對多(1:n)和多對多(m:n)。聯(lián)系也可以具有屬性。為了便于實現(xiàn),在進行數(shù)據(jù)庫設(shè)計時通常將多對多的聯(lián)系轉(zhuǎn)換為一對多的聯(lián)系,如圖3.1所示。

圖3.1學(xué)生和課程之間的E-R模型學(xué)生和課程之間的多對多聯(lián)系E-R模型;(b)將多對多聯(lián)系轉(zhuǎn)換為一對多聯(lián)系E-R模型

2.實體模型中的基本符號符號含義表示實體表示實體間的聯(lián)系,與實體間的連線上需用數(shù)字標(biāo)明具體的對應(yīng)關(guān)系表示與實體有關(guān)的屬性用于實體、屬性及聯(lián)系的連接

3.實體模型的建立要建立系統(tǒng)的實體模型,通??砂慈缦虏襟E進行:

(1)對系統(tǒng)的數(shù)據(jù)域和功能域進行分析,確定系統(tǒng)中所涉及的實體。

例如,在第二章案例分析的工資計算系統(tǒng)中,單位對職工的工作情況進行考勤,根據(jù)出勤結(jié)果、基本工資檔案、獎金及扣款計算職工的實發(fā)工資。因此,工資系統(tǒng)中所涉及的實體就包括職工、出勤、獎勵和扣款。

(2)確定系統(tǒng)中各實體之間的聯(lián)系。如工資計算系統(tǒng)中:一名職工一個月只有一條出勤記錄,因此職工和出勤兩個實體之間是一對一的聯(lián)系;一名職工在一個月中對應(yīng)著多項扣款,如水電費、缺勤扣款、個人所得稅等,因此職工和扣款之間是一對多的聯(lián)系;一名職工在一個月中可以獲得多項獎勵,因此職工和獎金之間也是一對多的聯(lián)系。

圖3.2工資計算系統(tǒng)的E-R模型

(3)確定各實體及聯(lián)系的屬性。例如,工資計算系統(tǒng)的職工實體具有職工號、性別、職稱、年齡、部門、基本工資等屬性。目前,最常用的數(shù)據(jù)庫模型是關(guān)系模型,它是通過一張二維表來表示和處理實體集合和屬性關(guān)系的數(shù)據(jù)庫系統(tǒng)方法。在關(guān)系數(shù)據(jù)庫中,為了避免出現(xiàn)數(shù)據(jù)冗余、二義性的問題,方便數(shù)據(jù)庫的各種操作,二維表必須滿足以下的規(guī)范化約束條件:

(1)表格中的每個信息項必須是一個不可分割的數(shù)據(jù)項。

(2)表格每一列中所有信息項必須是同類型的數(shù)據(jù),各列在表中的次序任意,每列對應(yīng)一個惟一的名字。

(3)表格中每一行的數(shù)據(jù)各不相同,各行在表中的次序任意。

思考:請為某倉庫的管理設(shè)計一個ER模型。該倉庫主要管理零件的訂購和供應(yīng)等事項。倉庫向工程項目供應(yīng)零件,并且根據(jù)需要向供應(yīng)商訂購零件。3.4.4ER實例

工程項目零件供應(yīng)商項目名稱訂購量供應(yīng)商編號供應(yīng)商名稱地址項目編號開工日期供應(yīng)訂購供應(yīng)量零件名稱零件編號MNNM

3.5數(shù)據(jù)規(guī)范化數(shù)據(jù)結(jié)構(gòu)規(guī)范化:減少數(shù)據(jù)冗余;避免出現(xiàn)插入或刪除異常;簡化修改數(shù)據(jù)的過程。范式(NormalForms):對消除數(shù)據(jù)冗余程度的定義。(1)1NF:每個屬性值都必須是原子的;(2)2NF:滿足1NF,每個非主碼都由整個主碼決定。(3)3NF:滿足2NF,每個非主碼都由主碼決定,且一個非主碼不能依賴于另一個非主碼。

狀態(tài)轉(zhuǎn)換圖(簡稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。1.狀態(tài)一個狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(即最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有0至多個。3.6狀態(tài)轉(zhuǎn)換圖

2.事件事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或(和)狀態(tài)轉(zhuǎn)化的外界事件的抽象。3.符號橢圓(或圓角矩形):表示對象的一種狀態(tài),橢 圓內(nèi)部填寫狀態(tài)名。箭頭:表示從箭頭出發(fā)的狀態(tài)可以轉(zhuǎn)換到箭頭指 向的狀態(tài)。事件:箭頭上方可標(biāo)引起狀態(tài)轉(zhuǎn)換的事件名。實心圓●:表示初始狀態(tài)。內(nèi)部實心的同心圓⊙:表示最終狀態(tài)。

圖3.3狀態(tài)圖中使用的主要符號

4.設(shè)計狀態(tài)圖的步驟(1)找出實體的所有狀態(tài)。(2)分析在不同狀態(tài)下,對象的行為準(zhǔn)則有無差別,若無差別應(yīng)將它們合并為一種狀態(tài)。(3)分析從一種狀態(tài)可以轉(zhuǎn)換到哪幾種狀態(tài),對象的什么行為能引起這種轉(zhuǎn)換,有無狀態(tài)轉(zhuǎn)換的限制條件。

電話狀態(tài)轉(zhuǎn)換圖實例分析

案例分析以電梯系統(tǒng)為例,假設(shè)在一棟三十層的高樓中有一部電梯。電梯有停止、運行的狀態(tài)以及各個??繉印?/p>

在一樓空閑下降到達(dá)一層到達(dá)樓層升樓層電梯運行的狀態(tài)圖開始上下降樓層在大樓一層到達(dá)樓層上升樓層超時移到一層上升

層次方框圖Warnier圖IPO圖3.7其他圖形工具

層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹型結(jié)構(gòu)頂端的矩形框只有一個,用于代表完整的數(shù)據(jù)結(jié)構(gòu)。下面各層的矩形框是對完整數(shù)據(jù)結(jié)構(gòu)的逐步分解和細(xì)化得到的數(shù)據(jù)子集;底層的矩形框代表組成該數(shù)據(jù)結(jié)構(gòu)的基本元素,是數(shù)據(jù)的最小單位,不可再分割。

3.7.1層次方框圖

適用范圍層次方框圖非常適合描述自頂向下的需求分析方法中數(shù)據(jù)的層次關(guān)系。使用方法系統(tǒng)分析員可以從對頂層信息的分類開始,沿著層次圖中的每條路徑逐步細(xì)化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細(xì)節(jié)為止。

案例分析

案例分析第二章分析的工資管理系統(tǒng)案例

某單位職工的實發(fā)工資由應(yīng)發(fā)工資和扣款兩部分組成,每部分又可進一步細(xì)分。應(yīng)發(fā)工資又可分為基本工資和獎金;基本工資又可分為國家工資、津貼、補貼;獎金也可分為出勤獎和業(yè)績獎;津貼分為國家津貼和職務(wù)津貼;補貼可以分為交通補貼、部門補貼和其他補貼。實發(fā)工資的層次方框圖如圖3.5所示。

圖3.5某單位職工實發(fā)工資的層次方框圖

和層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。利用Warnier圖可以清楚地表明數(shù)據(jù)的邏輯結(jié)構(gòu)中某類信息的重復(fù)出現(xiàn)次數(shù)及某些特定信息出現(xiàn)的條件約束。3.7.2Warnier圖

圖3.

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論