姚 剛 郭天杰
(海軍航空工程學(xué)院 煙臺(tái) 264001)
在軟件開(kāi)發(fā)過(guò)程中,需求分析是最開(kāi)始的工作,是整個(gè)軟件開(kāi)發(fā)的基礎(chǔ),對(duì)軟件的質(zhì)量起決定作用。需求分析如果做得不夠詳細(xì)或者是偏離用戶(hù)需求的話(huà),往往會(huì)給項(xiàng)目帶來(lái)滅絕性的災(zāi)難。眾所周知,越到開(kāi)發(fā)的后期,為糾正或彌補(bǔ)錯(cuò)誤所付出的代價(jià)就越大,而且這個(gè)遞增不是線(xiàn)性的,是呈幾何級(jí)數(shù)增長(zhǎng)的。因此必須在開(kāi)發(fā)初期就對(duì)需求分析的中間產(chǎn)品進(jìn)行評(píng)價(jià)。通過(guò)評(píng)價(jià)將問(wèn)題發(fā)現(xiàn)并杜絕在軟件開(kāi)發(fā)的早期,將大大減少由于錯(cuò)誤或不合理因素而導(dǎo)致的花費(fèi),節(jié)省軟件開(kāi)發(fā)和維護(hù)耗費(fèi),避免或減少可能的問(wèn)題或風(fēng)險(xiǎn)。在需求分析階段,開(kāi)發(fā)組織產(chǎn)生的中間產(chǎn)品是需求文檔,需求文檔的好壞直接決定了需求的質(zhì)量,有必要建立一個(gè)需求文檔評(píng)價(jià)方法,定量的評(píng)價(jià)需求,從而更好地指導(dǎo)對(duì)需求文檔的改進(jìn)。
需求分析的主要目的是對(duì)軟件需求定義進(jìn)行分析,解決其中存在的二義性和不一致性,并以一種系統(tǒng)化的形式準(zhǔn)確地表達(dá)用戶(hù)的需求,形成所謂的需求分析中間產(chǎn)品,即軟件需求規(guī)格說(shuō)明書(shū)。需求規(guī)格說(shuō)明書(shū)是用戶(hù)和開(kāi)發(fā)人員之間交流的橋梁,是設(shè)計(jì)和編碼的基礎(chǔ),同時(shí)也是測(cè)試和驗(yàn)收的依據(jù)。需求規(guī)格說(shuō)明書(shū)精確地闡述一個(gè)軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件,應(yīng)該盡可能完整地描述系統(tǒng)預(yù)期的外部行為和用戶(hù)可視化行為,除了設(shè)計(jì)和實(shí)現(xiàn)上的限制,還應(yīng)該包括設(shè)計(jì)、構(gòu)造、測(cè)試或工程管理的細(xì)節(jié)。本文所述軟件需求文檔的質(zhì)量屬性來(lái)源于兩個(gè)方面:
?GB 9385-88[1]計(jì)算機(jī)軟件需求說(shuō)明編制指南規(guī)定的需求規(guī)格說(shuō)明書(shū)應(yīng)具有的特性(標(biāo)準(zhǔn)屬性)。
?依據(jù)開(kāi)發(fā)者經(jīng)驗(yàn)積累的對(duì)需求文檔質(zhì)量有重要影響的因素(經(jīng)驗(yàn)屬性)。
計(jì)算機(jī)軟件需求說(shuō)明編制指南為軟件需求的實(shí)踐提供了一個(gè)規(guī)范化的方法,主要描述了軟件需求說(shuō)明必需的內(nèi)容和質(zhì)量。根據(jù)標(biāo)準(zhǔn),需求文檔的重要質(zhì)量屬性包括:無(wú)歧義性、完整性、可驗(yàn)證性、一致性、可修改性、可追蹤性、運(yùn)行和維護(hù)階段的可使用性。
2.1.1 無(wú)歧義性
目前大多數(shù)的需求分析采用的仍然是自然語(yǔ)言,自然語(yǔ)言對(duì)需求分析最大的弊病就是它的二義性。無(wú)歧義性是指,當(dāng)且僅當(dāng)軟件需求說(shuō)明書(shū)對(duì)每一個(gè)需求只有一種解釋。包括以下兩點(diǎn):
1)要求最終產(chǎn)品的每一個(gè)特性用某一術(shù)語(yǔ)描述;
2)若某一術(shù)語(yǔ)在某一特殊的行文中使用時(shí)具有多種歧義,那么對(duì)該術(shù)語(yǔ)的每種含義做出解釋并指出其適用場(chǎng)合。
2.1.2 完整性
每一項(xiàng)需求都必須將所要實(shí)現(xiàn)的功能描述清楚,以使開(kāi)發(fā)人員獲得設(shè)計(jì)和實(shí)現(xiàn)這些功能所需的所有必要信息,它主要包括以下幾點(diǎn):
1)軟件需求說(shuō)明包括全部有意義的要求,無(wú)論是關(guān)系到功能、性能、設(shè)計(jì)約束,還是關(guān)系到屬性或外部接口方面的需求;
2)對(duì)所有可能出現(xiàn)的輸入數(shù)據(jù)的響應(yīng)予以定義,要對(duì)合法和非合法輸入值的響應(yīng)做出規(guī)定;
3)需求分析中沒(méi)有任何內(nèi)容被標(biāo)為“待定”。
2.1.3 可驗(yàn)證性
當(dāng)且僅當(dāng)SRS中描述的每一個(gè)需求都是可以驗(yàn)證的,該SRS才是可以驗(yàn)證的;當(dāng)且僅當(dāng)在某一性能價(jià)格比可取的有限處理過(guò)程,人或機(jī)器能通過(guò)該過(guò)程檢查軟件產(chǎn)品能否滿(mǎn)足需求時(shí),才稱(chēng)這個(gè)需求是可以驗(yàn)證的。
2.1.4 一致性
需求分析中陳述的需求沒(méi)有與其它軟件需求或高層(系統(tǒng)業(yè)務(wù))需求發(fā)生沖突,而且需求分析中陳述的各個(gè)需求之間不發(fā)生沖突。
2.1.5 可修改性
如果一個(gè)軟件需求說(shuō)明的結(jié)構(gòu)和風(fēng)格在需求有必要改變時(shí)是易于實(shí)現(xiàn)的、完整的、一致的,那么這個(gè)軟件需求說(shuō)明就是可以修改的。可修改性要求其具備以下條件:
1)具有一個(gè)有條不紊的易于使用的內(nèi)容組織,具有目錄表、索引和明確的交叉引用表;
2)避免冗余,即同一需求不能在軟件需求說(shuō)明書(shū)中出現(xiàn)多次。如果同一需求出現(xiàn)多次,在修改時(shí)只修改了一處,則軟件需求說(shuō)明書(shū)會(huì)變的不一致。
2.1.6 可追蹤性
如果每一個(gè)需求的源流是清晰的,在產(chǎn)生和改變文檔時(shí),可以方便地引證每一個(gè)需求,則該軟件需求說(shuō)明是可追蹤的。
2.1.7 運(yùn)行和維護(hù)階段的可使用性
需求文檔對(duì)運(yùn)行和維護(hù)的過(guò)程起重要作用。維護(hù)常常是由與原來(lái)無(wú)聯(lián)系的人來(lái)進(jìn)行,需求文檔是理解原先開(kāi)發(fā)者意圖的最好的材料,只有需求文檔對(duì)于運(yùn)行和維護(hù)階段可使用,才能使維護(hù)工作容易進(jìn)行。
隨著軟件工程的發(fā)展,軟件開(kāi)發(fā)人員總結(jié)了關(guān)于文檔質(zhì)量的重要因素:文檔的依從性和及時(shí)性。需求文檔要遵循國(guó)家相關(guān)標(biāo)準(zhǔn)的規(guī)定,并且及時(shí)的分發(fā)給相關(guān)的人員,才能更好地發(fā)揮需求文檔的重要作用。
2.2.1 需求規(guī)格說(shuō)明書(shū)的依從性
需求規(guī)格說(shuō)明書(shū)的編寫(xiě)要遵循國(guó)家軟件工程標(biāo)準(zhǔn)和相關(guān)行業(yè)的規(guī)范,開(kāi)發(fā)方可以根據(jù)項(xiàng)目特點(diǎn)進(jìn)行適當(dāng)?shù)馗?。需求?guī)格說(shuō)明書(shū)的規(guī)范性為記錄功能需求和各種其它與需求相關(guān)的重要信息提供了統(tǒng)一的結(jié)構(gòu),便于各類(lèi)讀者的使用和查閱。
2.2.2 及時(shí)性
在軟件開(kāi)發(fā)過(guò)程中形成的各種文檔都有其作用時(shí)效,因此文檔如果不及時(shí)的編制完成,其將失去其存在的意義。有些文檔應(yīng)在系統(tǒng)某個(gè)階段進(jìn)行之前完成,有些文檔必須在系統(tǒng)某個(gè)階段開(kāi)始后進(jìn)行。開(kāi)發(fā)文檔必須與系統(tǒng)生產(chǎn)、使用、維護(hù)同步進(jìn)行。需求分析階段的需求規(guī)格說(shuō)明要在概要設(shè)計(jì)之前完成,是概要設(shè)計(jì)的依據(jù)文檔,如果分析規(guī)格說(shuō)明產(chǎn)生是在概要設(shè)計(jì)階段及以后,則需求規(guī)格說(shuō)明書(shū)就失去其存在的意義。
模糊綜合評(píng)價(jià)[3]是基于模糊集合理論的一種具體應(yīng)用方法,是對(duì)具有多種屬性的事物,或總體優(yōu)劣受多種因素影響的事物做出一個(gè)綜合這些屬性或因素的合理的總體評(píng)價(jià)。
模糊綜合評(píng)價(jià)的基本思想是利用模糊線(xiàn)性變換原理和最大隸屬度原則。模糊評(píng)價(jià)中每一個(gè)評(píng)價(jià)因素由低一層次的若干因素決定,每一因素的評(píng)價(jià)是低一層次的多因素綜合評(píng)判。這樣由低到高逐層確定權(quán)重并根據(jù)該級(jí)別的綜合評(píng)判,將所得結(jié)果構(gòu)造出上一層次的模糊矩陣,進(jìn)行上一層次的綜合評(píng)判,考慮與被評(píng)價(jià)事物相關(guān)的各個(gè)因素,最終得出對(duì)評(píng)價(jià)對(duì)象的綜合評(píng)價(jià)結(jié)果。在模糊綜合評(píng)判方法中,模糊綜合評(píng)價(jià)的一般步驟如下:1)建立因素集;2)建立評(píng)價(jià)集;3)確定權(quán)重集;4)確定隸屬度函數(shù);5)模糊綜合評(píng)價(jià);6)評(píng)價(jià)結(jié)果分析。
由于需求文檔的復(fù)雜,評(píng)價(jià)者對(duì)需求文檔質(zhì)量的認(rèn)識(shí)不完全,而評(píng)價(jià)結(jié)果依賴(lài)于評(píng)價(jià)者的個(gè)人知識(shí)、經(jīng)驗(yàn)和感覺(jué),因此具有一定的非客觀性,故運(yùn)用模糊理論對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià)分析是合適的。為了綜合考慮各種質(zhì)量屬性對(duì)需求文檔評(píng)價(jià)的影響,利用上述所列的質(zhì)量屬性對(duì)需求文檔質(zhì)量的評(píng)價(jià)進(jìn)行評(píng)價(jià),將模糊評(píng)價(jià)方法應(yīng)用于需求文檔的評(píng)價(jià)中,使需求文檔質(zhì)量評(píng)價(jià)的結(jié)論更加客觀和可信。模糊評(píng)價(jià)模型建立的具體步驟如下:
1)建立因素集
將上面所述的質(zhì)量屬性,作為模糊評(píng)價(jià)方法的因素集。評(píng)價(jià)因素集可以確定為U={U1,U2},評(píng)價(jià)因素集各評(píng)價(jià)指標(biāo)的關(guān)系如圖1所示。
圖1 評(píng)價(jià)因素關(guān)系
2)建立評(píng)價(jià)集
在需求文檔評(píng)價(jià)中,將評(píng)價(jià)效果的好壞分為四個(gè)等級(jí),即優(yōu) 、良 、合格和不合格 ,分別用 v1、v2、v3、v4表示,這樣評(píng)價(jià)集為:V={v1,v2,v3,v4};
3)權(quán)重集的確定
在模糊綜合評(píng)價(jià)中,因素重要程度模糊集 A的確定是否恰當(dāng)直接影響評(píng)價(jià)的結(jié)果,因此選擇合適的權(quán)重集是非常重要的。權(quán)重集的確定方法主要有關(guān)鍵特征調(diào)查法、Delphi法、層次分析法、統(tǒng)計(jì)加權(quán)法等。其中Delphi法是利用專(zhuān)家集體智慧來(lái)確定各因素在評(píng)價(jià)問(wèn)題或決策問(wèn)題中的重要程度系統(tǒng)的有效方法之一,也是確定權(quán)重常用方法之一。本文采用Delphi法依次確定一級(jí)指標(biāo)和二級(jí)指標(biāo)的權(quán)重,得 A={0.65,0.35},A1={0.17,0.17,0.13,0.13,0.14,0.15,0.11},A2={0.45,0.55}。
4)確定隸屬度函數(shù)
本文采用指派法確定隸屬度函數(shù),結(jié)合實(shí)踐經(jīng)驗(yàn)最終確認(rèn)其模糊分布為梯形分布。函數(shù)的具體表示如下:
5)需求文檔的模糊評(píng)價(jià)
在需求文檔各指標(biāo)評(píng)價(jià)完成后,根據(jù)以上各指標(biāo)的隸屬度函數(shù)可以求出評(píng)價(jià)指標(biāo)U對(duì)評(píng)價(jià)集V中各元素的隸屬度,將各因素評(píng)價(jià)集的隸屬度先進(jìn)行一級(jí)評(píng)價(jià),各評(píng)價(jià)矩陣分別為:
依據(jù)模糊線(xiàn)性變換的公式得一級(jí)模糊評(píng)價(jià)結(jié)果:
得R=A?R=(b1,b2,b3,b4),B即為模糊評(píng)價(jià)結(jié)果。
6)評(píng)價(jià)結(jié)果分析
從上所述的模糊評(píng)判法可知,模糊綜合評(píng)判的最終結(jié)果是一個(gè)數(shù)值向量,還需要對(duì)這個(gè)數(shù)值向量進(jìn)行評(píng)價(jià)判斷和分析,才能得到定性的結(jié)論。在分析,本文采用的方法是在評(píng)價(jià)時(shí)經(jīng)常使用的最大隸屬度法。
應(yīng)用上述所述的模糊評(píng)價(jià)模型,對(duì)某教務(wù)信息管理系統(tǒng)的需求文檔進(jìn)行評(píng)價(jià),經(jīng)專(zhuān)家評(píng)審討論,需求文檔各項(xiàng)指標(biāo)的分值如下:
U11 U12 U13 U14 U15 U16 U17 U21 U22 90 80 75 83 90 70 80 92 86
將各評(píng)價(jià)指標(biāo)值代入相應(yīng)的隸屬度函數(shù)求出各評(píng)價(jià)指標(biāo)相對(duì)于評(píng)價(jià)集的隸屬度,得到模糊關(guān)系矩陣如下:
根據(jù)上述所求的權(quán)重和模糊關(guān)系矩陣進(jìn)行一級(jí)模糊評(píng)價(jià)得:
利用最大隸屬度原則,該需求文檔的評(píng)價(jià)結(jié)果為:良。從指標(biāo)得分表中可知除一致性和可追蹤性指標(biāo)的得分稍低外,其他各項(xiàng)指標(biāo)的得分普遍較高,模糊評(píng)價(jià)結(jié)論很好地反映了需求文檔的質(zhì)量狀況。
本文建立了一個(gè)評(píng)價(jià)需求文檔質(zhì)量的評(píng)價(jià)指標(biāo)體系,然后將模糊評(píng)價(jià)方法運(yùn)用到文檔的評(píng)價(jià)中。通過(guò)實(shí)例分析,可以得到模糊評(píng)價(jià)方法,可以很好地反映需求文檔的質(zhì)量,對(duì)于今后需求文檔質(zhì)量的評(píng)價(jià)工作起到一定的指導(dǎo)規(guī)范作用。
[1]中國(guó)標(biāo)準(zhǔn)出版社.計(jì)算機(jī)軟件工程國(guó)家標(biāo)準(zhǔn)匯編[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2007
[2]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社
[3]肖剛,古輝,等.實(shí)用軟件文檔寫(xiě)作[M].北京:清華大學(xué)出版社
[4]徐永雄.信息系統(tǒng)工程監(jiān)理效果的模糊綜合評(píng)價(jià)研究與應(yīng)用[D].合肥:合肥工業(yè)大學(xué)碩士論文
[5]周津慧,王宗,等.基于模糊評(píng)價(jià)方法的軟件質(zhì)量評(píng)價(jià)研究[J].系統(tǒng)工程與電子工程,2004(7):988~991
[6]文斌,劉長(zhǎng)青,等.軟件工程與軟件文檔寫(xiě)作[M].北京:清華大學(xué)出版社
[7]曲曉英,陳雪松,等.ERP軟件質(zhì)量模糊綜合評(píng)價(jià)方法[J].計(jì)算機(jī)工程,2006(9):81~82
[8]楊俊,景疆.軟件質(zhì)量度量技術(shù)淺談[J].信息技術(shù),2005(11):150~152
[9]熊偉,新藤久和,渡邊喜道.軟件需求定量分析及其映射的模糊層次分析法[J].軟件學(xué)報(bào),2005(3):427~433
[10]劉軍.需求工程的質(zhì)量評(píng)價(jià)準(zhǔn)則[J].計(jì)算機(jī)應(yīng)用研究,2003(4):6~8