戴一平
(華南師范大學 教育信息技術學院,廣州 510631)
Enterprise Architect在實驗預約管理系統的建模研究
戴一平
(華南師范大學 教育信息技術學院,廣州 510631)
介紹了應用EA建立實驗預約管理系統數據模型的開發過程,側重于該系統結構的設計與實現,并期望能提煉出一種適合一般管理系統的框架。在整個項目的設計和實施過程中,始終采用UML圖等作為描述文檔,并將其和統一過程結合,實現項目的迭代和增量式開發。
預約;EA;統一建模語言
實驗室是實驗教學和科學研究的重要基地,也是對學生實施素質教育、能力培養和科技創新的重要媒體。實驗室信息化管理是提高實驗教學質量和效率及實現教學效果最優化的重要手段。信息化管理系統數據模型的開發需要有相應優秀工具去實現,統一建模語言UML(Unified Modeling Language)是一種構建直觀化、明確化和文檔化軟件系統產物的通用可視化建模語言。它捕捉了被構建系統的有關決策和理解用來理解設計瀏覽配置維護以及控制系統的信息。UML可以與所有的開發方法、生命階段、應用領域和媒介一同使用。它意圖統一過去建模技術的經驗,將當前軟件最佳實踐合并至標準的方法。UML包括語義概念、標記符號和指南,具有靜態、動態環境和組織性的部分,它可被具有代碼產生和報表生成的交互式可視建模工具所支持。UML規范沒有定義標準過程,但可用于迭代的開發過程,并支持現有的大多數面向對象的開發過程[1,2]。
對UML我們可以這樣理解:它不是編程語言,其工具可以提供UML至各種編程語言的代碼生成,也可從現有的程序逆向構筑模型。UML不是用于定理證明的高度正式的語言,實際上有很多正式的語言,但它們不易理解或不適用于多種用途。UML是通用性的建模語言,不適用于特定的領域,更特定的語言和工具可能更加合適,如GUI設計、VLSI電路設計或基于規則的人工智能。UML是離散的建模語言,它不打算對如工程和物理的連續系統建模,UML是對諸如軟件、硬件或數字邏輯的離散系統建模的通用語言[3]。本文結合實驗預約管理系統的開發過程,對應用Enterprise Architect建立數據模型問題作較詳細的分析。
系統的開發是以軟件工程方法學為指導,依照軟件工程開發步驟來進行。首先進行需求分析,然后根據需求分析結果進行功能模塊設計、數據庫設計、單模塊開發和系統集成測試等,依照分析-設計-開發-測試-部署的步驟進行。這是軟件工程方法學的核心實現路線,但具體的開發過程并不依賴于某一開發方法論,而采用靈活的迭代式開發模型,以需求分析為中心指導各階段的開發[3-4]。
Apache幾乎可以運行在所有廣泛使用的Unix、Windows、Linux操作系統平臺上。目前成為世界上最流行的Web服務器軟件之一。其特點是安裝簡單、速度快、性能穩定、可移植性非常好,并可做代理服務器使用,全球很多著名網站,如 Amazon、Yahoo、W3 Consortium、Financial Times等都是 Apache 的用戶[5-6]。
PHP是一種HTML內嵌式的語言,其獨特的語法混合了C、Java、Perl以及自創的語法,可以比CGI或者Perl更快速的執行動態網頁,而且支持幾乎所有流行的數據庫以及操作系統[7-8]。
MySQL是小型關系型數據庫管理系統,被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫,支持非常廣泛的操作系統,提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑[9-11]。
Enterprise Architect(以下簡稱EA)是以目標為導向的軟件系統,覆蓋了系統開發的整個周期,除開發類模型外,還包括事務進程分析、使用案例需求、動態模型、組件和布局、系統管理、非功能需求、用戶界面設計、測試和維護等功能,為整個團隊提供高級的UML 2.2建模工具。使用EA設計人員可以充分利用UML 2.2圖表的功能,支持全部13種UML 2.2圖表和相關的圖表元素,包括:
(1)結構圖表:類、對象、合成元素、包、組件、布局;
(2)行為圖表:使用案例、通信、序列、交互概述、行為、狀態、時序;
(3)擴展:分析(簡單行為)、定制(需求、變動和UI設計);
(4)使用工具能夠跟蹤依賴關系、支持大型模型,幫助開發設計人員管理大型復雜的工程;提供CVS或SCC工具,以時間快照為基線,通過比較來跟蹤模型變動,從而實現版本控制;含有項目可視化窗口,提供高性能直觀的工作界面;
(5)具備源代碼的正向和反向工程能力,支持多種通用語言,包括 C++ 、C#、Delphi、Java、PHP、VB.Net、Visual Basic等,可獲取免費的CORBA和Python附加組件,并提供語法突顯功能的內置源代碼編輯器,確保在一致的工作環境中快速導航和查找用戶模型的源代碼[12-14]。
需求模型(Requirements Model)是一種文檔式模型,通過準確恰當地列出解釋開發過程中需要實現的功能行為來描述待開發項目,并為開發過程中需要使用到的各種結構化技術文檔(功能或技術規格說明書,測試計劃)而使用需求模型。EA可在模型中直接建立其它學科的軟件開發模式來集成需求管理的UML工具。
需求管理是建立在解決許多問題的可追溯性的、跨學科的團隊分工、系統集成的變更和配置管理的核心。具有的特點包括:
(1)在模型中能夠直接創建和查看需求;
(2)在模型中直接細化用例;
(3)可加入每一個需求的屬性,如難點、狀態和類型,也可以自定義屬性;
(4)能夠跟蹤業務規則的需求,測試案例和分析加工;
(5)可跟蹤關系矩陣和考慮需求的變化的影響[15];
(6)能夠為客戶創建優質的MS Word和HTML文件。
2.2.1 角色定義
用例分析就是捕獲系統、子系統、類或組件的行為,并通過用例圖向外部用戶展示。統一系統開發過程強調用例驅動及迭代增量的開發,用例不但用于捕獲需求,而且還是提供從分析到測試的活動基礎[16]。
定義參與者(Actors):參與者是與系統、子系統或類發生交互作用的外部用戶、進程或其它系統的理想化角色[17]。一個參與者代表了一類外部用戶可能與系統發生的交互。通過分析確認本系統的參與者為:教師、學生、管理員。在實際運行過程中,一個實際用戶可以既是教師又是管理員,也可是學生又是管理員。
2.2.2 用例模型的建立
用例是一個外部可見的系統內聚功能單元,它由一種被稱為主體(Subject)的類元提供,用例表示為主體與系統單元的一個或多個參與者之間所交換的消息序列。[16,18]下面對綜合測評子系統進行分析和說明,并給出系統的主體-學生的用例。
(1)學生:學生參與用例圖如圖1。系統具體包括實驗的預約、實驗報告的提交、查詢等等。其中,網上預約的組織管理形式有助于使學生成為教學過程中的真正主體,學生可以根據自己的學習進度自主選擇實驗內容、時間并預約實驗資源。網上預約的實施還有助于實現開放實驗室設備、場地和師資的有機結合,在一定程度上緩解了實驗資源的相對不足,做到資源的合理共享和有機整合,以實現開放性實驗教學。
(2)教師:除了擁有類似學生的權限外,教師可以進行實驗方案的征集、審核,實驗報告的審閱、批改和實驗成績的考核。實驗預約的審核由主管實驗室的實驗中心主任或分管教學的副院長進行審批,他們角色也是教師,除了上述擁有的權限外,還比一般教師多了審批一級。
(3)系統管理員:擁有所有的權限。實驗室資源管理子系統主要包括實驗設備、儀器、場地和資料的管理。通過構建實驗室資源管理子系統,師生可以隨時了解實驗資源的分配和使用情況,實時地為開放實驗教學的資源調配提供指導,可最大程度實現實驗室資源的合理配置,為學生合理安排自主學習時間提供參考。
2.2.3 使用時序圖與活動圖細化用例
確定用例化,有必要對用例進行細化,在用例的細化階段,UML提供了非常好的工具:用簡單的時序圖來描述參與者和系統的交互,用活動圖來描述工作流。
(1)登錄認證模塊設計
登錄控制部分就是要求用戶在使用系統前進行登錄,然后根據用戶所擁有的權限對訪問進行控制。系統使用基于安全策略的統一用戶管理、認證,把用戶的資料存放在統一的中央用戶管理認證服務器上。基本思想是攔截用戶的請求,檢查該用戶是否已經登錄,如果沒有登錄則轉向到用戶認證服務的登錄頁面。

圖1 學生參與用例圖
(2)使用時序圖確定參與者與系統交互
用例是一種文本的描述,主要用于解釋用例的具體內容或者事務流程。時序圖可以更精確、更直觀地表達用例。它按時間組織描述了參與者和系統的交互情況。如圖2所示為本系統的學生預約時序圖。
時序圖簡單地顯示了參與者之間的動態交互關系,但沒有顯示它們之間的結構關系。如果一個用例有多個流程,就需要使用多個時序圖才能表示出這些流程。在需求捕獲和分析階段早期,必要的時序圖相對簡單而且不完整。當進入到用例分析,并用更深入的細節精制時序圖時,這種情況就會改變。用時序圖捕獲每一種用例的主流程是有用的,但是捕獲每一個流程乃至每一個交替變換的流程,特別是當它們的數目非常多時,就不必要了,因此,一般用時序圖來捕獲用例的主流程。為了能夠顯示多個流程,往往有活動圖[19]。
2.2.4 系統其他需求
系統應具備靈活性、實用性、兼容性、高效性、可擴充性和可維護性、安全可靠性和穩定性。實驗預約管理系統架構是基于PHP應用程序體系結構的。同時,為了實現系統的可重用性和可擴展性,在架構實驗預約管理系統時還遵循以下原則:使用MVC設計模式實現實驗預約管理系統的邏輯分層。在系統中,利用一個用戶界面控制器控制網頁的生成、轉發及業務組件調用,實現模型和視圖的分離,從而使系統的各個功能模塊達到一種層間松散藕合的效果,提高系統靈活性、復用性和可維護性[20]。

圖2 學生預約時序圖
2.2.5 硬件配置環境
物理/配置模型提供了一種部署在整個系統的基礎設施組件的詳細模型。它詳述網絡功能、服務器規格、硬件要求和其他相關資料部署。物理模型顯示在何處以及將如何部署系統組件。圖3部署圖說明實驗預約管理系統物理部署環境,它顯示組件位于服務器、機器或硬件的位置,可闡明網絡連接、局域網帶寬等。
一個節點是描述任何服務器、工作站或其它主機硬件用來部署到開發環境的組成部分。也可指定節點之間的聯系(如TCP/IP)和要求。節點有性能特點、最低硬件標準、操作系統級別等記錄。
基于PHP程序體系結構設計原則,把整個實驗預約管理系統設計成為一系列的相互獨立功能模塊,并且為每個模塊定義一個通用接口。每個模塊的設計過程是相互獨立的,這樣有利于團隊的并行開發和使用第三方的組件。另外,模塊之間相互獨立也使系統更容易擴展和維護。如圖4學生用戶預約模塊主要組件及其關系,限于篇幅,其它模型不一一列舉。

圖3 物理/配置模型

圖4 學生用戶預約模塊主要組件及其關系
3.2.1 邏輯(類)數據模型建模
邏輯數據模型反映的是系統分析設計人員對數據存儲的觀點,是對概念數據模型進一步的分解和細化,并根據業務規則確定業務對象、業務對象的數據項及業務對象之間關系的基本藍圖。其內容包括所有的實體和關系,確定每個實體的屬性,定義每個實體的主鍵,指定實體的外鍵,需要進行范式化處理[21]。如圖5。
邏輯數據模型的目標是盡可能詳細的描述數據,但并不考慮數據在物理上如何去實現。邏輯數據建模不僅會影響數據庫設計的方向,還間接影響最終數據庫的性能和管理。如果在實現邏輯數據模型時投入得足夠多,那么在物理數據模型設計時就可以有許多可供選擇的方法。
3.2.2 物理數據模型建模
物理數據模型是在邏輯數據模型的基礎上,考慮各種具體的技術實現因素,進行數據庫體系結構設計,以實現數據在數據庫中的存放。

圖5 用戶登錄相關類
物理數據模型的內容包括確定所有的表和列,定義外鍵用于確定表之間的關系,基于用戶的需求可能進行范式化等要求[21]。在物理實現上的考慮,可能會導致物理數據模型和邏輯數據模型有較大的不同。如圖6。

圖6 學生信息管理模塊圖示
物理數據模型的目標是指如何用數據庫模式來實現邏輯數據模型以及保存數據。學生信息管理模塊的開發目的是管理全學院學生的各種信息,方便學生信息的查詢。學生信息管理的功能概括起來包括信息的錄入、維護和查詢。
代碼工程是一個轉化過程,包括自動代碼生成、逆向工程、模型代碼和源代碼之間的同步。可以從UML生成源代碼模型元素的類或接口。可生成的語言包括 C、C++ 、C#、Delphi、Java、PHP、Python、Action Script、Visual Basic and VB.NET源代碼,源代碼包含類的定義、變量和每個UML類的屬性及方法,可使用源代碼查看器來查看任何要打開的源代碼。
3.3.1 正向工程
源代碼生成(正向工程)采用UML的類或接口的模型元素創建詳細的闡述并編譯源代碼。正向工程的主要工作包括類、屬性和方法,確保模型和代碼間的一致。例如將圖5用戶登錄相關類進行正向工程可得到三個 PHP 源文件,分別是 LoginAction.php、UseCode.php、LoginActionForm.php。
代碼從類或接口的模型元素中生成,所以必須創建所需的類和接口的元素,添加屬性(生成變量)和操作(生成方法)。在生成代碼之前,應該確保代碼生成的默認設置符合要求。默認設置位于源代碼工程選項對話框(選擇工具選項源代碼工程菜單選項)。設置默認值,以符合需要的語言和首選項。首選項,可以定義默認的構造函數和析構器,包括接口方法和創造語言的Unicode的選項[22]。
3.3.2 逆向工程
逆向工程的功能是將現有的源代碼構建為數據模型,即映射為UML表示的源代碼結構,并能夠檢查遺漏的代碼和重復的代碼,而將UML模型更新。
在EA的逆向工程中,可以導入以上各種語言的代碼到UML模型,將現有的源代碼結構映射成為UML的表示,例如一個Java類映射到UML類元素的變量作為屬性的定義,模式也隨著業務和Java類之間的相互作用在UML模型與相應的接口類圖中顯示,逆向工程可為用戶檢查遺留代碼和審議重用的代碼庫的功能或使UML模型與最新代碼同步進程。研究在一個UML模型的代碼使用戶能夠識別關鍵模塊中的代碼,有利于理解原有業務系統的系統要求,使開發獲得更好的源代碼做更全面的了解[22]。
EA是一種出色的、面向對象的可視化系統分析建模工具,依托UML整套成熟的建模技術,廣泛地應用于眾多領域。其建模過程并不是簡單的線性過程,而是一種與UML緊密聯系的演化與迭代過程,通過不斷地分析、評價和修改、再分析,最終得到高質量的系統分析模型。在建模過程中,須根據具體情況,選擇合適的UML圖示清晰地描述各種功能。它的各個模型能幫助開發人員更好地理解業務流程,建立更可靠、更完善的系統模型,增加用戶和開發人員對問題的描述的共識,減少語義差異,保障分析的正確性。它改變了傳統軟件的設計思想,降低了系統設計的盲目性與不確定性,也更有利于系統的擴展與測試,加強了用戶、開發人員、分析人員、測試人員以及管理人員之間的信息傳遞與溝通,極大地提高了相互間的協作能力和軟件開發的工程化程度。
[1] Object Management Group Inc.OMG Unified Modeling Language(OMG UML2.3),Infrastructure[EB/OL].(2010)[2010 - 12 - 12].http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML.
[2] Object Management Group Inc.OMG Unified Modeling Language(OMG UML2.3),Superstructure[EB/OL].(2010 -5 -3)[2010 -12 -12].http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML.
[3] James Rumbaugh,Jacobson Ivar,Booch Grady.The Unified Modeling Language Reference Manual[M].Boston:Addison Wesley Longman,Inc.,1999:3-4.
[4] 劉濤,周曉鋒.基于PowerDesigner高校進修人員系統的建模研究[J].計算機技術與發展,2009,19(10):185-188.
[5] 維基百科.Apache[DB/OL].(2010 -10 -18)[2010 -12 -13].http://zh.wikipedia.org/zh-cn/Apache.
[6] Netcraft Ltd.October 2010 Web Server Survey[DB/OL].(2010 - 10 -12).http://news.netcraft.com/archives/2010/10/12/october-2010-webserver-survey.html.
[7] 維基百科.PHP[DB/OL].(2010-12-12)[2010-12-13].http://zh.wikipedia.org/zh-cn/PHP.
[8] PHP Documentation Group.PHP Manual[M/OL].The PHP Group,(2010 -12 -17)[2010 -12 -18].http://www.php.net/manual/en/.
[9] 維基百科.MySQL[DB/OL].(2010-12-10)[2010-12-12].http://zh.wikipedia.org/zh-cn/MySQL.
[10] 百度百科.MySQL[DB/OL].(2010 -11-26)[2010-12-12].http://baike.baidu.com/view/24816.htm.
[11] Stefan Hinz,Lead Team,DuBois Paul,et al.MySQL 5.5 Reference Manual[M/OL].California:Oracle Corporation,(2010 - 12)[2010 - 12 -20].http://dev.mysql.com/doc/refman/5.5/en/index.html.
[12] Sparx Systems Pty Ltd.Enterprise Architect User Guide[M/OL].Australia:Sparx Systems,(2010 - 9)[2010 - 12 - 9].http://www.sparxsystems.com/enterprise_architect_user_guide/8.0/.
[13] Wikipedia.Enterprise architect[DB/OL].(2010 -11 -17)[2010 -12 -19].http://en.wikipedia.org/wiki/Enterprise_architect.
[14] 百度百科.Enterprise Architect[DB/OL].(2007 -9 -27)[2010 -12 -19].http://baike.baidu.com/view/1152740.htm.
[15] Sparx Systems Pty Ltd.Enterprise Architect User Guide[M/OL].Australia:Sparx Systems,(2010 - 9).http://www.sparxsystems.com/enterprise_architect_user_guide/8.0/.
[16] Eric J.Naiburg,Maksimchuk Robert A.UML for Database Design[M].Boston:Addison Wesley,2001:49 -64.
[17] Pascal Roques.UML in Practice[M].West Sussex:John Wiley & Sons Ltd.,2004:6 -14.
[18] Scott W.Ambler.The Elements of UML 2.0 Style[M].New York:Cambridge University Press,2005:33 -46.
[19] Craig Larman.Applying UML and Patterns-An Introduction to Object-Oriented Analysis and Design and the Unified Process[M].Prentice Hall,1997.
[20] Seth Ladd,Darren Davison,Steven Devijver,et al.Expert Spring MVC and Web Flow[M].New York:Apress,2006:21 -40.
[21] Abraham Silberschatz,Henry F.Korth,Sudarshan S.DATABASE SYSTEM CONCEPTS[M].New York:McGraw-Hill,2001:15 -122.
[22] Sparx Systems Pty Ltd.Enterprise Architect User Guide[M].Australia:Sparx Systems,2010:1281 - 1348.
The research on the modeling of Enterprise Architect in the experiment reservation management system
DAI Yi-ping
(School of Educational Information Technology,South China Normal University,Guangzhou 510631,China)
This article describes the development process of establishing data model in experimental reservation management system by applying Enterprise Architect,focusing on the design and implementation of the system architecture and hoping to extract a suitable framework for general management systems.During the whole process of design and implementation,UML diagrams are used as the document and combined with unification process to realize the iteration and incremental development.
reservation;EA;unified modeling language
TP392
A
1009-3907(2011)06-0035-06
2011-05-11
戴一平(1971-),男,廣東廣州人,實驗師,碩士,主要從事數據庫、軟件工程、計算機應用技術。
責任編輯:吳旭云