軟件分析和設(shè)計包括所有有助于將需求規(guī)格說明轉(zhuǎn)換為實現(xiàn)的活動。需求規(guī)格說明指定了軟件的所有功能和非功能的期望。這些需求規(guī)范以人類可讀和可理解的文檔形式出現(xiàn),計算機與之無關(guān)。
軟件分析和設(shè)計中間階段,幫助將人類可讀的需求轉(zhuǎn)化為實際代碼。
讓我們來看看設(shè)計師使用的幾個分析和設(shè)計工具:
數(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 不含有任何控制或分支元素。
數(shù)據(jù)流圖是邏輯或物理.
DFD 可以使用以下組件集表示數(shù)據(jù)的來源、目的地、存儲和流:
結(jié)構(gòu)圖是衍生自數(shù)據(jù)流圖的圖表。它比 DFD 更詳細地表示系統(tǒng)。它將整個系統(tǒng)分解為最低的功能模塊,比 DFD 更詳細地描述系統(tǒng)每個模塊的功能和子功能。
結(jié)構(gòu)圖表示模塊的層次結(jié)構(gòu)。在每一層執(zhí)行某一特定任務.
以下是在建結(jié)構(gòu)圖中使用的符號:
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è)計及其文檔。
大多數(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ā)人員必須遵循四個基本步驟:
讓我們舉一個簡單的例子來說明我們的互聯(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)系模型是一種基于現(xiàn)實世界實體和它們之間的關(guān)系概念的數(shù)據(jù)庫模型。我們可以將現(xiàn)實世界的場景映射到 ER 數(shù)據(jù)庫模型上。ER 模型創(chuàng)建一組實體及其屬性、一組約束和它們之間的關(guān)系。
ER 模型最適用于數(shù)據(jù)庫的概念設(shè)計。 ER 模型可以如下表示:
數(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è)計和實現(xiàn)軟件時通過數(shù)據(jù)字典引用數(shù)據(jù)。數(shù)據(jù)字典消除了任何歧義的可能性。它有助于保持程序員和設(shè)計人員的工作同步,同時在程序中的任何地方使用相同的對象引用。
數(shù)據(jù)字典為整個數(shù)據(jù)庫系統(tǒng)提供了一種在一個地方記錄的方式。DFD 的驗證是使用數(shù)據(jù)字典進行的。
數(shù)據(jù)字典中應包含以下內(nèi)容的信息
數(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ù)和控制項的名稱和描述、內(nèi)部或外部數(shù)據(jù)存儲等組成,具有以下詳細信息:
它存儲數(shù)據(jù)從何處進入系統(tǒng)和存在于系統(tǒng)外的信息。數(shù)據(jù)存儲可能包括:
有兩種類型的數(shù)據(jù)處理:
更多建議: