軟件工程導論第五版 需求分析_第1頁
軟件工程導論第五版 需求分析_第2頁
軟件工程導論第五版 需求分析_第3頁
軟件工程導論第五版 需求分析_第4頁
軟件工程導論第五版 需求分析_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 需求分析3.1 需求分析的任務3.2 與用戶溝通獲取需求的方法3.3 分析建模與規(guī)格說明3.4 實體-聯(lián)系圖 ?3.5 數(shù)據標準化?3.6 狀態(tài)轉換圖+有窮狀態(tài)機3.7 其他圖形工具3.8 驗證軟件需求3.9 小結需求分析的意義 軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提條件,不管我們把設計和編碼做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望,給開發(fā)帶來煩惱。 需求分析是軟件定義時期的最后一個階段,它的根本任務不是確定系統(tǒng)怎樣完成它的工作,而是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。 并在在需求分析階段結束之前,由系統(tǒng)分析員寫出軟件需求規(guī)

2、格說明書,以書面形式準確地描述軟件需求。即: - 準確地答復“系統(tǒng)必須做什么?。需求分析的結構化分析方法準那么必須理解并描述問題的信息域,建立數(shù)據模型必須定義軟件應完成的功能,建立功能模型必須描述作為外部事件結果的軟件行為,建立行為模型必須對描述信息、功能、行為的模型進行分解,用層次的方式展示細節(jié) 在分析軟件需求和書寫軟件需求規(guī)格說明書的過程中,分析員和用戶都起著關鍵的、必不可少的作用。 業(yè)務需求工程范圍文檔用戶需求文檔功能需求質量屬性其他非功能需求設計約束需求規(guī)約(specification)非功能需求系統(tǒng)需求需求組成的全景圖軟件需求的組成 其中: 業(yè)務需求:反映組織機構和客戶對系統(tǒng)、產品高

3、層次的目標要求。 用戶需求:從用戶使用的角度給出需求的描述。 如一個小型超市需要一個商品的查詢系統(tǒng)。 業(yè)務需求:進貨人員需要查詢商品庫存以便保證及時進貨;收款員需要查詢商品的銷售價格以便結賬;經理需要查詢商品的銷售及盈利情況。 用戶需求:這三類用戶怎樣去查詢系統(tǒng),查詢哪些信息,還需要哪些操作。 系統(tǒng)需求:從系統(tǒng)的角度描述要提供的效勞以及所受到的約束。 功能性需求:描述系統(tǒng)應該做什么,即為用戶和其它系統(tǒng)完成的功能、提供的效勞。 非功能性需求:產品必須具備的屬性或品質。 設計約束:設計與實現(xiàn)必須遵循的標準、約束條件。如運行平臺、協(xié)議、選擇的技術、編程語言和工具等。軟件需求的描述 結構化語言、PDL

4、 圖形化表示 數(shù)學描述形式化語言描述1 確定對系統(tǒng)的綜合要求 -功能需求、性能需求、可靠性和可用性需求、出錯處理需求、接口需求、約束、 逆向需求、將來可能提出的要求。3.1 需求分析的具體任務 分析系統(tǒng)的數(shù)據要求3 導出系統(tǒng)的邏輯模型4 修正系統(tǒng)開發(fā)方案軟件需求獲取 需求分析是一個包括創(chuàng)立和維持系統(tǒng)需求文檔所必需的一切活動的過程。它包含了如下活動: 需求獲取和分析、需求描述和文檔編寫、需求有效性驗證、需求管理管理需求工程的變更。需求獲取和分析需求描述需求有效性驗證系統(tǒng)模型用戶需求和系統(tǒng)需求需求規(guī)約軟件需求過程需求管理需求獲取是開發(fā)人員與客戶或用戶一起對應用領域進行調查研究,收集系統(tǒng)需求的過程。

5、需求分析是將獲取到的需求準確的理解、求精,并將其轉化為完整的需求定義包括建模,進而生成需求規(guī)約的過程。需求獲取和分析有一定的難度,因為: 1工程相關人員通常并不真正知道希望計算機做什么,讓他們清晰的表達出需要系統(tǒng)做什么是件困難的事,他們或許提出不切實際的要求。 2 工程相關人員用自己的語言表達需求,這些語言包含很多工作中的專業(yè)術語和專業(yè)知識。系統(tǒng)分析員沒有這些知識和經驗,而他們又必須了解這些需求。 3不同的工程相關人員有不同的需求,可能以不同的方式表達,分析人員必須發(fā)現(xiàn)所有潛在的需求資源,而且能發(fā)現(xiàn)這些需求的相容或沖突之處。 4經濟和業(yè)務環(huán)境決定了分析是動態(tài)的,需求在分析過程中會發(fā)生變更。個別

6、需求的重要程度會改變,新的需求會從新的工程相關人員那里得到。 需求獲取技術 建立由客戶用戶、系統(tǒng)分析員、領域專家參加的聯(lián)合小組。 需求獲取的方法:個別訪談、召集會議、文檔研究、問卷調查、觀察用戶工作流程、建立原型。 獲取的需求的表達方式: 1需求列表 需求與系統(tǒng)的特殊視角或環(huán)境的關系 2業(yè)務流程圖狀態(tài)/活動圖 3數(shù)據流圖 4實體-聯(lián)系圖 3.2 與用戶溝通獲取需求的方法3.2.1 訪談3.2.2 面向數(shù)據流自頂向下求精3.2.3 簡易的應用規(guī)格說明技術3.2.4 快速建立軟件原型面向數(shù)據流自頂向下求精提倡用戶與開發(fā)者密切合作,共同標識問題,提出解決方案要素,商討不同方案并指定根本需求 進行初步

7、的訪談 開發(fā)者和用戶雙方組織的代表出席會議 每個小組為每張列表中的工程制定小型規(guī)格說明 根據會議成果起草完整的軟件需求規(guī)格說明書3.2.3 簡易的應用規(guī)格說明技術快速建立軟件原型特性:快速容易修改3種方法和工具:第四代技術可重用的軟件構件形式化規(guī)格說明和原型環(huán)境3.3 分析建模與規(guī)格說明 1). 分析建模 模型 -就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。通常,由一組圖形符號和組織這些符號的規(guī)那么組成。 建模方法 在過去的數(shù)年中,人們提出了許多種分析建模的方法,其中兩種在分析建模領域占有主導地位: 第一種是結構化分析 (Structured Analysis,SA

8、),70年代末由DeMarco等人提出,這是傳統(tǒng)的建模方法。該方法不是被所有的使用者一致地使用的單一方法,眾多科學家對其進行了擴充,因此它是開展了超過30年的一個混合物。 具體的建模方法/表達方式有: 面向流的建模:數(shù)據流圖DFD/CFD 數(shù)據建模:實體關系圖ERD 基于行為的建模: Petri網、狀態(tài)圖3.3.2 軟件需求規(guī)格說明(SRS) Software Requirement Specification 通常用自然語言+模型,完整、準確、具體地描述系統(tǒng)的數(shù)據要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。 軟件需求規(guī)格說明書,

9、是需求分析階段得出的最主要的文檔。軟件需求說明書的編寫提示GB856T88 1 引言 1.1 編寫目的 1.2 背景 1.3 定義 1.4 參考資料 2 任務概述 2.1 目標 2.2 用戶的特點 2.3 假定和約束軟件需求說明書的編寫提示GB856T88 3 需求規(guī)定 3.1 對功能的規(guī)定 3.2 對性能的規(guī)定 精度 時間特性要求 靈活性 3.3 輸人輸出要求 3.4 數(shù)據管理能力要求 3.5 故障處理要求 3.6 其他專門要求 4 運行環(huán)境規(guī)定 4.1 設備 4.2 支持軟件 4.3 接口 4.4 控制3.4 實體-聯(lián)系圖(ER) Entity Relationship DiagramER

10、圖 - 是用來建立數(shù)據模型的工具。數(shù)據模型 - 是一種面向問題的數(shù)據模型,是按照用戶的觀點對數(shù)據建立的模型。它描述了從用戶角度看到的數(shù)據,反映了用戶的現(xiàn)實環(huán)境,而且與在軟件系統(tǒng)中的實現(xiàn)方法無關。數(shù)據模型中包含3種相互關聯(lián)的信息:數(shù)據對象實體、數(shù)據對象的屬性及數(shù)據對象彼此間相互連接的關系。(1). 數(shù)據對象數(shù)據對象: 是對軟件必須理解的復合信息的抽象。復合信息: 是指具有一系列不同性質或屬性的事物,僅有單個值的事物(例如,寬度)不是數(shù)據對象??梢杂梢唤M屬性來定義的實體都可以被認為是數(shù)據對象。 如:外部實體、事物、行為、事件、角色、單位、地點或結構等。數(shù)據對象彼此間是有關聯(lián)的。(2). 屬 性屬性

11、定義了數(shù)據對象的性質。必須把一個或多個屬性定義為“標識符,也就是說,當我們希望找到數(shù)據對象的一個實例時,用標識符屬性作為“關鍵字(通常簡稱為“鍵)。應該根據對所要解決的問題的理解,來確定特定數(shù)據對象的一組適宜的屬性。 如:學生具有學號、姓名、性別、年齡、專業(yè)其它略等屬性; 課程具有課程號、課程名、學分、學時數(shù)等屬性; 教師具有職工號、姓名、年齡、職稱等屬性。(3). 聯(lián) 系數(shù)據對象彼此之間相互連接的方式稱為聯(lián)系,也稱為關系。聯(lián)系可分為以下3種類型: a. 一對一聯(lián)系(11) 如:一個部門有一個經理,而每個經理只在一個部門任職,那么部門與經理的聯(lián)系是一對一的。 b. 一對多聯(lián)系(1N) 如:某校

12、教師與課程之間存在一對多的聯(lián)系“教,即每位教師可以教多門課程,但是每門課 程只能由一位教師來教。 c. 多對多聯(lián)系(MN) 如:學生與課程間的聯(lián)系(“學)是多對多的,即一個學生可以學多門課程,而每門課程可以 有多個學生來學。聯(lián)系也可能有屬性。 如:學生“學某門課程所取得的成績,既不是學生的屬性也不是課程的屬性。由于“成績既 依賴于某名特定的學生又依賴于某門特定的課程,所以它是學生與課程之間的聯(lián)系“學 的屬性。(4). 實體-聯(lián)系圖的符號ER圖中包含了實體(即數(shù)據對象)、關系和屬性等3種根本成分。通常用矩形框代表實體;用連接相關實體的菱形框表示關系;用橢圓形或圓角矩形表示實體(或關系)的屬性;并

13、用直線把實體(或關系)與其屬性連接起來。舉 例圖3.2 某校教學管理ER圖對象教師屬性學生屬性課程屬性聯(lián)系屬性關系3.5 數(shù)據標準化為什么數(shù)據要規(guī)范化? 標準化的目的是:消除數(shù)據冗余,即消除表格中數(shù)據的重復;消除多義性,使關系中的屬性含義清楚、單一;使關系的“概念單一化,讓每個數(shù)據項只是一個簡單的數(shù)或字符串,而不是一個組項或重復組;方便操作。使數(shù)據的插入、刪除與修改操作可行并方便;使關系模式更靈活,易于實現(xiàn)接近自然語言的查詢方式。如何標準化?標準化 - 將數(shù)據的邏輯結構歸結為滿足一定條件的二維表 關系。即: 1. 表格中每個信息項必須是一個不可分割的數(shù)據項,不可 是組項。 2. 表格中每一列

14、(列表示屬性)中所有信息項必須是同一 類型,各列的名字 (屬性名) 互異,列的次序任意。 3. 表格中各行 (行表示元組) 互不相同,行的次序任意。教工號姓名性別職稱職務001張毅坤男教授院長002李 林女講師用教學管理例說明如何標準化有三個實體型,即課程、學生和教師,用三個關系保存它們的信息: 學生(學號,姓名,性別,年齡,年級,專業(yè),籍貫) 教師(職工號,姓名,年齡,職稱,職務,工資級別,工資) 課程(課程號,課程名,學分,學時,課程類型)為表示實體型之間的聯(lián)系,又建立兩個關系: 選課 (學號,課程號,聽課出勤率,作業(yè)完成率,分數(shù)) 教課 (職工號,課程號,授課效果)這五個關系,組成了數(shù)據

15、庫的模型。在每個關系中,屬性名下加下劃線指明關鍵字。并規(guī)定關鍵字能唯一地標識一個元組。1、范式級別越高,存儲同樣數(shù)據就需要分解成更多張表,因此, “存儲自身的過程也就越復雜。2、隨著范式級別的提高,數(shù)據的存儲結構與基于問題域的結構 間的匹配程度也隨之下降,因此,在需求變化時數(shù)據的穩(wěn)定 性較差。3、范式級別提高那么需要訪問的表增多,因此性能(速度)將下降。 從實用角度看來,在大多數(shù)場合選用第三范式都比較恰當。 所以,從實用角度看來,在大多數(shù)場合選用第三范式都比較恰當。 通常用“范式(Normal Forms)定義消除數(shù)據冗余的程度。第一范式(1 NF)數(shù)據冗余程度最大,第五范式(5 NF)數(shù)據冗

16、余程度最小。但是:第 一 范 式 每個屬性值都必須是原子值,即僅僅是一個簡單值 而不含內部結構。 如:學生(學號,姓名,性別,年齡,年級,專業(yè),籍貫)教師(職工號,姓名,年齡,職稱,職務,工資級別,工資)課程(課程號,課程名,學分,學時,課程類型)第 二 范 式 滿足第一范式條件,而且每個非關鍵字屬性都由整 個關鍵字決定(而不是由關鍵字的一局部來決定)。 如:選課 ( 學號,課程號,聽課出勤率,作業(yè)完成率,分數(shù) )教課 ( 職工號,課程號,授課效果 )第 三 范 式 符合第二范式的條件。 滿足第三范式3NF必須先滿足第二范式2NF。簡而言之,第三范式3NF要求一個數(shù)據庫表中不包含已在其它表中已

17、包含的非主關鍵字信息。 例如,存在一個部門信息表,其中每個部門有部門編號dept_id、部門名稱、部門簡介等信息。那么員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關的信息再參加員工信息表中。如果不存在部門信息表,那么根據第三范式3NF也應該構建它,否那么就會有大量的數(shù)據冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。 3.6 狀態(tài)轉換圖 狀態(tài)轉換圖(簡稱為狀態(tài)圖) 通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉換的事件,來表示系統(tǒng)的行為。 此外,狀態(tài)圖還指明了作為特定事件的結果系統(tǒng)將做哪些動作(例如,處理數(shù)據)。1). 狀 態(tài) 狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系

18、統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應方式。系統(tǒng)對事件的響應,既可以是做一個(或一系列)動作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動作。 初態(tài) (即初始狀態(tài)) 狀態(tài) 終態(tài) (即最終狀態(tài)) 中間狀態(tài)一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)那么可以有0至多個。2). 事 件 事件是在某個特定時刻發(fā)生的事情,它是對引起 系統(tǒng)做動作或(和)從一個狀態(tài)轉換到另一個狀態(tài) 的外界事件的抽象。 例如,內部時鐘說明某個規(guī)定的時間段已經過去, 用戶移動或點擊鼠標等都是事件。 簡而言之,事件就是引起系統(tǒng)做動作或(和)轉換 狀態(tài)的控制信息。初態(tài)用實心圓表示,終態(tài)用一對同心圓(內圓為實心圓)表示。中間

19、狀態(tài)用圓角矩形表示,可以用兩條水平橫線把它分成上、中、下3個局部。上面局部為狀態(tài)的名稱,這局部是必須有的;中間局部為狀態(tài)變量的名字和值,這局部是可選的;下面局部是活動表,這局部也是可選的。3). 符 號活動表的語法格式:事件名(參數(shù)表)/動作表達式 其中,“事件名可以是任何事件的名稱。在活動表中經常使用下述3種標準事件:entry,exit和do。entry事件指定進入該狀態(tài)的動作,exit事件指定退出該狀態(tài)的動作,而do事件那么指定在該狀態(tài)下的動作。需要時可以為事件指定參數(shù)表?;顒颖碇械膭幼鞅磉_式描述應做的具體動作。3). 符 號狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉換,箭頭指明了轉換方

20、向。狀態(tài)變遷通常是由事件觸發(fā)的,在這種情況下應在表示狀態(tài)轉換的箭頭線上標出觸發(fā)轉換的事件表達式;如果在箭頭線上未標明事件,那么表示在源狀態(tài)的內部活動執(zhí)行完之后自動觸發(fā)轉換。事件表達式的語法: 事件說明守衛(wèi)條件動作表達式事件說明的語法為:事件名(參數(shù)表)。守衛(wèi)條件是一個布爾表達式。如果同時使用事件說明和守衛(wèi)條件,那么當且僅當事件發(fā)生且布爾表達式為真時,狀態(tài)轉換才發(fā)生。如果只有守衛(wèi)條件沒有事件說明,那么只要守衛(wèi)條件為真狀態(tài)轉換就發(fā)生。動作表達式是一個過程表達式,當狀態(tài)轉換開始時執(zhí)行該表達式。3). 符 號4). 舉 例 系統(tǒng)的狀態(tài)圖3.7 其他圖形工具 層次方框圖 Warnier圖 IPO圖3.7

21、.1 層次方框圖層次方框圖用樹形結構的一系列多層次的矩形框描繪數(shù)據的層次結構。樹形結構的頂層是一個單獨的矩形框,它代表完整的數(shù)據結構,下面的各層矩形框代表這個數(shù)據的子集,最底層的各個框代表組成這個數(shù)據的實際數(shù)據元素(不能再分割的元素)。隨著結構的精細化,層次方框圖對數(shù)據結構也描繪得越來越詳細,這種模式非常適合于需求分析階段的需要。系統(tǒng)分析員從對頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數(shù)據結構的全部細節(jié)時為止。舉 例領導層輔助決策系統(tǒng)查詢輔助決策物資信息重點供料信息商情信息人員狀況合同監(jiān)視財務信息計劃執(zhí)行情況工程進展情況超儲低儲情況經營指標歷年對比價格預測物資用量預測庫存定額核定庫

22、存結構分析經濟采購批量保本保利分析3.7.2 Warnier圖法國計算機科學家Warnier提出了表示信息層次結構的另外一種圖形工具。Warnier圖也用樹形結構描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。用Warnier圖可以說明信息的邏輯組織。它可以指出一類信息或一個信息元素是重復出現(xiàn)的,也可以表示特定信息在某一類信息中是有條件地出現(xiàn)的。重復和條件約束是說明軟件處理過程的根底,所以很容易把Warnier圖轉變成軟件設計的工具。舉 例 圖中表示一種軟件產品要么是系統(tǒng)軟件要么是應用軟件。系統(tǒng)軟件中有P1種操作系統(tǒng),P2種編譯程序,此外還有軟件工具。軟件工具是系統(tǒng)軟件的一種,它

23、又可以進一步細分為編輯程序、測試驅動程序和設計輔助工具,圖中標出了每種軟件工具的數(shù)量。3.7.3 IPO圖左邊的框中列出有關的輸入數(shù)據。中間的框內列出主要的處理,處理框中列出處理的次序暗示了執(zhí)行的順序,但是用這些根本符號還缺乏以精確描述執(zhí)行處理的詳細情況。在右邊的框內列出產生的輸出數(shù)據。在IPO圖中還用類似向量符號的粗大箭頭清楚地指出數(shù)據通信的情況。一種改進的IPO圖(也稱為IPO表)在需求分析階段可以使用IPO表簡略地描述系統(tǒng)的主要算法(即數(shù)據流圖中各個處理的根本算法)。需求分析階段,IPO表中的許多附加信息暫時還不具備,但在設計階段可以進一步補充修正這些圖,作為設計階段的文檔。這正是在需求分析階段用IPO表作為描述算法的工具的

溫馨提示

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

評論

0/150

提交評論