日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四章需求分析与设计工具

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章需求分析与设计工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、學習內容

(一)需求工程概述

1. 定義
  • 需求工程是需求的供需雙方采取被證明行之有效的原理、方法,通過使用適當的工具和符號體系,全面地描述用戶待開發系統的行為特征、約束條件的過程;
  • 2. 開發人員
  • 系統分析師起到橋梁工程師的作用,負責完成用戶“業務世界”邏輯向由軟硬件組成的“電腦世界”邏輯的獲取和轉換過程;
  • 3. 需求工程
  • 三個階段:需求獲取、需求生成、需求驗證;
  • 需求獲取:歸納和整理用戶提出的各種問題和需求;
  • 需求生成:描述問題和需求;
  • 需求驗證:對需求的產品階段質量進行檢驗的過程;
  • 4. 其他要求
  • 軟件需求的層次性:業務需求,用戶需求,功能需求;
  • 業務需求:反映了用戶對系統和產品高層次的目標要求;
  • 用戶需求:描述了用戶使用產品必須要完成的任務;
  • 功能需求:定義了開發人員必須要實現的軟件功能;
  • (二)需求分析工具概述

    1. 分類
  • 從自動化程度分為以人工方式為主和以自動方式為主的需求分析工具;
  • 從支持分析設計技術角度分支持傳統的結構化方法的需求分析工具、面向對象分析的需求分析CASE工具、原型化分析的需求分析工具、基于其他方法的分析工具;
  • 根據需求工具和客戶的業務領域關系,可以分為很多類;
  • 2. 需求分析工具的功能特性和衡量標準
  • 特性:
    (1)針對結構化方法:多種分析和設計方法、支持DFD、一致性檢查;
    (2)針對面向對象方法:支持典型的多種面向對象方法、支持類定義和類關系描述、支持對象復用、支持對象交互描述、一致性檢查;
    (3)一些共性:支持業務方向工程、支持版本控制、腳本支持、支持生成需求分析規格說明書、支持擴展標記語言、支持多種文件格式的導出和導入;
  • 3. 衡量一個需求分析CASE工具功能強弱的主要依據
  • 所支持的需求分析方法的類型與數量的多少;
  • 使用方便程度;
  • 與設計工具銜接的程度;
  • 所占資源,即系統開銷的多少以及對硬件環境的需求程度;
  • 是否提供需求錯誤檢測機制;
  • 用戶領域知識提示功能。
  • 4. 需求分析CASE工具的選擇:遵循因地制宜的原則;

    (三)需求分析方法與需求分析工具

    1. 軟件需求分析的方法與工具
  • 方法:自頂向下和自底向上;
  • 自頂向下的分析方法(SA):從最上層的系統組織機構入手,采用逐層分解的方式分析系統,用數據流圖(DFD)和數據字典(DD)描述系統,處理過程的處理邏輯常常借助判定表或判定樹來描述,數據則是借助數據字典來描述;
    (1)數據流圖:命名的箭頭表示數據流、用圓圈表示處理、用矩形或其他形狀表示存儲;
    (2)數據字典:數據項是數據的最小單位、數據結構是數據項有意義的集合、數據流表示某一處理過程中數據再系統內傳輸的路徑、數據存儲處理過程中數據的存放場所、處理過程的處理邏輯通常用判定表或判定樹來描述;
  • 常用的需求分析圖形工具:UML、DFD、DD、判定樹、判定表、結構化高級分析語言、HC、IPO、Warnier圖、SADT、SREM、PSL/PSA;
  • 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. 詳細設計及工具
  • 目的:為軟件結構圖中的每一個模塊確定采用的算法,模塊內數據結構用某種選定的表達工具給出清晰的描述;
  • 工具種類:圖形工具、表格工具、語言工具;
  • 工具:流程圖(PFD),盒圖(N-S圖)、問題分析圖(PAD)、過程設計語言(PDL)
  • (六)典型需求分析與設計工具

    1. BPwin簡介
  • 提供功能建模、數據流建模、工作流建模;
  • 將與建立過程模型有關的任務自動化;
  • 為復雜項目的項目分析小組成員提供統一的分析環境;
  • 可與模型管理工具ModelMart集成使用;
  • 可與建模工具ERin集成使用;
  • 符合美國政府FIPS和IEEE標準;
  • 易于使用,支持Unicode;
  • 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)用戶領域知識提示功能;

    總結

    以上是生活随笔為你收集整理的第四章需求分析与设计工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。