《軟件工程》第5章軟件詳細設計_第1頁
《軟件工程》第5章軟件詳細設計_第2頁
《軟件工程》第5章軟件詳細設計_第3頁
《軟件工程》第5章軟件詳細設計_第4頁
《軟件工程》第5章軟件詳細設計_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第五章軟件詳細設計《軟件工程》第5章軟件詳細設計全文共57頁,當前為第1頁。

軟件設計是軟件工程過程的核心技術。軟件詳細設計也稱為模塊設計,物理設計,是指體系結構選擇階段之后所進行的技術性的活動。詳細設計主要集中在體系結構表達式的細化,選擇詳細的數(shù)據(jù)結構和算法?!颈菊乱浴?/p>

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第2頁。

軟件詳細設計的任務及步驟

軟件詳細設計的圖形工具

軟件詳細設計的方法

【本章重點】

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第3頁。了解軟件詳細設計的任務及步驟;

了解PDL語言的使用;

掌握程序流程圖、N-S圖、PAD圖、判定樹及判定表;

掌握Jackson設計方法和Warnier設計方法及其設計過程?!緦W習目標】

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第4頁。5.1.1詳細設計的任務

軟件設計是一個把軟件需求轉換為軟件表示的過程。從技術的角度劃分,詳細設計可以分為數(shù)據(jù)設計、系統(tǒng)結構設計以及過程代碼設計。5.1詳細設計概述

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第5頁。5.1.2詳細設計的步驟

詳細設計從體系結構設計階段開始,直到得到一張編碼階段之前的詳細完整的設計圖?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第6頁。5.2詳細設計的圖形描述工具

目前流行的工具可以分為三類:

圖形工具;如程序流程圖、盒圖、PAD圖、序列圖、數(shù)據(jù)流圖。

表格工具;如判定表。

語言工具;如程序設計語言PDL

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第7頁。5.2.1程序流程圖

程序流程圖又稱為程序框圖,是詳細設計中最古老、使用最廣泛的圖形描述工具。是流經(jīng)一個系統(tǒng)的信息流、觀點流或部件流的圖形代表?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第8頁。處理條件判斷輸入輸出預先定義的處理文檔準備開始或停止外連接內連接控制流并行方式循環(huán)上界循環(huán)下界《軟件工程》第5章軟件詳細設計全文共57頁,當前為第9頁。1.順序型結構

順序結構由帶箭頭的控制線依次連接幾個處理方框構成。

處理1處理2處理n…《軟件工程》第5章軟件詳細設計全文共57頁,當前為第10頁。2.選擇型結構

選擇型結構是流程圖中最為常用的結構,其結構構造有兩種,一種是條件選擇結構又稱為IF-THEN-ELSE結構,使用菱形表現(xiàn)邏輯判定條件,條件結果決定選擇兩個處理方框中的一個。《軟件工程》第5章軟件詳細設計全文共57頁,當前為第11頁。處理1處理2決策條件……結果YesELSE部分THEN部分No《軟件工程》第5章軟件詳細設計全文共57頁,當前為第12頁?!璑o處理1決策條件1Yes處理2決策條件2Yes處理n決策條件nYesNoNo《軟件工程》第5章軟件詳細設計全文共57頁,當前為第13頁。

重復執(zhí)行某種功能的程序時就用到循環(huán)結構,流程圖中循環(huán)型結構分為兩種,一種是先判定型循環(huán),又稱為DO-WHILE型循環(huán)結構,測試一個循環(huán)控制條件為真時,就重復執(zhí)行特定的處理。3.循環(huán)型結構《軟件工程》第5章軟件詳細設計全文共57頁,當前為第14頁。循環(huán)條件處理NoYes循環(huán)條件處理NoYes《軟件工程》第5章軟件詳細設計全文共57頁,當前為第15頁。5.2.2N-S圖

Nasssi和Shneiderman提出了一種符合結構化程序設計原則的圖形描述工具,稱為N-S圖,又叫盒圖。《軟件工程》第5章軟件詳細設計全文共57頁,當前為第16頁。

A

BY

P1

N

F

P2YP3N=L1=L2=L3

P5

REPEATE--

UNTILI

GHDO-WHILEP3CDEREPEATE—UNTILP6

J《軟件工程》第5章軟件詳細設計全文共57頁,當前為第17頁。5.2.3PAD圖處理1處理2處理1處理2條件P處理1處理2…處理n條件P=L1=L2…=LnWHILEPSUNTILPSdef順序(b)條件選擇(d)先判斷循環(huán)P是條件,S是循環(huán)體(e)后判斷循環(huán)P是條件,S是循環(huán)體(c)多向選擇《軟件工程》第5章軟件詳細設計全文共57頁,當前為第18頁。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,它使用二維樹形結構的圖形來描述程序的邏輯,比流程圖更容易讀懂,結構清晰。PAD圖中從左豎線上端的結點開始執(zhí)行,自上而下,從左及右順序執(zhí)行,遍歷所有結點來表示程序的控制流?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第19頁。5.2.4過程設計語言PDLPDL是過程設計語言(ProgramDesignLangruage)的英文縮寫,又稱為偽碼(Pseudocode)它把說明性的文字直接嵌入到PDL語句里?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第20頁。

PROCEDUREspellcheckis

BEGIN

splitdocumentintosinglewords

lookupwordsindictionary

displaywordswhicharenotindictionary

treatanewdictionary

ENDspellchckPDL的實例:查找拼錯單詞的程序《軟件工程》第5章軟件詳細設計全文共57頁,當前為第21頁。

PROCEDURE查找拼錯單詞

PROCEDURE查找拼錯單詞

BEGIN把整個文件分離成單詞查字典找到這些單詞顯示字典中查不到的單詞創(chuàng)建一個新字典

END《軟件工程》第5章軟件詳細設計全文共57頁,當前為第22頁。1.數(shù)據(jù)說明在PDL程序中它的功能是指明數(shù)據(jù)的類型及作用域。其格式為:TYPE<變量名>IS<限定詞1><限定詞2>說明:變量名是一個模塊內部使用的變量或模塊間共用的全局變量;<限定詞1>標明數(shù)據(jù)類型;具體如下。SCALAR純量、ARRAY數(shù)組、LIST列表、STRING字符、STRUCTURE結構<限定詞2>標明該變量的作用域例如:TYPEnumberISSTRINGLENGTH(12)《軟件工程》第5章軟件詳細設計全文共57頁,當前為第23頁。2.塊程序結構PDL的過程元素是由塊結構構成的,而塊將作為一個單個的實體來執(zhí)行。其格式為:BEGIN<程序塊名><PDL語句>END《軟件工程》第5章軟件詳細設計全文共57頁,當前為第24頁。3.輸入/輸出描述PDL中輸入/輸出說明語句十分靈活,變化也很多。其格式為:READ/WRITETO<設備><I/O表>或者ASK<詢問>ANSWER<響應選項>《軟件工程》第5章軟件詳細設計全文共57頁,當前為第25頁。說明:<設備>表示物理的I/O設備,如磁盤、打印機;<I/O表>表示被傳送的變量例如,ASK”selectthetargetdirection”ANSWER”left”,”right”I/O輸入輸出描述通??梢詳U充,如音頻輸出、面向窗口、下拉菜單界面等?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第26頁。4.子程序結構把PDL中的過程稱為子程序。其格式為:PROCEDURE<子程序名><屬性>INTERFACE<參數(shù)表><PDL語句>END《軟件工程》第5章軟件詳細設計全文共57頁,當前為第27頁。InputarrayAMax=A(1)DOFORi=2tonIFMax<A(i)SetMax=A(i)ENDIFENDFORPrintMaxBEGINEnteravectorSetMaximumtothevalueofthefirstelementinthevectorDOFOReachsecondonetothelastIFvalueofelementisgreaterthantheMaximumvalueTHENSetMaximumtothevalueoftheelementENDIFENDFORPrinttheMaximumvalueEND《軟件工程》第5章軟件詳細設計全文共57頁,當前為第28頁。5.2.5判定表和判定樹

1.判定表

判定表(Decisiontable)也是描述加工的一種圖形工具,呈表格形。

判定表共分四大部分《軟件工程》第5章軟件詳細設計全文共57頁,當前為第29頁。

以下面學生的獎學金評定為例,說明判定表的組織方法和應用。獎勵的目的在于鼓勵學生的品學兼優(yōu),此處理功能是要合理確定獎學金評定等級。決定受獎的條件為:成績優(yōu)秀占70%或50%以上,成績?yōu)橹谢蛑幸韵抡?5%或20%以下,團結紀律為優(yōu)良或一般者。獎勵方案為一等獎、二等獎、三等獎、鼓勵獎四種。因為受獎條件有些是相容的,相互組合的項較多。描述此學生獎勵政策的判定表《軟件工程》第5章軟件詳細設計全文共57頁,當前為第30頁。表5-1學生獎勵政策的判定表《軟件工程》第5章軟件詳細設計全文共57頁,當前為第31頁。2.判定樹判定樹又稱決策樹,是一種描述加工的圖形工具,適合描述問題處理中具有多個判斷,而且每個決策與若干條件有關。《軟件工程》第5章軟件詳細設計全文共57頁,當前為第32頁。表5-2貨單操作判定表

規(guī)則1234條件發(fā)貨單金額>$500>$500≤$500≤$500賒欠情況>60天≤60天>60天≤60天操作不發(fā)出批準書√發(fā)出批準書√√√發(fā)出發(fā)貨單√√√發(fā)出賒欠報告√《軟件工程》第5章軟件詳細設計全文共57頁,當前為第33頁。其對應的判定樹如下:《軟件工程》第5章軟件詳細設計全文共57頁,當前為第34頁。

這一判定樹比起文字敘述,使人一目了然,清晰地表達了在什么情況下采取什么策略,不易產生邏輯上的混亂。因而判定樹是描述基本處理邏輯功能的有效工具?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第35頁。

判定表或判定樹都是以圖形形式描述數(shù)據(jù)流的加工邏輯,它結構簡單,易懂易讀。尤其遇到組合條件的判定,利用判定表或判定樹可以使問題的描述清晰,而且便于直接映射到程序代碼。在表達一個加工邏輯時,判定樹、判定表都是好的描述工具,根據(jù)需要可以交叉使用?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第36頁。5.3Jackson設計方法《軟件工程》第5章軟件詳細設計全文共57頁,當前為第37頁。5.3.1Jackson方法概述及其圖例Jackson方法有時也稱為面向數(shù)據(jù)結構的軟件設計方法,簡稱JSP方法。Jackson方法定義了一組以數(shù)據(jù)結構為指導的映射過程,它根據(jù)輸入、輸出的數(shù)據(jù)結構,按一定的規(guī)則映射成軟件的過程描述,即程序結構。Jackson方法把問題分解為可由三種基本結構形式表示的各部分的層次結構。三種基本的結構形式就是順序、選擇和重復?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第38頁。

順序結構選擇結構重復結構《軟件工程》第5章軟件詳細設計全文共57頁,當前為第39頁。

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第40頁。學生名冊表頭表體字段名表名行*姓名性別學號班級1n

例如要用Jackson圖表示產生上面的學生名冊文件的程序的程序結構:把學生名冊生成為一個計算機文件,則該程序結構可以用下圖的Jackson圖來表示:《軟件工程》第5章軟件詳細設計全文共57頁,當前為第41頁。

這個Jackson圖首先聲明了該學生名冊表格由表頭和表體兩部分組成。其中表頭又順序包括表名和字段名。而表體可由任意行(0行或多行)組成,每行包括學生的姓名、性別、班級和學號。班級是本科的,學號項是本科生學號;班級是研究生的,學號項是研究生學號。

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第42頁。5.3.2Jackson程序設計過程1.分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結構,并用Jackson結構圖來表示這些數(shù)據(jù)結構。2.找出輸入數(shù)據(jù)結構和輸出數(shù)據(jù)結構中有對應關系的數(shù)據(jù)單元。3.按以下的規(guī)則由輸入、輸出的數(shù)據(jù)結構導出程序結構。4.列出基本操作與條件,并把它們分配到程序結構圖的適當位置。5.用偽碼寫出程序。Jackson方法通過五個步驟來完成設計:《軟件工程》第5章軟件詳細設計全文共57頁,當前為第43頁。5.4Warnier設計方法Warnier方法又稱為邏輯構造程序的方法,簡稱LCP法(LogicallyConstructingProgram)。Warnier方法也是一種軟件開發(fā)方法。5.4.1Warnier方法概述及其圖例《軟件工程》第5章軟件詳細設計全文共57頁,當前為第44頁。

Warnier圖是由嵌套的花括號、偽代碼以及少量說明和符號組成的層次樹。花括號:區(qū)分數(shù)據(jù)結構的層次,在一個花括號內的所有名字都屬于同一類信息。異或符號:表明一類信息或一個數(shù)據(jù)元素在一定條件下才出現(xiàn),而且在這個符號上、下方的兩個名字所代表的數(shù)據(jù)只能出現(xiàn)一個。圓括號:中間的數(shù)字指明了這個名字代表的信息類(或元素)在這個數(shù)據(jù)結構中重復出現(xiàn)的次數(shù)。

《軟件工程》第5章軟件詳細設計全文共57頁,當前為第45頁。

Warnier圖也具有表達數(shù)據(jù)結構和表達程序結構的雙重功能。Warnier圖是表示數(shù)據(jù)層次結構的一種圖形工具,它用樹形結構來描繪數(shù)據(jù)結構。它還能指出某一類數(shù)據(jù)或某一數(shù)據(jù)元素重復出現(xiàn)的次數(shù),并能指明某一特定數(shù)據(jù)在某一類數(shù)據(jù)中是否是有條件的出現(xiàn)。在進行軟件設計時,從Warnier圖入手,能夠很容易轉換成軟件的設計描述?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第46頁。以報紙的自動編輯系統(tǒng)為例。通常報紙的版面采用以下格式。頭版部分

社論部分

副刊部分頭條新聞

社論

體育新聞國內新聞

專欄

商業(yè)新聞當?shù)匦侣?/p>

讀者來信

廣告諷刺漫畫《軟件工程》第5章軟件詳細設計全文共57頁,當前為第47頁。上面給出的報紙概觀就是一個數(shù)據(jù)的層次結構。下面給出了用Warnier圖表示的報紙的數(shù)據(jù)層次結構。《軟件工程》第5章軟件詳細設計全文共57頁,當前為第48頁。

在這個Warnier圖中,用花括號“{”表示層次關系,在同一括號下,自上到下是順序排列的數(shù)據(jù)項。在有些數(shù)據(jù)項名字后面附加了圓括號,給出該數(shù)據(jù)項重復的次數(shù)。

例如,社論(1,1)表示社論占一欄;專欄(1,3)表示專欄占1到3欄;諷刺漫畫(0,1)表示諷刺漫畫可有可無,若有就占一欄。另外,Warnier圖可以通過細化組合數(shù)據(jù)項進一步分解信息域?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第49頁。Warnier程序設計過程1.通過分析和確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結構,確認數(shù)據(jù)流程并畫出Warnier圖的數(shù)據(jù)結構。2.根據(jù)輸入的數(shù)據(jù)結構得出程序的邏輯結構,再用Warnier圖畫出程序的處理過程。3.根據(jù)以上兩步的結構,畫出程序的流程圖。4.畫出程序流程圖并自上而下給每個處理框編序號,分類寫出偽碼指令。5.對4的偽指令進行分類排序,并描述出程序處理過程的偽代碼?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第50頁。詳細設計常用的描述方式包括流程圖、盒圖、問題分析圖和程序設計語言(PDL)5.5小結《軟件工程》第5章軟件詳細設計全文共57頁,當前為第51頁。圖形工具利用圖形工具可以把過程的細節(jié)用圖形描述出來。表格工具可以用一張表來描述過程的細節(jié),在這張表中列出了各種可能的操作和相應的條件。語言工具用某種高級語言(稱之為偽碼)來描述過程的細節(jié)。程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具?!盾浖こ獭返?章軟件詳細設計全文共57頁,當前為第52頁。N-S圖盒圖是一種符合結構化程序設計原則的圖形描述工具,又稱之為N-S圖。PAD圖是用結構化程序設計思想表現(xiàn)程序邏輯結構的圖形工具。PDL(過程設計語言)是所有非正文形式的過程設計工具的統(tǒng)稱,到目前為止已出現(xiàn)多種PDL語言。判定表(Decisiontable)也是描述加工的一種圖形工具,呈表格形。《軟件工程》第5章軟件詳細設計全文共57頁,當前為第53頁。Jackson系統(tǒng)開發(fā)方法(JSD,JacksonSystemDevelopment)是一種典型的面向數(shù)據(jù)結構的分析設計方法。

Warnier程序設計方法另一種面向數(shù)據(jù)結構的設計方法,又稱為邏輯地構造程序的方法,簡稱LCP(LogicalConstructionofPrograms)方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論