




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第三講 詳細(xì)設(shè)計2n詳細(xì)設(shè)計目的詳細(xì)設(shè)計目的 詳細(xì)設(shè)計的目的是為系統(tǒng)結(jié)構(gòu)圖中的每一個模塊確定采用的算法(包括數(shù)據(jù)結(jié)構(gòu)的操作、構(gòu)件之間的通信),用某種選定的表達(dá)工具給出清晰的描述,使程序員可以將這種描述直接翻譯為某種語言程序。3- 詳細(xì)設(shè)計是一個定義低層構(gòu)件、模塊和接口的過程;- 把AD階段構(gòu)建的設(shè)計模型進(jìn)一步擴展為一個結(jié)構(gòu)化的構(gòu)件規(guī)范集合;- 每一個構(gòu)件規(guī)范都要定義:功能、輸入、輸出及內(nèi)部處理。4n實施者實施者 軟件工程師5n詳細(xì)設(shè)計的原則詳細(xì)設(shè)計的原則為了能夠使模塊的邏輯描述清晰準(zhǔn)確,在詳細(xì)設(shè)計階段應(yīng)遵循下列原則。 (1) 將保證邏輯描述的清晰度放在首位 (2) 設(shè)計過程中應(yīng)采用逐步細(xì)化的
2、實現(xiàn)方法 (3) 選擇適當(dāng)?shù)谋磉_(dá)工具 6詳細(xì)設(shè)計的過程(1) 定義設(shè)計標(biāo)準(zhǔn)定義設(shè)計標(biāo)準(zhǔn) - 設(shè)計方法; - 文檔; - 命名約定; - CASE工具; - 錯誤處理7(2)構(gòu)件分解構(gòu)件分解- 從ADD中的構(gòu)件開始分解,直到構(gòu)件可以利用所選編程語言進(jìn)行實現(xiàn);- 分解過程所用的方法和工具應(yīng)與體系結(jié)構(gòu)設(shè)計階段一致。8 構(gòu)件分解的基本原則: - 構(gòu)件不能包含太多的功能 - 構(gòu)件不能太復(fù)雜 - 構(gòu)件應(yīng)具有高內(nèi)聚特征; - 注重構(gòu)件重用。9(3) 軟件重用軟件重用 如: - 數(shù)據(jù)管理; - 人機交互構(gòu)件; - 數(shù)學(xué)庫; - 圖形庫等等。10(4) 定義構(gòu)件處理定義構(gòu)件處理 利用偽碼(pseudo-code
3、)勾畫模塊的處理步驟,然后逐步細(xì)化; 對處理的描述應(yīng)反映所選編程語言的特點。11 每一個模塊/方法應(yīng)僅包含一個入口和一個出口; - 控制應(yīng)從入口到出口; - 只有在循環(huán)中控制流可以逆向。 12(5 5)形成詳細(xì)設(shè)計文檔并評審)形成詳細(xì)設(shè)計文檔并評審 內(nèi)部評價設(shè)計規(guī)范的完整性、一致性、正確性。(6 6)形成其它管理文檔)形成其它管理文檔- 開發(fā)者撰寫用戶手冊;- 形成測試規(guī)范 單元測試由程序員完成,測試規(guī)范由軟件工程師完成; 對于大型項目,系統(tǒng)測試和驗收測試規(guī)范由第三方完成。 對于小型項目,系統(tǒng)測試和驗收測試規(guī)范由開發(fā)者完成,用戶審核認(rèn)可。13n 詳細(xì)設(shè)計的工具詳細(xì)設(shè)計的工具 可以分為圖形、表格
4、和語言三類。 1圖形工具:包括程序流程圖、N-S圖和PAD圖; 2表格工具:包括判定表和判定樹; 3語言工具:包括PDL語言。 141程序流程圖程序流程圖也稱為程序框圖,它是歷史最悠久、使用最廣泛的一種描述程序邏輯結(jié)構(gòu)的工具。1)程序流程圖的符號和表示方式152)用程序流程圖表達(dá)的三種基本控制結(jié)構(gòu)如下圖所示。 16 3)程序流程圖的實例下面以求一組數(shù)中的最大值為例說明程序流程圖的畫法。如果要實現(xiàn)找出一組數(shù)中最大值這個功能,可將這組數(shù)存于一個數(shù)組A中,如果用語言描述其計算過程如下:(1)輸入一個數(shù)組A,元素個數(shù)為N;(2)令最大數(shù)MAX=A(1)(數(shù)組中的第1元素);(3)從A(2)至A(N)(
5、即第2個元素至最末一個元素)依次與最大數(shù)MAX進(jìn)行比較;(4)如新元素MAX,則MAX=新元素;(5)輸出最大數(shù)MAX。1718 4)程序流程圖的優(yōu)缺點 程序流程圖的優(yōu)點是比較直觀、清晰,使用靈活,便于閱讀和掌握,因此在20世紀(jì)40年代末到70年代初被普遍采用。但隨著程序設(shè)計方法的發(fā)展,程序流程圖的許多缺點逐漸暴露出來。這些缺點主要體現(xiàn)在以下方面: 可以隨心所欲地畫控制流程線的流向,容易造成非結(jié)構(gòu)化的程序結(jié)構(gòu); 程序流程圖本質(zhì)上不支持逐步求精,它使程序員容易過早地考慮程序的具體控制流程,而忽略了程序的全局結(jié)構(gòu); 程序流程圖難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu); 對于大型系統(tǒng)而言,程序流程圖描述過于瑣碎,不
6、容易閱讀和修改。19 2盒圖 盒圖又稱為N-S圖(Nassi-Shneiderman 圖),它是由Nassi和Shneiderman 按照結(jié)構(gòu)化的程序設(shè)計要求提出的描述一種圖形算法工具。 1)盒圖的表示方式 用盒圖表達(dá)的三種基本控制結(jié)構(gòu)如下圖所示。 20 2)盒圖的實例 以前面求一組數(shù)中最大值的算法為例,如用盒圖描述,結(jié)果如下圖所示。 21 3)盒圖的優(yōu)缺點 盒圖有如下一些優(yōu)點: 所有的程序結(jié)構(gòu)均用方框來表示,無論并列或者嵌套,程序的結(jié)構(gòu)清晰可見; 它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計的要求; 很容易確定局部和全程數(shù)據(jù)的作用域; 很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。盒圖不
7、足的是,當(dāng)程序內(nèi)嵌套的層數(shù)增多時,內(nèi)層的方塊越畫越小,不僅會增加畫圖的困難,并將使圖形的清晰性受到影響;當(dāng)需要對設(shè)計進(jìn)行修改時,盒圖的修改工作量會很大。 22 3PAD圖PAD是問題分析圖(Problem Analysis Diagram)的英文縮稱。PAD圖的基本原理是:采用自頂向下、逐步細(xì)化和結(jié)構(gòu)設(shè)計的原則,力求將模糊的問題解的概念逐步轉(zhuǎn)換為確定的和詳盡的過程,使之最終可采用計算機直接進(jìn)行處理。 1) PAD圖的表示方式 用PAD圖表達(dá)的三種基本控制結(jié)構(gòu)如下圖所示。 AB順序型順序型ABPWHILE PS選擇型選擇型重復(fù)型重復(fù)型23輸入數(shù)組輸入數(shù)組AMAX=A(1)I=2,N輸出輸出MAX
8、MAX=A(I)MAXA(I)2) PAD圖的實例 以前面求一組數(shù)中最大值的算法為例,如用PAD圖來描述,結(jié)果如下圖所示。 24 3)PAD圖的優(yōu)缺點PAD圖的主要優(yōu)點如下: 支持自頂向下,逐步求精的要求; PAD圖滿足結(jié)構(gòu)化程序設(shè)計要求,因此采用PAD圖導(dǎo)出的程序必然是結(jié)構(gòu)化的; PAD圖描述的算法結(jié)構(gòu)清晰、易讀易懂、使用方便。圖中每條豎線表示一個嵌套層次,圖示隨層次增加向右伸展; PAD圖既可以描述控制,也可以描述數(shù)據(jù)結(jié)構(gòu),很容易將PAD圖描述的算法轉(zhuǎn)換為源程序代碼; 可自動生成程序。但是,與程序流程圖和盒圖相比,PAD圖的使用不是很普遍。 25 4判定表和判定樹 請分別用判定表和判定樹工
9、具來描述某單位工資檔案管理系統(tǒng)中“職務(wù)津貼計算”加工邏輯過程。 假定職工的職稱只分為助工、工程師和高工三種,保低津貼分別是350、400、500元,并且單位根據(jù)職工的工作年限給予津貼適當(dāng)?shù)纳细—剟?,具體上浮情況如下:無論助工、工程師和高工工作年限在10年以下的無浮動;對于在單位工作超過10年但不到20年的職工,助工、工程師津貼上浮20%,高工上浮30%;對于在單位工作超過20年的職工,助工津貼上浮30%,工程師津貼上浮35%,高工上浮40%。 262728 5PDL語言 PDL語言即過程設(shè)計語言(Procedure Design Language),是一種用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)的偽碼設(shè)
10、計語言。 1)PDL的構(gòu)成 PDL是一種“混雜”語言,它使用一種語言(通常是某種自然語言)的詞匯來表示實際操作,同時卻使用另一種語言(某種結(jié)構(gòu)化的程序設(shè)計語言)的語法來定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。自然語言的采用使算法的描述靈活自由、清晰易懂,結(jié)構(gòu)化程序設(shè)計語言的采用使控制結(jié)構(gòu)的表達(dá)具有固定的形式且符合結(jié)構(gòu)化設(shè)計的思想。 29 2)PDL的實例 前面求一組數(shù)中最大值的過程如果用PDL語言描述,結(jié)果如下: INPUT ARRAY A MAX=A(1) DO FOR I=2 TO N IF MAXA(I) SET MAX=A(I) ENDIF PRINT MAX30 3)PDL語言的優(yōu)缺點 PDL語言具
11、有如下一些優(yōu)點: PDL雖然不是程序設(shè)計語言,但是它與高級程序設(shè)計語言非常類似,只要對PDL描述稍加變換就可變成源程序代碼,因此,它是詳細(xì)設(shè)計階段很受歡迎的表達(dá)工具; 用PDL寫出的程序,既可以很抽象,又可以很具體。因此,容易實現(xiàn)自頂向下逐步求精的設(shè)計原則; PDL描述同自然語言很接近,易于理解; PDL描述可以直接作為注釋插在源程序中,成為程序的內(nèi)部文檔,這對提高程序的可讀性是非常有益的。 PDL的缺點是不如圖形工具那樣描述形象直觀,對復(fù)雜條件的描述,不如判定表清晰、簡單,因此常常將PDL描述與一種圖形描述工具結(jié)合起來使用。 3132程序的復(fù)雜性度量程序的復(fù)雜性度量 定量度量程序復(fù)雜程度的方
12、法很有價值: 1) 估算出系統(tǒng)中故障的數(shù)量; 2) 估算系統(tǒng)開發(fā)需要用的工作量; 3) 可以用來比較兩個不同的設(shè)計或兩個不同算法的優(yōu)劣; 4) 可以作為模塊規(guī)模的精確限度。 33 環(huán)形復(fù)雜度的度量方法 1程序圖 使用McCabe方法首先需要畫出程序圖(Program Graph),所謂程序圖可以看成是“退化了的”程序流程圖,也就是把程序流程圖中的每個處理符號都退化成一個點,原來連接不同處理符號的箭頭變成連接不同點的有向弧,這樣得到的有向圖就稱為程序圖。幾種基本結(jié)構(gòu)的程序圖如下圖所示。3435開始開始 Sabcdefgh結(jié)束結(jié)束E(a)程序流程圖)程序流程圖abcdefghE(b)程序圖程序圖例
13、子例子36 2. 環(huán)形復(fù)雜度的度量方法 環(huán)形復(fù)雜度等于強連通的程序圖中線性無關(guān)的有向環(huán)的個數(shù)。根據(jù)圖論,在一個強連通的有向圖中線性無關(guān)環(huán)的個數(shù)由下面的公式給出: V(G)mn1 其中,V(G)表示有向圖G中的線性無關(guān)的環(huán)數(shù); m表示有向圖G中有向邊(弧)的個數(shù); n表示有向圖中的結(jié)點個數(shù); 37用來源于圖論中的公式來計算左圖所示的強連通程序圖的環(huán)形復(fù)雜度,根據(jù)公式可得: V(G)13101438 3環(huán)形復(fù)雜度的用途 程序的環(huán)形復(fù)雜度取決于程序控制流的復(fù)雜程度,也即取決于程序結(jié)構(gòu)的復(fù)雜程度。當(dāng)程序內(nèi)分支數(shù)或循環(huán)個數(shù)增加時,環(huán)形復(fù)雜度也隨之增加,因此它是對測試難度的一種定量度量,也能對系統(tǒng)最終的可
14、靠性給出某種預(yù)測。 McCabe研究大量程序后發(fā)現(xiàn),程序的環(huán)形復(fù)雜度越高,程序的可理解性就越差,程序測試和維護的難度也就越大,并且,環(huán)形復(fù)雜度高的程序,往往就是最容易出問題的程序。 實踐證明,模塊規(guī)模以V(G)10為宜,即盡量將程序的環(huán)形復(fù)雜度控制在10以下。 39詳細(xì)設(shè)計規(guī)范Part 1 總體描述總體描述(General Description)1 前言(Introduction) 1.1 目的(Purpose) 1.2 范圍(Scope) 1.3定義,首字母縮略詞和簡寫(Definitions, acronyms and abbreviations) 1.4參考文獻(xiàn)(References)
15、 1.5文檔概要(Overview)402 項目標(biāo)準(zhǔn),約定和規(guī)程(Project Standards, Conventions and Procedures) 2.1 設(shè)計標(biāo)準(zhǔn)(Design standards) 2.2 文檔標(biāo)準(zhǔn)(Documentation standards) 2.3 命名約定(Naming conventions) 41Part 2 構(gòu)件設(shè)計規(guī)范構(gòu)件設(shè)計規(guī)范(Component Design Specifications) n 構(gòu)件標(biāo)識符(Component identifier) n.1 類型(Type) n.2 目的(Purpose) n.3 功能(Function)
16、 n.4 子構(gòu)件(Subordinates) n.5 依賴性(Dependencies) n.6 接口(Interfaces) n.7 資源(Resources) n.8 參考文獻(xiàn)(References) n.9 處理(Processing) n.10 數(shù)據(jù)(Data)42附錄A 軟件需求與構(gòu)件跟蹤矩陣(Appendix B Software Requirements vs Components Traceability matrix)43Part 1 總體描述總體描述(General description)Part 1/1 前言前言(Introduction)本節(jié)應(yīng)描述目的、范圍、術(shù)語、參
17、考文獻(xiàn)和文檔概要。(This section should describe the purpose and scope, and provide a glossary, list of references and document overview.)Part 1/1.1文檔的目的文檔的目的(Purpose of the document)本節(jié)應(yīng)該:(1) 描述DDD的目的(describe the purpose of the particular DDD);(2) 描述DDD的目標(biāo)讀者(specify the intended readership of the DDD)。44Part
18、 1/1.2軟件范圍軟件范圍(Scope of the software)本節(jié)應(yīng):(1) 描述軟件產(chǎn)品的名字(identify the software product(s) to be produced);(2) 解釋軟件將要做什么、不能做什么(explain what the proposed software will do (and will not do, if necessary));(3) 盡可能精確地描述系統(tǒng)產(chǎn)生的利益、實現(xiàn)的目標(biāo)(describe the relevant benefits, objectives and goals as precisely as possi
19、ble);(4) 如果存在高層規(guī)范,則應(yīng)該與其描述相一致(be consistent with similar statements in higher-level specifications, if they exist)。45Part 1/1.3定義,首字母縮略詞和簡寫定義,首字母縮略詞和簡寫(Definitions, acronyms and abbreviations)這一節(jié)應(yīng)提供DDD中所用到的所有術(shù)語、縮寫、簡寫的定義,或可參照的其它文檔。(This section should define all terms, acronyms, and abbreviations used
20、 in the DDD, or refer to other documents where the definitions can be found.)Part 1/1.4參考文獻(xiàn)參考文獻(xiàn)(References)這一節(jié)應(yīng)提供一個完整的文獻(xiàn)列表,包括:名稱、作者、日期、報告號、期刊名稱、出版機構(gòu)名稱等。Part 1/1.5文檔概要文檔概要(Overview)本節(jié)應(yīng)該:(1) 描述DDD其余部分的結(jié)構(gòu)(describe what the rest of the DDD contains);(2) 解釋DDD如何組織(explain how the DDD is organized)。46Part 1/2項目標(biāo)準(zhǔn),約定和規(guī)程項目標(biāo)準(zhǔn),約定和規(guī)程(Project Standards, Conventions and Procedures)Part 1/2.1 設(shè)計標(biāo)準(zhǔn)設(shè)計標(biāo)準(zhǔn)(Design standards)應(yīng)參照AD階段所采用的方法,僅描述DD階段所用的具體方法。如果涉及多種方法或多種編程語言(例如,在一個Ada項目中采用C語言設(shè)計和編程),DD標(biāo)準(zhǔn)或許不同。47Part 1/2.2 文檔標(biāo)準(zhǔn)文檔標(biāo)準(zhǔn)(Documentation standard
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《國防教育入門》課件
- 上海貝派配套各品牌變頻器電阻電抗器濾波器選型樣本
- 濰坊工程職業(yè)學(xué)院《藥劑學(xué)綜合》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西省永新縣達(dá)標(biāo)名校2025屆初三下學(xué)期第三次質(zhì)量檢測試題語文試題含解析
- 紹興文理學(xué)院《中國民間音樂概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 信陽職業(yè)技術(shù)學(xué)院《普通話》2023-2024學(xué)年第二學(xué)期期末試卷
- 臨沂大學(xué)《建筑防火設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川省營山縣2025年初三英語試題下學(xué)期期中考試英語試題含答案
- 漯河醫(yī)學(xué)高等??茖W(xué)?!夺t(yī)療器械生物相容性評價》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海民航職業(yè)技術(shù)學(xué)院《生物醫(yī)學(xué)工程研究的倫理及學(xué)術(shù)道德》2023-2024學(xué)年第二學(xué)期期末試卷
- 五年級下冊數(shù)學(xué)課件 -4.1 用數(shù)對確定位置 ︳青島版 (共20張PPT)
- 柏拉圖分析案例
- 巖棉項目申報書_參考模板
- 二襯帶模注漿施工方案
- 施工組織設(shè)計方案交底記錄
- 《英語委婉語與忌語》PPT課件.ppt
- ISO9001-14001-2015內(nèi)部審核檢查表
- 風(fēng)險和機遇應(yīng)對措施有效性評審記錄表副本
- 調(diào)查問卷設(shè)計-課件PPT
- 照金參觀學(xué)習(xí)心得
- 井下電纜著火應(yīng)急演練預(yù)案
評論
0/150
提交評論