java第7章 面向對象分析(案例講座)_第1頁
java第7章 面向對象分析(案例講座)_第2頁
java第7章 面向對象分析(案例講座)_第3頁
java第7章 面向對象分析(案例講座)_第4頁
java第7章 面向對象分析(案例講座)_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、Software Engineering1軟件工程第第7章章 面向對象分析面向對象分析Software Engineering2面向對象的分析面向對象分析的面向對象分析的目的目的是對是對客觀世界的系客觀世界的系統進行建模統進行建模。以前面介紹的模型概念為基礎,。以前面介紹的模型概念為基礎,結合結合“銀行網絡系統銀行網絡系統ATM”的具體實例來構造的具體實例來構造客觀世界問題的準確、嚴密的分析模型。客觀世界問題的準確、嚴密的分析模型。 分析模型有三種用途:分析模型有三種用途:l用來明確問題需求;用來明確問題需求;l為用戶和開發人員提供明確需求;為用戶和開發人員提供明確需求;l為用戶和開發人員提供

2、一個協商的基礎,為用戶和開發人員提供一個協商的基礎,作為后繼的設計和實現的框架。作為后繼的設計和實現的框架。Software Engineering3Software Engineering4系統分析的第一步是:陳述需求 分析者必須同用戶一塊工作來提煉需求,分析者必須同用戶一塊工作來提煉需求,因為這樣才表示了用戶的真實意圖,其中涉因為這樣才表示了用戶的真實意圖,其中涉及對需求的分析及查找丟失的信息。及對需求的分析及查找丟失的信息。下面以下面以“銀行網絡系統銀行網絡系統”為例,用面向為例,用面向對象方法進行開發。對象方法進行開發。Software Engineering5銀行網絡系統問題陳述:設

3、計支持銀行網絡的軟件,銀行網絡包括設計支持銀行網絡的軟件,銀行網絡包括人工人工出納站出納站和分行共享的和分行共享的自動出納機自動出納機。每個分理處用分理處計算機來保存各自的帳戶,每個分理處用分理處計算機來保存各自的帳戶,處理各自的事務;各自分理處的出納站與分理處計處理各自的事務;各自分理處的出納站與分理處計算機通信,出納站錄入帳戶和事務數據;算機通信,出納站錄入帳戶和事務數據;自動出納機與分行計算機通信,分行計算機與自動出納機與分行計算機通信,分行計算機與撥款分理處結帳,自動出納機與用戶接口接受現金撥款分理處結帳,自動出納機與用戶接口接受現金卡,與分行計算機通信完成事務,發放現金,打印卡,與分

4、行計算機通信完成事務,發放現金,打印收據;收據;系統需要系統需要記錄保管記錄保管和安全措施;系統必須正確和安全措施;系統必須正確處理同一帳戶的并發訪問;每個分處理為自己的計處理同一帳戶的并發訪問;每個分處理為自己的計算機準備軟件,銀行網絡費用根據顧客和現金卡的算機準備軟件,銀行網絡費用根據顧客和現金卡的數目分攤給各分理處。數目分攤給各分理處。Software Engineering6Software Engineering7系統分析的第二步是:建立對象模型l首先首先標識和關聯標識和關聯,因為它們影響了整體,因為它們影響了整體結構和解決問題的方法,結構和解決問題的方法,l其次是增加其次是增加屬性

5、屬性,進一步描述類和關聯,進一步描述類和關聯的基本網絡,使用繼承的基本網絡,使用繼承合并和組織合并和組織類,類,l最后最后操作操作增加到類中去作為構造動態模增加到類中去作為構造動態模型和功能模型的副產品。型和功能模型的副產品。Software Engineering81.確定類構造對象模型的第一步是構造對象模型的第一步是標出來自問題標出來自問題域的相關的對象類域的相關的對象類,對象包括物理實體和概,對象包括物理實體和概念。念。常用的識別類的方法有:名詞識別法、常用的識別類的方法有:名詞識別法、系統實體識別法、使用重用、從用例中識別系統實體識別法、使用重用、從用例中識別類等。類等。所有類在應用中

6、都必須有意義,在問題所有類在應用中都必須有意義,在問題陳述中,并非所有類都是明顯給出的。有些陳述中,并非所有類都是明顯給出的。有些是隱含在問題域或一般知識中的。是隱含在問題域或一般知識中的。Software Engineering9按圖所示的過程確定類和對象按圖所示的過程確定類和對象Software Engineering10(1)找出候選的類與對象查找問題陳述中的所有名詞,產生如下查找問題陳述中的所有名詞,產生如下的的候選類與對象候選類與對象。 軟件軟件 銀行網絡銀行網絡 出納員出納員 自動出納機自動出納機 分行分行 分處理分處理 分處理計算機分處理計算機 帳戶帳戶 事務事務 出納站出納站

7、事務數據事務數據 分行計算機分行計算機 現金卡現金卡 用戶用戶 現金現金 收據收據 系統系統 顧客顧客 費用費用 帳戶帳戶數據數據 訪問訪問 安全措施安全措施 記錄保管記錄保管 Software Engineering11(2)篩選出正確的類與對象 根據下列標準,根據下列標準,篩選出正確的類與對象篩選出正確的類與對象,去掉,去掉不必要的類和不正確的類。不必要的類和不正確的類。(1) 冗余類:冗余類:若兩個類表述了同一個信息若兩個類表述了同一個信息 ,保留,保留最富有描述能力的類。如最富有描述能力的類。如“用戶用戶”和和“顧客顧客”就是就是重復的描述,因為重復的描述,因為“顧客顧客”最富有描述性

8、,因此保最富有描述性,因此保留它。留它。 (2) 無關類無關類:除掉與問題沒有關系或根本無關的:除掉與問題沒有關系或根本無關的類。例如,攤派費用超出了銀行網絡的范圍。類。例如,攤派費用超出了銀行網絡的范圍。 (3) 籠統(模糊)類籠統(模糊)類:類必須是確定的,有些暫:類必須是確定的,有些暫定類邊界定義模糊或范圍太廣,如定類邊界定義模糊或范圍太廣,如“記錄保管記錄保管”就就模糊類,它是模糊類,它是“事務事務”中的一部分。中的一部分。在銀行網絡系統中,模糊類還有在銀行網絡系統中,模糊類還有“系統系統”、“安全安全措施措施”、“銀行網絡銀行網絡”等。等。Software Engineering12

9、(4) 屬性屬性:某些名詞描述的是其他對象的:某些名詞描述的是其他對象的屬性,則從暫定類中刪除。如果某一性質的屬性,則從暫定類中刪除。如果某一性質的獨立性很重要,就應該把他歸屬到類,而不獨立性很重要,就應該把他歸屬到類,而不把它作為屬性。把它作為屬性。“現金現金 ”“”“卡號卡號”“”“密碼密碼”等,應該作為屬性對待。等,應該作為屬性對待。 屬于屬于屬性屬性的有:的有:“帳戶數據帳戶數據”、“收收據據”、“現金現金”、“事務數據事務數據”。 Software Engineering13(5) 操作操作:如果問題陳述中的名詞有:如果問題陳述中的名詞有動作含動作含義義,則描述的操作就不是類。但是具

10、有自身性質而,則描述的操作就不是類。但是具有自身性質而且需要獨立存在的操作應該描述成類。如我們只構且需要獨立存在的操作應該描述成類。如我們只構造電話模型,造電話模型,撥號撥號就是動態模型的一部分而不是就是動態模型的一部分而不是類,但在電話撥號系統中,類,但在電話撥號系統中,撥號撥號是一個重要的類,是一個重要的類,它日期、時間、受話地點等屬性。它日期、時間、受話地點等屬性。屬于屬于實現實現的如:的如:“訪問訪問”、“軟件軟件”等。這些等。這些均應除去。在分析階段不應該過早考慮系統的實現,均應除去。在分析階段不應該過早考慮系統的實現,因此,應該去掉和實現有關的候選類。因此,應該去掉和實現有關的候選

11、類。Software Engineering14最終確定的類為:分行計算機分行計算機 分行分行 出納站出納站 出納員出納員 分理處分理處 中央計算機中央計算機 自動出納機自動出納機 賬戶賬戶 現金卡現金卡 事務事務 顧客顧客Software Engineering152.準備數據字典 為所有建模實體準備一個數據字典。準為所有建模實體準備一個數據字典。準確描述各個類的精確含義,描述當前問題中確描述各個類的精確含義,描述當前問題中的類的范圍,包括對類的成員、用法方面的的類的范圍,包括對類的成員、用法方面的假設或限制。假設或限制。Software Engineering163.確定關聯兩個或多個類之

12、間的兩個或多個類之間的相互依賴、相互作用相互依賴、相互作用的關的關系就是關聯。系就是關聯。可用各種方式來實現關聯,但在分析模型中應可用各種方式來實現關聯,但在分析模型中應刪除實現的考慮,以便設計時更為靈活。刪除實現的考慮,以便設計時更為靈活。關聯常用關聯常用描述性動詞或動詞詞組描述性動詞或動詞詞組來表示,其中來表示,其中有物理位置的表示、傳導的動作、通信、所有者關有物理位置的表示、傳導的動作、通信、所有者關系、條件的滿足等。系、條件的滿足等。從問題陳述中抽取所有可能的關聯表述,把它從問題陳述中抽取所有可能的關聯表述,把它們記下來,但不要過早去細化這些表述。們記下來,但不要過早去細化這些表述。S

13、oftware Engineering17下面是銀行網絡系統中所有可能的關聯,下面是銀行網絡系統中所有可能的關聯,大多數是直接抽取問題中的動詞詞組而得到大多數是直接抽取問題中的動詞詞組而得到的。的。在陳述中,有些動詞詞組表述的關聯是在陳述中,有些動詞詞組表述的關聯是不明顯的。不明顯的。最后,還有一些關聯與客觀世界或人的最后,還有一些關聯與客觀世界或人的假設有關假設有關,必須同用戶一起核實這種關聯,必須同用戶一起核實這種關聯,因為這種關聯在問題陳述中找不到。因為這種關聯在問題陳述中找不到。Software Engineering18(1)初步確定關聯銀行網絡問題陳述中的關聯:銀行網絡問題陳述中的

14、關聯: 銀行網絡銀行網絡包括包括出納站和自動出納機;出納站和自動出納機; 分行分行共享共享自動出納機;自動出納機; 分理處分理處提供提供分理處計算機;分理處計算機; 分理處計算機分理處計算機保存保存帳戶;帳戶; 分理處計算機分理處計算機處理處理帳戶支付事務;帳戶支付事務; 分理處分理處擁有擁有出納站;出納站; 出納站與分理處計算機出納站與分理處計算機通信通信; 出納員為帳戶出納員為帳戶錄入錄入事務;事務;Software Engineering19 自動出納機自動出納機接受接受現金卡;現金卡; 自動出納機與用戶接口;自動出納機與用戶接口; 自動出納機自動出納機發放發放現金;現金; 自動出納機自

15、動出納機打印打印收據;收據; 系統處理系統處理并發訪問并發訪問; 分理處分理處提供提供軟件;軟件; 費用費用分攤分攤給分理處。給分理處。Software Engineering20隱含的動詞詞組:隱含的動詞詞組: 分行由分理處分行由分理處組成組成; 分理處分理處擁有擁有帳戶;帳戶; 分行分行擁有擁有分行計算機;分行計算機; 系統系統提供提供記錄保管;記錄保管; 系統系統提供提供安全;安全; 顧客顧客有有現金卡。現金卡。Software Engineering21基于問題域知識的關聯:基于問題域知識的關聯: 分理處分理處雇傭雇傭出納員;出納員; 現金卡現金卡訪問訪問帳戶。帳戶。Software

16、Engineering22(2)篩選使用下列標準去掉不必要和不正確的關使用下列標準去掉不必要和不正確的關聯:聯: (1) 若若某個類已被刪除某個類已被刪除,那么與它有關的,那么與它有關的關聯也必須刪除或者用其它類來重新表述。關聯也必須刪除或者用其它類來重新表述。在例中,我們刪除了在例中,我們刪除了“銀行網絡銀行網絡”,相關的,相關的關聯也要刪除。關聯也要刪除。 (2) 與問題不相干的關聯或實現階段的關與問題不相干的關聯或實現階段的關聯聯:刪除所有問題域之外的關聯或涉及實現:刪除所有問題域之外的關聯或涉及實現結構中的關聯。如結構中的關聯。如系統處理并發訪問系統處理并發訪問就是就是一種實現的概念。

17、一種實現的概念。Software Engineering23(3)瞬時事件)瞬時事件(動作動作):關聯應該描述應用域:關聯應該描述應用域的結構性質而不是瞬時事件,因此應刪除的結構性質而不是瞬時事件,因此應刪除“自動出納機接受現金卡自動出納機接受現金卡”,“自動出納機自動出納機與用戶接口與用戶接口”等。等。 (4) 派生關聯:省略那些可以用其他關聯派生關聯:省略那些可以用其他關聯來定義的關聯。因為這種關聯是冗余的。來定義的關聯。因為這種關聯是冗余的。 銀行網絡系統的初步對象圖如圖所示。其銀行網絡系統的初步對象圖如圖所示。其中含有關聯。中含有關聯。Software Engineering24Sof

18、tware Engineering25系統分析的第三步是:確定類屬性屬性是對象的屬性是對象的性質性質,屬性通常用屬性通常用修飾性的修飾性的名詞詞組名詞詞組來表示來表示.只考慮與具體應用直接相關的屬性,不只考慮與具體應用直接相關的屬性,不要考慮那些超出問題范圍的屬性;要考慮那些超出問題范圍的屬性;找出重要屬性,避免那些只用于實現的找出重要屬性,避免那些只用于實現的屬性要為各個屬性取有意義的名字。屬性要為各個屬性取有意義的名字。Software Engineering26按下列標準刪除不必要的和不正確的屬性:(1) 誤把對象當作屬性誤把對象當作屬性:若實體的獨立存在:若實體的獨立存在比它的值重要,

19、那么這個實體不是屬性而是對象。比它的值重要,那么這個實體不是屬性而是對象。如在郵政目錄中,如在郵政目錄中,“城市城市”是一個屬性,然而在人是一個屬性,然而在人口普查中,口普查中,“城市城市”則被看作是對象。在具體應用則被看作是對象。在具體應用中,具有自身性質的實體一定是對象。中,具有自身性質的實體一定是對象。 (2) 把限定誤碼當成屬性把限定誤碼當成屬性:若屬性值取決于:若屬性值取決于某種具體上下文,則可考慮把該屬性重新表述為一某種具體上下文,則可考慮把該屬性重新表述為一個限定詞。如個限定詞。如“賬號賬號”“”“分行代碼分行代碼”(3) 名稱名稱:名稱常常作為限定詞而不是對象:名稱常常作為限定

20、詞而不是對象的屬性,當名稱不依賴于上下文關系時,名稱即為的屬性,當名稱不依賴于上下文關系時,名稱即為一個對象屬性,尤其是它不惟一時。一個對象屬性,尤其是它不惟一時。 Software Engineering27(4) 標識符:在考慮對象模糊性時,引標識符:在考慮對象模糊性時,引入對象標識符表示,在對象模型中不列出這入對象標識符表示,在對象模型中不列出這些對象標識符,它是隱含在對象模型中,只些對象標識符,它是隱含在對象模型中,只列出存在于應用域的屬性。列出存在于應用域的屬性。 (5) 誤把內部狀態當成屬性:若屬性描述誤把內部狀態當成屬性:若屬性描述了對外不透明的對象的內部狀態,則應從對了對外不透

21、明的對象的內部狀態,則應從對象模型中刪除該屬性。象模型中刪除該屬性。 (6) 過于細化:忽略那些不可能對大多數過于細化:忽略那些不可能對大多數操作有影響的屬性。操作有影響的屬性。Software Engineering28Software Engineering29系統分析的第四步是:使用繼承來細化類1 、自底而上自底而上將現有類的共性一般化為父類。找出具將現有類的共性一般化為父類。找出具有相同屬性、關聯、操作的類,來發現繼承。有相同屬性、關聯、操作的類,來發現繼承。例如:例如:“出納事務出納事務”和和“遠程事務遠程事務”,可以,可以將它們的共性一般化,得到父類將它們的共性一般化,得到父類“事

22、務事務”。 Software Engineering30Software Engineering312 、自頂而下自頂而下將現有類細化為更具體的子類。將現有類細化為更具體的子類。如:例如:菜單,可以有固定菜單,頂如:例如:菜單,可以有固定菜單,頂部菜單,彈出菜單,下拉菜單等,這就可以部菜單,彈出菜單,下拉菜單等,這就可以把菜單類具體細化為各種具體菜單的子類。把菜單類具體細化為各種具體菜單的子類。當同一關聯名出現多次且意義也相同時,應當同一關聯名出現多次且意義也相同時,應盡量具體化為相關聯的類,盡量具體化為相關聯的類,例如例如事務事務從從出納站出納站和和自動出納機自動出納機進進入,則入,則錄入站

23、錄入站就是就是出納站出納站和和自動出納站自動出納站的一般化。的一般化。 Software Engineering32系統分析的第五步是: 完善對象模型對象建模不可能一次就能保證模型是完對象建模不可能一次就能保證模型是完全正確的,軟件開發的整個過程就是一個不全正確的,軟件開發的整個過程就是一個不斷完善的過程。斷完善的過程。模型的不同組成部分多半是在不同的階模型的不同組成部分多半是在不同的階段完成的,如果發現模型的缺陷,就必須返段完成的,如果發現模型的缺陷,就必須返回到前期階段去修改,有些細化工作是在動回到前期階段去修改,有些細化工作是在動態模型和功能模型完成之后才開始進行的。態模型和功能模型完成

24、之后才開始進行的。Software Engineering33(1) 幾種可能丟失對象的情況及解決辦幾種可能丟失對象的情況及解決辦法:法: 同一類中存在毫無關系的屬性和操作,則同一類中存在毫無關系的屬性和操作,則分解這個類,使各部分相互關聯;分解這個類,使各部分相互關聯; 一般化體系不清楚,則可能分離扮演兩種一般化體系不清楚,則可能分離扮演兩種角色的類角色的類 存在無目標類的操作,則找出并加上失去存在無目標類的操作,則找出并加上失去目標的類;目標的類; 存在名稱及目的相同的冗余關聯,則通過存在名稱及目的相同的冗余關聯,則通過一般化創建丟失的父類,把關聯組織在一起。一般化創建丟失的父類,把關聯組

25、織在一起。 Software Engineering34(2) 查找多余的類。查找多余的類。 類中缺少屬性,操作和關聯,則可刪除這個類中缺少屬性,操作和關聯,則可刪除這個類。類。 (3)查找丟失的關聯。)查找丟失的關聯。丟失了操作的訪問路徑,則加入新的關聯以丟失了操作的訪問路徑,則加入新的關聯以回答查詢。回答查詢。Software Engineering35Software Engineering36(4) 網絡系統的具體情況作如下的修改:網絡系統的具體情況作如下的修改: 現金卡有多個獨立的特性。把它分解為兩個現金卡有多個獨立的特性。把它分解為兩個對象:對象:卡片權限卡片權限和和現金卡現金卡。

26、 a.卡片權限:它是銀行用來鑒別用戶訪問權限卡片權限:它是銀行用來鑒別用戶訪問權限的卡片,表示一個或多個用戶帳戶的訪問權限;各的卡片,表示一個或多個用戶帳戶的訪問權限;各個卡片權限對象中可能具有好幾個現金卡,每張都個卡片權限對象中可能具有好幾個現金卡,每張都帶有安全碼,卡片碼,它們附在現金卡上,表現銀帶有安全碼,卡片碼,它們附在現金卡上,表現銀行的卡片權限。行的卡片權限。b.現金卡:它是自動出納機得到表示碼的數據現金卡:它是自動出納機得到表示碼的數據卡片,它也是銀行代碼和現金卡代碼的數據載體。卡片,它也是銀行代碼和現金卡代碼的數據載體。Software Engineering37Softwar

27、e Engineering38事務事務不能體現對帳戶之間的傳輸描述不能體現對帳戶之間的傳輸描述的一般性,因它只涉及一個帳戶,一般來說,的一般性,因它只涉及一個帳戶,一般來說,在每個帳戶中,一個在每個帳戶中,一個事務事務包括一個或多個包括一個或多個更新更新,一個,一個更新更新是對帳戶的一個動作,它是對帳戶的一個動作,它們是取款,存款,查詢之一。一個們是取款,存款,查詢之一。一個更新更新中中所有所有更新更新應該是一個原子操作。應該是一個原子操作。 分行分行和和分行處理機分行處理機之間的區別似乎并之間的區別似乎并不影響分析,計算機的通信處理實際上是實不影響分析,計算機的通信處理實際上是實現的概念,將

28、現的概念,將“中央計算機中央計算機”并入并入“總行總行”。同理,將同理,將“分行計算機分行計算機”并入并入“分行分行”。Software Engineering39Software Engineering40系統分析的第六步是:建立動態模型通常動態模型有:事件跟蹤表、狀態圖。通常動態模型有:事件跟蹤表、狀態圖。建立動態模型的步驟分為建立動態模型的步驟分為 4 步:步: 1 、準備典型的對話腳本、準備典型的對話腳本動態分析從尋找事件開始,然后確定各對動態分析從尋找事件開始,然后確定各對象的可能事件順序。在分析階段不考慮算法的象的可能事件順序。在分析階段不考慮算法的執行,算法是實現模型的一部分。執

29、行,算法是實現模型的一部分。Software Engineering41自動出納機與用戶交互的正常情況腳本:自動出納機與用戶交互的正常情況腳本:( 1 )自動出納機請求用戶插入卡片;用戶插入)自動出納機請求用戶插入卡片;用戶插入現金卡。現金卡。 ( 2 )自動出納機接受卡片并讀出它的卡號。)自動出納機接受卡片并讀出它的卡號。 (3) 自動出納機要求密碼,用戶鍵入密碼自動出納機要求密碼,用戶鍵入密碼“ 4011 ”。( 4 )自動出納機與總行確認卡號和密碼;分理)自動出納機與總行確認卡號和密碼;分理處檢查它并通知承兌的自動出納機。處檢查它并通知承兌的自動出納機。 ( 5 )自動出納機要求選擇事務

30、類型(取款、)自動出納機要求選擇事務類型(取款、存款、轉戶及查詢),用戶選擇取款。存款、轉戶及查詢),用戶選擇取款。 Software Engineering42( 6 )自動出納機要求現金數量;用戶輸入¥)自動出納機要求現金數量;用戶輸入¥ 100 。 ( 7 )自動出納機要求分行處理事務;分行把要)自動出納機要求分行處理事務;分行把要求轉給分理處,確認事務成功。求轉給分理處,確認事務成功。 ( 8 )自動出納機分發現金并且要求用戶取現)自動出納機分發現金并且要求用戶取現金;用戶取現金。金;用戶取現金。( 9 )自動出納機提示用戶是否想繼續;用戶指)自動出納機提示用戶是否想繼續;用戶指出不繼

31、續。出不繼續。 ( l0 )自動出納機打印收據,退出卡,并請求)自動出納機打印收據,退出卡,并請求用戶取出它們;用戶拿走收據和卡。用戶取出它們;用戶拿走收據和卡。 ( ll )自動出納機請求用戶插入。)自動出納機請求用戶插入。Software Engineering43自動出納機與用戶交互的異常情況腳本:( 1 )自動出納機請求用戶插入卡;用戶插入現)自動出納機請求用戶插入卡;用戶插入現金卡。金卡。 ( 2 )自動出納機接受卡并讀它的卡號。)自動出納機接受卡并讀它的卡號。 ( 3 )自動出納機要求密碼;用戶鍵入:)自動出納機要求密碼;用戶鍵入: 9999 :。:。 ( 4 )自動出納機與分行確

32、認卡號和密碼,在)自動出納機與分行確認卡號和密碼,在咨詢分理處后拒絕它。咨詢分理處后拒絕它。 ( 5 )自動出納機指示密碼錯并要求重新鍵入;)自動出納機指示密碼錯并要求重新鍵入;用戶鍵入:用戶鍵入: 4011 : ,分行確認成功。,分行確認成功。 Software Engineering44( 6 )自動出納機請求用戶選擇事務類型;)自動出納機請求用戶選擇事務類型;用戶選擇取款。用戶選擇取款。 ( 7 )自動出納機請求鍵入現金數量;用)自動出納機請求鍵入現金數量;用戶改變選擇并鍵入戶改變選擇并鍵入 “ CANCEL , , (取消)。(取消)。 ( 8 )自動出納機退出卡并且請求用戶拿)自動出

33、納機退出卡并且請求用戶拿走卡;用戶取出卡。走卡;用戶取出卡。 ( 9 )自動出納機請求用戶插入卡。)自動出納機請求用戶插入卡。Software Engineering452.確定事件確定事件 確定所有外部事件。事件包括所有來自或確定所有外部事件。事件包括所有來自或發往用戶的信息、外部設備的信號、輸入、發往用戶的信息、外部設備的信號、輸入、轉換和動作,可以發現正常事件,但不能轉換和動作,可以發現正常事件,但不能遺遺漏條件和異常事件漏條件和異常事件。Software Engineering463 、畫出事件跟蹤圖、畫出事件跟蹤圖把腳本表示成一個事件跟蹤圖,即把腳本表示成一個事件跟蹤圖,即不同不同對

34、象之間的事件排序表對象之間的事件排序表,對象為圖中的列,對象為圖中的列,給每個對象分配一個獨立的列。圖給每個對象分配一個獨立的列。圖 6 給出了給出了銀行網絡系統的事件跟蹤圖。銀行網絡系統的事件跟蹤圖。Software Engineering47圖圖 6Software Engineering48圖圖 7 給出了給出了事件流圖事件流圖,它給出類之間的,它給出類之間的所有事件。事件流圖是對象圖的一個所有事件。事件流圖是對象圖的一個動態對動態對照照,對象圖中路徑反映了可能的信息流,而,對象圖中路徑反映了可能的信息流,而事件流圖反映了可能的控制流。事件流圖反映了可能的控制流。Software Eng

35、ineering49Software Engineering50 4.構造狀態圖構造狀態圖 對各對象類建立狀態圖,反映對象接收和對各對象類建立狀態圖,反映對象接收和發送的事件,每個事件跟蹤都對應于狀態圖發送的事件,每個事件跟蹤都對應于狀態圖中一條路徑。中一條路徑。Software Engineering51在銀行網絡系統示例中,自動出納機、出納站、在銀行網絡系統示例中,自動出納機、出納站、分行和分理處對象都是分行和分理處對象都是動作對象動作對象。用來互換事件,。用來互換事件,而現金卡、事務和賬戶都是而現金卡、事務和賬戶都是被動對象被動對象,不交換事件。,不交換事件。顧客和出納員都是動作對象,它

36、們同錄入站的顧客和出納員都是動作對象,它們同錄入站的交互作用已經表示出來了。但顧客和出納員對象都交互作用已經表示出來了。但顧客和出納員對象都是系統外部的因素,不在系統內部實現。是系統外部的因素,不在系統內部實現。圖圖8給出了自動出納機的狀態圖,圖給出了自動出納機的狀態圖,圖 9 給出了給出了“分行分行”類的狀態圖,圖類的狀態圖,圖10給出了給出了“分理處分理處”類的類的狀態圖。狀態圖。Software Engineering52Software Engineering53Software Engineering54Software Engineering55系統分析的第七步是:建立功能模型功能模型用來說明功能模型用來說明數據是如何計算的數據是如何計算的,表明了系統中數據之間的依賴關系及有關的表明了系統中數據之間的依賴關系及有關的數據處理功能。數據處理功能。數據流圖有助于表示功能依賴關系,其數據流圖有助于表示功能依賴關系,其中的中的處理處理應于狀態圖的應于狀態圖的活動和動作活動和動作,其中的,其中

溫馨提示

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

評論

0/150

提交評論