詳細設計

詳細設計

軟件工程中軟件開發的一個步驟
詳細設計是軟件工程中軟件開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模塊實現算法,所需的局部結構。[1]在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的嵌入式系統産品。詳細設計,應該完成詳細設計文檔,主要是模塊的詳細設計方案說明。詳細設計裡的數據庫設計就應該是一份完善的數據結構文檔,就是一個包括類型、命名、精度、字段說明、表說明等内容的數據字典。詳細設計則是重點在描述系統的實現方式,各模塊詳細說明實現功能所需的類及具體的方法函數,包括涉及到的sql語句等。
    中文名:詳細設計 外文名:The detailed design 别名: 任務:設計每個模塊的實現算法 定義:軟件工程中軟件開發的一個步驟

方法

傳統軟件開發方法的詳細設計主要是用結構化程序設計法。詳細設計的表示工具有圖形工具和語言工具。圖形工具有業務流圖、程序流程圖、PAD圖(ProblemAnalysisDiagram)、NS流程圖(由Nassi和Shneidermen開發,簡稱NS)。語言工具有僞碼和PDL(ProgramDesignLanguage)等。

設計工具

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)

whilei>10

ifA(i)>=n1

n2=n1

n1=A(i)

endwhile

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個程序的設計考慮。

上一篇:西西裡島

下一篇:廣告提案

相關詞條

相關搜索

其它詞條