第一部分:緒論工具
軟件的發展經歷了以「機器」「應用」「企業」爲中心的三個階段。這也是軟件從一開始的新型項目到逐漸完整的一個製做體系造成的過程。其中關於需求規格說明和需求管理的缺陷是軟件開發中最多見的兩類重要問題。而致使需求問題的緣由中,未能很好的理解和掌握。應用型軟件的模擬特性以及由此而產生的一系列影響的要求。軟件能夠分爲三種類別:面向專業用戶的純工具型軟件、面向普通用戶的純工具型軟件和應用型軟件。應用型軟件正確的工做基礎是具備包括目的性、正確性和顯示可理解性的模擬性。需求問題的具體緣由有非技術性和社會性因素重視不足的態度問題,傳統需求分析方法的缺陷的外部問題。性能
需求工程是全部需求處理活動的總和,它收集信息、分析問題、整合觀點、記錄需求並驗證其正確性,最終反映軟件被應用後與其環境互動造成的指望效應。需求工程包括需求開發(需求獲取、需求分析、需求規格說明、需求驗證)和需求管理兩個方面。需求工程師須要具有認知學和社會學等方面好比認知心理學,人類學,社會學,語言學,哲學知識等理論指導和專業、分析、交流、觀察、建模、寫做、創新和協調等技能。spa
當軟件系統被用來解決某些問題時,這些問題的問題集合域就是問題域,而軟件系統經過影響問題域可以幫助人們解決問題成爲解系統。經過映射創建的共同知識就是問題域和解系統之間的共享現象,也就是二者之間實現交互和互相影響的途徑與接口。接口
需求分爲功能需求、性能需求、質量屬性、對外接口。約束。功能需求包括業務需求、用戶需求和系統(級)需求。其餘四項可劃爲非功能需求。其中性能需求常見的包括速度、容量、吞吐量、負載和實時性。約束主要有系統開發及運行的環境、問題域內的相關標準和商業規則。優秀的需求應該具有完整性、正確性、精確性、可行性、必要性、無歧義和可驗證的特性。需求並無反映用戶的真實須要、模糊和歧義的需求、信息遺漏、沒必要要的需求、不切實際的指望等是常見的需求定義錯誤。開發
從這部分的需求緒論能夠看到許都需求方面的總體定義,但並無具體的步驟指導。從總體定義上來看,需求工程是一個龐大而繁瑣的過程,如何抓住軟件的功能重點是需求工程的最終目的。文檔
第二部分:需求獲取原型
經過第一部分的理論知識,需求工程的第一步行動就是需求獲取。需求獲取的困難有用戶和開發人員的背景不一樣和立場不一樣,普通用戶缺少歸納性綜合性的表述能力,用戶存在認知困難,用戶越俎代庖和缺少用戶參與等幾個方面。每一個方面又是具體而複雜的。對於需求獲取必定要有一個完整的規劃和充足的耐心。獲取信息的內容包括需求、問題域描述、環境與約束。獲取信息的來源包括涉衆、硬數據、相關產品、重要文檔、相關技術標準和法規。獲取信息的方法包括傳統的問卷調查等,集體獲取方法(頭腦風暴),原型方法,模型驅動方法(uml),認知方法(任務分析和協議分析),基於上下文的方法。獲取信息的過程包括在總體上制定組織方案、維護項目的前景和範圍、接受需求的不穩定性、控制探索性工做。防止遺漏需求和結束獲取。具體的實例影響和做用能夠參考上一本書的閱讀筆記。最後整理記錄保存。產品