軟件需求分析_第1頁
軟件需求分析_第2頁
軟件需求分析_第3頁
軟件需求分析_第4頁
軟件需求分析_第5頁
已閱讀5頁,還剩400頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第四章 軟件需求分析為什么要進行需求分析?目的:對開發者進行指導 開發人員對用戶的要求理解 用戶理解開發人員 測試部門有理可依原因:信息收集不全 功能不明確 需求文檔不完善 開發者急于求成教學內容: 4.1 需求分析的任務和步驟 4.2 需求獲取的常用方法 4.3 分析建模 4.4 軟件需求說明 4.5 結構化分析方法 4.6 面向對象分析方法 教學目的及要求:深刻理解需求分析階段的概念和任務;熟練掌握數據流圖;了解面向過程分析方法和面向對象的分析方法。 4.1 需求分析的任務和步驟 1.需求分析的任務: 讓用戶和開發者共同明確將要開發的是一個什么樣的系統。具體而言,兩個任務: 建立分析模型

2、編寫需求說明(P30-P31)需求分析的任務: 準確地定義未來系統的目標,確定為了滿足用戶的需求系統必須做什么。用 規范的形式準確地表達用戶的需求。需求分析的任務: 在需求分析階段,系統分析員的主要焦點是 “做什么(what)” ,不是 “怎樣做(how)”。 需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的 “做什么” 的問題。 對象系統模型系統抽象(映射)模型應用模型構造的過程邏輯模型和物理模型 模型是對對象系統的形式化的特征抽象,概括性或近似地表示; 形式化語言:數學語言、圖形等構造模型的過程是一個抽象、分析的過程。 目標系統描述現實系統是如何在物理上實現

3、的。描述新系統的主要業務功能和用戶新的需求,無論系統應如何實施。描述新系統是如何實施的(包括技術)。 邏輯模型 物理模型 (本質模型、概念模型) (實施模型、技術模型)描述重要的業務功能,無論系統是如何實施的。現行系統2.需求分析的步驟需求獲取需求提煉:分析建模需求描述:編寫需求驗證需求分析過程示意學生學生購書申請購書單發票領書單書107劉教務科206王會計室206李出納員303趙教材學生購買教材的具體模型(1) 通過對現實環境的調查,獲當前系統的具體模型(物理模型) 需求分析過程示意 (2) 去掉具體模型中的非本質因素, 抽象出當前系統的邏輯模型 學生購買教材的邏輯模型學生學生購書申請購書單

4、發票領書單書審查有效性開發票開領書單發書需求分析過程示意 (3) 分析當前系統與目標系統的差別, 建立目標系統的邏輯模型 計算機售書系統的邏輯模型學生學生購書單發票領書單審查并開發票開領書單無效書單需求分析過程示意 (4) 對目標系統進行完善和補充,并寫出完整的需求說明; (5) 對需求說明進行復審,直到確認文檔齊全,并且符合用戶的全部需求為止。 4.2 需求獲取的常用方法1.需求獲取的目的 清楚地理解所要解決的問題 完整地獲取用戶需求2.需求獲取面臨的挑戰 問題的復雜性和對問題空間 理解的不完備性與不一致性 交流障礙 需求易變性3.需求獲取的常用方法(P34-P35) 建立聯合分析小組 客戶

5、訪談 問題分析與確認建立聯合分析小組用戶 領域專家 系統分析員 客戶訪談在與用戶接觸之前,先要進行充分的準備:首先,必須對問題的背景和問題所在系統的環境有全面的了解;其次,盡可能了解將要會談用戶的個性特點及任務狀況;第三,事先準備一些問題。注意:在與用戶交流時,應遵循循序漸進、逐步逼近的原則,切不可急于求成否則欲速則不達問題分析與確認 不能期望用戶在一兩次交談中,就會對目標軟件的要求闡述清楚,也不能限制用戶在回答問題過程中的自由發揮。 在每次訪談之后,要及時進行整理,分析用戶提供的信息,去掉錯誤的、無關的部分,整理有用的內容,以便在下一次與用戶見面時由用戶確認;同時,準備下一次訪談時的進一步更

6、細節的問題。如此循環,一般需要2-5個來回。某出版社系統調查表編號提出問題1您在哪個部門工作?2出版業務流程是什么?3您每日都處理那些文件、數據、報表?4工作中手工處理特別麻煩的事情是什么?5工作中手工處理什么問題解決不了?影響效率的問題有哪些?6您認為提高工作效率,節省工作時間,減輕工作強度可采取哪些辦法?某出版社系統調查表編號提出問題7您的部門需要成本核算和統計的內容有哪些?8您的部門采用計算機管理工作情況如何?9如何改進業務流程使之更合理?10哪些問題是目前傳統手工方法根本無法解決的?11出版社計算機管理信息系統需要解決什么問題?軟件需求分析的通信途徑需求分析流程4. 需求獲取的內容用戶

7、需求分類 (1)功能性需求: 定義了系統做什么(描述系統必須支持的功能 和過程) (2)非功能性需求(技術需求): 定義了系統工作時的特性(描述操作環境和性 能目標)兩類需求包括的內容(1) 功能(2) 性能(3) 環境(4) 界面(5) 用戶或人的因素(6) 文檔 (7) 數據(8) 資源(9) 安全保密(10)軟件成本消耗與開發進度(11)質量保證(1) 功能需求 系統做什么? 系統何時做什么? 系統何時及如何修改或升級?(2) 性能需求 軟件開發的技術性指標例如: 存儲容量限制 執行速度、相應時間 吞吐量(3) 環境需求 硬件設備:機型、外設、接口、 地點、分布、溫度、 濕度、磁場干擾等

8、軟件: 操作系統 網絡 數據庫(4) 界面需求 有來自其它系統的輸入嗎? 到自其它系統的輸出嗎? 對數據格式有規定嗎? 對數據存儲介質有規定嗎?(5) 用戶或人的因素 用戶類型? 各種用戶熟練程度? 需受何種訓練? 用戶理解、使用系統的難度? 用戶錯誤操作系統的可能性?(6) 文檔需求 需哪些文檔? 文檔針對哪些讀者?(7) 數據需求 輸入、輸出數據的格式? 接收、發送數據的頻率? 數據的準確性和精度? 數據流量? 數據需保持的時間?(8) 資源需求 軟件運行時所需的數據、軟件、內存空間等資源。軟件開發、維護所需的人力、支撐軟件、開發設 備等。(9) 安全保密要求 需對訪問系統或系統信息加以控

9、制嗎? 如何隔離用戶之間的數據? 用戶程序如何與其它程序和操作系統隔離? 系統備份要求?(10) 軟件成本消耗與開發進度需求開發有規定的時間表嗎?軟硬件投資有無限制?(11) 質量保證 系統的可靠性要求? 系統必須監測和隔離錯誤嗎? 規定系統平均出錯時間? 出錯后,重啟系統允許的時間? 系統變化如何反映到設計中? 維護是否包括對系統的改進? 系統的可移植性? 原型是一個可實地運行的模型,有正式產品的主要特征,但不是全部特征。 軟件原型是軟件系統的最初版本,以最少的費用,最短的時間開發出的、以反映最后軟件的主要特征的系統。5. 快速原型法在需求分析中的應用 原型開發指的是建立一個系統的早期版本的

10、演習(practice),它不必反映最終產品的所有性能, 而只要反映感興趣的一些方面。原型的定義原型的作用 問題:開發初期很難確定用戶需求規格 解決:用戶與開發者之間的鴻溝以原型 (軟件產品的樣品)為共同語言,實現用戶 與開發者雙向溝通。原型模型(快速成型模型)建造/修改 原型用戶測試運行原 聽取用 戶意見采用原型模型的軟件生存周期分析定義系統需求生成原型系統設計程序設計編碼測試運 行和維護原型化含原型化的軟件生存期原型的特性 是一個可實際工作的系統; 沒有固定的生存期,結局可能是用后 立即被拋棄,或可能成為最終系統; 可服務于不同的目的, 從需求分析 到最終產品都可做原型; 建立必須快,便宜

11、; 是包含修改、評價在內的完整重復 過程 原型指“快速軟件原型” 原型化開發的應用領域 需求分析和定義規格說明 作為軟件設計的一種工具 作為一種解決不確定性的工具 作為一種實驗工具 系統開發同時,作為同步培訓工具 作為開發方法,利用原型演化為最終系統 作為軟件維護的輔助工具不適合原型開發的領域 嵌入式軟件 實時控制軟件 科學數值計算軟件 原型開發的分類原型化實現技術隨建立原型的目的的不同分為: (1)拋棄式原型開發 (2)演化式原型開發 (3)遞增式原型開發 最初決定設計一種數據倉庫項目原型,將開發范圍限制在易于管理的狀態,并想及早地示范出它為銀行管理所帶來的優勢。零售銀行部門被選中進行數據倉

12、庫項目的試驗。這個試點項目的基本目標是向商業管理人員提供一個信息訪問方式,使他們可以對零售銀行的產品銷路、客戶檔案資料以及變化情況進行全面分析。這個試點項目同時也想示范一下數據倉庫的生存能力和商業優勢,為以后更大規模的實現打下堅實的基礎。金融業應用實例:盧森堡國際銀行Sybase:快速建立企業級數據倉庫原型開發的步驟(1) 利用各種分析技術和方法,生成一個建華的需求規格說明。(2) 對需求規格說明進行必要的檢查和修改后,確定原型的軟件結構、用戶界面和數據結構等。(3) 在現有的工具和環境的幫助下快速生成可運行的軟件原型并進行測試、改進;(4)將原型提交給用戶評估并征求用戶的修改意見;(5)重復

13、上述過程,直到原型得到用戶的認可。原型化的開發環境 (1)試驗性原型 原型用來確認對需求的理解是否正確,應在 與實際產品環境相近的環境上開發原型。 (2) 試用性原型 原型用來幫助用戶在試用中使自己的模糊的 需求明確起來確,可在與實際產品環境完全 無關的環境上開發運行。僅對屏幕的原型化使用購買的軟件系統作為初始模型可行性分析中的原型子系統原型化 原型化策略11(12) 原型類型 從原型所表現的產品特性出發, 原型可分為:界面原型功能原型系統功能形式上的實現. 功能原型開發 用戶界面原型開發 原型開發技術13支持原型開發的軟件工具原型化工具 CASE原型化工具(14) 原型化工具面向應用的第四代

14、語言(4GL) Delphi VB PowerBuilder Visual C+ 等 將原型化工具和支持其它軟工程方法的 CASE工具集成在一起,使用GUI技術和仿 真模擬技術來快速生成原型。CASE原型化工具 用戶界面自動生成工具 面向數據庫應用的開發工具 4GL環境提供的CASE工具 可重用工具支持快速原型法的CASE 工具軟件公司積累的大量面向對象軟件組件,在面向對象編程過程中可以得到充分的利用,運用PB6和Java語言,隨心所欲調用原有的組件,在Powerdesigner的物理數據模型支持下, 實現快速原型。浪潮集團“新華書店信息系統”中的快速原形實現原型化工具和CASE原型化工具的特

15、點:以自動生成原型為目的不用編程或基本不用編程(15) 原型法效果保證產品有較好的可維護性改善用戶與開發人員的信息交流和思想溝通, 給用戶修改的機會減少或消滅下游返工的可能,改進了瀑布模型 的弊病原型系統可作為培訓環境,有利于用戶培訓和開 發同步。開發成本降低,周期縮短。(16) 原型法局限性 需工具支持,否則開發工作量大;只能縮短用戶與軟件需求定義間的距離,并不能消滅這個距離;考慮你的項目是否適合用原型法來開發時,有幾個因素是要權衡的。Boehm,Gray,和Seewaldt(1984) 研究了項目是否適合用原型來開發的問題。他們發現用原型法開發項目,可以少花費45%的努力,還可以減少40%

16、的代碼。而且,開發出的產品的速度和效率與用傳統方法開發出的差不多。是否要選擇原型法? 由于開發一個原型需要花費一定的人力、物力、財力和時間,而且用于確定需求的原型在完成使命后一般就被丟棄。因此,是否使用快速原型法必須考慮軟件系統的特點、可用的開發技術和工具等方面。Andriole提出的一下6個問題,可用來幫助判斷是否要選擇原型法。需求已經建立,并且可以預見是相當穩定嗎?(肯定回答,不采用原型法)軟件開發人員和用戶已經理解了目標軟件的應用領域嗎?問題是否可被模型化?用戶能否清楚地確定基本的系統需求?有任何需求是含糊的嗎?已知的需求中存在矛盾嗎?(以上5個問題肯定回答,用原型法)4.3 分析建模

17、兩種分析模型結構化分析模型面向對象分析模型計算機世界現實世界結構化開發方法結構化分析結構化設計結構化編程OOAOODOOP面向對象開發方法結構化分析模型的組成結構數據流圖 (DFD)E-R圖狀態變遷圖(STD圖)加工說明控制說明數據對象說 明數據字典(DD)結構化分析模型的組成結構模型的核心是DD(Data Dictionary,數據字典),它是系統所涉及的各種數據對象的總和。 從DD出發可構建3種圖:E-R圖(Entity-Relation Diagram,實體-關系圖)用于描述數據對象間的關系,他代表軟件的數據模型,在實體-關系圖中出現的每個數據對象的屬性均可用數據對象說明來描述;DFD圖

18、(Data Flow Diagram,數據流圖),其主要作用是指明系統中數據是如何流動和變換的,以及描述是數據流進行變換的功能,在DFD圖中出現的每個功能的描述則寫在(PSPEC)中,它們一起構成功能模型;結構化分析模型的組成結構STD(Status Transfer Diaram,狀態-變遷圖),用于指明系統在外部時間的作用下將會如何動作,表明了系統的各種狀態以及各種狀態間的變遷,從而構成為行為模型的基礎,關于軟件控制方面的附加信息則包含在控制說明(CSPEC)。面向對象分析模型的組成結構對象-關系模型類/對象 模型對象-行為模型使用實例(Use Case)操作、屬性、協作者面向對象分析模型

19、的組成結構使用實例,處于OOA模型核心的是“使用實例”(Use Case ),簡稱“用例”。獲得軟件的需求后,軟件分析員既可據此創建一組“場景”(Scenario),每個場景包含一個使用實例。從這些用例出發,進一步抽取和定義OOA模型的3種模型,即類-對象模型,描述系統所涉及的全部類-對象,每個類-對象都通過屬性、操作和寫作者來進行進一步描述;對象-關系模型,描述對象之間的靜態關系,同時定義了系統中所有重要的消息路徑,它也可以具體化到對象的屬性、操作和協作者;對象-行為模型,描述了系統的動態行為,即對湘雜特定的狀態下如何反映外界的事件。數據流圖(DFD)數據字典(DD)加工說明控制流圖(CFD

20、)與控制說明( CSPEC )狀態轉換圖(STD)E-R圖用例圖對象關系圖(Object-Relationship,O-R)對象行為圖2.分析模型的組成與描述工具分析模型的組成與描述工具DFD、DD和PSPEC:是早期結構化分析模型 的基本組成部分; CFD、CSPEC和STD是擴展成分用以適應實時的建模需要; E-R圖:適用于描述具有復雜數據結構的軟件數據模型;用例圖、對象關系圖和對象行為圖適用于OOA的分析模型。數據流圖(DFD) 任何軟件系統(或計算機系統)從根本上說,都是對數據進行加工或變換的工具。數據流圖(DFD)指明數據在系統中移動時如何被變換;描述對數據流進行變換的功能; DFD

21、中每個功能的描述包含在加工規約 (小說明)中。數據存儲 (文件或數據庫)數據流圖的四個基本成分2或數據流(數據對象)或位于被建模系統之外的信息生產者或消費者,稱為外部項。說明數據輸入的源點(數據源)或數據輸出的匯點(數據池)或2II數據處理(加工)數據流表示數據和數據流向三個重要屬性:流向(從加工出發或流向加工)數據組成數據流名字數據流命名方法和注意事項用名詞或名詞詞組,不要使用意義空洞的名詞;盡量使用現實系統已有名字,當命名出現困難,考慮是否數據流劃分不恰當;不要把控制流作為數據流指明作為外部事件的結果,系統將如何動作。購書單發票領書單審查并開發票開領書單無效書單學生12各班學生用 書 表舉

22、例:學生教材存量表DFD的性質 與程序流程圖不同,不能表示程序的控制結構,前者用于表示程序的過程設計,后者則用作軟件分析階段的工具。數據字典(DD,DataDictionary) 模型核心(中心庫) 一個軟件系統含有許多數據。數據字典的作用,就是對軟件中的每個數據規定一個定義條目,以保持數據在系統中的一致性。 由字典統一給出的所有數據的定義與屬性,已成為結構化分析中分析建模的基礎。數據字典數據詞典與數據流圖配合,能清楚地表達數據處理的要求詞條描述 對于在數據流圖中每一個被命名的圖形元素,均加以定義,其內容有: 名字,別名或編號,分類,描述,定義,位置,其它,等數據字典 DD是對所有與系統相關的

23、數據元素的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統分析員對于輸入、輸出、存儲成分和中間計算有共同的理解 數據字典的作用 DFD中的數據流、數據存儲表示某個有組織的數據集合,它們要由SA的其他描述工具-需求字典(數據字典)來描述,包括: 詞條描述 數據結構描述 加工邏輯說明數據字典 數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合數據字典的內容 數據流 數據流分量 數據存儲 處理數據處理:用 IPO圖或PDL描述比較方便直觀。數據元素的別名:定義數據的方法 由數據元素組成數據的方式的三種基本類型順序 +: 以確定次序連接兩個或多個分量 a+b+c 選擇

24、 |, : 從兩個或多個可能的元素中選取一個 a | b | c 重復 : 把指定的分量重復零次或多次 a 可選:一個分量是可有可無的(重復零次或一次), (a)例子 定貨報表=零件編號+零件名稱+定貨數量+目前價格+主要供應者+次要供應者零件編號=8字符8定貨數量=1數字5數據流詞條描述數據流名:說明:簡要介紹作用即它產生的原因和結果數據流來源:來自何方數據流去向:去向何處數據流組成:數據結構數據量流通量:數據量,流通量數據元素詞條描述數據元素名:類型:數字(離散值,連續值),文字(編碼類型)長度:取值范圍:相關的數據元素及數據結構:數據文件詞條描述數據文件名:簡述:存放的是什么數據輸入數據

25、:輸出數據:數據文件組成:數據結構存儲方式:順序,直接,關鍵碼存取頻率:加工邏輯詞條描述加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入數據流:輸出數據流:加工邏輯:簡述加工程序,加工順序 DD中數據結構的描述方式 定義式 Warnier圖 巴科斯范式(BNF)F1:航班信息文件航空公司名稱航班號起點終點日期 起飛時間降落時間航空公司名稱2字母4 航班號3十進制數字3 字母“A”“Z”十進制數字“0”“9”起點終點1漢字10 起飛時間降落時間時分 時“00”“23” 分“00”“59” 日期年月日 年2000200120022004 月“01”“12” 日“01”“31” 重

26、復項:起點終點1漢字10 航空公司名稱2字母4 航班號3十進制數字3 組合項:日期年月日 起飛時間降落時間時分選擇項:年2000200120022004原數據項:字母“A”“Z” 十進制數字“0”“9” 時“00”“23” 分“00”“59” 月“01”“12” 日“01”“31”定義式中使用的符 操作符 含義描述 定義為 與(順序結構) . 重復(循環結構) . 或(選擇結構) . , . ( . ) 任選 m.n 界域 ., 注釋符限制重復次數舉例: 35 或53 表示允許重復3-5次 33 或33 表示恰好重復 3 次 1表示至少出現 1 次表示允許重復0至任意次源點及匯(終)點詞條描述

27、簡名稱:外部實體名要描述:什么外部實體有關數據流:數目:數據結構的描述 符 號 含 義 舉 例 被定義為 與 x = ab.,. 或 .|. 或 x = a , b,x = a | b . 或 m.n 重復 x = a, x = 3a8(.) 可選 x = (a)“.” 基本數據元素 x = “a” . 連結符 x = 1.9存折格式存折戶名所號帳號開戶日性質(印密)1存取行50戶名2字母24所號“001”.“999” 帳號“00000001”.“99999999”開戶日年月日性質“1”.“6” 注:“1”表示普通戶,“5”表示工資戶等印密“0” 注:印密在存折上不顯示存取行日期(摘要)支出存

28、入余額操作復核出現在軟件中的數據可分為3種情況:只含一個數據的數據項(或數據元素);由多個相關數據向組成的數據流;數據文件或數據庫。舉例說明怎樣編寫各類數據的字典條目:數據流數據文件數據項數據流條目說明舉例數據流名:發票別名: 購書發票組成:(學號)姓名書號單價數量總價 書費合計數據量:100次/天 高峰值:開學期間400次/天 數據存儲條目說明舉例文件名:各班學生用書表別名:組成:系編號專業和班編號 年級書號組織:按系、專業和班編號從小到大 排列存取要求:關鍵字是專業和班編號數據項條目說明舉例數據項名:系編號別名:取值:2數字2注釋:* 例如: 01,12 *數據項條目說明舉例數據項名:專業

29、和班編號別名:取值: 3數字3注釋:* 例如: 305 *數據項條目說明舉例數據項名:年級別名:取值及含義: freshmen, 一年級 sophomore,二年級 junjor, 三年級 senior, 四年級注釋:F,M,J,S可分別用1,2,3,4代替數據項條目說明舉例數據項名:書號別名:取值: 字母數字注釋:* 例如:, * 對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數據流變換為輸出數據流的加工規則加工邏輯說明必須描述實現加工的策略而不是實現加工的細節加工邏輯說明中包含的信息應是充足的,完備的,有用的,無冗余的基本加工邏輯說明用于寫

30、加工邏輯說明的工具 結構化英語 判定表 判定樹結構化英語 結構化英語的詞匯表由 英語命令動詞 數據詞典中定義的名字 有限的自定義詞 邏輯關系詞 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等組成。是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述句結構:避免復合語句;重復結構:while_do 或 repeat_until 結構。判定結構:if_then_else 或 case_of 結構;商店業務處理系統中“檢查發貨單”if 發貨單金額超過$500 then

31、if 欠款超過了60天 then 在償還欠款前不予批準 else (欠款未超期) 發批準書,發貨單 else (發貨單金額未超過$500) if 欠款超過60天 then 發批準書,發貨單及賒欠報告 else (欠款未超期) 發批準書,發貨單 判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適以“檢查發貨單”為例判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。檢查發貨單金額$500金額$500 欠款60天不發出批準書 欠款60天發貨單發出批準書、 欠款60天發出批準書、發貨單及賒欠報告 欠款60天發出批準書、發貨單控制流圖(CFD)與控制說明(C

32、SPEC) CFD是為了適應實施系統地分析而提出的,通常與DFD配合使用,目的使CSPEC分析員在用DFD和PSPEC表示數據流和加工的同時,也能夠用CFD和CSPEC表示控制流和控制加工。(P45-P47) 數據流和控制流舉例 (使用Ward和mellor符號)監控固件和操作接口每個固件狀態動作警告機器人初始化控制操作命令部件狀態緩沖器位置命令開始/停止處理機器人命令機器人命令文件操作設置處理活動記錄機器人動作位串數據和控制模型的關系 DFD加工規約加工模型DFD控制規約控制模型數據輸出數據條件數據輸入控制輸入控制輸出加工激活者SafeHomede控制面板與用戶交互SAFEHOMEARMED

33、 POWER01123456789*0#OFF ARAY STAYMAX TEST BYPASSINSTANT CODE CHIMEREADYpanicalarmcheckfireawaystayinstantbypassnot readySafeHomede的第0層 SafeHomede軟件系統用戶命令和數據顯示信息控制面板傳感器傳感器狀態警鈴電話線警告類型電話號碼撥音控制面板顯示SafeHomede的第1層控制面板與用戶交互控制面板顯示密碼電話號碼撥音傳感器狀態顯示信息配置請求用戶命令和數據配置系統警鈴電話線傳感器配置信息顯示信息和狀態監控傳感器激活不激活系統傳感器信息密碼處理警告類型檢驗

34、id信息開始停止狀態信息監控傳感器的第2層電話號碼撥音傳感器狀態配置數據顯示格式配置信息產生警告信息撥號評估設置傳感器信息讀傳感器警告類型傳感器id類型傳感器id類型定位SafeHomede的第一層控制面板與用戶交互控制面板顯示顯示活動狀態(完成、在處理中)配置系統警鈴電話線傳感器配置信息顯示信息和狀態監控傳感器激活不激活系統警告信號密碼處理傳感器事件警告狀態超時閃爍標志開關切換狀態轉換圖(STD) 描述軟件狀態的變遷,它是在CSPEC中常用的一種重要描述工具。(P48) 電梯狀態圖舉例在一樓上升停滯下降回到一樓回一樓想要到達樓層想要到達樓層電梯行程開始向上向上向下E-R圖概念模型和規范化 用

35、戶的數據要求-需要哪些數據,數據之間有哪些聯系,數據本身有哪些性質,數據的結構 等)。 用戶的處理要求-對數據進行哪些處理,每個處理的邏輯功能。 概念性模型(信息模型)-一種面向問題的數據模型,是按照用戶的觀點來對數據和信息建模。表示概念性數據模型的最常用方法是實體-聯系方法,采用用 ER圖的方式,這種表示又稱為ER模型。 ER模型 實體: 客觀世界中存在的且可區分的事物。 聯系: 客觀事物之間的聯系(三類-1:1,1:N,M:N) 屬性: 實體或聯系所具有的性質。教師姓名性別職稱職務教師號教1課程N課程號課名學時學分學M學生N學號姓名性別系年級成績 范式通常用范式定義消除數據的冗余度(略)數

36、據及數據庫需求在數據詞典中,強調對數據存儲結構的邏輯設計,并用數據結構表達數據項之間的邏輯關系。但任何一個軟件系統都可能有成千上萬個數據項,僅僅描述這些數據項是不夠的,更重要的是如何把它們以最優的方式組織起來,以滿足系統對數據的要求。有關數據庫的基本概念在軟件系統中需要處理的數據是現實世界中存在的事物及其聯系的反映。人們通常將與數據處理有關的的領域分為三個世界: 現實世界 信息世界 數據世界現實世界是存在于人們頭腦之外的客觀世界,現實世界中的事物可分成對象和性質兩大類。對象可以是人、是物,還可以是實際的東西或概念的東西,例如,大學、城市等。對象還可以指事物與事物間的聯系。性質則是指事物的性質或

37、特征。信息世界也叫做觀念世界,是現實世界在人們頭腦中的反映。客觀世界中的事物在信息世界中叫做實體,反映事物之間聯系的叫做實體模型。實體是由若干屬性的屬性值組成。屬性是實體某一方面的特征,相應于事物的性質。例如,一個學生實體是如下的一個5元組:( 951149, 袁秋慧, 女, 19, 軟件)5元組中每一元素是學生的某一屬性的屬性值。他們對應的屬性集合是:這些屬性集合表征了“學生”實體的類型,叫做實體型。同一類型的實體的集合叫做實體集。數據世界則是信息世界中信息的數據化,現實世界中的事物及其聯系在數據世界中用數據模型描述。(學號, 姓名, 性別, 年齡, 專業)描述每一實體的數據稱為記錄,描述屬

38、性的數據叫做數據項或字段。與實體集相對應的稱為文件。例如,學生文件就由多個記錄組成,這些記錄放在一起構成一個二維表。表中每一橫排叫做一個記錄或元組,每一縱列叫做一個屬性。 記錄由數據項組成,正如實體由若干屬性的屬性值組成一樣。一般數據項沿用屬性名。用做屬性名時表示觀念信息,用做數據項名時表示數據信息。每個數據項包括兩個特征:即數據類型和數據長度。若干同類型的記錄構成文件。為了對文件中的記錄有效組織和存取,通常指定一個數據項進行區別,這個數據項叫做關鍵字。E-R方法 ( Entity-Relationship Approach) 和實體模型在需求分析階段進行數據庫邏輯設計過程中,使用E-R圖,可

39、定義一 個實體模型。實體模型是現實世界的純表示,它不涉及數據世界的數據結構、存取路徑、存取效率等問題。因此,它可以轉換成數據庫中的數據模型。E-R圖中的基數表示:在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實體之間,或實體與屬性之間的聯系。出現在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學管理中,一個教師可以教授零門、一門或多門課程,每位學生也需要學習幾門課程。因此,教學管理中涉及的對象(實體型)有學生、教師和課程。用E-R圖描述它們之間的聯系,得下圖。其中,學生與課程是多對多的聯系,而教師與課程的聯系是零、一對多。進一步,要確定屬性。例如,學生具有學號、姓

40、名、性別、年齡、專業(其它略)等屬性;課程具有課程號、課程名、學分、學時數等屬性;教師具有職工號、姓名、年齡、職稱等屬性。此外,學生通過學號、分數與課程發生聯系。如此可得教學實體模型。教學實體模型數據庫分析的過程在需求分析階段進行數據庫分析的流程為開發一個系統所使用的數據庫,在開始分析數據庫的需求前,分析員必須了解該系統的總目標和范圍。然后建立一個完整并高度細化的信息模型。此信息模型應包括一個綜合的數據詞典,定義所有在開發數據庫時用到的數據項。接著數據庫分析定義數據庫的邏輯特性和物理特性。以信息模型和系統規格說明為指導,定義數據庫的邏輯數據結構。這種邏輯結構必須適應數據存取、修改、關聯性及其它

41、相關需求。一旦邏輯數據結構建立起來,就可以研制數據庫的物理結構。物理數據庫結構定義文件結構、記錄格式、與硬件相關的處理方式以及數據庫管理系統的特性。最后,要對模式和物理特性進行完全的評審。在數據庫分析過程中所考慮的因素間存在著復雜的相互聯系。改變其中的任何一個因素都會(潛在地)影響其它的因素。所以必須在各個因素之間進行折衷。這種折衷包括專用性和通用性的折衷,信息關聯程度、擴充潛力及操作特性等方面的折衷。考慮信息關聯程度和擴充潛力(包括信息規模和信息內容兩方面)主要基于需求分析和設計階段分派給數據庫的專用性程度。專用的數據庫要為系統特定的信息需求服務,因此信息結構要設計得能適應要求的關聯性和預計

42、的擴充。通用的數據庫可以適應更為廣泛的各種信息需求,但是為了獲得通用性要付出代價。操作特性根據折衷的結果而定。數據庫的結構、規模和邏輯設計都會對它的物理組織、硬件、存取方式以及性能產生重要的影響。 數據建模 E-R圖是數據建模的基礎數據建模實例:簡單的酒店系統數據模型客人入住客房狀態客房服務服務類別姓名地址身份證號碼護照號碼電話客房號床位數房間類別價格1住宿編號住宿時間支付方式日期,客人數狀態(已預定/占用/維修中)日期,數量名稱,價格用例圖 什么是用例(use case)? 用例是幫助分析員和用戶確定系統使用情況的UML 組件; 一組用例就是從用戶的角度出發如何使用系統的 描述; 可認為用例

43、是系統的一組使用場景;每個場景描述了一個事件的序列;每個序列是由一個人、另一個系統、一個硬件設備或某段時間的流逝所發起;每個發起事件序列的實體叫做參與者(actor)或行動者用例建模用例建模是用于描述一個系統應該做什么的建模技術用例建模可用于新系統的需求獲取,也可用于已有系統的升級用例模型(use case model)一個用例模型可由若干幅用例圖組成用例描述了用戶和系統之間的交互,其重點是 系統為用戶做什么用例模型描述全部的系統功能行為一幅用例圖包含的模型元素有:用例參與者(行為者、執行者)系統用例圖用例參與者系統參與者用例模型表示法通信關系某酒店系統用例圖風險分析交易估計進行交易進行交易接

44、待員酒店系統財務系統銷售系統用例圖購買商品登錄退貨收款員POS顧客購買商品退貨商店顧客以商店作為系統邊界以POS作為系統邊界POS系統用例圖購買商品登錄退貨收款員POS顧客啟動/關閉管理用戶其他管理員系統管理員 現金結算登錄收款員參與者與它們所發起執行的過程(簡要描述)退貨購買商品顧客關閉系統啟動系統管理員增加新用戶系統管理員 用例描述實例用例: 購買商品參與者:顧客(發起者)、收款員類型: 主要的描述: 顧客帶著所要購買商品到付款處,收款員 記錄商品信息并收款。用例: 啟動/關閉系統參與者:管理員類型: 主要的描述: 管理員接通一臺POS機電源,檢查時間、 日期正確性,檢查完成后,系統處于就

45、緒 狀態,以備收款員使用。對象關系圖(Object-Relationship,O-R)對象關系圖是由E-R圖演變而來的。對象通過制定的關系和其他對象連接,規定連接的基數并建立整體的對象-關系網絡。 金融機構類圖舉例 :所有人財產人員金融機構信貸銀行銀行抵押本金利率到期*有次序的*借方債權人房屋保險機構類圖舉例 : 銷售代表 0 . 1定貨nameaddress顧客creditRating( ):String產品雇員1dataReceivedisPrepaidnumber:Stringprice:Money協作顧客contactNamecreditRatingcreditLimitcreditC

46、ard#個人顧客creditRating( )=“poor”定貨作業線dispatch( )close( )remind( )billForMonth( )Quantity:Integerprice:MoneyisSatisfied:Boolean1*1物品網上商店對象模型(部分)示例(UML)對象行為圖 對象行為模型用于描述對象動態行為,通常由對象狀態轉換圖、事件軌跡圖和事件流圖等來描述。(P52-P53) 電梯狀態轉換圖在一樓上升停滯下降回到一樓回一樓想要到達樓層想要到達樓層電梯行程開始向上向上向下 接電話的的部分事件軌跡圖 :受話者交換機遠程交換機受話者拿起話筒聽通話聲撥號碼.鈴響信號鈴

47、響鈴響停止信號拿起話筒鈴響停止10 deabcb-a1e-d5c-b7個左右,則進一步精練主題.如何精練主題依賴于模型自身復雜性小系統: 不需引入主題;中等系統:先標識類及對象, 然后引入主題;大系統: 先標識主題,對問題域進行 劃分,分給不同的任務組。何時引入主題 主題層次的控制中小型系統可只設一層主題,最多不超過兩層;大型系統可只設兩層主題,最多不超過三層。中央計算機總行通信銀行代碼ATM擁有分行計算機出納工作站遠程業務現金卡分行帳戶儲戶出納員出納業務通信授權存取擁有擁有持有組成擁有擁有雇傭進入被進入修改修改進入把ATM系統劃分為三個主題2311112223333帳冊前班節余銷售事件表收入

48、累計上交款本班節余接班計帳報帳交班上級系統接口帳目目冊消息發送查帳報帳價格更新種類增刪供貨員缺貨登記表缺貨登記供貨銷售事件收款人購物清單應收款銷售計劃入帳商品編號名稱單價架上數量下限售出補充價格更新特價商品開始日期結束日期計量商品*單價計量單位計價方式*售出*補充*價格更新1m商品一覽表商品目錄檢索種類增刪1m(關系層, 完整的類圖)收款機本班收款員開始時間結束時間登錄 售貨 結帳111133332222 4.建立對象-關系模型對象模型技術(OMT, Object Model Tech)對象模型動態模型功能模型基本模型:三個模型分別從不同角度分析系統對象模型: 描述靜態結構, 定義做 事情的實

49、體功能模型: 描述處理(數據變換), 指明系統應“做什么”動態模型: 描述交互過程, 規定什么 時候做 分析模型OMT模型系統分析和設計過程概觀圖產生需求結構及對象設計建立模型問題描述對象模型、動態模型、功能模型詳細的對象模型詳細的動態模型詳細的功能模型分析階段設計階段 描述系統內部對象結構,包括對象本身的定義、對象的屬性、操作,以及對象與其它對象之間的關系。 對象模型是OMT方法論中最重要的部分,動態模型、功能模型都將依次而建立對象模型以對象圖形式呈現,對象圖由類構成。對象模型 對象模型 對象模型表示靜態的、結構的系統數據的性質。 對模擬客觀世界實體的對象以及對象彼此之間的關系的映射,描述了

50、系統的靜態結構。 OO方法強調圍繞對象而不是功能來構造系統。飲料自動售貨機系統對象圖販賣機飲料號碼價格投幣-接受飲料掉出金額顯示按紐退幣桿售完顯示存量計算器飲料號碼存量遞減售完顯示重置選擇鈕選擇鈕狀態燈亮燈熄售完燈亮按鈕顧客姓名硬幣投幣-置入拿取飲料退幣桿退幣桿狀態拉動金額計算器金額累加找零重置購買選取被拉動屬于屬于屬于屬于對象-關系圖 系統傳感器事件 傳感器 控制面板發生警報1:11:11:11:11:10:k1:m0:n包含選中產生認可網上商店對象模型(部分)示例(UML)銷售代表 0 . 1定貨nameaddress顧客creditRating( ):String產品雇員1dataRec

51、eivedisPrepaidnumber:Stringprice:Money協作顧客contactNamecreditRatingcreditLimitcreditCard#個人顧客creditRating( )=“poor”定貨作業線dispatch( )close( )remind( )billForMonth( )Quantity:Integerprice:MoneyisSatisfied:Boolean1*1物品 5.建立對象-行為模型(動態模型) 用來描述系統與時間相關的動態行為即系統的控制邏輯,表現對象彼此間經過相互作用后,隨時間改變的不同運算順序。 動態模型以“事件”(Event

52、s)和“狀態”(States)為其模型的主要概念。 動態模型以狀態圖形式呈現,動態模型要想對一個系統了解得比較清楚,還應當考察在任何時刻對象及其關系的改變。系統的這些涉及時序和改變狀況用動態模型來描述。動態模型著重于系統的控制邏輯。它包括兩個圖,一是狀態圖,一是事件追蹤圖。狀態圖狀態圖是一個狀態和事件的網絡,側重于描述每一類對象的動態行為。在狀態圖中,狀態是對某一時刻中屬性特征的概括。而狀態遷移表示這一類對象在何時對系統內外發生的哪些事件做出何種響應。操作是一個伴隨狀態遷移的瞬時發生的行為,與觸發事件一起表示在有關的狀態遷移之上。活動則是發生在某個狀態中的行為,往往需要一定的時間來完成,因此與

53、狀態名一起出現在有關的狀態之中。動態模型由多個狀態圖組成。對于每一個具有重要動態行為的類都有一個狀態圖,從而表明所有系統活動的模式。各個狀態圖并發地執行,并可以獨立地改變狀態。各種類的狀態圖可以通過共享事件組合到一個動態模型中。事件一個事件發生在某一時刻每個事件都是單獨發生的我們建立事件類,并給每個事件一個名字,以指明共同結構和行為。事件從一個對象向另一個對象傳送信息。有些事件類可能傳送的是簡單的信號“要發生某件事”,而有些事件類則可能傳送的是數據值。由事件傳送的數據值叫做屬性。 列車出發(線路、班次、城市) 撳下鼠標按鈕(按鈕、位置) 拿起電話受話器 數字撥號(數字)事件追蹤圖事件追蹤圖側重

54、于說明發生于系統執行過程中的一個特定“場景”。場景也叫做腳本,是完成系統某個功能的一個事件序列。場景通常起始于一個系統外部的輸入事件,結束于一個系統外部的輸出事件,它可以包括發生在這個期間的系統所有的內部事件。 打打電電話話者者拿拿起起電電話話受受話話器器 電電話話忙忙音音開開始始 打打電電話話者者撥撥數數字字(88) 電電話話忙忙音音結結束束 打打電電話話者者撥撥數數字字(22) . 打打電電話話者者撥撥數數字字(33) 接接電電話話者者的的電電話話開開始始振振鈴鈴 鈴鈴聲聲在在打打電電話話者者的的電電話話上上傳傳出出 接接電電話話者者回回答答 接接電電話話者者的的電電話話停停止止振振鈴鈴

55、鈴鈴聲聲在在打打電電話話者者的的電電話話中中消消失失 通通電電話話 .狀態圖與事件追蹤圖的關系狀態圖敘述一個對象的個體行為,事件追蹤圖則給出多個對象所表現出來的集體行為。它們從不同側面來說明同一系統的行為。例如,一個事件追蹤圖指出某一對象在接受一個事件之后發出另一事件,同一行為在此對象的狀態圖中也應當有所表示。 事件: 瞬時發生的行為; 引起對象狀態轉換的控制信息。 事件類和屬性舉例: 飛機起飛(航線、航班號、城市) 按動鼠標按鈕(按鈕、位置) . 腳本和事件蹤跡腳本是系統某一次特定運行時期內發生的事件序列。(腳本也叫場景) 事件追蹤圖側重說明發生于系統執行過程中的一 個特定“場景(scena

56、rios)”。 通話腳本(只包括影響電話線的事件)17. 打電話者掛斷電話16. 電話切斷15. 接電話者掛斷電話14. 通電話12. 接電話者電話停止振鈴13. 鈴聲在打電話者電話中消失11. 接電話者回答10. 鈴聲在打電話者電話傳出9. 接電話者的電話開始振鈴8. 打電話者撥數字(3)7. 打電話者撥數字(7)6. 打電話者撥數字(3)5. 打電話者撥數字(2)4. 電話忙音結束3. 打電話者撥數字(8)2. 電話忙音開始1. 打電話者拿起聽筒狀態: 對象屬性和對象關聯的抽象形式狀態的特征表示方法舉例:狀態:鬧鈴響描述:鬧鈴響表示預定時間到產生本狀態的事件序列: 設置鬧鐘(預定時間) 不

57、包括清除鬧鈴的任何后續操作 當前時間=預定時間表征本狀態的條件: 鬧鈴=開,從預定時間起沒有按鍵的情況下, 目標時間當前時間 目標時間=20秒本狀態接受的各種時間: 事件 動作 下一個狀態當前時間=目標時間+20 重新設置鬧鐘 正常按下按鈕(任意按鈕) 重新設置鬧鐘 正常 動態模型表示方法 狀態圖 狀態和事件的網絡,側重描述每一類對象的動態行為。 狀態圖 狀態1Do:活動1狀態2 .事件1條件1 / 動作1結束事件初始事件空閑可視菜單左邊按鈕按下/顯示彈出菜單左邊按鈕彈起/擦除彈出菜單光標移動/高亮菜單項 彈出菜單動作例:舉例:飲料自動售貨機系統的狀態圖 投入硬幣(有效的)按下選擇飲料鍵Do:

58、顯示售貨機在備用 所有燈都關閉 Do:顯示金額總數Do:顯示金額已夠 飲料選擇燈亮 取出飲料結算找零扣減存量完成交易飲料“售完”燈亮 投入硬幣金額 (1元、5元、10元)金額不足再投幣存量為零無效的硬幣 取消 取消 回到備用狀態 回到備用狀態 事件追蹤圖舉例:打電話的事件追蹤圖掛斷電話電話切斷掛斷電話通 話通 話停止振鈴停止振鈴響應電話電話振鈴鈴 聲撥 號(3)撥 號(7撥 號(3)撥 號(2)電話忙音結束撥 號(8)電話忙音開始拿起聽筒電話線接電話者打電話者 存量為零找零扣減存量燈亮余額飲料結算選擇鍵 #選擇按紐燈亮金額總夠顯示總額總額累加投入硬幣金額計算器存量計算器顧客售貨機選擇鍵舉例:飲

59、料自動售貨機系統的事件追蹤圖售完燈 6. 功能模型 用來描述系統中數據的變換。 傳統DFD + 控制流對象A對象B過程1過程2數據存儲區控制流數據流 基于三個模型的分析步驟 需求陳述 對象建模 動態建模 功能建模 添加操作反復建模OMT支持整個軟件生命周期:需求分析、系統設計、系統實現、測試與維護。分析階段 理解應用問題,建立對象模型、動態模型和功能模型, 說明對象關聯、控制流及數據變換。2. 系統設計階段 確定系統框架,考慮并發任務、通訊機制和數據存儲 策略。3. 對象設計階段 從實現的角度細化分析對象模型、動態模型和功能 模型。OMT方法的特點:開發重點在分析階段 強調數據結構而不是功能

60、形式化描述能力強 開發步驟的銜接良好 重復性的開發過程1)分析使用場景,畫 Use Case2)標識對象類 3)畫Class對象類圖4)組織類結構(繼承、聚合關系)5)定義主題(子系統)6)畫Sequence順序圖(軌跡圖)7)畫State Transition狀態圖8)畫Collaboration協作圖面向對象的分析方法和步驟確定系統結構確定系統行為系統結構:體現在實體之間的關系上系統行為:體現在作用于實體屬性的操作上1)分析使用場景 (Use Case)面向對象的分析方法和步驟(舉例) SafeHome軟件使得房主能夠在安裝時配置安全系統、監控所有和安全系統連接的傳感器以及通過包含在Saf

溫馨提示

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

評論

0/150

提交評論