国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
UML模型圖

文章目錄

  • 一. 靜態(tài)模型
    • 1. 用例圖
    • 2. 類圖
      • (1). 關(guān)聯(lián)關(guān)系(association)
      • (2). 聚合關(guān)系(aggregation)
      • (3). 組合關(guān)系(compostion)
      • (4). 泛化關(guān)系(繼承關(guān)系)(generalization)
      • (5). 實(shí)現(xiàn)關(guān)系(realization)
      • (6). 依賴關(guān)系(dependency)
      • (7). 幾種關(guān)系強(qiáng)弱比較
    • 3. 對象圖
    • 4. 部署圖
    • 5. 組件圖
  • 二. 動態(tài)模型
    • 1. 用例圖
    • 2. 狀態(tài)圖
      • (1). 定義
      • (2). 狀態(tài)圖的組成
    • 3. 活動圖
      • (1). 定義
    • 4. 序列圖
      • (1). 定義
    • 5. 協(xié)作圖
      • (1). 定義
      • (2). 協(xié)作圖與時序圖轉(zhuǎn)換
  • 三. UML機(jī)制
    • 1. 注釋
    • 2. 規(guī)范說明
    • 3. 修飾
    • 4. 擴(kuò)充機(jī)制
    • 5. 公共劃分
  • 四. UML建模
    • 1. UML建模流程
    • 2. 建模步驟舉例
  • 五. 建模工具
  • 六. UML與軟件工程對應(yīng)關(guān)系
    • 1、需求分析
    • 2、系統(tǒng)分析
    • 3、系統(tǒng)設(shè)計(jì)
    • 4、系統(tǒng)實(shí)現(xiàn)(構(gòu)造)
    • 5、系統(tǒng)測試

一. 靜態(tài)模型

1. 用例圖



2. 類圖




(1). 關(guān)聯(lián)關(guān)系(association)

表示對象之間的聯(lián)系

描述類的結(jié)構(gòu)之間的關(guān)系。具有方向、名字、角色和多重性等信息。一般的關(guān)聯(lián)關(guān)系語義較弱。也有兩種語義較強(qiáng),分別是聚合與組合

表示類與類之間的連接,它使得一個類知道另外一個類的屬性和方法。

關(guān)聯(lián)可以使用單箭頭表示單向關(guān)聯(lián),使用雙箭頭或者不適用箭頭表示雙向關(guān)聯(lián),不建議使用雙向關(guān)聯(lián),關(guān)聯(lián)有兩個端點(diǎn),每個端點(diǎn)可以有一個基數(shù),表示這個關(guān)聯(lián)的類可以有幾個實(shí)例。

0..1 表示可以有0個或者1個實(shí)例

0..* 表示對實(shí)例的數(shù)目沒有限制

1     表示只能有一個實(shí)例

1..* 表示至少有一個實(shí)例


關(guān)聯(lián)關(guān)系體現(xiàn)的是兩個類,或者類與接口之間的強(qiáng)依賴關(guān)系,這種關(guān)系很強(qiáng)烈,比依賴更強(qiáng),不是偶然性的,也不是臨時性的,而是一種長期性,相對平等的關(guān)系

表現(xiàn)在代碼層面,為被關(guān)聯(lián)的類B以類屬性的形式出現(xiàn)在類A中,也可能是關(guān)聯(lián)類A引用了被關(guān)聯(lián)類B的全局變量。

在Java中,關(guān)聯(lián)關(guān)系是使用實(shí)例變量來實(shí)現(xiàn)的

比如:學(xué)生與課程之間就是通過選課關(guān)系進(jìn)行關(guān)聯(lián)

(2). 聚合關(guān)系(aggregation)

特殊關(guān)聯(lián)關(guān)系,指明一個聚集(整體)和組成部分之間的關(guān)系

表示兩個類之間是“is part of”關(guān)系,即整體–部分關(guān)系。

是關(guān)聯(lián)關(guān)系的特例,是強(qiáng)的關(guān)聯(lián)關(guān)系,聚合是整個與個體的關(guān)系,即has-a關(guān)系,
此時整體和部分是可以分離的,他們具有各自的生命周期,部分可以屬于多個對象,也可以被多個對象共享

比如計(jì)算機(jī)和CPU,公司與員工的關(guān)系

在代碼層面聚合與關(guān)聯(lián)是一致的,只能從語義上來區(qū)分。

(3). 組合關(guān)系(compostion)

語義更強(qiáng)的聚合,部分和整體具有相同的生命周期

組合關(guān)系應(yīng)該是A類的屬性中含有一個B的對象;構(gòu)成has a關(guān)系

也是關(guān)聯(lián)關(guān)系的一種特例,體現(xiàn)的是一種contain-a關(guān)系,比聚合更強(qiáng),是一種強(qiáng)聚合關(guān)系。它同樣體現(xiàn)整體與部分的關(guān)系,但此時整體與部分是不可分的,整體生命周期的結(jié)束也意味著部分生命周期的結(jié)束

體現(xiàn)在代碼層面與關(guān)聯(lián)時一致的,只能從語義來區(qū)分。

它表示部分對象被嵌入到整體對象中。

比如:引擎是飛機(jī)的一部分;大腦和人類

(4). 泛化關(guān)系(繼承關(guān)系)(generalization)

在面向?qū)ο笾幸话惴Q為繼承關(guān)系,存在于父類與子類、父接口與子接口之間

關(guān)系時指一個類(子類、子接口)繼承另外一個類(稱為父類、父接口)的功能,并可以增加它自己新功能的能力,繼承是類與類或者接口與接口最常見的關(guān)系,在Java中通過關(guān)鍵字extends來表示

(5). 實(shí)現(xiàn)關(guān)系(realization)

對應(yīng)于類和接口之間的關(guān)系

是指一個class實(shí)現(xiàn)interface接口(一個或者多個),表示類具備了某種能力,實(shí)現(xiàn)是類與接口中最常見的關(guān)系,在Java中通過implements關(guān)鍵字來表示。

(6). 依賴關(guān)系(dependency)

表示類與類之間的連接,表示一個類依賴于另外一個類的定義,依賴關(guān)系時是單向的。簡單理解就是類A使用到了類B,這種依賴具有偶然性、臨時性,是非常弱的關(guān)系。但是類B的變化會影響到類A。

舉個例子,如某人要過河,則人與船的關(guān)系就是依賴,人過河之后,與船的關(guān)系就解除了,
因此是一種弱的連接。在代碼層面,為類B作為參數(shù)被類A在某個方法中使用。

在java中,依賴表現(xiàn)為:局部變量,方法中的參數(shù)和對靜態(tài)方法的調(diào)用。

(7). 幾種關(guān)系強(qiáng)弱比較

泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴

3. 對象圖

對象圖是系統(tǒng)在某一時刻的快照。

4. 部署圖

部署圖描述系統(tǒng)資源運(yùn)行時的物理分布,系統(tǒng)資源成為結(jié)點(diǎn)

部署圖用于靜態(tài)建模,是表示運(yùn)行時過程節(jié)點(diǎn)結(jié)構(gòu)、構(gòu)件實(shí)例及其對象結(jié)構(gòu)的圖。

如果含有依賴關(guān)系的構(gòu)件實(shí)例放置在不同節(jié)點(diǎn)上,部署視圖可以展示出執(zhí)行過程中的瓶頸。

部署圖的兩種表現(xiàn)形式:實(shí)例層部署圖和描述層部署圖

部署圖與構(gòu)件圖相同的構(gòu)成元素:

構(gòu)件、接口、構(gòu)件實(shí)例、構(gòu)件向外提供服務(wù)、構(gòu)件要求外部提供的服務(wù)。

部署圖與構(gòu)件圖的關(guān)系:

部署圖表現(xiàn)構(gòu)件實(shí)例;
構(gòu)件圖表現(xiàn)構(gòu)件類型的定義。

部署圖偏向于描述構(gòu)件在節(jié)點(diǎn)中運(yùn)行時的狀態(tài),描述了構(gòu)件運(yùn)行的環(huán)境;
構(gòu)件圖偏向于描述構(gòu)件之間相互依賴支持的基本關(guān)系。

5. 組件圖

組件圖描述可重用的系統(tǒng)組件及組件間的依賴

構(gòu)件圖用于靜態(tài)建模,是表示構(gòu)件類型的組織以及各種構(gòu)件之間依賴關(guān)系的圖。

構(gòu)件圖通過對構(gòu)件間依賴關(guān)系的描述來估計(jì)對系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響。



二. 動態(tài)模型

1. 用例圖

用例圖描述執(zhí)行者在各個用例中的參與情況

用例圖的功能:

捕獲系統(tǒng)用戶需求
描述系統(tǒng)邊界
指明系統(tǒng)外部行為
指導(dǎo)系統(tǒng)開發(fā)者的功能開發(fā)
系統(tǒng)建模的起點(diǎn),指導(dǎo)所有的類圖和交互圖的設(shè)計(jì)
產(chǎn)生測試用例,用戶文檔
估計(jì)項(xiàng)目大小和進(jìn)度

2. 狀態(tài)圖

(1). 定義

狀態(tài)機(jī)圖是對單個類的對象的生命周期進(jìn)行建模,描述了對象時間上的動態(tài)行為,每個對象被認(rèn)為是事件驅(qū)動的孤立實(shí)體

事件表達(dá)對象間的調(diào)用、顯式信號、值的改變或時間的推移

調(diào)用事件、變更事件、信號事件、時間事件

狀態(tài)描述對象生命周期的一段時間,可以是等待其它事件時所處的時間,或是執(zhí)行某一活動時所處的時間,狀態(tài)分為簡單狀態(tài)和復(fù)合狀態(tài)

狀態(tài)圖用于揭示Actor、類、子系統(tǒng)和組件的復(fù)雜特性。 為實(shí)時系統(tǒng)建模。

(2). 狀態(tài)圖的組成

狀態(tài)

對象的狀態(tài)是指在這個對象的生命期中的一個條件或狀況,在此期間對象將
滿足某些條件、執(zhí)行某些活動,或等待某些事件。

轉(zhuǎn)移

轉(zhuǎn)移是由一種狀態(tài)到另一種狀態(tài)的遷移。這種轉(zhuǎn)移由被建模實(shí)體內(nèi)部或外部事件觸發(fā)。
對一個類來說,轉(zhuǎn)移通常是調(diào)用了一個可以引起狀態(tài)發(fā)生重要變化的操作的結(jié)果。

3. 活動圖

(1). 定義

活動圖是用狀態(tài)機(jī)對工作流進(jìn)行建模的特殊形式,它和流程圖很類似,不過它支持并發(fā)控制

活動圖一般不描述所有的運(yùn)算細(xì)節(jié),它顯示活動的流,但不顯示執(zhí)行活動的對象

活動圖處于系統(tǒng)的外部和內(nèi)部視圖之間,所以它可以作為設(shè)計(jì)的起點(diǎn),為了完成設(shè)計(jì),每個活動必須擴(kuò)展成一個和多個操作,每個操作被指派給特定的對象來實(shí)現(xiàn)

帶有生命線的活動圖和無生命線的活動圖


4. 序列圖

(1). 定義

  • 對象行為是通過交互來實(shí)現(xiàn)的,交互是對象間為完成某一目的而進(jìn)行的一系列消息交換

  • 消息是對象間的單向通信,從發(fā)送者到接受者的攜帶信息的控制流消息可能帶有值參

  • 消息序列可用兩種圖表示:序列圖(重點(diǎn)在消息的時間順序)和協(xié)作圖(重點(diǎn)在交換消息的對象間的關(guān)系)對協(xié)作圖來說,時間順序可以從順序號獲得

5. 協(xié)作圖

(1). 定義

協(xié)作圖包含分類角色和關(guān)聯(lián)角色,當(dāng)它實(shí)例化時,對象被綁定到分類角色,鏈被綁定到關(guān)聯(lián)角色。
協(xié)作圖對實(shí)現(xiàn)協(xié)作的對象和鏈進(jìn)行建模,而忽略其他對象

協(xié)作圖是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對象之間的組織結(jié)構(gòu),使用協(xié)作圖來說明系統(tǒng)的動態(tài)情況。

協(xié)作圖主要描述協(xié)作對象間的交互和鏈接,顯示對象、對象間的鏈接以及對象間如何發(fā)送消息。

協(xié)作圖可以表示類操作的實(shí)現(xiàn)。

(2). 協(xié)作圖與時序圖轉(zhuǎn)換

打開時序圖,Ctrl+A選中圖中的所有的元素,然后菜單上找到DESIGNE | Model Transformation (MDA) | Transform Selected Elements,在彈出的界面中右邊的Transformations 中選Communication, 再點(diǎn)擊 Do Transform 即可。

三. UML機(jī)制

1. 注釋

注釋用于解釋設(shè)計(jì)的思路,便于理解
一個好的模型應(yīng)該有詳盡的注釋

2. 規(guī)范說明

  • 軟件模型必須是完整的,以便于軟件系統(tǒng)的建造。此模型必須具備足夠的詳細(xì)信息以供軟件建造使用。

  • 構(gòu)成完整模型的詳細(xì)信息就是模型的規(guī)范說明(簡稱規(guī)范)

  • 規(guī)范說明的內(nèi)容一般用屬性名和屬性值的形式來表達(dá)。UML中有許多預(yù)定義的屬性

      如:文檔(documentation)、持續(xù)性(persistence)和并發(fā)性(Concurrency)等
    
  • 屬性一般作為模型成分附加說明

      比如,用一些文字逐條列舉類的功能,這種規(guī)范說明方式是非形式化的
    

3. 修飾

修飾描述UML模型成分最主要的特征

UML模型中類:

“-”表示私有的(Private),
“+”表示公開的(Public),其他類可訪問,
“#” 表示受保護(hù)的(Protected)

4. 擴(kuò)充機(jī)制

UML擴(kuò)充機(jī)制(extensibility mechanisms):

版型(stereotype)、標(biāo)記值(tagged value)和約束(constraint) 

5. 公共劃分

四. UML建模

1. UML建模流程

UML是一種建模語言而不是方法,這是因?yàn)閁ML中沒有過程的概念,而過程正是方法的一個重要組成部分UML本身獨(dú)立于過程,這意味著用戶在使用UML進(jìn)行建模時,可以選用任何適合的過程

2. 建模步驟舉例

基于UML的系統(tǒng)開發(fā)采取增量迭代開發(fā)模型

  1. 需求

    最初需求規(guī)格說明應(yīng)當(dāng)由代表系統(tǒng)最終用戶的人員提供,內(nèi)容包括系統(tǒng)基本功能需求和對計(jì)算機(jī)系統(tǒng)的要求

  2. 分析

    分析的任務(wù)是找出系統(tǒng)的所有需求并加以描述,同時建立模型,以定義系統(tǒng)中的關(guān)鍵領(lǐng)域類,應(yīng)由系統(tǒng)用戶和開發(fā)人員合作完成

    分析的第一步是定義用例,以描述所開發(fā)系統(tǒng)的外部功能需求用例分析包括閱讀和分析需求說明,此時需要與系統(tǒng)的潛在用戶進(jìn)行討論

  3. 設(shè)計(jì)

    設(shè)計(jì)階段的任務(wù)是通過綜合考慮所有的技術(shù)限制,以擴(kuò)展和細(xì)化分析階段的模型

    設(shè)計(jì)階段可以分為兩個部分:

     1. 結(jié)構(gòu)設(shè)計(jì):是高層設(shè)計(jì),其任務(wù)是定義包(子系統(tǒng)),
     包括包間的依賴性和主要通信機(jī)制我們希望得到盡可能簡單和清晰的結(jié)構(gòu),
     各部分之間的依賴盡可能的少,并盡可能的減少雙向的依賴關(guān)系 
     
     2. 詳細(xì)設(shè)計(jì):細(xì)化包的內(nèi)容,使編程人員得到所有類的一個足夠清晰的描述
    
  4. 實(shí)現(xiàn)

    構(gòu)造或?qū)崿F(xiàn)階段是對類進(jìn)行編程的過程可以選擇某種面向?qū)ο髮ο缶幊陶Z言(如Java)作為實(shí)現(xiàn)系統(tǒng)的軟件環(huán)境Java很容易實(shí)現(xiàn)從邏輯視圖到代碼部件的映射,因?yàn)轭惖絁ava代碼文件之間是一一映射關(guān)系

     在實(shí)現(xiàn)階段中,可以選取各種圖的說明來輔助編程,比如:類圖,狀態(tài)圖和動態(tài)圖等
    
  5. 測試和配置

    完成系統(tǒng)編碼后,需要對系統(tǒng)進(jìn)行測試,它通常包括:單元測試、集成測試、系統(tǒng)測試和驗(yàn)收測試

五. 建模工具

六. UML與軟件工程對應(yīng)關(guān)系

如果把軟件開發(fā)比作學(xué)校建一座高樓,那么軟件工程就是指導(dǎo)我們怎么蓋,不至于在構(gòu)建一座大樓的時候,最后不知不覺變成四不像。而UML圖正是對大樓主體架構(gòu)的設(shè)計(jì)。軟件工程是軟件開發(fā)設(shè)計(jì)的靈魂,是我們前進(jìn)的思想性指導(dǎo)。它使我們的設(shè)計(jì)有法可依,有章可循。比如我們學(xué)?,F(xiàn)在蓋的大樓,必須要有藍(lán)圖來規(guī)劃哪塊哪塊蓋什么樓,什么類別的都是前期需要用例建模來具體協(xié)商的。

具體步驟:
1.前期的需求分析描述需要用例圖,用例圖的使用者是學(xué)校,了解這棟大樓的主體結(jié)構(gòu),功能是什么,教學(xué)樓還是宿舍。學(xué)校最關(guān)心的是樓質(zhì)量問題和安全性,是否能夠滿足學(xué)生的基本使用。

2.進(jìn)一步需要設(shè)計(jì)樓內(nèi)部的具體結(jié)構(gòu),此時就需要類圖,對象圖,組件圖和部署圖來制定標(biāo)準(zhǔn)化的結(jié)構(gòu),詳細(xì)的描述內(nèi)部需求和具體設(shè)施的安排,為具體施工指明工作點(diǎn)。

3.接下來就需要安排具體的人員開工,活動圖安排各個工種在自己的崗位工作;狀態(tài)圖安排施工設(shè)備的使用情況,表明設(shè)備的忙碌和空閑狀態(tài);而具體施工步驟需要工程安排每一塊的開始,不能先上后下,從基地開始。

此外還需要各個施工隊(duì)的協(xié)作,連接性是這個工程的最后標(biāo)志,各個團(tuán)隊(duì)之間必須密切協(xié)作才能完成整體的。

1、需求分析

用例圖用來建??蛻舻男枨蟆=巧约跋到y(tǒng)功能建模是用例建模來畫的。它們之間的關(guān)系建模被用于角色和用例。每個用例都代表了客戶的需求。需求分析不僅適用于軟件系統(tǒng)進(jìn)行而且適用于建筑工程行業(yè)。

2、系統(tǒng)分析

此階段是尋找問題 -就是找刺的,需要考慮系統(tǒng)可能遇到的問題是主要的工作。借助于邏輯視圖和動態(tài)視圖實(shí)現(xiàn)。系統(tǒng)的靜態(tài)由類圖來建模,系統(tǒng)的動態(tài)則是協(xié)作圖、序列圖、活動圖和狀態(tài)圖建模。只是列出系列的問題和稍微一點(diǎn)解決思路,不作出詳細(xì)的解決方案。只是大方向上的做出引導(dǎo),提綱,具體細(xì)節(jié)需要下一階段結(jié)合實(shí)際分析。

3、系統(tǒng)設(shè)計(jì)

將分析階段列出的問題進(jìn)行匯總,根據(jù)提綱作出具體、細(xì)節(jié)辦法。進(jìn)而把分析結(jié)果擴(kuò)展為技術(shù)層次的解決依據(jù),不在停留在文字方面,需要依靠用戶接口提供技術(shù)基礎(chǔ)結(jié)構(gòu)。數(shù)據(jù)庫在這個技術(shù)基礎(chǔ)結(jié)構(gòu)中,分析階段的領(lǐng)域問題類被嵌入在其中。構(gòu)造階段的詳細(xì)的規(guī)格說明是設(shè)計(jì)階段的結(jié)果。

4、系統(tǒng)實(shí)現(xiàn)(構(gòu)造)

把設(shè)計(jì)階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語言的代碼。只能在構(gòu)造階段實(shí)現(xiàn)代碼的轉(zhuǎn)變,其他階段不能!在對UML表述的分析和設(shè)計(jì)模型進(jìn)行轉(zhuǎn)換時,最好不要直接把模型轉(zhuǎn)化成代碼。在早期階段,模型是理解系統(tǒng)并對系統(tǒng)進(jìn)行結(jié)構(gòu)化的手段。

5、系統(tǒng)測試

根據(jù)測試的先后順序排序:單元測試、集成測試、系統(tǒng)測試和接受測試。不同的測試采用不同的UML圖作為工作的基礎(chǔ)。類圖和類的規(guī)格說明是單元測試;組件圖和協(xié)作圖的是集成測試;系統(tǒng)測試實(shí)現(xiàn)用例圖來確認(rèn)系統(tǒng)的行為符合這些圖中的定義。
在系統(tǒng)測試階段,UML模型還可以作為測試階段的依據(jù)。如單元測試使用類圖和類規(guī)格說明;集成測試使用組件圖和協(xié)作圖;系統(tǒng)測試用例圖來驗(yàn)證系統(tǒng)的行為;驗(yàn)收測試由用戶進(jìn)行,以驗(yàn)證系統(tǒng)測試的結(jié)果是否滿足在分析階段確定的需求。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
UML 的九種模型圖
UML建模的要點(diǎn)總結(jié)(一)
UML基礎(chǔ)知識
UML是什么?常用的幾種圖有哪些?
UML 圖
解析UML的要點(diǎn)與應(yīng)用 第2頁|IT168 技術(shù)開發(fā)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服