《西南民族大學 UML復習參考》由會員分享,可在線閱讀,更多相關《西南民族大學 UML復習參考(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一部分 “UML相關”內容
1、UML是統(tǒng)一建模語言;建模語言是建模中的一個非常關鍵的因素。
2、OO開發(fā)的每個階段都可以用UML模型對系統(tǒng)建模,從系統(tǒng)不同的角度可以分為:(UML中的圖形標記非常適用于面向對象的軟件設計)
●類模型(提供數(shù)據(jù)模型):包圖、對象圖、類圖
●狀態(tài)模型(各對象的控制結構):狀態(tài)圖
●交互模型(對象間信息交換,系統(tǒng)的整體視圖):用例、順序圖、活動圖
針對系統(tǒng)構架:
●構件圖、配置圖
3、UML的重要內容——九種圖形
4、UML六大關系
判斷題:不是一種可視化編程語言,而是一種可視化建模語言;不是工具或知識庫的規(guī)
2、格說明,而是建模語言的規(guī)格說明,是一種表示的標準;不是過程,也不是方法,但是允許任何一種過程和方法使用它
§ 關聯(lián)關系(Association)
§ 聚合關系(Aggregation)
§ 組合關系(Composition)
§ 依賴關系(Dependency)
§ 實現(xiàn)關系(Realization)
§ 泛化關系(Generalization)
5、工具Rose
Use Case視圖包括系統(tǒng)中所有的角色、用例和用例圖 可能包括:序列圖、協(xié)作圖和活動圖
6、UML特點:工程化、規(guī)范化、可視化、系統(tǒng)化、文檔化和智能化。
第二部分 “面向對象”相關內容
1
3、、繼承:如果類B繼承類A,那么類A中描述的操作和信息結構將成為類B的一部分。
借助繼承,可以表示類之間的類似性,并且在其他類能繼承的一個類中描述這些相似性。因此,就能夠復用公共的描述。繼承還有利于軟件維護。
通過抽取和共享公共特性就能夠通用化一些類,并且把它們放在繼承層次的更高位置。同樣,如果希望增加新類,可以尋找這樣一個類,它已經提供了適用于該新類的某些操作和信息結構。然后,讓新類繼承這個類,只需增加該新類所獨有的那些內容。然后,使這個類專用化。
2、多態(tài):指同一個實體同時具有多種形式(相同的操作會產生不同的動作)。
在面向對象語言中,接口的多種不同的實現(xiàn)方式
4、即為多態(tài)(同樣的函數(shù)在不同的類上有不同的行為或動作)。分為靜態(tài)動態(tài)(同一個類中同名方法在功能上的重載)和動態(tài)動態(tài)(子類方法對父類相同聲明的方法的覆蓋)。多態(tài)性:是指同一個消息為不同的對象接收時,可產生不同的動作或執(zhí)行結果。
3、接口
接口是一種約束形式,其中只包括成員定義,不包含成員實現(xiàn)的內容。
接口的主要目的是為不相關的類提供通用的處理服務。
當類實現(xiàn)一個接口,它就許諾實現(xiàn)在那個接口中執(zhí)行所有的方法。
4、信息隱蔽和局部化——封裝
5、繼承與派生
6、可視性:(類的屬性與代碼實現(xiàn)中可能用到)
? 若可視性標記為“+”或“public”,則為公共屬性,可以
5、被外部對象訪問。
? 若可視性標記為“#’或“ protected”,則為保護屬性,可以被本類或子類的對象訪問。
? 若可視性標記為“-”或“ private”,則為私用屬性,不可以被外部對象訪問,只能為本類的對象使用。
? 可視性可以缺省,表示該屬性不可視。
第三部分 “類模型”相關內容
1、類的定義:類是具有相似結構、行為和關系的一組對象的描述符。使用出現(xiàn)在系統(tǒng)中的不同類來描述系統(tǒng)的靜態(tài)結構,類圖用來描述不同的類和它們的關系。
2、類的表示和對象圖的表示。
類名(首字母大寫)
屬性(屬性列表:類型=默認值)
操作(操作列表:參數(shù)、結果)
對象名:類名
屬性值
操作
6、
3、對象圖:
對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。
4、類之間的關系:
類之間的關系包括關聯(lián)關系、依賴關系、泛化關系和實現(xiàn)關系,其中關聯(lián)關系又包括雙向關聯(lián)、單向關聯(lián)、自關聯(lián)、多重性關聯(lián)、聚合關系和組合關系。
5、類的關聯(lián)關系:關聯(lián)關系是類與類之間最常用的一種關系,它是一種結構化關系,用于表示一類對象與另一類對象之間有 (has a)聯(lián)系。
public class Person
{
????private Bicycle bicycle; /** 騎自行車去上班 */
7、
????public void goToWork()
{
????????bicycle.run();
????}
}
(1)單向關聯(lián):
(2)雙向關聯(lián):
(3)多重關聯(lián):
(4)自關聯(lián):一個類的兩個對象間的關聯(lián)。
(5)關聯(lián)的約束:關聯(lián)可加上一些約束,以加強關聯(lián)的含義;
①排序:用{ordered}表示類的對象需要排序,不允許重復值
②對于一對對象,二元關聯(lián)通常至多有一個鏈接,在關聯(lián)端標注{bag}、{sequence},允許在一對對象上有多重鏈接。
? 包(bag):無序,可重復(允許重復值的元素集合)
? 序列(sequence
8、):有序,可重復(允許重復值的有序元素集合)
? 序列關聯(lián)是一個有序包,而有序關聯(lián)是一個有序集合。
(6)鏈接是關聯(lián)的實例。
6、類的限定關系(限定符):將有效的多重性從“多”降為“一”。
7、類的泛化關系:泛化關系也就是繼承關系,也稱為“is-a”關系,泛化關系用于描述父類與子類之間的關系。泛化關系用帶空心三角形的直線來表示。箭頭指向父類。
8、類的實現(xiàn)關系:接口之間也可以有與類之間關系類似的繼承關系和依賴關系,但是接口和類之間還存在一種實現(xiàn)關系,在這種關系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作。類與接口之間的實現(xiàn)關系用帶空心三角形的虛線來表示。
9、將一
9、個類的對象作為另一個類的屬性。
《關鍵字》
枚舉名
枚舉值
第四部分 “高級對象”相關內容
1、本章包含(類圖建立系統(tǒng)模型時可以添加的細節(jié)):枚舉、多重性(屬性多重性方向)、作用域、可見性、關聯(lián)終端、N元關聯(lián)、抽象類、多重繼承、聚合、組合、元數(shù)據(jù)、具體化、約束、派生數(shù)據(jù)和包。
2、枚舉:由有限取值集合組成的一種數(shù)據(jù)類型。
? 枚舉是指同一類中具有共同屬性和行為的對象,只是值不同;
? 泛化則是指具有一些相同屬性和行為的對象,但是有一些重要屬性或行為不能完全相同。
? 枚舉與泛化的不同(語義和UML表達):不構成繼承關系為枚舉,枚舉只是一列值。
3、多重性:屬性多重性為屬性
10、的每個實例確定可能取值的數(shù)目。
4、作用域:在類作用域里使用屬性來保持類的范圍。屬性作用域需要有下劃線,不能修改;對象作用域沒有下劃線,可以修改。
5、聚合:是一種強類型的關聯(lián),其中一個聚集對象由多個部件構成。兩個對象部分-整體關系緊致綁定的話,這種關系就是一個聚合。表示方法為一個小菱形指整體。一般聚合其實指的就是has a的關聯(lián)模式。
6、組合:在聚合的基礎上,有更多的限制則為組合。一個組成部件至多屬于一個裝配件。表示方法為一個實心菱形。
7、抽象類:指沒有直接實例的類,但其子孫類有直接的實例。具體類是指可以實例化的類。
8、多重繼承:允許某個類有多個父類,并繼承所有父類的特征。
11、
9、元數(shù)據(jù):描述其他數(shù)據(jù)的數(shù)據(jù),類的定義就是元數(shù)據(jù)。
10、具體化:把不是對象的實體提升為對象的過程。
11、派生數(shù)據(jù):(從多重性導出屬性值)
? 派生元素是可以從其它元素計算出來的元素
? 不增加語義信息,但是有了派生元素可以更清楚或者更有利于設計
? 其表示法是在派生元素的名字前加一條斜線“/”
12、shape類和三角形、矩形、圓形等,父類不具有之類的特征,而不僅僅是值不同。
第五部分 “狀態(tài)模型”相關內容
1、狀態(tài)圖概述:主要由起點、終點和狀態(tài)組成,各狀態(tài)由轉移連接在一起 。適合于描述跨越多個用例的單個對象的行為。由狀態(tài)、事件和轉換三個主要元素構成。
2、事件:
12、是指在某個時刻發(fā)生的事情。可以是內部的事件或外部的事件
– 外部事件是在系統(tǒng)和參與者之間傳送的事件。
– 內部事件是在系統(tǒng)內部的對象之間傳送的事件。
3、事件的分類:信號事件(發(fā)送或接收信號)、調用事件、變更事件和時間事件。
① 調用事件:是指一個對象對操作調用的接收,是表示對操作的調度。
– 接收的類可以選擇將操作實現(xiàn)為一個方法或實現(xiàn)為狀態(tài)機里的一個調用事件觸發(fā)器。
– 信號是一個異步事件,而調用事件一般來說是同步的。也就是說,當對象調用另一對象的操作時,控制就從發(fā)送者傳送到接收者,該事件觸發(fā)轉換,完成操后,接收者轉換到一個新的狀態(tài),控制返還給發(fā)送者。
②變更事件:
13、因滿足某種條件而引起的事件,變化條件用when表示。(如:When sum>10)
③時間事件:滿足某一時間表達式而引起的事件,時間事件用after,when表示(when后面僅跟時間表達式,after后面跟時間間隔或時間段)。(如:after( 10 seconds ) ).
4、狀態(tài):是可識別的情況,能夠存在一段時間。表示連續(xù)兩個時間之間的間隔。事件和時間之間有某種對稱性。事件表示時間點,狀態(tài)表示時間段。
5、遷移:指從一個狀態(tài)到另一個狀態(tài)的瞬時變化。
第六部分 “交互模型”相關內容
一、用例圖
1、參與者:是系統(tǒng)的外部用戶,直接與系統(tǒng)通信的一個對象或一組對象,但并不
14、是系統(tǒng)的一部分。每個參與者都表示以某種方式對系統(tǒng)起作用的那些對象。
2、用例:代表系統(tǒng)提供的服務;是系統(tǒng)通過與參與者的交互可以提供的一段連貫的功能。
3、關系:關聯(lián)關系(Association)、泛化關系(Generalization)、包含關系(Include)、擴展關系(Extend)等
⑴參與者與用例之間:關聯(lián)關系(描述參與者與使用用例之間的關系。在UML中,關系用實線表示,實線可以有箭頭,也可以沒有箭頭。)
⑵用例與用例之間:泛化關系(Generalization)、包含關系(Include)、擴展關系(Extend)
①包含關系(Include):指兩個用例之間的關系,其中
15、一個用例(即基本用例)的行為包含了另一個用例(即包含用例)的行為。包含關系中箭頭的方向是從基本用例到包含用例
<>
處理等候隊列
預訂座位
②擴展關系(Extend):擴展關系允許一個用例(可選)擴展另一個用例的功能。擴展只能發(fā)生在基本用例的序列中某個特定的點上,這個點叫擴展點。擴展關系中基本用例本身是完整的。擴展關系中,箭頭的方向是從擴展用例到基本用例。(用來表示一個用例的行為擴展了另一個用例的行為;使用帶虛線箭頭表示,并在線上標有構造型<>)
③包含關聯(lián)與擴展關聯(lián)的區(qū)別:存在包含關聯(lián)的兩個用例,用例必須包含被包含用例;存在擴展關聯(lián)的兩個用例則
16、有使用被擴展用例的選擇權。
④泛化關系(Generalization):泛華關系其實是子類與父類的關系。和類之間的泛化關系一樣,用例和參與者也可以繼承另一個用例和參與者。
⑶參與者與參與者之間:泛化關系(Generalization)
4、所有的用例都放置在系統(tǒng)邊界內,表明它屬于一個系統(tǒng)。角色則放在系統(tǒng)邊界的外面,表明角色并不屬于系統(tǒng)。但是角色負責直接(或間接地)驅動與之關聯(lián)的用例的執(zhí)行。
5、用例圖描述了一組用例、參與者以及它們之間的關系。參與者用人形圖形表示,用例用橢圓形符號表示,連線表示它們之間的關系。
二、順序圖
1、生命線是對象圖標向下延伸的虛線, 表示對象生存時
17、間。
2、控制焦點(Focus of Control)又稱為激活期(Activation), 用生命線上的小矩形表示, 在這個時間段內, 對象執(zhí)行相應的操作。對象執(zhí)行某個動作的時期。
3、建立順序的步驟:
①確定交互的范圍 ②識別參與交互的對象和活動者 ③設置對象生命線的開始和結束
⑤設置消息 ⑥細化消息
三、活動圖
1、顯示了組成復雜過程的步驟序列;主要用于描述算法和工作流;在設計算法和工作流的早期階段最為有用 ;活動圖的目標 ;顯示復雜過程內部的各個步驟以及它們之間的順序約束。
注意:
1)活動圖可以顯示控制流,但專注于操作而不是對象
2)
18、活動圖中的各項活動要有相同的細節(jié)層次
2、例子:處理股票交易定單1)拉長了的橢圓:活動 ;2)箭頭:活動的順序;3)菱形:決策點;4)粗線條:并發(fā)線程的分流和合并.
3、活動圖的元素:
⑴泳道:為組織活動圖而對活動進行的分組,用來劃分狀態(tài)圖的狀態(tài);每個泳道代表整個活動的部分高級職責;整個活動可能最后由一到多個泳道實現(xiàn);使用泳道可以把活動按照功能或所屬對象的不同來進行組織;屬于一個對象的所有活動都放在同一個泳道內,對象的名字放在泳道的頂部。
⑵業(yè)務模型中了解哪個組織負責某項活動時使用;把一項活動放在某條泳道中表明它會由組織內的某個人或某些人執(zhí)行。
⑶主要要素:起點和終點、活動、轉移
19、、接收信號和發(fā)送信號、決策點和匯合點、分叉和匯合、控制流終點、泳道。
第七部分 “系統(tǒng)構架”相關內容
1、組件圖
從"報告工具"組件指向歌曲排行、ASP .NET API和ADO .NET組件的帶箭頭的線段,表示"報告工具"依賴于那三個組件。
比如”歌曲排行“這個框屬于軟件構件,而虛線箭頭表示依賴關系。
2、部署圖
? 部署圖用來描述系統(tǒng)的硬件配置、硬件部署以及軟件構件和模塊在不同節(jié)點上分布的模型圖。
? 描述了系統(tǒng)運行時的硬件節(jié)點,以及在這些節(jié)點上運行的軟件構件的靜態(tài)視圖。
? 顯示了系統(tǒng)中的硬件、安裝在硬件上的軟件,以及用于連接異構的機器之間的中間件。
20、? 部署圖中通常包含2個元素
? 節(jié)點(Node)
? 關聯(lián)關系(Association)
? 部署圖可以顯示節(jié)點以及它們之間的必要連接,也可以顯示這些連接的類型,還可以顯示構件和構件之間的依賴關系,但是每個構件必須存在于某些節(jié)點上。
第八部分 “領域類模型”相關內容
1、分析需求的第一步是構造領域模型
領域模型主要包括類模型、狀態(tài)模型,少有交互模型,是系統(tǒng)的靜態(tài)模型
? 領域模型顯示了真實系統(tǒng)的靜態(tài)結構,并把系統(tǒng)劃分成可工作的片段
? 領域模型描述真實世界的類以及它們之間的相互關系
? 在分析過程中,類模型的優(yōu)先級要高于狀態(tài)和交互模型,這是因為靜態(tài)結構容易更好地
21、定義,而且會較少地依賴應用程序的細節(jié),并且當解決方案發(fā)生演化的時候會更加穩(wěn)定
? 領域模型的信息來自于問題陳述、其他相關系統(tǒng)的制品、專家對應用領域的了解以及對真實世界的總的認識
2、創(chuàng)建領域類模型,必須要經過下面幾個步驟:
? 尋找類[12.2.1~12.2.2節(jié)]
? 準備數(shù)據(jù)字典[12.2.3節(jié)]
? 尋找關聯(lián)[12.2.4~12.2.5節(jié)]
? 尋找對象和鏈接的屬性[12.2.6~12.2.7節(jié)]
? 使用繼承組織和簡化類[12.2.8節(jié)]
? 驗證可能查詢的訪問路徑[12.2.9節(jié)]
? 迭代并細化模型[12.2.10節(jié)]
? 重新考慮抽線的層次
? 把類編組成包
壓軸大題:
一個電子書刊流通服務例子,指數(shù)字圖書館電子書刊基本流通服務。用戶向流通子系統(tǒng)的用戶接口登錄,經用戶合法性驗證后,向流通子系統(tǒng)的電子書刊流通模塊提交服務請求,電子書刊需要經過版權和復本的驗證,以保證電子書刊的每一個復本在同一時間只允許一個用戶借閱或閱讀。比如購買了一本電子書的五個復本,那么就可以有五個用戶同時借閱或閱讀這本書,而且必須能夠控制用戶對電子書刊的任意復制和打印,以保護電子書刊出版者的合法權益。然后就可以完成電子書刊的借、還、預約、續(xù)借等流通服務,最后退出。
用例圖:
類圖:
順序圖