1. 什麼是系統設計
1)系統分析階段解決“做什麼”的問題,而系統設計階段解決“怎麼做”的問題。
2)系統設計的主要內容包括概要設計和詳細設計。
3)概要設計:系統總體結構設計,確定每個模塊的功能和調用關係,形成軟件的模塊結構圖,即系統結構圖。
4)詳細設計:詳細設計又可分爲多種,
例如,網絡設計、代碼設計、輸入/輸出設計、處理流程設計、數據存儲設計、用戶界面設計、安全性和可靠性設計等。
遵循原則:
1)輸入數據最少原則
2)簡單性原則。
3)儘早驗證原則。
4)少轉換原則。
5)用戶界面設計
1)置於用戶控制之下。在定義人機交互方式時,不強迫用戶採用不是必須的或者不情願的方式來進行操作,允許交互的中斷和撤銷。
2)減輕用戶的記憶負擔。
3)保持界面一致性。
以上三條原則由着名用戶界面設計專家Theo Mandel博士所創造,通常稱之爲人機交互的“黃金三原則”。
6) 安全性和可靠性設計
安全性和可靠性設計的目的是確保系統的安全性和可靠性,對系統的運行環境和數據處理進行有效的控制,保證系統安全、有效地運行
2. 流程設計
在處理流程設計過程中,爲了更清晰地表達過程規則說明,陸續出現了一些用於表示處理流程的工具,這些工具包括三類,分別是圖形工具、表格工具和語言工具。其中常見的圖形工具包括程序流程圖、IPO圖、盒圖、問題分析圖、判定樹,表格工具包括判定表,語言工具包括過程設計語言等。
1)程序流程圖
順序型/選擇型/多分枝選擇型/DO-WHILE循環,直到循環
2)IPO圖
IPO圖用來描述每個模塊的輸入、輸出和數據加工,其導致結構如圖所示。
3)N-S圖
在N-S圖中也包括五種控制結構,分別是順序型、選擇型、WHILE循環型(當型循環)、UNTIL循環型(直到型循環)和多分支選擇型,任何一個N-S圖都是這五種基本控制結構相互組合與嵌套的結果。
4) 問題分析圖
5) 過程設計語言
過程設計語言(Process Design Language,PDL)也稱爲結構化語言或僞代碼(pseudo code),它是一種混合語言,採用自然語言的詞彙和結構化程序設計語言的語法,用於描述處理過程怎麼做,類似於編程語言。
6) 判定表
對於具有多個互相聯繫的條件和可能產生多種結果的問題,用結構化語言描述則顯得不夠直觀和緊湊,這時可以用以清楚、簡明爲特徵的判定表(decision table)來描述
7) 判定樹
3. 結構化設計
結構化設計(Structured Design,SD)是一種面向數據流的方法,它以SRS和SA階段所產生的數據流圖和數據字典等文檔爲基礎,是一個自頂向下、逐步求精和模塊化的過程。
在SD中,這種功能分解就是將系統劃分爲模塊,模塊是組成系統的基本單位,它的特點是可以自由組合、分解和變換,系統中任何一個處理功能都可以看成一個模塊。
一個模塊應具備以下四個要素:
1)輸入輸出
2)處理功能
3)內部數據
4)程序代碼
在模塊劃分時需要遵循如下原則:
1)模塊的大小要適中。代碼行數不要過多;
2)模塊的扇入和扇出要合理。一個模塊的扇出是指該模塊直接調用的下級模塊的個數;一個模塊的扇入是指直接調用該模塊的上級模塊的個數;扇入大表示模塊的複用程度高。
3)深度和寬度適當。層數是否恰當,寬度是軟件結構中同一個層次上的模塊總數的最大值,一般說來,寬度越大系統越複雜,對寬度影響最大的因素是模塊的扇出。
一般而言,在SC中存在四種類型的模塊:
1) 傳入模塊。傳入模塊從下屬模塊中獲取數據,經過某些處理,再將其傳送給上級模塊。
2) 傳出模塊。傳出模塊從上級模塊中獲取數據,進行某些處理,再將其傳送給下屬模塊
3) 變換模塊。變換模塊也稱爲加工模塊,它從上級模塊獲取數據,進行特定的處理,然後轉換成其他形式,再傳送回上級模塊,大多數計算模塊(原子模塊)都屬於這一類。
4) 協調模塊。協調模塊是對所有下屬模塊進行協調和管理的模塊。在系統的I/O部分或數據加工部分可以找到這樣的模塊,在一個好的SC中,協調模塊應在較高層出現
系統結構圖(Structure Chart,SC)又稱爲模塊結構圖:
SC包括模塊、模塊之間的調用關係、模塊之間的通信和輔助控制符號等四個部分。
變換型SC:
信息沿着輸入通道進入系統,然後通過變換中心(也稱爲主加工)處理,再沿着輸出通道離開系統,具有這一特性的信息流稱爲變換流。 具有變換流型的SC可明顯地分成輸入、變換(主加工)和輸出三大部分,它的功能是將輸入的數據經過加工後輸出。
事務型SC
信息沿着輸入通道到達一個事務中心,事務中心根據輸入信息(即事務)的類型在若干個動作序列(稱爲活動流)中選擇一個來執行,這種信息流稱爲事務流。