軟件工程 分析和設(shè)計工具

2021-10-27 09:40 更新

軟件分析和設(shè)計包括所有有助于將需求規(guī)格說明轉(zhuǎn)換為實現(xiàn)的活動。需求規(guī)格說明指定了軟件的所有功能和非功能的期望。這些需求規(guī)范以人類可讀和可理解的文檔形式出現(xiàn),計算機與之無關(guān)。

軟件分析和設(shè)計中間階段,幫助將人類可讀的需求轉(zhuǎn)化為實際代碼。

讓我們來看看設(shè)計師使用的幾個分析和設(shè)計工具:

數(shù)據(jù)流圖

數(shù)據(jù)流圖是在信息系統(tǒng)中數(shù)據(jù)流的圖形表示。它是能夠描述輸入數(shù)據(jù)流,輸出數(shù)據(jù)流和存儲數(shù)據(jù)。DFD中沒有提到有關(guān)數(shù)據(jù)如何流經(jīng)系統(tǒng)的任何內(nèi)容。

DFD 和流程圖之間有著一個顯著的差異。流程圖描述了在流動的程序模塊的控制流程。 DFD的描述了系統(tǒng)中各個級別的數(shù)據(jù)流。 DFD 不含有任何控制或分支元素。

DFD的類型

數(shù)據(jù)流圖是邏輯或物理.

  • 邏輯DFD: 這種類型的 DFD 專注于系統(tǒng)進程和系統(tǒng)中的流數(shù)據(jù)。例如,在銀行軟件系統(tǒng)中,數(shù)據(jù)是如何的不同實體之間移動。
  • 物理DFD: 這種類型的 DFD 顯示了數(shù)據(jù)流是如在系統(tǒng)中實際實現(xiàn)的。它是更具體,更接近于實現(xiàn)。

DFD組件

DFD 可以使用以下組件集表示數(shù)據(jù)的來源、目的地、存儲和流:

  • 實體:是信息數(shù)據(jù)的來源和地。實體是由各自名稱的矩形表示。
  • 過程:對數(shù)據(jù)采取的活動和操作由圓形或圓邊矩形表示。
  • 數(shù)據(jù)存儲:數(shù)據(jù)存儲有兩種變體,它可以表示沒有兩個較小邊的矩形,或者表示為僅缺少一側(cè)的開發(fā)邊矩形。
  • 數(shù)據(jù)流:數(shù)據(jù)的移動用尖箭頭表示。數(shù)據(jù)移動顯示為從箭頭底部作為其源向箭頭頭部作為目的地。

DFD水平

  • 0級?- 最高抽象層次的 DFD 被稱為 0 級 DFD,它將整個信息系統(tǒng)描述為一個隱藏所有底層細節(jié)的圖表。級別 0 DFD 也被稱為上下文級別 DFD。
  • 1級?- 0 級 DFD 被細分成更具體的 1 級 DFD。級別 1 DFD 描述了系統(tǒng)中的基本模塊以及各個模塊之間的數(shù)據(jù)流。1 級 DFD 還提到了基本流程和信息來源。
  • 2級?- 在這個級別,DFD 顯示了數(shù)據(jù)級別 1 中所提到的模塊內(nèi)的流動方式。
    除非達到所需的規(guī)范級別,否則更高級別的 DFD 可以轉(zhuǎn)換為更具體的更低級別的 DFD,具有更深層次的理解。

結(jié)構(gòu)圖

結(jié)構(gòu)圖是衍生自數(shù)據(jù)流圖的圖表。它比 DFD 更詳細地表示系統(tǒng)。它將整個系統(tǒng)分解為最低的功能模塊,比 DFD 更詳細地描述系統(tǒng)每個模塊的功能和子功能。

結(jié)構(gòu)圖表示模塊的層次結(jié)構(gòu)。在每一層執(zhí)行某一特定任務.

以下是在建結(jié)構(gòu)圖中使用的符號:

  • 模塊?- 它代表進程或子程序或任務。一個控制模塊分支到一個以上的子模塊。庫模塊可重復使用并可從任何模塊調(diào)用。
  • 狀態(tài)?- 它由模塊底部的小菱形表示。它描述了控制模塊可以根據(jù)某些條件選擇任意的子程序。
  • 跳轉(zhuǎn)?- 顯示的箭頭指向模塊內(nèi)部,表示控件將在子模塊的中間跳轉(zhuǎn)。
  • 循環(huán)?- 彎曲的箭頭表示模塊中的循環(huán)。循環(huán)重復執(zhí)行模塊覆蓋的所有子模塊。
  • 數(shù)據(jù)流?- 末端帶有空心圓圈的有向箭頭表示數(shù)據(jù)流。
  • 控制流?- 末端帶有實心圓圈的有向箭頭表示控制流。

HIPO圖

HIPO(HIerarchical Input Process Output,分層輸入過程輸出)圖是結(jié)合兩種有組織的方法來分析系統(tǒng)并提供文檔的手段。HIPO 模型由 IBM 于 1970 年開發(fā)。

HIPO 圖表示軟件系統(tǒng)模塊的層次結(jié)構(gòu)。分析師使用 HIPO 圖,以獲得對系統(tǒng)功能的高級視圖。它以分層方式將功能分解為子功能。它描述了系統(tǒng)執(zhí)行的功能。

HIPO 圖適用于文檔目的。它們的圖形表示使設(shè)計人員和管理人員更容易獲得系統(tǒng)結(jié)構(gòu)的圖形概念。

與描述模塊中控制和數(shù)據(jù)流的 IPO(Input Process Output,輸入過程輸出)圖相比,HIPO 不提供任何有關(guān)數(shù)據(jù)流或控制流的信息。

示例

HIPO圖、層級表示的 IPO 圖這兩個部分都用于軟件程序的結(jié)構(gòu)設(shè)計及其文檔。

結(jié)構(gòu)化英語

大多數(shù)程序員不了解軟件的大局,所以他們只依賴于他們的經(jīng)理告訴他們做什么。為程序員提供準確的信息以開發(fā)準確而快速的代碼是高級軟件管理人員的責任。

因此,該軟件的分析師和設(shè)計師提出了諸如結(jié)構(gòu)化英語之類的工具。它只不過是對編碼所需的內(nèi)容以及如何編碼的描述。結(jié)構(gòu)化英語幫助程序員編寫無錯誤的代碼。

使用圖形或圖表的其他形式的方法有時可能會被不同的人以不同的方法理解。在這里,結(jié)構(gòu)化英語和偽代碼試圖縮小這種理解差距。

結(jié)構(gòu)化英語是它在結(jié)構(gòu)化編程范式中使用簡單的英語單詞。但這不是最終的代碼,而是一種描述需要編碼什么以及如何編碼。以下是結(jié)構(gòu)化編程的一些標記。

IF-THEN-ELSE,
DO-WHILE-UNTIL

分析師使用相同的變量和數(shù)據(jù)的名稱,它存儲在數(shù)據(jù)字典,這使得編寫和理解代碼變的更加簡單。

例如

我們以在線購物環(huán)境中的客戶身份驗證為例。此驗證客戶的程序可以用結(jié)構(gòu)化英語編寫為:

Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
    Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
   PRINT error message
   Call procedure NEW_CUSTOMER_REQUEST()
ENDIF

用結(jié)構(gòu)化英語編寫的代碼更像是日??谡Z。它不能直接作為軟件代碼來實現(xiàn)。結(jié)構(gòu)化英語獨立于編程語言。

偽代碼

偽代碼的編寫更接近于編程語言。它可以被認為是增強的編程語言,充滿了注釋和描述。

偽代碼避免了變量聲明,但它們使用一些實際的編程語言結(jié)構(gòu)編寫的,如 C,F(xiàn)ortran 和 Pascal 等。

偽代碼包含比結(jié)構(gòu)化英語更多的編程細節(jié)。它提供了一種執(zhí)行任務的方法,就好像計算機正在執(zhí)行代碼一樣。

示例

打印最多 n 個數(shù)字的斐波那契數(shù)列的程序。

void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
   if a greater than b 
   {
      Increase b by a;
      Print b;
   } 
   else if b greater than a
   {
      increase a by b;
      print a;
   }
}

決策表

決策表以結(jié)構(gòu)化的表格格式表示條件以及為解決這些條件而要采取的相應措施。

它是調(diào)試和防止錯誤的強大工具。它有助于將相似的信息分組到一個表中,然后通過組合表來提供簡單方便的決策。

建立決策表

要建立決策表,開發(fā)人員必須遵循四個基本步驟:

  • 確定要解決的所有可能條件
  • 確定針對所有已識別條件的操作
  • 創(chuàng)建最大可能規(guī)則
  • 為每個規(guī)則定義操作

示例

讓我們舉一個簡單的例子來說明我們的互聯(lián)網(wǎng)連接的日常問題。我們首先確定啟動互聯(lián)網(wǎng)時可能出現(xiàn)的所有問題及其各自可能的解決方案。

我們列出了列條件下所有可能的問題以及列操作下的預期操作。

- Conditions/Actions Rules
Conditions Shows Connected N N N N Y Y Y Y
- Ping is Working N N Y Y N N Y Y
- Opens Website Y N Y N Y N Y N
Actions Check network cable X
- heck internet router X X X X
- tart Web Browser X
- ontact Service provider X X X X X X
- Do no action

表 : 決策表 – 在內(nèi)部網(wǎng)絡(luò)故障排除

實體 - 關(guān)系模型

實體關(guān)系模型是一種基于現(xiàn)實世界實體和它們之間的關(guān)系概念的數(shù)據(jù)庫模型。我們可以將現(xiàn)實世界的場景映射到 ER 數(shù)據(jù)庫模型上。ER 模型創(chuàng)建一組實體及其屬性、一組約束和它們之間的關(guān)系。

ER 模型最適用于數(shù)據(jù)庫的概念設(shè)計。 ER 模型可以如下表示:

  • 實體:ER 模型中的實體是真實世界的存在,它具有一些稱為屬性的屬性。每個屬性都由其相應的值集定義,稱為域。
    例如, 考慮一個學校的數(shù)據(jù)庫。在這里,學生是一個實體。學生也有各種屬性,如姓名、身份證、年齡和班級等。
  • 關(guān)系:實體之間的邏輯關(guān)聯(lián)被稱為關(guān)系。關(guān)系以各種方式與實體映射。映射基數(shù)定義了兩個實體之間的關(guān)聯(lián)數(shù)。
    映射基數(shù):
    • 一對一
    • 一對多
    • 多對一
    • 多對多

數(shù)據(jù)字典

數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集中收集。它存儲數(shù)據(jù)的含義和來源、它與其他數(shù)據(jù)的關(guān)系、使用的數(shù)據(jù)格式等。數(shù)據(jù)字典對所有名稱都有嚴格的定義,以方便用戶和軟件設(shè)計人員。

數(shù)據(jù)字典通常被稱為元數(shù)據(jù)(關(guān)于數(shù)據(jù)的數(shù)據(jù))存儲庫。它是與軟件程序的 DFD(數(shù)據(jù)流圖)模型一起創(chuàng)建的,并且預計會在 DFD 更改或更新時進行更新。

數(shù)據(jù)字典的要求

在設(shè)計和實現(xiàn)軟件時通過數(shù)據(jù)字典引用數(shù)據(jù)。數(shù)據(jù)字典消除了任何歧義的可能性。它有助于保持程序員和設(shè)計人員的工作同步,同時在程序中的任何地方使用相同的對象引用。

數(shù)據(jù)字典為整個數(shù)據(jù)庫系統(tǒng)提供了一種在一個地方記錄的方式。DFD 的驗證是使用數(shù)據(jù)字典進行的。

內(nèi)容

數(shù)據(jù)字典中應包含以下內(nèi)容的信息

  • 數(shù)據(jù)流
  • 數(shù)據(jù)結(jié)構(gòu)
  • 數(shù)據(jù)元素
  • 數(shù)據(jù)存儲
  • 數(shù)據(jù)處理

數(shù)據(jù)流是通過前面研究過的 DFD 來描述的,并以所描述的代數(shù)形式表示。

= Composed of
{} Repetition
() Optional
+ And
[ / ] Or

示例

Address = House No + (Street / Area) + City + State


Course ID = Course Number + Course Name + Course Level + Course Grades

數(shù)據(jù)元素

數(shù)據(jù)元素由數(shù)據(jù)和控制項的名稱和描述、內(nèi)部或外部數(shù)據(jù)存儲等組成,具有以下詳細信息:

  • 主要名稱
  • 次要名稱 (別名)
  • 用例(如何以及在何處使用)
  • 內(nèi)容描述(符號等)
  • 補充信息(預設(shè)值,約束等)

數(shù)據(jù)存儲

它存儲數(shù)據(jù)從何處進入系統(tǒng)和存在于系統(tǒng)外的信息。數(shù)據(jù)存儲可能包括:

  • 文件
    • 軟件內(nèi)部。
    • 軟件外部,但在同一臺機器上。
    • 位于不同機器上的軟件和系統(tǒng)外部。
    • 命名約定
    • 索引屬性

數(shù)據(jù)處理

有兩種類型的數(shù)據(jù)處理:

  • 邏輯:?正如用戶所見。
  • 物理:?正如軟件所見。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號