靳緒果
【摘要】詳細介紹了軟件需求的過程:需求工程分為需求開發和需求管理兩個階段。需求開發又分為需求獲取、需求分析、編寫規格說明書和需求驗證,其中需求獲取是該階段的一個最重要的任務;需求分析時使用模型來描述,以獲取用戶更明確的需求;軟件需求規格說明闡述一個軟件系統必須提供的功能和性能以及它所要考慮的限制條件;一般說來,應該從四個方面對軟件需求進行驗證,即一致性、完整性、現實性和有效性。需求管理就是對需求變更控制的過程。給出了企業人事信息管理系統實例,來簡單說明需求分析的過程。
【關鍵詞】軟件工程 軟件需求 需求工程 需求開發 需求管理
【中圖分類號】TP311.5 【文獻標識碼】A 【文章編號】2095-3089(2015)06-0181-02
軟件工程師所需解決的問題往往十分復雜,了解問題的性質可能是非常困難的,尤其當系統是全新的時候。
1.綜述
軟件工程中包含需求、設計、編碼和測試四個階段,其中需求工程是軟件工程第一個也是很重要的一個階段,這個階段的任務仍然不是具體地解決問題,而是準確地確定“為了解決這個問題,目標系統必須做什么”,主要是確定目標系統必須具備哪些功能。本文以企業人事信息管理系統為例詳細介紹了需求工程的構成和進行方法。
2.需求的標準
定義需求標準有所不同,但在思想上是相同的,都是為了保證項目的順利進行。一般的標準為:明確(Clear)、完整(Complete)、一致(Consistent)、可測試(Testable),還有可跟蹤、可修改等等。
明確:目前大多數的需求分析采用的仍然是自然語言,自然語言對需求分析最大的弊病就是它的二義性。所以對需求分析中采用的語言應該做某些限制盡量采用主語+動作的簡單表達方式。還有,不要使用計算機術語。需求分析最重要的是和用戶溝通,可是用戶多半不是計算機的專業人士,如果在需求分析中使用了行話,就會造成用戶理解上的困難。
完整:需求的完整性是非常非常重要的,要做到需求的完整性是很艱難的一件事情,它涉及到需求分析過程的各方各面,貫穿了整個過程,從最初的計劃制定到最后的需求評審。
一致:用戶需求必須和業務需求一致,功能需求必須和用戶需求一致。嚴格的遵守不同層次間的一致性關系,就可以保證最后開發出來的軟件系統不會偏離最初的實現目標。
可測試:需求的幾項標準都是為了保證需求的可測試性,只有系統的所有需求是可以被測試的,才能夠保證軟件始終圍繞著用戶的需要,保證軟件系統是成功的。
需求工程分為了需求開發和需求管理兩個階段:下面就以這兩個階段說明:
3.需求開發
需求開發又分為需求獲取、需求分析、編寫規格說明書和需求驗證。以下列出和講解分析常規的步驟,當然應按照項目的大小和特點等實際情況我們應該自己確定合適的步驟。
3.1需求獲取:
這是該階段的一個最重要的任務。以下為獲取用戶需求需要執行的活動。
●了解客戶方的所有用戶類型以及潛在的類型。然后,根據他們的要求來確定系統的整體目標和系統的工作范圍。
●對用戶進行訪談和調研。交流的方式可以是會議、電話、電子郵件、小組討論、模擬演示等不同形式。需要注意的是,每一次交流一定要有記錄,對于交流的結果還可以進行分類,便于后續的分析活動。例如,可以將需求細分為功能需求、非功能需求(如響應時間、平均無故障工作時間、自動恢復時間等)、環境限制、設計約束等類型。
●需求分析人員對收集到的用戶需求做進一步的分析和整理。
●需求分析人員將調研的用戶需求以適當的方式呈交給用戶方和開發方的相關人員。大家共同確認需求分析人員所提交的結果是否真實地反映了用戶的意圖。
3.2需求分析
需求分析是軟件定義時期中很重要的一個階段,它的基本任務是準確地回答“系統必須做什么?”這個問題。在很多情形下,分析用戶需求是與獲取用戶需求并行的,主要通過建立模型的方式來描述用戶的需求,為客戶、用戶、開發方等不同參與方提供一個交流的渠道。這些模型是對需求的抽象,以可視化的方式提供一個易于溝通的橋梁。用戶需求的分析與獲取用戶需求有著相似的步驟,區別在于分析用戶需求時使用模型來描述,以獲取用戶更明確的需求。
用于需求建模的方法有很多種,最常用的包括數據流圖(DFD)、實體關系圖(ERD)和用例圖(Use Case)三種方式。DFD作為結構化系統分析與設計的主要方法,已經得到了廣泛的應用,DFD尤其適用于MIS系統的表述。DFD使用四種基本元素來描述系統的行為,過程、實體、數據流和數據存儲。DFD方法直觀易懂,使用者可以方便地得到系統的邏輯模型和物理模型,但是從DFD圖中無法判斷活動的時序關系。
ERD方法用于描述系統實體間的對應關系,需求分析階段使用ERD描述系統中實體的邏輯關系,在設計階段則使用ERD描述物理表之間的關系。需求分析階段使用ERD來描述現實世界中的對象。ERD只關注系統中數據間的關系,而缺乏對系統功能的描述。如果將ERD與DFD兩種方法相結合,則可以更準確地描述系統的需求。
3.3編寫規格說明書
項目視圖和范圍文檔包含了業務需求,而使用實例文檔則包含了用戶需求。你必須編寫從使用實例派生出的功能需求文檔,還要編寫產品的非功能需求文檔,包括質量屬性和外部接口需求。軟件需求規格說明闡述一個軟件系統必須提供的功能和性能以及它所要考慮的限制條件,它不僅是系統測試和用戶文檔的基礎,也是所有子系列項目規劃、設計和編碼的基礎。它應該盡可能完整地描述系統預期的外部行為和用戶可視化行為。
采用軟件需求規格說明模版:采用需求規格說明書模板在你的組織中要為編寫軟件需求文檔定義一種標準模板。該模板為記錄功能需求和各種其它與需求相關的重要信息提供了統一的結構。注意,其目的并非是創建一種全新的模板,而是采用一種已有的且可滿足項目需要并適合項目特點的模板。
3.4需求驗證
需求分析階段的工作結果是開發軟件系統的重要基礎,大量統計數字表明,軟件系統中15%的錯誤起源于錯誤的需求。為了提高軟件質量,確保軟件開發成功,降低軟件開發成本,一旦對目標系統提出一組要求之后,必須嚴格驗證這些需求的正確性。一般說來,要按以下步驟進行需求驗證:
1)審查需求文檔;2)依據需求編寫測試用例;3)編寫用戶手冊;4)確定合格的標準。
4.需求管理
需求開發的結果應該有項目視圖和范圍文檔、使用實例文檔、軟件需求規格說明及相關分析模型。經評審批準,這些文檔就定義了開發工作的需求基線。這個基線在客戶和開發人員之間就構筑了計劃產品功能需求和非功能需求的一個約定。需求約定是需求開發和需求管理之間的橋梁,需求管理包括在工程進展過程中維持需求約定集成性和精確性的所有活動。
5.企業人事管理系統
5.1企業人事管理系統概述
企業人事管理系統是針對企業人事方面的大量業務處理工作而開發的管理軟件。根據用戶的要求,實現人員基本情況管理、工資管理、和考勤管理等幾個方面的功能。用戶通過輸入工資、考勤、職工履歷等基本信息,由系統自行生成相應的統計數據及各類統計報表以供用戶查詢、打印。
5.2系統功能分析
系統開發的總體任務是實現企業人事信息關系的系統化、規范化和自動化。
系統功能分析是在系統開發的總體任務的基礎上完成的。經過按照以上分析過程進行分析,分析出企業人事信息管理需要完成功能。
6.總結
以上詳細介紹了軟件需求分析過程。軟件工程中包含需求、設計、編碼和測試四個階段,其中需求工程是軟件工程第一個也是很重要的一個階段,要想做好一個項目,必須先做好需求分析,需求工程分為了需求開發和需求管理兩個階段:需求開發又分為需求獲取、需求分析、編寫規格說明書和需求驗證。需求管理就是對需求變更控制的過程。通過介紹企業人事信息管理系統的需求分析階段,更好地說明了需求分析過程。
參考文獻:
[1]張海藩.軟件工程導論.清華大學出版社 1998