UML建模語言入門教程
本節(jié)向大家介紹一下UML建模語言,在軟件開發(fā)過程中UML建模語言經(jīng)常用來建立模型,這里和大家分享一下UML建模語言的有關(guān)知識,希望通過本節(jié)的介紹你UML建模語言有全面的認(rèn)識。
新一代建模語言-UML慨述
UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。UML將是面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言,目前UML獲得了工業(yè)界、科技界和應(yīng)用界的廣泛支持,成為可視化建模語言事實上的工業(yè)標(biāo)準(zhǔn)。UML代表了面向?qū)ο蠓椒ǖ能浖_發(fā)技術(shù)的發(fā)展方向,具有巨大的市場前景,也具有重大的經(jīng)濟(jì)價值。
UML建模語言的誕生
目前人們普遍開始采用面向?qū)ο蟮姆治雠c設(shè)計,但是很少有開發(fā)人員使用形象化的設(shè)計方法,其主要原因就是缺乏統(tǒng)一的語言語義來為復(fù)雜軟件系統(tǒng)的組件定義、可視化、構(gòu)建和編制文檔。而UML的出現(xiàn)徹底的改變了這一現(xiàn)狀,并成為了面向?qū)ο蠼5臉?biāo)準(zhǔn)語言。
UML建模語言的行業(yè)特性
UML在各個行業(yè)都得到了廣泛的應(yīng)用,并迅速成為了一個事實上的工業(yè)標(biāo)準(zhǔn),它成為人們用來為各種系統(tǒng)建模、描述系統(tǒng)架構(gòu)、商業(yè)架構(gòu)和商業(yè)過程的統(tǒng)一工具。
UML之所以得到普及的主要原因不外乎以下幾點:
1UML是國際統(tǒng)一的標(biāo)準(zhǔn),用它表示的產(chǎn)品符合國際標(biāo)準(zhǔn),產(chǎn)品能夠得到廣泛的認(rèn)可。
2作為國際標(biāo)準(zhǔn),國際軟件業(yè)和商業(yè)對UML的支持也相當(dāng)普遍因而采用它將可以得到最廣泛的技術(shù)支持和工具支持。
3UML采用圖的形式來表述系統(tǒng)的視圖,圖形化易于理解的優(yōu)勢使得不同知識背景的客戶用戶、領(lǐng)域?qū)<摇⑾到y(tǒng)分析以及開發(fā)人員可以方便的交流。
4UMl是一種標(biāo)準(zhǔn)的表示方法,任何方或者過程都可以采用UML,它與具體的方法和過程無關(guān),具有通用性。
5UML具有良好的可擴(kuò)展性,可適用到不同的領(lǐng)域,在具有通用性的同時還具有使自身專用化的能力。
6UML與最好的軟件實踐經(jīng)驗集成,其自身雖然沒有表述任何方法或過程,但是卻要求使用它的過程具有以下的特征:以架構(gòu)為中心、用例驅(qū)動、支持迭代和遞增地開發(fā)。這些特征體現(xiàn)了軟件開發(fā)的成功經(jīng)驗。
7UML對軟件設(shè)計和分析實踐中涌現(xiàn)出來的新思想和新方法提供了很好的支持,它支持模式、框架和組件等概念,提供從“概念模型到現(xiàn)時代碼”的可跟蹤性。
什么是UML建模語言?
UML(UnifiedModelingLanguage)是一種標(biāo)準(zhǔn)的圖形化建模語言,它是面向?qū)ο蠓治雠c設(shè)計的一種標(biāo)準(zhǔn)表示。UML不是一種可視化的程序設(shè)計語言,而是一種可視化的建模語言;UML不是工具或者是知識庫的規(guī)格說明,而是一種語言規(guī)格說明,是一種表示的標(biāo)準(zhǔn);UML不是過程和方法,但是允許任何一種過程和方法使用它。
UML建模語言的使用目的
1UML易于使用,能夠進(jìn)行可視化建模;
2與具體的實現(xiàn)無關(guān),可應(yīng)用于任何語言平臺和工具平臺;
3與具體的過程無關(guān),可應(yīng)用于任何軟件開發(fā)的過程;
4簡單并且可擴(kuò)展,具有擴(kuò)展和專有化機(jī)制,便于擴(kuò)展,無須對核心概念進(jìn)行修改;
5為面相對象的設(shè)計與開發(fā)中涌現(xiàn)出的高級概念提供支持,強(qiáng)調(diào)軟件在開發(fā)過程中對架構(gòu)、框架、模式和組件的重用;
6與最好的軟件工程實踐經(jīng)驗集成;
7有利于面對對象工具的市場成長;
UML建模語言的架構(gòu)
UML是由圖和元模型組成的。圖是UML的語法,而元模型則給出圖的意思,是UML的語義。UML的語義是定義在一個四層建模概念框架中的,其層結(jié)構(gòu)如下:
1元元模型層,組成UML的基本元素“事物”,代表要定義的所有事物;
2元模型層,組成了UML的基本元素,包括面向?qū)ο蠛兔嫦蚪M件的概念。這一層的每一個概念都是元元模型中“事物”概念的實例;
3模型層,組成了UML的模型,這一層的每個概念都是元模型中概念的一個實例,這一層的模型通常叫做類模型或者類型模型;
4用戶模型層,這個層中的所有所有元素都是UML模型的例子。這一層中的每個概念都是模型層的一個實例,也是元模型的一個實例。這一層的模型通常叫做對象模型或?qū)嵗P汀?/p>
UML建模語言的主要內(nèi)容
客觀世界是一個復(fù)雜巨系統(tǒng),需要從不同的角度來考察,才能真正理解這個系統(tǒng)。為了能支持從不同角度來考察系統(tǒng),標(biāo)準(zhǔn)建模語言UML定義了下列5類、共10種模型圖:
第一類是用例圖,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。
第二類是靜態(tài)圖(Staticdiagram),包括類圖、對象圖和包圖。
UML建模語言中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。
對象圖是類圖的實例,幾乎使用與類圖完全相同的標(biāo)識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。
包由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。
第三類是行為圖(Behaviordiagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。
其中狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充。在實用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。而活動圖描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動。
第四類是交互圖(Interactivediagram),描述對象間的交互關(guān)系。
UML建模語言中順序圖顯示對象之間的動態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖描述對象間的協(xié)作關(guān)系,合作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇合作圖。這兩種圖合稱為交互圖。
第五類是實現(xiàn)圖(Implementationdiagram)。
其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個部件可能是一個資源代碼部件、一個二進(jìn)制部件或一個可執(zhí)行部件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件圖有助于分析和理解部件之間的相互影響程度。
配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實際的計算機(jī)和設(shè)備(用節(jié)點表示)以及它們之間的連接關(guān)系,也可顯示連接的類型及部件之間的依賴性。在節(jié)點內(nèi)部,放置可執(zhí)行部件和對象以顯示節(jié)點跟可執(zhí)行軟件單元的對應(yīng)關(guān)系。
從應(yīng)用的角度看,當(dāng)采用面向?qū)ο蠹夹g(shù)設(shè)計系統(tǒng)時,首先是描述需求;其次根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三步是描述系統(tǒng)的行為。其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類圖(包含包)、對象圖、組件圖和配置圖等五個圖形,是標(biāo)準(zhǔn)建模語言UML的靜態(tài)建模機(jī)制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動圖、順序圖和合作圖等四個圖形,是標(biāo)準(zhǔn)建模語言UML的動態(tài)建模機(jī)制。因此,標(biāo)準(zhǔn)建模語言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動態(tài)建模機(jī)制兩大類。#p#
UML建模語言的應(yīng)用領(lǐng)域
1在不同類型系統(tǒng)中應(yīng)用
UML的目標(biāo)是以面向?qū)ο髨D的方式來描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域。其中最常用的是建立軟件系統(tǒng)的模型,但它同樣可以用于描述非軟件領(lǐng)域的系統(tǒng),如機(jī)械系統(tǒng)、企業(yè)機(jī)構(gòu)或業(yè)務(wù)過程,以及處理復(fù)雜數(shù)據(jù)的信息系統(tǒng)、具有實時要求的工業(yè)系統(tǒng)或工業(yè)過程等。總之,UML是一個通用的標(biāo)準(zhǔn)建模語言,可以對任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)進(jìn)行建模。
以下是常見的UML應(yīng)用:
系統(tǒng)信息--向用戶提供信息的存儲、檢索、交換和提交。處理存放在關(guān)系或?qū)ο髷?shù)據(jù)庫中大量具有復(fù)雜關(guān)系的數(shù)據(jù);
技術(shù)系統(tǒng)--處理和控制技術(shù)設(shè)備,它們必須處理設(shè)計的特殊接口,標(biāo)準(zhǔn)軟件相對較少,技術(shù)系統(tǒng)通常是實時系統(tǒng);
嵌入式實時系統(tǒng)--在嵌入到其它設(shè)備硬件上執(zhí)行的系統(tǒng)。通常是通過低級程序設(shè)計進(jìn)行的,需要實時支持;
分布式系統(tǒng)--分布在一組機(jī)器上運行的系統(tǒng),數(shù)據(jù)很容易從一臺機(jī)器傳到另一臺計其。需要同步通信機(jī)制來確定數(shù)據(jù)完整性,通常是建立在對象機(jī)制上的。
2在軟件開發(fā)過程中的應(yīng)用
UML建模語言適用于系統(tǒng)開發(fā)過程中從需求規(guī)格描述到系統(tǒng)完成后測試的不同階段。在需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統(tǒng)感興趣的外部角色及其對系統(tǒng)(用例)的功能要求。分析階段主要關(guān)心問題域中的主要概念(如抽象、類和對象等)和機(jī)制,需要識別這些類以及它們相互間的關(guān)系,并用UML類圖來描述。為實現(xiàn)用例,類之間需要協(xié)作,這可以用UML動態(tài)模型來描述。在分析階段,只對問題域的對象(現(xiàn)實世界的概念)建模,而不考慮定義軟件系統(tǒng)中技術(shù)細(xì)節(jié)的類(如處理用戶接口、數(shù)據(jù)庫、通訊和并行性等問題的類)。這些技術(shù)細(xì)節(jié)將在設(shè)計階段引入,因此設(shè)計階段為構(gòu)造階段提供更詳細(xì)的規(guī)格說明。
編程(構(gòu)造)是一個獨立的階段,其任務(wù)是用面向?qū)ο缶幊陶Z言將來自設(shè)計階段的類轉(zhuǎn)換成實際的代碼。在用UML建立分析和設(shè)計模型時,應(yīng)盡量避免考慮把模型轉(zhuǎn)換成某種特定的編程語言。因為在早期階段,模型僅僅是理解和分析系統(tǒng)結(jié)構(gòu)的工具,過早考慮編碼問題十分不利于建立簡單正確的模型。
UML模型還可作為測試階段的依據(jù)。系統(tǒng)通常需要經(jīng)過單元測試、集成測試、系統(tǒng)測試和驗收測試。不同的測試小組使用不同的UML圖作為測試依據(jù);單元測試使用類圖和類規(guī)格說明;集成測試使用部件圖和合作圖;系統(tǒng)測試使用用例圖來驗證系統(tǒng)的行為;驗收測試由用戶進(jìn)行,以驗證系統(tǒng)測試的結(jié)果是否滿足在分析階段確定的需求。
總之,標(biāo)準(zhǔn)建模語言UML適用于以面向?qū)ο蠹夹g(shù)來描述任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測試和維護(hù)。
【編輯推薦】