UML
UML(統(tǒng)一建模語言)是通用的可視化標準建模語言。由構造塊、公共機制、構架三部分組成。
1、構造塊:包括基本的UML建模元素(類、接口、用例等)、關系(關聯(lián)關系、依賴關系、泛化關系、實現(xiàn)關系)和圖(9種圖形,分為靜態(tài)模型和動態(tài)模型)
2、公共機制:包括規(guī)格說明、修飾、公共分類、擴展機制
3、構架:系統(tǒng)的五個視圖,邏輯視圖、進程視圖、實現(xiàn)視圖、部署視圖、用例視圖
UML包括9種不同的圖,分為表示系統(tǒng)靜態(tài)結構的靜態(tài)模型(類圖、構件圖、部署圖),表示系統(tǒng)動態(tài)結構的動態(tài)模型(對象圖、用例圖、序列圖、協(xié)作圖、狀態(tài)圖、活動圖)
掌握由什么組成、實現(xiàn)什么功能、用在什么地方
用例圖
一個用例定義一組用例實例,它確定了一個和系統(tǒng)參與者進行交互,并可由系統(tǒng)執(zhí)行的動作序列。用例模型描述外部執(zhí)行者所理解的系統(tǒng)功能。表明了開發(fā)者和用戶對需求規(guī)格達成的共識,用于需求分析階段。
用例圖的元素
1、參與者:代表與系統(tǒng)接口的任何事物或人,它是指代表某一特定功能的角色,是虛擬的概念
2、用例:用例實例是在系統(tǒng)中執(zhí)行的一系列動作。是對系統(tǒng)行為的動態(tài)描述,可以促進設計人員、開發(fā)人員與用戶的溝通,理解正確的需求,還可以劃分系統(tǒng)與外部實體的界限,是系統(tǒng)設計的起點。
3、包含和擴展:兩個用例之間的關系分為兩種,一種是用于重用的包含關系,用include表示,一種是用于分離出不同的行為,用extend表示
包含關系:從兩個或兩個以上的原始用例(A)中提取出公共行為(B),a與b為包含關系,在包含關系中被包含用例對基用例來說是必須的,如果沒有被包含用例則基用例就不完整。使用包含關系的目的是為了提高組件的重用性。
擴展關系:一個用例由多個用例組成,當其中部分用例并不是每次都發(fā)生的,可將在特定情況下發(fā)生的用例定義為擴展用例,擴展用例對基用例來說不是必須執(zhí)行的動作序列。使用擴展關系的目的是為了提高用例的穩(wěn)定性。
類圖和對象圖
類圖和對象圖揭示了系統(tǒng)的結構,類圖描述類和類之間的靜態(tài)關系,它不僅顯示信息的結構還描述了系統(tǒng)的行為。對象圖是類圖的一個實例,常用于表示復雜的類圖的一個實例。
類之間的關系
1、依賴關系:如果元素A的變化會引起元素B的變化,則稱元素B信賴于元素A,使用帶箭頭的虛線表示依賴關系。依賴關系有一個類向另一個類發(fā)消息,一個類是另一個類的成員,一個類是另一個類的操作參數(shù)等。
2、泛化關系:描述一般事物與該事物特殊種類之間的關系,泛化關系是繼承關系的反關系,使用空心箭頭的實線表示,箭頭指向父類。泛化關系有三個要求:一是子類應包含父類的所有內(nèi)容,父類所具有的關聯(lián)、屬性和操作,子類都應具有;二是子類除了包含父類的信息外,還包括額外的信息;三可以使用父類實例的地方,也可以使用子類實例。
3、關聯(lián)關系:表示兩個類的實例之間存在的某種語義上的聯(lián)系,如一個學校有多間教室,是學校和教室間存在關聯(lián)關系,關聯(lián)關系可分為兩種
聚合關系:是關聯(lián)關系的特例,表示一種松散的整體和部分的關系,如一個電腦包括顯示器,用一個帶空心菱的實線表示。
組合關系:如果部分對整體來說是必不可少的,則稱為組合關系,如公司和部門,用帶有實心菱形的實線表示。
4、實現(xiàn)關系:用來規(guī)定接口與實現(xiàn)接口的類或組件之間的關系,接口是操作的集合,用來規(guī)定類或組件的服務,用帶空心箭頭的虛線表示。
順序圖和協(xié)作圖
順序圖和協(xié)作圖統(tǒng)稱為交互圖,是表示各組對象如何進行協(xié)作的模型,通常用來表示和說明一個用例的行為,順序圖和協(xié)作圖本質上沒有不同,只是排版方式不相同,順序圖強調對象交互行為的時間順序,協(xié)作圖強調對象之間的協(xié)作。
1、順序圖:描述對象之間動態(tài)的交互關系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖可以直觀地表示出對象的生存期,在生存期內(nèi),對象可以對輸入消息做出響應,并可以發(fā)送信息。順序圖存在兩個軸,水平軸表示不同的對象,垂直軸表示時間,即對象、類的生命期。
2、協(xié)作圖:描述相互合作的對象間的交互關系和鏈接關系,側重體現(xiàn)交互對象間的鏈接關系。
狀態(tài)圖
描述對象狀態(tài)和事件之間的關系,通常用來描述單個對象的行為,不適合于表述包括若干協(xié)作的對象行為,通常不需要對每一個類編制狀態(tài)圖,只有那些重要的交互行為的類,如在業(yè)務流程、控制對象、用戶界面的設計方面使用狀態(tài)圖。如數(shù)碼沖印店的訂單狀態(tài)圖。
狀態(tài)圖的元素包括
1、狀態(tài):又稱為中間狀態(tài),用圓角矩形表示;
2、初始狀態(tài):又稱為初態(tài),用一個黑色的實心圓表示,在一張狀態(tài)圖中只能有一個初始狀態(tài)。
3、結束狀態(tài):又稱為終態(tài),在黑色的實心圓外面套上一個空間圓,在一張狀態(tài)圖中可能有多個結束狀態(tài)。
4、狀態(tài)轉移:用箭頭說明狀態(tài)的轉移情況,用文字說明引發(fā)這個狀態(tài)變化的事件。
活動圖
活動圖用來表示系統(tǒng)中各種活動的次序,既可用來描述用例的工作流程,也可用來描述類中某個方法的操作行為,活動圖依據(jù)對象狀態(tài)的變化來捕獲動作與動作的結果。活動圖是由狀態(tài)圖變化而來的,也包括初始狀態(tài)、終止狀態(tài)、中間活動狀態(tài),活動圖中一個活動結束后將立即進入下一個活動,狀態(tài)圖中狀態(tài)的變遷需要事件的觸發(fā)。
活動圖可分為基本活動圖和帶泳道的活動圖,基本活動圖描述系統(tǒng)發(fā)生了什么,帶泳道的活動圖更進一步,可描述出各個活動由哪個類完成。
構件圖
構件圖是面向對象系統(tǒng)的物理方面進行建模的兩種圖之一,可以有效地顯示一組構件,以及它們之間的邏輯關系。構件圖中通常包括構件、接口、以及各種關系。構件是指源代碼文件、二進制文件和可執(zhí)行文件等。構件圖可對源代碼、可執(zhí)行體、物理數(shù)據(jù)庫進行建模。
部署圖
部署圖也稱為實施圖。是面向對象系統(tǒng)的物理方面建模的圖之一,構件圖是說明構件之間的邏輯關系,部署圖則在此基礎上更進一步,描述系統(tǒng)硬件的物理拓撲結構,以及在此結構上執(zhí)行的軟件。部署圖可以顯示計算結點的拓撲結構和通信路徑、結點上運行的軟件構件,常常用于幫助理解分布式系統(tǒng),可以使系統(tǒng)的安裝、部署更為簡單。主要元素包括節(jié)點和連接、接口和構件。
UML九種圖形總結:
九種圖形總體上可分為靜態(tài)模型圖(類圖、構件圖、部署圖)和動態(tài)模型(用例圖、對象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖),其中順序圖和協(xié)作圖統(tǒng)稱為交互圖,順序圖著重描述對象交互的時間順序,協(xié)作圖著重于描述對象之間的交互和關聯(lián);構件圖和部署圖是對系統(tǒng)進行物理建模的兩種圖形,構件圖是對系統(tǒng)構件進行邏輯建模,部署圖在構件圖的基礎上描述系統(tǒng)的物理拓撲結構,并描述各節(jié)點運行的構件及接口、交互關系等。