劉秋香 劉振偉
摘要:在軟件工程中,UML的應(yīng)用非常廣泛。UML建模技術(shù)具有可視化、標(biāo)準(zhǔn)化、功能強大、普遍適用等優(yōu)點,能夠貫穿于軟件工程的分析、設(shè)計、實現(xiàn)、測試、運行與維護(hù)等主要階段。軟件建模是開發(fā)優(yōu)秀軟件的一項核心工作,UML使用一些標(biāo)準(zhǔn)的圖形符號為軟件建立模型圖。深入理解UML建模技術(shù)的各種圖及其用途,就可以在軟件工程的各個階段正確應(yīng)用UML模型圖。
關(guān)鍵詞:UML;軟件工程;建模;模型圖
中圖分類號:TP311? ? 文獻(xiàn)標(biāo)識碼:A? ? ? 文章編號:1009-3044(2018)31-0075-01
1 背景
UML(Unified Modeling Language,統(tǒng)一建模語言)是一種基于面向?qū)ο蟮目梢暬臉?biāo)準(zhǔn)建模語言,具有廣泛適用性。UML采用了一組形象化的圖形符號作為建模語言,通過建立圖形之間的各種關(guān)系來描述模型。
軟件工程是按照工程化的原則和方法組織軟件開發(fā)工作[1]。軟件工程把軟件的生產(chǎn)過程(也稱為軟件生命周期)分為計劃、分析、設(shè)計、實現(xiàn)(編碼)、測試、運行(配置)與維護(hù)等幾個主要階段,并按各個階段進(jìn)行實施。
UML作為一種對軟件系統(tǒng)進(jìn)行規(guī)約、構(gòu)造、可視化和文檔化的語言[2],它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù),貫穿于軟件工程的各個階段,為之建立相應(yīng)的系統(tǒng)模型圖。
2 UML建模技術(shù)
UML1.0版于1997年1月發(fā)布,同年12月,UML 1.1版被OMG(對象管理組織)采納為業(yè)界標(biāo)準(zhǔn),之后推出了一系列版本。目前最新版本是2017年推出的UML2.5.1[3],通用版本是2005年的UML2.0。
UML1系列版本主要包括9種圖:用例圖、類圖、對象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、構(gòu)件圖和部署圖。而UML 2.0 包括13種圖,與UML1相比,新增了包圖、復(fù)合結(jié)構(gòu)圖、交互概覽圖、時序圖,并且把原來的協(xié)作圖改名為通信圖、狀態(tài)圖改名為狀態(tài)機圖。
UML語言體系由構(gòu)造塊、規(guī)則和公共機制三個部分構(gòu)成[4]。其中,構(gòu)造塊也稱為構(gòu)造符號,包括事物符號、關(guān)系符號和圖,一些代表實體的事物符號按某種規(guī)則通過關(guān)系符號連接在一起組成圖。下面分別對UML2.0中13種圖的用途進(jìn)行簡要說明。
1)用例圖:描述系統(tǒng)提供的功能單元、用戶與系統(tǒng)如何交互。
2)類圖:描述類、類的特性以及類之間的關(guān)系。
3)對象圖:非正式圖,描述系統(tǒng)在某一個特定時間點上各個對象之間的關(guān)系,是類圖的實例和快照。
4)順序圖:也稱為序列圖,描述各個對象按照時間順序進(jìn)行交互的過程。
5)通信圖:描述對象間通過消息進(jìn)行的交互,強調(diào)對象在交互行為中承擔(dān)的角色。
6)狀態(tài)機圖:描述對象在生命周期內(nèi),在外部事件作用下的狀態(tài)變換。
7)活動圖:描述多個對象從一個活動到另一個活動的控制流程,通常用于表示單個操作、業(yè)務(wù)用例或商業(yè)過程的邏輯流程。
8)構(gòu)件圖:描述系統(tǒng)中的構(gòu)件、接口及關(guān)系。
9)部署圖:也稱為配置圖描述系統(tǒng)運行時在各個硬件節(jié)點上的軟件部署以及如何彼此通信。
10)包圖:非正式圖,描述包及其關(guān)系,展示系統(tǒng)總體結(jié)構(gòu)。
11)組合結(jié)構(gòu)圖:描述系統(tǒng)中某一部分(類、構(gòu)件等)的內(nèi)部結(jié)構(gòu)及與系統(tǒng)其他部分的交互點。
12)定時圖:也稱為計時圖,描述對象之間的交互,強調(diào)對象處于特定狀態(tài)的時間與觸發(fā)狀態(tài)變化的消息。
13)交互概覽圖:是順序圖與活動圖的混合,一般以活動圖為主線,由順序圖細(xì)化某些活動。
3 軟件工程中的UML
UML可以描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域,但最常用的是對各類軟件系統(tǒng)的建模。UML能夠貫穿于軟件工程的分析、設(shè)計、實現(xiàn)、測試、運行與維護(hù)等主要階段,為之建立相應(yīng)的模型圖。
1)分析:包括需求分析和系統(tǒng)分析。需求分析一般利用用例圖和活動圖建模,并編寫用例規(guī)約;系統(tǒng)分析一般是在真實世界中的抽象層面上創(chuàng)建簡單的類圖,也可能會用到簡單的包圖、對象圖、順序圖、通信圖、狀態(tài)機圖等進(jìn)一步描述。
2)設(shè)計:包括概要(總體)設(shè)計和詳細(xì)設(shè)計。概要設(shè)計一般 (下轉(zhuǎn)第89頁)
(上接第75頁)
利用類圖、包圖、狀態(tài)圖、順序圖和通信圖建模,也可能會用到對象圖、狀態(tài)機圖、定時圖、交互概覽圖和細(xì)化的活動圖;詳細(xì)設(shè)計時,可能會對已有模型圖進(jìn)行修改。
3)實現(xiàn)(編碼):一般利用構(gòu)件圖和部署圖建模,可能會用到組合結(jié)構(gòu)圖和細(xì)化的包圖。
4)測試:包括單元(模塊)測試、集成測試、系統(tǒng)測試和驗收測試。測試階段不再建立新的模型圖,可能會根據(jù)測試情況修改已有模型圖。一般單元測試?yán)妙悎D和順序圖,集成測試?yán)脴?gòu)件圖和通信圖,系統(tǒng)測試?yán)糜美龍D和活動圖,驗收測試則由用戶進(jìn)行。
5)運行和維護(hù):運行時一般利用部署圖和構(gòu)件圖,維護(hù)時則可能用到各種模型圖。
注意:在哪個階段建立什么模型圖不是絕對的,而且在實際進(jìn)行軟件建模時,幾乎沒有人使用UML標(biāo)準(zhǔn)中定義的所有圖;一般不建議使用對象圖和通信圖。
4 結(jié)束語
UML建模是軟件工程的一項重要內(nèi)容,貫穿于軟件工程的主要階段,通過圖形符號快捷有效地為軟件建立相應(yīng)的模型圖。開發(fā)人員要根據(jù)軟件的實際情況,建立適合的主要的模型圖。
參考文獻(xiàn):
[1] 刁成嘉. UML系統(tǒng)建模與分析設(shè)計[M]. 北京: 機械工業(yè)出版社, 2017.
[2] 謝星星. UML基礎(chǔ)與Rose建模實用教程[M]. 北京: 清華大學(xué)出版社, 2011.
[3] OMG官網(wǎng). ABOUT THE UNIFIED MODELING LANGUAGE SPECIFICATION VERSION 2.5.1[EB/OL]. https://www.omg.org/spec/UML.
[4] 王先國. UML基礎(chǔ)與建模實踐教程[M]. 北京: 機械工業(yè)出版社, 2018.