嚴(yán)熙 沙佰榮 鄭威
摘 要: 當(dāng)前成熟的軟件系統(tǒng)分析與設(shè)計(jì)方法大多關(guān)注于軟件系統(tǒng)的功能性,而可信性并未得到充分的考慮。隨著軟件本身及其運(yùn)行環(huán)境日漸復(fù)雜,功能實(shí)現(xiàn)過(guò)程中軟件的可信性引起人們?cè)絹?lái)越多的關(guān)注。為了構(gòu)建出既滿足功能性需求又滿足可信性需求的對(duì)象模型,提出一種擴(kuò)展用例驅(qū)動(dòng)的設(shè)計(jì)方法,運(yùn)用現(xiàn)有開(kāi)發(fā)方法ICONIX方法,對(duì)軟件分析設(shè)計(jì)過(guò)程中的健壯性分析過(guò)程進(jìn)行擴(kuò)展。引入一種新的用例來(lái)實(shí)現(xiàn)軟件功能性和可行性的結(jié)合,并最終得出所需對(duì)象模型。
關(guān)鍵詞: 軟件分析; 可信性; 擴(kuò)展用例; 對(duì)象模型
中圖分類號(hào): TN911?34; TP311 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)08?0033?04
Analysis and application of extended use case driving technology in software system
YAN Xi, SHA Bairong, ZHENG Wei
(School of Electronics and Information, Jiangsu University of Science and Technology, Zhenjiang 212003, China)
Abstract: Current mature software analysis and design methods are mainly concerned with the function of the software system, but the credibility of the software has not been fully considered. Since the software and its running environment become more and more complex, the software reliability in the realization process of its function has attracted more and more attention. In order to build the object model, which not only meets the functional requirements, but also satisfies the demand of the credibility, a design method of the extended use case is proposed in this paper. The existing method, ICONIX method, is used to extend the analysis process of robustness in software analysis and design process. A new use cases was introduced to achieve a combination of software functionality and feasibility, and the object model needed for software design was obtained.
Keywords: software analysis; credibility; extended use case; object model
0 引 言
隨著軟件系統(tǒng)應(yīng)用領(lǐng)域越來(lái)越多,軟件系統(tǒng)使用中也正面臨著各式各樣的功能性以外的干擾(比如網(wǎng)絡(luò)惡意攻擊、用戶操作失誤等);在這些情況下,構(gòu)建一個(gè)可信屬性的系統(tǒng)已成為開(kāi)發(fā)人員所面臨解決的一大難題。然而,怎樣在軟件分析與設(shè)計(jì)中綜合考慮功能性和可信性,目前并無(wú)行之有效的方法。文中基于當(dāng)前常用的用例驅(qū)動(dòng)分析設(shè)計(jì)方法 ICONIX,提出了一種擴(kuò)展用例驅(qū)動(dòng)的方法,將可信軟件系統(tǒng)建模為一個(gè)有前饋和反饋控制的系統(tǒng)。過(guò)程中,系統(tǒng)將通過(guò)引入的前饋和反饋控制來(lái)應(yīng)對(duì)自身可能出現(xiàn)的行為偏差以及外在存在的威脅,從而提高可信性,最終構(gòu)建出既滿足功能性需求又滿足可信性需求的對(duì)象模型。
1 用例驅(qū)動(dòng)方法
ICONIX[1]是眾多用例驅(qū)動(dòng)開(kāi)發(fā)方法中比較輕量級(jí)的一種,過(guò)程的規(guī)模大概在重量級(jí)Rational Unified Process(RUP)和輕量級(jí)的極限編程(XP)之間,在軟件系統(tǒng)分析設(shè)計(jì)的過(guò)程中使用一個(gè)最小的UML核心子集(4種UML元素:用例圖、健壯性圖、時(shí)序圖、類圖)來(lái)實(shí)現(xiàn)對(duì)用例驅(qū)動(dòng)的OO設(shè)計(jì)。ICONIX方法的基本設(shè)計(jì)過(guò)程包含領(lǐng)域建模、用例建模、健壯性分析、交互建模[2]四個(gè)步驟;該動(dòng)態(tài)過(guò)程的目標(biāo)是不斷精化,并運(yùn)用適當(dāng)方式進(jìn)行測(cè)試[3]以完善用例系統(tǒng)對(duì)象模型設(shè)計(jì)。其中,領(lǐng)域建模和用例建模構(gòu)成需求分析階段的主要活動(dòng),健壯性分析和交互建模則構(gòu)成在統(tǒng)設(shè)計(jì)階段的主要活動(dòng)。
在開(kāi)發(fā)可信性軟件系統(tǒng)時(shí),主要考慮“影響系統(tǒng)的可信性的潛在因素有哪些?”,從根本出發(fā),將可信的軟件系統(tǒng)建模為前饋?反饋控制系統(tǒng)[4?5],被控對(duì)象是軟件系統(tǒng)的核心,其對(duì)外展現(xiàn)了系統(tǒng)的基本行為和所有服務(wù)。其中,前饋控制主要用來(lái)應(yīng)對(duì)需求分析時(shí)出現(xiàn)的威脅,然而在分析階段過(guò)程中很難預(yù)計(jì)運(yùn)行時(shí)所將面臨的各類威脅,因而需要反饋控制來(lái)應(yīng)對(duì)處理運(yùn)行過(guò)程中出現(xiàn)的行為偏差。通過(guò)兩者相互協(xié)作,確保軟件系統(tǒng)能夠保障行為符合預(yù)期、服務(wù)可信賴,從而提高自身可信性。
2 擴(kuò)展用例驅(qū)動(dòng)的方法
2.1 擴(kuò)展用例驅(qū)動(dòng)模型
擴(kuò)展用例驅(qū)動(dòng)模型是對(duì)原有用例驅(qū)動(dòng)模型進(jìn)一步擴(kuò)展,在其中引入一個(gè)新的用例。如圖1所示的系統(tǒng)元模型圖展示了用例相關(guān)的各個(gè)概念及之間存在的關(guān)系。
圖1中新引入用例的主要作用是控制其他用例以及自身的活動(dòng)序列,并從中采取相應(yīng)控制措施來(lái)保障軟件系統(tǒng)自身的可信性。圖1中前饋控制描述的是軟件系統(tǒng)在威脅出現(xiàn)時(shí)采取的應(yīng)對(duì)措施,這里所訴的威脅一般是發(fā)生在系統(tǒng)外部,并對(duì)系統(tǒng)行為產(chǎn)生了一定影響的干擾事件。反饋控制則描述的是軟件系統(tǒng)在應(yīng)對(duì)自身行為偏差時(shí)所采取的措施。其中行為偏差指的是系統(tǒng)運(yùn)行中,實(shí)際行為對(duì)設(shè)計(jì)時(shí)行為的偏離。常見(jiàn)有系統(tǒng)服務(wù)時(shí)間延遲、服務(wù)不可用、輸出數(shù)據(jù)有誤等。
2.2 設(shè)計(jì)過(guò)程
擴(kuò)展用例驅(qū)動(dòng)方法主要是在原有用例驅(qū)動(dòng)過(guò)程上引入新的用例來(lái)進(jìn)行擴(kuò)展。需求分析中,分別針對(duì)系統(tǒng)功能性和可信性需求進(jìn)行建模[6],包含領(lǐng)域建模、用例建模、新引入用例建模并得出最終的擴(kuò)展用例模型圖;設(shè)計(jì)過(guò)程中則根據(jù)需求分析所得模型圖進(jìn)行系統(tǒng)模型設(shè)計(jì),其中主要包含擴(kuò)展的健壯性分析以及交互建模,并最終得出所需的系統(tǒng)類圖,具體過(guò)程如圖2所示。過(guò)程中主要包含4個(gè)活動(dòng):領(lǐng)域建模、擴(kuò)展用例建模、擴(kuò)展的健壯性分析以及交互建模。其中:
(1) 領(lǐng)域建?;顒?dòng)與ICONIX方法中的相應(yīng)活動(dòng)相同,目標(biāo)都是根據(jù)問(wèn)題域的描述來(lái)確定一個(gè)詞匯表,并構(gòu)成系統(tǒng)對(duì)象模型的雛形,也就是對(duì)系統(tǒng)對(duì)象類的最初猜想。
(2) 擴(kuò)展用例建模是從用戶的角度出發(fā)并基于原有的用例系統(tǒng)模型,在引入新的用例后建立起來(lái)的擴(kuò)展模型,是對(duì)原有用例模型的擴(kuò)展,以及功能性中可信性的實(shí)現(xiàn)。
(3) 擴(kuò)展的健壯性分析基于ICONIX方法中的健壯性分析[7?8]活動(dòng),在引用新的用例后重新進(jìn)行健壯性分析,也是需求分析和詳細(xì)設(shè)計(jì)之間的橋梁。目的是根據(jù)新引入用例的描述設(shè)計(jì)擴(kuò)展健壯性模型圖,來(lái)識(shí)別實(shí)現(xiàn)擴(kuò)展用例的功能對(duì)象和可信保障對(duì)象。該活動(dòng)中,將用例描述的需求離散化為各類對(duì)象(參與者、邊界對(duì)象、實(shí)體對(duì)象、與控制對(duì)象)的交互所構(gòu)成的健壯性模型圖。
(4) 擴(kuò)展的交互建模的目標(biāo)則是基于ICONIX方法中的交互建模[9]活動(dòng)來(lái)對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),將系統(tǒng)行為分配到擴(kuò)展健壯性分析過(guò)程所識(shí)別到的邊界對(duì)象和實(shí)體對(duì)象中。根據(jù)新引入用例的描述來(lái)繪制對(duì)象之間消息交互的序列圖,并分配新引入用例所描述的系統(tǒng)功能性行為和可信性行為到各個(gè)對(duì)象中,并考慮兩種行為之間存在的聯(lián)系。
下面,通過(guò)具體案例的需求分析和系統(tǒng)設(shè)計(jì)兩部分內(nèi)容,來(lái)介紹本文所提出的方法。
3 案例分析
本節(jié)以某購(gòu)票系統(tǒng)為例,說(shuō)明擴(kuò)展用例驅(qū)動(dòng)的分析與設(shè)計(jì)方法的應(yīng)用。客戶可以通過(guò)系統(tǒng)查詢各種情況(票的價(jià)格、車(chē)次的情況、站點(diǎn)情況),再通過(guò)系統(tǒng)數(shù)據(jù)庫(kù)給予的實(shí)時(shí)信息提示去預(yù)定車(chē)票,完成訂票過(guò)程,客戶也可通過(guò)系統(tǒng)對(duì)已訂購(gòu)的票進(jìn)行退訂、改簽等操作。
3.1 需求分析
基于購(gòu)票過(guò)程的描述,初步確定在線購(gòu)票系統(tǒng)參與者包括:用戶、管理員。分別從這些參與者角度出發(fā),建立在線購(gòu)票系統(tǒng)用例模型如圖3所示。其中,用戶可以完成很多操作,比如改簽、訂票、退訂等,這些操作的前提是登錄系統(tǒng)。用戶在操作過(guò)程中會(huì)出現(xiàn)一些突發(fā)情況,比如:訂單信息填寫(xiě)不正確,系統(tǒng)訂單交易異常等。其中,管理員擁有修改票務(wù)相關(guān)信息和管理用戶權(quán)限。
由圖4可知,用戶與系統(tǒng)進(jìn)行交互過(guò)程中會(huì)有新引入用例來(lái)進(jìn)行相應(yīng)控制處理,避免突發(fā)性威脅以及系統(tǒng)行為偏差,達(dá)到對(duì)系統(tǒng)可信性的保障[10?11]。
登錄用例中,信息輸入后前饋控制對(duì)信息進(jìn)行加密處理,避免賬戶信息被盜用。除此之外,前饋控制也會(huì)限制用戶對(duì)于密碼的輸入次數(shù),防止惡意破解密碼的行為。在提交訂單過(guò)程中,控制用例體現(xiàn)的尤為重要,用戶在向系統(tǒng)提交訂單時(shí)會(huì)針對(duì)系統(tǒng)行為偏差或者存在的威脅進(jìn)行相應(yīng)控制處理。提交信息會(huì)被前饋控制先進(jìn)行加密處理后再提交給系統(tǒng),這樣可以避免賬戶信息被盜用。
交易過(guò)程中可能會(huì)出現(xiàn)系統(tǒng)訪問(wèn)異常而無(wú)法連接問(wèn)題,此時(shí)前饋控制就會(huì)啟用系統(tǒng)預(yù)先設(shè)定好的默認(rèn)備用連接,以確保交易正常進(jìn)行。此外,系統(tǒng)也會(huì)優(yōu)化訂單處理時(shí)間,借助于反饋控制將會(huì)解決訂單提交延遲等問(wèn)題。從系統(tǒng)需求分析中可以看出,引入新的用例后將會(huì)提升整個(gè)系統(tǒng)的可信性[12]。
3.2 系統(tǒng)設(shè)計(jì)
針對(duì)圖4所示的擴(kuò)展用例模型圖,接下來(lái)著重以用例“提交訂單”為例來(lái)說(shuō)明擴(kuò)展用例驅(qū)動(dòng)在售票系統(tǒng)的設(shè)計(jì)過(guò)程。由需求分析中描述知,用例“提交訂單”中“訂單加密”所描述的都是靜態(tài)控制措施,而“降低處理時(shí)間”和“啟用備用鏈接”卻都是動(dòng)態(tài)的措施,且直接作用于“提交訂單”。接下來(lái)對(duì)新入用例“訂單加密”進(jìn)行健壯性分析,識(shí)別出此用例所支持的控制對(duì)象。將這些對(duì)象全部添加到用例的擴(kuò)展健壯性模型圖如圖5所示。圖6為基于圖5的健壯性模型圖所繪制的序列圖。圖7是根據(jù)“登錄”、“提交訂單”及新引入用例等用例對(duì)應(yīng)的健壯性分析及交互建模更新后所得的擴(kuò)展對(duì)象模型(圖7的類圖采用了ICONIX開(kāi)發(fā)方法采用風(fēng)格)。
4 結(jié) 語(yǔ)
為了實(shí)現(xiàn)功能性和可信性在軟件系統(tǒng)分析與設(shè)計(jì)中的綜合應(yīng)用,本文基于當(dāng)前成熟的用例驅(qū)動(dòng)分析與設(shè)計(jì)方法,提出了一種擴(kuò)展用例驅(qū)動(dòng)方法來(lái)應(yīng)對(duì)軟件系統(tǒng)中出現(xiàn)的突發(fā)性異常威脅以及系統(tǒng)行為偏差。應(yīng)用了在線購(gòu)票交易系統(tǒng)來(lái)說(shuō)明該方法的可行性。軟件系統(tǒng)在后期運(yùn)行過(guò)程中可能面臨的威脅和偏差遠(yuǎn)遠(yuǎn)不止以上所敘述的這些,可能會(huì)出現(xiàn)一些意外情況,比如服務(wù)器崩潰、系統(tǒng)內(nèi)部組件失效、管理員操作不當(dāng)?shù)取?/p>
接下來(lái)的過(guò)程中會(huì)繼續(xù)對(duì)該方法進(jìn)行改進(jìn)。另外,軟件系統(tǒng)設(shè)計(jì)過(guò)程中也需要以更加有效的方式來(lái)組織對(duì)新引入用例的描述,以致可以更好地描述可信性需求,并最終將其轉(zhuǎn)化為設(shè)計(jì),便于后續(xù)的軟件開(kāi)發(fā)與應(yīng)用,這也將會(huì)是未來(lái)的研究方向。
參考文獻(xiàn)
[1] ROSENBERG Doug, SCOTT Kendall. Applying use case driven object modeling with UML [M]. [S.l.]: Post & Telecom Press, 2005.
[2] 張友生.系統(tǒng)分析與設(shè)計(jì)技術(shù)[M].北京:清華大學(xué)出版社,2005.
[3] 劉春玲,雷海紅.黑盒測(cè)試用例設(shè)計(jì)方法研究[J].現(xiàn)代電子技術(shù),2012,35(20):46?48.
[4] 薛定宇.反饋控制系統(tǒng)設(shè)計(jì)與分析[M].北京:清華大學(xué)出版社,2000.
[5] CAI K, CANGUSSU J W, DECARLO R A, et al. An overview of software cybernetics [C]// Proceedings of the 11th Annual Intl Workshop on Software Technology and Engineering Practices. Amsterdam: IEEE, 2003: 77?86.
[6] 崔曉燕,袁剛.基于ICONIX方法的O&M架構(gòu)設(shè)計(jì)與分析[J].軟件導(dǎo)刊,2008(12):22?23.
[7] 張春娣,康春農(nóng).健壯性分析在軟件開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2009(6):48?51.
[8] 韓建亞,吳智博,劉卓鉞,等.基于使用剖面分析的系統(tǒng)健壯性評(píng)測(cè)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(3):973?977.
[9] 王鑫寧.UML軟件建模在污染源在線監(jiān)測(cè)系統(tǒng)中的應(yīng)用研究[D].青島:中國(guó)海洋大學(xué),2012.
[10] 王環(huán)環(huán),詹永照,陳錦富.可信軟件分析與測(cè)試研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2011,28(7):2401?2406.
[11] 姜興杰,楊峰輝.軟件可靠性分析與設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(7):135?137.
[12] DONZELLI Paolo, BASILI Victor. A practical framework for eliciting and modeling system dependability requirements: experience from the NASA high dependability computing project [J]. The Journal of systems & software, 2005, 79(1): 107?119.