自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

UML建模的要點(diǎn)總結(jié)

開發(fā) 項(xiàng)目管理
UML是面向?qū)ο箝_發(fā)中一種通用的圖形化建模語言,面向?qū)ο蟮姆治鲋饕诩訌?qiáng)對(duì)問題空間和系統(tǒng)任務(wù)的理解、改進(jìn)各方交流、與需求保持一致和支持軟件重用等4個(gè)方面表現(xiàn)出比其他系統(tǒng)分析方法更好的能力,成為主流的系統(tǒng)分析方法。本文是作者對(duì)UML建模的要點(diǎn)進(jìn)行的總結(jié)。

預(yù)備知識(shí):

一、UML的特性與發(fā)展現(xiàn)狀

UML是一種Language(語言)

UML是一種Modeling(建模)Language

UML是Unified(統(tǒng)一)Modeling Language

1. 已進(jìn)入全面應(yīng)用階段的事實(shí)標(biāo)準(zhǔn)

2. 應(yīng)用領(lǐng)域正在逐漸擴(kuò)展,包括嵌入式系統(tǒng)建模、業(yè)務(wù)建模、流程建模等多個(gè)領(lǐng)域

3. 成為“產(chǎn)生式編程”的重要支持技術(shù):MDA、 可執(zhí)行UML等

二、建模的目的與原則

1. 幫助我們按照實(shí)際情況或按我們需要的樣式對(duì)系統(tǒng)進(jìn)行可視化;提供一種詳細(xì)說明系統(tǒng)的結(jié)構(gòu)或行為的方法;給出一個(gè)指導(dǎo)系統(tǒng)構(gòu)造的模板;對(duì)我們所做出的決策進(jìn)行文檔化。

2. 僅當(dāng)需要模型時(shí),才構(gòu)建它。

3. 選擇要?jiǎng)?chuàng)建什么模型對(duì)如何動(dòng)手解決問題和如何形成解決方案有著意義深遠(yuǎn)的影響;每一種模型可以在不同的精度級(jí)別上表示;***的模型是與現(xiàn)實(shí)相聯(lián)系的;單個(gè)模型是不充分的。對(duì)每個(gè)重要的系統(tǒng)***用一組幾乎獨(dú)立的模型去處理。

三、誰應(yīng)該建模

1. 業(yè)務(wù)建模:以領(lǐng)域?qū)<覟橹?,需求分析人員是主力,系統(tǒng)分析員、架構(gòu)師可參與

2. 需求模型:以需求分析人員為主,系統(tǒng)分析員是主力,領(lǐng)域?qū)<姨峁┲笇?dǎo),架構(gòu)師和資深開發(fā)人員參與

3. 設(shè)計(jì)模型:高層設(shè)計(jì)模型以架構(gòu)師為主,系統(tǒng)分析員從需求方面提供支持,資深開發(fā)人員從技術(shù)實(shí)現(xiàn)方面提供支持。詳細(xì)設(shè)計(jì)模型則以資深開發(fā)人員為主,架構(gòu)師提供指導(dǎo)。

4. 實(shí)現(xiàn)模型:以資深開發(fā)人員(設(shè)計(jì)人員)為主,架構(gòu)師提供總體指導(dǎo)。

5. 數(shù)據(jù)庫(kù)模型:以數(shù)據(jù)庫(kù)開發(fā)人員為主,架構(gòu)師提供指導(dǎo),資深開發(fā)人員(設(shè)計(jì)人員)予以配合。

正式開始

UML組成,三部分(構(gòu)造塊、規(guī)則、公共機(jī)制),關(guān)系如下圖所示:

#p#

一、構(gòu)造塊

1. 構(gòu)造塊是對(duì)模型中***有代表性的成分的抽象

建模元素:UML中的名詞,它是模型基本物理元素。

行為元素:UML中的動(dòng)詞,它是模型中的動(dòng)態(tài)部分,是一種跨越時(shí)間、空間的行為。

分組元素:UML中的容器,用來組織模型,使模型更加的結(jié)構(gòu)化。

注釋元素:UML中的解釋部分,和代碼中的注釋語句一樣,是用來描述模型的。

a. 建模元素

◆ 類(class)和對(duì)象(object)

◆ 接口(interface)

◆ 主動(dòng)類(active class)

◆ 用例(use case)

◆ 協(xié)作(collaboration)

◆ 構(gòu)件(component)

◆ 節(jié)點(diǎn)(node)

類(class)和對(duì)象(object)

類是對(duì)一組具有相同屬性、相同操作、相同關(guān)系和相同語義的對(duì)象的抽象。UML中類是用一個(gè)矩形表示的,它包含三個(gè)區(qū)域,最上面是類名、中間是類的屬性、最下面是類的方法。

對(duì)象則是類的一個(gè)實(shí)例 (object is a Instance of Class)

接口(interface)

接口是描述某個(gè)類或構(gòu)件的一個(gè)服務(wù)操作集。

主動(dòng)類(active class)

主動(dòng)類實(shí)際上是一種特殊的類。引用它的原因,實(shí)際上是在開發(fā)中需要有一些類能夠起到 啟動(dòng)控制活動(dòng)的作用。主動(dòng)類是指其對(duì)象至少擁有一個(gè)進(jìn) 程或線程,能夠啟動(dòng)控制活動(dòng)的類。

用例(use case)

用例是著名的大師Ivar Jacobson首先提出的,現(xiàn)已經(jīng)成為了面向?qū)ο筌浖_發(fā)中一個(gè)需求分析的最常用工具。用例實(shí)例是在系統(tǒng)中執(zhí)行的一系列動(dòng)作,這些動(dòng)作將生成特定執(zhí)行者可見的價(jià)值結(jié)果。一個(gè) 用例定義一組用例實(shí)例。

協(xié)作(collaboration)

協(xié)作定義了一個(gè)交互,它是由一組共同工作以提供某協(xié)作行為的角色和其他元素構(gòu) 成的一個(gè)群體,對(duì)于某個(gè)用例的實(shí)現(xiàn)就可 以表示為一個(gè)協(xié)作。

構(gòu)件(component)

在實(shí)際的軟件系統(tǒng)中,有許多要比“類”更大的實(shí)體,例如一個(gè)COM組件、一個(gè)DLL文件、一個(gè)JavaBeans、一個(gè)執(zhí)行文件等等。為了更好地對(duì)在UML模型中對(duì)它們進(jìn)行表示,就引入了構(gòu)件(也譯為組件)。構(gòu)件是系統(tǒng)設(shè)計(jì)的一個(gè)模塊化部分,它隱藏了內(nèi)部的實(shí)現(xiàn),對(duì)外提供了一組外部接口,在系統(tǒng)中滿足相同接口的組件可以自由地替換。

節(jié)點(diǎn)(node)

為了能夠有效地對(duì)部署的結(jié)構(gòu)進(jìn)行建模,UML引入了節(jié)點(diǎn)這一概念,它可以用來描述實(shí)際的PC機(jī)、打印機(jī)、服務(wù)器等軟件運(yùn)行的基礎(chǔ)硬件。節(jié)點(diǎn)是運(yùn)行時(shí)存在的物理元素,它表示了一種可計(jì)算的資源,通常至少有存儲(chǔ)空間和處理能力。

b. 行為元素

交互(interaction)

是在特定語境中,共同完成某個(gè)任務(wù)的一組對(duì)象之間交換的信息集合。交互的表示法很簡(jiǎn)單,就是一條有向直線,并在上面標(biāo)有操作名。

狀態(tài)機(jī)(state machine)

是一個(gè)對(duì)象或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列。在UML模型中將狀態(tài)畫為一個(gè)圓 角矩形,并在矩形內(nèi)寫出狀態(tài)名 稱及其子狀態(tài)。

c. 分組元素

對(duì)于一個(gè)中大型的軟件系統(tǒng)而言,通常會(huì)包含大量的類,因此也就會(huì)存在大量的結(jié)構(gòu)事物、行為事物,為了能夠更加有效地對(duì)其進(jìn)行整合,生成或簡(jiǎn)或繁、或宏觀或微觀的模型,就需要對(duì)其進(jìn)行分組。在UML中,提供了“包(Package)”來完成這一目標(biāo)。

e. 注釋元素

結(jié)構(gòu)事物是模型的主要構(gòu)造塊,行為事物則是補(bǔ)充了模型中的動(dòng)態(tài)部分,分組事物而是用來更好地組織模型,似乎已經(jīng)很完整了。而注釋事物則是用來錦上添花的,它是用來在UML模型上添加適當(dāng)?shù)慕忉尣糠帧?/P>

#p#

2. 關(guān)系

UML模型的關(guān)系比較多,如下圖:

a. 關(guān)聯(lián)關(guān)系

關(guān)聯(lián)(Association)表示兩個(gè)類之間存在某種語義上的聯(lián)系。關(guān)聯(lián)關(guān)系提供了通信的路徑,它是所有關(guān)系中最通用、語義最弱的。

在UML中,使用一條實(shí)線來表示關(guān)聯(lián)關(guān)系。在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系:聚合和組合。

聚合:聚合(Aggregation)是一種特殊形式的關(guān)聯(lián)。聚合表示類之間的關(guān)系是整體與部分的關(guān)系。

如果發(fā)現(xiàn)“部分”類的存在,是完全依賴于“整體”類的,那么就應(yīng)該使用“組合”關(guān)系來描述。

組合:組合是聚合的變種,加入了一些重要的語義。也就是說,在一個(gè)組合關(guān)系中一個(gè)對(duì)象一次就只是一個(gè)組合的一部分,“整體”負(fù)責(zé)“部分”的創(chuàng)建和破壞,當(dāng)“整體”被破壞時(shí),“部分”也隨之消失。聚合就像汽車和車胎,汽車壞了胎還可以用。組合就像公司和下屬部門,公司倒閉了部門也就不存在了!

b. 泛化、實(shí)現(xiàn)與依賴

泛化關(guān)系描述了一般事物與該事物中的特殊種類之間的關(guān)系,也就是父類與子類之間的關(guān)系。
實(shí)現(xiàn)關(guān)系是用來規(guī)定接口和實(shí)現(xiàn)接口的類或組件之間的關(guān)系。接口是操作的集合,這些操作用于規(guī)定類或組件的服務(wù)。

有兩個(gè)元素X、Y,如果修改元素X的定義可能會(huì)引起對(duì)另一個(gè)元素Y的定義的修改,則稱元素Y依賴(Dependency)于元素X。

二、規(guī)則

命名:也就是為事物、關(guān)系和圖起名字。和任何語言一樣,名字都是一個(gè)標(biāo)識(shí)符

范圍:與類的作用域相似.

可見性:Public,Protected,Private,Package

三、UML公共機(jī)制

1. 規(guī)格描述

在圖形表示法的每個(gè)部分后面都有一個(gè)規(guī)格描述(也稱為詳述),它用來對(duì)構(gòu)造塊的語法和語義進(jìn)行文字?jǐn)⑹觥_@種構(gòu)思,也就使可視化視圖和文字視圖的分離。

2. UML修飾與通用劃分

在為了更好的表示這些細(xì)節(jié),UML中還提供了一些修飾符號(hào),例如不同可視性的符號(hào)、用斜體字表示抽象類。

UML通用劃分:

◆ 類與對(duì)象的劃分:類是一種抽象,對(duì)象是一個(gè)具體 的實(shí)例

◆ 接口與實(shí)現(xiàn)的分離:接口是一種聲明、是一個(gè)契 約,也是服務(wù)的入口;實(shí)現(xiàn)則是負(fù)責(zé)實(shí)施接口提供 的契約

3. UML擴(kuò)展機(jī)制

構(gòu)造型:在實(shí)際的建模過程中,可能會(huì)需要定義一些特定于某個(gè)領(lǐng)域或某個(gè)系統(tǒng)的構(gòu)造塊
標(biāo)記值則是用來為事物添加新特性的。標(biāo)記值的表示方法是用形如“{標(biāo)記信息}”的字符串
約束是用來增加新的語義或改變已存在規(guī)則的一種機(jī)制(自由文本和OCL兩種表示法)。約束的表示法和標(biāo)記值法類似,都是使用花括號(hào)括起來的串來表示,不過它是不能夠放在元素中的,而是放在相關(guān)的元素附近。

4. UML視圖和圖

附:開發(fā)過程與圖的對(duì)應(yīng)關(guān)系

 

責(zé)任編輯:楊鵬飛 來源: 博客園
相關(guān)推薦

2009-04-29 10:46:34

UML建模總結(jié)

2010-06-30 09:51:55

UML建模技術(shù)

2010-06-17 15:54:24

UML總結(jié)

2010-07-09 14:05:56

UML建模

2010-06-30 18:09:22

UML建模

2010-06-08 17:31:26

UML建模

2010-07-07 11:30:16

UML十種圖

2010-06-30 16:17:41

UML建模優(yōu)點(diǎn)

2010-06-17 13:12:38

UML用例建模技巧

2010-06-10 17:02:40

UML建模

2010-06-07 18:17:54

UML建模

2010-06-30 15:10:18

2010-06-30 14:37:20

UML類圖

2010-06-29 17:27:49

UML建模方法

2010-06-30 17:36:58

UML用例圖

2010-07-07 09:34:06

UML用戶指南

2010-07-01 17:05:34

UML包圖

2010-07-05 13:55:40

UML圖分類

2010-07-06 11:21:37

UML狀態(tài)圖

2010-06-09 15:53:30

UML建模
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)