摘要:面向?qū)ο蠼<夹g(shù)有利于從全局的角度對(duì)系統(tǒng)加以設(shè)計(jì)。該文在明確面向?qū)ο蠼<夹g(shù)重要性的基礎(chǔ)上,分析了面向?qū)ο蠼5募夹g(shù)基礎(chǔ),并以社會(huì)保險(xiǎn)管理系統(tǒng)為案例,探討了面向?qū)ο蠼<夹g(shù)的應(yīng)用,涉及到對(duì)象及候選類的確定、用例圖及類圖的設(shè)計(jì)等。該文對(duì)相關(guān)系統(tǒng)的面向?qū)ο蠼?yīng)用提供了一定的借鑒作用。
關(guān)鍵詞:面向?qū)ο蠼?UML建模;對(duì)象用例和類圖
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)32-8935-02
Researches and Applications on Object Oriented Modeling Technology
WANG Li-qun
(Nanjing Institute of Railway Technology, Nanjing 210015, China)
Abstract: Object oriented modeling technology is useful for system designing from the overall perspective. This paper analyses the object oriented modeling technological basis based on a clear understanding of the importance of object oriented modeling technology and discusses the applications with social security managing system as cases. At the same time, the researches involve the determination of the objects and candidate categories as well as the designs of use case diagrams and class diagrams. The paper has provided some reference uses for the applications of object oriented modeling technology of related systems.
Key words: object oriented modeling technology; UML modeling; object use case diagrams and class diagrams
面向?qū)ο笳Z(yǔ)言提供了面向?qū)ο蟮奶匦裕⒉槐WC他們能發(fā)揮作用。要充分利用這些優(yōu)點(diǎn),必須進(jìn)行有效的建模。而UML作為一種可視化的建模語(yǔ)言,主要使用圖形標(biāo)記來(lái)表示模型中的各類元素,并且用視圖來(lái)描述系統(tǒng)各個(gè)方面的特性。UML建模技術(shù)從考察系統(tǒng)的不同角度出發(fā)定義不同的模型圖,在一定程度上有助于設(shè)計(jì)較好的面向?qū)ο蟪绦颉?/p>
總之,面向?qū)ο蠼<夹g(shù)有助于我們得到系統(tǒng)的整體概念。對(duì)于大型項(xiàng)目,常犯的錯(cuò)誤是只見(jiàn)樹(shù)木不見(jiàn)森林。如果手邊能有幾個(gè)可以從不同側(cè)面來(lái)理解全局的模型圖,則在進(jìn)行軟件設(shè)計(jì)時(shí)就會(huì)更容易些。本文就是圍繞UML建模技術(shù)來(lái)進(jìn)行研究的。
1 面向?qū)ο蠼5募夹g(shù)基礎(chǔ)
1.1 建模用例
從本質(zhì)上講,一個(gè)建模用例是用戶與計(jì)算機(jī)之間為達(dá)到某個(gè)目的的一次典型交互作用。建模用例描述了用戶提出的一些可見(jiàn)的需求,對(duì)應(yīng)一個(gè)具體的用戶目標(biāo)。分析典型建模用例是開(kāi)發(fā)者準(zhǔn)確迅速地了解用戶需求和相關(guān)概念的最常用也是最有效的方法,是用戶和開(kāi)發(fā)者一起深入剖析系統(tǒng)功能需求的起點(diǎn)[1]。
通過(guò)與典型用戶交談,請(qǐng)他們講明他們希望系統(tǒng)做哪些事情,為他們提供哪些服務(wù)。軟件開(kāi)發(fā)人員記下用戶想做的每一件事,并為之取一個(gè)名字,再寫(xiě)上簡(jiǎn)短的文字描述,這樣就獲取了所需要的建模用例。一系列建模用例的集合就組成了整個(gè)系統(tǒng)的需求。
1.2 建模類圖
建模類圖技術(shù)面向?qū)ο蠓椒ǖ暮诵募夹g(shù)。一個(gè)系統(tǒng)可以看作是由一些不同類型的對(duì)象組成的,對(duì)象類之間的各種關(guān)系反映了系統(tǒng)內(nèi)部各種成分之間的靜態(tài)結(jié)構(gòu)。建模類圖描述了系統(tǒng)中各種類及其相互之間的各種關(guān)系,其本質(zhì)反映了系統(tǒng)中包含的各種對(duì)象的類型以及對(duì)象之間的各種靜態(tài)關(guān)系。
另外,建模類圖也可以描述類的屬性和行為以及對(duì)模型中各種成分的約束。類與類之間有著各種不同的聯(lián)系,譬如相互關(guān)聯(lián),依賴性,特征性[2]。所有這些聯(lián)系以及類的屬性和行為,都可以在建模類圖中清晰地加以描述。建模類圖使用于軟件開(kāi)發(fā)中的各個(gè)階段。
2 面向?qū)ο蠼<夹g(shù)的應(yīng)用
應(yīng)用開(kāi)發(fā)生命周期的分析階段將用戶需求結(jié)構(gòu)化并形式化。這個(gè)階段的產(chǎn)品描述未來(lái)的系統(tǒng)應(yīng)該做什么,而不描述怎么作[3]。在對(duì)象技術(shù)中,分析階段的產(chǎn)品是模型,該階段通常被稱為建模階段。下面以社會(huì)保險(xiǎn)管理系統(tǒng)為案例,探討一下面向?qū)ο蠼<夹g(shù)的應(yīng)用。
2.1 對(duì)象的確定
社會(huì)保險(xiǎn)管理系統(tǒng)包括養(yǎng)老保險(xiǎn)、醫(yī)療保險(xiǎn)、生育保險(xiǎn)、失業(yè)保險(xiǎn)、工傷保險(xiǎn)等五個(gè)險(xiǎn)種的管理。社會(huì)保險(xiǎn)管理系統(tǒng)向參保對(duì)象提供各種服務(wù),例如參保對(duì)象管理,基金收繳,待遇支付等。社會(huì)保險(xiǎn)機(jī)構(gòu)參加保險(xiǎn)的在職人員是繳費(fèi)對(duì)象,參加保險(xiǎn)的具有待遇享受資格的人員是待遇享受人員,這根據(jù)不同的險(xiǎn)種有不同的解釋。例如在養(yǎng)老保險(xiǎn)中,在職人員和職工(包括在職職工和退休職工)所在單位是繳費(fèi)對(duì)象,而離退休人員是待遇享受對(duì)象;在醫(yī)療保險(xiǎn)中,在職人員和單位是繳費(fèi)對(duì)象,而每個(gè)繳費(fèi)的職工和單位為之繳納醫(yī)療保險(xiǎn)金的離退體人員都是待遇享受人員;在工傷保險(xiǎn)中,單位是繳費(fèi)對(duì)象,而只有受工傷的職工及其家屬才是待遇享受對(duì)象。
本文從應(yīng)用的問(wèn)題域和初始用例找出潛在的對(duì)象。根據(jù)這個(gè)原則,本文找到的潛在對(duì)象類如表1所示。
2.2 候選類的確定
下面來(lái)分析一下候選類,看看這些候選類中是否有重復(fù),不重要的候選類,是否有實(shí)際上是類的屬性,方法或反映對(duì)象類的角色的候選類。
本文研究的社會(huì)保險(xiǎn)管理系統(tǒng),業(yè)務(wù)員和社保機(jī)構(gòu)是重復(fù)的,為了更好地描述對(duì)象類,我們刪去業(yè)務(wù)員而保留社保機(jī)構(gòu)。待遇和待遇明細(xì)都是指待遇享受人的待遇,我們保留待遇,刪去待遇明細(xì)待遇享受人也是參保對(duì)象,并且是參保對(duì)象中具有某種資格條件而具有享受待遇條件的參保對(duì)象。它有可能在以后稱為參保對(duì)象的子類。參保對(duì)象基本信息與參保對(duì)象語(yǔ)義重復(fù),我們留用參保對(duì)象。保險(xiǎn)金最后融入賬戶之中,我們采用賬戶。
此外,本系統(tǒng)將各個(gè)險(xiǎn)種的賬號(hào)用不同的接口分開(kāi),使不同的險(xiǎn)種對(duì)實(shí)體類的不同處理通過(guò)不同的接口分別實(shí)現(xiàn),例如,賬戶類的定義如下:
Public class Account extends java.lang.Object implements endowment, hospitalization, unemployment, procreate, compo
{……//attributes of account
Public type method_ of _ endowment ( ) { …… }
Public type method_ of _ hospitalization ( ) { …… }
……//methods of unemployment, procreate, compo
2.3 系統(tǒng)的對(duì)象用例
在社會(huì)保險(xiǎn)系統(tǒng)中,在職人員的各種變動(dòng)處理和應(yīng)收核定中都要用到欠款核定,為此單獨(dú)定義一個(gè)核定欠款的用例,各種在職變動(dòng)和應(yīng)收核定使用這個(gè)用例。擴(kuò)展描述一般行為的變化,在當(dāng)兩個(gè)或多個(gè)用例中出現(xiàn)重復(fù)描述而又想避免這種重復(fù)時(shí)采用。系統(tǒng)的基本對(duì)象用例如圖1所示。
2.4 系統(tǒng)的類圖示例
在社會(huì)保險(xiǎn)系統(tǒng)中,由于養(yǎng)老、醫(yī)療、失業(yè)都有個(gè)人賬號(hào)和單位賬戶,而工傷則只有單位賬戶,本系統(tǒng)在賬戶、單據(jù)類中加入對(duì)象類型屬性以標(biāo)注所屬個(gè)人或者單位。在處理地則根據(jù)這個(gè)屬性和險(xiǎn)種通過(guò)相應(yīng)持久化類的方法存取數(shù)據(jù)庫(kù)中的對(duì)應(yīng)數(shù)據(jù)。本系統(tǒng)的類圖示例如圖2所示。
3 結(jié)束語(yǔ)
面向?qū)ο蠼<夹g(shù)適用于系統(tǒng)開(kāi)發(fā)的不同階段,從需求規(guī)格描述到系統(tǒng)完成后的測(cè)試。在需求階段,可以用用例捕獲用戶需求,通過(guò)用例模型,描述對(duì)系統(tǒng)感興趣的外部角色和他們對(duì)系統(tǒng)的功能要求。分析階段主要關(guān)心問(wèn)題域中的主要概念和機(jī)制,需要識(shí)別這些類及他們之間的關(guān)系,并用類圖來(lái)描述。總之,面向?qū)ο蠼<夹g(shù)有助于設(shè)計(jì)較好的面向?qū)ο蟪绦颉?/p>
參考文獻(xiàn):
[1] 梁瑋.基于UML的面向?qū)ο蠼7椒ㄑ芯縖J].軟件導(dǎo)刊,2009(10).
[2] 王鳳斌,段隆振,李向軍,甘晟科.UML面向?qū)ο蠼T诠芾硇畔⑾到y(tǒng)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2005(2).
[3] 王濤.系統(tǒng)建模方法綜述[J].科技資訊,2008(28).