李 琪,李聚寶,劉相坤
(中國(guó)鐵道科學(xué)研究院 電子計(jì)算技術(shù)研究所,北京 100081)
軟件需求分析是軟件生存期間重要的環(huán)節(jié)。鐵路旅客綜合服務(wù)信息系統(tǒng)設(shè)計(jì)的范圍和內(nèi)容比較復(fù)雜,而且面對(duì)不同層次的用戶,所采用的服務(wù)方式也是多種多樣的,準(zhǔn)確而有效的需求分析才能實(shí)現(xiàn)效益最大化,更好的滿足用戶的需要。鐵路旅客綜合服務(wù)信息系統(tǒng)需求分析的研究作為獨(dú)立的研究項(xiàng)目,工作中先后經(jīng)歷了項(xiàng)目任務(wù)規(guī)劃、調(diào)研方案研究、對(duì)鐵路其它信息系統(tǒng)及國(guó)內(nèi)外其它行業(yè)客服系統(tǒng)的調(diào)查分析、深入現(xiàn)場(chǎng)需求調(diào)研、分析功能和非功能需求、階段評(píng)審、需求匯總討論、專家內(nèi)部評(píng)審、提交詳細(xì)需求分析報(bào)告等階段。文中從需求分析流程、需求調(diào)研、需求分析等3個(gè)方面做了深入探討和研究。
圖1 需求分析流程圖
項(xiàng)目初始階段的策劃等獲得批準(zhǔn)后,進(jìn)入分析問題、調(diào)研工作階段。需要完成國(guó)內(nèi)外現(xiàn)狀分析、調(diào)研方法研究、現(xiàn)場(chǎng)調(diào)研工作、網(wǎng)上調(diào)研工作、調(diào)研資料加工處理、調(diào)研匯總分析等任務(wù)。這一階段的分析文檔和調(diào)研報(bào)告加入到資料庫(kù),以備后續(xù)分析使用。
根據(jù)分析問題階段的結(jié)果與現(xiàn)有資料來定義需求,包括功能需求和非功能需求。功能需求描述系統(tǒng)必須提供的活動(dòng)和服務(wù),這是系統(tǒng)的最終用戶直接感受到的部分。非功能需求描述系統(tǒng)的其它特征、特點(diǎn)和約束條件,如結(jié)構(gòu)、布局、網(wǎng)絡(luò)組織、信息量、性能、接口、安全、維護(hù)等需求。此項(xiàng)任務(wù)的交付成果是定義需求的初稿,在后續(xù)工作中可能會(huì)對(duì)其做出修改。
分析功能需求能被驗(yàn)證并可以同業(yè)務(wù)人員和技術(shù)人員溝通。非功能需求分析中采用了邏輯模型表示。分析功能需求時(shí),充分利用初始階段的調(diào)研分析結(jié)果,并采用定性與定量相結(jié)合的方法給出功能需求的各項(xiàng)指標(biāo),在此基礎(chǔ)上需求排列優(yōu)先次序以及合理性研究得以繼續(xù)開展。分析需求草稿、系統(tǒng)邏輯模型加入資料庫(kù)中。
需求分析報(bào)告結(jié)構(gòu)的初步確定,可以為檢查和完善需求提供形式上的保證。非功能需求和功能需求的結(jié)合也是該階段的任務(wù),確保目標(biāo)系統(tǒng)的功能需求能夠在系統(tǒng)設(shè)計(jì)階段實(shí)現(xiàn)。需求修訂版和需求修改過程加入資料庫(kù),方便進(jìn)一步跟蹤。
需求的次序排列主要是確定需求的優(yōu)先權(quán),以便在時(shí)間、資源等方面發(fā)生沖突時(shí)做出合理控制。此項(xiàng)任務(wù)主要按照需求的相對(duì)重要性分類,如強(qiáng)制需求和非強(qiáng)制需求、關(guān)鍵需求和普通需求。此項(xiàng)任務(wù)將含優(yōu)先權(quán)的需求加入資料庫(kù)。
此項(xiàng)任務(wù)是對(duì)前面工作的總結(jié),對(duì)已有分析結(jié)果的內(nèi)部審核。邀請(qǐng)相關(guān)專家給出意見。討論的問題有的需要進(jìn)一步做調(diào)查分析,所以此項(xiàng)任務(wù)必要時(shí)會(huì)反復(fù)執(zhí)行。最后將需求分析修訂版、討論紀(jì)錄加入資料庫(kù)。
對(duì)系統(tǒng)業(yè)務(wù)需求的深入分析以及上一階段的匯總討論,必要時(shí)會(huì)重新定義項(xiàng)目范圍并修改計(jì)劃。修改后的項(xiàng)目范圍和項(xiàng)目計(jì)劃加入資料庫(kù)。
需求分析項(xiàng)目完成推動(dòng)了需求分析的最后一步,即需求評(píng)審。需求分析研究報(bào)告,作為本項(xiàng)目最終的成果物提交項(xiàng)目管理部門。在整個(gè)工作過程中精心準(zhǔn)備的資料庫(kù)中,提取所有的需求、模型、支持文檔構(gòu)成需求陳述在需求評(píng)審會(huì)上做匯報(bào)。評(píng)審意見同樣應(yīng)該加入資料庫(kù)。
科學(xué)的調(diào)研方法是調(diào)研結(jié)果是否真實(shí)反映系統(tǒng)需求的關(guān)鍵。調(diào)研數(shù)據(jù)及統(tǒng)計(jì)分析是需求分析的基礎(chǔ)和依據(jù)。
為了達(dá)到需求分析的全面性、準(zhǔn)確性和先進(jìn)性的目標(biāo),做了5個(gè)專題調(diào)研,作為需求分析的依據(jù)。包括:與旅客服務(wù)有關(guān)的鐵路信息系統(tǒng)建設(shè)情況報(bào)告、鐵路旅客需求調(diào)研分析報(bào)告、國(guó)外鐵路旅客服務(wù)信息系統(tǒng)調(diào)研與分析報(bào)告、鐵路工作人員對(duì)系統(tǒng)需求建議的分析報(bào)告、國(guó)內(nèi)服務(wù)行業(yè)客戶服務(wù)信息系統(tǒng)調(diào)研與分析報(bào)告。
分析該項(xiàng)目特點(diǎn),針對(duì)不同的調(diào)研對(duì)象,從旅客的角度、鐵路企業(yè)的角度、社會(huì)群體的角度,設(shè)計(jì)調(diào)查表。調(diào)查分為網(wǎng)上調(diào)查和現(xiàn)場(chǎng)調(diào)查兩部分,現(xiàn)場(chǎng)調(diào)查的對(duì)象包括車站旅客、列車旅客和鐵路工作人員。對(duì)旅客群體的調(diào)查,由于旅客服務(wù)要求與旅客的知識(shí)背景有較強(qiáng)的相關(guān)性,因此在調(diào)查方案中還需要確定調(diào)查的樣本大小和對(duì)旅客群體的分類方法。針對(duì)這些情況,設(shè)計(jì)了5個(gè)調(diào)查表,包括:旅客購(gòu)票服務(wù)調(diào)查表、旅客車站服務(wù)調(diào)查表、旅客列車服務(wù)調(diào)查表、車站工作人員旅客服務(wù)調(diào)查表、列車工作人員旅客服務(wù)調(diào)查表、旅客服務(wù)網(wǎng)上調(diào)查表。
在調(diào)研方案設(shè)計(jì)中,為保證調(diào)研具有代表性,按照地區(qū)等級(jí)、車站等級(jí)、線路等級(jí)、列車等級(jí),采用正交設(shè)計(jì)法來設(shè)計(jì),有效地分配調(diào)研路線,分別派人開展調(diào)研。每一組調(diào)查的有效問卷要達(dá)到規(guī)定的數(shù)量,以求能夠充分代表本類調(diào)查特點(diǎn)。共收回有效問卷11 096 份。
抽樣調(diào)查是市場(chǎng)調(diào)查中常采用的方法,抽樣的方法可分為隨機(jī)抽樣和非隨機(jī)抽樣,隨機(jī)抽樣技術(shù)主要分為:簡(jiǎn)單隨機(jī)抽樣、等距抽樣、分層抽樣、整群抽樣和多階段抽樣等。本次調(diào)研由于旅客群體結(jié)構(gòu)復(fù)雜,不同地區(qū)、職業(yè)、學(xué)歷、收入水平、出行目的等旅客對(duì)鐵路服務(wù)信息的要求不盡相同,應(yīng)采用分層抽樣的方式。
旅客乘坐火車需要經(jīng)過不同的階段,在每一階段對(duì)鐵路要求也有所不同。旅客從計(jì)劃旅行開始主要經(jīng)過選擇列車、購(gòu)票、進(jìn)站、乘車、出站等幾個(gè)環(huán)節(jié)。每一個(gè)環(huán)節(jié)的需求不同。
通過分析調(diào)查結(jié)果的重合度,確定調(diào)查結(jié)果的普適性;通過對(duì)相關(guān)性問題的反饋信息進(jìn)行相容性分析,可確定反饋信息的真?zhèn)?;采用專家評(píng)議分析,對(duì)于用統(tǒng)計(jì)方法分析的結(jié)果進(jìn)行復(fù)核。
通過設(shè)計(jì)盡可能全面的調(diào)查問卷,使用盡可能先進(jìn)、科學(xué)的統(tǒng)計(jì)分析方法,對(duì)調(diào)研結(jié)果的分析和有效利用,才能做好需求分析,也才能真正為旅客綜合服務(wù)系統(tǒng)的建設(shè)提供充分需求信息。
需求分析是在需求調(diào)查的基礎(chǔ)上抽取系統(tǒng)需求的過程,因?yàn)檎{(diào)研的結(jié)果包括方方面面的信息,為了能夠準(zhǔn)確地抽取系統(tǒng)需求,主要采用了以下分析方法。
面向?qū)ο蟮姆治龇椒ㄊ窃谛畔⒛P秃兔嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語言的概念上提煉出來的,面向?qū)ο蟮姆治龇椒ㄖ饕ㄒ幌?個(gè)步驟:標(biāo)示對(duì)象、標(biāo)示結(jié)構(gòu)、定義主題、定義屬性、定義服務(wù)。
為保證需求分析能夠從總體上把握系統(tǒng)建設(shè)目標(biāo),采用面向?qū)ο蟮姆治龇椒ㄊ欠浅V匾摹C嫦驅(qū)ο蟮姆椒ㄊ切枨蠓治鲎钕冗M(jìn)的方法之一,可以使我們自然地從需求空間的對(duì)象、對(duì)象層次和結(jié)構(gòu)、對(duì)象屬性和行為等方面來認(rèn)識(shí)需求;此外面向?qū)ο蟮姆治龇椒ǖ玫降姆治鼋Y(jié)果可直接用于設(shè)計(jì)階段,并容易得到設(shè)計(jì)人員理解。
功能分解法就是用一些步驟和子步驟劃分功能,它的策略是以先前的經(jīng)驗(yàn)為依據(jù),選擇對(duì)新系統(tǒng)所期望的處理步驟和子步驟。功能分解將問題空間映射到功能和子功能。結(jié)構(gòu)分析法將旅客服務(wù)信息系統(tǒng)映射成數(shù)據(jù)流和一系列加工。在分析系統(tǒng)時(shí)跟蹤數(shù)據(jù)的流動(dòng),并將數(shù)據(jù)流映射到以后的分析和規(guī)格說明。信息模型的主要工具是實(shí)體關(guān)系圖(E_R圖),它可以幫助捕獲問題空間的實(shí)質(zhì)內(nèi)容。
研究和實(shí)踐發(fā)現(xiàn),面向?qū)ο蠓椒ㄔ谀承﹥?nèi)容的描述和表示上也存在不足,因此在需求分析的不同層次和不同部分將充分結(jié)合結(jié)構(gòu)分析方法、信息模型法和功能分解法,使本項(xiàng)目的研究既能關(guān)注需求空間的對(duì)象及其結(jié)構(gòu)等重點(diǎn),又能關(guān)注流程、控制等細(xì)節(jié)。
需求分析的基礎(chǔ)是進(jìn)行需求調(diào)查和對(duì)調(diào)查結(jié)果的分析、歸納和總結(jié),為使分析結(jié)果更科學(xué)可靠,定量分析是非常重要的。如時(shí)間特性指標(biāo)包括:響應(yīng)時(shí)間、更新處理時(shí)間、數(shù)據(jù)轉(zhuǎn)換和處理時(shí)間等可以量化。但也不可能對(duì)調(diào)查信息進(jìn)行完全的定量分析:由于沒有現(xiàn)成的量化指標(biāo)體系可供借用,強(qiáng)行量化將有失科學(xué)性;由于需求空間的復(fù)雜性,不可能對(duì)任何問題分析都進(jìn)行量化。因此采用定量分析與定性分析相結(jié)合的方法,以定量分析為基礎(chǔ)開展本項(xiàng)目的研究工作。
需求分析是每個(gè)軟件必經(jīng)的重要環(huán)節(jié),做的怎樣直接影響軟件的設(shè)計(jì)和開發(fā),更會(huì)對(duì)軟件的使用和維護(hù)有著深遠(yuǎn)的影響。做好需求分析也是軟件從業(yè)者孜孜追求的目標(biāo)之一。本文的觀點(diǎn)和方法在鐵路旅客綜合服務(wù)信息系統(tǒng)需求分析項(xiàng)目的研究中得到實(shí)踐和應(yīng)用,希望信息系統(tǒng)的需求分析能越做越好,盡可能減少軟件開發(fā)的反復(fù)。
[1]Jeffrey L.Whitten, Lonnie D.Bentley, Kevin C.Dittman..系統(tǒng)分析與設(shè)計(jì)方法[M]. 肖 剛,孫 慧,等譯. 北京:機(jī)械工業(yè)出版社,2003.
[2]Lan K.Bray.需求工程導(dǎo)引[M]. 舒忠梅,羅文村,李衛(wèi)華,等譯. 北京:人民郵電出版社,2003.
[3]Jack R.Meredith, Samuel J.Mantel.項(xiàng)目管理—管理新視角[M]. 鄭 晟,楊 磊,李兆玉,等譯. 北京:電子工業(yè)出版社,2002.
[4]鄭人杰,殷人昆,陶永雷. 實(shí)用軟件工程[M]. 北京:清華大學(xué)出版社,1997.