《(中職)UML與Rose建模應用子情境3.3課件》由會員分享,可在線閱讀,更多相關《(中職)UML與Rose建模應用子情境3.3課件(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、子情景3.3 靜態(tài)結構建模,情境3:嵌入式軟件建模MP3播放器,湖北職業(yè)技術學院,信息技術學院,*,(中職)UML與Rose建模應用子情境3.3ppt課件,學習情境3:嵌入式軟件建模,MP3播放器,UML及Rose建模應用,子情境3.3 靜態(tài)結構建模,情景描述,子情景3.1系統(tǒng)需求和3.2用例分析分別得到了需求分析和用例圖?,F(xiàn)在對該系統(tǒng)的結構特征進行分析,并進行系統(tǒng)靜態(tài)結構建模,包括:,確定系統(tǒng)類,創(chuàng)建系統(tǒng)類圖,如播放器類圖、存儲器子系統(tǒng)類圖、用戶接口子系統(tǒng)類圖等模型。,任務1:確定類,任務描述,用戶是通過顯示器及按鍵與系統(tǒng)進行交互式操作;顯示器、按鍵是于系統(tǒng)之間橋梁(接口);而MP3播放器不
2、僅是播放器,同時也是一個存儲器。根據(jù)以上描述的三種關系,分別繪制出相應的類圖。,依賴關系和實現(xiàn)關系,在UML模型中,模型元素之間的依賴關系表示某一元素以某種形式依賴于其他元素。從某種意義上說,關聯(lián)關系、泛化關系和實現(xiàn)關系都屬于依賴關系,但是他們都有其特殊的語義,因而被作為獨立的關系在建模時使用。依賴關系用一個一端帶有箭頭的虛線表示,在圖3-23中,類ClassC依賴于類ClassA。,圖3-23 帶有構造型的依賴關系,相關知識,在UML規(guī)范中定義類4種基本的依賴類型,分別是使用(Usage)依賴、抽象(Abstraction)依賴、綁定依賴(Binding)和授權依賴(Permission),
3、下面將對它們分別進行介紹。,使用依賴用于表示一種元素使用其他元素提供的服務以實現(xiàn)它的行為。表3-3列出了5種依賴關系。,相關知識,依賴關系,說明,關鍵字,使用,用于聲明使用某個模型元素需要泳道已存在的另一個模型元素,這樣才能實現(xiàn)使用者的功能,包括調(diào)用、參數(shù)、實例化和發(fā)送,use,調(diào)用,用于聲明一個類調(diào)用其他類的的操作的方法,call,參數(shù),用于聲明一個操作與其參數(shù)之間的關系,parameter,實例化,用于聲明使用一個類的方法創(chuàng)建了另一個類的實例,instantiate,發(fā)送,用于聲明信號發(fā)送者和信號接受者之間的關系,send,表3-3 使用依賴,相關知識,依賴關系,說明,關鍵字,跟蹤,用于聲
4、明不同模型中的元素之間存在一些連接,但沒有映射精確,trace,精化,用于聲明位于兩個不同語義層次上的元素之間的映射,refine,派生,用于聲明一個實例可以有另一個實例導出,derive,表3-4 抽象依賴關系,相關知識,依賴關系,說明,關鍵字,訪問,用于說明允許一個包訪問另一個包,access,導入,用于說明允許一個包訪問另一個包,并為被訪問包的組成部分增加別名,import,友元,用于說明允許一個元素訪問另一個元素,無論被訪問的元素是否具有可見性,friend,表3-5 授權依賴,相關知識,任務2:建立類圖,任務描述,任務1識別出了胸類、存儲子系統(tǒng)類和接口子系統(tǒng)類后,接下來還要識別類間的
5、關系,然后繪制相應的類圖。,識別系統(tǒng)中的類,對于MP3播放器系統(tǒng),很顯然,用戶通過顯示器及按鍵與系統(tǒng)進行交互。由于顯示器和按鍵是被動對象,因此需要添加一個用戶接口對象來管理用戶和系統(tǒng)之間的交互。用戶接口對象依靠音頻控制器來實現(xiàn)用戶期望的操作。實際上,音頻控制器是MP3播放器的核心,它完成用戶接口所指定的各種操作。音頻控制器通過揚聲器來播放音樂。,步驟1,子任務1創(chuàng)建系統(tǒng)類圖,對于媒體文件,MP3播放器提供了一個可讀寫存儲器,以存儲媒體文件。存儲器可由計算機通過USB接口連接,這樣就可以實現(xiàn)對存儲的媒體文件進行管理。因此,需要一個類來表示存儲器。而媒體文件將作為一個單獨的類出現(xiàn)。,為了顯示電池的
6、剩余電量,系統(tǒng)需要周期性地測試電池的剩余電量。因此,也可以為電池建立一個對象。,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,通過上述分析,可以從系統(tǒng)中抽象出以下一些主要類:Battery、AudioController、Speaker、KeyBoard、Display、Memory、MediaFile和UserInterface。,【提示】在瀏覽窗口中右鍵單擊“Logical View”(邏輯視圖),在彈出的菜單上選擇菜單項“New”(新建)下的“Class Diagram”(類圖)命令,從鍵盤輸入文本“系統(tǒng)類”命名該類圖,雙擊“系統(tǒng)類”打開類圖窗口。,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,創(chuàng)建類,(1)移動光
7、標指向工具箱中的“Class”圖標,單擊選定該圖標,然后移動光標到類圖窗口,在適當位置單擊鼠標左鍵,出現(xiàn)名為“NewClass”的類,輸入文本“KeyBoard”重命名。,(2)采用類似的方法,依次創(chuàng)建其它類,如圖3-24所示。,步驟2,圖3-24 創(chuàng)建類,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,創(chuàng)建類與類之間的關系,(1)確定類與類之間的關系,類“KeyBoard”與類“UserInterface”之間存在一對多的關聯(lián),即多個“KeyBoard”類對應一個“UserInterface”類,而“UserInterface”類管理多個“KeyBoard”類;由于播放器可以使用多個電池,因此,多個“Bat
8、tery”類對應一個“UserInterface”類:類“Display”與類“UserInterface”之間的關系為一對一的關系:類“Speaker”與“AudioController”類之間的關系為一對一的關聯(lián)關系;類“AudioController”與類“UserInterface”之間的關系為一對一的關聯(lián)關系;播放器只有一個存儲器,因此,“Memory”類與“AudioController”類之間的關系為一對一的關聯(lián)關系;在存儲器中可以存放0到多個媒體文件,即一個“Memory”類對應多個“MediaFile”類。,步驟3,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,(2)在工具箱中選擇“Ass
9、ociation”按鈕,然后用鼠標在各個類之間創(chuàng)建關聯(lián)“線段”,如圖3-25所示。,圖3-25 類間的關聯(lián),任務實施,(3)設置各類之間的關聯(lián)關系,最終完成系統(tǒng)類圖,下面以“KeyBoard”類與“UserInterface”類為例,雙擊“KeyBoard”類與“UserInterface”類之間的關聯(lián)“線段”,在彈出的對話框中Role B Detail頁框中的標簽“Multiplic”對應的文本框中輸入“1.*”,如圖3-26(a)所示;然后在Role A Detail頁框中的標簽“Multiplic”對應的文本框中輸入“1”,如圖3-26(b)所示,最后單擊“OK”按鈕,這樣就設置了“Us
10、erInterface”與“KeyBoard”的關系為一對多,如圖3-27所示。,依次類推,設置其它類之間的關聯(lián)關系。最終得到效果如圖3-28所示。,子任務1創(chuàng)建系統(tǒng)類圖,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,(a)(b),圖3-26 設置類間一對多的關聯(lián)關系,任務實施,子任務1創(chuàng)建系統(tǒng)類圖,圖3-27 類間一對多的關聯(lián)關系示例,圖3-28 MP3播放器的類圖,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,【提示】在瀏覽窗口中右鍵單擊“Logical View”(邏輯視圖),在彈出的菜單上選擇菜單項“New”(新建)下的“Class Diagram”(類圖)命令,從鍵盤輸入文本“存儲類”命名該類圖,
11、雙擊“存儲類”打開類圖窗口。,確定存儲子系統(tǒng)包含的類及它們之間的關系,存儲器類用來管理MP3播放器的存儲空間,它維護已經(jīng)存儲的媒體文件,并為新的媒體文件分配存儲空間,通過分析發(fā)現(xiàn)存儲子系統(tǒng)包含音頻控制器AudioController、存儲器Memory、音頻幀AudioFrame和媒體文件MediaFile這四個類組成。音頻控制器由存儲器組成,是聚合關系,它們之間一對一的關系。存儲器由媒體文件和音頻幀組成,是聚合關系,存儲器中可以包含0個或多個媒體文件,因而也就可以包含0個或多個音頻幀。媒體文件和音頻幀的關系是一對多的關系。,步驟1,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,確定存儲子系統(tǒng)
12、,包含的類及它們之間的關系,(1)創(chuàng)建類“MediaFile”:移動光標指向工具箱中的“Class”圖標,單擊選定該圖標,然后移動光標到類圖窗口,在適當位置單擊鼠標左鍵,出現(xiàn)名為“NewClass”的類,從鍵盤輸入“MediaFile”取代“NewClass”實現(xiàn)重命名。,(2)創(chuàng)建類“MediaFile”的屬性:鼠標右鍵單擊“MediaFile”類,對彈出的菜單上選擇“New Attribute”(新屬性)命令,如圖3-29所示,單擊鼠標左鍵。,步驟2,【注意】以類“MediaFile”創(chuàng)建為例,說明類、類屬性及類操作的創(chuàng)建過程。,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,圖3-29 選
13、擇“New Attribute”命令,如圖3-30(a)所示,出現(xiàn)名為“name”的屬性,從鍵盤輸入“name:String”(【注意】輸入冒號時請切換至英文方式),按回車確認,實現(xiàn)對類“MediaFile”的屬性創(chuàng)建,類似方法,創(chuàng)建“l(fā)ength:Time”屬性,如圖3-30(b)所示。,(a)(b),圖3-30創(chuàng)建類“MediaFile”的屬性,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,(3)設置類“MediaFile”的屬性訪問權限:鼠標左鍵單擊“MediaFile”屬性左邊的圖標,出現(xiàn)如圖3-31(a)所示的權限圖標列表,在其中選擇“帶鑰匙”的圖標,設置類“MediaFile”的屬
14、性的訪問權限為私有的訪問權限,如圖3-31(b)所示。,(a)(b),圖3-31設置類“MediaFile”的屬性訪問權限,(4)設置“MediaFile”類的Operation(操作):鼠標右鍵單擊“MediaFile”類,對彈出的菜單上選擇“New Operation”(新操作)命令,如圖3-32所示,單擊鼠標左鍵。,圖3-32 選擇“New Operation”命令,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,如圖3-33(a)所示,出現(xiàn)名為“opname()”的操作,從鍵盤輸入“getAudioFrame()”(,【注意】輸入圓括號時請切換至英文方式,),按回車確認,實現(xiàn)對“Medi
15、aFile”類的操作創(chuàng)建,類似方法,創(chuàng)建“addAudioFrame()”、“delete()”、“save()”操作,如圖3-33(b)所示。,(a)(b),圖3-33 創(chuàng)建類的操作,(a)(b),圖3-34 設置類“MediaFile”的操作的調(diào)用權限,(5)設置類“MediaFile”的操作的調(diào)用權限:鼠標左鍵單擊“getAudioFrame()”操作左邊的圖標,出現(xiàn)如圖3-34(a)所示的調(diào)用權限圖標列表,在其中選擇第一個圖標,設置“getAudioFrame()”操作為公有的調(diào)用權限,如圖3-34(b)所示。,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,(6)類“AudioCont
16、roller”有play()、stop()操作;類“Memory”有getFile()、delFile()、saveFile()操作;所有類的操作的調(diào)用權限皆為公有,如圖3-35所示,請自行創(chuàng)建與設置。,圖3-35 創(chuàng)建類、類屬性及類操作示例,(1)創(chuàng)建類“MediaFile”與“AudioFrame”間的關系,鼠標左鍵單擊選定工具箱中的“Aggregation”(聚合)工具圖標,移動光標指向類“AudioFrame”,按住鼠標左鍵,拖動至類“MediaFile”,松開鼠標,出現(xiàn)如圖3-36(a)所示的聚合關系,在圖3-36(a)所示的光標位置,單擊鼠標右鍵,在彈出的菜單上找到“Aggregate”命令,單擊取消對其的“勾選”狀態(tài),如圖3-36(b)所示。,步驟3,創(chuàng)建類與類之間的關系,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,(a)(b),圖3-36 創(chuàng)建類之間的關系示例,任務實施,子任務2創(chuàng)建系統(tǒng)創(chuàng)建存儲子系統(tǒng)類圖,(2)創(chuàng)建類“MediaFile”與“AudioFrame”間的一對多的關系,在如圖3-36(b)所示的位置,單擊右鍵,在彈出的菜單上選擇“Multiplicity