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