摘要:該文對UML的產(chǎn)生背景、UML的基本概念進(jìn)行闡述,并以圖書管理系統(tǒng)為例,描述了UML建模的方式。
關(guān)鍵詞:UML;建模語言;用例圖
中圖分類號:TP312文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)32-8937-02
Unified Modeling Language UML and its Application
XU Hui
(Higher Vocational School of Electrical and Mechanical Zhenjiang, Zhenjiang 212016, China)
Abstract: This article illustrates the background of the creation and fundamental concepts of UML.Then,it takes more step to illustrate with a real case of Library Management System,the methodology for building models with UML.
Key words: UML; modeling language; use-case diagram
目前人們普遍開始采用面向?qū)ο蟮姆治雠c設(shè)計(jì),但是很少有開發(fā)人員使用形象化的設(shè)計(jì)方法,其主要原因就是缺乏統(tǒng)一的語言來為復(fù)雜軟件系統(tǒng)的組件定義、可視化、構(gòu)建和編制文檔。而UML的出現(xiàn)徹底的改變了這一現(xiàn)狀,并成為了面向?qū)ο蠼5臉?biāo)準(zhǔn)語言。
UML主要是由Rational software公司和它的三位巨匠Grady Booch、Jim Rumbaugh和Ivar Jacohson開發(fā)的。這一標(biāo)記法凝聚了三位設(shè)計(jì)者的精華,并因此促成了一個(gè)國際公認(rèn)的標(biāo)準(zhǔn)的產(chǎn)生[1]。
1 UML的基本概念
UML(統(tǒng)一建模語言,Unified Modeling Language)是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的可視化建模語言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。作為一種建模語言,UML的定義包括語義和語法兩部分。UML的語義描述基于UML提供的精確元模型的定義(元模型為UML的所有元素在語法和語義上提供了簡單、一致和通用的定義性說明,并且UML還支持對元模型的擴(kuò)展定義),UML的語義用自然語言描述,同時(shí)在語義上,模型是元模型的實(shí)例;UML的語法定義了UML的概念、元素、符號表示法及用法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法提供了系統(tǒng)建模標(biāo)準(zhǔn)。
UML是一種可視化的建模語言,對其各種建模元素可進(jìn)行詳細(xì)說明,并能生成所建模型的文檔[2]。使用UML時(shí),要從不同的角色觀察系統(tǒng),為此定義了一個(gè)概念“視圖”。視圖是對系統(tǒng)模型在某方面的投影,它注重于系統(tǒng)的某個(gè)方面,每個(gè)視圖是圖的協(xié)作,由視圖可以定義模型,模型在語義上是閉合的,它從特定的角度、在一定抽象層次上描述目標(biāo)系統(tǒng)。可以把視圖組織成模型,開發(fā)人員可從各視角觀察并使用模型。
UML定義了5大類共9種視圖:1)用例圖;2)靜態(tài)圖,包括類圖、對象圖和包圖;3)行為圖;4)交互圖,它描述對象間的交互關(guān)系;5)實(shí)現(xiàn)圖,包括構(gòu)件圖和配置圖。
2 UML建模過程及建模支持工具
Rational 統(tǒng)一過程是由UML的創(chuàng)始者Booch等人提出的一種面向?qū)ο筌浖_發(fā)過程。這種開發(fā)過程的特點(diǎn):以用例驅(qū)動(dòng),以體系結(jié)構(gòu)為中心,迭代和遞增的開發(fā)過程。[5] Rational統(tǒng)一過程把軟件項(xiàng)目的開發(fā)過程劃分為4個(gè)階段:開始、詳細(xì)描述、構(gòu)建、移交。在每個(gè)階段內(nèi)都有一些迭代。一個(gè)迭代代表一個(gè)完整的開發(fā)周期,從需求分析到實(shí)現(xiàn)和測試,結(jié)果是一個(gè)可執(zhí)行項(xiàng)目的發(fā)布。每一次迭代都包含編碼、測試和集成,所得產(chǎn)品應(yīng)滿足項(xiàng)目需求的某一子集,或提交給用戶,或純粹是內(nèi)部提交。每次迭代都包含了軟件生命周期的所有階段。在開始階段,焦點(diǎn)是需求的獲得;在詳細(xì)描述階段,重點(diǎn)是轉(zhuǎn)向分析和設(shè)計(jì);在構(gòu)建階段,實(shí)現(xiàn)是中心任務(wù);移交階段的中心則在于配置。
當(dāng)然好方法一定要有好的工具支持才能取得好的效果,由于UML本身是一個(gè)以圖形化圖符為主的建模方法,因此在圖形繪制及模型管理上會(huì)隨著軟件規(guī)模的擴(kuò)大而變得困難[3]。這時(shí)UML支持工具就顯得更為重要,目前最常用的兩種工具是Rational軟件公司的Rational Rose和Microsoft公司的Visio,盡管在大多數(shù)情況下Rational Rose顯得有些昂貴,但它確是集多種功能于一身的軟件包,它可使代碼反向轉(zhuǎn)化為模型、改變模型以及可以對代碼進(jìn)行更新來反應(yīng)模型的變化。與Rational Rose相比,Microsoft公司的Visio卻相當(dāng)便宜,并且允許你用圖表示任何事情,從架構(gòu)布局到辦公計(jì)劃、指向路標(biāo)和工程計(jì)劃。Microsoft公司的Visio的最大賣點(diǎn)就是它是Microsoft Office的一個(gè)組件,這意味著它的界面、控件和功能與Word和Excel的標(biāo)準(zhǔn)一樣。
3 UML的應(yīng)用
現(xiàn)以圖書管理系統(tǒng)為例說明UML建模的基本過程[4]。該過程主要包括:需求分析、設(shè)計(jì)階段、構(gòu)造階段和測試階段。首先我們進(jìn)行需求分析,需求分析主要是定義用例,對該系統(tǒng)的主要功能進(jìn)行描述,在這部分主要是應(yīng)用用例圖。在圖書管理系統(tǒng)中,當(dāng)圖書館新進(jìn)一批圖書,圖書管理員需要在電腦中新增書籍信息,對已有的書籍信息要能夠修改,查詢書籍信息,所有查詢、列表、統(tǒng)計(jì)功能應(yīng)可以單獨(dú)對計(jì)算機(jī)類或非計(jì)算機(jī)類進(jìn)行,當(dāng)有讀者借閱書籍時(shí),圖書管理系統(tǒng)還要能登記外借信息,并能對外借書籍信息進(jìn)行查詢,期間圖書管理員可以按特定時(shí)間段統(tǒng)計(jì)購買新書的金額、冊數(shù),圖書管理系統(tǒng)用例圖如圖1所示。
其次是設(shè)計(jì)階段,在設(shè)計(jì)階段,對需求階段的成果提出技術(shù)上的解決方案。對類進(jìn)行細(xì)化建模,并提出技術(shù)框架,例如,用戶界面、面向?qū)ο髷?shù)據(jù)庫的永久性對象和系統(tǒng)接口等。該階段最后為系統(tǒng)實(shí)施階段產(chǎn)生詳細(xì)說明文檔。
再次,在構(gòu)造階段把設(shè)計(jì)階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語言的代碼。
最后是測試階段。這一階段通常包括單元測試、集成測試、系統(tǒng)測試和驗(yàn)收測試。單元測試使用類圖和類的定義文檔。集成測試使用協(xié)作圖,而系統(tǒng)測試使用用例圖,用例圖可以用于證實(shí)客戶所期望的系統(tǒng)行為。
可以看出,UML提供的五類視圖從不同應(yīng)用層次出發(fā),貫穿于整個(gè)系統(tǒng)設(shè)計(jì)的全過程,減少了設(shè)計(jì)的盲目性,提高了設(shè)計(jì)的效率。
4 結(jié)束語
在很短的時(shí)間內(nèi),UML已經(jīng)成為軟件工業(yè)中占支配地位的建模語言。目前它不僅是事實(shí)上的建模語言標(biāo)準(zhǔn),也正在快速地成為法律上的標(biāo)準(zhǔn)。
參考文獻(xiàn):
[1] Jason T.UML基礎(chǔ)教程[M].張瑜,楊繼萍,譯.北京:清華大學(xué)出版社,2003.
[2] 華冠萍.淺述UML及其應(yīng)用[J].電腦知識與技術(shù),2006(3).
[3] 鄭燕,王楊.淺談UML[J].科技視野,2008(7).
[4] 江進(jìn).淺談面向?qū)ο蠼UZ言UML[J].福建電腦,2008(8).
[5] 李振華.淺談基于UML的軟件開發(fā)模型[J].技術(shù)與市場,2008(11).