軟體分析和設計包括所有的活動把它有助於要求規範轉化為執行。需求規範指定從該軟體的所有功能性和非功能性要求。這些要求來規範人類閱讀和理解文件的形狀,到計算機無關.
軟體分析和設計是中間階段把它有助於人類可讀的要求轉化為實際的程式碼.
讓我們來看看使用的軟體設計師很少的分析和設計工具::
資料流圖是在資訊系統中流動的資料的圖形表示。它是能夠描述輸入資料流,輸出的資料流和儲存的資料。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(分層輸入過程輸出)圖是兩個有組織的方法相結合來分析系統,並提供文件的方式。黑豹模型是由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
資料元素組成的名稱和資料的描述和控制專案,內部或外部資料儲存等具有以下細節:
它儲存從在那裡的資料輸入到系統中,存在從系統中取出的資訊。資料儲存可以包括 -
有兩種型別的資料處理: