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