UML分析類、狀態(tài)圖基礎(chǔ)和畫法-PPT
單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,UML分析類、狀態(tài)圖基礎(chǔ)和畫法,分析類,分析類的概念,在分析模型中,分析類是概念層次上的內(nèi)容,用于描述系,統(tǒng)中較高層次的對象。,分析類直接與應用邏輯相關(guān),而不關(guān)注于技術(shù)實現(xiàn)的問題。,分析類的類型,實體類:表示系統(tǒng)存儲和管理的永久信息,邊界類:表示參與者與系統(tǒng)之間的交互,控制類:表示系統(tǒng)在運行過程中的業(yè)務控制邏輯,2,實體類,實體類,描述必須存貯的信息及其相關(guān)行為,通常對應現(xiàn)實世界中的“事物”,實體類與數(shù)據(jù)庫中的表對應,類的實例對應于表中的一條記錄;類中的屬性和記錄中的字段對應。,實體類的,UML,表示,3,邊界類,邊界類,描述外部的參與者與系統(tǒng)之間的交互,類型:用戶界面、系統(tǒng)接口、設備接口,邊界類是系統(tǒng)的用戶界面,直接跟系統(tǒng)外部參與者交互,與系統(tǒng)進行信息交流。如網(wǎng)上購物系統(tǒng)中登陸子功能里的登錄頁面(,login.html,或,index.jsp,),邊界類的,UML,表示,4,控制類,控制類,描述一個用例所具有的事件流控制行為,實現(xiàn)對用例行為的封裝,將用例的執(zhí)行邏輯與邊界和實,體進行隔離,控制類是控制系統(tǒng)中對象之間的交互,通常每個用例都是一個控制類。,控制類的,UML,表示,5,課堂作業(yè),圖中的實體類為:,圖中的控制類為:,圖中的邊界類為:,6,內(nèi)容提綱,1,、面向?qū)ο蠓治龈拍?分析類:邊界類、控制類、實體類,用例實現(xiàn),2,、基于用例的分析建模,識別分析類,定義交互行為,建立分析類圖,檢查分析模型,7,分析建模過程,理解用例模型,理解用例模型和詞匯表,適當補充系統(tǒng)內(nèi)部情況的描述,識別分析類,找出可能的能夠執(zhí)行用例行為的分析類,定義交互行為,將用例行為分配到分析類中,建立分析類圖,確定分析類的關(guān)鍵屬性和責任,定義分析類之間的關(guān)系,檢查分析模型,8,大家學習辛苦了,還是要堅持,繼續(xù)保持安靜,9,示例:,MiniLibrary,10,補充用例描述,補充用例描述,為了發(fā)現(xiàn)分析類,有必要補充說明系統(tǒng)的內(nèi)部行為,即系,統(tǒng)內(nèi)部必須做什么才能響應外部的要求。,可能的情況,用例描述的內(nèi)容足夠充分,不用補充直接可用;,現(xiàn)有事件流中沒有明確定義系統(tǒng)內(nèi)部應該執(zhí)行的行為,直接在現(xiàn)有用,例描述中作出補充行為;,獨立于原始用例描述系統(tǒng)的內(nèi)部行為。,注意:沒有必要規(guī)定系統(tǒng)的哪些部分完成哪些特定任務。,11,MiniLibrary,:補充用例描述,舉例:“登記還書”用例,12,識別分析類,識別邊界類,通常,一個參與者與一個用例之間的交互或通信關(guān)聯(lián)對應,一個邊界類。,13,識別分析類,識別邊界類應當注意的問題,邊界類應關(guān)注于參與者與用例之間交互的信息或者響應的,事件,不要描述窗口組件等界面的組成元素;,在分析階段,力求使用用戶的術(shù)語描述界面;,邊界類實例的生命周期并不僅限于用例的事件流,如果兩,個用例同時與一個參與者交互,那么它們有可能會共用一個邊界類,以便增加邊界類的復用性。,14,MiniLibrary,:識別邊界類,15,識別分析類,識別控制類,控制類負責協(xié)調(diào)邊界類和實體類,通常在現(xiàn)實世界中沒有,對應的事物。,一般來說,一個用例對應一個控制類。,16,識別分析類,識別控制類應當注意的問題,當用例比較復雜時,特別是產(chǎn)生分支事件流的情況下,一,個用例可以有多個控制類。,在有些情況下,用例事件流的邏輯結(jié)構(gòu)十分簡單,這時沒,有必要使用控制類,邊界類可以實現(xiàn)用例的行為。,舉例:,MiniLibrary,系統(tǒng)中的用例“登錄”,如果不同用例包含的任務之間存在著比較密切的聯(lián)系,則,這些用例可以使用一個控制類,其目的是復用相似部分以便,降低復雜性。,通常情況下,應該按照一個用例對應一個控制類的方法識別出多個控,制類,再分析這些控制類找出它們之間的共同之處。,17,MiniLibrary,:識別控制類,18,識別分析類,識別實體類,實體類通常是用例中的參與對象,對應著現(xiàn)實世界中的“事物”,19,識別分析類,識別實體類應當注意的問題,實體類的識別質(zhì)量在很大程度上取決于分析人員書寫文檔,的風格和質(zhì)量;,自然語言是不精確的,因此在分析自然語言描述時應該規(guī),范化描述文檔中的一些措辭,盡量彌補這種不足;,在自然語言描述中,名詞可以對應類、屬性或同義詞等多,種類型,開發(fā)人員需要花費大量的時間進行篩選。,思考:如何識別,MiniLibrary,的實體類?,20,MiniLibrary,:識別實體類,21,定義交互行為,交互圖可以將用例和分析對象聯(lián)系在一起,實現(xiàn)將用例的行為分配到所識別的分析類中,并且?guī)椭_發(fā)人員發(fā)現(xiàn)和補充前面遺漏的分析類。,22,MiniLibrary,:“登記借書”基本流,23,MiniLibrary,:“登記借書”基本流,24,MiniLibrary,:分析類,將“登記還書”用例行為分配到相應的分析類之后,系統(tǒng)的一些分析類具有相應的職責,25,建立分析類圖,定義關(guān)系,找出分析類之間的關(guān)聯(lián)關(guān)系,并通過泛化實現(xiàn)復用。,定義屬性,按照一般常識,找出對象的某些屬性;,認真研究問題域,找出對象的某些屬性;,根據(jù)系統(tǒng)責任的要求,找出對象的某些屬性;,考慮對象需要系統(tǒng)保存的信息,找出對象的相應屬性;,對象為了在服務中實現(xiàn)其功能,需要增設一些屬性;,識別對象需要區(qū)別的狀態(tài),考慮是否需要增加一個屬性來,區(qū)別這些狀態(tài);,確定屬性表示整體與部分結(jié)構(gòu)和實例連接。,26,MiniLibrary,:分析類圖,27,檢查分析模型,檢查“正確性”,用戶是否可以理解實體對象的術(shù)語表?,抽象類與用戶層次上的概念對應嗎?,所有的描述都與用戶定義一致嗎?,所有的實體類和邊界類都使用具有實際含義的名詞短語嗎?,所有的用例和控制類都使用具有實際含義的動詞短語嗎?,所有的異常情況都被描述和處理了嗎?,是否描述了系統(tǒng)的啟動和關(guān)閉?,是否描述了系統(tǒng)功能的管理?,28,檢查分析模型,檢查“完整性”,每一個分析類都是用例需要的嗎?它在什么用例中被創(chuàng)建、,修改和刪除?是否存在邊界類可以訪問它?,每一個屬性是在什么時候設置的?其類型是什么?它是限定,詞嗎?,每一個關(guān)系是在什么時候被遍歷?為什么選定指定的重數(shù)?,一對多和多對多的關(guān)系能被限定嗎?,每一個控制類對象是否有必要訪問參與用例的對象?,29,