宗冉 唐波 黃煜洲
摘要:統(tǒng)一建模語言UML是一種被廣泛應用的可視化面向?qū)ο蟮慕UZ言,能夠建立系統(tǒng)模型和幫助分析業(yè)務流程。由于某單位科研項目管理系統(tǒng)結(jié)構(gòu)龐大,工作流程復雜,本文基于UML語言,建立“4+1”視圖模型,用多個視圖描述系統(tǒng)的功能、靜態(tài)模型和動態(tài)模型,設(shè)計了系統(tǒng)的邏輯結(jié)構(gòu)和物理實現(xiàn)。利用可視化建模工具Star UML將模型生成Java代碼框架,為系統(tǒng)的詳細設(shè)計和編碼開發(fā)提供了很好的支持。實現(xiàn)了基于B/S架構(gòu)的web科研項目管理系統(tǒng),實現(xiàn)了對科研項目網(wǎng)絡(luò)化共享和信息化管理的模式,提高了工作效率。
關(guān)鍵詞:UML;建模; “4+1”視圖模型;軟件體系結(jié)構(gòu);信息系統(tǒng)
中圖分類號:TP302.1? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)17-0053-03
開放科學(資源服務)標識碼(OSID):
Abstract: The Unified Modeling Language(UML) is a widely used visual object-oriented modeling language that builds system models and helps analyze business processes. Due to the huge structure and complicated workflow of the scientific research project management system, this paper builds a “4+1” view model based on UML language, describes the system's function, static model and dynamic model with multiple views, and designs the logical structure and the physical implementation of the system. Using the visual modeling tool Star UML to generate the Java code framework for the model, it provides good support for the detailed design and coding development of the system. Based on B/S architecture web scientific research project management system to realize the mode of networked sharing and information management of the scientific research projects, and it also improves the work efficiency.
Key words: UML; Modeling; "4+1"View Model; Software Architecture; Information System
1 引言
當前某單位的科研項目管理工作量日趨加重,但目前管理仍通過一些常用辦公軟件采用手工形式進行項目信息的采集和統(tǒng)計,這樣的管理模式工作速度慢、時間長、效率低,數(shù)據(jù)出錯率高,存檔復雜,查詢困難。因此,科研項目管理需要采取新的、更為高效的管理模式,使得整個管理工作流程科學化、自動化,高效方便地對信息進行管理。系統(tǒng)結(jié)構(gòu)設(shè)計的優(yōu)劣將影響系統(tǒng)的開發(fā)與研究工作,建立合理、高效的系統(tǒng)模型可提高系統(tǒng)開發(fā)的工作效率,減少開發(fā)和研究的成本。本文利用了UML設(shè)計了某單位科研項目管理系統(tǒng)模型,UML統(tǒng)一建模語言進行需求分析是建立可理解的系統(tǒng)模型,通過對系統(tǒng)功能結(jié)構(gòu)和行為對系統(tǒng)建立可視化模型,可提高系統(tǒng)的復用和維護性,同時降低了系統(tǒng)的開發(fā)難度,并結(jié)合Java和達夢數(shù)據(jù)庫實現(xiàn)了此系統(tǒng)。
2 UML建模技術(shù)
正在UML統(tǒng)一建模語言之前出現(xiàn)了多種建模語言,由于不同建模語言各具特色,所以用戶需要選擇幾種建模語言完成軟件體系結(jié)構(gòu)建模,但又因為不同建模語言描述和表達的方法不同,使得用戶間難以交流。統(tǒng)一建模語言(Unified Modeling Language,UML)是在Grady Booch的Booch1993方法、Ivar Jaeobson的OOSE方法和James Rumbaugh的OMT方法基礎(chǔ)上形成的,是軟件和系統(tǒng)開發(fā)的標準建模語言,用于對軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為進行描述和可視化處理[1]。在軟件開發(fā)過程中,面向?qū)ο蠹夹g(shù)已成為軟件開發(fā)的主流方法,UML用于支持面向?qū)ο蟮南到y(tǒng)開發(fā),是系統(tǒng)分析與設(shè)計的基礎(chǔ)。UML提供了對體系結(jié)構(gòu)中組成要素建模的支持,如:UML的關(guān)系對應軟件體系結(jié)構(gòu)的連接件;體系結(jié)構(gòu)的配置可以由UML的構(gòu)件圖、包圖和配置圖描述;UML結(jié)構(gòu)元素的類、構(gòu)件、節(jié)點、用例和組織元素中包、子系統(tǒng)和模型相當于軟件體系結(jié)構(gòu)的構(gòu)件[2]。
UML主要用九種模型圖來表示,這九種模型圖又可以分為兩類:靜態(tài)視圖和動態(tài)視圖。靜態(tài)視圖分為:用例圖、類圖、對象圖、包圖、構(gòu)件圖和部署圖。動態(tài)視圖分為:狀態(tài)圖、活動圖、協(xié)作圖和序列圖[3]。
3? 基于科研項目管理系統(tǒng)建立“4+1”視圖模型
科研項目管理系統(tǒng)是為了滿足對科研項目管理和項目數(shù)據(jù)基本信息查詢的系統(tǒng),由發(fā)展戰(zhàn)略管理、計劃規(guī)劃管理、經(jīng)費管理、項目管理、成果管理、單位和專家?guī)旃芾砑跋到y(tǒng)的管理維護的功能模塊構(gòu)成。通過對系統(tǒng)進行需求分析能夠詳細捕獲和描述系統(tǒng)的功能和業(yè)務領(lǐng)域。建??梢酝晟栖浖枨?、構(gòu)建完整的業(yè)務流程、應用設(shè)計模式的解決方法。
3.1? “4+1”視圖模型
Kruchten提出了“4+1”視圖模型[4],從5個不同視角解決軟件架構(gòu)問題,包含了:邏輯視圖、過程視圖、物理視圖、開發(fā)視圖和場景視圖,“4+1”視圖模型是由系統(tǒng)開發(fā)人員從不同角度描述的體系結(jié)構(gòu)視圖,使用多個并發(fā)的視圖來組織軟件架構(gòu)的描述,每個視圖僅用來描述一個特定的所關(guān)注的方面的問題集合。在軟件架構(gòu)設(shè)計領(lǐng)域產(chǎn)生了深遠影響。從而簡化了軟件體系結(jié)構(gòu)的復雜性。
基于UML可以較好地描述軟件體系結(jié)構(gòu),Booch將Kruchten的“4+1”視圖映射到UML圖后,由邏輯視圖、過程視圖、實現(xiàn)視圖、部署視圖和用例視圖構(gòu)成的基于UML的軟件體系結(jié)構(gòu)模型。如圖1所示。
在UML的模型圖中,又可以用9種UML模型來描述這5種視圖,邏輯視圖用類圖和對象圖表示,過程視圖用序列圖、協(xié)作圖、狀態(tài)圖和活動圖描述,實現(xiàn)視圖用構(gòu)件圖表示,配置圖用部署圖描述,用用例圖來描述用例視圖。
3.2? 用例視圖(use-case view)
用例視圖反映案例的描述,是對用戶和系統(tǒng)功能的描述,利用用例圖來表示。用例圖描述了軟件系統(tǒng)各個功能的執(zhí)行者,從用戶的角度描述誰是系統(tǒng)的使用者[5]。
在預研管理系統(tǒng)的軟件體系結(jié)構(gòu)中,外部角色有三個,分別為:總部、各部門和系統(tǒng)管理員。從用例視圖描述中,分別從三個外部角色的角度對系統(tǒng)提出功能需求。各部門用戶中還有權(quán)限的區(qū)分,其中管理部門主要作為上傳下達,系統(tǒng)工作的作用,總部主要負責工作流程中項目的審批等工作,系統(tǒng)管理員負責維護系統(tǒng)中的數(shù)據(jù)等工作,因此還應對用戶設(shè)置相應的權(quán)限。用例視圖如圖2所示。
3.3? 邏輯視圖(logical view)
邏輯視圖描述系統(tǒng)的功能性需求,設(shè)計滿足功能需求的架構(gòu)。通過建立靜態(tài)模型和動態(tài)模型完成系統(tǒng)的設(shè)計和內(nèi)部結(jié)構(gòu)描述,利用類圖和對象圖表示。a.類圖,描述靜態(tài)關(guān)系,定義系統(tǒng)中的類及類與類之間的關(guān)系,通過類和類間的關(guān)系反映出本系統(tǒng)的基本框架,在面向?qū)ο箝_發(fā)中,對象是類的實例[6]。b.對象圖,對象圖描述各個對象在交互過程中某時刻的狀態(tài),也是類圖的實例。如圖3所示,預研項目管理系統(tǒng),包含了項目信息、計劃信息、項目狀態(tài)信息,部門信息及用戶信息。
3.4 過程視圖(process view)
過程視圖涉及一些非功能性需求,側(cè)重系統(tǒng)的運行特性。它可以解決并發(fā)性,分發(fā)性,系統(tǒng)完整性和魯棒性等幾個問題[7]。過程視圖主要通過對過程動態(tài)模型建模來實現(xiàn),用時序圖、協(xié)作圖、狀態(tài)圖和活動圖描述。a.時序圖,主要用來直觀表現(xiàn)對象之間交互的時間順序,以時間為主線,對象之間發(fā)送和接受消息、處理消息和返回消息的時間流程,可以很好地反映各個部門的工作流程。b.協(xié)作圖,與時序圖不同在協(xié)作圖強調(diào)的是交互的空間結(jié)構(gòu),按照空間結(jié)構(gòu)布圖。c.協(xié)作圖,重在表達實現(xiàn)某個用例時,對象之間的協(xié)作關(guān)系,可以顯示對象角色之間的關(guān)系。
以預研管理系統(tǒng)的項目管理模塊為例,如圖4和圖5所示,對預研項目管理中項目申請立項、項目實施和項目驗收三個階段建立時序圖模型。
項目申請:科研部門登錄該系統(tǒng),提交項目立項請示,由總部單位下達通知,管理部門進行審核是否可以立項并上報,總部單位審批通過后下達批復。
項目實施:由科研單位及相應的管理單位對實施項目。
項目驗收:由管理部門制定驗收評審要求后,協(xié)同專家組對科研單位的科研項目進行項目驗收并存檔。
3.5? 實現(xiàn)視圖(implementation view)
實現(xiàn)視圖是邏輯視圖的實現(xiàn),用于描述軟件模塊的組織與管理。實現(xiàn)視圖用構(gòu)件圖表示,構(gòu)件圖又稱組件圖,主要有構(gòu)件、依賴關(guān)系和界面,顯示構(gòu)件之間的邏輯結(jié)構(gòu)和它們之間的依賴關(guān)系[8]。
圖6為項目管理中的構(gòu)件圖模型,描述了項目管理系統(tǒng)中軟件的各種組件及其之間的依賴關(guān)系,此構(gòu)件圖將項目管理系統(tǒng)分成了3層,即為用戶界面層、業(yè)務邏輯層和數(shù)據(jù)訪問層。用戶界面層中的“項目立項”“項目實施”和“項目驗收”這三項構(gòu)件也是項目管理流程中的三個階段,對于“項目”而言為依賴關(guān)系,主要由邊界類組成,采用了Java Server Page來實現(xiàn)用戶的界面。邏輯層由“項目”構(gòu)件表示,由實體類構(gòu)成。數(shù)據(jù)訪問層由“JDBC”連接數(shù)據(jù)庫實現(xiàn)。
3.6? 部署視圖(deployment view)
部署視圖對應于安裝和部署需求,涉及如何部署及其和網(wǎng)絡(luò)來滿足軟件系統(tǒng)的要求,利用部署圖來實現(xiàn)。如圖7所示,該圖描述了預研管理系統(tǒng)的軟、硬件的物理結(jié)構(gòu)和系統(tǒng)運行結(jié)構(gòu),對系統(tǒng)完整架構(gòu)的設(shè)計提供了依據(jù)。系統(tǒng)采用B/S架構(gòu)[9],在通過Tomcat中web應用服務器運行JSP,通過TCP網(wǎng)絡(luò)連接到數(shù)據(jù)服務器,數(shù)據(jù)資料存儲在數(shù)據(jù)庫服務器中的,通過JDBC接口連接數(shù)據(jù)庫。
4 科研項目管理系統(tǒng)的實現(xiàn)
科研項目管理系統(tǒng)的開發(fā)與實現(xiàn)涉及系統(tǒng)的需求分析、結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫技術(shù)和交互技術(shù)等,UML支持的可視化建模工具Star UML可以將模型映射為Java代碼框架,在前期開發(fā)階段可以運用UML對系統(tǒng)進行需求分析、設(shè)計功能和結(jié)構(gòu)、生成代碼框架[10]。
系統(tǒng)實現(xiàn)環(huán)境,在服務器端運行環(huán)境建議配置如下:CPU:Intel(R) Duo Core以上,建議采用i3、i5或者i7等;內(nèi)存至少為2G以上。操作系統(tǒng):NeoKylin系統(tǒng),采用Java編程語言,UML可以實現(xiàn)從模型到程序框架Java代碼的導出[11],在此基礎(chǔ)上,采用B/S架構(gòu)的系統(tǒng)架構(gòu)和JSP技術(shù),通過JDBC連接數(shù)據(jù)庫,同時數(shù)據(jù)庫采用國產(chǎn)達夢數(shù)據(jù)庫,該數(shù)據(jù)管理在安全性方面有很大保障。本系統(tǒng)需用瀏覽器打開,在客戶端運行環(huán)境建議如下配置:操作系統(tǒng):Windows 2000或Windows 2000以上系統(tǒng),瀏覽器采用FireFox、Chrome等瀏覽器。如圖8所示。
當前,部隊某單位的科研管理工作已經(jīng)使用該科研項目管理系統(tǒng),能夠解決長期存在的上報審批耗時長,項目存檔查詢困難,工作流程煩瑣等問題,提高了部隊科研項目管理的工作效率。
5 結(jié)論
UML統(tǒng)一建模語言能夠很好地幫助用戶和系統(tǒng)分析人員對需求分析達到相同的理解,基于“4+1”視圖的系統(tǒng)結(jié)構(gòu)描述方法與UML統(tǒng)一建模語言相結(jié)合,能夠從邏輯視圖、過程視圖、實現(xiàn)視圖、部署視圖和用例視圖五個視圖角度和前期需求分析對科研項目管理的系統(tǒng)的功能、業(yè)務流程、靜態(tài)結(jié)構(gòu)和動態(tài)結(jié)構(gòu)建立更完善的需求模型,能夠有效解決開發(fā)與設(shè)計脫節(jié)的問題。這幾種視圖下的模型從不同角度描述同一個系統(tǒng)的不同方面,它們是相互補充和結(jié)合緊密的,因此,本文中多視圖的模型建立方法和所建立的系統(tǒng)模型對于預研項目管理系統(tǒng)的設(shè)計與開發(fā)具有一定意義。
參考文獻:
[1] 朱斌,唐波.基于UML 的平車裝載數(shù)據(jù)建模與多要素分析[J].電腦知識與技術(shù),2010(7):1727-1729.
[2] Iryna Zaretska,Oleksandra Kulankhina,Hlib Mykhailenko,et al.Consistency of UML Design [J].International Journal of Information Technology and Computer Science(IJITCS),2018(9):47-56.
[3] 張志祥.UML在高校科研管理系統(tǒng)中的應用[J].計算機與數(shù)字工程,2007(4):87-90.
[4] 柳丹.基于UML描述的“4+1”視圖模型及應用[J].計算技術(shù)與自動化,2001(4):46-57.
[5] 何穎.GT研究院科研項目管理系統(tǒng)的研究[D].天津:天津大學軟件學院,2015.
[6] 饒寧,董樂,黃雪飛.基于UML科研管理系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學,2013.
[7] 陳銳忠.基于UML建模的軟件測試系統(tǒng)設(shè)計[J].電子設(shè)計工程,2016(21):57-59.
[8] 王國輝,趙鐵軍.基于UML的裝甲裝備IETM建模[J].計算機應用與軟件,2018(8):175-179.
[9] Ferenc Matej,Polasek Ivan,Vincur Juraj. Collaborative Modeling and Visualization of Software Systems Using Multidimensional UML[C]. 5th IEEE Working Conference on Software Visualization,Shanghai,2017.
[10] 牛德雄.軟件項目開發(fā)與管理案例教程[M].北京:電子工業(yè)出版社,2014.
[11] 姜人和.一種基于UML關(guān)系的Java代碼庫構(gòu)造方法[C].2016年全國軟件與應用學術(shù)會議,昆明,2017.
【通聯(lián)編輯:王力】