在需求獲取中,需求工程師可以得到關於問題域的描述資訊,可以得知相關者對軟體系統的期望。可是,上述這些被記錄在獲取筆錄上的內容都還是屬於現實世界的資訊,它們是使用者和其他相關者對現實世界的理解與描述,使用的是實際業務的表達方式。換句話說,需求獲取中得到的資訊僅僅是解釋了使用者等現實世界群體對軟體系統的期待,它們還不是開發者能夠立即加以實現的解決方案。而且,開發者通常並不是來自業務世界,所以他們無法從雜亂的獲取筆錄中輕易地把握到使用者表達某個資訊時內容的真實意圖,為其建立軟體解決方案的工作也就更是無從談起了。
總的來說,需求獲取得到的資訊和需求開發應該建立的軟體系統解決方案之間有著很大的差距。需求分析就是用來解決這個差距的需求工程活動。需求分析的根本任務是獲取使用者的理解和問題的描述,通過需求分析建立分析模型,建立解決方案,從而決定需求開發目標。
常見的需求分析技術有上下文圖、資料流圖、實體聯絡圖、功能實體矩陣、功能分解圖、過程依賴圖、用例圖、類圖、互動圖、活**、對方約束語言、微規格說明、資料字典、狀態轉換圖等。
之前我們已經學過上下文圖了。它的主要作用是描述系統與環境中外部實體之間的界限和聯絡。他從現實世界的角度說明了系統的邊界和環境,並確定了所有的輸入和輸出。資料流圖也是經常用到,它從資料傳遞和加工的角度,描述了系統從輸入到輸出的功能處理過程。運用功能分解的方法,用層次結構簡化處理複雜的問題。像用例圖、類圖、互動圖等,在以前學習uml
時學過,不過很少使用。他們的功能不再詳述。
需求分析的技術多種多樣,學習所有這些技術並不是一件容易的事情。對每一種技術而言,不僅需要廣泛的閱讀,而且還需要進行很多的實踐,才能很好地把握每種技術的內涵。實踐表明,需求工程師在建模與分析中遭遇的最大的問題不在於某些具體技術的掌握問題,他們有足夠的能力學習和掌握每一種技術。對需求分析技術的綜合運用才是需求分析人員最大的困難。
一方面,每一種需求分析技術都有自己的特點。這是它們具有在應用上獨特性,即每一種分析技術都有自己適合的應用和不適合的應用。如果對需求分析技術的應用特性判斷錯誤,那麼即使對該技術掌握的再好也不可能很好地完成建模任務。另一方面,複雜的應用需要多視角的建模處理。沒有哪種需求分析技術能夠單獨完成對複雜問題的建模任務,之後通過多種需求分析技術的有機結合與整合才能充分的描述複雜應用。
傳統的分析方法是毫無章法的,雖然傳統分析也能取得一定的成功,但是它的工作過程缺乏結構、不可重複、不可測量和主觀臆斷。傳統分析產生的分析結果往往會出現很多問題。在傳統分析方法之後,人們想辦法嘗試使用相對形式化的模型來建立標準化的方法,形成了結構化分析方法。
結構化分析方法把現實世界描繪為資料在資訊系統中的流動,以及在資料流動過程中資料向資訊轉換。他幫助開發人員定義系統需要做什麼(處理需求),系統需要儲存和使用哪些資料(資料需求),需要什麼樣的輸入和輸出,以及如何把這些功能結合在一起來完成任務。
對結構化分析方法改進之後產生了資訊工程方法,它採用了結構化方法的各種技術,並根據資訊系統開發的特點進行更為嚴格、全面的改進,關注策略規劃、資料建模和自動化工具。資訊工程主要從資訊角度來開發系統,而不像結構化方法那樣從功能角度考慮問題。客觀世界被描述為資料和資料屬性及其相互關係。資訊工程方法的侷限性在於它是為資訊系統的開發而制定的,所以應用範圍是有限制的。
物件導向分析方法任務系統是物件的集合,這些物件之間相互協作,共同完成系統任務。也就是說物件導向分析方法和結構化分析方法有著完全不同的建模思路,前者是以物件為基礎,後者是以功能和資料為基礎。
《需求工程 軟體建模與分析》讀後感2
需求工程 軟體建模與分析 讀後感2 假期裡買到了下學期的專業課書籍 需求工程 軟體建模與分析 並在假期裡仔細閱讀了前幾章的內容。使我對我的專業有了更深的理解,對專業的就業方面有了一定的感悟,對未來工作有了初步認識及相關指導。從事軟體工程這一專業,編寫 並不是整個工程的重中之重。軟體工程,顧名思義,之...
《需求工程 軟體建模與分析》讀後感之一
雖然有老師給了好多電子書的書目,但是最後還是覺得先讀一讀本學期的教材 需求工程 軟體建模與分析 作為教材,淺顯易懂,很容易入門。雖然上個學期已經學了一些這方面的知識,但是並不是很系統。希望可以通過這本書整理一下。因為有了 軟體危機 的產生,軟體工程 才被提出。而在 軟體工程 中,需求分析又是重中之重...
《軟體需求工程》讀後感06
需求規格說明的作用主要體現在如下幾個方面 1 需求規格說明是軟體設計和實現的基礎 2 需求規格說明是測試和使用者驗收軟體系統的重要依據 3 需求規格說明能為軟體維護提供重要的資訊。作用 1 和 2 是需求規格說明在軟體開發中所起的重要作用,作用 3 是在軟體維護中所起的作用。當然,需求規格說明對其他...