摘 要:目前 ,電力行業應用軟件需求研究常常流于形式。由于缺乏用戶參與的合理機制、缺乏對需求文檔資料的有效管理、缺乏用戶與開發人員之間有效的交流方法,使需求研究效率低、效果差。為改變這種狀況 ,需要引入需求工程的方法 ,發揮用戶在需求研究中的主導作用 ,并對需求過程進行必要的管理。本文結合本單位各應用軟件的成功建設經驗,探討應用軟件建設過程中需求工程與用戶的關系問題。
關鍵詞:需求工程;需求獲取;需求分析;需求表述;需求評審;需求管理
中圖分類號:TM732 文獻標識碼:A
1、前言
需求工程是從軟件工程中發展起來的,是軟件工程的一個組成部分,也是軟件生命周期的第一個階段。雖然大家都知道需求對于整個軟件生命周期的重要性,但對它的研究往往沒有軟件工程的其它部分研究那么深入。近年來,電力行業軟件信息化建設步伐越來越快,投入也越來越大,各類應用軟件需求不斷增加,系統規模越來越大,復雜程度也越來越高。面對如此龐大且不斷變化的需求,軟件開發人員越來越感到難以把握,各級電力單位部門對“已完成”的系統不滿意的現象時有發生,系統的建設往往達不到預期的目標,需求問題已經成為制約電力應用軟件發展的重要因素。
2、需求工程的概念
在CMMI中對于需求工程主要分為兩大方面:需求開發和需求管理。其中需求開發又可以細分為需求獲取、需求分析、需求表述和需求確認。
需求獲取:就是與用戶共同分析研究用戶的工作過程,協助用戶搞清楚他們想要的東西,并準確記錄下來。
需求分析:軟件開發人員與用戶一起對需求進行分析、綜合、定義、建模的過程,其目的是從用戶提供的各式各樣的需要說明中,提取精華和實質性的內容,找出相應的軟件解決方法。
需求表述:是一個將軟件需求進行規格化說明的過程。
需求確認:是一個驗證需求的過程,對需求規格說明的正確性和可行性進行分析和檢驗,并使用戶和軟件開發人員對于需求規格說明達成共識。
需求管理:對用戶不斷增加和變化的需要進行管理,通過對不斷變化的需求進行管理,來確定軟件發展的策略等。
3、電力信息化建設的成功經驗
本單位在最近幾年的信息化建設工作中,吸取了以前項目建設的教訓,充分認識到了需求工程對整個軟件工程乃至信息化建設所發揮到的巨大作用,并通過各種有效的手段來保證,獲得了良好的效果,信息化水平在兩年內得到了很大的提升,實現了預期目標,并獲得了上級單位的好評。
本文將從需求工程五個方面,就如何充分發揮需求工程在系統建設中的作用進行分析和探討。
3.1建立強有力的項目組織機構是重要前提
很多軟件的失敗,很大的因素就是沒有獲取到真正的需求。很多軟件開發人員抱怨找不到對應的用戶來了解需求,歸根結底還是用戶對軟件的重視程度不夠。要提高大家對軟件的重視程度,靠宣傳、靠提升意識是遠遠不夠的,更重要的還是要從制度層面去保證。公司在信息化項目管理辦法中就確定了每個項目必須成立領導工作組、專業工作組和開發工作組三個組織,通過這三級組織機構的設立,落實了人員的職責,確保了項目各項工作,特別是需求調研工作的順利開展。
3.2與軟件開發人員一起分析需求
通過建立項目組織確保用戶需求的獲取后,最關鍵的還是對需求的分析,將用戶的需求轉變成軟件開發的需求。很多軟件公司的做法是做完需求獲取后,就自己進行需求分析,但往往由于理解的不一致、不透徹,導致分析出的軟件需求與當初用戶提出的需求差別很大。在CMMI1.2需求開發域中也明確提出要“在需求開發和分析時,納入相關干系人的參與,藉此使他們了解需求的演進過程”,所以用戶的作用至關重要。
3.3需求確認保證軟件應用
需求以規格化的方式描述出來后,要通過評審、功能驗證等方式來對需求進行確認,確保不發生偏差。本單位主要通過以下三種手段進行保證:
(1)對需求進行評審。需求評審會被看成是整個項目最重要的會議之一,在項目管理辦法中也明確定義了會議要求。會前組織者會把待評審的材料發給各個評審專家,評審專家在會前仔細閱讀需求并標注問題。在評審會上大家一起對問題進行確認,會后還要對問題進行跟蹤,使得很多需求上的問題在進入開發之前就被發現,有效地降低了成本,提高了效率。
(2)及時進行演示。在開發過程中每完成一個模塊的開發,就盡快給業務人員進行演示。通過演示,業務人員能更直觀的對系統進行了解,盡早地發現其中的問題,開發人員也能盡早對其進行修改。
(3)進行功能驗證。在系統試運行之前,組織各業務專家一起再對整個系統進行嚴格的功能驗證,檢查功能是否滿足需求,避免了系統上線后再進行頻繁修改而導致的大量成本增加。
3.4共同管理需求
需求發生變化是正常的,系統不會一成不變。對待需求變更要采取歡迎但謹慎的態度,需求變更一定要受控。在完成需求變更收集后,會有專門的人員來統一整理。再由開發商和信息部門一起評估這些變更對項目范圍、工期、成本等因素的影響,將評估影響結果提交給由業務部門領導、專家和開發商代表一起組成的項目裁決組來裁決是否執行這項變更。對于一些想法很好但短期無法實現的需求,會納入需求庫中,為將來項目建設提供有效地需求支撐。
通過這些措施,既保證了系統的穩定,又提高了系統使用人員的積極性,大家都可以提出各類意見,使得系統實用化程度不斷提高,能真正地對工作有幫助。
4、結束語
本單位在近幾年信息化建設中,通過引入需求工程取得了較好效果,相關的措施和做法或許不一定完美,但都充分考慮了自身在人員、環境和業務方面的特點。如何更進一步挖掘需求工程乃至軟件工程對信息化建設的指導作用,還需要我們深入研究。
作者簡介:黃劍男 (1986—) ,廣西南寧人,本科,學士,項目管控專員,研究方向:企業管理及項目管理。