一、引言
UML是一種編制系統(tǒng)藍(lán)圖的標(biāo)準(zhǔn)化語(yǔ)言,可以實(shí)現(xiàn)大型復(fù)雜系統(tǒng)各種成分描述的可視化、說(shuō)明并構(gòu)造系統(tǒng)模型,以及建立各種所需的文檔,它是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。UML的發(fā)展對(duì)軟件工程的發(fā)展做出了杰出的貢獻(xiàn)。
UML支持從需求分析開(kāi)始的軟件開(kāi)發(fā)的全過(guò)程。UML通過(guò)三類(lèi)圖形建立系統(tǒng)模型:用例(Use Case)圖、靜態(tài)結(jié)構(gòu)圖(對(duì)象類(lèi)圖、對(duì)象圖、組件圖、配置圖)和動(dòng)態(tài)行為圖(順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖),這些圖可以從不同的抽象角度實(shí)現(xiàn)系統(tǒng)的可視化。
URM的發(fā)展經(jīng)歷了以下幾個(gè)階段。
最初的階段是專(zhuān)家的聯(lián)合行動(dòng),由三位OO(面向?qū)ο螅┓椒▽W(xué)家[8]將他們各自的方法結(jié)合在一起,形成UML 0.9。
第二階段是公司的聯(lián)合行動(dòng),由十幾家公司組成的“UML伙伴組織”將各自的意見(jiàn)加入U(xiǎn)ML,形成UML 1.0和1.1,并作為向OMG申請(qǐng)成為建模語(yǔ)言規(guī)范的提案。
第三階段是在OMG控制下的修訂與改進(jìn),OMG于1997年11月正式采納UML 1.1作為建模語(yǔ)言規(guī)范,然后成立任務(wù)組進(jìn)行不斷的修訂,并產(chǎn)生了UML 1.2、1.3和1.4版本,其中UML 1.3是較為重要的修訂版。
目前正處于UML的重大修訂階段,目標(biāo)是推出UML 2.0,作為向ISO提交的標(biāo)準(zhǔn)提案。
1.UML的特點(diǎn)
UML具有以下特點(diǎn):
(1)面向?qū)ο?。UML支持面向?qū)ο蠹夹g(shù)的主要概念,提供了一批基本的模型元素的表示圖形和方法,能簡(jiǎn)潔明了地表達(dá)面向?qū)ο蟮母鞣N概念。
(2)可視化,表示能力強(qiáng)。通過(guò)UML的模型圖能清晰地表示系統(tǒng)的邏輯模型和實(shí)現(xiàn)模型??捎糜诟鞣N復(fù)雜系統(tǒng)的建模。
(3)獨(dú)立于過(guò)程。UML是系統(tǒng)建模語(yǔ)言,獨(dú)立于開(kāi)發(fā)過(guò)程。
(4)獨(dú)立于程序設(shè)計(jì)語(yǔ)言。用UML建立的軟件系統(tǒng)模型可以用Java、VC++、SmalltaIk等任何一種面向?qū)ο蟮某绦蛟O(shè)計(jì)來(lái)實(shí)現(xiàn)。
(5)易于掌握使用。UML圖形結(jié)構(gòu)清晰,建模簡(jiǎn)潔明了,容易掌握使用。
使用UML進(jìn)行系統(tǒng)分析和設(shè)計(jì),可以加速開(kāi)發(fā)進(jìn)程,提高代碼質(zhì)量,支持動(dòng)態(tài)的業(yè)務(wù)需求。UML適用于各種規(guī)模的系統(tǒng)開(kāi)發(fā)。能促進(jìn)軟件復(fù)用,方便地集成已有的系統(tǒng),并能有效處理開(kāi)發(fā)中的各種風(fēng)險(xiǎn)。
2. UML的面向?qū)ο蠓治鲈O(shè)計(jì)過(guò)程
運(yùn)用UML進(jìn)行面向?qū)ο蟮南到y(tǒng)分析設(shè)計(jì),其過(guò)程通常由以下3個(gè)部份組成:
(1)識(shí)別系統(tǒng)的用例和角色
首先對(duì)項(xiàng)目進(jìn)行需求調(diào)研,依據(jù)項(xiàng)目的業(yè)務(wù)流程圖和數(shù)據(jù)流程圖以及項(xiàng)目中涉及的各級(jí)操作人員,通過(guò)分析,識(shí)別出系統(tǒng)中的所有用例和角色;接著分析系統(tǒng)中各角色和用例間的聯(lián)系,再使用UML建模工具畫(huà)出系統(tǒng)的用例圖,同時(shí),勾畫(huà)系統(tǒng)的概念層模型,借助UML建模工具描述概念層類(lèi)圖和活動(dòng)圖。
(2)進(jìn)行系統(tǒng)分析,并抽取類(lèi)
系統(tǒng)分析的任務(wù)是找出系統(tǒng)的所有需求并加以描述,同時(shí)建立特定領(lǐng)域模型。建立域模型有助于開(kāi)發(fā)人員考察用例,從中抽取出類(lèi),并描述類(lèi)之間的關(guān)系。
(3)系統(tǒng)設(shè)計(jì),并設(shè)計(jì)類(lèi)及其行為
設(shè)計(jì)階段由結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)組成。①結(jié)構(gòu)設(shè)計(jì)是高層設(shè)計(jì),其任務(wù)是定義包(子系統(tǒng)),包括包間的依賴(lài)關(guān)系和主要通信機(jī)制。包有利于描述系統(tǒng)的邏輯組成部分以及各部分之間的依賴(lài)關(guān)系。②詳細(xì)設(shè)計(jì)就是要細(xì)化包的內(nèi)容,清晰描述所有的類(lèi),同時(shí)使用UML的動(dòng)態(tài)模型描述在特定環(huán)境下這些類(lèi)的實(shí)例的行為。
3、UML面向?qū)ο蠓治鲈O(shè)計(jì)在開(kāi)放式學(xué)籍管理系統(tǒng)中的應(yīng)用
UML是一種建模語(yǔ)言,是系統(tǒng)開(kāi)發(fā)的一個(gè)組成部分,本身并沒(méi)有關(guān)于開(kāi)發(fā)過(guò)程概念的定義和表示符號(hào)[2]。UML的創(chuàng)始者比Booch 、Jacobson和Rumbaugh在Rational公司的支持下綜合了多種系統(tǒng)開(kāi)發(fā)過(guò)程的長(zhǎng)處,提出新的面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程,稱(chēng)為Rational統(tǒng)一過(guò)程(Rational Unified Process,RUP)。RUP過(guò)程的核心工作流包括:業(yè)務(wù)建模、需求分析、系統(tǒng)分析與設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置。下面通過(guò)UML來(lái)分析并構(gòu)造學(xué)籍管理模型,并結(jié)合Rational統(tǒng)一過(guò)程加以描述,圖形用Rational Rose工具軟件繪制。
3.1 開(kāi)放式學(xué)籍管理系統(tǒng)概述
隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,特別是Internet/Intranet的出現(xiàn)及其相關(guān)技術(shù)的迅速發(fā)展,信息革命帶來(lái)了全球范圍市場(chǎng)競(jìng)爭(zhēng)的日益加劇,對(duì)傳統(tǒng)的辦公教學(xué)和生活方式產(chǎn)生了巨大的沖擊。辦公自動(dòng)化就是采用Internet/Intranet技術(shù),基于工作流的概念,使內(nèi)部人員方便快捷的共享信息,高效的協(xié)同工作;改變過(guò)去復(fù)雜,低效的手工辦公方式,實(shí)現(xiàn)迅速,全方位的信息采集,信息處理。校園網(wǎng)的建設(shè),為開(kāi)放式的學(xué)籍管理系統(tǒng)提供了技術(shù)保障。
開(kāi)放式學(xué)籍管理系統(tǒng)是一個(gè)由學(xué)校學(xué)籍管理信息中心監(jiān)控,各教學(xué)系(部)、教研室分級(jí)管理,由學(xué)生檔案管理、導(dǎo)師管理、授課教師管理、選課管理、成績(jī)查詢(xún)管理、打印報(bào)表等幾部分組成,選課學(xué)生甚至聯(lián)網(wǎng)的鄰近院校共同參與的管理系統(tǒng)。
學(xué)籍管理由學(xué)校學(xué)籍管理中心監(jiān)控,各教學(xué)系部、教研室分級(jí)管理,任課教師,選課學(xué)生共同參與。
3.2 開(kāi)放式學(xué)籍管理系統(tǒng)的用例和角色
業(yè)務(wù)建模和需求分析的目的是對(duì)學(xué)籍管理進(jìn)行評(píng)估,采集和分析系統(tǒng)的需求,理解系統(tǒng)要解決的問(wèn)題,重點(diǎn)是充分考慮系統(tǒng)的實(shí)用性。結(jié)果可以用一個(gè)U se Case模型表達(dá)(圖1),模型中的活動(dòng)者代表外部與系統(tǒng)交互的角色,包括學(xué)生、系統(tǒng)管理員,Use Case是對(duì)系統(tǒng)需求的描述,表達(dá)了系統(tǒng)的功能和所提供的服務(wù),包括學(xué)生檔案管理子系統(tǒng)、導(dǎo)師檔案管理子系統(tǒng)、課程管理子系統(tǒng)、授課教師管理子系統(tǒng)、選課管理子系統(tǒng)、成績(jī)管理子系統(tǒng)、打印報(bào)表子系統(tǒng)。
模型元素之間的實(shí)線表示二者存在關(guān)聯(lián)關(guān)系,是學(xué)籍管理系統(tǒng)層的Use Case模型,只包含了最基本的Use Case模型,是系統(tǒng)的高層抽象,在開(kāi)發(fā)過(guò)程中,隨著對(duì)系統(tǒng)的認(rèn)識(shí)不斷加深,Use Case模型可以自頂向下不斷精化,演化出更為詳細(xì)的Use Case模型。
3.3 開(kāi)放式學(xué)籍管理系統(tǒng)分析與設(shè)計(jì)
系統(tǒng)分析與設(shè)計(jì)是研究欲采用的實(shí)現(xiàn)環(huán)境和系統(tǒng)結(jié)構(gòu),結(jié)果是產(chǎn)生一個(gè)對(duì)象模型,即設(shè)計(jì)模型。設(shè)計(jì)模型包含了Use Case的實(shí)現(xiàn),可以表現(xiàn)對(duì)象是如何相互通信和運(yùn)作來(lái)實(shí)現(xiàn)Use Case流的。對(duì)于系統(tǒng)的靜態(tài)結(jié)構(gòu)??梢酝ㄟ^(guò)對(duì)象類(lèi)圖、對(duì)象圖、組件圖和配置圖來(lái)描述,對(duì)于系統(tǒng)的動(dòng)態(tài)行為,可以通過(guò)順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖描繪。這些圖再加上支持說(shuō)明文檔就構(gòu)成一個(gè)完整的設(shè)計(jì)模型。
(1)靜態(tài)結(jié)構(gòu)的分析設(shè)計(jì)
學(xué)籍管理系統(tǒng)中擁有大量數(shù)字化信息資源,這些資源是多種媒體、多種格式的,而且還是相互關(guān)聯(lián)的。其數(shù)據(jù)量大,信息長(zhǎng)度不定。非結(jié)構(gòu)化信息與結(jié)構(gòu)比信息并存。傳統(tǒng)的數(shù)據(jù)庫(kù)和信息管理系統(tǒng)在數(shù)據(jù)模型、系統(tǒng)結(jié)構(gòu)、用戶(hù)接口等方面都虛擬實(shí)現(xiàn)對(duì)這些數(shù)字化信息資源的管理和操作,這就決定了學(xué)籍管理必須采用面向?qū)ο蟮姆椒▉?lái)建立數(shù)據(jù)模型和管理模型,建立面向?qū)ο蟮臄?shù)據(jù)庫(kù)。實(shí)現(xiàn)面向?qū)ο蟮男畔⒐芾硐到y(tǒng)。使用UML對(duì)學(xué)籍管理系統(tǒng)進(jìn)行基于面向?qū)ο蟮姆治龊驮O(shè)計(jì),可以從開(kāi)發(fā)的第一步開(kāi)始,從系統(tǒng)的底層就把握住學(xué)籍管理信息資源的特征,為下一步的具體實(shí)現(xiàn)打好基礎(chǔ)。在為學(xué)籍管理系統(tǒng)建立模型時(shí)要涉及到處理大量的模型元素,如對(duì)象類(lèi)、接口、組件、節(jié)點(diǎn)、圖等。
學(xué)生類(lèi)圖中,包括學(xué)生類(lèi)的屬性和方法。例如:studentId是學(xué)生的學(xué)號(hào),且數(shù)據(jù)類(lèi)型為bigint(8),且為主碼;selectCourse(courseId : bigint,studentId:bigint)return int,是類(lèi)的方法,其入口參數(shù)為課程編號(hào)courseId和學(xué)生學(xué)號(hào)studentId,此方法作用是學(xué)生進(jìn)行選課。
(2)動(dòng)態(tài)結(jié)構(gòu)的分析與設(shè)計(jì)
學(xué)籍管理館提供的各種服務(wù)都是建立在分布、開(kāi)放的信息結(jié)構(gòu)之上。依托高速、可靠的網(wǎng)絡(luò)環(huán)來(lái)完成。每項(xiàng)服務(wù)都可以看成一個(gè)事件流,由若干相關(guān)的對(duì)象交互合作來(lái)完成。對(duì)于這種系統(tǒng)內(nèi)部的協(xié)作關(guān)系和過(guò)程行為,可以通過(guò)繪制順序圖和協(xié)同圖來(lái)幫助觀察和理解。
一個(gè)對(duì)象在雙生存期間所經(jīng)歷的狀態(tài)序列。對(duì)于把握對(duì)象的行為和狀態(tài)的遷移變化是非常重要的,可以通過(guò)狀態(tài)回來(lái)了解一個(gè)對(duì)象的歷史,引起一個(gè)狀態(tài)向另一個(gè)狀態(tài)轉(zhuǎn)移的事件,以及由于狀態(tài)的轉(zhuǎn)移而引發(fā)的動(dòng)作。
此外,描述工作流和并發(fā)處理行為還可以用活動(dòng)圖,表達(dá)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,顧序圖和協(xié)同圖適合描述多個(gè)對(duì)象的協(xié)同行為,而狀態(tài)圖適合描述一個(gè)對(duì)象穿越多個(gè)Use Case的行為。狀態(tài)圖與活動(dòng)圖的區(qū)別是:狀態(tài)圖描述的是對(duì)象類(lèi)響應(yīng)事件的外部行為。活動(dòng)圖描述的是響應(yīng)內(nèi)部處理的對(duì)象類(lèi)的行為。圖3是學(xué)生查詢(xún)成績(jī)的活動(dòng)圖。
學(xué)生登陸學(xué)籍管理系統(tǒng),輸入其用戶(hù)名和密碼,若用戶(hù)名和密碼有誤則返回,否則進(jìn)入下一步:首先選擇查詢(xún)類(lèi)型(查詢(xún)成績(jī)),然后輸入查詢(xún)關(guān)鍵詞,再進(jìn)行查詢(xún),系統(tǒng)自動(dòng)生成了成績(jī)單。
2.4 開(kāi)放式學(xué)籍管理系統(tǒng)的實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置
經(jīng)過(guò)系統(tǒng)分折與設(shè)計(jì)后.就可以根據(jù)設(shè)計(jì)模型在具體的環(huán)境中實(shí)現(xiàn)系統(tǒng),生成系統(tǒng)的源代碼、可執(zhí)行程序和相應(yīng)的軟件文檔,建立一個(gè)可執(zhí)行的系統(tǒng).然后需要對(duì)系統(tǒng)送行測(cè)試和排錯(cuò),保證系統(tǒng)符合預(yù)定的要求。獲得一個(gè)無(wú)錯(cuò)的系統(tǒng)實(shí)現(xiàn),調(diào)試的結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。最后系統(tǒng)配置的任務(wù)是在真實(shí)的使用運(yùn)行環(huán)境中配置,調(diào)試系統(tǒng),解決系統(tǒng)正式使用前可能存在的任何問(wèn)題。
三、小結(jié)
UML是一種功能強(qiáng)大的、面向?qū)ο蟮目梢暬到y(tǒng)分析的建模語(yǔ)言,它采用一整套成熟的建模技術(shù),廣泛地適用于各個(gè)應(yīng)用領(lǐng)域。它的各個(gè)模型可以幫助開(kāi)發(fā)人員更好地理解業(yè)務(wù)流程,建立更可靠、更完善的系統(tǒng)模型。從而使用戶(hù)和開(kāi)發(fā)人員對(duì)問(wèn)題的描述達(dá)到相同的理解,以減少語(yǔ)義差異,保障分析的正確性。
通過(guò)對(duì)學(xué)籍管理系統(tǒng)的開(kāi)發(fā)可以看到,UML作為軟件工程中的建模語(yǔ)言,代表了面向?qū)ο蠓椒ǖ能浖_(kāi)發(fā)技術(shù)的發(fā)展方向,具有重大的經(jīng)濟(jì)價(jià)值和國(guó)防價(jià)值,并獲得了國(guó)際上的廣泛支持,具有非常好的應(yīng)用前景。