詳細設計

詳細設計

詳細設計是軟體工程中軟體開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模組實現算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的嵌入式系統產品。詳細設計,應該完成詳細設計文檔,主要是模組的詳細設計方案說明。詳細設計里的資料庫設計就應該是一份完善的數據結構文檔,就是一個包括類型、命名、精度、欄位說明、表說明等內容的數據字典。詳細設計則是重點在描述系統的實現方式,各模組詳細說明實現功能所需的類及具體的方法函式,包括涉及到的sql語句等。

方法

傳統軟體開發方法的詳細設計主要是用結構化程式設計法。詳細設計的表示工具有圖形工具和語言工具。圖形工具有業務流圖、程式流程圖、PAD圖(Problem Analysis Diagram)、NS流程圖(由 Nassi和 Shneidermen開發,簡稱 NS)。語言工具有偽碼和PDL(Program Design Language)等。

設計工具

1.圖形工具

利用圖形工具可以把過程的細節用圖形描述出來。

2.表格工具

可以用一張表來描述過程的細節,在這張表中列出了各種可能的操作和相應的條件。

3.語言工具

用某種高級語言(稱之為偽碼)來描述過程的細節。概要設計和詳細設計的區別與聯繫。

常用工具

(1)程式流程圖。程式流程圖又稱為程式框圖,是使用最廣泛然而也是用得最混亂的一種描述程式邏輯結構的工具。它用方框表示一個處理步驟,菱形表示一個邏輯條件,箭頭表示控制流向。其優點是:結構清晰,易於理解,易於修改。缺點是:只能描述執行過程而不能描述有關的數據。

(2)盒圖。盒圖是一種強制使用結構化構造的圖示工具,也稱為方框圖。其具有以下特點:功能域明確、不可能任意轉移控制、很容易確定局部和全局數據的作用域、很容易表示嵌套關係及模板的層次關係。

(3)PAD圖。PAD是一種改進的圖形描述方式,可以用來取代程式流程圖,比程式流程圖更直觀,結構更清晰。最大的優點是能夠反映和描述自頂向下的歷史和過程。PAD提供了5種基本控制結構的圖示,並允許遞歸使用。

PAD的特點有:使用PAD符號設計出的程式代碼是結構化程式代碼;PAD所描繪的程式結構十分清晰;用PAD圖表現程式的邏輯易讀、易懂和易記;容易將PAD圖轉換成高級語言源程式自動完成;即可以表示邏輯,也可用來描繪數據結構;支持自頂向下方法的使用。

(4)PDL。PDL也可稱為偽碼或結構化語言,它用於描述模組內部的具體算法,以便開發人員之間比較精確地進行交流。語法是開放式的,其外層語法是確定的,而內層語法則不確定。外層語法描述控制結構,它用類似於一般程式語言控制結構的關鍵字表示,所以是確定的。內層語法描述具體操作,考慮到不同軟體系統的實際操作種類繁多,內層語法因而不確定,它可以按系統的具體情況和不同的設計層次靈活選用,實際上任意英語語句都可用來描述所需的具體操作。用它來描述詳細設計,工作量比畫圖小,又比較容易轉換為真正的代碼。

PDL的優點:可以作為注釋直接插在源程式中;可以使用普通的文本編輯工具或文字處理工具產生和管理;已經有自動處理程式存在,而且可以自動由PDL生成程式代碼。

PDL的不足:不如圖形工具形象直觀,描述複雜的條件組合與動作間對應關係時,不如判定樹清晰簡單。

基本任務

(1)為每個模組進行詳細的算法設計。用某種圖形、表格、語言等工具將每個模組處理過程的詳細算法描述出來。

(2)為模組內的數據結構進行設計。對於需求分析、概要設計確定的概念性的數據類型進行確切的定義。

(3)為數據結構進行物理設計,即確定資料庫的物理結構。物理結構主要指資料庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴於具體所使用的資料庫系統。

(4)其他設計:根據軟體系統的類型,還可能要進行以下設計:

①代碼設計。為了提高數據的輸入、分類、存儲、檢索等操作,節約記憶體空間,對資料庫中的某些數據項的值要進行代碼設計。

②輸入/輸出格式設計。

③人機對話設計。對於一個實時系統,用戶與計算機頻繁對話,因此要進行對話方式、內容、格式的具體設計。

(5)編寫詳細設計說明書。

(6)評審。對處理過程的算法和資料庫的物理結構都要評審。

區別

軟體設計採用自頂向下、逐次功能展開的設計方法,首先完成總體設計,然後完成各有機組成部分的設計。

根據工作性質和內容的不同,軟體設計分為概要設計和詳細設計。概要設計實現軟體的總體設計、模組劃分、用戶界面設計、資料庫設計等等;詳細設計則根據概要設計所做的模組劃分,實現各模組的算法設計,實現用戶界面設計、數據結構設計的細化,等等。

聯繫

概要設計是詳細設計的基礎,必須在詳細設計之前完成,概要設計經複查確認後才可以開始詳細設計。概要設計,必須完成概要設計文檔,包括系統的總體設計文檔、以及各個模組的概要設計文檔。每個模組的設計文檔都應該獨立成冊。

詳細設計必須遵循概要設計來進行。詳細設計方案的更改,不得影響到概要設計方案;如果需要更改概要設計,必須經過項目經理的同意。詳細設計,應該完成詳細設計文檔,主要是模組的詳細設計方案說明。和概要設計一樣,每個模組的詳細設計文檔都應該獨立成冊。

概要設計裡面的資料庫設計應該重點在描述數據關係上,說明數據的來龍去脈,在這裡應該結合我們的一下結果數據,說明這些結果數據的源點,我們這樣設計的目 的和原因。詳細設計里的資料庫設計就應該是一份完善的數據結構文檔,就是一個包括類型、命名、精度、欄位說明、表說明等內容的數據字典。

概要設計里的功能應該是重點在功能描述,對需求的解釋和整合,整體劃分功能模組,並對各功能模組進行詳細的圖文描述,應該讓讀者大致了解系統做完後大體的 結構和操作模式。詳細設計則是重點在描述系統的實現方式,各模組詳細說明實現功能所需的類及具體的方法函式,包括涉及到的sql語句等。

1.詳細設計的基本任務是什麼?有哪幾種描述方法?

詳細設計的基本任務:

(1)為每個模組進行詳細的算法設計。

(2)為每個模組內的數據結構進行設計。

(3)對資料庫進行設計,即確定資料庫的物理結構。

(4)其他設計:

a.代碼設計

b.輸入/輸出格式設計。

c.人機對話設計。

(5)編寫詳細設計說明書。

(6)評審。

描述方法(三種):

a.程式流程圖

b.PAD圖

C.過程設計語言

2.結構化程式設計基本要求要點是什麼?

a.採用自頂向下、逐步求精的程式設計方法

b.使用三種基本程式控制結構構造程式

1).用順序方式對過程分解,確定各部分的執行順序。

2).用選擇方式對過程分解,確定某個部分的執行條件。

3).用循環方式對過程分解,確定某個部分重複的開始和結束的條件。

c.主程式設計師組的組織形式。

3.簡述Jackson 方法的設計步驟。

Jsp 方法一般通過以下5個步驟來完成設計:

a.分析並確定輸入/出數據的邏輯結構,並用Jackson 結構圖表示這些數據結構。

b.找出輸入數據結構和輸出數據結構中有對應關係的數據單元。

c.按一定的規則由輸入、輸出的數據結構導出程式結構。

d.列出基本操作與條件,並把它們分配到程式結構圖的適當位置。

e.用偽碼寫出程式。

4.請使用流程圖、PAD圖各PDL語言描述下列程式的算法。

(1)在數據A(1)-A(10)中求最大數和次大數。

(2)輸入三個正整數作為邊長、判斷該三條邊構成的三角形是等邊、等腰或一般三角形。

答:

(1)

1)流程圖:

2)PAD圖

3)PDL語言

定義 n1=n2=0

輸入A(1).......A(10)

n1=n2=A(1)

while i>10

if A(i)>=n1

n2=n1

n1=A(i)

end while

5.用PAD圖描述下面問題的控制結構。

有一個表A(1)、A(2)、........A(n),按遞增順序排列。給定一個Keyw值,在表中用折半查找。若找到將表位置i送入x,否則將零送到x,同時將Key值插入表中。

算法: 1)置初值H=1(表頭),T=N(表尾)。

2)置i=[(H+T)/2](取整).

3)若Key=A(i),則找到,i送到x;若Key>A(i),則Key在表的後半部分,i+1送入H;

若KeyT為止。

4)查不到時,將A(i),....,A(N)移到A(i+1),.....A(N+1),Key 值送入A(i)中。

6.數據記錄和輸出

一個正文檔案由若干記錄組成,每個記錄是一個字元串,要求統計每個記錄中空格字元的個數及檔案中空格字元的總個數。要求輸出數據格式是每複製一行這符串後,另起一行列印出這個字元中的空格數,最後列印出檔案空格的總個數,用Jackson方法設計該程式結構。

附加題:

1、假設對顧客的訂貨單按如下原則處理:

將顧客的信用度分三個檔次:

欠款時間不超過30天;

欠款時間超過30天但不超過100天;

欠款時間超過100天。

對於上述三種情況,分別根據庫存情況來決定對顧客訂貨的態度。

情況之一(欠款時間≤30天),如果需求數≤庫存量,則立即發貨,如果需求數>庫存量,則只發現有庫存,不足部分待進貨後補發。

情況之二 (30天<欠款時間≤100天),如果需求數≤庫存量,則要求先付款再發貨,如果需求數>庫存量,則不發貨。

情況之三(欠款時間>100天),則通知先付欠款,再考慮是否發貨。

試用判定樹的形式予以描述(設欠款時間D,需求數N,庫存量Q)。

說明書

1、引言

1.1、編寫目的說明編寫這份詳細設計說明書的目的,指出預期的讀者。

1.2、背景說明:

a. 待開發軟體系統的名稱;

b. 本項目的任務提出者、開發者、用戶和運行該程式系統的計算中心。

1.3、定義列出本檔案中用到專門術語的定義和外文首字母組詞的原詞組。

1.4、參考資料

列出有關的參考資料,如:

a. 本項目的經核准的計畫任務書或契約、上級機關的批文;

b. 屬於本項目的其他已發表的檔案;

c. 本檔案中各處引用到的檔案資料,包括所要用到的軟體開發標準。列出這些檔案的標題、檔案編號、發表日期和出版單位,說明能夠取得這些檔案的來源。

2、程式系統的結構

用一系列圖表列出本程式系統內的每個程式(包括每個模組和子程式)的名稱、標識符和它們之間 的層次結構關係。

3、程式1(標識符)設計說明

從本章開始,逐個地給出各個層次中的每個程式的設計考慮。以下給出的提綱是針對一般情況的。對於一個具體的模組,尤其是層次比較低的模組或子程式,其很多條目的內容往往與它所隸屬的上一層 模組的對應條目的內容相同,在這種情況下,只要簡單地說明這一點即可。

3.1、程式描述

給出對該程式的簡要描述,主要說明安排設計本程式的目的意義,並且,還要說明本程式的特點(如 是常駐記憶體還是非常駐?是否子程式?是可重入的還是不可重入的?有無復蓋要求?是順序處理還是並發處理等)。

3.2、功能

說明該程式應具有的功能,可採用IPO圖(即輸入一處理一輸出圖)的形式。

3.3、性能

說明對該程式的全部性能要求,包括對精度、靈活性和時間特性的要求。

3.4、輸入項

給出對每一個輸入項的特性,包括名稱、標識、數據的類型和格式、數據值的有效範圍、輸入的方式。數量和頻度、輸入媒體、輸入數據的來源和安全保密條件等等。

3.5、輸出項

給出對每一個輸出項的特性,包括名稱、標識、數據的類型和格式,數據值的有效範圍,輸出的形式、數量和頻度,輸出媒體、對輸出圖形及符號的說明、安全保密條件等等。

3.6、算法

詳細說明本程式所選用的算法,具體的計算公式和計算步驟。

3.7、流程邏輯

用圖表(例如流程圖、判定表等)輔以必要的說明來表示本程式的邏輯流程。

3.8、接口

用圖的形式說明本程式所隸屬的上一層模組及隸屬於本程式的下一層模組、子程式,說明參數賦值和調用方式,說明與本程式相直接關聯的數據結構(資料庫、數據文卷)。

3.9、存儲分配

根據需要,說明本程式的存儲分配。

3.10、注釋設計

說明準備在本程式中安排的注釋,如:

a. 加在模組首部的注釋;

b. 加在各分枝點處的注釋;

c. 對各變數的功能、範圍、預設條件等所加的注釋;

d. 對使用的邏輯所加的注釋等等。

3.11、限制條件

說明本程式運行中所受到的限制條件。

3.12、測試計畫

說明對本程式進行單體測試的計畫,包括對測試的技術要求、輸入數據、預期結果、進度安排、人員職責、設備條件驅動程式及樁模組等的規定。

3.13、尚未解決的問題

說明在本程式的設計中尚未解決而設計者認為在軟體完成之前應解決的問題。

4、程式2(標識符)設計說明

用類似F.3的方式,說明第2個程式乃至第N個程式的設計考慮。

相關搜尋

熱門詞條

聯絡我們