UML建模語言的基本概念專家講解
本節(jié)向大家介紹一下UML建模語言的一些基本概念,主要包括UML建模語言的構(gòu)造塊,工具和應(yīng)用等內(nèi)容,希望本節(jié)的介紹對你的學(xué)習(xí)有所幫助。下面讓我們一起來看一下這些概念吧。
UML建模語言輕松入門之基本概念
UML由圖和元模型組成,圖是語法,元模型是語義。UML主要包括三個基本構(gòu)造塊:事物(Things)、關(guān)系(Relationships)和圖(Diagrams)。本次連載我們將對UML的這些基本組成部分及UML工具和應(yīng)用進(jìn)行介紹,使讀者對UML形成初步的整體印象。在其后的幾次連載里,再以數(shù)個實(shí)例對這些內(nèi)容逐步展開。
1.1UML建模語言的基本構(gòu)造塊
1.1.1事物
事物是是實(shí)體抽象化的最終結(jié)果,是模型中的基本成員,UML建模語言中包含結(jié)構(gòu)事物、行為事物、分組事物和注釋事物。
?。?)結(jié)構(gòu)事物(Structuralthings)
結(jié)構(gòu)事物是模型中的靜態(tài)部分,用以呈現(xiàn)概念或?qū)嶓w的表現(xiàn)元素,是軟件建模中最常見的元素,共有以下七種:
類(Class):類是指具有相同屬性、方法、關(guān)系和語義的對象的集合;
接口(Interface):接口是指類或組件所提供的服務(wù)(操作),描述了類或組件對外可見的動作;
協(xié)作(Collaboration):協(xié)作描述合作完成某個特定任務(wù)的一組類及其關(guān)聯(lián)的集合,用于對使用情形的實(shí)現(xiàn)建模;
用例(UseCase):用例定義了執(zhí)行者(在系統(tǒng)外部和系統(tǒng)交互的人)和被考慮的系統(tǒng)之間的交互來實(shí)現(xiàn)的一個業(yè)務(wù)目標(biāo);
活動類(ActiveClass):活動類的對象有一個或多個進(jìn)程或線程。活動類和類很相象,只是它的對象代表的元素的行為和其他的元素是同時存在的;
組件(Component):組件是物理的、可替換的部分,包含接口的集合,例如COM+、JAVABEANS等;
結(jié)點(diǎn)(Node):結(jié)點(diǎn)是系統(tǒng)在運(yùn)行時存在的物理元素,代表一個可計(jì)算的資源,通常占用一些內(nèi)存和具有處理能力。
(2)行為事物(Behavioralthings)
UML建模語言中行為事物指的是UML模型中的動態(tài)部分,代表語句里的"動詞",表示模型里隨著時空不斷變化的部分,包含兩類:
交互(ineraction):交互是由一組對象之間在特定上下文中,為達(dá)到特定的目的而進(jìn)行的一系列消息交換而組成的動作;
狀態(tài)機(jī)(statemachine):狀態(tài)機(jī)由一系列對象的狀態(tài)組成。
?。?)分組事物(Groupingthings)
可以把分組事物看成是一個"盒子",模型可以在其中被分解。目前只有一種分組事物,即包(package)。結(jié)構(gòu)事物、動作事物甚至分組事物都有可能放在一個包中。包純粹是概念上的,只存在于開發(fā)階段,而組件在運(yùn)行時存在。
?。?)注釋事物(Annotationalthings)
注釋事物是UML模型的解釋部分。
1.1.2關(guān)系
關(guān)系是將事物聯(lián)系在一起的方式,UML建模語言中定義了四種關(guān)系:
?。?)依賴(Dependencies):兩個事物之間的語義關(guān)系,其中一個事物發(fā)生變化會影響另一個事物的語義;
(2)關(guān)聯(lián)(Association):一種描述一組對象之間連接的結(jié)構(gòu)關(guān)系,如聚合關(guān)系(描述了整體和部分間的結(jié)構(gòu)關(guān)系);
?。?)泛化(Generalization):一種一般化-特殊化的關(guān)系;
?。?)實(shí)現(xiàn)(Realization):類之間的語義關(guān)系,其中的一個類指定了由另一個類保證執(zhí)行的契約。
1.1.3圖
圖是事物集合的分類,UML建模語言中包含多種圖:
(1)類圖(ClassDiagram):類圖描述系統(tǒng)所包含的類、類的內(nèi)部結(jié)構(gòu)及類之間的關(guān)系;
(2)對象圖(ObjectDiagram):對象圖是類圖的一個具體實(shí)例;
?。?)包圖(PackageDiagram):包圖表明包及其之間的依賴類圖;
?。?)組件圖(CompomentDiagram,也稱構(gòu)件圖):組件圖描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系;
?。?)部署圖(DeploymentDiagram):部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu);
?。?)用例圖(UsecaseDiagram):用例圖從用戶的角度出發(fā)描述系統(tǒng)的功能、需求,展示系統(tǒng)外部的各類角色與系統(tǒng)內(nèi)部的各種用例之間的關(guān)系;
?。?)順序圖(SequenceDiagram):順序圖表示對象之間動態(tài)合作的關(guān)系;
(8)協(xié)作圖(CollaborationDiagram):合作圖描述對象之間的協(xié)作關(guān)系;
(9)狀態(tài)圖(StatechartDiagram):狀態(tài)圖描述一類對象的所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件;
?。?0)活動圖(ActivityDiagram):活動圖描述系統(tǒng)中各種活動的執(zhí)行順序。
1.2UML建模語言工具與應(yīng)用
"工欲善其事,必先利于器",為了有效的利用UML,我們需要首先獲得一個UML工具軟件。
當(dāng)前,業(yè)界使用最廣泛的UML建模工具為RationalRose。RationalRose中可實(shí)現(xiàn)正向(為模型產(chǎn)生相應(yīng)的代碼)、逆向(從用戶原來的軟件系統(tǒng)導(dǎo)出該系統(tǒng)的模型)和雙向工程(實(shí)現(xiàn)模型和代碼之間的循環(huán)工程),從而保證模型與代碼的高度一致。RationalRose支持C++、VisualC++、Java、Smalltalk、Ada、VisualBasic、PowerBuilder等語言和開發(fā)工具,并能為CORBA應(yīng)用生成接口定義語言(IDL),為數(shù)據(jù)庫應(yīng)用生成數(shù)據(jù)庫描述語言(DDL)等。另外,RationalRose為團(tuán)隊(duì)開發(fā)和規(guī)范的開發(fā)過程管理提供了良好的支持。
對于小規(guī)模應(yīng)用,我們可以使用微軟公司Office套件中的Visio,其中提供了對UML各種圖的繪制支持。
從應(yīng)用的角度上來講,面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)一般需要完成如下工作:
?。?)描述需求;
?。?)根據(jù)需求建立系統(tǒng)的靜態(tài)模型;
(3)描述系統(tǒng)的行為。
?。?)和(2)中所建立的模型是靜態(tài)的(采用用例圖、類圖、對象圖、組件圖和部署圖等),是標(biāo)準(zhǔn)建模語言UML中的靜態(tài)建模機(jī)制;而(3)中所建立的模型則表示執(zhí)行時的序列、狀態(tài)或交互關(guān)系(以狀態(tài)圖、活動圖、順序圖和協(xié)作圖描述),是標(biāo)準(zhǔn)建模語言UML中的動態(tài)建模機(jī)制。
由此可以看出,標(biāo)準(zhǔn)UML建模語言的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動態(tài)建模機(jī)制兩大類。
此外,需要說明的是,UML只是一種建模語言,它獨(dú)立于具體的建模過程。因此,利于它建模時,可遵循任何類型的建模過程。盡管如此,UML的作者們?yōu)槲覀兺扑]了RUP(RationalUnifiedProcess)。RUP由Rational軟件公司首創(chuàng),其最重要的特點(diǎn)有三:
(1)軟件開發(fā)是由用例驅(qū)動的;
(2)軟件開發(fā)是以體系結(jié)構(gòu)設(shè)計(jì)(ArchitecturalDesign)為中心;
?。?)軟件開發(fā)是個迭代過程。
RUP包括四個階段,每個階段又分為若干次迭代,每次迭代都有一個核心工作流。
【編輯推薦】