閱讀說明:本節(jié)主要是介紹UML基本概念,理論比較多逸尖,主要也是讓大家對UML有一個(gè)初步的認(rèn)識古沥,后面還會(huì)陸陸續(xù)續(xù)的更新更多詳細(xì)的UML開發(fā)應(yīng)用學(xué)習(xí)文章瘸右。直接對接我們當(dāng)下的開發(fā)。
內(nèi)容一:UML概述岩齿?
????1太颤、UML概念?
UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的盹沈、標(biāo)準(zhǔn)的龄章、可視化的建模語言。
????2乞封、UML定義做裙?
分為兩個(gè)部分:UML語義和UML表示法
2.1 UML語義:UML對語義的描述使開發(fā)者能在語義上取得一致認(rèn)識,消除了因人而異的表達(dá)方法所造成的影響锚贱。
2.2?UML表示法:UML表示法定義UML符號的表示法拧廊,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。
????3、UML模型圖構(gòu)成溅漾?
分為三個(gè)部分
3.1?事物:UML模型中最基本的構(gòu)成元素,是具有代表性的成分的抽象
3.2?關(guān)系:關(guān)系把事物緊密聯(lián)系在一起
3.3?圖:圖是事物和關(guān)系的可視化表示
內(nèi)容二:UML模型圖構(gòu)成?
????1往衷、UML事物?
????????UML包含4種事物:構(gòu)件事物汰扭、行為事物、分組事物珊泳、注釋事物
1.1?構(gòu)件事物撞芍?
????概念:UML模型的靜態(tài)部分验毡,描述概念或物理元素。
????包含如下幾種:
????類:具有相同屬性相同操作?相同關(guān)系相同語義的對象的描述(備注:就是在面向?qū)ο箝_發(fā)中類->Class)。
????接口:描述元素的外部可見行為喉脖,即服務(wù)集合的定義說明(備注:就是在面向?qū)ο箝_發(fā)中接口->interface)。
????協(xié)作:描述了一組事物間的相互作用的集合
????用例:代表一個(gè)系統(tǒng)或系統(tǒng)的一部分行為题诵,是一組動(dòng)作序列的集合性锭。
????構(gòu)件:系統(tǒng)中物理存在疲陕,可替換的部件。
????節(jié)點(diǎn):運(yùn)行時(shí)存在的物理元素你踩。
????另外诅岩,參與者、信號應(yīng)用带膜、文檔庫吩谦、頁表等都是上述基本事物的變體。
????注意:我們軟件開發(fā)中更多的是使用類和接口膝藕,使用頻率最高式廷。
1.2?行為事物?
????概念:UML模型圖的動(dòng)態(tài)部分芭挽,描述跨越空間和時(shí)間的行為滑废。
????包含如下幾種:
????交互:實(shí)現(xiàn)某功能的一組構(gòu)件事物之間的消息的集合,涉及消息袜爪、動(dòng)作序列蠕趁、鏈接。
????狀態(tài)機(jī):描述事物或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷狀態(tài)序列辛馆。
1.3?分組事物
????????????概念:UML模型圖的組織部分俺陋,描述事物的組織結(jié)構(gòu)
????????????包含如下幾種:
????????包:把元素組織成組的機(jī)制(備注:類似于Java開發(fā)中的package)。
1.4?注釋事物
????????????概念:UML模型的解釋部分昙篙,用來對模型中的元素進(jìn)行說明倔韭,解釋。
????????????包含如下幾種:
????????注解:對元素進(jìn)行約束或解釋的簡單符號(備注:類似于Java開發(fā)中的注視瓢对,每一個(gè)語言中都有注釋)寿酌。
????2、UML關(guān)系硕蛹?
????????2.1?依賴關(guān)系:兩個(gè)事物之間的語義關(guān)系醇疼,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化,會(huì)影響到另一個(gè)事物(依賴事物)法焰。
????????2.2?關(guān)聯(lián)關(guān)系:是一種結(jié)構(gòu)關(guān)系秧荆,它指明一個(gè)事物的對象與另一個(gè)事物的對象間的聯(lián)系。
????????2.3?泛化關(guān)系:是一種特殊/一般的關(guān)系埃仪。也可以看作是常說的繼承關(guān)系乙濒。
????????2.4?實(shí)現(xiàn)關(guān)系:是類元之間的語義關(guān)系,其中的一個(gè)類元指定了由另一個(gè)類元保證執(zhí)行的契約。也就是我們通常所說的Java實(shí)現(xiàn)接口(備注:iOS中經(jīng)常說遵循協(xié)議或者實(shí)現(xiàn)協(xié)議)颁股。
????3么库、UML圖?
????????UML圖的種類總共分為8大類
????????3.1?用例圖(Use Case Diagram)
????????????概念:用例圖是從用戶角度描述系統(tǒng)功能甘有,?是用戶所能觀察到的系統(tǒng)功能的模型圖诉儒,用例是系統(tǒng)中的一個(gè)功能單元。
3.2?類圖(Class Diagram)
????概念:類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)亏掀。不僅定義系統(tǒng)中的類忱反,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴滤愕、聚合等温算,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖是以類為中心來組織的间影,類圖中的其他元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián)米者。
3.3?對象圖(Object Diagram)
????概念:對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識宇智。他們的不同點(diǎn)在于對象圖顯示類的多個(gè)對象實(shí)例蔓搞,而不是實(shí)際的類。
3.4?順序圖(Sequence Diagram)->又稱時(shí)序圖
????概念一:順序圖顯示對象之間的動(dòng)態(tài)合作關(guān)系随橘,它強(qiáng)調(diào)對象之間消息發(fā)送的順序喂分,同時(shí)顯示對象之間的交互。
????概念二:順序圖的一個(gè)用途是用來表示用例中的行為順序机蔗。當(dāng)執(zhí)行一個(gè)用例行為時(shí)蒲祈,順序圖中的每條消息對應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)換的觸發(fā)事件。
????????3.5?協(xié)作圖(Collaboration Diagram)
????概念一:協(xié)作圖描述對象間的協(xié)作關(guān)系萝嘁,協(xié)作圖跟順序圖?相似梆掸,顯示對象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外牙言,協(xié)作圖還顯示對象以及它們之間的關(guān)系酸钦。
????概念二:協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn)。
????????3.6?狀態(tài)圖(State Chart Diagram)
????????????概念:狀態(tài)圖是一個(gè)類對象所可能經(jīng)歷的所有歷程的模型圖咱枉。狀態(tài)圖由對象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成卑硫。
????????3.7?活動(dòng)圖(Activity Diagram)
????????????概念一:活動(dòng)圖是狀態(tài)圖的一個(gè)變體,用來描述執(zhí)行算法的工作流程中涉及的活動(dòng)蚕断。
????概念二:活動(dòng)圖描述了一組順序的或并發(fā)的活動(dòng)欢伏。
3.8?構(gòu)件圖(Component Diagram)
????概念:構(gòu)件圖為系統(tǒng)的構(gòu)件建模型—構(gòu)件即構(gòu)造應(yīng)用的軟件單元—還包括各構(gòu)件之間的依賴關(guān)系,以便通過這些依賴關(guān)系來估計(jì)對系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響亿乳。
????備注:本篇文章基本上都是理論概念硝拧,但是希望讀者對這些理論概念有一個(gè)初步認(rèn)識,后續(xù)會(huì)對每一個(gè)理論概念進(jìn)行一一分析,并且直接切入當(dāng)下開發(fā)障陶。歡迎每一位讀者關(guān)注后續(xù)文章更新滋恬,同時(shí)大家有什么好的建議也可以提出來,我也會(huì)不斷優(yōu)化咸这,方便大家學(xué)習(xí)提升夷恍。
Android開發(fā)技術(shù)分享5000人認(rèn)證群653 9611 28魔眨,歡迎各位喜歡Android技術(shù)的同學(xué)一起交流學(xué)習(xí)!