李 琪,李聚寶,劉相坤
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
軟件需求分析是軟件生存期間重要的環節。鐵路旅客綜合服務信息系統設計的范圍和內容比較復雜,而且面對不同層次的用戶,所采用的服務方式也是多種多樣的,準確而有效的需求分析才能實現效益最大化,更好的滿足用戶的需要。鐵路旅客綜合服務信息系統需求分析的研究作為獨立的研究項目,工作中先后經歷了項目任務規劃、調研方案研究、對鐵路其它信息系統及國內外其它行業客服系統的調查分析、深入現場需求調研、分析功能和非功能需求、階段評審、需求匯總討論、專家內部評審、提交詳細需求分析報告等階段。文中從需求分析流程、需求調研、需求分析等3個方面做了深入探討和研究。

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