




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第五章 類圖和對象圖學習目標(1)對象類以及類圖的概念(了解)(2)對象之間的關聯(lián)關系(重點掌握)(3)識讀類圖和分析類圖(重點掌握)(4)對象圖、接口基本概念(了解)(5)對象類圖建模的基本步驟以及建模過程中應注意的問題(了解)任務分析 S tu d e n t n a m e : S trin g stu d e n tID : S trin g h o m e A d d re ss : S trin g e n ro llD a te : D a te U n iv e rsity n a m e : S trin g a d d re ss : S trin g p h o n e
2、N u m b e r : S trin g fa x N u m b e r : S trin g a d d S tu d e n t(stu d : S tu d e n t) : in t re m o v e S tu d e n t(stu d : S tu d e n t) : in t g e tN u m o fS tu d e n ts() : in t a d d D e p t(d e p t : D e p a rtm e n t) : in t re m o v e D e p t(d e p t : D e p a rtm e n t) : in t g e tN
3、 u m o fD e p t() : in t g e tN u m o fTe a c h e r() : in t 1 .n 1 .n C o u rse n a m e : S trin g c o u rse ID : S trin g te x tB o o k : B o o k 0 .n 0 .n Te a c h e r n a m e : S trin g te a c h e rID : S trin g sa la ry : flo a t a d d re ss : S trin g T itle : S trin g 1 .n 0 .n D e p a rtm e
4、n t n a m e : S trin g p h o n e N u m b e r : S trin g fa x N u m b e r : S trin g a d d Te a c h e r(te a c h e r : Te a c h e r) : in t re m o v e Te a c h e r(te a c h e r : Te a c h e r) : in t g e tN u m o fTe a c h e rs() : in t 1 .n 1 1 .n 1 .n 1 1 + d e a n 1 .n 1 .n 1 類圖的概念 描述類、接口、協(xié)作及它們之間關
5、系的圖。 顯示系統(tǒng)中各個類的靜態(tài)結構。 1.1 概述類圖的元素:類(Class)接口(Interface)協(xié)作(Collaboration)依賴關系(Dependency)泛化關系(Generalization)關聯(lián)關系(Association) 實現關系(Realization) 1.2 類 面向對象系統(tǒng)組織結構的核心。 對一組具有相同屬性、操作、關系和語義的對象的抽象。 包括名稱部分(Name)、屬性部分(Attribute)和操作部分(Operation)。 1.2 類 1 名稱 2 屬性 3 操作 4 職責 5 約束 6 注釋名稱 應該來自系統(tǒng)的問題域。 應該是一個名詞,且不應該有前綴
6、或后綴。 分為簡單名稱和路徑名稱。 屬性 描述了類在軟件系統(tǒng)中代表的事物(即對象)所具備的特性。 類可以有任意數目的屬性,也可以沒有屬性。 在UML中,類屬性的語法為:屬性 1. 可見性 2. 屬性名 3. 類型 4. 初始值(1) 可見性類型:公有(Public) “”私有(Private)“”受保護(Protected)“” (2) 屬性名 每個屬性都必須有一個名字以區(qū)別于類中的其他屬性。 屬性名由描述所屬類的特性的名詞或名詞短語組成。 單字屬性名小寫,如果屬性名包含了多個單詞,這些單詞要合并,且除了第一個單詞外其余單詞的首字母要大寫。 (3) 類型 簡單類型:整型布爾型實型枚舉類型系統(tǒng)中
7、的其他類 (4) 初始值 目的:保護系統(tǒng)的完整性,防止漏掉取值或被非法的值破壞系統(tǒng)的完整性。為用戶提供易用性。 操作 對類的對象所能做的事務的抽象。 一個類可以有任意數量的操作或者根本沒有操作。 返回類型、名稱和參數一起被稱為操作簽名。 在UML中,類操作的語法為:操作 1. 可見性 2. 操作名 3. 參數表 4. 返回類型(1) 可見性類型:公有(Public) “”私有(Private) “”受保護(Protected) “”包內公有(Package) “”(2) 操作名 用來描述所屬類的行為的動詞或動詞短語。 單字操作名小寫,如果操作名包含了多個單詞,這些單詞要合并,并且除了第一個單詞
8、外其余單詞的首字母要大寫。 (3) 參數表 一些按順序排列的屬性定義了操作的輸入。 是可選的,即操作不一定必須有參數才行。 定義方式:“名稱:類型”。 若存在多個參數,將各個參數用逗號隔開。 參數可以具有默認值。 (4) 返回類型 是可選的,即操作不一定必須有返回類型。 絕大部分編程語言只支持一個返回值。 具體的編程語言一般要加一個關鍵字void來表示無返回值。 1.3 接口 在沒有給出對象的實現和狀態(tài)的情況下對對象行為的描述。 包含操作但不包含屬性。 沒有對外界可見的關聯(lián)。 一個類可以實現一個或多個接口。1.3 接口 接口類:1.4 類之間的關系 1 關聯(lián)關系 2 聚合和組合關系 3 泛化關
9、系 4 依賴關系 5 實現關系關聯(lián)關聯(lián) (1). 關聯(lián)的定義 關聯(lián)(association): 模型元素之間的一種語義聯(lián)系,它是對具有共同的結構特性、行為特性、關系和語義的鏈的描述。 關聯(lián)可以分為單向關聯(lián),雙向關聯(lián)。 單向關聯(lián)單向關聯(lián)雙向關聯(lián)雙向關聯(lián)關聯(lián)關系是指類之間的語義聯(lián)系。關聯(lián)可以具有如下特性:關聯(lián)名稱角色名稱多重性導航性 關聯(lián)名名關聯(lián)名關聯(lián)名如果關聯(lián)關系已經清楚,就無需關聯(lián)名如果關聯(lián)關系已經清楚,就無需關聯(lián)名 關聯(lián)的角色關聯(lián)的角色 在關聯(lián)的每一個端點上有一個角色。每一個角色具有一個名字,用來描述其類被其他的類看作是什么:把它稱為角色名,如果類名與角色名相同,則不標出角色名。類關系通過添
10、加角色來進一步豐富。在類圖中使用角色可以幫助讀者理解第一個類對于第二個類的作用。關聯(lián)的角色關聯(lián)的角色 多重性(MUTIPLICITY) 多重性(mutiplicity)用來指示一個類的多少對象與另一個類的一個對象相關。可以在類關系的任何一端添加多重性,來指示出多重性,如下圖所示。多重性AB有多少A的對象與B的一個對象相關有多少B 的對象與A的一個對象相關?關聯(lián)的角色關聯(lián)的角色關聯(lián)的多重性關聯(lián)的多重性在UML中,常用的關聯(lián)的多重性表示格式如下:0.1 0或11 1* 0或多個8 85,7.10 5或710成績單11學生有一個系11.*教授工作系0.11教授系主任課程0.*0.*學生選修AB類A的
11、代碼:Public class A public B theB; public A() 類B的代碼:Public class B public B() 如果關聯(lián)是單向的,則稱為導航關聯(lián)。導航性描述了源對象通過鏈接訪問目標對象。箭頭表明了導航的方向性,只有源對象才能訪問目標對象,反之,目標對象不能訪問源對象。導航性導航性案例分析 根據下列描述畫出類圖,并注明多重性關系。 一個學生可以選修多門課程,也可能不選任何課程;一門課程可以被多個學生選;一個老師可以教多門課程也可以不教;每門課程至少有一個老師教,也可以有多個老師教;每門課程可以有0本或1本教材,每本教材只能用于一門課程。(2)聚合聚合 聚集
12、和組合 聚合聚合(aggregation): 表示類之間一種松散的整體與部分的組成關表示類之間一種松散的整體與部分的組成關系,是一種特殊的關聯(lián)。系,是一種特殊的關聯(lián)。表示“整體/部分”的關聯(lián)關系。“has a ”,表示聚合中的每一個部分可以屬于其它整體。 被表示為在整體的一端用一個空心菱形修飾的簡單關聯(lián)聚合 組合組合(composition): 表示類之間一種緊密的整體與部分的組成表示類之間一種緊密的整體與部分的組成關系,也是一種特殊的關聯(lián)。關系,也是一種特殊的關聯(lián)。表示組合中的每一個部分只能屬于一個整體 組合確實只是一種特殊的關聯(lián),用整體端有實心菱形箭頭的簡單關聯(lián)修飾它。組合 3. 聚集與組
13、合的區(qū)別聚集與組合的區(qū)別 聚集松散聚集松散, ,組合緊密組合緊密; ; 一個部分事物對象可以屬于多個聚集對象一個部分事物對象可以屬于多個聚集對象, ,但一但一個部分事物對象僅能屬于一個組合對象個部分事物對象僅能屬于一個組合對象; ; 聚集的對象生命周期可以不同聚集的對象生命周期可以不同, ,但組合對象則是但組合對象則是同存同亡。同存同亡。 聚集與組合的區(qū)別(3) 泛化 泛化泛化(generalization): 表示事物之間的表示事物之間的一般與特殊的關系。也可以稱為繼承關系。一般與特殊的關系。也可以稱為繼承關系。表示“一般/特殊”關系。“is-a-kind-of” 也就是繼承關系 帶空心箭頭
14、的實線表示,箭頭指向父元素。 ShapeCircle泛化 泛化的目的 自頂向下的屬性繼承。可以使得子類共享父類的屬性和操作,實現繼承。 自底向上的實例替換。可以使得子類的實例用于任何父類被聲明使用的地方,實現多態(tài)。泛化的表示泛化的表示:例子例子表示表示(4) 依賴 依賴依賴(dependency): 表示兩個元素表示兩個元素X、Y,如果,如果X的變化必然導致的變化必然導致Y的變化,則稱的變化,則稱Y依賴依賴X。 依賴 依賴的表示依賴的表示:例子例子表示表示依賴依賴使用依賴表示客戶使用提供者提供的服務以實現它的行為,包括:使用(use) 最常用的依賴,它聲明使用一個模型元素需要用到已存在的另一個
15、模型元素,這樣才能實現使用者的功能。調用(call)操作間的依賴,它聲明了一個類調用其他類的操作方法。參數(parameter)操作和類之間的依賴,它描述的是一個操作和它的參數之間的關系。發(fā)送(send)信號發(fā)送者和接收者之間關系,規(guī)定客戶把信號發(fā)送到非指定的目標。實例化(instantiate)一個類的方法創(chuàng)建了另一個類的實例聲明,它規(guī)定客戶創(chuàng)建目標元素的實例。(5) 實現 一個元素完成另外一個元素的操作功能,則二者之間構成實現關系。 如接口類及其實現;接口沒有屬性,只有聲明的操作方法(對于方法沒有實現部分),而由實現類具體定義實現部分。關聯(lián)類 進一步描述關聯(lián)的屬性、操作以及其他信息。關聯(lián)類
16、通過一條虛線與關聯(lián)連接。 圖5.6 使用關聯(lián)類的關聯(lián) 案例分析 創(chuàng)建一個類圖。下面給出創(chuàng)建類圖所需的信息。 學生(student)可以是在校生(undergraduate)或者畢業(yè)生(graduate)。 在校生可以是助教(tutor)。 一名助教指導一名學生。 教師和教授屬于不同級別的教員。 一名教師助理可以協(xié)助一名教師和一名教授,一名教師只能有一名教師助理,一名教授可以有5名教師助理。 教師助理是畢業(yè)生。創(chuàng)建類圖的步驟如下:(1)將學生可以是在校生或者畢業(yè)生建模為3個類:Student、UnderGraduate和Graduate,其中,后兩個類是Student類的子類。(2)為“在校生可
17、以是助教的一種”建立模型,即建立UnderGraduate類的另一個超類Tutor。(3)通過創(chuàng)建從Tutor到Student的關聯(lián)(名為tutors),建立一名助教指導一名學生的模型。(4)將“教師和教授屬于不同級別的教員”建模為3個類:Instructor、Teacher和Professor,其中,后兩個類是Instructor類的子類。(5)建立“一名教師助理可以協(xié)助一名教師和一名教授,一名教師只能有一名教師助理,一名教授可以有5名教師助理”的模型。創(chuàng)建TeacherAssistant類,并使其與Teacher類和Professor類都建立關聯(lián)。(6)將TeacherAssistant類
18、建模為Graduate類的派生類。2 類圖建模技術 6.2.1 對簡單協(xié)作建模 6.2.2 對邏輯數據庫模式建模 6.2.3 正向工程和逆向工程2.1 對簡單協(xié)作建模識別要建模的機制。對每種機制,識別參與協(xié)作的類、接口和其他協(xié)作,并識別這些事物之間的關系。用協(xié)作的腳本檢測事物。把元素和它們的內容聚合在一起。2.2 對邏輯數據庫模式建模 在模型中識別的類,其狀態(tài)必須超過其應用系統(tǒng)的生命周期。創(chuàng)建包含這些類的類圖,并把它們標記為永久的。展開這些類的結構性細節(jié),并注重于關聯(lián)和構造類的基數。觀察系統(tǒng)中的公共模式,必要時可以創(chuàng)建簡化邏輯結構的中間抽象。考慮這些類的行為,擴展對數據存儲和數據完整性來說重要
19、的操作。如果有可能,用工具把邏輯設計轉換成物理設計。 3 對象圖 描述參與一個交互的各個對象在交互過程中某一時刻的狀態(tài)。 可以被看作是類圖在某一時刻的實例。 -58-分析類:達成目標的第一步-59-4. 從用例行為中識別分析類 在對象技術中,一個用例的全部行為都是由相應的類來完成的 這些行為必須被分配到類中 分析階段就是對這個過程的第一次嘗試 這是一個從“無”到“有”的跨越-60-什么是分析類 分析類代表了“系統(tǒng)中必須具備職責和行為的事物”的早期概念模型 分析類處理主要的功能需求,模型化問題域對象 根據備選構架定義三類分析類 邊界類:系統(tǒng)及其參與者的邊界 控制類:系統(tǒng)的控制邏輯 實體類:系統(tǒng)使
20、用的信息-61-邊界類 邊界類表示系統(tǒng)與參與者之間的邊界 代表系統(tǒng)與環(huán)境的交互 是接口和外部事物的中間體 構造型 兩類邊界類 用戶界面類 系統(tǒng)和設備接口類-62-示例:識別邊界類 每對參與者/用例定義一個邊界類-63-指南:邊界類 關注職責,而不是細節(jié) 用戶界面類 關注展示給用戶的信息 不關注用戶界面細節(jié) 系統(tǒng)和設備接口類 關注系統(tǒng)必須定義的協(xié)議 不關注協(xié)議如何實現-64-控制類 控制類表示系統(tǒng)的控制邏輯 系統(tǒng)行為的協(xié)調器 構造型 識別控制類 在系統(tǒng)開發(fā)早期,為一個用例定義一個控制類,負責該用例的控制邏輯 針對復雜用例,可為備選路徑分別定義不同控制類-65-示例:識別控制類 通常,每個用例定義
21、一個控制類 隨著分析的繼續(xù),一個復雜用例的控制類可以發(fā)展為多個-66-實體類 實體代表了待開發(fā)系統(tǒng)的核心概念 實體類提供了另一個理解系統(tǒng)的觀點 顯示了系統(tǒng)的邏輯數據結構 傳統(tǒng)的面向對象方法就是從這個角度進行分析和設計 使用構造型 可以從以下中找到實體類 用例事件流(需求) 、業(yè)務模型(業(yè)務建模) 、詞匯表(需求)-67-識別實體類 分析用例事件流中的名詞、名詞短語找出系統(tǒng)所需的實體對象,這些名詞可能是: 對象、對象的特征和狀態(tài) 參與者、描述信息、系統(tǒng)之外的 從這些名詞、名詞短語中進行篩選,抽取出系統(tǒng)對象,并抽象成類 綜合考慮在系統(tǒng)中的意義、作用和職責 對于所識別的類進行命名-68-指南:名詞篩
22、選法識別實體類 名詞篩選法識別實體類的基本思路: 將用例文檔作為輸入,找出文檔中的名詞或名詞性短語,形成了實體類初始候選列表 合并那些含義相同的名詞 刪除那些系統(tǒng)不需要處理的名詞 刪除作為參與者的名詞 刪除與實現相關的名詞 刪除那些作為其它實體類屬性的名詞 對剩余的名詞,綜合考慮它在當前用例以及整個系統(tǒng)中的含義、作用以及職責,并基于此確定合適的名字,作為初始實體類存在-69-實體類的其它來源 除了用例文檔之外,從與用戶和專家進行的訪談中得到的信息,也可作為實體類的來源 系統(tǒng)原始需求書/問題描述 該領域相關文獻、專家意見或個人知識 過去的類似系統(tǒng) 在后面的職責分配中可能識別一些新的實體類 實體類的命名要用該領域中最經常使用的名稱-70-示例:候選實體類 “支付”用例基本路徑中的候選實體類-71-示例:總結:分析類-72-總結:從用例中識別分析類-73-實例-旅店預訂系統(tǒng)中識別分析類-74-實例-旅游申請系統(tǒng)中的分析類-75-3. 將用例行為分配給類 面向對象系統(tǒng)是通過對象間的協(xié)作實現需求的 需求階段通過自然語言描述 分析設計階段采用圖形化方式描述協(xié)作過程 利用交互圖將用例行為分配給分析類類圖和對象圖的區(qū)別 類圖 對象圖 類具有三個分欄:名稱、屬性和操作對象只有兩個分欄:名稱和屬性在類的名稱分欄中只有類名對象的名稱形式為“對象名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DZ/T 0276.27-2015巖石物理力學性質試驗規(guī)程第27部分:巖體變形試驗(鉆孔變形法)
- DZ/T 0175-2014煤田地質填圖規(guī)范1∶50 0001∶25 0001∶10 0001∶5 000
- DZ/T 0166-1995實驗室用單槽浮選機
- DZ/T 0002.3-1997含煤巖系鉆孔巖芯描述標準-巖性巖類部分
- DZ 47-1987石油地震勘探技術規(guī)范
- CJ/T 508-2016污泥脫水用帶式壓濾機
- CJ/T 5013.1-1995垃圾分選機垃圾滾筒篩
- CJ/T 438-2013單體澆鑄尼龍-鋼復合管材和管件
- CJ/T 253-2007鋼塑復合壓力管用管件
- CJ/T 132-2014家用燃氣燃燒器具用自吸閥
- T/BCEA 001-2022裝配式建筑施工組織設計規(guī)范
- 2025年《高級養(yǎng)老護理員》考試練習題庫含答案
- 骨科手術圍手術期管理
- 中學生英語詞匯表3500(全)
- 2025年檔案法制知識競賽題庫(含答案)
- 2025年福建省中考生物沖刺卷模擬檢測卷(含答案)
- 2025國家開放大學《人類發(fā)展與環(huán)境保護》形成性考核123答案+終結性考試答
- 【MOOC】電子技術實驗-北京科技大學 中國大學慕課MOOC答案
- 《綜合能源供應服務站建設規(guī)范》
- 關于南通城市規(guī)劃評價分析
- 上海市互聯(lián)網租賃自行車管理辦法
評論
0/150
提交評論