標準建模語言UML2.0是一套支持面向對象技術的表記方法,UML2.0用一種統一的基本表示來組織數據和它專有的處理,能夠無痕地支持OOA、OOD各階段的工作特征,使傳統軟件開發的兩條鴻溝消失。因此,UML2.0的出現是面向對象技術發展的重要成果,代表了面向對象方法的軟件開發技術的發展方向。從系統的需求分析到系統的設計和實現,UML2.0都提供了一套連續的可視化表示符號,可以方便地實現模型之間的無縫轉換。UML2.0建模的在初始階段使用“USE CASE”圖來刻畫用戶需求,強調了系統相關的角色和這些角色在系統中完成的主要功能,忽略了各個角色與功能之間的聯系及其它細節。通過“USER CASE”圖,用戶和開發者對系統功能一目了然,注意力集中到弄清系統要干什么。在詳細分析階段,UML2.0用交互圖,包括順序圖、合作圖和活動圖來描述“USE CASE”相關對象之間的消息傳遞、協作關系。進一步經過設計,用對象模型來表示整個系統。UML2.0圍繞對象來建立系統模型,使系統結構更加清晰,也使系統更加穩定。UML2.0各階段模型的可視化表示,也使得人們對問題的理解更容易。
1.社保系統中的UML2.0應用分析
UML2.0建模語言采用圖形表示法。在社保系統設計中,筆者利用UML2.0技術手段實現了保險管理信息系統領域建模的基本過程,大大提高軟件開發周期各階段之間表示的一致性,縮小開發各階段之間的間隙。UML2.0以對象為單位進行分割、包裝,提高了組件重用率,使整個社保系統的可重組性明顯增加。
在社保管理信息系統的UML2.0建模中,經過了開始、細化、構造和交接等幾個階段。在UML2.0建模的開始階段,根據用戶提出的需求產生角色及使用案例,并采用使用案例框圖進行可視化描述,清晰的表達了用戶系統的真實目標;在細化階段,首先要進一步分析開始階段產生的使用案例模型,對使用案例低層要求進行詳細描述,包括使用案例的處理流程,使用案例中涉及的角色、對象,并用交互框圖描述出所有角色對象之間的詳細交互活動及對象本身的狀態變化,用類框圖顯示要建立的類對象及其相互關系;構造階段和細化階段類似,是圍繞使用案例來進行的。該階段根據已有的工作基礎,設計出組件和組件框圖,自下而上建立一個完整的系統模型,并通過一系列迭代過程來構造實際可用的系統。每一次迭代開發都是一個小項目,每一個小項目完成后,就向用戶演示,并完成局部系統測試,證明已正確實現了用例要求的功能。待全部小項目完成時,進行整體的測試集成。移交階段的任務是將設計完成的軟件產品交給用戶,接受用戶的檢測,并完善設計文檔的存檔。
2.UML2.0在社保系統中的使用案例模型
根據UML2.0建模的幾個基本階段劃分,可以看出,使用案例是系統建模的關鍵。下面給出社保系統利用UML2.0建模時,使用案例模型的相關分析。
本節分析UML2.0建模中的第一類圖,即用例圖,它包括用例(USERCASE)和角色(ACTOR),是用來從用戶角度描述系統的功能,并指出系統各功能的操作者。USE CASE是UML2.0的核心,也是使用案例模型的重點。在傳統的面向對象的系統模型中,很難明確地說明系統是怎樣完成其目標的,這是由于系統在執行特定的任務時,并沒有一條主線。而在UML2.0中,因為USE CASE定義了系統的行為,它實際上就是一條這樣的主線。USE CASE在軟件開發的需求、分析、設計、實現、測試幾個核心流程中扮演著非常重要的角色。其中用例圖描述的社保系統一共包括38個使用案例和29個角色。圖1所示為社保系統中參保人員就診與費用結算處理的USE CASE模型框圖。

圖1描述了社保系統中的5個用例和3個角色。5個用例是:看病、參保身份驗證、處方單費用計算、藥品準入驗證、付款和欠費處理,而其中的參保身份驗證和藥品準入驗證屬于《Use》用例,欠費處理則是《Extends》用例。3個角色是就診者、醫生和支付系統。
3.社保系統中相關對象的順序圖、合作圖和活動圖模型
本節分析UML2.0建模中的第三類圖,即交互圖和活動圖。交互圖包括順序圖和合作圖,用來描述對象間的交互關系。其中順序圖顯示對象之間的動態合作關系,它強調對象之間消息發送的順序,同時顯示對象之間的交互。合作圖與順序圖相似,也描述對象間的協作關系與動態合作關系。但兩者有側重,如果強調時間順序,則使用順序圖,如果強調上下級關系,則選擇合作圖。
活動圖,用來描述系統的動態模型和組成對象間的交互關系。其中狀態圖描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件,它是對類圖的補充。在實用上,往往并不需要為所有的類畫狀態圖,通常僅為那些有多個狀態且其行為受到外界環境的影響而發生改變的類畫狀態圖。由于活動圖描述滿足用例要求所要進行的活動以及活動間的約束關系,有利于識別、表達和進行活動。
社保系統中共有順序圖、合作圖和活動圖50多張。其中對象之間動態協作關系的順序圖描述如圖1所示。

順序圖模型非常直觀地展示了對象之間傳送消息的時間順序,反映了對象之間的一次特定的交互過程。在本系統中,就診者對象向醫院門診發送參保身份驗證的消息,門診完成身份驗證后便向醫生對象發送就診人看病的消息,醫生看病開處方單后,向處方單對象發出保存處方單的消息,處方單對象完成保存工作,并同時對處方單進行藥品準入驗證,然后向支付系統發送處方單費用計算的消息。支付系統完成處方單費用計算后,通知就診人付款。整個過程是順序完成的。其它交互圖描述從略。
4.社保系統的類圖模型
類圖,是靜態圖的一種。而靜態圖是UML2.0建模中的第二類圖。類圖通常顯示了一組類、接口和協作以及它們之間的相互關系。類圖在面向對象的建模設計中是很常用的。類圖能有效表示系統中的類以及類與類之間的關系,它是對系統靜態結構的描述。因此,我們常利用類圖來闡明系統的靜態設計。類與類之間有多種連接方式(或稱關系),比如關聯(彼此間的連接)、依賴(一個類使用另一個類)、通用化(一個類是另一個類的特殊化)或打包(多個類聚合成一個基本元素)。
由于類圖描述系統中類的靜態結構,表達了系統在一個穩態必須滿足的對象間的關系。所以,類圖描述的這種靜態關系,在系統的整個生命周期都是有效的。
對象圖也是靜態圖的一種,它是類圖的實例,幾乎使用與類圖完全相同的標識,不同點在于對象圖顯示的是類的多個對象實例,而不是實際的類。由于對象存在生命周期,因此對象圖只能在系統某一時間段存在。
靜態圖還有一種結構形式是所謂的包圖,包圖由包或類組成,表示包與包之間的關系。包圖用于描述系統的分層結構,是將大系統拆分為小系統的工具,可以幫助理解與維護系統。
社保系統中的類圖模型之一,即帳務管理部分的類圖模型如圖3.3所示。社保系統中的帳務管理部分一共包含基金總帳、實收帳、應收帳、住院基金、風險基金、個人帳戶、住院費用單以及門診費用單、購藥費用單、參保職工、參保單位、繳費憑證等12類對象。其中的類對象實收帳和應收帳都是基金總帳的一部分,它們之間的關系是整體與部分的關系,是一種組成關系。同樣的,住院基金、風險基金和個人帳戶與實收帳之間的關系也是一種組成關系。住院基金和住院費用單是一種帶約束的一對多關系,即如果費用單金額之和超過定額支付數,則只支付定額數。同樣的,風險基金和住院費用單的關系也是一種帶約束的關系。
(作者單位:廊坊師范學院)