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