3.2面向過程的分析


需求分析模型

分類

面向過程分析模型

基本思想是用系統工程的思想和工程化的方法,根據用戶至上的原則,自始自終按照結構化、模塊化,自頂向下地對系統進行分析與設計。

面向對象分析模型

由5個層次(主題層、對象類層、結構層、屬性層和服務層)和5個活動(標識對象類、標識結構、定義主題、定義屬性和定義服務)組成。

分析模型描述工具

面向過程的分析建模工具總覽

  1. 數據流圖DFD——加工規約
  2. 實體——關系圖ERD——數據對象描述(PSPEC)
  3. 狀態變遷圖STD——控制規約(CSPEC)

面向過程分析模型—結構化分析方法

  • 面向數據流進行需求分析的方法
  • 結構化分析方法適合於數據處理類型軟件的需求分析
  • 具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現的軟件為止

功能模型——數據流圖DFD

主要圖形元素:

數據流圖圖示例

數據流圖的層次結構

頂層:就是0層,是開發系統的總覽。

向下一層,就是上一層的細化。

底層流圖就是不能再分解的了。

(1) 加工

表示對數據進行的操作, 如“處理選課單” 、“產生發票”等

加工的編號,說明這個加工在層次分解中的位置 (分層DFD)

頂層是0層,由上向下是依次詳細的解釋。

加工的命名

1)頂層的加工名就是整個系統項目的名字

2)盡量最好使用動賓詞組,也可用主謂詞組

3)不要使用空洞動詞

(2) 外部實體(數據源點/終點)

  • 位於系統之外的信息提供者或使用者,稱為外部實體。即存在於系統之外的人員或組織。如“學務科”等

  • 說明數據輸入的源點(數據源)或數據輸出的終點(數據終點)

  • 起到更好的理解作用,但不是系統中的事物

(3) 數據流

表示數據和數據流向, 由一組固定成分的數據組成 如“選課單”由“學號、姓名、課程編號、課程名”等成分組成

注意流向

數據流可從加工流向加工,也可在加工數據存儲外部項之間流動;兩個加工之間可有多股數據流

數據流的命名原則:

§1)用名詞,不要使用意義空洞的名詞

§2)盡量使用現實系統已有名字

數據流與數據加工之間的關系

有這個小“火”標志的就好似一個“並”,不然就默認的是兩個“或”。“⚪ + ”就是“不可能同時”

畫數據流時需注意的問題

  1. 不要控制流作為數據流

​ 如:下圖中讀下張卡屬於控制流,不應畫出。

  1. 不要標出激發條件

(4) 數據存儲

表示需要保存數據流向, 如“ 學生檔案”、“課程設置”等

數據存儲與加工的方向一致、

分層數據流程圖中,數據存儲一般局限在某一層或某幾層

命名方法與數據流相似

幾種錯誤

(1)

改正:每個加工至少一個輸入數據流和一個輸出數據流

(2)

改正:數據流必須要么從某個加工流出、要么流入某個加工,而不能直接從外部項流向數據存儲等等。

數據流圖示例:倉庫管理與訂貨系統

某倉庫業務的工作過程如下:

  1. 企業職工填寫領料單,經主管審查簽名批准后,職工到倉庫領取零件。

  2. 倉庫保管員檢查領料單是否符合審批手續,填寫是否正確等,不正確的領料單退還職工,填寫正確的領料單則辦理領料手續,進行登記,修改庫存量並給予零件。

  3. 當某種零件的庫存量低於事先規定的臨界值時,登記需要采購零件的訂貨信息,為采購部門提供一張訂貨單。要求用計算機輔助領料工作和編制訂貨單。

倉庫業務系統數據流圖

第一步:繪制數據流圖頂層

  1. 首先確定系統的輸入和輸出,畫出頂層數據流圖。

  2. 經過分析,主要數據流輸入的源點輸出終點是職工和倉庫管理員、采購員。

  3. 之間的數據流:領料單、登記單、訂貨單

這個數據流圖只是一個高層的系統邏輯模型,它反映了目標系統要實現的功能

第二步:繪制數據流圖1層

從輸入端開始,根據倉庫業務工作流程,畫出數據流流經的各加工框,逐步畫到輸出端,得到1層數據流圖。

第三步:繪制數據流圖2層——細化每一個加工框

(1)細化
-->

(2)細化
-->

第四步:合成

第五步:檢查與調整數據流圖

在分析過程中,由於每個人的經驗和思路不盡相同,對數據流圖的分解方案可以有多種形式,不是唯一的。

對每一張數據流圖進行檢查,如果太不均衡,就需要進行調整,盡量使分解后的各個軟件子系統的復雜性得到均衡。

檢查數據流圖的原則

1)數據流圖上所有圖形符號只限於前述四種基本圖形元素

2)數據流圖的主圖必須包括前述四種基本元素,缺一不可

3)數據流圖的主圖上的數據流必須封閉外部實體之間

4)每個加工至少有一個輸入數據流和一個輸出數據流

5)在數據流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關系

6)規定任何一個數據流子圖必須與它上一層的一個加工對應,兩者的輸入數據流和輸出數據流必須一致。此即父圖與子圖的平衡

7)圖上每個元素都必須有名字

8)數據流圖中不可夾帶控制流!!!【最重要】

9)初畫時可以忽略瑣碎的細節,以集中精力於主要數據流

數據流圖的改進:

檢查正確性 —— 提高易理解性 —— 重新分解

(1) 檢查DFD的正確性

  1. 數據守恆

  2. 數據存儲的使用

  3. 父圖和子圖的平衡

數據守恆

數據不守恆的情況有兩種:要么多了要么少了。

1)某個加工輸出的數據並無相應的數據來源,可能是某些數據流被遺漏了。

2)一個加工的輸入並沒有用到,這不一定是錯誤。可與用戶進一步討論是否屬於多余的數據流。

數據存儲的使用

​ 判斷:是否存在“只讀不寫”或“只寫不讀”的數據存儲 (注意在所有的DFD中檢查)

​ 如下,對於YY,只有寫入,沒有流出,這是錯誤的

(2) 提高易理解性

  • 簡化加工之間的聯系

  • 注意分解的均勻

  • 適當地命名

簡化加工之間的聯系

應盡量減少加工之間輸入輸出數據流的數目。因為加工之間的數據流越少,各個加工的功能就越相對獨立。

例: 加工1和2之間的太多數據流。

分解的均勻

一張圖中,如果某些加工已是基本加工(細節),而另一些加工還可進一步分解成三、四層,則應考慮重新分解。

適當命名

如果難以為DFD圖中的成分(數據流、加工等)命名,往往說明分解不當, 可考慮重新分解。

(3) 重新分解

在畫第N層時意識到在第N-1層或第N-2層所犯的錯誤,此時就需要對第N-1層、第N-2層作重新分解。

重新分解的做法

1)把需要重新分解的某張圖的所有子圖連接成一張。

  1. 重新連接起來

2) 把圖分成幾部分,使各部分之間的聯系最少。

3)重新建立父圖,即把第2)步所得的每一部分畫成一個圓,而各部分之間的聯系就是加工之間的界面。

4)重新建立各張子圖,這只需把第2)步所得的圖按各部分的邊界剪開即可。

5) 為所有的加工重新命名和編號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM