第四章需求分析与设计工具
一、學習內容
(一)需求工程概述
1. 定義
2. 開發人員
3. 需求工程
4. 其他要求
(二)需求分析工具概述
1. 分類
2. 需求分析工具的功能特性和衡量標準
(1)針對結構化方法:多種分析和設計方法、支持DFD、一致性檢查;
(2)針對面向對象方法:支持典型的多種面向對象方法、支持類定義和類關系描述、支持對象復用、支持對象交互描述、一致性檢查;
(3)一些共性:支持業務方向工程、支持版本控制、腳本支持、支持生成需求分析規格說明書、支持擴展標記語言、支持多種文件格式的導出和導入;
3. 衡量一個需求分析CASE工具功能強弱的主要依據
4. 需求分析CASE工具的選擇:遵循因地制宜的原則;
(三)需求分析方法與需求分析工具
1. 軟件需求分析的方法與工具
(1)數據流圖:命名的箭頭表示數據流、用圓圈表示處理、用矩形或其他形狀表示存儲;
(2)數據字典:數據項是數據的最小單位、數據結構是數據項有意義的集合、數據流表示某一處理過程中數據再系統內傳輸的路徑、數據存儲處理過程中數據的存放場所、處理過程的處理邏輯通常用判定表或判定樹來描述;
2. 典型方法
(四)軟件設計概述
1. 軟件設計的概念
(1)軟件設計階段占據軟件項目開發總成本的絕大部分,是在軟件開發過程中形成質量的關鍵環節;
(2)軟件設計是開發階段最重要的步驟,是將需求準確地轉化為完整的軟件產品或系統的唯一途徑;
(3)軟件設計做出的決策,最終影響軟件實現的成敗;
(4)設計是軟件工程和軟件維護的基礎;
(1)必須實現分析模型中所涉及的所有顯示需求,必須與用戶希望的所有隱士需求相適應;
(2)對編程、測試、維護人員必須是可讀、可理解的;
(3)應給出相關數據、功能及其行為相關的軟件全貌;
2. 軟件設計的基本原理
(1)模塊的可分解性;
(2)模塊的可組裝性;
(3)模塊的可理解性;
(4)模塊連續性;
(5)模塊保護性;
(1)偶然內聚:指一個模塊內的各處理元素之間沒有任何聯系;
(2)邏輯內聚:指模塊內執行幾個邏輯上相關的功能,通過參數確定該模塊完成哪一個功能;
(3)時間內聚:把需要同時或順序執行的動作組合成一起形成的模塊;
(4)過程內聚:必須以特定次序執行的;
(5)通信內聚:模塊內所有處理功能都通過使用公用數據而發生關系;
(6)順序內聚:處理按順序執行;
(7)功能內聚:所有元素共同完成一個功能;
(1)內容耦合:直接訪問另一模塊內容;
(2)公共耦合:訪問同一全局數據結構;
(3)外部耦合:訪問同一全局簡單變量;
(4)控制耦合:一個模塊控制另一個模塊;
(5)標記耦合:兩模塊間通過數據結構交換信息;
(6)數據耦合:兩模塊間通過數據參數交換信息;
(7)非直接耦合:模塊間沒有關系,通過主模塊調用;
3. 軟件設計過程和模型
(五)結構化設計方法與工具
1. 概述
(1)評審和細化數據流圖;
(2)確定數據流圖的類型;
(3)把數據流圖映射到軟件模塊結構,設計出模塊結構的上層;
(4)基于數據流圖逐步分解高層模塊,設計中下層模塊;
(5)對模塊結構進行優化,得到更為合理的軟件結構;
(6)描述模塊接口。
(1)使每個模塊執行一個功能;
(2)每個模塊用過程語句調用其他模塊;
(3)模塊間傳送參數作數據用;
(4)模塊間共用的信息盡量少。
2. 結構化設計方法的基本概念
3. 概要設計工具——結構圖
(1)深度:模塊結構的層次數;
(2)寬度:同一層模塊的最大模塊數;
(3)扇入:一個模塊直接調用的其他模塊數目;
(4)扇出:調用一個給定模塊的模塊個數;
4. 概要設計任務的實現——數據流圖到結構圖的變換
5. 詳細設計及工具
(六)典型需求分析與設計工具
1. BPwin簡介
2. Power Designer 簡介
二、練習
(一)名稱解釋
1. 需求工程
答:需求的供需雙方采取被證明行之有效的原理、方法,通過適當的工具和符合體系,正確、全面地描述用戶待開發系統的行為特征、約束條件的過程;
2. SA方法
答:即自頂向下的分析方法,從最上層的系統組織機構入手,采用逐層分解的方式分析系統,用數據流圖和數據字典描述系統;
3. 軟件設計
答:即運用一些基本的設計概念和各種有效的方法和技術,把軟件需求分析轉化為軟件表示,使系統能在機器上實現。傳統軟件設計可以分成系統的總體設計和過程設計;
4. 模塊化
答:解決一個復雜問題使自頂向下逐層把軟件系統劃分成若干模塊的過程;
5. 信息隱蔽
答:指在一個模塊看內包含的信息,對于不需要這些信息的其他模塊來說是不能訪問的;
6. 模塊獨立性
答:指每個模塊只完成系統要求的獨立的子系統,并且與其他模塊的聯系最少且及接口簡單;
(二)簡答
1. 需求工程包括哪些階段?
答:需求獲取、需求生成、需求驗證;
2. 如何理解軟件需求?
答:具有不同的層次性,即業務需求、用戶需求、功能需求;
(1)業務需求:反映了用戶對系統和產品的高層次的目標要求,他們是用戶組織機構流程的再現和模擬,是從用戶組織機構工作流程角度進行的需求描述;
(2)用戶需求:描述了用戶使用產品必須要完成的任務,一般通過用例或方案腳本予以說明,它是從系統使用角度對待開發系統進行的需求描述;
(3)功能需求:定義了開發人員必須實現的軟件功能,從而使得用戶能完成任務,滿足其業務需求;
3. 如何定位軟件設計的重要性?
答:
(1)軟件開發階段占據軟件項目開發總成本絕大部分,是在軟件開發中形成質量的關鍵環節;
(2)軟件設計是開發階段最重要的步驟,是將需求準確的轉化為完整的軟件產品或系統的唯一途徑;
(3)軟件設計作出決策,最終影響軟件實現的成敗;
(4)設計是軟件工程和軟件維護的基礎;
4. 評價模塊分解設計方法有哪些標準?
答:模塊可分解性、模塊可組裝性、模塊的可理解性、模塊連續性、模塊保護性;
5. 結構化設計的基本思想是什么?
答:將軟件設計成由相對獨立、單一化功能的模塊組成的結構,軟件結構設計的一個目標就是得出一個系統化的程序結構;
(三)分析題
1. 如何衡量一個需求分析CASE工具功能的強弱?
答:
(1)所支持的需求分析方法的類型與數量多少;
(2)使用的方便程度;
(3)與設計工具銜接的程度;
(4)所占資源,即系統開銷的多少硬件環境的需求程度;
(5)是否提供需求錯誤檢測機制;
(6)用戶領域知識提示功能;
總結
以上是生活随笔為你收集整理的第四章需求分析与设计工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 解释下为什么css的res
- 下一篇: [css] 在rem下如何实现1像素?