軟件工程第8章_第1頁
軟件工程第8章_第2頁
軟件工程第8章_第3頁
軟件工程第8章_第4頁
軟件工程第8章_第5頁
已閱讀5頁,還剩171頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 面向對象建模l用況建模l靜態(tài)建模l動態(tài)建模l物理體系結構建模l靜態(tài)建模l動態(tài)建模l物理體系結構建模 用況建模是用于描述一個系統(tǒng)應該做什么的建模技術,用況建模不僅用于新系統(tǒng)的需求獲取,還可用于已有系統(tǒng)的升級。用況模型用用況圖來描述 用況圖展示了各類外部執(zhí)行者與系統(tǒng)所提供的用況之間的連接。一個用況是系統(tǒng)所提供的一個功能(也可以說是系統(tǒng)提供的某一特定用法)的描述用況圖:主要用于對系統(tǒng)(子系統(tǒng))的功能行為進行建模。主要概念主要概念系統(tǒng)邊界、參與者、用況、包含、擴展、泛化系統(tǒng)邊界、參與者、用況、包含、擴展、泛化問題的提出:在系統(tǒng)尚未存在時,如何描繪用戶需要一個什么樣的問題的提出:在系統(tǒng)尚未存在時

2、,如何描繪用戶需要一個什么樣的系統(tǒng)?如何規(guī)范地定義用戶需求?系統(tǒng)?如何規(guī)范地定義用戶需求?考慮問題的思路:把系統(tǒng)看作一個黑箱,看它對外部的客觀世界發(fā)考慮問題的思路:把系統(tǒng)看作一個黑箱,看它對外部的客觀世界發(fā)揮什么作用,描述它外部可見的行為。揮什么作用,描述它外部可見的行為。系統(tǒng)是由一條邊界包系統(tǒng)是由一條邊界包圍起來的未知空間圍起來的未知空間只通過有限的接口與只通過有限的接口與外部交互外部交互系統(tǒng)邊界以外是與系系統(tǒng)邊界以外是與系統(tǒng)進行交互的參與者統(tǒng)進行交互的參與者把內外交互情況描把內外交互情況描述清楚,就確切地述清楚,就確切地定義了系統(tǒng)的需求定義了系統(tǒng)的需求l執(zhí)行者是指那些可能使用這些用況的人或

3、外部系統(tǒng),執(zhí)行者與用況的連接表示該執(zhí)行者使用了那個用況l 用況圖給出了用戶所感受到的系統(tǒng)行為,但不描述系統(tǒng)如何實現該功能l 用況通常用普通正文描述,也可以用活動圖來描述收款收款檢查檢查 任何一個涉及到系統(tǒng)功能活動的人都會用到用況模型l客戶:用況模型指明了系統(tǒng)的功能,描述了系統(tǒng)能如何使用。用況建模時客戶的積極參與是十分重要的l開發(fā)者:用況模型幫助他們理解系統(tǒng)要做什么,同時為以后的其他模型建模、結構設計、實現等提供依據l集成測試和系統(tǒng)測試人員:根據用況來測試系統(tǒng),以驗證系統(tǒng)是否完成了用況指定的功能創(chuàng)建用況模型的步驟包括:1定義系統(tǒng)2確定執(zhí)行者3確定用況4描述用況5定義用況間的關系6確認模型用況模型

4、由用況圖組成,用況圖展示了執(zhí)行者、用況以及它們之間的關系。用況通常用正文形式來描述一個用況模型可由若干幅用況圖組成。一幅用況圖包含的模型元素有系統(tǒng)、執(zhí)行者、用況,以及表示它們間的不同關系,如關聯(lián)、擴展、包含、泛化等電話訂購系統(tǒng)用況圖電話訂購系統(tǒng)用況圖客戶客戶售票員售票員送貨員送貨員主管主管r建立建立信用信用供應供應訂單訂單安排安排支付支付提供提供客戶數據客戶數據產生產生訂單訂單信用卡信用卡支付支付現金現金支付支付設置設置訂單訂單請求請求目錄目錄電話訂購電話訂購includeincludeincludeextend核對核對身份身份一. 定義系統(tǒng) 用況圖中的矩形框代表系統(tǒng),系統(tǒng)的用況畫在矩形框內,

5、代表系統(tǒng)之外的執(zhí)行者畫在矩形框外二. 確定執(zhí)行者執(zhí)行者是指與系統(tǒng)交互的人或其他系統(tǒng)執(zhí)行者代表一種角色,而不是具體的某個人 執(zhí)行者可分成主執(zhí)行者和副執(zhí)行者:主執(zhí)行者使用系統(tǒng)的主要功能 例如,保險系統(tǒng)中主執(zhí)行者處理保險的注冊和管理 副執(zhí)行者處理系統(tǒng)的輔助功能 例如,管理數據庫、通信、備份以及其他管理等系統(tǒng)維護執(zhí)行者還可分為主動執(zhí)行者和被動執(zhí)行者:執(zhí)行者還可分為主動執(zhí)行者和被動執(zhí)行者:主動執(zhí)行者開始一個用況被動執(zhí)行者從不開始用況,只是參與一個或多個用況三. 確定用況1. 用況的特征用況總是被執(zhí)行者啟動的(initiated),執(zhí)行者必須直接或間接地指示系統(tǒng)去執(zhí)行用況用況向執(zhí)行者提供值,這些值必須是可

6、識別的用況是完整的,一個用況必須是一個完整的描述 用況是一個類型,而不是實例,用況的實例稱為場景(scenario)2. 尋找用況可以通過讓每個執(zhí)行者回答以下問題來尋找用況:執(zhí)行者需要系統(tǒng)提供哪些功能?執(zhí)行者需要系統(tǒng)做什么?執(zhí)行者是否需要讀、創(chuàng)建、刪除、修改或儲存系統(tǒng)中的某類信息?執(zhí)行者是否要被系統(tǒng)中的事件提醒,或者執(zhí)行者是否要提醒系統(tǒng)中某些事情?從功能觀點看,這些事件表示什么?執(zhí)行者的日常工作是否因為系統(tǒng)的新功能(尤其是目前尚未自動化的功能)而被簡化或提高了效率?另外還有一些不是目前的執(zhí)行者回答的問題:系統(tǒng)需要哪些輸入/輸出?誰從系統(tǒng)獲取信息?誰為系統(tǒng)提供信息?與當前系統(tǒng)(可能是人工系統(tǒng)而不

7、是自動化系統(tǒng))的實現有關的主要問題是什么? 對同一個項目,不同的開發(fā)者選取的用況數是不一樣的。例如一個10個人年規(guī)模的項目,有人選取了20個用況,而在一個類似的項目中,有人選用了100個用況 似乎20個太少,而100個太多,希望在項目規(guī)模和用況數之間保持均衡四. 用況的描述 用況通常用正文(text)來描述,也可用活動圖來描述 用況的正文描述應包括以下內容:l用況的目的:用況的最終目的是什么?它試圖達到什么?l用況是如何啟動(initiate)的:哪個執(zhí)行者在什么情況下啟動用況的執(zhí)行?l執(zhí)行者和用況之間的消息流:用況與執(zhí)行者之間交換什么消息或事件來通知對方改變或恢復信息?描述系統(tǒng)與執(zhí)行者之間的

8、主消息流是什么?以及系統(tǒng)中哪些實體被使用或修改?l用況中可供選擇的流:用況中的活動可根據條件或異常(exception)有選擇地執(zhí)行l(wèi)如何通過給執(zhí)行者一個值來結束用況:描述何時可認為用況已結束l執(zhí)行者的簡要描述 如客戶:向公司訂購商品的人客戶代表:公司處理客戶請求的雇員庫存系統(tǒng):記錄公司庫存的軟件l用況的簡要描述如訂購貨物:客戶創(chuàng)建一個新的請求商品的訂單并為那些商品付費取消訂單:客戶取消一個已經存在的訂單l 用況的詳細描述前置條件和后置條件前置條件和后置條件表示用況開始和結束的條件事件流(flow of events)事件流是一系列陳述句,它是從執(zhí)行者的角度看,列出用況的各個步驟用況描述中可以

9、包含條件、分支和循環(huán)例如:訂購貨物用況的描述如下用況名稱:訂購貨物參與的執(zhí)行者:客戶、客戶代表前置條件:一個合法的客戶已經登錄到這個系統(tǒng)事件流:1.當客戶選擇訂購貨物時,用況開始2.客戶輸入他的姓名和地址3.如果客戶只輸入郵編,系統(tǒng)將給出州和城市名4.當客戶輸入產品代碼a. 系統(tǒng)給出產品描述和價格b. 系統(tǒng)往客戶訂單中添加該物品的價格 循環(huán)結束5. 客戶輸入信用卡支付信息6. 客戶選擇提交7. 系統(tǒng)檢驗輸入的信息,把該訂單作為未完成的交易保存,同時向記賬系統(tǒng)轉發(fā)支付信息。如果客戶提交的信息不正確,系統(tǒng)將提示客戶修改。8. 當支付確認后,訂單就被標記上已經確認,同時返回給客戶一個訂單ID,用況也

10、就結束了。如果支付沒有被確認,系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到第5步;如果選擇取消,用況結束。后置條件:如果訂單沒有被取消,它將保存在系統(tǒng)中,并做上標記其他需求在用況中還可描述一些特殊的需求,這些需求常常是非功能性需求,如可用性、安全性、可維護性、負載、性能、自動防故障、數據需求等。如訂購貨物用況的其他需求:前置條件:(略)事件流: (略)特殊需求: 系統(tǒng)必須在一秒內響應客戶的輸入后置條件: (略)l事件流可分為兩部分:基本路徑 基本路徑是運轉正常時的路徑,是一系列沒有分支和選擇的簡單陳述句可選路徑 可選路徑是指不同于基本路徑而允許不同的事件序列的路徑。 對于明

11、顯有可能隨時發(fā)生的事情來說,可選路徑非常有效。如訂購貨物用況的基本路徑:如訂購貨物用況的基本路徑:事件流:基本路徑1.當客戶選擇訂購貨物時,用況開始2.客戶輸入他的姓名和地址3.當客戶輸入產品代碼時a. 系統(tǒng)給出產品描述和價格b. 系統(tǒng)往客戶訂單中添加該物品的價格 循環(huán)結束4. 客戶輸入信用卡支付信息5. 客戶選擇提交6. 系統(tǒng)檢驗輸入的信息,把該訂單作為未完成的交易保存,同時向記賬系統(tǒng)轉發(fā)支付信息7. 當支付確認后,訂單就被標記上已經確認,同時返回給客戶一個訂單ID,用況結束 如果在訂購貨物用況中,客戶可以在提交訂單前隨時取消訂單,其可選路徑如下:可選路徑:l在選擇提交前的任何時候,客戶都可

12、以選擇cancel。這次訂購沒有被保存,用況結束。l在基本路徑第6步,如果有任何不正確的信息,系統(tǒng)提示客戶去修改這些信息。l在基本路徑第7步,如果支付沒有被確認,系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到基本路徑第4步;如果選擇取消,用況結束。五. 確定用況之間的關系關系說明記號關聯(lián)執(zhí)行者與他所參與的一個用況之間的通信路徑 擴展擴展的用況到基本用況的一種關系,它指出擴展的用況所定義的行為如何插入到基本用況所定義的行為中。擴展的用況通過模塊化方式增量地修改基本用況 extend關系說明記號包含從基本用況到另一個用況(稱為包含用況,inclusion use case)的一種

13、關系,它指出包含用況定義的行為被包含在基本用況所定義的行為中?;居脹r能看到包含用況,并依賴于執(zhí)行包含用況后的結果,但兩者相互間不能訪問其他屬性 用況泛化一個一般用況與一個更特殊的用況之間的關系,特殊用況可繼承一般用況的特征 include處理取款單處理取款單業(yè)務員輸入處理取款命令業(yè)務員輸入處理取款命令Include 檢查口令檢查口令收集客戶的取款單上的信息;收集客戶的取款單上的信息;加急(擴展點)加急(擴展點)如果客戶選擇了加急如果客戶選擇了加急 extend 處理加急取款單處理加急取款單六. 確認模型對用況模型進行評審,以確認該模型是用戶所需的l確定確定系統(tǒng)環(huán)境中的所有角色,并都歸入了相應

14、的參系統(tǒng)環(huán)境中的所有角色,并都歸入了相應的參與者。與者。l每個每個參與者都至少和一個用況關聯(lián);參與者都至少和一個用況關聯(lián);l若若一個參與者是另一個參與者的一部分,或扮演了一個參與者是另一個參與者的一部分,或扮演了類似的角色,考慮在它們之間使用泛化關系類似的角色,考慮在它們之間使用泛化關系;l每個每個用況都至少和一個參與者相關;用況都至少和一個參與者相關;l若若兩個用況有相同或相似的序列,可能需要合兩個用況有相同或相似的序列,可能需要合并它們,或抽取出一個新用況,在它們之間使并它們,或抽取出一個新用況,在它們之間使用包含、擴展或泛化關系。用包含、擴展或泛化關系。l若若用況過于復雜,為了易于理解,

15、考慮進行分用況過于復雜,為了易于理解,考慮進行分解;解;若一個用況中有完全不同的事件流,最好若一個用況中有完全不同的事件流,最好把它分解成不同的用況把它分解成不同的用況 例題 很多軟件系統(tǒng)在一開始都需要登錄,若用戶登錄成功,則可進入系統(tǒng)。 如下以一個研究生學籍管理系統(tǒng)為例,描述四種登錄方法。 為了簡化起見,假設此處僅描述登錄、選課和查看學分這3項功能。 方案一:方案一: 由于選課和查看學分都需要登錄,故專門設立一個由于選課和查看學分都需要登錄,故專門設立一個“登錄登錄”用況。若登錄成功,則可以進行選課,也可以進行查看學分。用況。若登錄成功,則可以進行選課,也可以進行查看學分。 登錄登錄查看學分

16、查看學分選課選課includeinclude研究生研究生該方法的缺點是,必須要了解該方法的缺點是,必須要了解系統(tǒng)的所有其它模塊,才能描述系統(tǒng)的所有其它模塊,才能描述清楚清楚“登錄登錄”用況。向系統(tǒng)增加用況。向系統(tǒng)增加新用況時,也要修改登錄用況。新用況時,也要修改登錄用況。此外,從維護的角度看,有時會此外,從維護的角度看,有時會忘記對忘記對“登錄登錄”用況進行修改。用況進行修改。 研究生啟動系統(tǒng);研究生啟動系統(tǒng); 系統(tǒng)提示研究生輸入研究生證號和密碼;系統(tǒng)提示研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼; 系統(tǒng)進行驗證,給出驗證信息;系統(tǒng)進行驗證,給出驗證信息

17、;若通過,若該生選擇選課若通過,若該生選擇選課 系統(tǒng)執(zhí)行用況系統(tǒng)執(zhí)行用況“選課選課”;若通過,若該生選擇查看學分若通過,若該生選擇查看學分 系統(tǒng)執(zhí)行用況系統(tǒng)執(zhí)行用況“查看學分查看學分”; 如下為對用況如下為對用況“登錄登錄”的描述:的描述:方案二方案二: 讓所有的相關用況都包含登錄用況。讓所有的相關用況都包含登錄用況。 登錄登錄查看學分查看學分選課選課includeinclude研究生研究生如下為對用況如下為對用況“選課選課”的描述:的描述: 研究生啟動系統(tǒng),調用用況研究生啟動系統(tǒng),調用用況“登錄登錄” 若通過,系統(tǒng)執(zhí)行用況若通過,系統(tǒng)執(zhí)行用況“選課選課”的其余部分的其余部分;這個方法中的這個

18、方法中的“登錄登錄”用況僅描述有關登錄的用況僅描述有關登錄的信息,研究生執(zhí)行系統(tǒng)信息,研究生執(zhí)行系統(tǒng)的每項功能都要先登錄。的每項功能都要先登錄。其缺點為,對研究生要其缺點為,對研究生要進行多次驗證。進行多次驗證。 研究生啟動系統(tǒng),調用用況研究生啟動系統(tǒng),調用用況“登錄登錄” 若通過,系統(tǒng)執(zhí)行用況若通過,系統(tǒng)執(zhí)行用況“查看學分查看學分”的其余的其余部分;部分;如下為對用況如下為對用況“查看學分查看學分”的描述:的描述: 方案三:方案三: 使用擴展,設計系統(tǒng)登錄。使用擴展,設計系統(tǒng)登錄。 登錄登錄擴展點:擴展點:選課:選擇選課選課:選擇選課查看學分:選擇查看學分查看學分:選擇查看學分查看學分查看學

19、分選課選課extendextend研究生研究生如下為對用況如下為對用況“登錄登錄”的描述的描述 研究生啟動系統(tǒng);研究生啟動系統(tǒng); 系統(tǒng)提示研究生輸入研究生證號和密碼;系統(tǒng)提示研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼; 系統(tǒng)進行驗證,給出驗證信息;系統(tǒng)進行驗證,給出驗證信息;若通過,若該生選擇選課若通過,若該生選擇選課 系統(tǒng)在擴展點系統(tǒng)在擴展點”選課選課”處執(zhí)行用況處執(zhí)行用況“選課選課”;若通過,若該生選擇查看學分若通過,若該生選擇查看學分 系統(tǒng)在擴展點系統(tǒng)在擴展點”查看學分查看學分”處執(zhí)行用況處執(zhí)行用況“查看學分查看學分”;該方法與方法一相比,該方法與

20、方法一相比,對對“登錄登錄”用況的描用況的描述要清楚一些。在增述要清楚一些。在增加新用況時,僅在登加新用況時,僅在登錄用況中添加擴展點錄用況中添加擴展點即可。即可。 方案四:方案四: 登錄用況完全獨立于其它用況登錄用況完全獨立于其它用況 登錄登錄查看學分查看學分選課選課研究生研究生如下為對用況如下為對用況“登錄登錄”的描述:的描述: 研究生啟動系統(tǒng);研究生啟動系統(tǒng); 系統(tǒng)提示研究生輸入研究生證號和密碼;系統(tǒng)提示研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼;研究生輸入研究生證號和密碼; 系統(tǒng)進行驗證,給出驗證信息;系統(tǒng)進行驗證,給出驗證信息;如下為對用況如下為對用況“選課選課”的開始部

21、分的描述的開始部分的描述 若研究生通過了登錄且選擇了選課,若研究生通過了登錄且選擇了選課, 系統(tǒng)開始執(zhí)行用況系統(tǒng)開始執(zhí)行用況“選課選課”;若使用該方法,必若使用該方法,必須要在須要在“選課選課”用用況和況和“查看學分查看學分”用況中指定前置條用況中指定前置條件:只有在登錄成件:只有在登錄成功后才能執(zhí)行自己。功后才能執(zhí)行自己。 客戶通過相應的網址訪問網上購物系統(tǒng),進入系統(tǒng)后,客戶即可通過多級分類目錄逐級瀏覽商品的名稱、規(guī)格、單價、圖片等信息,直至閱瀏覽某個商品的詳細技術指標。瀏覽過程中,客戶可隨時將需要的商品放到購物車內,系統(tǒng)可顯示購物車內已選購的商品、單價、數量及價格,客戶還可隨時刪去購物車內

22、尚未結賬的任何商品。當客戶選擇好所需的商品后,可要求結賬,此時,系統(tǒng)首先要求客戶注冊/登錄(對新客戶需先注冊,填寫客戶信息,然后登錄;對老客戶只需通過用戶名和密碼直接進行登錄即可),然后根據購物車中所選的商品形成初始的訂單,同時選擇支付方式,填寫相關的派送信息,如送貨地址、建議的送貨時間段等,此時即可提交訂單,系統(tǒng)向客戶返回一個訂單號。系統(tǒng)提供網上在線支付和貨到現金支付兩種支付方式。網上在線支付方式由專門的網上支付系統(tǒng)實現在線支付,需根據網上支付系統(tǒng)的要求填寫相關的賬戶信息,如賬號、密碼等,并進行扣款,網上在線支付的結果或者是付款成功,或者是付款失敗。貨到現金支付方式由送貨員在送達商品時向客戶

23、收取現金??蛻暨€可通過訂單號查詢自己訂單的當前狀態(tài),如已提交未付款、已發(fā)貨已付款等,并允許取消尚未發(fā)貨的訂單。系統(tǒng)業(yè)務員將客戶提交的訂單交由物流系統(tǒng)或快遞公司向客戶發(fā)貨,又稱派送,物流系統(tǒng)或快遞公司送達商品后對未付款的客戶收款,并將客戶簽收單返回給系統(tǒng)業(yè)務員,系統(tǒng)業(yè)務員負責更新訂單的狀態(tài),以便跟蹤和了解訂單的執(zhí)行情況。本案例作了簡化,假定:l客戶所訂的商品不存在缺貨的情況l物流系統(tǒng)或快遞公司向客戶送貨、收款(只對未付款的客戶),以及向系統(tǒng)業(yè)務員返回客戶簽收單都不屬于本案例的網上購物系統(tǒng)l不能取消已發(fā)貨的訂單l本案例中不包括對商品信息、客戶信息的創(chuàng)建和維護l本案例中不考慮客戶拒收的情況l假定系統(tǒng)

24、業(yè)務員不能取消客戶的訂單l假定在提交訂單時只確定了支付方式,并未實際付款。在提交訂單后,當客戶選擇網上付款操作時才由系統(tǒng)鏈接相關的網上支付系統(tǒng)實現真正的支付1. 識別執(zhí)行者l使用網上購物系統(tǒng)的人l客戶客戶l系統(tǒng)業(yè)務員系統(tǒng)業(yè)務員l與網上購物系統(tǒng)交互的其他外部系統(tǒng)l實現網上在線支付功能的網上支付系統(tǒng)實現網上在線支付功能的網上支付系統(tǒng)l創(chuàng)建和維護客戶信息的客戶信息管理系統(tǒng)創(chuàng)建和維護客戶信息的客戶信息管理系統(tǒng)l創(chuàng)建和維護商品信息的商品信息管理系統(tǒng)創(chuàng)建和維護商品信息的商品信息管理系統(tǒng)網上購物系統(tǒng)的執(zhí)行者及其簡要描述:l客戶:使用該系統(tǒng)在網上購物的人l系統(tǒng)業(yè)務員:完成訂單狀態(tài)更新的人l網上支付系統(tǒng):實現網

25、上在線支付的軟件系統(tǒng)l客戶信息管理系統(tǒng):創(chuàng)建和維護客戶信息的軟件系統(tǒng)l商品信息管理系統(tǒng):創(chuàng)建和維護商品信息的軟件系統(tǒng)2. 識別用況l客戶使用網上購物系統(tǒng)的功能:l商品信息瀏覽l網上在線訂購l訂單查詢l注冊/登錄l支付l系統(tǒng)業(yè)務員使用系統(tǒng)的功能:l訂單狀態(tài)更新進一步的說明:l由于注冊/登錄具有相對獨立性,又可以被多個用況引用,因此,將其作為一個獨立的用況l客戶訂購過程中會多次在購物車中添加商品、刪除商品、顯示購物車內的商品,可以將其合并成一個購物車管理的用況l由于商品信息有不同的詳細程度,可以有多種多級分類目錄的瀏覽方案,商品信息瀏覽功能相對獨立,因此將其作為一個用況,稱為商品信息瀏覽l網上在線

26、訂購是網上購物系統(tǒng)的主要功能,顯然是一個用況。由于選購商品時都需要瀏覽商品信息,并在購物車中添加、刪除商品,所以網上在線訂購用況包含了購物車管理用況和商品信息瀏覽用況l本案例中有網上在線支付和貨到現金支付兩種支付方式,通??梢詷俗R出支付、網上在線支付和貨到現金支付個用況,后個用況都繼承支付用況。考慮到本案例對貨到現金支付方式的處理比較簡單,可以取消“貨到現金支付”用況,此時,將上述個用況簡化成個主要實現網上在線支付的用況“支付”l本案例的訂單管理只包括訂單查詢、訂單狀態(tài)更新、取消訂單等簡單功能,可將其合并成一個用況,稱為訂單管理。如果訂單管理還包括其他更多的功能,也可將其拆分成幾個用況l由于選

27、擇支付方式和填寫送貨信息都比較簡單,不作為獨立的用況網上購物系統(tǒng)的用況及其簡要描述如下。l注冊/登錄:對新客戶需先注冊,即填寫客戶信息,然后進行登錄;對老客戶或系統(tǒng)業(yè)務員需登錄,即輸入用戶名和密碼,并經校驗合格即可l網上在線訂購:在線訂購商品,包括商品瀏覽、購物車管理、選擇支付方式、填寫送貨信息等l商品信息瀏覽:顯示商品信息l購物車管理:在購物車中添加商品、刪除商品、顯示購物車內的商品l支付:分為網上在線支付和貨到現金支付,在采用網上在線支付時,調用網上支付系統(tǒng),輸入且確認賬戶信息,并進行扣款,網上支付系統(tǒng)返回付款成功或付款失敗信息,供系統(tǒng)下一步決策使用l訂單管理:訂單查詢、訂單狀態(tài)更新、取消

28、訂單等用況之間的關系l客戶只能查詢或取消自己的訂單,所以客戶在查詢或取消訂單前必須先登錄,以確定其身份l修改訂單狀態(tài)應該由授權的系統(tǒng)業(yè)務員進行操作,所以,系統(tǒng)業(yè)務員也必須登錄后才可修改訂單狀態(tài)l網上在線訂購在要求結賬時,需注冊/登錄l網上在線訂購用況和訂單管理用況都使用了注冊/登錄用況l由進一步說明得知“網上在線訂購用況包含了購物車管理用況和商品信息瀏覽用況”網上購物系統(tǒng)用況圖網上購物系統(tǒng)網上購物系統(tǒng)支付支付網上網上支付系統(tǒng)支付系統(tǒng)商品信息瀏商品信息瀏覽覽網上網上在線訂購在線訂購 購物車購物車管理管理includeinclude商品信息管理商品信息管理系統(tǒng)系統(tǒng)系統(tǒng)業(yè)務員系統(tǒng)業(yè)務員客戶信息客戶信

29、息管理系統(tǒng)管理系統(tǒng)注冊注冊/登錄登錄訂單管理訂單管理客戶客戶includeinclude用況的描述 網上在線訂購用況的描述用況名稱:網上在線訂購參與的執(zhí)行者:客戶前置條件:一個客戶已進入網上購物系統(tǒng)事件流:基本路徑1.當客戶進入網上購物系統(tǒng)時,用況開始2 顯示商品目錄3.以任意次數和合理的次序重復如下事件流,直至出現結賬事件流a. 瀏覽商品信息b. 訂購商品b.1將商品和數量添加到購物車b.2顯示購物車中每個商品的名稱、型號、數量、單價、金額,以及總價c.刪除商品c.1刪除購物車中的商品c.2顯示購物車中每個商品的名稱、型號、數量、單價、金額,以及總價d. 顯示購物車中的商品 循環(huán)結束4. 結

30、賬5. 注冊/登錄6. 根據購物車中已選的商品,創(chuàng)建訂單7. 設置支付方式8. 填寫派送信息9. 提交訂單或退出a. 提交訂單,同時返回給客戶一個訂單ID,用況結束b. 退出訂購,訂單未被保存,用況結束可選路徑:在選擇提交訂單前的任何時候,客戶都可以退出系統(tǒng),這次訂購沒有被保存,用況結束。后置條件:如果訂單提交成功,訂單將保存在系統(tǒng)中,并標記為已提交未付款狀態(tài) 說明l客戶進入網上購物系統(tǒng)時,默認系統(tǒng)自動為客戶提供了一輛購物車l第3步表示客戶可以以合理的次序和次數重復執(zhí)行瀏覽、添加、刪除、顯示商品等操作,其中,第3.a步指未細化的“商品信息瀏覽”用況,第3.b、3.c、3.d步是對“購物車管理”

31、用況的描述l當客戶選擇了結賬,首先進行注冊登錄,登錄成功后系統(tǒng)自動根據購物車的內容生成初始的訂單,然后,客戶選擇支付方式,填寫派送信息等。最后提交訂單,系統(tǒng)返回一個訂單號,并結束用況l客戶也可通過退出網上購物來結束用況,此時,訂單不被保存 訂單管理用況的活動圖描述l客戶成功登陸后系統(tǒng)自動顯示該客戶的訂單列表l客戶可選擇列表中的訂單號,查看該訂單的信息和執(zhí)行狀態(tài)l客戶在查看某訂單的信息和狀態(tài)后,執(zhí)行取消該訂單的操作。本案例規(guī)定只能取消未發(fā)貨的訂單,對已付款的訂單,還應給予退款。為避免客戶誤操作,通常在處理取消訂單操作時應提醒客戶確認,本活動圖中省略了確認步驟。l系統(tǒng)業(yè)務員成功登陸后可以由系統(tǒng)自動

32、顯示所有的訂單列表,然后選擇列表中的訂單號,查看該訂單的信息并修改其狀態(tài)l系統(tǒng)業(yè)務員也可以輸入需查詢或修改狀態(tài)的訂單的號碼,如果訂單庫中存在與該訂單號匹配的訂單,則認為是有效訂單號,允許進行查詢或修改狀態(tài)操作。本活動圖給出的是后一種處理方式。 訂單管理用況的活動圖退出系統(tǒng)業(yè)務員統(tǒng)支付輸入訂單號失敗顯示訂單列表成功客戶登錄繼續(xù)取消訂單未發(fā)貨已發(fā)貨退款置訂單狀態(tài)為已取消已付款未付款退出繼續(xù)置訂單狀態(tài)為新狀態(tài)無效訂單號報錯有效訂單號顯示訂單狀態(tài)查詢訂單繼續(xù)修改訂單狀態(tài)顯示訂單狀態(tài)退出l用況建模l動態(tài)建模l物理體系結構建模 類和對象模型的基本模型元素有類、對象以及它們之間的關系。系統(tǒng)中的類和對象模型描

33、述了系統(tǒng)的靜態(tài)結構,在UML中用類圖和對象圖來表示類圖由系統(tǒng)中使用的類以及它們之間的關系組成。類之間的關系有關聯(lián)、依賴、泛化、實現等。類圖是一種靜態(tài)模型,它是其他圖的基礎。一個系統(tǒng)可以有多張類圖,一個類也可出現在幾張類圖中對象圖是類圖的一個實例,它描述某一時刻類圖中類的特定實例以及這些實例之間的特定鏈接。對象圖使用了與類圖相同的符號,只是在對象名下附加下劃線,對象名后可接以冒號和類名,即 object-name:class-name 對象名對象名 :類名:類名屬性名屬性名 = 值值操作操作類名類名屬性名屬性名 :類型:類型操作操作聚集聚集組合組合關聯(lián)關聯(lián)泛化泛化依賴依賴實現實現實例實例Tria

34、nglePoint13(a)point1:Pointx=0.0y=1.0point2:Pointx=3.0y=1.0point3:Pointx=3.0y=5.0triangle:TrianglePartOfPartOfPartOf(b)關 系功能 符號關聯(lián)類實例間連接的描述 依賴二個模型元素之間的一種關系 泛化更特殊描述與更一般描述之間的一種關系,用于繼承和多態(tài)性類型聲明 實現規(guī)約(specification)與它的實現之間的關系 1. 關聯(lián)關聯(lián)描述了系統(tǒng)中對象之間或其他實例之間的連接。關聯(lián)的種類主要有二元關聯(lián),多元關聯(lián),受限關聯(lián),聚集(aggregation)和組合(composition)

35、(1)二元關聯(lián) 二元關聯(lián)表示為在兩個類之間用一條直線連接,直線上可寫上關聯(lián)名有首都有首都國家國家城市城市工作于工作于公公 司司員員 工工雇傭雇傭關聯(lián)通常是雙向的關聯(lián)通常是雙向的關聯(lián)的兩端可加上重數(multiplicity) ,表示該類有多少個對象可與對方的一個對象關聯(lián) 駕駛駕駛人人轎車轎車駕駛員駕駛員公車公車工作于工作于公公 司司員員 工工雇傭雇傭* 1工作于工作于公公 司司員員 工工雇傭雇傭* *關聯(lián)的兩端還可加上角色名(關聯(lián)的兩端還可加上角色名(role)允許一個類與自身關聯(lián)允許一個類與自身關聯(lián) * 雇傭雇傭 *工作于工作于工人工人1.*老板老板0.1管理管理公公 司司員員 工工雇傭關聯(lián)

36、的鏈雇傭關聯(lián)的鏈公司公司A 張三張三公司公司B 李四李四公司公司A 王五王五公司公司C 張三張三鏈是關聯(lián)的實例鏈是關聯(lián)的實例一個類的對象在不同的關聯(lián)中扮演不同的角色一個類的對象在不同的關聯(lián)中扮演不同的角色保險公司保險公司人人保險合同保險合同保險單保險單0.11表示為表示為表達表達0.*1有有涉及涉及婚姻婚姻丈夫丈夫妻子妻子0.*1.*涉及涉及有有保險客戶保險客戶(2)多元關聯(lián) 三個或三個以上的類之間可以互相關聯(lián) 項目項目程序語言程序語言程序員程序員CAD程序 : 項目C : 語言記賬系統(tǒng) : 項目COBOL : 語言張三 : 開發(fā)人員三元關聯(lián)對象圖(3)受限關聯(lián)(qualified assoc

37、iation):受限關聯(lián)用于一對多或多對多的關聯(lián)。限定符(qualifier)用來區(qū)分關聯(lián)“多”端的對象集合,它指明了在關聯(lián)“多”端的某個特殊對象 目錄目錄文件文件0.*ordered有序關聯(lián)有序關聯(lián)目錄目錄文件文件文件名文件名受限關聯(lián)受限關聯(lián)(4) 聚集和組合 聚集(aggregation)是表示整體-部分關系的一種關聯(lián),它的“部分”對象可以是任意“整體”對象的一部分 聚集聚集成員成員* * 組組個人個人組合(composition):組合是一種更強形式的關聯(lián),代表整體的組合對象有管理它的部分對象的特有責任,如部分對象的分配和解除分配。組合關聯(lián)具有強的物主身份,即“整體”對象擁有“部分”對象

38、,“部分”對象生存在“整體”對象中 *窗口窗口正文正文對話框對話框按鈕按鈕菜單菜單 * * *(5)關聯(lián)類 :UML中可以把關聯(lián)定義成類,該關聯(lián)的每個鏈都是這個類的實例 關聯(lián)類關聯(lián)類用戶用戶工作站工作站授權授權 優(yōu)先級優(yōu)先級特權特權 開始一個時間片開始一個時間片* 授權授權 *(6)導航性(navigability) 選課選課 學生學生課程課程(a a)課程到學生的導航)課程到學生的導航 選課選課 學生學生課程課程(c c)學生與課程間的雙向導航)學生與課程間的雙向導航 選課選課 學生學生課程課程(b b)學生到課程的導航)學生到課程的導航導航性符號 明確的含義隱含的含義未指明雙向可導航右邊可

39、導航左邊未指明只有右邊可導航只有右邊可導航只有右邊可導航右邊未指明左邊不可導航只有右邊可導航雙向可導航雙向可導航雙向不可導航雙向不可導航 2. 泛化泛化指出類間的“一般特殊關系” (is-a)一般類定義了它的特殊類的公共屬性和操作對一般類擴展一些屬性和/或操作后,可以特化(specialize)成特殊類一般類是特殊類的父類,特殊類是一般類的子類特殊類可以繼承一般類的屬性和操作子類可以定義自己的屬性和操作,也可重新定義父類中的操作,但重新定義的操作必須與父類具有相同的操作特征(signature)泛化和繼承泛化和繼承顯示顯示計算面積計算面積四邊形四邊形顯示顯示六邊形六邊形顯示顯示三角形三角形多邊

40、形多邊形顯示顯示邊數邊數頂角座標頂角座標長長寬寬矩形矩形計算面積計算面積泛化是一種分類學關系,一個一般類可以從不同的維或方面將其特化(specialization)成不同的特殊類集合,用一個類元(用作分類符)來表示一個維或方 面 , 代 表 一 個 維 度 的 一 組 泛 化 稱 為 泛 化 集(generalization set)。在泛化集中可對其元素應用約束,在UML中提供以下約束,見下表泛化集的約束符號含義Disjoint(不相交)泛化集中的類元是互斥的Overlapping(交迭)泛化集中的類元不是互斥的Complete(完全的)泛化集中的類元完全覆蓋特化的維Incomplete(不

41、完全的)泛化集中的類元不完全覆蓋特化的維泛化集的約束泛化集的約束醫(yī)生醫(yī)生人人男人男人工人工人女人女人教師教師overlapping,incompletedisjoint,complete:職業(yè):職業(yè):職業(yè):職業(yè):職業(yè):職業(yè):性別:性別:性別:性別3. 實現:實現關系將一個模型元素(如類)連接到另一個模型元素(如接口),后者(如接口)是行為的規(guī)約(specification),前者(如類)必須至少支持(通過繼承或直接聲明)后者的所有操作??梢哉J為前者是后者的實現泛化和實現都可以將一般描述與具體描述聯(lián)系起來。其區(qū)別是,泛化是同一語義層上的元素之間的連接,通常在同一模型內;而實現是不同語義層中的元素

42、之間的連接,它通常建立在不同的模型內,如設計類到分析類是一種實現關系實現關系實現關系interfacechoiceBlocksetDefault(choice:Choice)getChoice()():ChoiceRadioButtonArraysetDefault(choice:Button)getChoice()():ButtonPopUpMenusetDefault(choice:String )getChoice()(): StringButtonChoiceString1.*1.*1.*choicechoicechoice4. 依賴:依賴指出兩個或多個模型元素之間語義上的關系。它表示

43、被依賴元素的變化會要求或指示依賴元素的改變 依賴關系用一個虛線箭頭表示,箭頭上可附加含關鍵字的版型,關鍵字用來指明依賴的種類。在UML20中的依賴種類如下:Access(訪問), bind(綁定), call(調用), create(創(chuàng)建), derive(派生), instantiate(實例化), permit(允許), realize(實現), refine(精化), send(發(fā)送), substitute(替換), trace(追蹤依賴), use(使用)Scheduling Engine依賴關系依賴關系Box Officeuse5. 約束和派生(constraint & d

44、erivation)約束是用自然語言或特定的形式語言正文表示的語義條件或限制,它用“正文字符串”形式表示。約束可以附加到任何模型元素上,如前面有關泛化的約束有:不相交、交迭、完全的、不完全的* * *保險保險公司公司人人公司公司保險保險合同合同xor* * *保險保險公司公司人人公司公司保險保險合同合同目錄目錄文件文件 0.*ordered1.* 成員成員 1 1 黨派領袖黨派領袖 1subset政治家政治家黨派黨派關聯(lián)的約束關系關聯(lián)的約束關系self.employer=self.boss.employer 0.1工人工人*老板老板0.1公公 司司員員 工工 *雇員雇員雇主雇主 Cost-pr

45、iceSales-price/profitArticleprofit = Sales-price - Cost-price Invoice + amount : Real+ date : Date = Current date+ customer : String+ specification : String- administrator : String=“unspecified”- maxCount : Integer=0- numberOfInvoices : Integer+ status : Status = unpaid unpaid, paid關聯(lián)也可以被派生或約束1 * pe

46、rson.employer=person.department.employer *1employeremployerdepartmentworksForDepartment/worksForCompany1*公司公司部門部門人人模板是一個參數化的模型元素,使用它時參數必須在建模時綁定到實際值。模板的同義詞是參數化元素。模板類不是一個直接可用的類,因為它有未綁定的參數,必須將它的參數綁定到實際值,以生成實際的類bindArrayelement:TnT,n:integerExpression=2Arrayelement:TnT,n:integerExpression=2ArraycolorArr

47、ay模板模板(a)(c)(b)一個模板類可以是一個一般類的子類,這意味著由綁定該模板而形成的所有類都是給定類(一般類)的子類作為子類的模板作為子類的模板在使用模板生成實際類時,還可在綁定的類中附加特征(feature)TopTenListArrayelement:TnT,n:integerExpression=2show:Datehost:person 對綁定的類添加屬性對綁定的類添加屬性 bind靜態(tài)建模實例1. 標識候選對象l外部實體:客戶,系統(tǒng)業(yè)務員,網上購物系統(tǒng),物流系統(tǒng),網上支付系統(tǒng),客戶信息管理系統(tǒng),商品信息管理系統(tǒng)l需要存儲、處理的信息:商品的名稱、規(guī)格、單價,購物車中的物件,訂

48、單的訂單項(即選購的商品)、支付信息、送貨信息。由此可導出候選對象是商品,購物車,訂單2. 篩選候選對象l物流系統(tǒng):未出現在用況圖中,刪除l網上支付系統(tǒng):僅作為外部執(zhí)行者完成網上在線支付功能,刪除l客戶信息管理系統(tǒng)和商品信息管理系統(tǒng):只是作為外部執(zhí)行者參與創(chuàng)建和維護客戶信息和商品信息,本案例并不關心這些外部系統(tǒng)的具體細節(jié),刪除l系統(tǒng)業(yè)務員:在本案例中主要作為修改訂單狀態(tài)的輸入者,其自身沒有屬性,刪除l網上購物系統(tǒng):代表本案例的完整系統(tǒng),所有信息的顯示、操作界面等都由網上購物系統(tǒng)來展示,保留,稱為“網上商城”l客戶、商品、購物車、訂單:有明確的屬性和操作,保留l考慮到一份訂單可以由多個訂單項組成

49、,一輛購物車可以放多件物品,因此增加訂單項和物件兩個對象 3. 標識屬性和操作類名 網上商城客戶購物車屬性客戶名密碼通信地址電子郵箱電話 物件 /總金額 操作 注冊/登錄退出商城瀏覽商品顯示商城首頁顯示客戶添加商品刪除商品顯示購物車結賬 類名訂單商品訂單項物件屬性訂單號訂單時間客戶名訂單項 /總金額送貨地址電話執(zhí)行狀態(tài) 貨號名稱單價型號規(guī)格產地 商品名稱型號單價數量/金額商品名稱型號單價數量/金額操作設置支付方式設置訂單狀態(tài)填寫派送信息顯示訂單取消訂單提交訂單退出訂購 顯示商品查詢貨號顯示訂單項顯示物件4.確定類之間的關系l網上商城擁有多件商品和購物車,并能從網上商城查到所有的商品信息l任意多

50、個客戶可以到網上商城訂購商品,網上商城能查到所有的注冊客戶信息l一個客戶可以擁有多份訂單,客戶可以查看自己的全部未到貨訂單l一份訂單由多個訂單項組成l一個客戶只有一輛購物車l一輛購物車可以放多件物件,從購物車可以查到車內所有的物件l一個訂單項或物件對應一個商品,但一個商品可對應多個訂單項或購物車中的多個物件 網上購物系統(tǒng)的類圖 *111111111商品商品網上商城網上商城客戶客戶購物車購物車物件物件訂單訂單訂單項訂單項l用況建模l靜態(tài)建模l物理體系結構建模動態(tài)建模用來描述系統(tǒng)的動態(tài)行為,顯示對象在系統(tǒng)運行期間不同時刻的動態(tài)交互。UML中用狀態(tài)機圖、活動圖、順序圖、通信圖和協(xié)作圖來建立動態(tài)模型狀

51、態(tài)機圖通常是對類描述的補充,它說明該類的對象所有可能的狀態(tài),以及哪些事件將導致狀態(tài)的改變。狀態(tài)機圖描述了對象的動態(tài)行為,是一種對象生存周期的模型1)列出對象具有的所有狀態(tài) 狀態(tài)分為起始狀態(tài)、結束狀態(tài)和中間狀態(tài)。一張狀態(tài)機圖可以有一個起始狀態(tài)和若干個(可以為0)結束狀態(tài)2)標識導致狀態(tài)轉換的事件 當一個對象接收到某個事件時,會導致從一個狀態(tài)轉換到另一個狀態(tài),稱為狀態(tài)遷移(transition) 3)為狀態(tài)和遷移定義狀態(tài)變量和動作 在狀態(tài)遷移和/或處于某個狀態(tài)中時都可能需要執(zhí)行一些相應的動作,綜合這些動作,使得對象完成相應的功能狀態(tài)名狀態(tài)名狀態(tài)變量狀態(tài)變量活動活動狀態(tài)狀態(tài)遷移遷移起始狀態(tài)起始狀態(tài)結

52、束狀態(tài)結束狀態(tài)狀態(tài)機圖的基本符號狀態(tài)機圖的基本符號電梯升降的狀態(tài)機圖電梯升降的狀態(tài)機圖Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down (floor)Moving to First floorgo up(floor)timer=time-outarrivedgo up(floor)Onfirst floorl一個狀態(tài)由狀態(tài)名、狀態(tài)變量和活動三部分組成l狀態(tài)變量是狀態(tài)機圖所顯示的類的屬性,也可以是臨時變量l活動部分列出了處于該狀態(tài)時要執(zhí)

53、行的事件和動作有三個標準事件:entry,exit和dolEntry和exit事件用于指明進入和退出該狀態(tài)時的特定動作ldo事件用于指明處于該狀態(tài)中時執(zhí)行的動作l活動區(qū)中事件的語法如下: event-nameopt (argument list ) opt guard-condition opt /activity-expressionopt 其中,事件名可以是包括三個標準事件(entry,exit,do)在內的任何事件,參數表表示該事件所需的參數,警戒條件是一布爾表達式,動作表達式是該事件將被執(zhí)行的動作loginlogin time=current timeentry/type “l(fā)ogin

54、”do/get use_namedo/get passwordhelp/display helpexit/login(use_name,password)login狀態(tài)狀態(tài)自動售貨機自動售貨機狀態(tài)機圖狀態(tài)機圖idleCollecting moneyCoins in(amount)/add to balancetest and computeDo:test item and compute changeDo:dispense itemDo:make changeSelect(item)change 0change = 01. 狀態(tài)遷移 引起狀態(tài)遷移的原因通常有兩種:l當標在遷移箭頭上的事件出現時

55、會引起狀態(tài)的遷移。此時,首先執(zhí)行引起遷移的事件中的動作,然后遷移到新的狀態(tài),執(zhí)行新狀態(tài)中的內部動作(包括entry、exit、do以及用戶定義的動作)。在執(zhí)行do或用戶定義的動作時,可以被外部的事件(將導致該狀態(tài)的遷移)中斷,但entry動作和exit動作是不能被中斷的,并且它們總是要執(zhí)行完的l當狀態(tài)機圖中相應的遷移上未指明事件時,表示當位于遷移箭頭源頭的狀態(tài)中的內部動作(包括entry、exit、do以及用戶定義的動作)全部執(zhí)行完后,該狀態(tài)遷移被自動觸發(fā)自動售貨機自動售貨機狀態(tài)機圖狀態(tài)機圖idleCollecting moneyCoins in(amount)/add to balancet

56、est and computeDo:test item and compute changeDo:dispense itemDo:make changeSelect(item)change 0change = 0狀態(tài)遷移的語法如下: event-name opt ( parameter-list ) opt guard-condition opt /effect-listopt其中:l事件名及其參數表指出觸發(fā)遷移的事件,參數表的語法與“操作”中定義語法相同l警戒條件是一個布爾表達式。如果狀態(tài)遷移中既有事件特征又有警戒條件,則表示僅當這個事件發(fā)生并且警戒條件為真時才觸發(fā)相應的狀態(tài)遷移;如果狀態(tài)遷

57、移上只有警戒條件,則表示當該條件變?yōu)檎鏁r,觸發(fā)狀態(tài)遷移leffect-list是當該遷移觸發(fā)時執(zhí)行的過程表達式,即動作表達式。表達式中可引用相應對象中的屬性、操作,或者事件特征中的參數。動作可以包括調用、發(fā)送和其他種類的動作。一個狀態(tài)遷移上可以有多個用“/”符號分隔動作表達式,它們按從左到右的次序依次執(zhí)行。不允許有嵌套的或遞歸的動作表達式timer=time-out/go down (first floor)電梯升降的狀態(tài)機圖電梯升降的狀態(tài)機圖Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increa

58、se timerarrivedarrivedgo down (floor)go up(floor)go up(floor)Onfirst floortimer=time-out self.go down(first floor)電梯升降的狀態(tài)機圖電梯升降的狀態(tài)機圖Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down (floor)go up(floor)go up(floor)Onfirst floor事件是指已發(fā)生并可能引發(fā)某種活動的一

59、件事 類類數字手表類及其狀態(tài)機圖數字手表類及其狀態(tài)機圖inc/hours := hours + 1Digital_Watchmode_button()inc()do/displayminutesSet minutesdo/display hoursSet hoursdo/displaycurrent timeDisplaymode_buttonmode_buttoninc/minutes := minutes + 1mode_button狀態(tài)機圖狀態(tài)機圖事件的種類事件類型描述調用事件call event收到一條被一個對象外部同步調用的請求改變事件change event布爾表達式值的改變信號事

60、件signal event收到供對象間異步通信用的一個外部的、被命名的信號(實體)時間事件time event到達一個絕對時間或經過一段相對的時間量IdleinputSenddo/send (input)to correspondingclassThe signal could be an object of the following classes:Keyboard,Left Mouse Button,Right Mouse Button,Voice Recognitionsignalinputabstractdevice:Devicetime:TimesignalKeyboardcharacte

溫馨提示

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

評論

0/150

提交評論