《需求工程——软件建模与分析》读后感之三
在需求獲取中,需求工程師可以得到關于問題域的描述信息,可以得知相關者對軟件系統的期望。可是,上述這些被記錄在獲取筆錄上的內容都還是屬于現實世界的信息,它們是用戶和其他相關者對現實世界的理解與描述,使用的是實際業務的表達方式。換句話說,需求獲取中得到的信息僅僅是解釋了用戶等現實世界群體對軟件系統的期待,它們還不是開發者能夠立即加以實現的解決方案。而且,開發者通常并不是來自業務世界,所以他們無法從雜亂的獲取筆錄中輕易地把握到用戶表達某個信息時內容的真實意圖,為其創建軟件解決方案的工作也就更是無從談起了。
總的來說,需求獲取得到的信息和需求開發應該建立的軟件系統解決方案之間有著很大的差距。需求分析就是用來解決這個差距的需求工程活動。需求分析的根本任務是獲取用戶的理解和問題的描述,通過需求分析建立分析模型,創建解決方案,從而決定需求開發目標。
常見的需求分析技術有上下文圖、數據流圖、實體聯系圖、功能實體矩陣、功能分解圖、過程依賴圖、用例圖、類圖、交互圖、活動圖、對方約束語言、微規格說明、數據字典、狀態轉換圖等。
之前我們已經學過上下文圖了。它的主要作用是描述系統與環境中外部實體之間的界限和聯系。他從現實世界的角度說明了系統的邊界和環境,并確定了所有的輸入和輸出。數據流圖也是經常用到,它從數據傳遞和加工的角度,描述了系統從輸入到輸出的功能處理過程。運用功能分解的方法,用層次結構簡化處理復雜的問題。像用例圖、類圖、交互圖等,在以前學習UML時學過,不過很少使用。他們的功能不再詳述。
需求分析的技術多種多樣,學習所有這些技術并不是一件容易的事情。對每一種技術而言,不僅需要廣泛的閱讀,而且還需要進行很多的實踐,才能很好地把握每種技術的內涵。實踐表明,需求工程師在建模與分析中遭遇的最大的問題不在于某些具體技術的掌握問題,他們有足夠的能力學習和掌握每一種技術。對需求分析技術的綜合運用才是需求分析人員最大的困難。
一方面,每一種需求分析技術都有自己的特點。這是它們具有在應用上獨特性,即每一種分析技術都有自己適合的應用和不適合的應用。如果對需求分析技術的應用特性判斷錯誤,那么即使對該技術掌握的再好也不可能很好地完成建模任務。另一方面,復雜的應用需要多視角的建模處理。沒有哪種需求分析技術能夠單獨完成對復雜問題的建模任務,之后通過多種需求分析技術的有機結合與集成才能充分的描述復雜應用。
傳統的分析方法是毫無章法的,雖然傳統分析也能取得一定的成功,但是它的工作過程缺乏結構、不可重復、不可測量和主觀臆斷。傳統分析產生的分析結果往往會出現很多問題。在傳統分析方法之后,人們想辦法嘗試使用相對形式化的模型來建立標準化的方法,形成了結構化分析方法。
結構化分析方法把現實世界描繪為數據在信息系統中的流動,以及在數據流動過程中數據向信息轉換。他幫助開發人員定義系統需要做什么(處理需求),系統需要存儲和使用哪些數據(數據需求),需要什么樣的輸入和輸出,以及如何把這些功能結合在一起來完成任務。
對結構化分析方法改進之后產生了信息工程方法,它采用了結構化方法的各種技術,并根據信息系統開發的特點進行更為嚴格、全面的改進,關注策略規劃、數據建模和自動化工具。信息工程主要從信息角度來開發系統,而不像結構化方法那樣從功能角度考慮問題。客觀世界被描述為數據和數據屬性及其相互關系。信息工程方法的局限性在于它是為信息系統的開發而制定的,所以應用范圍是有限制的。
面向對象分析方法任務系統是對象的集合,這些對象之間相互協作,共同完成系統任務。也就是說面向對象分析方法和結構化分析方法有著完全不同的建模思路,前者是以對象為基礎,后者是以功能和數據為基礎。
轉載于:https://www.cnblogs.com/zrdm/p/4924600.html
總結
以上是生活随笔為你收集整理的《需求工程——软件建模与分析》读后感之三的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [原创] SQLite数据库使用清单(上
- 下一篇: Xcode模板修改