《需求工程——軟件建模與分析》讀後感之一

  雖然有老師給了好多電子書的書目,可是最後仍是以爲先讀一讀本學期的教材《需求工程——軟件建模與分析》。做爲教材,淺顯易懂,很容易入門。雖然上個學期已經學了一些這方面的知識,可是並非很系統。但願能夠經過這本書整理一下。工具

  由於有了「軟件危機」的產生,「軟件工程」才被提出。而在「軟件工程」中,需求分析又是重中之重,它對項目的成敗具備相當重要的做用。和軟件需求相關的因素爲軟件項目帶來的風險和問題要遠遠超過全部的其餘因素,糟糕的軟件生產情況背後隱藏着軟件工程的需求問題。spa

  軟件生產中產生需求問題的最大緣由在於對應用型軟件的模擬特性理解不透徹或應用不堅定,它會致使軟件開發者產生輕視需求的態度問題,但除此以外,還有一些技術緣由也會致使需求問題的產生。通常有非技術性和社會性因素重視不足;傳統需求分析方法的缺陷;軟件規模的日益擴大;需求問題的高代價性等。設計

  什麼是需求工程?需求工程是全部需求處理活動的綜合,它收集信息、分析問題、整合掛點、記錄需求並驗證其正確性,最終反應軟件被應用後與其環境互動造成的指望效應。需求工程是爲了在軟件開發前須要軟件工程師們去了解並去設計出一套解決方案。由於軟件工程師並非瞭解全部領域。因此更加須要更用戶溝通。需求工程十分重要。雖然人們很早就認識到這一點,可是在時間、人力、物力、財力的投入上卻並無那麼重要。過後必然會致使需求分析水平低,軟件開發質量低,用戶抱怨多的問題出現。對象

  然而有時候並不必定是需求分析師的問題,用戶有時候並不能明確的描述出本身想要使用什麼,而需求分析師又不瞭解用戶所在領域。因此就會出現軟件需求出現「不完整、不許確、不清晰、變化不可控」這些現象。因此需求分析師們必須具有如下技能以方便、明確、成功的作出需求分析。開發

  首先須要專業技能,懂得需求工程的相關知識、理解需求工程的相關理論、熟悉需求工程的各項活動、掌握需求工程的各類辦法與技術是必須得;其次是要有分析技能,必須能夠從大量信息中提取、分析、整合出有用的信息處理,瞭解用戶需求中的衝突與遺漏,分析可行性;接着須要交流技能,這是必須的,要掌握交談和提問的技巧,不然很難跟不懂軟件的客戶出現隔閡,隔行如隔山,你們不能各說各的吧;還有觀察技能、建模技能、寫做技能、創新技能、協調技能等。需求工程師應該具備敏銳的洞察力,能夠經過觀察用戶的工做環境和工做過程,發現經過談話及其餘方法所沒法發現的重要信息。同時也應該掌握從傳統流程圖到結構化的分析模型,直至當今的統一建模語言等多種分析工具。由於須要跟客戶、管理人員、開發人員等交涉信息,因此須要寫好書面的需求規格說明書。寫做技能是必須的。需求工程師須要經過寫做清晰的表達出複雜的概念。文檔

  提起需求,不一樣背景的人會有不一樣的見解,IEEE對需求的定義爲:用戶爲了解決問題或達到某些目標所須要的條件;系統或系統部件爲了知足合同、標準、規範或其餘正式文檔所規定的要求而須要具有的條件或能力;對前兩條中的一個條件或一種能力的一種文檔化表述。原型

  需求中老是遇到一些困難,由於用戶和開發人員的背景不一樣,立場不一樣,因此知識理解困難,心中所想的東西也不同。普通用戶缺少概況性和綜合性的表述能力,  因此很難理解對方心中所想。用戶還老是提出各類需求,執拗的堅持某些特性和功能。用戶並不瞭解軟件的設計狀況,因此須要這些困難須要需求工程師們一一解決。入門

  需求是獲取的主要對象,是系統指望達到的目標。它主要來源於用戶、客戶、領域專家等相關涉衆,在湖區中體現爲射中的問題、指望、觀點、見解和態度等。常見的獲取信息的方法有問卷調查、面談、文檔分析、文檔檢查、需求剝離等。也有頭腦風暴、專題討論、JADJRP等。軟件

  在實踐中,經過利用原型,能夠有不少好處,好比:及時、有力地影響用戶需求的變化;減小返工;幫助控制不完整需求所帶來的風險;能夠將一個大的難以處理的開發過程細分紅一個更小更容易處理的步驟;減小開發成本,提升經濟效益;增長開發者之間的交流,幫助肯定技術解決方案的可行性;有效地識別風險和解決風險,幫助進行風險管理;提升用戶在軟件開發中的參與程度。原型能夠幫助需求解決工程師及早解決需求的不求定性。技巧

相關文章
相關標籤/搜索