用例圖和順序圖構(gòu)造操作剖面方法的有效軟件工程論文
摘 要:探討了由面向?qū)ο笥美P蜆?gòu)造操作剖面的可行性,結(jié)合一個實(shí)例,詳細(xì)介紹基于統(tǒng)一建模語言UML(Unified Modeling Language)的用例圖和順序圖構(gòu)造操作剖面的具體方法,代寫碩士論文并對基于UML用例圖和順序圖構(gòu)造操作剖面方法的有效性進(jìn)行了分析.結(jié)果表明,將操作剖面構(gòu)造與軟件系統(tǒng)建模相結(jié)合,可大大簡化構(gòu)造過程,降低開發(fā)費(fèi)用.
關(guān)鍵詞: 軟件;軟件工程;可靠性工程;操作剖面;用例模型;統(tǒng)一建模語言;用例圖;順序圖
操作剖面是描述用戶如何使用軟件的一種技術(shù).因此通過構(gòu)造軟件系統(tǒng)的操作剖面,可以有效的指導(dǎo)軟件可靠性測試工作,獲得理想的測試結(jié)果,大大提高軟件系統(tǒng)的可靠性.一方面,軟件運(yùn)行條件和用戶的使用情況可以用剖面概念進(jìn)行描述;另一方面,建立完整的系統(tǒng)表示模型,可以使人們從全局上把握軟件系統(tǒng)的全貌.因此,如何準(zhǔn)確高效的構(gòu)造出切合實(shí)際的軟件系統(tǒng)操作剖面已成為軟件可靠性測試工作的一個關(guān)鍵環(huán)節(jié).操作剖面的基于非面向?qū)ο蠹夹g(shù)的構(gòu)造已經(jīng)有了較為系統(tǒng)化的、成熟的理論和方法[1],而基于面向?qū)ο蠹夹g(shù),尤其是基于統(tǒng)一建模語言UML(Unified Modeling Language)的系統(tǒng)操作剖面構(gòu)造的系統(tǒng)化和成熟的理論、技術(shù)、方法以及相關(guān)工具目前尚未見到.
隨著面向?qū)ο蠹夹g(shù)應(yīng)用的日益廣泛,如何將面向?qū)ο蠹夹g(shù)用于軟件系統(tǒng)操作剖面的構(gòu)造已逐漸成為人們關(guān)注的焦點(diǎn)[2~4].本文探討在成熟的面向?qū)ο蠼y(tǒng)一建模語言UML基礎(chǔ)上進(jìn)行軟件系統(tǒng)操作剖面的構(gòu)造,并對其有效性進(jìn)行了分析.
1基本概念及操作剖面?zhèn)鹘y(tǒng)構(gòu)造方法
1.1 基本概念
統(tǒng)一建模語言UML是面向?qū)ο蠹夹g(shù)發(fā)展的重大里程碑.它不僅支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程.UML用例視圖,作為描述系統(tǒng)功能需求的手段和方法,用于輔助需求分析,描述項目的功能性需求.用例模型中,每個用例的執(zhí)行獨(dú)立于其他用例,在功能上具有完整性.用例是一個類,它完整地描述系統(tǒng)功能,包括用例執(zhí)行過程中可能產(chǎn)生的諸多變化情況,錯誤情況和異常情況等.用例實(shí)例化的結(jié)果通常稱為場景(Scenario),場景描述系統(tǒng)執(zhí)行的一個特定情況.但用例視圖是靜態(tài)的,用例的動態(tài)執(zhí)行過程不能表述,需要用UML的交互模型和活動模型進(jìn)行描述.而順序圖模型可以用來進(jìn)行一個場景說明———即一個事務(wù)的歷史過程[6],即完成用例動態(tài)執(zhí)行的模擬.因此認(rèn)為,對于任何一個復(fù)雜的軟件系統(tǒng),上述2個視圖對系統(tǒng)功能性需求進(jìn)行建模已經(jīng)足夠.這為基于用例視圖和順序視圖構(gòu)造操作剖面提供了重要依據(jù).
1.2 操作剖面?zhèn)鹘y(tǒng)構(gòu)造方法
操作剖面的基于非面向?qū)ο蠹夹g(shù)的構(gòu)造理論和方法在文獻(xiàn)[1],文獻(xiàn)[7]已經(jīng)有詳細(xì)的闡述.Musa詳細(xì)描述了操作剖面的特征,代寫碩士論文并給出了獲得操作剖面的方法.操作剖面是通過自頂向下不斷細(xì)化軟件輸入空間并確定概率的方法獲得的,如圖1所示.由于篇幅所限,在此不作詳細(xì)解釋.但需要指出的是,在Musa的操作剖面構(gòu)造方法中,操作剖面是在軟件實(shí)現(xiàn)和軟件測試階段建立的,而其它剖面是在需求分析階段之前建立的.隨著面向?qū)ο蠹夹g(shù)等先進(jìn)軟件工程方法的日益成熟,一方面,面向?qū)ο蠛涂焖僭头ǖ刃屡d開發(fā)技術(shù)的應(yīng)用使得操作剖面的構(gòu)造時機(jī)有了提前的可能;另一方面,在面向?qū)ο箝_發(fā)模式下,客戶要求根據(jù)用例模型安排人員現(xiàn)場模擬系統(tǒng)運(yùn)行時,系統(tǒng)操作剖面的構(gòu)造時機(jī)的提前便成了必要的需求.
2基于UML的操作剖面構(gòu)造
本節(jié)中使用PBX(Private Branch eXchange)電話交換系統(tǒng)進(jìn)行操作剖面構(gòu)造方法的介紹.該系統(tǒng)是由AT&T公司開發(fā)的國際Definity項目.AT&T公司在此項工程的開發(fā)過程中使用了操作剖面和其他提高質(zhì)量方法,大大提高了系統(tǒng)的可靠性和軟件質(zhì)量.PBX系統(tǒng)是一個命令驅(qū)動系統(tǒng).圖2是系統(tǒng)示意圖,其中,PBX交換機(jī)由UNIX工作站進(jìn)行控制,同時與提供給用戶使用的數(shù)臺電話相連.該系統(tǒng)按運(yùn)行模式分為單位使用、個人使用、服務(wù)人員使用、系統(tǒng)管理和系統(tǒng)維護(hù)5類.為簡化操作剖面的構(gòu)建過程,本文僅以系統(tǒng)管理模式為例進(jìn)行操作剖面的構(gòu)造。構(gòu)造操作剖面是一種逐步細(xì)化軟件運(yùn)行條件和使用范圍的過程.本文將基于UML用例圖和順序圖操作剖面構(gòu)造的整個過程分為3個主要階段,即建立用例剖面、確定場景剖面和構(gòu)造操作剖面.
21 構(gòu)造用例剖面
UML用例圖捕獲系統(tǒng)用戶需求及其描述的完整性給系統(tǒng)功能的細(xì)化提供了便利.下面首先給出用例剖面的定義,然后列出進(jìn)行用例剖面構(gòu)造的步驟.從軟件需求規(guī)格說明到用例剖面的構(gòu)造需要完成的步驟:①細(xì)化系統(tǒng)功能,生成用例模型,即根據(jù)軟件需求規(guī)格說明建立UML用例視圖;②識別對用例產(chǎn)生影響的主要環(huán)境變量,并估測其出現(xiàn)概率;③分析用例和環(huán)境變量關(guān)系,并估計在環(huán)境變量影響下用例出現(xiàn)的概率.例如,在PBX交換系統(tǒng)中,系統(tǒng)管理工作方式主要包括移動電話或修改所提供服務(wù)、增加電話、代寫碩士論文摘除電話和更新電話簿4個功能,對這些功能產(chǎn)生主要影響的是電話類型,在此只考慮模擬電話和數(shù)字電話.根據(jù)上述步驟,在UML用例視圖的基礎(chǔ)上進(jìn)行擴(kuò)充得到如圖4所示的PBX系統(tǒng)中系統(tǒng)管理用例剖面視圖.在表示參與者與其參與執(zhí)行的用例之間的通信路徑的關(guān)聯(lián)上標(biāo)注用例發(fā)生概率,如在管理用戶和增加用例之間的關(guān)聯(lián)上標(biāo)注8%,表示此用例發(fā)生概率為8%;用注釋標(biāo)注對每個用例產(chǎn)生主要影響的環(huán)境變量及其發(fā)生概率,如對移動電話或修改所提供服務(wù)、增加電話、摘除電話用例都產(chǎn)生影響的環(huán)境變量用注釋標(biāo)注A(80%),B(20%),表示對上述3個用例有影響的主要環(huán)境為A,B,它們在各個用例下發(fā)生的概率均為80%與20%.
22 構(gòu)造場景剖面
場景,作為系統(tǒng)執(zhí)行特定情況的描述,是用例實(shí)例化的結(jié)果.根據(jù)UML用例圖定義可知,用例的定義包含用例所必需的所有行為,包括所有正常行為、異常情況及其預(yù)期反應(yīng)[6].因此,場景有必要對用例的'所有情況進(jìn)行描述.下面給出了場景剖面的定義及其
構(gòu)造方法.定義場景剖面:場景剖面是指軟件系統(tǒng)由用例定義的場景及其發(fā)生的概率組成的集合.同樣可以給出集合的定義方式,在此省略.需要指出的是,此處場景發(fā)生的概率是在用例事件發(fā)生前提下的概率,是條件概率.場景剖面的構(gòu)造在操作剖面的構(gòu)造過程中起到了承上啟下的作用,它完成了操作剖面構(gòu)造方法中的①用順序圖對用例場景進(jìn)行描述;②估計場景出現(xiàn)概率2個步驟.PBX系統(tǒng)中添加用戶用例根據(jù)添加用戶類型不同可以劃分為3個場景:添加一般人員用戶、添加秘書用戶和添加經(jīng)理用戶,按照PBX命令形式分別表示為: http://www.51lunwen.org/master_degree.html add-s staff,add-s secre-tary和add-s manager.根據(jù)上述步驟,可以得到如圖5所示的PBX系統(tǒng)中增加電話用例的場景剖面視圖.在視圖中,用注釋描述用例的每一場景發(fā)生的概率,如在增加電話用例中添加一般人員用戶場景發(fā)生的概率為70%,它表明在增加電話用例事件發(fā)生的前提下添加一般用戶電話的場景發(fā)生的概率是70%.
2.3 構(gòu)造操作剖面
場景是用例實(shí)例化的描述,因此,場景剖面所描述的仍然是面向用戶的細(xì)化功能,而不是實(shí)際實(shí)現(xiàn)的操作,需要進(jìn)一步細(xì)化.同時,操作剖面的構(gòu)造有時還需要考慮系統(tǒng)的負(fù)載率[5](本文不作介紹).下面給出由場景剖面構(gòu)造操作剖面的一般步驟:①識別場景剖面中的所有操作可能,建立操作和場景之間的聯(lián)系;②識別操作輸入變量和輸入狀態(tài)的作用;③根據(jù)用例剖面、場景剖面、環(huán)境變量情況等因素估算操作出現(xiàn)概率.上例中,每一場景用PBX系統(tǒng)的一條命令表示,不能再分,認(rèn)為每一場景均包含一個操作.在考慮操作輸入變量時,認(rèn)為地址(location)對操作性質(zhì)沒有影響,因此,在本文中不予考慮,當(dāng)然如果認(rèn)為某一地區(qū)發(fā)生此類操作較多的話,則另當(dāng)別論.最后,可以根據(jù)條件概率公式,估算得到任一操作發(fā)生的概率,如管理人員執(zhí)行add-s staff命令(針對模擬電話用戶)的操作概率為2%×8%×80%×70%=0.000896。
建立了操作剖面,就可以此為依據(jù)安排軟件可靠性測試工作的進(jìn)行,大大提高軟件可靠性.由于篇幅所限,此例中提及的PBX系統(tǒng)操作剖面的Musa構(gòu)造過程在此不作詳細(xì)介紹.讀者如有興趣,可參見文獻(xiàn)[5]和文獻(xiàn)[7].可以看出,基于UML用例圖和順序圖的操作剖面構(gòu)造方法將操作剖面的構(gòu)造過程融入了軟件系統(tǒng)建模過程中,大大減少了構(gòu)造步驟,避免了傳統(tǒng)構(gòu)造方法繁瑣的過程,降低了軟件開發(fā)的費(fèi)用.
3有效性分析
首先,分析用例剖面的構(gòu)造.通過用例剖面的定義可以看出,一方面,用例剖面通過UML用例視圖定義的用例描述了系統(tǒng)的功能性需求,傳統(tǒng)構(gòu)造方法所強(qiáng)調(diào)的客戶、用戶和系統(tǒng)模型等信息已經(jīng)在建立用例模型時用UML用例視圖進(jìn)行了描述;另一方面,它又通過定義這些用例發(fā)生的概率確定了系統(tǒng)的定量使用情況,滿足剖面的完備性.從此意義上講,用例剖面與傳統(tǒng)意義上的功能剖面是等價的.其次,從用例剖面到場景剖面的構(gòu)造,以及從場景剖面到操作剖面的構(gòu)造過程完成了操作剖面構(gòu)造傳統(tǒng)方法中的①細(xì)化功能;②識別出所有可能的運(yùn)行;③建立運(yùn)行與功能之間的聯(lián)系;④識別運(yùn)行的輸入變量和輸入狀態(tài);⑤)計算每個運(yùn)行子類的出現(xiàn)概率等步驟,最終生成系統(tǒng)完整的操作剖面.可以看出,傳統(tǒng)構(gòu)造方法中所考慮到的問題在基于UML用例圖和順序圖的操作剖面構(gòu)造方法中均有所考慮,因此,認(rèn)為本文提出的操作剖面構(gòu)造方法是有效的.表2列出了2種方法中相關(guān)關(guān)鍵術(shù)語的對比.
4結(jié)束語
基于用例圖和順序圖的操作剖面的構(gòu)造,可大大簡化操作剖面的傳統(tǒng)構(gòu)造過程,避免由軟件系統(tǒng)需求規(guī)格說明到功能剖面的繁瑣構(gòu)造過程.同時,由于用例圖和順序圖對系統(tǒng)功能性需求描述能力的完備性,也決定了這種操作剖面構(gòu)造的方法與傳統(tǒng)方法的等價性.
參考文獻(xiàn):
[1] Musa J D. Operational profiles in software-reliability engineering [J]. IEEE Software, 1993,10(2):14~32
[2] Lakey P, Neufelder A. System and software reliability assurance notebook[M]. NewYork: Rome Laboratory,1997. 9-16~9-20
[3] Regnell B, Runeson P, Wohlin C. Towards integration of use case modelling and usage-based testing[J]. Journal of Systems and Software, 2000, 50(2):117~130
[4] Butler G, Cretu A, Khendek F. Reconciling use cases and operational profiles[DB/OL]. http://www.51lunwen.org/master_degree.html http://citeseer.nj.nec.com/148512.html, 2000-04
[5] Lyu M R. Handbook of software reliability engineering [M]. McGraw-Hill publishing, 1995
[6]蘭博.UML參考手冊[M].姚淑珍,唐發(fā)根譯.北京:機(jī)械工業(yè)出版社,2001Rumbaugh J. The unified modeling language reference manual[M]. Translated by Yao Shuzhen, Tang Fagen. Beijing:China Machine Press, 2001(in Chinese)
[7]黨齊民,楊新發(fā).軟件可靠性工程中的操作剖面開發(fā)[J].軟件學(xué)報,1996,7(增刊):323~328DangQimin,YangXinfa. Operational profile development in software reiliability engineering[J]. Journal of Software,1996, 7 (supplement):323~328(in Chinese)
【用例圖和順序圖構(gòu)造操作剖面方法的有效軟件工程論文】相關(guān)文章:
《地圖(分層設(shè)色地形圖地形剖面圖)》教案06-20
有效朗讀課例論文05-05
繪制建筑施工圖的步驟和方法介紹03-20
巧妙構(gòu)思板圖的論文05-10
鑒賞董源瀟湘圖和郭熙筆法論文04-24
早安軟文和配圖11-19