1、引 言
Web技術的發(fā)展,使得管理系統(tǒng)的開發(fā)更方便、功能更強大,在此系統(tǒng)的開發(fā)過程中,Web技術起了一個骨架式的支持作用;與此同時組件技術的發(fā)展為系統(tǒng)的開放性、集成性提供了便利,有效合理地引入組件技術是當前Web系統(tǒng)開發(fā)與發(fā)展的一個方向;通過對系統(tǒng)的開發(fā)進行建模,形象直觀的圖形化表示,可以顯示系統(tǒng)的流程與功能。選擇有效的建模方法,充分利用Web技術與組件技術,提高軟件的開發(fā)效率,提高的軟件的可靠性和可維護性,是每個軟件開發(fā)人員所關心的問題。
UML(Unified Modeling Language)是基于對象技術的標準建模語言,定義良好、易于表達、功能強大的特點使它在面向?qū)ο蟮姆治雠c設計中更具優(yōu)勢。在基于Web技術和組件技術的系統(tǒng)建模中,它完善的組件建模思想和可視化建模的優(yōu)勢更利于系統(tǒng)開發(fā)人員理解程序流程和功能,進一步提高Web系統(tǒng)的開發(fā)效率以及Web組件的可重用性和可修復性。
本文將結(jié)合我們自主開發(fā)的活塞PDM系統(tǒng)中的項目審批流程的建模,介紹UML在基于WEB技術和組件技術的系統(tǒng)建模中的應用。
2、基于Web的應用系統(tǒng)結(jié)構
對于基于Web技術的應用系統(tǒng),用戶直接面對的是客戶端瀏覽器,用戶在使用系統(tǒng)時,請求之后的事務邏輯處理和數(shù)據(jù)的邏輯運算由服務器與數(shù)據(jù)庫系統(tǒng)共同完成,對用戶而言是完全透明的。運算后得到的結(jié)果再通過瀏覽器的方式返回給用戶。這個過程可分成一些子步驟,每一個子步驟的完成可理解為通過一個單獨的應用服務器來處理,這些應用服務器在最終得到用戶所需的結(jié)論之前,相互之間還會進行一定的數(shù)據(jù)交流和傳遞。圖1就是Web的應用結(jié)構簡圖。
隨著Web應用技術的發(fā)展,對Web數(shù)據(jù)流程的解釋上還會有相應的改進或補充。
3、Web應用系統(tǒng)的UML建模方法
頁面、腳本、表單和框架是Web應用系統(tǒng)的關鍵部分,數(shù)據(jù)流程的模型化表示關鍵就是用UML對上述Web元素應用及其關系建模,下面對這幾種元素的模型化表示作一個簡要介紹。
(1)頁面建模。用戶在使用Web應用系統(tǒng)時,是通過頁面進行系統(tǒng)的操作。在頁面建模中可用兩個類別模板《Client Page》和《Sever Page》分別表示客戶端頁面和服務器端頁面??蛻舳隧撁娴膶傩允琼摰淖饔糜蛑卸x的變量,方法是頁面腳本中的函數(shù);服務器頁面的屬性是頁面腳本中的變量,方法是腳本中定義的函數(shù)。在使用頁面信息傳遞時,還可能出現(xiàn)服務器頁面的重定向,在UML建模中,用類別模板《redirect》來表示;對于客戶端頁面和服務器頁面的構造關聯(lián)用類別模板《bulid》表示,這種關聯(lián)是一種單向關聯(lián),由服務器頁面指向客戶端頁面,具體表示如圖2所示。
在Web應用系統(tǒng)中,還會經(jīng)常用到的就是超級鏈接,在UML建模中,用類別模板《link》表示超級鏈接,它的參數(shù)模擬為鏈接屬性。
(2)表單建模。用戶的要求一般通過表單與數(shù)據(jù)庫交互。在UML建模中,表單用類別模板《form》表示,屬性是表單中的域,表單沒有方法。表單在處理請求時,要與Web頁面交流數(shù)據(jù),這個交流過程是用提交按鈕submit來完成,為了在建模中表示這種關系,用類別模板《submit》表示。
(3)組件建模。在使用組件技術的Web應用系統(tǒng)建模中,對組件的建模是個重要環(huán)節(jié),在UML基本的圖形化建模元素中,設立了專門的組件圖。組件在使用過程中,同樣的分成了客戶端組件(如Java Applet,ActiveX控件)和服務器端組件。在系統(tǒng)的UML模型化表示中,用類別模板《Client Component》表示客戶端組件,用《Sever Component》表示服務器端組件。
(4)框架建模??蚣芡ㄟ^定義類別模板元素《frameset》來實現(xiàn),frameset指定并命名各個框架,每個框架容納一個頁面;框架的使用還涉及到目標target,建模時用《target》來表示。
4、UML在活塞PDM系統(tǒng)建模中的運用
活塞PDM系統(tǒng)是在傳統(tǒng)PDM系統(tǒng)的基礎上,引入了組件技術和Web技術,對數(shù)據(jù)流程的處理更趨于簡易性和方便性。在對該系統(tǒng)的建模過程中,要體現(xiàn)整個系統(tǒng)前臺與后臺間數(shù)據(jù)交互的流程。在設計時,主要是考慮設計它的class diagram(類圖)和component diagram(組件圖),用這兩類模型圖來體現(xiàn)UML的用例驅(qū)動和系統(tǒng)組件結(jié)構的特性。由于在系統(tǒng)的開發(fā)中采用了模塊化的設計方法,因此在構劃模型圖時,采用了先整體后局部的思路,首先考慮整個系統(tǒng)的案例圖,再對子模塊進行分析和設計,在每個子模塊數(shù)據(jù)流的入口和出口設置模型圖間數(shù)據(jù)交互的接口。下面以活塞PDM系統(tǒng)中項目審批流程子模塊的建模為例說明UML在此系統(tǒng)建模中的應用。
4.1 項目審批流程
項目審批是項目管理流程的一部分,功能就是實現(xiàn)審批過程和數(shù)據(jù)傳遞的自動進行,取消了傳統(tǒng)審批流程中大量紙質(zhì)文件的使用。下面以活塞新產(chǎn)品開發(fā)的項目審批為例來說明UML對項目審批流程的建模方法。
活塞新產(chǎn)品開發(fā)的項目審批過程有7個環(huán)節(jié)組成,分別是項目申請、組織評審、制定實施方案、技術委員會及專家委員會評審、技術副總審核、總經(jīng)理審核和董事會審核。通過這七個環(huán)節(jié)來決定一個項目實施的可行性或者合理性。
審批過程自動化的實現(xiàn)方法,是在Web技術和組件技術的基礎上,對每一個環(huán)節(jié)設置了評審狀態(tài)tag。當tag=1時,表明項目已通過該環(huán)節(jié)評審,可進入下步評審;當tag=0時,表明項目還未經(jīng)過評審,或者未通過評審,需要返回去修改項目運行的可行性研究,等待再一次的評審。同時在每個環(huán)節(jié)進行評審時,還要考慮該項目是否已進入了下一級評審,如若項目已進行了下一級的評審,這時該環(huán)節(jié)的操作人員都無權再對該環(huán)節(jié)所填寫的評審意見進行編輯。也就是在對每個環(huán)節(jié)進行維護時,還要考慮下一級的評審狀態(tài)。
在建模之前,首先看一下項目審批流程圖,如圖3所示。
除了這七個審批環(huán)節(jié),為了讓用戶及時了解交叉投入生產(chǎn)的項目審批或進展情況,提供了項目瀏覽功能,用戶按照管理員所授予的權限,在權限范圍內(nèi)并且利用項目瀏覽子模塊中提供的關鍵字段、項目評審狀態(tài)或者進展狀態(tài)進行分類檢索。
在項目評審流程的每個環(huán)節(jié),一般設置了兩部分功能需求,即填寫該環(huán)節(jié)評審的內(nèi)容、編輯該環(huán)節(jié)評審的內(nèi)容。
比如總經(jīng)理評審環(huán)節(jié),它的功能設置如圖4所示。
為了實現(xiàn)網(wǎng)上審批的自動化,在整個流程的環(huán)節(jié)功能設置時,遵照了如下的規(guī)則要求:在每個環(huán)節(jié)的查看已填評審內(nèi)容時,列出的項目都是正在等待進入該環(huán)節(jié)評審的項目,而不屬于這種情形的項目在此環(huán)節(jié)中是顯示不出來的;同樣,對于在編輯此環(huán)節(jié)評審內(nèi)容上,已經(jīng)進行了下一級評審的項目也是不可能列出的,每個環(huán)節(jié)的負責人只可以對此環(huán)節(jié)以前的評審內(nèi)容具有瀏覽功能,而不具備編輯功能。如果要查看整個項目的評審狀況,在管理員授予項目瀏覽功能的權限下,通過項目瀏覽一項完成。
整個流程所包括的各個環(huán)節(jié),在功能設置上是類似的,差異是評審環(huán)節(jié)在整個評審流程中所處的位置。在進行UML建模時采用了把這些環(huán)節(jié)分開的方法,先對每個環(huán)節(jié)建模,最后再把單個的環(huán)節(jié)模型圖整合成一個完整流程的模型圖。由于篇幅所限,下面以總經(jīng)理評審的環(huán)節(jié)為例說明UML的建模方法。
4.2 總經(jīng)理評審的類圖(Class Diagram)
在項目審批流程中,設計了總經(jīng)理審核環(huán)節(jié)的Class Diagram,如圖(5)、圖(6)、圖(7)所示。圖(6)和圖(7)是圖(5)的延續(xù)。該類圖顯示了總經(jīng)理審核環(huán)節(jié)中各個頁面之間的關系。為簡化,在此類圖中沒有列出各個類的屬性和方法。整個類圖實現(xiàn)了查看已填寫評審內(nèi)容、填寫總經(jīng)理評審內(nèi)容和編輯評審內(nèi)容。
4.3 總經(jīng)理評審的組件圖(Component Diagram)
組件圖是分析該環(huán)節(jié)所涉及的功能是如何實現(xiàn)的,這部分與具體的編碼工作相關??偨?jīng)理評審環(huán)節(jié)的模塊組件圖如圖(8)所示。
4.4 由模型圖到代碼的轉(zhuǎn)換
類圖和組件圖說明了在基于Web技術的信息交互流程,頁面的超級鏈接和頁間的重新導向在JSP代碼設計中,由模型圖就可以掌握它們之間交互的邏輯,這樣使程序編寫更富條理性和方便性。在實際工作中,可以設置為CRC卡,方便編程人員的使用。如若再比較詳細地設計出對象圖和順序圖,對于整個系統(tǒng)的類定義和方法設置,會提供更大的方便。
5、結(jié)束語
建模對系統(tǒng)的開發(fā)過程中起著很重要的作用,在系統(tǒng)的開發(fā)和維護中有必要建立系統(tǒng)的模型。UML是一種圖示化的面向?qū)ο蠼UZ言,它形象直觀、應用廣泛,并對Web技術和組件技術在系統(tǒng)開發(fā)中的建模方法有了比較合理有效的定義。在UML提供的各種模型圖的基礎上,還可以依照所有開發(fā)技術的特點對它的表示進行擴展,在本文的建模中就是用了UML的類別模塊擴充機制,為某些模型元素添加新的語義,構造新的模型,來說明開發(fā)過程中的隱含特性。
通過利用UML建模,對基于Web的PDM系統(tǒng)中的項目審批流程進行了分析和設計,對整個流程的功能有了一個清晰的認識,利于開發(fā)人員對系統(tǒng)的開發(fā)與維護,同時可為系統(tǒng)的升級或者二次開發(fā)提供一個理論依據(jù)。
參考文獻:
[1]黃江洋、楊燦軍、陳鷹 基于Web電梯銷售合同管理系統(tǒng)的UML建模 機電工程 2001年第18卷第5期
[2]杜龍姣、李尚慧 UML技術在Web開發(fā)中的應用 應用科技 Vol.30.No.2 Feb.,2003
[3][美]Roger S.Pressman 梅宏譯 軟件工程實踐者的研究方法(原書第5版) 機械工業(yè)出版社 2003年1月
*本文由國家自然基金項目(項目編號:60072014)和省自然基金項目(項目編號:Y2003G01)資助。