袁國銘,劉瑞,樊波,鄧小亞
UML用例圖在軟件工程中的步驟設(shè)計研究
袁國銘,劉瑞,樊波,鄧小亞
用例圖作為uml的一種建模圖形廣泛應(yīng)用在面向?qū)ο筌浖到y(tǒng)開發(fā)過程中,首先,界定了用例圖在軟件開發(fā)周期模型中的應(yīng)用,接著,以“中國證券交易系統(tǒng)”中“上市公司股票發(fā)行”子用例圖設(shè)計為例,詳細描述了功能用例子圖的繪制過程,然后,對整個軟件系統(tǒng)的用例圖的繪制過程進行了描述,給出了待開發(fā)系統(tǒng)的整體用例圖。
uml;用例圖;證券交易系統(tǒng);上市公司股票發(fā)行
統(tǒng)一建模語言UML (Unified Modeling Language)是用來對軟件密集系統(tǒng)進行可視化建模的一種面向?qū)ο蟮慕UZ言,它是運用統(tǒng)一的、標準化的標記和定義實現(xiàn)對軟件系統(tǒng)進行面向?qū)ο蟮拿枋龊徒?。?997年被OMG采納作為業(yè)界的標準,UML開始貫穿軟件開發(fā)周期中的每一個階段,如圖1所示:軟件開發(fā)的4個部分:初始階段、細化階段、構(gòu)造階段和應(yīng)用階段對應(yīng)的軟件周期模型都分別用到了UML設(shè)計中多類圖形[1-2]。
UML適用于數(shù)據(jù)建模、業(yè)務(wù)建模、對象建模、組件建模等。作為一種模型語言,它使開發(fā)人員專注于建立產(chǎn)品的模型和結(jié)構(gòu),而不是選用什么程序語言和算法實現(xiàn)。當模型建立之后,模型可以被UML工具轉(zhuǎn)化成指定的程序語言代碼。
1.1 用例圖定義
用例圖(Use Case Diagram)是軟件需求分析到最終實現(xiàn)的第一步,它反映了系統(tǒng)的功能要求,也就是外部需求,定義了系統(tǒng)將為用戶做些什么。在定義系統(tǒng)外部需求的時候,系統(tǒng)將被看作是一個黑箱,因此只考慮系統(tǒng)的外部特征。
用例圖顯示誰將是相關(guān)的用戶、用戶希望系統(tǒng)提供什么服務(wù),以及用戶需要為系統(tǒng)提供的服務(wù),以便使用戶更容易地理解這些元素的用途,也便于軟件開發(fā)人員最終實現(xiàn)這些元素。用例圖在各種開發(fā)活動中被廣泛的使用,但它通常用來描述系統(tǒng)以及子系統(tǒng),UML設(shè)計在軟件周期中的應(yīng)用如圖1所示:
圖 1 :UML設(shè)計在軟件周期中的應(yīng)用
用例圖是有關(guān)系統(tǒng)細節(jié)的最高形式。它是一種在系統(tǒng)完成后,能使管理機構(gòu)、用戶和其它非開發(fā)人員了解其功能的極好方法。用例并不詳細介紹系統(tǒng)如何運作,這一任務(wù)將由本書后面介紹的圖來分別完成。用例圖說明的是誰要使用系統(tǒng)以及他們使用該系統(tǒng)可以做些什么。[3-4]
1.2 用例圖建模的原因
用例圖建??梢詾槲覀冏约涸O(shè)計的系統(tǒng)或者為描述一個已有系統(tǒng)提供一個起點。用例圖為我們提供了系統(tǒng)的一個概覽,將系統(tǒng)提供給用戶的功能進行說明。
用例圖應(yīng)該向開發(fā)團隊準確地說明客戶對他們要開發(fā)的應(yīng)用程序的期望是什么?有什么樣的功能?由開發(fā)人員以外的隊伍來創(chuàng)建用例圖的例子(如生產(chǎn)管理隊伍)并不少見。然而有些時候我們也會發(fā)現(xiàn)自己在開發(fā)一項工程時,開發(fā)團隊會讓少數(shù)人去扮演產(chǎn)品管理的角色,并且還要他們?nèi)ズ拖到y(tǒng)的潛在用戶進行交談以確定系統(tǒng)整體的功能。
在這一初始階段,我們試圖確定系統(tǒng)的用戶是誰,以及用戶利用系統(tǒng)完成什么功能,一旦收集到了這些信息,就可以將其變?yōu)橛美龍D,并進行進一步設(shè)計,以使我們可以建立一個系統(tǒng),有效滿足剛剛確定的用戶及其需求。從用例圖,我們可以確定出系統(tǒng)與用戶之間所需的界面。
生成的用例圖常常作為一種說明不同測試個案的方法。由于用例圖是一種讓用戶了解事情是如何完成的極好的方法,所以它也是一種使測試人員了解如何測試產(chǎn)品的極好的方法。用例圖可以用于系統(tǒng)的普通流程建模,也可以用于異常處理或者錯誤處理功能的建模。錯誤處理作為應(yīng)用程序的一項功能常被認為是一種事后的補救,然而用例圖的使用可以使你對它給以應(yīng)有的重視。
下面將給出一個整體的 “中國證券交易系統(tǒng)”用例圖的實現(xiàn)來展示用例圖在軟件系統(tǒng)中的應(yīng)用。
在UML中用例圖包含4個基本組件: 參與者、用例、關(guān)系和系統(tǒng),繪制用例圖必須首先分析本子系統(tǒng)分別包含哪些參與者、用例、關(guān)系和系統(tǒng)。下面以“上市公司股票發(fā)行”用例子圖為例詳細描述用例圖形的繪制過程。
2.1 參與者(Actor)
參與者也稱為行為者,它刻畫了與系統(tǒng)交互的外部用戶或者相關(guān)的一組用戶。參與者用于表示使用系統(tǒng)的對象,它可以是一個人或一個系統(tǒng)。參與者由一個固定的圖形來表示,并在圖形下列出了參與者的角色名,包含:待上市公司、證監(jiān)會和證券系統(tǒng)3個角色,本用例子圖參與者如圖2所示:
圖2:參與者示例
2.2 用例
用例是用戶期望系統(tǒng)所具備的動作。例如,待上市公司會根據(jù)上市程序來逐步完成既定工作,最終上市;股民會使用證券系統(tǒng)提供的實時交易系統(tǒng)進行在線交易;證監(jiān)會通過監(jiān)察證券系統(tǒng)的實時交易來掌握股票交易的異動情況,并采取措施。
本用例子圖涉及的用例,包括:申請上市、審查通過和發(fā)行股票3個部分。用例用一個里面帶有其名稱的橢圓表示如圖3所示:
圖3:用例示例
創(chuàng)建一個用例名時,要盡量使用主動語態(tài)動詞和可以描述系統(tǒng)上執(zhí)行的功能的名詞;如上例:申請上市,審查通過,發(fā)行股票。
2.3 關(guān)系
關(guān)系是用例圖的最關(guān)鍵的部分。關(guān)系由一條連接參與者和用例的線來圖示說明如圖4所示:
圖4:關(guān)系示例
在本用例子圖中,我們描述了如下幾種參與者與用例的關(guān)系:
(1)“待上市公司”參與“申請上市”、“發(fā)行股票”;
(2)“證監(jiān)會”參與“申請上市”、“審查通過”;
(3)“證券系統(tǒng)”參與“審查通過”和“發(fā)行股票”。2.4 系統(tǒng)
系統(tǒng)是用于執(zhí)行一項功能的,故此在任何用例圖中任何的參與者、其中的用例以及關(guān)系都是系統(tǒng)的一部分。但我們通常用一個大的矩形框只將其功能用例部分包含進來, “上市股票發(fā)行系統(tǒng)”所示,包括:
(1)參與者:“待上市公司”、“證監(jiān)會”和“證券系統(tǒng)”。
(2)用例:“申請上市”、“審查通過”和“發(fā)行股票”。
(3)關(guān)系:“待上市公司”參與“申請上市”、“發(fā)行股票”;“證監(jiān)會”參與“申請上市”、“審查通過”;“證券系統(tǒng)”參與“審查通過”和“發(fā)行股票”。
(4)系統(tǒng)名:“上市股票發(fā)行系統(tǒng)”。
公式上市用例圖如圖5所示:
圖5:公司上市用例圖
任何大的系統(tǒng)都是由若干個細分的小系統(tǒng)或微小系統(tǒng)構(gòu)成的,對于一個像證券交易系統(tǒng)的大軟件系統(tǒng),它的實現(xiàn)步驟跟上述“上市股票發(fā)行系統(tǒng)”用例類似。只是更加強調(diào)軟件開發(fā)者對于系統(tǒng)本身的理解,其步驟實現(xiàn)如下:
3.1 確定系統(tǒng)涉及的總體信息
證券交易系統(tǒng)是金融市場最常見的交易系統(tǒng)。為了方便闡述,我們簡化系統(tǒng),僅僅介紹證券交易系統(tǒng)中的股票交易系統(tǒng)。
它主要包括如下功能:
公司上市融資、股民股市開戶、股民網(wǎng)絡(luò)交易、電話交易、股民銀證轉(zhuǎn)帳、股民帳戶轉(zhuǎn)移、證監(jiān)會監(jiān)管、證交所發(fā)布信息、股票分紅、公司股改、公司退市及待上市公司借殼上市一系列不可或缺的功能。
3.2 確定系統(tǒng)的參與者
確定參與者首先需要分析系統(tǒng)所涉及的問題領(lǐng)域和系統(tǒng)運行的主要任務(wù),如分析使用該系統(tǒng)的主要是哪些人,誰需要該系統(tǒng)的支持以完成其工作,還有系統(tǒng)的管理者等。
根據(jù)股票交易的分析,可以確定如下幾點:
(1)股票的提供者:上市公司;
(2)股票的參與者:股民,證券系統(tǒng);
(3)股票交易的監(jiān)管者:證監(jiān)會。
(4)股民資金的提供方:銀行。
由此可知:系統(tǒng)參與者主要有5類:上市公司、股民、證券系統(tǒng)、證監(jiān)會和相關(guān)銀行。
3.3 確定系統(tǒng)用例
用例是系統(tǒng)參與者與系統(tǒng)在交互過程中所需要完成的事務(wù),識別用例最好的方法就是從分析系統(tǒng)的參與者開始,考慮每個參與者是如何使用系統(tǒng)的。
對于上市公司,上市發(fā)行股票用例必不可少,國有產(chǎn)權(quán)改革是它的必須,公司股改用例也必須;對于上市公司,它必須保持按時披露公司信息,比如公司業(yè)績,財務(wù)狀況等,因此還應(yīng)該有信息發(fā)布用例。
對于普通股民,首先,要到證交所開戶成為股民,開戶用例;股票正常交易,股民可能采取3種方式,網(wǎng)絡(luò)交易用例、電話交易用例、證券營業(yè)部現(xiàn)場交易用例;在股市存錢取錢,銀證轉(zhuǎn)帳用例;股民還可能遇到帳戶轉(zhuǎn)移。
對于證券系統(tǒng),它要負責披露信息給股民,因此必須有信息發(fā)布用例;統(tǒng)計公司信息,每天交易信息。當公司達到退市條件,要有退市用例。
對于證監(jiān)會,它要監(jiān)管證券系統(tǒng)的任何事情,出現(xiàn)異常要進行監(jiān)管處理。
3.4 區(qū)分用例優(yōu)先次序
創(chuàng)建用例圖的下一步是區(qū)分已經(jīng)確定出的用例的優(yōu)先次序。這項任務(wù)通常是由系統(tǒng)構(gòu)造師完成的,他們對哪一項任務(wù)最關(guān)鍵,哪一項任務(wù)最艱巨具有最好的認識。他們可以確定出哪個用例可以為其它用例所重用,從而從長遠的角度節(jié)省時間。設(shè)計區(qū)分用例優(yōu)先級次序的技巧來源于經(jīng)驗,但憑借直覺,我們通常也可以提出相對的優(yōu)先級次序列表,關(guān)于本節(jié)的用例優(yōu)先次序參考如下:
(1)公司上市融資;(2)股民股市開戶;(3)股民銀證轉(zhuǎn)帳;(4)股民網(wǎng)絡(luò)交易;(5)證交所發(fā)布信息;(6)證監(jiān)會監(jiān)管;(7)電話交易;(8)公司股改;(9)股票分紅;(10)股民帳戶轉(zhuǎn)移;(11)待上市公司借殼上市;(12)公司退市。
我們列出了最常見的功能。它們的次序與重要性也依次遞減。
3.5 繪制證券交易系統(tǒng)用例總圖
根據(jù)前面的分析和第三節(jié)的繪制用例的方法的四大步驟:確定參與者、描述用例、明確關(guān)系和注明系統(tǒng),繪制證券交易系統(tǒng)用例總圖如圖6所示:
圖6:證券交易用例圖
3.6 細化每一個用例
在建模的初期,我們根據(jù)掌握的系統(tǒng)信息,列出系統(tǒng)所包含的主要功能,接下來,就應(yīng)該為這些功能構(gòu)建更具體的子功能去實現(xiàn)它。列舉部分例子如下:
通過分析“上市股票發(fā)行”功能描述,我們發(fā)現(xiàn)公司上市還應(yīng)該分成更小的3個子用例,即“申請上市”,“審查通過”和“發(fā)行股票”用例。
“股民股市開戶”用例可分為:“填寫資料”,“錄入系統(tǒng)”和“辦理銀證轉(zhuǎn)帳卡”3步;
“銀證轉(zhuǎn)賬”用例包括:“股票交易”,“銀證轉(zhuǎn)賬”和“銀行存取款”3部分;
“股票實時交易”用例包括:“統(tǒng)計實時信息”、“更新信息”和“股票交易”3部分;
“證交所發(fā)布信息”用例包括:“發(fā)布信息”和“統(tǒng)計信息”兩部分;
“證監(jiān)會監(jiān)管”用例包括:“監(jiān)察股市異動”、“停牌調(diào)查”和“給出處理結(jié)果”3部分;
“公司股改”用例包括:“發(fā)出股改指令”、“上市公司與股東協(xié)商方案”、“投票決議”和“方案實施”4部分。其中上市公司與股東協(xié)商方案用例,投票決議用例和方案實施用例有消息傳遞的關(guān)聯(lián)關(guān)系。
“上市公司分紅”用例包括:“發(fā)布分紅信息”、“統(tǒng)計股東信息”和“實施分紅”3部分;
“帳戶轉(zhuǎn)移”用例包括:“申請賬戶轉(zhuǎn)移”、“銷戶”和“開戶”3部分;
“股票退市”用例包括:“監(jiān)察上市公司”、“發(fā)出警告”和“退出交易”3部分;
“待上市公司借殼上市”用例包括:“收購重組”、“申請借殼上市”和“借殼上市”3部分;
以上這些用例子圖的繪制方法與第3節(jié)的繪制方法相似,在此不復(fù)述。
通過軟件系統(tǒng)設(shè)計初期繪制功能整體的用例圖和子功能用例圖,能夠使所有參與設(shè)計者擁有統(tǒng)一的軟件開發(fā)模型,為后續(xù)的詳細設(shè)計與程序開發(fā)指明了前進的方向,用例圖是面向?qū)ο筌浖_發(fā)初期最為重要的功能描述方式,它已經(jīng)在廣大軟件系統(tǒng)設(shè)計過程中占據(jù)了非常重要的角色,在可以預(yù)見的將來還將一直持續(xù)下去。
[1] Larman,C. UML和模式應(yīng)用(第三版)[M]. 北京:機械工業(yè)出版社,2006.
[2] Fowler,M. UML精粹:標準對象建模語言簡明指南(第3版)[M]. 北京:電子工業(yè)出版社,2012.
[3] 宋國順. 軟件工程中UML建模的技術(shù)與分析. [J]軟件導(dǎo)刊.2010,8.
[4] 袁國銘,李洪奇,樊波.關(guān)于知識工程的發(fā)展綜述. [J]計算技術(shù)與自動化. 2011,30(1):138-143.
Use Case Diagram of UML Steps Design Research in Software Engineering
Yuan Guoming1,Liu Rui1,Fan Bo2,Deng Xiaoya3
(1.Renmin University of China,Beijing100872,China; 2.Peking University, Beijing100871, China; 3.Sichuan University of Arts and Science,Dazhou635000,China)
Use case diagram as a modeling graphical of UML widely used in object-oriented software system development process. This article first defines the use case diagram model of the software development cycle, followed by the issue of shares of listed companies in China's securities trading system sub use case diagram design as an example, and then detailed description of the function chart with examples drawn process, and gives use case diagram drawing of the entire software system.
Uml;Use Case Diagrams;Securities Trading Systems;Shares of Listed Companies Issue
TP311.5
A
1007-757X(2014)1-0046-03
2013.12.15)
袁國銘(1978-),男,四川達縣人,中國人民大學博士后,從事高校教學多年,研究方向:數(shù)據(jù)庫系統(tǒng)、it經(jīng)濟學及其知識工程的應(yīng)用,北京,100078劉 瑞,男,成都人,中國人民大學經(jīng)濟學院,國民經(jīng)濟管理系教授,博士生導(dǎo)師,副院長,研究方向:社會經(jīng)濟發(fā)展戰(zhàn)略與規(guī)劃、產(chǎn)業(yè)結(jié)構(gòu)與產(chǎn)業(yè)政策、社會發(fā)展與社會政策等,北京,100078樊 波(1979-)男,西安市人,北京大學光華管理學院博士后,研究方向:醫(yī)院管理、衛(wèi)生經(jīng)濟學、衛(wèi)生法學,北京,100078鄧小亞(1977-),四川達縣人,四川文理學院計算機科學系,研究方向:計算機系統(tǒng)工程及應(yīng)用,成都635000