建立動態(tài)模型-狀態(tài)圖-課件PPT_第1頁
建立動態(tài)模型-狀態(tài)圖-課件PPT_第2頁
建立動態(tài)模型-狀態(tài)圖-課件PPT_第3頁
建立動態(tài)模型-狀態(tài)圖-課件PPT_第4頁
建立動態(tài)模型-狀態(tài)圖-課件PPT_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/8/261軟件工程導論孫旭光災害信息工程系22021/8/26復 習n對象模型表示靜態(tài)的、結構化的系統(tǒng)的對象模型表示靜態(tài)的、結構化的系統(tǒng)的“數(shù)據(jù)數(shù)據(jù)”性質。性質。通常,使用通常,使用UML提供的類圖建立對象模型。提供的類圖建立對象模型。n類圖的繪制:類的表示和類與類之間的關系。類圖的繪制:類的表示和類與類之間的關系。創(chuàng)建對象模型的步驟:創(chuàng)建對象模型的步驟:n確定類與對象確定類與對象n確定確定類間的關系類間的關系n劃分主題劃分主題n確定屬性確定屬性和方法和方法n優(yōu)化迭代(優(yōu)化迭代(識別繼承關系識別繼承關系),),反復修改反復修改32021/8/26建立對象模型練習n根據(jù)描述建立軟件公司

2、的對象模型,即畫出類圖。根據(jù)描述建立軟件公司的對象模型,即畫出類圖。問題陳述如下:一個軟件公司有許多部門,分為問題陳述如下:一個軟件公司有許多部門,分為開發(fā)部門和管理部門兩種。每個部門由部門名字開發(fā)部門和管理部門兩種。每個部門由部門名字唯一確定。每個開發(fā)部門開發(fā)多個軟件產(chǎn)品,每唯一確定。每個開發(fā)部門開發(fā)多個軟件產(chǎn)品,每個軟件產(chǎn)品都由程序、數(shù)據(jù)和文檔組成。該公司個軟件產(chǎn)品都由程序、數(shù)據(jù)和文檔組成。該公司有許多員工,分為經(jīng)理、工作人員和開發(fā)人員。有許多員工,分為經(jīng)理、工作人員和開發(fā)人員。開發(fā)部門有經(jīng)理和多個開發(fā)人員,管理部門有經(jīng)開發(fā)部門有經(jīng)理和多個開發(fā)人員,管理部門有經(jīng)理和多個工作人員。每個開發(fā)人

3、員可參加多個開理和多個工作人員。每個開發(fā)人員可參加多個開發(fā)項目,每個開發(fā)項目需要多個開發(fā)人員。每位發(fā)項目,每個開發(fā)項目需要多個開發(fā)人員。每位經(jīng)理可主持多個開發(fā)項目。經(jīng)理可主持多個開發(fā)項目。 42021/8/2652021/8/26本節(jié)課內(nèi)容n第九章面向對象方法學引論第九章面向對象方法學引論 9.59.5、動態(tài)模型、動態(tài)模型n第十章第十章 面向對象分析面向對象分析10.110.1、面向對象分析的基本過程、面向對象分析的基本過程10.210.2、需求陳述、需求陳述10.310.3、建立對象模型、建立對象模型10.410.4、建立動態(tài)模型、建立動態(tài)模型10.510.5、建立功能模型、建立功能模型10

4、.610.6、定義服務、定義服務62021/8/26動態(tài)模型n動態(tài)模型表示瞬時的、行為化的系統(tǒng)的動態(tài)模型表示瞬時的、行為化的系統(tǒng)的“控制控制”性性質,它規(guī)定了對象模型中的對象的合法變化序列。質,它規(guī)定了對象模型中的對象的合法變化序列。對于一個對象來說,在其對于一個對象來說,在其生命周期的每個特定階段生命周期的每個特定階段中,都有適合該對象的一組運行規(guī)律和行為規(guī)則,中,都有適合該對象的一組運行規(guī)律和行為規(guī)則,用以規(guī)范該對象的行為。用以規(guī)范該對象的行為。狀態(tài):是對對象屬性值的一種抽象。狀態(tài):是對對象屬性值的一種抽象。n各對象之間相互觸發(fā)(即作用)就形成了一系列的狀各對象之間相互觸發(fā)(即作用)就形成

5、了一系列的狀態(tài)變化。態(tài)變化。一個觸發(fā)行為稱作一個事件。一個觸發(fā)行為稱作一個事件。n一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件。一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件。n事件表示時刻,狀態(tài)代表時間間隔。事件表示時刻,狀態(tài)代表時間間隔。這就是對象的狀態(tài)。這就是對象的狀態(tài)。72021/8/26動態(tài)模型通常,使用通常,使用UML提供的提供的狀態(tài)圖狀態(tài)圖來描繪對象的狀態(tài)、來描繪對象的狀態(tài)、觸發(fā)狀態(tài)轉換的事件以及對象的行為(對事件的響觸發(fā)狀態(tài)轉換的事件以及對象的行為(對事件的響應)。應)。每個類的動態(tài)行為用一張狀態(tài)圖來描繪,各個類的每個類的動態(tài)行為用一張狀態(tài)圖來描繪,各個類的狀態(tài)圖通過共享事件合并起來

6、,從而構成系統(tǒng)的動狀態(tài)圖通過共享事件合并起來,從而構成系統(tǒng)的動態(tài)模型。態(tài)模型。動態(tài)模型是基于事件共享而互相關聯(lián)的一組狀態(tài)圖動態(tài)模型是基于事件共享而互相關聯(lián)的一組狀態(tài)圖的集合。的集合。狀態(tài)圖通過建立類對狀態(tài)圖通過建立類對象的生命周期模型來象的生命周期模型來描述對象隨時間變化描述對象隨時間變化的動態(tài)行為。的動態(tài)行為。82021/8/26狀態(tài)圖n狀態(tài)圖適用于描述狀態(tài)和動作的順序,不僅可以狀態(tài)圖適用于描述狀態(tài)和動作的順序,不僅可以展現(xiàn)一個對象擁有的狀態(tài),還可以說明事件如何展現(xiàn)一個對象擁有的狀態(tài),還可以說明事件如何隨著時間的推移來影響這些狀態(tài)。隨著時間的推移來影響這些狀態(tài)。狀態(tài)圖表現(xiàn)從一個狀態(tài)到另一個狀

7、態(tài)的控制流。狀態(tài)圖表現(xiàn)從一個狀態(tài)到另一個狀態(tài)的控制流。n一般情況下,狀態(tài)圖可以由表示狀態(tài)的節(jié)點和表示一般情況下,狀態(tài)圖可以由表示狀態(tài)的節(jié)點和表示狀態(tài)之間轉換的帶箭頭的直線刻畫出來。狀態(tài)之間轉換的帶箭頭的直線刻畫出來。狀態(tài)圖主要由元素狀態(tài)、轉換、初始狀態(tài)、終止狀狀態(tài)圖主要由元素狀態(tài)、轉換、初始狀態(tài)、終止狀態(tài)和判定等組成。態(tài)和判定等組成。92021/8/26狀態(tài)圖狀態(tài)是狀態(tài)圖的重要組成部分。包括:狀態(tài)是狀態(tài)圖的重要組成部分。包括:n狀態(tài)名:在狀態(tài)圖中狀態(tài)名必須是唯一的。狀態(tài)名:在狀態(tài)圖中狀態(tài)名必須是唯一的。n入口和出口動作:進入和退出一個狀態(tài)時所執(zhí)行的入口和出口動作:進入和退出一個狀態(tài)時所執(zhí)行的邊

8、界動作。邊界動作。一個狀態(tài)可以有或者沒有入口和出口動作。一個狀態(tài)可以有或者沒有入口和出口動作。n內(nèi)部轉換:是不導致狀態(tài)改變的轉換。內(nèi)部轉換:是不導致狀態(tài)改變的轉換。內(nèi)部轉換只有源狀態(tài)而沒有目標狀態(tài)。內(nèi)部轉換只有源狀態(tài)而沒有目標狀態(tài)。n組合狀態(tài):內(nèi)部嵌套有子狀態(tài)的狀態(tài)。組合狀態(tài):內(nèi)部嵌套有子狀態(tài)的狀態(tài)。102021/8/26狀態(tài)圖轉換:用帶箭頭的直線表示,一端連接源狀態(tài)即轉轉換:用帶箭頭的直線表示,一端連接源狀態(tài)即轉出的狀態(tài),箭頭一端連接目標狀態(tài)即轉入的狀態(tài)。出的狀態(tài),箭頭一端連接目標狀態(tài)即轉入的狀態(tài)。n轉換可以標注與此轉換相關的選項如事件、動作和轉換可以標注與此轉換相關的選項如事件、動作和監(jiān)護

9、條件。監(jiān)護條件。112021/8/26狀態(tài)圖初始狀態(tài):代表狀態(tài)圖的起始位置,只能作為轉初始狀態(tài):代表狀態(tài)圖的起始位置,只能作為轉換的源,而不能作為轉換的目標。換的源,而不能作為轉換的目標。n初始狀態(tài)在一個狀態(tài)圖中只允許有一個,它用一個初始狀態(tài)在一個狀態(tài)圖中只允許有一個,它用一個實心的圓表示。實心的圓表示。終止狀態(tài):是模型元素的最后狀態(tài),是一個狀態(tài)終止狀態(tài):是模型元素的最后狀態(tài),是一個狀態(tài)圖的終止點。終止狀態(tài)只能作為轉換的目標,而圖的終止點。終止狀態(tài)只能作為轉換的目標,而不能作為轉換的源。不能作為轉換的源。n終止狀態(tài)在一個狀態(tài)圖中可以有終止狀態(tài)在一個狀態(tài)圖中可以有0個或多個,它用個或多個,它用一

10、個套有一個實心圓的空心圓表示。一個套有一個實心圓的空心圓表示。122021/8/26狀態(tài)圖判定:判定:n用來表示一個事件依據(jù)不同的監(jiān)護條件產(chǎn)生不同的用來表示一個事件依據(jù)不同的監(jiān)護條件產(chǎn)生不同的影響,即工作流在此處按監(jiān)護條件的取值而發(fā)生分影響,即工作流在此處按監(jiān)護條件的取值而發(fā)生分支。支。n判定用空心小菱形表示。判定用空心小菱形表示。n因為監(jiān)護條件為布爾表達式,所以通常條件下的判因為監(jiān)護條件為布爾表達式,所以通常條件下的判定只有一個入轉換和兩個出轉換。定只有一個入轉換和兩個出轉換。n根據(jù)監(jiān)護條件的真假可以觸發(fā)不同的分支轉換。根據(jù)監(jiān)護條件的真假可以觸發(fā)不同的分支轉換。狀態(tài)1狀態(tài)2狀態(tài)3 滿足監(jiān)護條

11、件 不滿足監(jiān)護條件 132021/8/26狀態(tài)圖使用狀態(tài)圖進行建模的目標是描述跨越多個用例的使用狀態(tài)圖進行建模的目標是描述跨越多個用例的對象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉對象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉換。換。n一個完整的系統(tǒng)往往包含很多的類和對象,這就需一個完整的系統(tǒng)往往包含很多的類和對象,這就需要創(chuàng)建幾個狀態(tài)圖進行描述。要創(chuàng)建幾個狀態(tài)圖進行描述。創(chuàng)建狀態(tài)圖的步驟:創(chuàng)建狀態(tài)圖的步驟:n識別出建模實體識別出建模實體不需要給所有的類都創(chuàng)建狀態(tài)圖,只有具有重要動態(tài)不需要給所有的類都創(chuàng)建狀態(tài)圖,只有具有重要動態(tài)行為的類才需要。行為的類才需要。n識別出實體的各種狀態(tài)識別出實體的各

12、種狀態(tài)n創(chuàng)建相關事件并創(chuàng)建狀態(tài)圖創(chuàng)建相關事件并創(chuàng)建狀態(tài)圖142021/8/26狀態(tài)圖n練習練習1:圖書館中圖書的狀態(tài)描述如下:當圖書:圖書館中圖書的狀態(tài)描述如下:當圖書被購置進來后,就放在圖書館中;如果讀者將圖被購置進來后,就放在圖書館中;如果讀者將圖書借走時,處于已借出狀態(tài);如果圖書被歸還,書借走時,處于已借出狀態(tài);如果圖書被歸還,圖書對象又變?yōu)樵趫D書館狀態(tài)。圖書館如果將圖圖書對象又變?yōu)樵趫D書館狀態(tài)。圖書館如果將圖書廢棄,則圖書對象就不再存在。試畫出圖書對書廢棄,則圖書對象就不再存在。試畫出圖書對象的狀態(tài)圖。象的狀態(tài)圖。152021/8/26狀態(tài)圖n練習練習2:在溫室管理系統(tǒng)中,有一個環(huán)境控

13、制器:在溫室管理系統(tǒng)中,有一個環(huán)境控制器類,當沒有種植作物時處于空閑狀態(tài)。一旦種上類,當沒有種植作物時處于空閑狀態(tài)。一旦種上了作物,就要進行溫度控制,定義氣候,即在什了作物,就要進行溫度控制,定義氣候,即在什么時期應達到什么溫度。當處于夜晚時,由于溫么時期應達到什么溫度。當處于夜晚時,由于溫度下降,要調(diào)用調(diào)節(jié)溫度過程,以便保持溫度;度下降,要調(diào)用調(diào)節(jié)溫度過程,以便保持溫度;太陽出來時,進入白天狀態(tài),由于溫度升高,要太陽出來時,進入白天狀態(tài),由于溫度升高,要調(diào)用調(diào)節(jié)溫度過程,保持要求的溫度。當日落時,調(diào)用調(diào)節(jié)溫度過程,保持要求的溫度。當日落時,進入夜晚狀態(tài)。當作物收獲,終止氣候的控制,進入夜晚狀

14、態(tài)。當作物收獲,終止氣候的控制,則進入空閑狀態(tài)。建立環(huán)境控制器類的狀態(tài)圖。則進入空閑狀態(tài)。建立環(huán)境控制器類的狀態(tài)圖。162021/8/26狀態(tài)圖n練習練習3:當有新同學入學時,將會給新同學創(chuàng)建:當有新同學入學時,將會給新同學創(chuàng)建一個新的賬號,新同學可以用這個賬號去選課。一個新的賬號,新同學可以用這個賬號去選課。一般來說,每個人的選課數(shù)目是有限的,如選擇一般來說,每個人的選課數(shù)目是有限的,如選擇6門課程后將不能再選課。如果已經(jīng)選了門課程后將不能再選課。如果已經(jīng)選了6門課程門課程還要再選課,就必須刪除已選的課程。直到這位還要再選課,就必須刪除已選的課程。直到這位同學畢業(yè),將其賬號刪除。請創(chuàng)建學生賬

15、號類的同學畢業(yè),將其賬號刪除。請創(chuàng)建學生賬號類的狀態(tài)圖。狀態(tài)圖。172021/8/26狀態(tài)圖n練習練習4:請創(chuàng)建一個狀態(tài)圖來描述航班如何從提:請創(chuàng)建一個狀態(tài)圖來描述航班如何從提出申請、指定航班計劃、售票、起飛、飛行到著出申請、指定航班計劃、售票、起飛、飛行到著陸的狀態(tài)過程。陸的狀態(tài)過程。182021/8/26建立動態(tài)模型n在開發(fā)交互式系統(tǒng)時,動態(tài)模型起著重要作用。在開發(fā)交互式系統(tǒng)時,動態(tài)模型起著重要作用。建立動態(tài)模型的步驟:建立動態(tài)模型的步驟:n編寫典型交互行為腳本。編寫典型交互行為腳本。必須保證腳本中不遺漏常見的交互行為必須保證腳本中不遺漏常見的交互行為n從腳本中提取出事物,確定觸發(fā)每個事件

16、的動作對從腳本中提取出事物,確定觸發(fā)每個事件的動作對象以及接受事件的目標對象。象以及接受事件的目標對象。n排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)以及狀態(tài)間的轉換關系,并用狀態(tài)圖描繪出來。以及狀態(tài)間的轉換關系,并用狀態(tài)圖描繪出來。n比較各個對象的狀態(tài)圖,檢查它們之間的一致性,比較各個對象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配。確保事件之間的匹配。192021/8/26建立動態(tài)模型以自動取款機以自動取款機(ATM)(ATM)系統(tǒng)為例進行為例介紹動態(tài)模系統(tǒng)為例進行為例介紹動態(tài)模型的建立過程:型的建立過程:n第一步:第一步:編寫腳本編寫腳本

17、n第二步:設想用戶界面第二步:設想用戶界面用戶界面的好壞直接影響用戶是否接受這個系統(tǒng),在用戶界面的好壞直接影響用戶是否接受這個系統(tǒng),在分析階段也不能完全忽略用戶界面,要注重這種界面分析階段也不能完全忽略用戶界面,要注重這種界面下的信息信息交換方式。下的信息信息交換方式。n第三步:畫事件跟蹤圖第三步:畫事件跟蹤圖確定事件確定事件畫出事件跟蹤圖畫出事件跟蹤圖202021/8/26建立動態(tài)模型n第四步:畫狀態(tài)圖第四步:畫狀態(tài)圖通常,用一張狀態(tài)圖描繪一類對象的行為,它確定了通常,用一張狀態(tài)圖描繪一類對象的行為,它確定了由事件序列引出的狀態(tài)序列。由事件序列引出的狀態(tài)序列。212021/8/26建立動態(tài)模

18、型根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本的事件跟蹤圖合并到已畫出的狀態(tài)圖中。的事件跟蹤圖合并到已畫出的狀態(tài)圖中。222021/8/26232021/8/26n考慮完正常事件之后再考慮邊界情況和特殊情況,考慮完正常事件之后再考慮邊界情況和特殊情況,其中包括在不適當時候發(fā)生的事件其中包括在不適當時候發(fā)生的事件( (例如例如,系統(tǒng)正在,系統(tǒng)正在處理某個事務時,用戶要求取消該事務處理某個事務時,用戶要求取消該事務)。242021/8/26建立動態(tài)模型252021/8/26建立動態(tài)模型do: 請求處理分行事務處理事務分行事務失敗分行事務成功do: 驗

19、證分行代碼驗證賬戶無效代碼有效代碼無效賬戶密碼錯do: 請求分行驗卡賬號有效總行類狀態(tài)圖總行類狀態(tài)圖262021/8/26建立動態(tài)模型do: 更新賬戶請求處理分行事務失敗do: 驗證卡號請求分行驗卡無效有效錯do: 驗證密碼成功正確分行類狀態(tài)圖分行類狀態(tài)圖272021/8/26定義服務n對象是由描述屬性的數(shù)據(jù),以及可以對這些數(shù)據(jù)施對象是由描述屬性的數(shù)據(jù),以及可以對這些數(shù)據(jù)施加的操作加的操作(即服務即服務),封裝在一起構成的獨立單元。,封裝在一起構成的獨立單元。n為了建立完整的對象模型,既要確定類中應該定義為了建立完整的對象模型,既要確定類中應該定義的屬性,又要確定類中應該定義的服務。的屬性,又

20、要確定類中應該定義的服務。通常需要等到建立了動態(tài)模型和功能模型之后,才通常需要等到建立了動態(tài)模型和功能模型之后,才能最終確定類中應有的服務,因為這兩個模型更明能最終確定類中應有的服務,因為這兩個模型更明確地描述了每個類應該提供哪些服務。確地描述了每個類應該提供哪些服務。定義服務的方法:定義服務的方法:n常規(guī)行為常規(guī)行為n從事件導出的操作從事件導出的操作n與數(shù)據(jù)流圖中處理框對應的操作與數(shù)據(jù)流圖中處理框對應的操作n利用繼承減少冗余操作利用繼承減少冗余操作類中定義的每個屬性都是可以類中定義的每個屬性都是可以訪問的,則可在每個類中定義訪問的,則可在每個類中定義讀、寫該類每個屬性的操作。讀、寫該類每個屬性的操作。狀態(tài)圖中發(fā)往對象的事件也就是該對狀態(tài)圖中發(fā)往對象的事件也就是該對象接收到的消息,因此該對象必須有象接收到的消息,因此該對象必須有由消息選擇符指定的操作,這個操作由消息選擇符指定的操作,這個操作修改對象狀態(tài)(即屬性值)并啟動相修改對象狀態(tài)(即屬性值)并啟動相應的服務。應的服務。數(shù)據(jù)流圖中的每個處理框都數(shù)據(jù)流圖中的每個處理框都與一個對象(也可能是若干與一個對象(也可能是若干個對象)上的操作相對應。個對象)上的操作相對應。利用繼承機制以減少所需定義利用繼承機制以減少所需定義的服務數(shù)目。的服務數(shù)目。抽取出相似類的公共屬性和操抽取出相似類的公共屬性和操作

溫馨提示

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

評論

0/150

提交評論