軟件分析和設計工具
軟件分析和設計包括所有的活動把它有助於要求規範轉化爲執行。需求規範指定從該軟件的所有功能性和非功能性要求。這些要求來規範人類閱讀和理解文檔的形狀,到計算機無關.
軟件分析和設計是中間階段把它有助於人類可讀的要求轉化爲實際的代碼.
讓我們來看看使用的軟件設計師很少的分析和設計工具::
數據流圖
數據流圖是在信息系統中流動的數據的圖形表示。它是能夠描述輸入數據流,輸出的數據流和存儲的數據。DFD中沒有提到這麼數據流動在系統裏面.
有DFD和流程之間的顯着差異。流程圖描述了在流動的程序模塊的控制。 DFD的描述中,系統流數據的各個層次。 DFD不含有任何控制或分支元件。
DFD的類型
數據流圖是邏輯或物理.
邏輯DFD - 這種類型的DFD的集中在系統進程和流數據的系統中。例如,在銀行軟件系統,數據是如何的不同實體之間移動.
物理DFD - 這種類型的DFD的顯示瞭如何在數據流系統中的實際實現。它是更具體的並且接近實現。.
DFD組件
DFD可以代表來源,目的地,存儲和流部件採用了以下一組數據 -
實體 - 實體是源和信息數據的目的地。實體是由矩形與各自的名稱所表示.
過程 - 活動和行動上的數據所用圓或圓邊矩形表示.
數據存儲 - 數據存儲有兩個變體兩個變體 - 它可以被表示爲與不存在兩個小側壁的矩形或作爲開放雙面矩形,只有一個側面丟失。.
數據流 - 數據移動顯示用尖銳的箭頭。數據的移動,從箭頭所指的基表示爲它的朝向箭頭作爲目標的頭部源.
DFD水平
0級 - 最高抽象層次的DFD被稱爲0級DFD,它描述了整個信息系統作爲一個圖表隱藏所有的底層細節。級別0的DFD也被稱爲上下文級別的DFD.
等級1 - 0級DFD被分解成更具體的,1級的DFD。級別1 DFD描繪了系統和流程的各種模塊之間的數據的基本單元。 1級DFD也提到基本流程和信息來源.
2級 - 在這個層面上,DFD數據顯示在第1級所提到的模塊內的流動方式1.
更高級別的DFD可以轉化成更具體的較低級別的DFD同的理解更深層次,除非說明書中所需要的電平來實現的.
結構圖
結構圖是從數據流圖得出的圖表。它代表了系統中比DFD更多細節。它打破了整個系統進入最低的功能模塊,描述的功能和系統的各個模塊的子功能以比DFD更大的細節.
結構圖表示模塊的層次結構。在每一層執行某一特定任務.
以下是在建結構圖中使用的符號 -
模塊 - 它代表的過程或子程序或任務。控制模塊轉移到多個子模塊。庫模塊可重複使用和可調用任何模塊
狀態 - 它是由小鑽石在模塊的基礎上表示。它描述了該控制模塊可以選擇任意的子例程的基礎上的一些條件.
跳 - 箭頭所示指向在模塊內部,以描繪該控制裝置將在上述子模塊的中間跳.
循環 - 彎曲的箭頭表示循環模塊中。覆蓋模塊的循環重複執行所有的子模塊.
數據流 - 並在後面加上空圓A的箭頭表示數據流.
控制流 - 並在後面加上填充圓A的箭頭代表控制流.
HIPO圖
HIPO(分層輸入過程輸出)圖是兩個有組織的方法相結合來分析系統,並提供文檔的方式。黑豹模型是由IBM公司在1970年一年的發展.
HIPO圖表示模塊中的軟件系統的層次結構。分析員使用HIPO圖,以獲得對系統功能的高級視圖。它分解以分層方式功能於子功能。它示出了由系統執行的功能.
HIPO圖是很好的文檔的目的。它們的圖形表示更容易爲設計者和管理者得到了系統結構的圖案構思.
相反,IPO(輸入過程輸出)圖,它描繪了在一個模塊的控制和數據的流動,HIPO不提供關於數據流或控制流的任何信息.
示例
HIPO圖圖表用於層次化表示,軟件程序的IPO結構設計以及相同的文檔.
結構化英語
大多數程序員沒有意識到軟件的大畫面,使他們只能依靠他們的經理告訴他們做什麼。這是更高的軟件管理的責任提供準確的信息給程序員開發準確又快速的代碼.
其他形式的方法,它使用圖形或圖表,可以被不同的人,有時不同的解釋.
因此,分析師和軟件的設計者想出了諸如結構化英語的工具。這無非是需要什麼代碼,以及如何編寫它的描述。結構化英語可以幫助程序員寫出無錯的代碼.
其他形式的方法,它使用圖形或圖表,可能有時會被不同的人有不同的解釋。在這裏,無論是結構化英語和僞代碼試圖減輕這種認識差距.
結構化英語是它使用結構化編程範式簡單的英語單詞。這不是最終的代碼,而是一種描述所需要的代碼,以及如何編寫它。以下是結構化編程的一些標記.
IF-THEN-ELSE, DO-WHILE-UNTIL
分析師使用相同的變量和數據的名稱,它存儲在數據字典,使得它更容易編寫和理解的代碼.
例如
我們採取的網上購物環境的客戶身份驗證的相同的例子。此過程來驗證客戶可能被寫在結構化英文爲:
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
以結構化英文代碼更像是每天的日常英語口語。它不能直接作爲軟件代碼實現。結構化英語是獨立於編程語言.
僞碼
僞代碼編寫更接近的編程語言。它可以被認爲是增加的編程語言,完整的評價和說明.
僞代碼,避免了變量聲明,但他們使用的是一些實際的編程語言的結構寫的,如C,FORTRAN和Pascal等。.
僞代碼中包含結構比英語更多的編程細節。它提供了執行任務,因爲如果一臺計算機正在執行的代碼的方法.
示例
程序打印斐波那契數最多n個數字.
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; } }
決策表
決策表代表的條件和相應的行動將要採取的解決這些問題,以結構化的表格格式.
它是一個強大的工具來調試並防止出錯。它可以幫助組類似信息放入一個表,然後通過組合表它提供了簡單,方便決策.
建立決策表
要建立決策表,開發人員必須遵循四個基本步驟:
- 確定要解決的所有可能的條件
- 確定所有確定的條件下操作
- 創造最大可能的規則
- 定義動作爲每個規則
決策表應該由最終用戶進行驗證,並可以通過近來消除重複的規則和操作簡化.
示例
讓我們以一天到一天的問題,一個簡單的例子與我們的互聯網連接。我們首先確定同時啓動互聯網和各自可能的解決方案可能出現的所有問題.
我們列出列的條件下欄動作準動作在所有可能出現的問題.
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
Check internet router
X
X
X
X
Restart Web Browser
X
Contact Service provider
X
X
X
X
X
X
Do no action
表 : 決策表 – 在內部網絡故障排除
實體 - 關係模型
實體關係模型是基於真實世界的實體和它們之間的關係的概念數據庫模型的類型。我們可以映射真實世界的場景上的ER數據庫模型。 ER模型創建一組實體及其屬性,一組約束和關係當中.
ER模型最適用於數據庫的概念設計。 ER模型可以如下表示:
實體 - 在ER模型中的實體是一個真實的世界之中,其中有 一些屬性稱爲屬性. 每個屬性是由它的相應的一組值 ,稱爲域定義.
例如, 考慮一個學校的數據庫。在這裏,學生是一個實體。學生也有類似的名稱,ID,年齡,階級等.
關係 - 實體之間的邏輯關聯被稱爲 關係. 關係映射以各種方式與實體。映射基數確定協會的兩個實體之間的數.
映射基數:
- 一對一的
- 一對多
- 多對一
- 多對多
數據字典
數據字典是關於數據的信息的集中收集。它存儲的含義和數據的起源,它與其他數據的關係,爲使用等數據字典具有的所有名稱的嚴格定義,以便於用戶和軟件設計的數據格式.
數據字典是經常引用爲存儲庫的元數據(關於數據的數據)。它是隨着軟件程序的DFD(數據流圖)模型中創建並預計要被更新時,DFD被改變或更新.
數據字典的規定
該數據是通過數據字典中引用而設計和實現的軟件。數據字典中刪除模棱兩可的任何機會。它可以幫助程序員和設計師同步的保管工作,同時在程序中使用同一個對象的引用隨處可見.
數據字典提供了完整的數據庫系統中的一個位置的文檔的一種方法。 DFD的驗證是通過使用數據字典.
內容
數據字典中應包含有關以下內容的信息
- 數據流
- 數據結構
- 數據元素
- 數據存儲
- 數據處理
數據流是爲研究早期和描述所代表的代數形式通過的DFD來描述
=
Composed of
{}
Repetition
()
Optional
+
And
[ / ]
Or
示例
Address = House No + (Street / Area) + City + State
Course ID = Course Number + Course Name + Course Level + Course Grades
數據元素
數據元素組成的名稱和數據的描述和控制項目,內部或外部數據存儲等具有以下細節:
- 主名稱
- 二次名 (Alias)
- 用例(如何以及在何處使用)
- 內容描述(符號等)
- 補充資料(預設值,約束等)
數據存儲
它存儲從在那裏的數據輸入到系統中,存在從系統中取出的信息。數據存儲可以包括 -
- 文件
- 內部軟件.
- 外部軟件,但在相同的機器上
- 外部的軟件和系統,位於不同的系統
- 表
- 命名規則
- 索引屬性
數據處理
有兩種類型的數據處理:
- 邏輯: 由於用戶看到它
- 物理: 隨着軟件看到它