




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第三章第三章 架構(gòu)建模架構(gòu)建模 3.1 狀態(tài)圖 2本章目標(biāo)本章目標(biāo) 掌握狀態(tài)圖的基本概念; 了解狀態(tài)圖建模方法; 掌握類的基本抽象方法; 掌握關(guān)系的基本概念; 掌握交互圖的基本概念; 了解交互圖的建模方法。3章節(jié)安排章節(jié)安排 3.1 狀態(tài)圖 3.2 類 3.3 類的關(guān)系 3.4 交互圖4本節(jié)目標(biāo)本節(jié)目標(biāo)掌握掌握事件事件的基本概念及如何描述事件的基本概念及如何描述事件掌握的掌握的狀態(tài)狀態(tài)基本概念及如何描述狀態(tài)基本概念及如何描述狀態(tài)掌握的掌握的轉(zhuǎn)換轉(zhuǎn)換基本概念及如何描述轉(zhuǎn)換基本概念及如何描述轉(zhuǎn)換掌握如何繪制掌握如何繪制狀態(tài)圖狀態(tài)圖 任務(wù)任務(wù) 1. 完成圖書業(yè)務(wù)模塊中借書用例的狀態(tài)圖;完成圖書業(yè)務(wù)
2、模塊中借書用例的狀態(tài)圖; 2. 完成圖書業(yè)務(wù)模塊中還書用例的狀態(tài)圖。完成圖書業(yè)務(wù)模塊中還書用例的狀態(tài)圖。 5項目引入項目引入 HNS軟件學(xué)院開發(fā)部在對圖書館管理系統(tǒng)需求建模后,進(jìn)入到系統(tǒng)分析和概要設(shè)計階段。在該階段中,將在需求模型的基礎(chǔ)上,對系統(tǒng)進(jìn)行靜態(tài)建模以及動態(tài)建模,最后構(gòu)建出圖書館管理系統(tǒng)的軟件架構(gòu)。這主要體現(xiàn)在對系統(tǒng)中對象進(jìn)行抽象成類,進(jìn)而對類間的相互關(guān)系進(jìn)行建模,而系統(tǒng)內(nèi)部行為建模則是由交互圖進(jìn)行描述。因此,指派您在學(xué)習(xí)完本章內(nèi)容的前提下對系統(tǒng)進(jìn)行概要設(shè)計建模。 63.1.1 事件事件 (Event) 事件事件:它表示對一個在時間和空間上占據(jù)一定位置的有意義的事情的規(guī)格說明 。 事件
3、事件:也就是指發(fā)生的且引起某些動作執(zhí)行的事情。例如,當(dāng)你按下電視機(jī)上的Power按鈕時,電視開始播放。其中“按下Power按鈕”就是事件,而事件引起的動作就是“開始播放”。73.1.1 事件事件 (Event) 事件可以是內(nèi)部的事件或外部的事件 外部事件是在系統(tǒng)和參與者之間傳送的事件。 內(nèi)部事件是在系統(tǒng)內(nèi)部的對象之間傳送的事件。 事件可以分成多種類型: 信號 調(diào)用事件 變化事件 時間事件 8信號 信號(信號(Signal):):是作為兩個對象之間通信媒介的命名的實體,信號的接收是信號接收對象的一個事件。 信號和簡單的類有許多共同之處,同樣信號也可以有實例。信號還可以包含在泛化關(guān)系中。同樣信號可
4、以像類一樣,有屬性和操作。例如計算機(jī)設(shè)備的中斷信號就是一般的信號,而鍵盤中斷信號就是特殊的信號。 9信號 信號可以在類圖中被聲明為類,并用關(guān)鍵字signal表示,信號的參數(shù)被聲明為屬性。 在UML中,可以將信號建模為構(gòu)造型化的類。用構(gòu)造型為Send的依賴關(guān)系來表示一個操作發(fā)送了一個特定的信號。 10信號 信號間可以有泛化,信號可以是其他信號的子信號,它們繼承父信號的屬性,并可以觸發(fā)包含信號類型的轉(zhuǎn)換。 示例:11調(diào)用事件 調(diào)用事件(調(diào)用事件(Call Event)是指一個對象對操作)是指一個對象對操作調(diào)用的接收調(diào)用的接收。 接收的類可以選擇將操作實現(xiàn)為一個方法或?qū)崿F(xiàn)為狀態(tài)機(jī)里的一個調(diào)用事件觸發(fā)
5、器。 信號是一個異步事件,而調(diào)用事件一般來說是同步的。也就是說,當(dāng)對象調(diào)用另一對象的操作時,控制就從發(fā)送者傳送到接收者,該事件觸發(fā)轉(zhuǎn)換,完成操后,接收者轉(zhuǎn)換到一個新的狀態(tài),控制返還給發(fā)送者。 12調(diào)用事件 示例3.1.1 如圖未驗證圖書的狀態(tài)已驗證圖書的狀態(tài)searchBook(name)13變化事件 變化事件(change event)是指依賴于指定屬性值的布爾表達(dá)式得到滿足。這是一種一直等待直到特定條件被滿足的聲明方式。 在UML中,用關(guān)鍵字When,后面跟隨布爾表達(dá)式來對一個變化事件建模。你可以用表達(dá)式來標(biāo)記一個絕對時間(如:When time10:00),或?qū)Ρ磉_(dá)式作不間斷地測試(如w
6、hen altitude 1000)。 14變化事件 示例示例3.1.2 如圖暫停打印機(jī)when( 打印機(jī)缺紙 ) / printTest()打印15時間事件 時間事件(Time event)是表示一段時間推移的事件。 在UML中,用關(guān)鍵字after,后面跟著計算一段時間的表達(dá)式來對時間事件建模。表達(dá)式計時的基準(zhǔn),默認(rèn)為進(jìn)入當(dāng)前狀態(tài)的時間為基準(zhǔn)。 16時間事件 示例示例3.1.3 如圖打印就緒打印after (2 seconds)/connectionPrint()173.1.2 狀態(tài)狀態(tài) 狀態(tài)(狀態(tài)(State)是指在對象的生命周期中滿足某)是指在對象的生命周期中滿足某些條件、執(zhí)行某些活動或
7、等待某些事件時的一些條件、執(zhí)行某些活動或等待某些事件時的一個條件或狀況個條件或狀況。 例如,打印機(jī)printer在工作時可能有6種狀態(tài):“就緒”(Ready),“打印”(Print),“缺紙”(Lack paper),“忙”(Busy),“暫?!保≒ause)和“停止”(Stop)。這里具體的打印機(jī)在UML中就表示為對象,而它工作時可能出現(xiàn)的狀態(tài)則是狀態(tài)圖中的狀態(tài)。 18狀態(tài)的組成部分狀態(tài)的組成部分1名稱名稱(name) 是可以把該狀態(tài)和其他狀態(tài)區(qū)分開的字符串;狀態(tài)也可能是匿名的,即沒有名稱。2進(jìn)入進(jìn)入/退出動作退出動作(entry/exit action) 分別指進(jìn)入和退出這個狀態(tài)時所執(zhí)行的
8、動作。3內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換(internal transition) 不會導(dǎo)致狀態(tài)改變的轉(zhuǎn)換。4子狀態(tài)子狀態(tài) (substate) 主要是在狀態(tài)的嵌套結(jié)構(gòu)中,包括不相交(順序活動)或并發(fā)(并發(fā)活動)子狀態(tài)。5延遲事件延遲事件 (deferred event) 是指在該狀態(tài)下暫不處理,但將推遲到該對象的另一個狀態(tài)下排隊處理的事件列表。 19狀態(tài)示例狀態(tài)示例 示例示例3.1.4 如圖203.1.3 轉(zhuǎn)換轉(zhuǎn)換 轉(zhuǎn)換轉(zhuǎn)換是兩個狀態(tài)間的一種關(guān)系,表示對象將在當(dāng)前狀態(tài)中執(zhí)行動作,并在某個特定事件發(fā)生或某個特定的條件滿足時進(jìn)入后繼狀態(tài)。 在轉(zhuǎn)換激活之前,稱對象處于源狀態(tài); 激活后,就稱對象處于目標(biāo)狀態(tài)。 例如
9、,當(dāng)像“獲取時間片”這樣的事件發(fā)生時,程序可能從“就緒”狀態(tài)轉(zhuǎn)換到“運(yùn)行”狀態(tài)。 21轉(zhuǎn)換的組成部分轉(zhuǎn)換的組成部分1.源狀態(tài)(source state) 即受轉(zhuǎn)換影響的狀態(tài);如果對象處于源狀態(tài),當(dāng)該對象接收到轉(zhuǎn)換的觸發(fā)事件或滿足監(jiān)護(hù)條件(如果有)時,就會激活一個轉(zhuǎn)換。2.事件觸發(fā)(Event trigger) 是一個事件,源狀態(tài)中的對象接收這個事件使轉(zhuǎn)換合法地激活,并使監(jiān)護(hù)條件滿足。例如,將Mouse(鼠標(biāo))作為觸發(fā)器,那么接收到RightMouseButton也可以觸發(fā)這個轉(zhuǎn)換(如圖3.1.2)。 22轉(zhuǎn)換的組成部分轉(zhuǎn)換的組成部分3. 監(jiān)護(hù)條件(guard condition) 是一個布爾表
10、達(dá)式,當(dāng)觸發(fā)器事件被觸發(fā)時才對這個布爾表達(dá)式求值; 如果表達(dá)式取值為真,則激活轉(zhuǎn)換;為假,則不能激活轉(zhuǎn)換,而且如果沒有其他的轉(zhuǎn)換被此事件所觸發(fā),則該事件丟失。 事件能夠觸發(fā)多個轉(zhuǎn)換離開當(dāng)前狀態(tài)。每個轉(zhuǎn)換必須具有不同的監(jiān)護(hù)條件。 4.動作(Action) 動作是可執(zhí)行的一個原子計算,它可以直接的作用于擁有狀態(tài)機(jī)的對象,也可以間接作用于那些可見的其他對象。 當(dāng)轉(zhuǎn)換被引發(fā)時,它對應(yīng)的動作被執(zhí)行。它一般是一個簡短的計算處理過程,通常是賦值操作或算術(shù)計算。 23轉(zhuǎn)換的組成部分轉(zhuǎn)換的組成部分 5.目標(biāo)狀態(tài)(target state) 轉(zhuǎn)換完成后的活動狀態(tài)。示例示例3.1.5 243.1.4 狀態(tài)圖狀態(tài)圖
11、狀態(tài)圖(Statechart Diagram)是UML中對系統(tǒng)的動態(tài)方面進(jìn)行建模的五種圖之一。狀態(tài)圖顯示了狀態(tài)機(jī)。 活動圖是狀態(tài)圖的一個特例,狀態(tài)圖中的多數(shù)狀態(tài)是活動狀態(tài),而且所有或多數(shù)轉(zhuǎn)換是由源狀態(tài)中的活動完成所觸發(fā)的。 活動圖顯示的是從活動到活動的控制流,狀態(tài)圖則顯示的是從狀態(tài)到狀態(tài)的控制流。 25狀態(tài)圖的用途狀態(tài)圖的用途狀態(tài)圖用于對系統(tǒng)的動態(tài)方面建模。動態(tài)方面是指出系統(tǒng)體系結(jié)構(gòu)中任一對象按事件排序的行為,這些對象可以是類、接口、構(gòu)件和節(jié)點。26狀態(tài)圖的建模技術(shù)的策略狀態(tài)圖的建模技術(shù)的策略 2-1(1) 選擇狀態(tài)機(jī)的語境(即建模對象),不管它是類、用例或是整個系統(tǒng);(2) 選擇這個對象的初
12、態(tài)和終態(tài)。為了指導(dǎo)模型的剩余部分,可能要分別地說明初態(tài)和終態(tài)的前置條件和后置條件;(3) 考慮對象可能在其中存在一段時間的條件,以決定該對象所在的穩(wěn)定狀態(tài)。從這個對象的高層狀態(tài)開始,然后考慮它的可能的子狀態(tài);(4) 在對象的整個生命周期中,決定穩(wěn)定狀態(tài)的有意義的順序;27狀態(tài)圖的建模技術(shù)的策略狀態(tài)圖的建模技術(shù)的策略 2-2(5) 決定可能觸發(fā)從狀態(tài)到狀態(tài)的轉(zhuǎn)換的事件。將這些事件建模為觸發(fā)者,它觸發(fā)從一個合法狀態(tài)序列到另一個合法狀態(tài)序列的轉(zhuǎn)換;(6) 把動作附加到這些轉(zhuǎn)換上,并且附加到這些狀態(tài)上;(7) 考慮通過使用子狀態(tài)、分支、匯合和歷史狀態(tài),來簡化狀態(tài)圖;(8) 核實所有的狀態(tài)都是在事件的某
13、種組合下可達(dá)的;(9) 核實不存在死角狀態(tài),即不存在那種不能轉(zhuǎn)換出來的狀態(tài);(10) 通過手工或通過使用工具跟蹤狀態(tài)機(jī),核對所期望的事件序列以及它們的響應(yīng)。28狀態(tài)圖示例狀態(tài)圖示例 示例示例3.1.6對電話工作的行為建模。idledialingtalkingringing撥號失敗電話接通完成通話掛機(jī)摘機(jī)拒接來電暫無人接聽繼續(xù)響鈴撥號來電29任務(wù)解決任務(wù)解決-分析分析借書業(yè)務(wù)在系統(tǒng)的業(yè)務(wù)建模中是一個用例,而這種用例是一個應(yīng)對型對象。為便于理解該業(yè)務(wù)的控制流程和確保業(yè)務(wù)處理的正確性。從前面章節(jié)對該業(yè)務(wù)描述可知,借書業(yè)務(wù)是由借書空閑(idle)書目查詢(finding)借書(Lending)預(yù)約(r
14、eservation)取消預(yù)約(remove reservation)借書成功(Success)失敗(Failure)7種狀態(tài)組成。 30任務(wù)解決任務(wù)解決-主要事件主要事件1.從空閑狀態(tài)到書目查詢狀態(tài)是由書目編號錄入引發(fā)的;2.同樣查詢失敗也會引發(fā)查詢狀態(tài)轉(zhuǎn)換到借書業(yè)務(wù)的空閑狀態(tài);3.查詢成功的事件會激發(fā)從查詢狀態(tài)到借書狀態(tài);4.當(dāng)所查到的書在庫時則借閱成功轉(zhuǎn)發(fā)成功顯示狀態(tài);5.當(dāng)所查到的書已預(yù)約時則激發(fā)取消預(yù)約事件;6.當(dāng)所查到的書已借出則激發(fā)預(yù)約事件轉(zhuǎn)入預(yù)約狀態(tài);7.在取消預(yù)約時如預(yù)約取消成功則轉(zhuǎn)入借書狀態(tài);8.如預(yù)約成功則轉(zhuǎn)入信息顯示狀態(tài)31任務(wù)解決任務(wù)解決-繪制狀態(tài)圖繪制狀態(tài)圖 步驟1
15、.打開前面初步構(gòu)建的UML模型文件。 步驟2打開Rose中的用例視圖(Use Case View),選擇用例(use case)目錄下的圖書館業(yè)務(wù)功能包,并選擇借書用例。如圖3.1.8所示。32任務(wù)解決任務(wù)解決-繪制狀態(tài)圖繪制狀態(tài)圖 步驟3用鼠標(biāo)右擊借書用例在彈出來的菜單中選擇“Newstatechart diagram”項,創(chuàng)建狀態(tài)圖。如圖所示。 33任務(wù)解決任務(wù)解決-繪制狀態(tài)圖繪制狀態(tài)圖 步驟4雙擊新建的狀態(tài)圖,并點右邊控件集中選中開始狀態(tài)并用鼠標(biāo)在圖中拖出。 34任務(wù)解決任務(wù)解決-繪制狀態(tài)圖繪制狀態(tài)圖 步驟5如上圖所示操作方法分別將狀態(tài)圖中的所有狀態(tài)創(chuàng)建出來。如圖所示。35任務(wù)解決任務(wù)解
16、決-繪制狀態(tài)圖繪制狀態(tài)圖 步驟6將狀態(tài)圖中的事件加上就完成借書的狀態(tài)圖。如圖所示。 初始IdlefindingLendingReservationRemove ReservationSuccess結(jié)束輸入書目編號查詢失敗取書籍信息預(yù)約取消成功Failure 預(yù)約人!當(dāng)前預(yù)約者 / 預(yù)約取消失敗 書目狀態(tài)已預(yù)約 / 取消預(yù)約預(yù)約 書目狀態(tài)已借出 / 預(yù)約借書成功返回返回返回36精練精練 請您根據(jù)本節(jié)所學(xué)的知識解決項目中的任務(wù)2。 分析:由前面章節(jié)對圖書館管理系統(tǒng)中的還書業(yè)務(wù)的描述和分析可知,還書業(yè)務(wù)的動態(tài)行為是由:空閑(idle)、圖書查找(finding)、還書(reversion)、失?。‵ailure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。 繪制狀態(tài)圖:請您根據(jù)分析運(yùn)用UML繪制還書用例的狀態(tài)圖。37小結(jié)小結(jié) 事件(Event),是指對一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南施工建設(shè)建設(shè)合同
- 安置房工程合同書
- 技術(shù)入股協(xié)議合同
- 婚宴服務(wù)合同
- 代理記賬管理合同書
- 商鋪租賃經(jīng)營合同書
- 建筑工程機(jī)械材料租賃合同
- 教師事業(yè)單位聘用合同
- 房屋維修合同協(xié)議書
- 整車協(xié)議合同
- Unit 3Keep Fit.教案2024-2025學(xué)年人教版(2024)七年級英語下冊
- 保障公路、公路附屬設(shè)施質(zhì)量和安全的技術(shù)評價報告
- 2022年10月自考06779應(yīng)用寫作學(xué)試題及答案
- 年產(chǎn)十萬噸丙烯腈生產(chǎn)工藝設(shè)計
- 人教版高中物理必修二全冊同步課時練習(xí)
- 城市社區(qū)管理中存在的問題及對策研究正文內(nèi)容
- (完整)人教版 高一物理課后習(xí)題答案
- GB/Z 26337.1-2010供應(yīng)鏈管理第1部分:綜述與基本原理
- 幼兒園繪本:《超級細(xì)菌王國》
- 污水處理及配套管網(wǎng)工程-項目管理機(jī)構(gòu)配備情況
- 《2022年基礎(chǔ)教育省級教學(xué)成果獎申報書》
評論
0/150
提交評論