[摘要] 在對軟件系統(tǒng)進(jìn)行UML需求分析的基礎(chǔ)上,以質(zhì)量功能展開中的質(zhì)量屋系列矩陣為主線,提出了一種基于UML的QFD需求定量分析方法,對需求的優(yōu)先級和技術(shù)特性需求的重要度進(jìn)行定量分析,其有效性在實(shí)踐中得到了驗(yàn)證。
[關(guān)鍵詞] UML QFD 需求分析
一、引言
開發(fā)軟件系統(tǒng)的工作首先便是獲取系統(tǒng)需求并進(jìn)行需求分析,需求分析是軟件開發(fā)生命周期的第一個階段,它貫穿于整個開發(fā)生命周期,是軟件系統(tǒng)開發(fā)中的關(guān)鍵問題。但至今需求分析仍是軟件系統(tǒng)開發(fā)中最復(fù)雜、最困難的過程之一。表現(xiàn)在1.需求獲取困難。軟件需求獲取中缺乏領(lǐng)域知識的問題常常是模糊的、不精確的,而需求獲取及分析偏向創(chuàng)造性思維活動,其過程讓第三者難以理解;2.需求分析不完整。是軟件開發(fā)失敗的主要原因之一;3.需求建模較復(fù)雜。在軟件需求中混雜著各種各樣的需求,功能性需求與非功能性需求錯綜復(fù)雜的聯(lián)系,以及當(dāng)前對非功能需求分析建模技術(shù)的缺乏都大大增加了需求建模的復(fù)雜性。如何有效地分析客戶需求并映射到系統(tǒng)設(shè)計開發(fā)過程,實(shí)現(xiàn)系統(tǒng)需求的跟蹤管理和控制,是軟件系統(tǒng)開發(fā)中的重要課題。
針對需求分析中存在的困難,提出了一種基于UML的QFD需求定量分析方法,把UML用例建模應(yīng)用到軟件需求分析中,用作為需求獲取和分析過程可視化,以及建立可視化模型的工具,利用QFD客觀地使需求項(xiàng)目層次化,可視化和充分化,從而降低需求建模的復(fù)雜性。同時給出一個需求分析框架,使該方法具有較強(qiáng)的可操作性。
二、UML需求建模
UML(Unified Modeling Language) 是一種通用的可視化建模語言,它支持從需求分析開始的軟件系統(tǒng)開發(fā)的全過程。在軟件系統(tǒng)需求分析中可通過用例圖對系統(tǒng)的需求進(jìn)行分析建模。UML 作為一種強(qiáng)大的圖形化建模語言,是理想的需求描述和建模分析工具,對大規(guī)模的、復(fù)雜的、不斷變化的用戶需求有著很強(qiáng)的控制力。
用例(USE CASE)是系統(tǒng)執(zhí)行的一系列動作,通過這些動作能獲得對參與者(Actor,包括客戶、用戶和開發(fā)人員等)有價值的結(jié)果。
1.用例與需求的關(guān)系。用例體現(xiàn)參與者需要系統(tǒng)完成何種操作,強(qiáng)調(diào)實(shí)現(xiàn)用戶的真正目標(biāo),以一種簡單而有效的方式表達(dá)系統(tǒng)的行為,更體現(xiàn)系統(tǒng)對用戶的價值,把需求書寫者的注意力從程序員關(guān)心的系統(tǒng)功能列表,回到用戶需求上。
需求分為業(yè)務(wù)需求、用戶需求、軟件需求三個層次,如圖1所示。需求工程應(yīng)該從上向下,從宏觀到微觀,且循環(huán)迭代補(bǔ)充完整。
在UML中,軟件需求定義為“系統(tǒng)所需的特性、屬性或行為”。軟件需求就是系統(tǒng)必須遵循的條件和所具備功能的陳述,它們都是可以觀察的外部系統(tǒng)行為規(guī)范,它表明了用戶或者另一系統(tǒng)要求調(diào)用系統(tǒng)必須完成的工作,因此這些需求必須是詳細(xì)且明確的,同時軟件的需求又可以明確地指導(dǎo)系統(tǒng)的實(shí)現(xiàn)和測試工作。
用例圖關(guān)注的是系統(tǒng)功能高層次的形狀,而不關(guān)注系統(tǒng)的具體實(shí)現(xiàn)方法,它著重從用戶的角度描述系統(tǒng)功能,適用于系統(tǒng)的需求分析階段,是系統(tǒng)的核心,驅(qū)動著其他模型的開發(fā)。
系統(tǒng)所有的參與者和所有用例組成用例模型,用例模型幫助參與者在如何使用系統(tǒng)方面達(dá)成共識,參與者在與用例進(jìn)行交互時使用系統(tǒng)。一張用例圖描述部分用例模型,顯示帶有關(guān)聯(lián)關(guān)系的用例和參與者的集合。用例建模得到的功能需求明確規(guī)定了參與者執(zhí)行的特定任務(wù),使用戶能清晰看到系統(tǒng)提供的有價值操作,有效地降低待開發(fā)系統(tǒng)的復(fù)雜度,幫助人們理解復(fù)雜的問題。
2.使用用例進(jìn)行需求分析。在軟件需求分析過程中,需求一般可以分為兩類:功能需求和非功能需求。功能需求是系統(tǒng)必須能夠?qū)崿F(xiàn)的系統(tǒng)行為,而不需要在條件中加入物理約束,它指定了系統(tǒng)的輸入和輸出行為;非功能性需求指定了了系統(tǒng)必須具有的其他性質(zhì),描述的是系統(tǒng)的特征或者系統(tǒng)的環(huán)境特征。
在使用UML進(jìn)行需求建模時,通過用例圖從用戶目標(biāo)和系統(tǒng)交互功能兩方面來分析。在軟件系統(tǒng)開發(fā)的過程中,客戶先給了項(xiàng)目組《用戶需求書》,其中描述了業(yè)務(wù)需求和用戶需求,主要內(nèi)容是用戶希望的系統(tǒng)功能,然后由需求小組進(jìn)行需求獲取和需求分析。用例將軟件需求放在環(huán)境中,將功能性需求放入實(shí)際操作的用戶環(huán)境中,當(dāng)系統(tǒng)與用戶或其他系統(tǒng)交互時,可以描述系統(tǒng)的行為。
(1)用例的提取。通過《用戶需求書》,對領(lǐng)域內(nèi)的相關(guān)詞法進(jìn)行分析,將用戶和客戶的需要作為需求,篩選出有效的備選需求,將功能性需求表示為用例模型中的用例,其他的需求放到一個單獨(dú)的列表中,以待在質(zhì)量功能展開時進(jìn)行分析,同時對用例圖中的用例進(jìn)行語義描述。
(2)建立需求用例模型。用例模型是所有用于描述指定系統(tǒng)的用例、參與者和用例—參與者關(guān)聯(lián)關(guān)系的組合。在UML中用例模型是這樣定義的:用例模型可用于描述系統(tǒng)的功能性需求或者用例的其他分類。在軟件開發(fā)過程中,使用模型對現(xiàn)實(shí)進(jìn)行簡化、概括,從而可以加強(qiáng)對真實(shí)構(gòu)建系統(tǒng)的理解。
通過用例描述發(fā)現(xiàn)用例之間的關(guān)系,在用例圖中描述出來建立用例模型,對用例之間的關(guān)系進(jìn)行可視化的描述,使用戶和領(lǐng)域?qū)<夷軌蚋玫貙ο到y(tǒng)的需求分析及其建模結(jié)果進(jìn)行審評,及早發(fā)現(xiàn)需求的不足,減少系統(tǒng)開發(fā)的風(fēng)險。
3.質(zhì)量功能展開需求分析。通過UML可視化地表達(dá)系統(tǒng)需求的發(fā)現(xiàn)與描述,克服了系統(tǒng)需求分析中純文字性說明的不足之處,體現(xiàn)了直觀、規(guī)范、易交流等優(yōu)點(diǎn),這是需求表達(dá)的一種有效手段。在需求分析階段,還有一個關(guān)鍵的工作在于怎樣盡力降低初始階段的開發(fā)費(fèi)用,加快初始階段的開發(fā)進(jìn)度。但在系統(tǒng)分析人員缺少相關(guān)的領(lǐng)域知識,不熟悉其業(yè)務(wù)流程的情況下, 提取需求、精確描述需求之間關(guān)系、對于需求用例的優(yōu)先級控制、性能性需求和技術(shù)特性需求等問題難以解決。
質(zhì)量功能展開QFD (Quality Function Deployment)模型也是針對軟件系統(tǒng)開發(fā)周期各階段而建立的模型,特別是可對需求和技術(shù)特性進(jìn)行定量需求分析。在系統(tǒng)需求分析中,QFD以用戶的需求為輸入,采用關(guān)系矩陣的方法對用戶需求加以描述、迭代展開,將用戶需求與技術(shù)特性、用戶需求的重要性與競爭性聯(lián)系起來,并把用戶的需求轉(zhuǎn)化為技術(shù)特性、構(gòu)件接口和體系框架,從而提高系統(tǒng)需求獲取質(zhì)量和需求分析質(zhì)量,為從需求到設(shè)計的映射打下了好的基礎(chǔ)。
質(zhì)量屋HOQ (House of Quality) 的概念是由美國學(xué)者J. R. Hauser和Don Clausing在1988年提出的。質(zhì)量屋是由一個輸入到—個輸出的轉(zhuǎn)換過程,它提供了一種將用戶需求轉(zhuǎn)化成為技術(shù)特性,并配置到建造過程中去的結(jié)構(gòu)方法。QFD采用HOQ建立用戶需求和功能特性之間的相互聯(lián)系,針對需求抽取困難的問題,把QFD應(yīng)用到系統(tǒng)需求管理中,質(zhì)量屋矩陣可用作需求獲取和分析過程可視化,及構(gòu)造可視化模型的工具。質(zhì)量屋的基本結(jié)構(gòu)如圖2所示。
一個完整的質(zhì)量屋包括6個部分:(1)用戶需求及重要度:確定了什么才是用戶最需要的;(2)技術(shù)特性:在需求分析時,由系統(tǒng)項(xiàng)目組根據(jù)用戶需求來提取出滿足這些需求的技術(shù)特性;(3)關(guān)系矩陣:描述了用戶需求和技術(shù)特性之間的關(guān)系程度;(4)競爭分析:站在用戶的角度,對本軟件系統(tǒng)在滿足用戶需求方面進(jìn)行評估,以確定本系統(tǒng)的競爭優(yōu)勢和劣勢以尋找突破性的改進(jìn)方向和領(lǐng)域;(5)技術(shù)評估:技術(shù)評估包括技術(shù)特性的權(quán)重、競爭性評估和設(shè)計質(zhì)量;(6)關(guān)聯(lián)矩陣:表示出了各技術(shù)特性之間相互支持或阻礙的關(guān)系。
經(jīng)過反復(fù)的質(zhì)量功能展開,HOQ陣逐漸被整理成層次化結(jié)構(gòu)形式,而軟件需求和數(shù)據(jù)項(xiàng)目也被同時并列地層次化。HOQ矩陣的層次與需求項(xiàng)目的層次相對應(yīng),反映了需求的一次水平、二次水平、三次水平等層次關(guān)系,并通過技術(shù)評估檢驗(yàn)需求是否滿足要求。
4.基于UML的QFD軟件系統(tǒng)需求定量分析過程?;谝呀⒌某跏加美P?,由于領(lǐng)域業(yè)務(wù)、需求變化的因素可能導(dǎo)致需求分析的演化,即在現(xiàn)有需求分析的基礎(chǔ)上進(jìn)行下一遍的需求分析及建模。基于不同領(lǐng)域知識互補(bǔ)的必要性,以演化的觀點(diǎn)來考慮系統(tǒng)的需求分析,項(xiàng)目經(jīng)理應(yīng)與參與者共同分析。不同類型的參與者在需求分析建模過程中,從不同的層次、不同的角度分析系統(tǒng)的需求,并通過UML表示出需求。如,需求分析人員主要考慮系統(tǒng)范圍的設(shè)定;構(gòu)架設(shè)計師必需處理關(guān)鍵和重大的風(fēng)險,確認(rèn)那些制定構(gòu)架計劃所需要的用例。經(jīng)過QFD展開分析定量確定用例的優(yōu)先級,對于本階段的目標(biāo)是無關(guān)緊要的用例,只投入少量的精力,同時檢驗(yàn)分析的需求是否足夠地滿足用戶的需求。
需求分析及建模需要經(jīng)過多次反復(fù)才能完成,系統(tǒng)需求分析包括提煉、分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險承擔(dān)者都明白其含義并找出其中的錯誤、遺漏或其他不足的地方?;赨ML的QFD軟件系統(tǒng)需求定量分析過程包括以下的循環(huán)過程:
(1)對領(lǐng)域內(nèi)的相關(guān)詞法進(jìn)行分析,篩選出有效的備選需求;
(2)將功能性需求表示為用例;
(3)建立需求用例模型;
(4)列出用例模型中的功能需求和用戶的性能需求;
(5)對每一個需求盡可能量化應(yīng)該做的工作;
(6)列出用戶需求與技術(shù)特性之間的關(guān)系;
(7)對需求的重要性進(jìn)行排序,并給出評分;
(8)需求評審,對技術(shù)特性相對重要度較低的需求重復(fù)上述過程進(jìn)行修正。
基于UML的QFD軟件系統(tǒng)需求定量分析模型如圖3所示。
用例作為新的需求分析技術(shù),但若項(xiàng)目組對用例的劃分、用例的描述、用例與用例之間的關(guān)系把握不好,仍會造成項(xiàng)目的失敗。所以在實(shí)際工作中,建立用例模型后,為了保證獲取正確的需求,應(yīng)采用關(guān)系矩陣的方法加以描述、迭代展開,從而提高需求分析的質(zhì)量,保證對用例的一致理解,最終獲取需求的成功。
本文提出的基于UML的QFD需求定量分析方法已用于通用多媒體播放器的界面設(shè)計、超市管理系統(tǒng)的需求分析及中小企業(yè)ERP實(shí)施規(guī)劃中,收到了很好的效果。
參考文獻(xiàn):
[1]熊偉新藤久和渡邊喜道:軟件需求定量分析及其映射的模糊層次分析法[J].軟件學(xué)報.Vol.16, No.3,2005,16(3) 427~433
[2]黃雨田聶麗琴段富何華軍:用例需求分析技術(shù)的應(yīng)用[J].太原理工大學(xué)學(xué)報.Vol.36, No.2,2005(3)24~27
[3]閆健恩王翠華林建秋王俊義:用例建模在軟件需求分析中的應(yīng)用[J].內(nèi)蒙古大學(xué)學(xué)報(自然科學(xué)版) Vol.38 No.5,2007(9)578~581
[4]劉渝妍趙卿陳媛:基于UML的老年人口生活質(zhì)量指標(biāo)體系框架模型設(shè)計[J].重慶工學(xué)院學(xué)報. 2005(10):20~25
[5]王敏:基于UML的快速原型方法的研究和實(shí)現(xiàn)-推理快速生成法IFBM[J].華東師范大學(xué)碩士論文2005(10)
[6]劉渝妍楊永發(fā):基于SQFD的軟件需求分析技術(shù)[J].計算機(jī)應(yīng)用研究增刊2007
[7]邵家駿:質(zhì)量功能展開[M].北京:機(jī)械工業(yè)出版社.2004
[8]劉渝妍:基于質(zhì)量屋的人機(jī)界面設(shè)計[J].昆明大學(xué)學(xué)報,2006(4)
[9]孫挺:基于UML的需求獲取技術(shù)研究[J].鄭州大學(xué)碩士學(xué)位論文,2002(5)