軟件工程文檔設計中的基本要求:關於每一個文檔究竟該寫什麼

首先看軟件需求分析數據庫

需求分析階段的任務分爲四個階段:需求獲取,需求分析,需求定義,需求驗證數組

需求獲取這部分比較模糊,應該也是比較雜,比較靈活的一部分,先來個大概的功能敘述,而後將需求一項一項地列出來。網絡

需求分析這部分要求對前面的需求進行規範數據結構

1,對每項需求給出清楚的描述函數

2,要求描述沒有歧義工具

3,各項需求之間不能存在矛盾,軟件需求和實際需求不能矛盾性能

4,對需求實現的可行性進行分析編碼

  4.1 技術可行性:在現有條件和環境技術下考慮設計

  4.2經濟可能性:小項目通常不考慮這個對象

  4.3社會可能性:考慮知識產權的侵害問題

5,獲取的需求是否全面周到,從已知的需求是否隱含一些必須有的其餘需求,以及深刻探討系統功能所產生的可能的對功能需求的補充。

需求定義,要求系統全面地寫出軟件需求規格說明

需求驗證,要通過客戶對需求規格說明的評審

(需求規格說明尚未搞清楚,在後面有時間補充

結構化的分析方法包括瞭如下幾種元素

數據對象描述

實體-關係圖

加工規格說明

數據流圖

控制規格說明

狀態-遷移圖

數據字典

咱們在結構化設計階段的任務是寫出概要設計和詳細設計

概要設計包括:

      體系結構設計:

            數據流圖相關

      接口設計:

            數據流圖

      數據設計:

            數據對象描述

            數據字典

            實體-關係圖

詳細設計包括:

      過程設計:

            加工規格說明

            控制規格說明

            狀態-遷移圖

咱們來解釋一下上面結構化分析方法裏出現的一些項目

功能建模

    數據流圖有四種基本的圖形符號

    橢圓或圓角矩形: 表示加工,對輸入數據進行變換以產生輸出數據,其中要註明加工的名字

    直角矩形或長方體:外部實體。即數據輸入源,或數據輸出匯點。其中要註明數據源或數據匯點的名字

    平行線或右面豎邊缺的矩形:數據存儲。要用名字或名詞性短語爲數據存儲命名。

    一個箭頭:數據流。描述被加工數據及傳遞方向。箭頭旁邊要註明數據流的名字,可用名詞或名詞性短語命名。

數據源或數據匯點表示圖中要處理的數據的輸入來源處理結果要送往何處,數據源或數據匯點不是目標系統的一部分,只是目標系統的外圍環境

中的實體部分,所以成爲外部實體。實際問題中它多是組織,部門,人,相關的軟件系統或硬件設備。

數據流表示數據沿箭頭方向的流動。數據流可表示這些加工之間被傳送的有名數據,也可表示在數據存儲和加工之間傳送的未命名數據,這些數據流雖然沒有命名,但因其所鏈接的是有名加工和有名數據存儲,因此其含義也是清楚的。

加工是對數據對象的處理或變換,加工的名字是動詞短語,以代表所完成的加工。一個加工可能須要多個數據流,也可能產生多個數據流

數據存儲在數據流圖中起保存數據的做用,能夠是數據庫文件或任何形式的數據組織。從數據存儲中引出的數據流可理解爲從數據存儲中讀取數據或獲得查詢結果,指向數據存儲的數據流可理解爲向數據存儲中寫入數據

 

環境圖也稱爲頂層數據流圖(或0層數據流圖),它僅包括一個數據處理過程(加工),也就是要開發的目標系統,(就是目標系統,輸入輸出,實體部分)。

 

數據流圖的分層是爲了解決圖上過多的加工引發的不直觀,若是咱們的加工很少,那麼分層也沒有必要了。        

 

數據建模

區分數據對象和數據對象的實例

1.數據對象

數據對象是目標系統所須要的複合信息的表示。所謂複合信息是具備若干不一樣屬性的信息。

在ER圖中用矩形表示數據對象。與面向對象方法不一樣的是,此處數據對象只封裝了數據,沒有包含做用於這些數據上的操做。

 

2.屬性

屬性定義數據對象的特徵。在ER圖中用橢圓或圓角矩形來表示屬性,並用無向邊將屬性與相關的數據對象鏈接起來。

 

3.關係

不一樣數據對象的實例之間是有關聯聯繫的。在ER圖上用無向邊表示,在無向邊上能夠代表關係的名字,也能夠不標名字。但在

無向邊的兩邊應標識出關聯實例的數量,也稱爲關聯的多重性。從關聯數量的角度,能夠將實例的關聯分爲三種:

一對一    系和系主任  大學和大學校長

一對多   學生班和班幹部  

多對多   學生和課程    一個學生能夠選多門課程  一門課程能夠被多名學生選

一條無向邊的兩端該用什麼記號,應當分別看一端的實例到另外一端的實例的數量對應關係

 

行爲建模

 

在需求分析過程當中應當創建起軟件的行爲模型。狀態轉換圖經過描繪系統的狀態及引發系統狀態轉換的事件來表示系統的行爲。

1.狀態

狀態是任何能夠被觀察到的系統行爲模式,一個狀態表明系統的一種行爲模式。狀態規定了系統對事件的響應方式。系統對事件的響應,

既能夠是作一個或一系列動做,也能夠僅僅改變系統自己的狀態,還能夠是既改變狀態又作動做

 

狀態圖中定義的狀態可能有初態,終態,中間態。

初態用實心圓表示,終態用牛眼圖表示,中間態用圓角矩形表示。

一張狀態圖中只能有一個初態,而終態能夠有多個或沒有。

 

中間態可能包含三個部分,第一部分爲狀態的名稱,第二部分爲狀態變量的名字和值,第三部分是活動表。

二,三部分可選。

活動部分的語法以下:

事件名(參數表)/動做表達式

 

2.狀態轉換

狀態圖中兩個狀態之間帶箭頭的連線稱爲狀態轉換

狀態的變遷一般是由事件觸發的,在這種狀況下應該在表示狀態轉換的箭頭線上標出觸發轉換的事件表達式。

                     若是在箭頭線上未標明事件,則表示在源狀態的內部活動執行完以後自動觸發轉換。

 

3.事件

事件是某個特定時刻發生的事情,他是對系統從一個狀態轉換到另外一個狀態的外界事件的抽象。

事件表達式的語法以下:

事件說明[守衛條件]/動做表達式

事件說明的語法以下:

事件名(參數表)

 

守衛條件是一個布爾表達式。若是同時使用守衛條件和事件說明,則當且僅當事件發生且布爾表達式成立時,狀態轉換才發生。

若是隻有守衛條件沒有時間說明,則只要守衛條件爲真,狀態轉換就發生。

 

動做表達式是一個過程表達式,當狀態轉換開始時執行該表達式

 

數據字典

數據字典以詞條方式定義在數據模型、功能模型和行爲模型中出現的數據對象及控制信息的特性,給出它們的準肯定義,包括

數據流、加工、數據文件、數據元素、以及數據源點和數據匯點等。

數據字典成爲把3種分析模型粘合在一塊兒的粘合劑,是分析模型的核心。

數據字典精確地,嚴格地定義了每個與系統相關的數據元素,並以字典順序將他們組織起來,

使得用戶和分析員對全部的輸入、輸出、存儲成分和中間計算有共同的理解。

 

1.詞條描述

對於在數據流圖中每一個被命名的圖形元素加以定義,其內容包括圖形元素的名字,圖形元素的別名或編號,

圖形元素類別(如加工,數據流,數據文件,數據元素,數據源點或數據匯點)

描述,定義,位置等。

1.1 數據流詞條

  數據流是數據結構在系統內傳播的路徑。一個數據流詞條應有如下幾項內容:

  數據流名:要求與數據流圖中該圖形元素的名字一致

  簡述:簡要介紹它產生的結果與緣由。

  組成:數據流的數據結構

  來源:數據流來自哪一個加工或做爲哪一個數據源的外部實體

  去向:

  流通量:單位時間數據的流通量

  峯值:;流通量的極端值

1.2數據元素詞條

  數據流圖中每個數據結構都是由數據元素構成的,數據元素是數據處理中最小的不可分割的單位,他直接反映事物的某一特徵。

組成數據結構的這些數據元素必須在數據字典中給出描述。其描述須要如下信息。

  類型:數據元素分爲數字型與文字型。

      數據型又分爲離散值和連續值

      文字類型用編碼類型和長度區分

  取值範圍:

      離散值是取值或枚舉,或是介於上下界的一組數

      連續值通常是有取值範圍的實數集

      對於文字型,文字的取值須要加以定義

1.3數據存儲文件詞條

  數據存儲文件是數據保存的地方。

 文件名:要求與數據流圖中該圖形元素的名字一致

 簡述:簡要介紹存放的是什麼數據

 組成:文件的數據結構

   輸入:從哪些加工獲取數據

 輸出:由哪些加工使用數據

  存取方式:分爲,順序,直接,關鍵碼等不一樣存取方式

  存取頻率:單位時間的存取次數

1.4加工詞條

  加工可使用諸如斷定表、斷定樹和結構化語言等形式表達。

加工名:要求與數據流圖中該圖形元素的名字一致

編號:用以反映該加工的層次和「親子」關係

簡述:加工邏輯及功能簡述

輸入:加工的輸入數據流

輸出:加工的輸出數據流

加工邏輯:簡述加工程序、加工順序。

 

1.5數據源點及數據匯點詞條

數據源點和匯點應當比較少

名稱:要求與數據流圖中該外部實體的名字一致

簡述:簡要描述是什麼外部實體

有關數據流:該實體與系統交互時涉及哪些數據流。

數目:該實體與系統交互的次數。

 

2.數據結構描述

2.1定義式

2.2Warnier圖

 

3.2加工規格說明

在對數據流圖的分解中,位於層次樹最底層的加工,也稱爲基本加工或子加工,對於每個基本加工都須要進一步說明

這稱爲加工規格說明

 

在需求分析階段,能夠直接寫出基本加工的程序邏輯,即其處理的規則。若是每個基本加工的詳細邏輯功能都已寫出

再自底向上綜合,就能完成所有加工。

 

在編寫基本加工的規格說明時,主要目的是表達「作什麼」,而不是「怎樣作」。所以它應知足以下要求

對數據流圖的每個基本加工,必須有一個加工規格說明;

加工規格說明必須描述基本加工如何把輸入數據流變換成輸出數據流,即加工規則

加工規格說明必須描述實現加工的策略而不是實現加工的細節

加工規格說明中包含的信息應是充足的、完備的、有用的、沒有重複的多餘信息。

 

使用僞代碼來描述加工規格說明的工做應該推遲到詳細設計階段進行。

 

3.2.1

  決策表

3.2.2

  決策樹

 

軟件需求規格說明(GB/T 8567-2006《計算機軟件文檔編制規範》)

1.軟件需求規格說明

一些項目:

1.引言

  軟件標識號,標題,版本號

  ...

3.需求

  軟件配置項的運行狀態和運行方式

  需求概述

    目標

    軟件開發意圖,目標和範圍

    主要功能,處理流程,數據流程

    外部接口和數據流的高層次說明

    運行環境

    用戶類型和特色

    關鍵點

  需求詳細說明

    軟件功能整體結構/對象功能

    軟件子系統功能/對象結構

    (結構圖、流程圖、對象圖)

  軟件配置項的外部接口需求

    用戶接口

    硬件接口

    軟件接口

    通訊接口需求

  每一接口的需求

    接口優先級

    接口類型

    接口傳送單個數據元素的特性

    接口傳送數據元素集合的特性

    接口使用通訊方法的特性

    接口使用協議的特性

    接口實體的物理兼容性

   計算機資源需求

    硬件需求

    軟件需求

    通訊需求

  故障處理

    說明屬於軟件系統的問題

    發生錯誤時的錯誤信息

    發生錯誤時可能採起的補救措施

2.數據需求說明

  描述了再整個開發過程當中所需處理的數據,以及採集數據的要求等。

 靜態數據

 動態輸入數據

 動態輸出數據

 內部生成數據

 數據約定(容量,文件,記錄和數據元素個數的最大值)

 數據的採集

    要求和範圍

    輸入數據的來源

    輸入數據所用的媒體和硬設備

    輸出數據的接受者

    輸出數據的形式和硬設備

    數據值的範圍

    量綱

    更新和處理的頻度

 預處理

 影響

 

正式需求評審所關心的一些因素

 

1.功能:是否清楚、明確地描述了全部的功能

2.性能:是否精確描述了全部性能需求和可容忍的性能下降程度

3.接口:是否清楚地定義了全部的外部接口和內部接口

4.數據:是否認義了系統全部的輸入輸出,合法性檢查,異常數據結果的描述

5.硬件:內存需求和存儲需求的極端值

6.軟件:是否指定了須要的軟件環境和硬件系統

7.通訊:是否指定了目標網絡和必需的網絡協議

 

 

 

 

 

 

 

 

 

結構化設計

 模塊結構及表示

1.模塊

一個軟件系統一般由不少模塊組成,結構化程序設計中的函數和子程序均可稱爲模塊,它是程序語句按邏輯關係創建起來的組合體。

模塊用矩形框表示,並用模塊的名字標記它。

模塊能夠按照在軟件系統中的功能劃分爲四種類型

1.1傳入模塊

  傳入模塊的功能是去的數據或輸入數據,通過某些處理,再將其傳送給其餘模塊。

  它傳送的數據流A叫作邏輯輸入數據流,數據A可能來自外部,也可能來自系統的其餘模塊

1.2傳出模塊

  傳出模塊的功能是輸出數據,在輸出以前可能進行某些處理,數據可能輸出到系統的外部,也可能

會輸出到其餘模塊進行下一步處理,但最終的目標是輸出到系統的外部

1.3變換模塊

  變換模塊也叫加工模塊,他從上級調用模塊取得數據,進行特定的處理轉換成其餘形式,再將加工結果返回給調用模塊。

1.4協調模塊

  協調模塊通常自己不對數據進行加工,

2.模塊結構

  2.1樹狀結構

·   2.2網狀結構

3.結構圖

  結構圖是準確表達模塊結構的圖形表示工具。它做爲軟件設計文檔的一部分,清楚地反映出軟件模塊之間的層次調用關係和聯繫。

它不只嚴格地定義了各個模塊的名字、功能和接口,並且還集中地反應了設計思想。

 

3.1模塊的調用關係和接口

  在結構圖中,兩個模塊之間用單向箭頭聯結。箭頭從調用模塊指向被調用模塊,表示調用模塊調用了被調用模塊

  但其中隱含了一層意思,就是被調用模塊執行完成以後,控制又返回了控制模塊。

注意,有些結構圖中模塊間的調用關係將箭頭簡單地畫爲連線,這時只要調用與被調用模塊的上下位置保持就是容許的。

 

3.2模塊間的信息傳遞

  當一個模塊調用另外一個模塊時,調用模塊把數據或控制信息傳送給被調用模塊,以使被調用模塊可以運行

而被調用模塊在執行過程當中又把它產生的數據或控制信息回送給調用模塊。

  爲了表示在模塊之間傳遞的數據或控制信息,在聯結模塊的箭頭旁邊給出短箭頭,而且用尾端有空心圓的短箭頭表示數據信息,

  用尾端有實心圓的短箭頭表示控制信息。

一般在短箭頭附近應注有信息的名字。、

 

3.3兩個輔助符號

  當模塊A有條件地調用另一個模塊B時,在模塊A的箭頭尾部標一個菱形符號。

當一個模塊A反覆地調用模塊C和模塊D時,在調用箭頭尾部則標以一個弧形符號。

這兩個符號的條件一般無需註明

 

3.4結構圖的形態特徵

  模塊間的連線:模塊之間的調用箭頭也可用沒有箭頭方向的直線表示

          在用直線表示時,用模塊所處的位置表示他們之間的調用關係,位於上方的模塊調用位於下方的模塊。

  深度、寬度、模塊的扇入扇出。

4數據結構及表示

  數據結構是數據的各個元素之間邏輯關係的一種表示

  數據結構設計應肯定數據的組織、存取方式、相關程度以及信息的不一樣處理方法。

  標量是全部數據結構中最簡單的一種。所謂標量項就是單個的數據元素,例如一個布爾量,一個整數、實數...。

  若將多個標量按某種前後順序組織在一塊兒時,就造成了線性結構。

  能夠用鏈表或順序向量(又稱爲一維數組)來存儲線性結構的數據。

  把順序向量能夠擴展到n維向量空間。

組合上述基本數據結構能夠構成其餘數據結構。

 

 

體系結構設計

 

基於數據流方法的設計過程

1.複查並精化數據流圖

2.肯定數據流圖中數據流的類型,典型的數據流類型有變換型數據流和事務型數據流,數據流類型決定了映射方法。

3.導出初始的軟件結構圖

4.逐級分解

5.精化軟件結構

6.導出接口描述和全局數據結構:對每個模塊,給出進出該模塊的信息,即該模塊的接口描述

相關文章
相關標籤/搜索