軟體經歷了以「機器」為中心,以「應用」為中心,以「企業」為中心的發展過程,隨著「應用」為中心的軟體發展,原來的個體化「軟體作坊式」的軟體開發模式顯示出了很多的問題,針對這些問題,人們在不斷地討論與制定對策,在軟體開發技術和軟體開發過程與管理方面都取得了很多進步。
根據很多方面的調查顯示,在所有的軟體開發專案中,專案成功的機率是很小很小的。造成這些軟體問題的乙個很重要的原因是:未能很好地理解和掌握應用型軟體的模擬特徵以及由此而產生的一系列影響和要求。
軟體可以分為:面向專業使用者的純工具型軟體、面向普通使用者的純工具型軟體和應用型軟體。不同種類的軟體的評判標準是不一樣的,面對不同的使用者他們有不同標準。這就要求軟體需求的全面性。產生需求問題的最大原因是應用型軟體的模擬特徵理解不透徹或應用不堅決。同樣,非技術性和社會性因素重視不足、傳統需求分析的方法的缺陷也會帶來需求問題。需求工程必須說明軟體系統將被應用環境及其目標,必須將目標、功能和約束反映到軟體系統中,對映為可行的軟體行為,並對軟體行為進行準確的規格說明,需要妥善處理目標、功能和約束隨時間的演化情況。
需求工程分為需求開發、需求管理,需求開發分為需求獲取、需求分析、需求規格說明、需求驗證。
【ieee1998】將需求分為功能需求、效能需求、質量屬性、對外介面、約束5類,即兩大類功能需求和非功能需求。
功能需求中按抽象層次的高低分為業務需求、使用者需求、系統需求。業務需求是系統的目標,使用者需求是系統的任務,系統需求是系統的行為。
對於非功能需求,我們很難在系統完成之前清晰地看到,很多時候是在系統完成之後才會發現非功能需求。在解決系統成功或失敗的因素中,非功能需求與功能需求同等重要,甚至更重要。
乙個優秀的需求是完整的,每個需求都完整的描述出系統所需要的功能,並將使用者的期望傳遞給了開發人員,可以在系統及執行環境的已知條件和約束下實現,任何乙個需求都是不能忽視的、無歧義的、可以驗證的。
需求工程的一些工作需要很多的活動細節,通過實踐的方法來完成這些活動細節,不同的需求階段都有其標誌性的活動,都有各自的實踐方法。
需求獲取中會遇到很多的困難,例如:使用者與開發人員的背景、立場不同,交流存在困難;使用者缺乏概括性、綜合性的表述能力;使用者存在認知困難;開發者為使用者創造需求,使用者為開發者提出解決方案;使用者不好選擇,使用者不願參與等等,這都要採取措施去面對、解決,有乙個好的需求獲取流圖。
專案開始的時候要確立專案的目標,我們要有乙個共同的認識,明確的分析出問題,發現業務需求,制定乙個解決方案找到系統特徵,這一點在寫系統時有了很多的感觸,面對乙個系統,不知道應該有什麼樣的內容,不了解使用者,不知道使用者會用它幹什麼,使用者需要什麼,單從自己的理解去建立系統的功能,很多時候都有一種寫文章的感覺,不知道下面該有什麼,下文是什麼?乙個功能,加也不是,不加也不是。這時候真的很需要使用者的需求。
面談是需求獲取的方法之一,他可以獲得很多的內容:事實和問題、被會見者的觀點、被會見著的感受、組織和個人目標。但是訪談者要注意很多問題:禮貌的傾聽,選擇好的時間和地點,筆錄,在使用者同意的條件下錄音或錄影。
原型的介質有很多:紙面、幻燈動畫、快速語言和工具和程式**。紙質原型的真實感最低但其能夠緩解原型方法的高成本缺點。當使用者需求出現了模糊、不清晰、不完整等具有一定不確定性的特徵時,就可以考慮使用原型方法。[houde1997]認真原型的需求內容有:外觀、角色、實現。
觀察可以幫助理解複雜的協同事件,獲取工作中的異常處理,獲取與使用者認知不一致的實際知識,了解使用者的認知,獲取預設的知識。
《需求工程 軟體建模與分析》閱讀筆記03
一 需求工程過程概念介紹 一 概述 1.規格說明 需求工程過程是系統開發中需求開發活動的整合,它以使用者所面臨的業務問題為出發點進行分析和各種轉換,最終產生乙個能在使用者環境下解決使用者業務問題的系統方案,並將其文件化為明確的規格說明。2.生命週期 需求工程也有屬於它自己的生命週期模型,即存在針對需...
《需求工程 軟體建模與分析》閱讀筆記三
需求管理是來完成需求開發結束後,保障系統質量的乙個管理活動。需求管理在實踐中的作用有 增強專案涉眾對複雜產品特徵在細節和相互依賴關係上的理解 增進了專案涉眾之間的交流 減少了工作量的浪費,提高了生產力 準確反映社會的狀態,有助於專案決策 改變專案文化,使得需求的作用得到重視和有效發揮。維護需求基線 ...
《需求工程 軟體建模與分析》閱讀筆記02
相信做軟體的都知道,需求獲取是一件非常困難的事,建民老師說他們做專案的時候,拎著電腦包去做需求調研,裡面工作的人一看就嫌棄的表情,他們那些人又來了,同樣,在跟對方經理聊天的過程中,對方也經常會打斷談話去處理一些別的事,但對於做乙個專案,偏偏需求分析是至關重要的一環,在需求分析的過程中,我們經常會遇到...