伍慶龍 張天強 楊鈁
(中國第一汽車股份有限公司 新能源開發院,長春 130013)
主題詞:DOORS 動力系統 需求開發 需求管理
研究表明,大量的產品及軟件開發項目失敗是由于需求問題導致的,需求在項目成敗中所起的作用越來越重要,并引起了廣泛的關注[1]。隨著對項目開發中需求問題的不斷深入研究,以及為了滿足實際用戶需求,對產品需求開發的可靠性和有效性提出了更高的要求[2]。近年來隨著國家新能源汽車行業戰略地位的不斷提升,電動汽車的研發受到了越來越多汽車產商的重視[3],其系統需求開發也成為了核心關注問題。需求開發及管理貫穿于整個產品項目開發的過程中,而需求開發及管理可以借助專用的軟件工具,達到自動化管理的效果。本文探討了基于DOORS軟件的需求開發及管理,以某汽車項目為開發平臺,建立了動力系統需求開發庫,為后續其他需求開發提供借鑒和參考。
需求是一個項目開發的驅動力,項目開發目的是要滿足客戶的需求,只有滿足客戶需求的項目才能算是成功的項目[4]。需求開發和需求管理屬于需求工程領域,兩者體現了需求工程的不同方面,但并非完全獨立,而是相互聯系、相輔相成的。
需求開發作為一個產品項目開發的初始階段工作,起到了連接用戶需求到具體研發的橋梁作用。需求開發的目標是按時、按預算開發出滿足用戶真實需要的產品或實現具體的功能要求。需求開發一般分為問題獲取、需求分析、編寫需求規格書以及測試與驗證,如圖1所示。其中問題獲取包括業務需求、用戶需求、功能需求及非功能性的需求,需求獲取及確認是需求分析過程中最重要的活動之一[5],非功能需求又包括了性能需求、標準規范及設計約束等。

圖1 需求開發范圍
需求工程中除了需求開發之外,還有需求管理,需求管理是一種獲取、組織并記錄需求的系統化方案過程。如圖2所示,需求管理的基本內容包括變更控制、版本控制、需求跟蹤以及需求狀態跟蹤。
需求管理與需求開發之間有一定的界限,需求開發主要是基于市場、客戶、項目管理而進行的分析和編寫需求規格書,而需求管理應確保客戶與項目團隊對需求的變更、結果達成并保持一致。在需求管理過程中,需要對每一版的需求基線進行確認,并保證這些需求能被完整及正確地開發。

圖2 需求管理范圍
需求開發與管理的好壞直接影響著產品項目的開發情況,貫穿于整個產品項目之中,影響著整個產品項目的生命周期。不完整的需求捕獲和管理過程會對項目的生命周期產生多米諾骨牌的效應,需求開發與管理對產品項目開發成敗具有重大影響。如圖3所示,用戶需求的缺失會導致整個系統需求的缺失,進而導致設計單元的缺失及過程開發的反復,最終導致整個系統不能實現預期的目標。

圖3 需求重要性
一般而言,需求開發及管理會借助一些專業的軟件工具,使用合適的軟件往往可以起到事半功倍的效果,對于項目開發能否成功起到重要的作用。國內外具有代表性的需求開發管理軟件有IBM Rational DOORS、RequisitePro、Borland CaliberRM 和 統 御oBridge。
為了更清晰地認識這幾種軟件的功能,以下分別從軟件的可擴展性、需求變更管理、需求基線管理、追蹤關系顯示、角色權限控制、需求鏈接變更通知、文件導入導出等方面進行比較,如表1所示。
從表1的比較結果可以看出,基于需求開發及管理軟件常用的一些功能,DOORS更具有一些優勢。因為DOORS所具有這些優勢,目前有較多的汽車廠商在進行需求開發及管理時,會采用DOORS,同時DOORS也廣泛于航空、機械、信息技術開發等領域。以下重點講述DOORS軟件的主要功能。
在產品項目開發全生命周期中,DOORS可以覆蓋從需求、設計到測試過程的追蹤,并為追蹤關系提供更加高效的解決方案[6-7]。同時,DOORS也是一種面向管理者、開發者與最終用戶的綜合需求開發管理軟件,可優化企業內及供應鏈上的需求溝通、協作和驗證等。
DOORS軟件的主要功能如圖4所示,包括數據庫結構化管理、需求的條目化管理、需求的協作開發、需求鏈接及跟蹤管理、需求變更及影響分析、需求的歷史信息記錄、需求的屬性定義、需求訪問權限管理、數據的備份和恢復、需求的導入導出等。

表1 需求管理軟件應用功能比較

圖4 DOORS的主要功能實現分布
DOORS數據庫一般存放于公司的某一個服務器上,不同的PC端可以并行訪問,支持需求的協同開發,在一個數據庫中能夠根據實際需要創建多個項目。可以在DOORS軟件環境中建立不同的文件夾和項目來存儲和管理文檔,并建立相應的模塊及對象,對象之間可以建立鏈接關系。
DOORS數據庫的視圖與MS Windows的瀏覽器類似,對不同類型的需求可使用不同的文檔,比如不同的系統需求或者軟件需求可以在多個文檔中進行管理。
DOORS提供了與微軟辦公軟件風格相似的編輯界面,但DOORS對于需求可采用條目化的存儲方式,即可將一條需求作為數據庫中的一條單獨記錄進行存儲,這樣對需求條目的編寫、鏈接和跟蹤就很方便、快捷。
DOORS可記錄并顯示多種形式的內容,包括需求文本、圖形、表格、屬性及更改欄。同時,可支持不同需求交換格式,支持供應商和開發合作伙伴提供的需求文檔及功能板塊。
DOORS有著直觀的用戶界面,可通過桌面客戶端進行訪問、編輯、配置、分析和生成報告,DOORS也可以提供給用戶自定義的視圖,基于用戶定制的視圖界面,支持快速訪問數據,并可維護大量的管理對象需求和鏈接,以幫助需求人員、管理者或評審人員直接獲得所需信息。
DOORS提供了在線討論溝通機制,可提供一個溝通平臺給相關人員,每一個討論者可以提交帖子,系統能夠將這些帖子相關的信息自動記錄,包括提交人,提交時間和內容。在需求協作方面,DOORS提供了完整的變更建議流程和審核系統,用戶可針對需求遞交變更建議及其原因。
DOORS可創建不同需求條目之間鏈接關系,并能通過鏈接指示符跟蹤到與某條需求關聯的條目。具備與Simulink模型直接關聯的功能,可以通過需求條目追蹤到Simulink模型,也可以通過Simulink模型追蹤到相應的需求條目。
DOORS能夠對2層以上的鏈接關系進行追蹤分析,顯示所有的鏈接關系,能夠對追蹤結果的覆蓋度進行分析,找出未被覆蓋或多余的需求項,同時,還能夠將鏈接過濾出來并保留成視圖。針對鏈接關系,可以在需求項旁邊產生標記來通知鏈接的另一方需求發生了變更,并且當被通知的一方相應調整后使得該鏈接不再是可疑鏈接時,用戶能夠將此可疑鏈接恢復為正常鏈接,從而不再作為可疑鏈接顯示。
DOORS能夠自動記錄文檔中的每一個需求項的變更歷史,包括所有類型的變更,比如修改、刪除、增加、復制、移動、屬性創建及鏈接建立等變化,記錄包括誰做的,何時做的,變更前后的內容和差異標記信息。
DOORS能夠對某個需求文檔的任意兩個版本進行差異性比較,并能夠將差異情況逐條比較后顯示出來。可以對一份需求文檔打基線,也可以對一個項目中的所有需求文檔同時打基線,并將它們之間的鏈接同時保留在基線集內。
DOORS提供了一種相互協作的平臺,在軟件使用過程中,可定義不同項目開發角色及根據需要設置不同的權限,比如需求開發工程師、軟件設計工程師、測試驗證工程師、質保工程師以及項目管理人員等。如表2所示,每種角色在軟件中能獲得所需要的輸入及輸出等,以支持項目協同開發。

表2 需求開發相關角色定義
DOORS可賦予用戶多種工具與方法對需求進行管理,用戶可以靈活地把它融合到公司的管理過程中。DOORS提供了一些集成功能,可以與其他軟件工具進行接口對接。比如,DOORS可以與IBM Rational工具集成,包括IBM Rational Quality Manager、Rhapsody、Focal Point等,還可以與Microsoft Team Foundation Server(TFS)集成,以支持開發團隊創建和維護需求間的跟蹤鏈接等。
基于DOORS軟件工具,以某汽車項目為平臺,建立了動力系統需求開發庫,包括項目文件夾、模塊及對象等。現舉其中的一份需求文檔進行說明,圖5是DOORS軟件運行界面,圖6是DOORS中的一份寫好的需求文檔編輯界面。
從圖6示例界面可以看出,與PDM系統軟件不同,開發人員可以直接在DOORS軟件環境中進行編輯文字,然后保存,推送給下游。下游通過訪問、識別并提取出變更的需求,實現有針對性地獲取信息,節省時間和提高效率,同時每一個需求項在文檔中的ID編號都是唯一的,不會產生需求內容混淆的情況。

圖5 DOORS運行初始界面

圖6 基于DOORS的動力系統需求示例
利用DOORS建立的文檔編輯是比較方便的,如圖7所示,在不改變用戶原本的編輯習慣下,可以像Office word辦公軟件那樣,在文檔中直接插入相應的表格、圖表和 OLE(Object Linking and Embedding)對象。

圖7 DOORS插入表格示例
利用DOORS可以針對每一條需求創建鏈接關系,如圖8所示,比如想知道增加某條需求的原因,可以鏈接到起點進行查看。另外,所有的需求內容修改都會被記錄和儲存,以避免某一些需求內容被篡改或刪除而找不到具體責任人。

圖8 創建需求鏈接關系示例
利用DOORS軟件進行需求開發及管理時,內部允許項目共享需求,提供了基線比較功能,可對不同的基線版本進行比較。如圖9所示,對某一份需求文檔打完基線之后,可以通過不同版本的比較,識別出新版本的更改內容,使用戶可看到不同需求版本之間的區別。

圖9 修改歷史記錄儲存示例
為了更有效地進行項目的需求開發及管理,可以借助專業的需求開發及管理軟件工具,基于DOORS軟件,建立了動力系統需求開發庫,服務于具體項目起到了較好的結果,節省時間,提高效率,實現了自動化和規范化開發及管理。
基于建立的需求開發庫,后續可進行需求版本的不斷迭代升級。首先是推動精細化的需求設計,對已建立的項目需求開發庫進行持續完善,支撐多項目開發,讓其覆蓋面更廣;其次是豐富需求開發庫,結合整車系統特性,引申出相應的功能需求開發,進行多維度的設計及優化;最后是基于DOORS提供的一些軟件接口,探索與其他軟件的對接關系和接口集成,進一步完善已有的項目平臺需求開發庫。