詳細設計

詳細設計

詳細設計是軟體工程中軟體開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模組實現演算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足使用者需求的嵌入式系統產品。

  • 中文名稱
    詳細設計
  • 外文名稱
    The detailed design

​簡介

詳細設計的工具 詳細設計的基本任務 詳細設計說明書

詳細設計

任務

詳細設計的主要任務是設計每個模組的實現演算法、所需的局部資料結構。詳細設計的目標有兩個:實現模組功能的演算法要邏輯上正確和演算法描述要簡明易懂。

方法

傳統軟體開發方法的詳細設計主要是用結構化程式設計法。詳細設計的表示工具有圖形工具和語言工具。圖形工具有業務流圖、程式流程圖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.代碼設計

.輸入/輸出格式設計。

c.人機對話設計。

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

(6)評審。

描述方法(三種):

a.程式流程圖

.PAD圖

C.過程設計語言

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

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

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

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

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

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

c.主程式員組的組織形式。

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

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

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

.找出輸入資料結構和輸出資料結構中有對應關系的資料單元

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)

1=n2=A(1)

while i>10

if A(i)>=n1

2=n1

1=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;

若Key<A(i),則能Key在表的前半部分,i-1送入T,重復第三步查找直到H>T為止。

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. 待開發軟體系統的名稱;

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

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

1.4、參考資料

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

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

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

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. 加在模組首部的注解;

. 加在各分枝點處的注解;

c. 對各變數的功能、範圍、缺省條件等所加的注解;

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

3.11、限製條件

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

3.12、測試計畫

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

3.13、尚未解決的問題

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

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

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

相關詞條

相關搜尋

其它詞條