復旦MSE復習資料-軟件工程(SE02 軟件需求分析2011)_第1頁
復旦MSE復習資料-軟件工程(SE02 軟件需求分析2011)_第2頁
復旦MSE復習資料-軟件工程(SE02 軟件需求分析2011)_第3頁
復旦MSE復習資料-軟件工程(SE02 軟件需求分析2011)_第4頁
復旦MSE復習資料-軟件工程(SE02 軟件需求分析2011)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件需求分析需求的層次需求工程需求分析模型禍根在哪里軟件工程中百分之四十至百分之六十的問題都是在需求分析階段埋下的"禍根"。開發(fā)軟件系統(tǒng)最為困難的局部就是準確說明開發(fā)什么。最為困難的概念性工作便是編寫詳細的技術需求,包括所有面向用戶、面向機器和其它軟件系統(tǒng)的接口。軟件需求一旦做錯,將會給系統(tǒng)帶來極大損害的局部,同時對以后的修改帶來極大的困難。因此,完全理解軟件需求對軟件開發(fā)的成功起著至關重要的作用。

軟件需求包含著多個層次實際上,軟件需求包含著多個層次,不同層次的需求從不同角度與不同程度反映著細節(jié)問題。

IEEE軟件工程標準詞匯表〔1997年〕將需求定義為:

〔1〕用戶解決問題或到達目標所需的條件或能力。

〔2〕系統(tǒng)或系統(tǒng)部件要滿足合同、標準、標準或其它正式規(guī)定文檔所需具有的條件或能力。

〔3〕一種反映上面〔1〕或〔2〕所描述的條件或能力的文檔說明。

IEEE的定義包括從用戶角度〔系統(tǒng)的外部行為〕,以及從開發(fā)者角度〔一些內(nèi)部特性〕來闡述需求,其關鍵的問題是一定要編寫需求文檔。

其他幾種關于"需求"的定義

*需求是用戶所需要的并能觸發(fā)一個程序或系統(tǒng)開發(fā)工作的說明;

*需求是從系統(tǒng)外部能發(fā)現(xiàn)系統(tǒng)所具有的滿足于用戶的特點、功能及屬性等;

*需求是指明必須實現(xiàn)什么的規(guī)格說明。它描述了系統(tǒng)的行為、特性或屬性,是在開發(fā)過程中對系統(tǒng)的約束。一條鴻溝建造軟件系統(tǒng)的過程中,我們經(jīng)常習慣地沿用一些不標準的方法,其后果便是產(chǎn)生一條鴻溝--開發(fā)者開發(fā)的與用戶所想得到的軟件存在著巨大的"期望差異"。鴻溝產(chǎn)生的原因我們也許會問:為什么人們開發(fā)一個軟件系統(tǒng)會比建造一座摩天大廈要難得多?一是因為軟件行業(yè)缺乏準確而又統(tǒng)一的語言來定義或描述相應的工作,真正的"需求"實際上存在于人們的頭腦中;二是因為軟件開發(fā)過程難以用一種工程化的方法來統(tǒng)一標準和有效實施。因此"需求"這個名詞的定義不僅僅是從用戶角度對系統(tǒng)外部行為的描述,以及從開發(fā)人員角度對系統(tǒng)內(nèi)部特性的描述,其關鍵的一點是"需求"必須文檔化。

需求的層次3.1需求的三個層次業(yè)務需求〔Businessrequirement〕表示組織或客戶高層次的目標。業(yè)務需求通常來自工程投資人、購置產(chǎn)品的客戶、實際用戶的管理者、市場營銷部門或產(chǎn)品籌劃部門。業(yè)務需求描述了組織為什么要開發(fā)一個系統(tǒng),即組織希望到達的目標。使用愿景和范圍〔visionandscope〕文檔來記錄業(yè)務需求,這份文檔有時也被稱作工程輪廓圖或市場需求。用戶需求〔userrequirement〕描述的是用戶的目標,或用戶要求系統(tǒng)必須能完成的任務。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統(tǒng)來做些什么。功能需求〔functionalrequirement〕規(guī)定開發(fā)人員必須在產(chǎn)品中實現(xiàn)的軟件功能,用戶利用這些功能來完成任務,滿足業(yè)務需求。功能需求有時也被稱作行為需求〔behavioralrequirement〕,其描述是開發(fā)人員需要實現(xiàn)什么。功能需求記錄在軟件需求規(guī)格說明〔SRS〕中。SRS完整地描述了軟件系統(tǒng)的預期特性。SRS中還包含非功能需求,其中包括質量屬性。質量屬性〔qualityattribute〕對產(chǎn)品的功能描述作了補充,它從不同方面描述了產(chǎn)品的各種特性。如可用性、可移植性、效率和可維護性。其他的非功能需求包括系統(tǒng)與外部世界的外部界面,以及對設計與實現(xiàn)的約束。詳細描述業(yè)務需求〔businessrequirement〕反映了組織機構或客戶對系統(tǒng)或產(chǎn)品高層次的目標要求,它們在工程視圖與范圍文檔中予以說明。用戶需求〔userrequirement〕描述了用戶使用產(chǎn)品必須要完成的任務,可以在用例模型或方案腳本中予以說明。功能需求〔functionalrequirement〕定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,從而滿足了業(yè)務需求。非功能需求〔non-functionalrequirement〕是從各個角度對系統(tǒng)的約束和限制,反映了應用對軟件系統(tǒng)質量和特性的額外要求。非功能需求包括過程需求、產(chǎn)品需求和外部需求三類,其中過程需求有交付、實現(xiàn)方法和標準等需求,產(chǎn)品需求包含性能、可用性、實用性、可靠性、可移植性、平安保密性、容錯性等方面的需求,外部需求有法規(guī)、本錢、操作性等需求。

需求工程把所有與需求直接相關的活動通稱為需求工程。需求開發(fā)需求調(diào)查的目的是通過各種途徑獲取用戶的需求信息〔原始材料〕,產(chǎn)生?用戶需求說明書?。需求分析的目的是對各種需求信息進行分析,消除錯誤,刻畫細節(jié)等。常見的需求分析方法有“問答分析法〞和“建模分析法〞兩類。需求定義的目的是根據(jù)需求調(diào)查和需求分析的結果,進一步定義準確無誤的產(chǎn)品需求,產(chǎn)生?產(chǎn)品需求規(guī)格說明書?。系統(tǒng)設計人員將依據(jù)?產(chǎn)品需求規(guī)格說明書?開展系統(tǒng)設計工作。需求確認是指開發(fā)方和客戶共同對需求文檔進行評審,雙方對需求達成共識后作出書面承諾,使需求文檔具有商業(yè)合同效果。需求開發(fā)的主要活動確定產(chǎn)品所期望的用戶類;獲取每個用戶類的需求;了解實際用戶任務和目標以及這些任務所支持的業(yè)務需求;分析源于用戶的信息以區(qū)別用戶任務需求、功能需求、業(yè)務規(guī)那么、質量屬性、建議解決方法和附加信息;將系統(tǒng)級的需求分為幾個子系統(tǒng),并將需求中的一部份分配給軟件組件;了解相關質量屬性的重要性;商討實施優(yōu)先級的劃分;將所收集的用戶需求編寫成規(guī)格說明和模型;評審需求規(guī)格說明,確保對用戶需求到達共同的理解與認識,并在整個開發(fā)小組接受說明之前將問題都弄清楚。需求管理需求管理的目的是在客戶與開發(fā)方之間建立對需求的共同理解,維護需求與其它工作成果的一致性,并控制需求的變更。需求跟蹤是指通過比較需求文檔與后續(xù)工作成果之間的對應關系,建立與維護“需求跟蹤矩陣〞,確保產(chǎn)品依據(jù)需求文檔進行開發(fā)。需求變更控制是指依據(jù)“變更申請-審批-更改-重新確認〞的流程處理需求的變更,防止需求變更失去控制而導致工程發(fā)生混亂。需求管理的主要活動定義需求基線;評審提出的需求變更、評估每項變更的可能影響從而決定是否實施它;以一種可控制的方式將需求變更融入到工程中;使當前的工程方案與需求一致;估計變更需求所產(chǎn)生影響并在此根底上協(xié)商新的承諾;讓每項需求都能與其對應的設計、源代碼和測試用例聯(lián)系起來以實現(xiàn)跟蹤;在整個工程過程中跟蹤需求狀態(tài)及其變更情況。容易忽略的軟件需求過程的

兩個重要階段我們常常認為軟件需求過程由需求獲取、需求分析和需求規(guī)格說明等階段組成,然而,這種理解忽略了軟件需求過程的兩個重要階段,即如何衡量軟件需求的質量,以及如何處理軟件需求的不斷變化。強調(diào)用工程化的方法進行需求開發(fā)和需求管理。其中,需求開發(fā)是采用有效方法獲得高質量需求的過程,而需求管理那么是在需求說明形成之后有效地控制其變更的過程,二者缺一不可。

需求分析模型數(shù)據(jù)模型實體-關系圖數(shù)據(jù)流圖數(shù)據(jù)字典數(shù)據(jù)模型數(shù)據(jù)模型包含三種相互關聯(lián)的信息:1.數(shù)據(jù)對象2.描述數(shù)據(jù)對象的屬性3.數(shù)據(jù)對象彼此間的關系1.數(shù)據(jù)對象數(shù)據(jù)對象:也稱為數(shù)據(jù)實體,是必須被軟件理解的復合信息的表示。復合信息是指具有一系列不同性質或屬性的事物。例如,“序號〞不是一個適宜的數(shù)據(jù)對象,但是由“序號〞、“姓名〞、“性別〞、“年齡〞等信息描述的一個“人〞那么可以被定義成一個數(shù)據(jù)對象。數(shù)據(jù)對象之間是有關聯(lián)的。例如,教師和學生的關聯(lián)是通過課程建立的,教師“教〞課程,學生“學〞課程。2.屬性屬性就是數(shù)據(jù)對象的特征。數(shù)據(jù)對象往往有一組特征,這些特征按照一定的規(guī)那么組織起來,每組特征的取值表示數(shù)據(jù)對象的一個實例。例如,在售票系統(tǒng)中,客戶是一個數(shù)據(jù)對象,可用一組數(shù)據(jù)來描述客戶的特征,這組數(shù)據(jù)包括客戶名稱、性別、出生日期、送票地址、、聯(lián)系等。3.關系數(shù)據(jù)對象彼此之間相互連接的方式稱為關系或聯(lián)系。關系可分為三類:〔1〕一對一關系〔1:1〕〔2〕一對多關系〔1:N〕〔3〕多對多關系〔M:N〕實體–關系圖實體-關系圖簡稱為ER圖。通常,使用ER圖來建立數(shù)據(jù)模型,用ER圖描繪的數(shù)據(jù)模型也稱為ER模型。ER圖中包含了實體〔即數(shù)據(jù)對象〕、屬性和關系等三種根本成分,其表示方法如下:〔1〕實體。用矩形框表示實體?!?〕關系。用菱形框表示實體之間的關系。〔3〕屬性。用橢圓形或圓角矩形表示實體〔或關系〕的屬性。實體–關系圖 〔1〕在需求收集的過程中,要求客戶列出應用軟件或業(yè)務過程涉及到的"事物",將其演化成數(shù)據(jù)對象;

〔2〕一次考慮一個對象,分析員和客戶定義這個對象和其他對象之間是否存在連接;

〔3〕如果存在連接,應創(chuàng)立一個或多個關系;

〔4〕對每一個關系,確定其關聯(lián)類型;

〔5〕重復步驟〔2〕到步驟〔4〕,直到定義了所有關系。

〔6〕定義每個實體的屬性;

〔7〕形式化并復審實體關系圖;

〔8〕重復步驟〔1〕到〔7〕,直到數(shù)據(jù)建模完成。

實體–關系圖舉例實體:學生、課程、成績。

實體屬性定義:

學生:學號、姓名、性別、出生日期、入學年月

課程:課程編號、課程名稱、課程學分、課程描述

成績:學號、課程編號、分數(shù)、考核日期

::

例如,學生管理系統(tǒng)中教師和學生的實體-關系圖。數(shù)據(jù)流圖數(shù)據(jù)流圖是一種圖形化技術,它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)歷的變換。在數(shù)據(jù)流圖中沒有任何具體的物理元素,它只是描繪信息在系統(tǒng)中流動和被處理的情況。設計數(shù)據(jù)流圖時,只需考慮軟件系統(tǒng)必須完成的根本邏輯功能,完全不需考慮如何具體地實現(xiàn)這些功能。數(shù)據(jù)流圖數(shù)據(jù)流圖有四種根本符號:①正方形或立方體表示數(shù)據(jù)的源點或終點,代表系統(tǒng)的外部實體,可以是人、物或其他軟件系統(tǒng)。②圓角矩形或圓形代表數(shù)據(jù)處理,對數(shù)據(jù)邏輯處理,也就是數(shù)據(jù)變換,它用來改變數(shù)據(jù)值。③開口矩形或兩條平行橫線代表數(shù)據(jù)存儲,表示信息的靜態(tài)存儲,可以代表文件、文件的一局部、數(shù)據(jù)庫的元素等。④箭頭表示數(shù)據(jù)流,即數(shù)據(jù)流動的方向。數(shù)據(jù)流圖數(shù)據(jù)流圖是分層繪制的,整個過程反映了自頂向下進行功能分解和細化的分析過程。頂層〔也稱第0層〕DFD用于表示系統(tǒng)的開發(fā)范圍,以及該系統(tǒng)與周圍環(huán)境的數(shù)據(jù)交換關系;最底層DFD代表了那些不可進一步分解的"原子加工";中間層DFD是對上一層父圖的細化,其中的每一個加工可以繼續(xù)細化,中間層次的多少由系統(tǒng)的復雜程度決定。

〔1〕第0層DFD將整個系統(tǒng)表示成一個加工;

〔2〕確定并標記主要的輸入和輸出;

〔3〕別離出下一層中的加工、數(shù)據(jù)對象和存儲,并對其進行細化,一次細化一個加工;

〔4〕標記所有加工和箭頭;

〔5〕重復步驟〔3〕和〔4〕,直到所有的加工只執(zhí)行一個簡單的操作,可以很容易地用程序實現(xiàn)。

數(shù)據(jù)流圖舉例教務人員維護學生信息和課程信息,并登錄學生的選課成績;

學生查詢自己的成績單。0層

數(shù)據(jù)流圖舉例*第1層DFD圖

對第0層DFD圖中的一個加工"學生成績管理"進行展開。數(shù)據(jù)流圖舉例第2層DFD圖

對第1層DFD圖中的一個加工"查詢學生成績"進行展開圖書館信息管理系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)字典數(shù)據(jù)字典是描述數(shù)據(jù)信息的集合,是對系統(tǒng)中使用的所有數(shù)據(jù)元素的定義的集合。數(shù)據(jù)字典的作用是在軟件分析和設計過程中提供數(shù)據(jù)描述,是數(shù)據(jù)流圖必不可少的輔助資料。數(shù)據(jù)字典包含以下信息?!?〕名字——數(shù)據(jù)、控制項、數(shù)據(jù)存儲或外部實體的名稱?!?〕別名——第一項中對象的其他名字。〔3〕使用地點與方式——使用數(shù)據(jù)或控制項的處理的列表,以及使用這些對象的方式〔作為數(shù)據(jù)處理的輸入、輸出、作為存儲、外部實體〕?!?〕內(nèi)容描述——描述數(shù)據(jù)或控制項內(nèi)容的符號?!?〕補充信息——關于數(shù)據(jù)類型、預置值、限制等的其他信息。數(shù)據(jù)字典例如,學生信息的數(shù)據(jù)字典可以定義為名字:學生信息別名:無位置:數(shù)據(jù)庫的學生信息表描述:學生信息=學號+姓名+性別+出生日期+籍貫補充:性別為字符型:男、女出生年月為日期型

……數(shù)據(jù)字典數(shù)據(jù)字典描述數(shù)據(jù)流圖的數(shù)據(jù)存儲、數(shù)據(jù)加工〔最底層加工〕和數(shù)據(jù)流,它記錄的主要內(nèi)容有:

*根本信息:名字、別名、描述;

*定義:數(shù)據(jù)長度、數(shù)據(jù)類型、數(shù)據(jù)結構;

*使用特點:取值范圍、使用頻率、使用方式等;

*控制信息:來源、用戶、引用程序、讀寫權限等;

數(shù)據(jù)字典*其他說明。

在數(shù)據(jù)字典中,數(shù)據(jù)元素的定義可以是根本元素及其組合,數(shù)據(jù)進行自頂向下地分解,直到不需要進一步解釋且參與人員都清楚其含義為止。數(shù)據(jù)組合有三種方式:

*順序:以確定的次序連接多個數(shù)據(jù)項;

*選擇:從多個數(shù)據(jù)項中選取一個;

*重復:將某個數(shù)據(jù)項重復屢次。

數(shù)據(jù)字典的實際意義在軟件開發(fā)過程中,我們經(jīng)常會遇到這樣的情形:幾位編程人員對于同一個數(shù)據(jù)項使用不同的變量名稱、長度和有效性驗證。這種情況會導致在真正的數(shù)據(jù)定義上的混淆,并且在軟件維護時出現(xiàn)困難。解決這種問題的一個有效方法是使用數(shù)據(jù)字典技術,統(tǒng)一定義應用程序中使用的所有數(shù)據(jù)元素和結構的含義、類型、數(shù)據(jù)大小、格式、度量單位、精度以及允許取值范圍的共享倉庫。

數(shù)據(jù)字典可以把不同的需求文檔和分析模型緊密結合在一起,如果所有的開發(fā)人員在數(shù)據(jù)字典上取得一致意見,那么就可以緩和集成性問題。為了防止冗余和不一致性,應該在工程中創(chuàng)立一個獨立的數(shù)據(jù)字典,而并不是在每個需求出現(xiàn)的地方定義每一個數(shù)據(jù)項。數(shù)據(jù)字典的維護獨立于軟件需求規(guī)格說明,并且在產(chǎn)品的開發(fā)和維護的任何階段,各個風險承擔者都可以訪問它,從而大大減少由于工程的參與者對一些關鍵信息的理解不一致所帶來時間的浪費。如果能夠保持詞匯表和數(shù)據(jù)字典的正確性,那么在系統(tǒng)的整個維護期間和以后相關產(chǎn)品的開發(fā)中,它們將是很有價值的工具。

圖書館信息管理系統(tǒng)局部數(shù)據(jù)字典元素編號名稱類型說明IPO200借書處理按讀者號、圖書號進行借書處理IPO201數(shù)據(jù)有效性檢查處理檢查讀者號、圖書號的有效性IPO400圖書預訂處理讀者在網(wǎng)上預訂,流通部在柜臺幫讀者預訂IPO401取消預訂處理讀者在網(wǎng)上取消預訂,流通部在柜臺幫讀者取消預訂IPO402查詢處理讀者查詢讀者本人的基本信息、借還書記錄信息、圖書信息IPO403缺書登記處理讀者在網(wǎng)上做缺書登記,系統(tǒng)要查詢圖書信息,進行確認DS100讀者信息數(shù)據(jù)存儲讀者信息錄入、修改、刪除、保存DS101罰款信息數(shù)據(jù)存儲存儲延期、丟失、破損的處罰信息DS102圖書基本信息數(shù)據(jù)存儲圖書的基本信息,由采編人員錄入DS102-1圖書細目數(shù)據(jù)存儲每本圖書的編號和當前狀態(tài)DS104新書訂購信息數(shù)據(jù)存儲新書的訂購信息,由采編人員錄入、修改、刪除、保存DS200借還書信息數(shù)據(jù)存儲存儲借還書信息,系統(tǒng)自動處理,不能人工修改DS400預訂信息數(shù)據(jù)存儲記錄預訂借書信息,由讀者自己錄入,提交后不能修改,可以通過取消預訂處理刪除預訂信息DS401缺書登記數(shù)據(jù)存儲讀者錄入缺書信息,提交后不能修改數(shù)據(jù)項名:學生描述:包括學生的主要信息別名:無定義:學號+姓名+性別+出生日期+入學年月數(shù)據(jù)量:10000左右峰值:隨時,但經(jīng)常在新生入學時期其他說明:在系統(tǒng)功能擴充時可能增加定義項

數(shù)據(jù)流名:學號描述:唯一標識學生的編號別名:無類型:字符串長度:6位字符其他說明:學號不能重復

數(shù)據(jù)流名:學生成績查詢描述:系統(tǒng)處理的一個命令別名:無頻率:

10000次左右峰值:隨時,但經(jīng)常在學期開學其他說明:在系統(tǒng)功能擴充時可能增加種類

問題一個考務處理系統(tǒng)的要求如下,試畫出該系統(tǒng)的數(shù)據(jù)流圖?!?〕對考生送來的報名表進行檢查;〔2〕對合格的報名表編好準考證號碼后將準考證送給考生,并將匯總后的考生名單送給閱卷站;〔3〕對閱卷站送來的成績表進行檢查,并根據(jù)考試中心指定的合格標準審定合格者;〔4〕填寫考生通知單〔內(nèi)容包含考試成績及合格∕不合格標志〕,送給考生;〔5〕按地區(qū)、年齡、文化程度、職業(yè)、考試級別等進行成績分類統(tǒng)計及試題難度分析,產(chǎn)生統(tǒng)計分析表。需求工程包括哪些根本活動?每一項活動的主要任務是什么?需求工程分為需求開發(fā)和需求管理兩個局部,而需求開發(fā)又可進一步分為需求獲取、需求分

溫馨提示

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

評論

0/150

提交評論