




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第三講 詳細設計2n詳細設計目的詳細設計目的 詳細設計的目的是為系統結構圖中的每一個模塊確定采用的算法(包括數據結構的操作、構件之間的通信),用某種選定的表達工具給出清晰的描述,使程序員可以將這種描述直接翻譯為某種語言程序。3- 詳細設計是一個定義低層構件、模塊和接口的過程;- 把AD階段構建的設計模型進一步擴展為一個結構化的構件規范集合;- 每一個構件規范都要定義:功能、輸入、輸出及內部處理。4n實施者實施者 軟件工程師5n詳細設計的原則詳細設計的原則為了能夠使模塊的邏輯描述清晰準確,在詳細設計階段應遵循下列原則。 (1) 將保證邏輯描述的清晰度放在首位 (2) 設計過程中應采用逐步細化的
2、實現方法 (3) 選擇適當的表達工具 6詳細設計的過程(1) 定義設計標準定義設計標準 - 設計方法; - 文檔; - 命名約定; - CASE工具; - 錯誤處理7(2)構件分解構件分解- 從ADD中的構件開始分解,直到構件可以利用所選編程語言進行實現;- 分解過程所用的方法和工具應與體系結構設計階段一致。8 構件分解的基本原則: - 構件不能包含太多的功能 - 構件不能太復雜 - 構件應具有高內聚特征; - 注重構件重用。9(3) 軟件重用軟件重用 如: - 數據管理; - 人機交互構件; - 數學庫; - 圖形庫等等。10(4) 定義構件處理定義構件處理 利用偽碼(pseudo-code
3、)勾畫模塊的處理步驟,然后逐步細化; 對處理的描述應反映所選編程語言的特點。11 每一個模塊/方法應僅包含一個入口和一個出口; - 控制應從入口到出口; - 只有在循環中控制流可以逆向。 12(5 5)形成詳細設計文檔并評審)形成詳細設計文檔并評審 內部評價設計規范的完整性、一致性、正確性。(6 6)形成其它管理文檔)形成其它管理文檔- 開發者撰寫用戶手冊;- 形成測試規范 單元測試由程序員完成,測試規范由軟件工程師完成; 對于大型項目,系統測試和驗收測試規范由第三方完成。 對于小型項目,系統測試和驗收測試規范由開發者完成,用戶審核認可。13n 詳細設計的工具詳細設計的工具 可以分為圖形、表格
4、和語言三類。 1圖形工具:包括程序流程圖、N-S圖和PAD圖; 2表格工具:包括判定表和判定樹; 3語言工具:包括PDL語言。 141程序流程圖程序流程圖也稱為程序框圖,它是歷史最悠久、使用最廣泛的一種描述程序邏輯結構的工具。1)程序流程圖的符號和表示方式152)用程序流程圖表達的三種基本控制結構如下圖所示。 16 3)程序流程圖的實例下面以求一組數中的最大值為例說明程序流程圖的畫法。如果要實現找出一組數中最大值這個功能,可將這組數存于一個數組A中,如果用語言描述其計算過程如下:(1)輸入一個數組A,元素個數為N;(2)令最大數MAX=A(1)(數組中的第1元素);(3)從A(2)至A(N)(
5、即第2個元素至最末一個元素)依次與最大數MAX進行比較;(4)如新元素MAX,則MAX=新元素;(5)輸出最大數MAX。1718 4)程序流程圖的優缺點 程序流程圖的優點是比較直觀、清晰,使用靈活,便于閱讀和掌握,因此在20世紀40年代末到70年代初被普遍采用。但隨著程序設計方法的發展,程序流程圖的許多缺點逐漸暴露出來。這些缺點主要體現在以下方面: 可以隨心所欲地畫控制流程線的流向,容易造成非結構化的程序結構; 程序流程圖本質上不支持逐步求精,它使程序員容易過早地考慮程序的具體控制流程,而忽略了程序的全局結構; 程序流程圖難以表示系統中的數據結構; 對于大型系統而言,程序流程圖描述過于瑣碎,不
6、容易閱讀和修改。19 2盒圖 盒圖又稱為N-S圖(Nassi-Shneiderman 圖),它是由Nassi和Shneiderman 按照結構化的程序設計要求提出的描述一種圖形算法工具。 1)盒圖的表示方式 用盒圖表達的三種基本控制結構如下圖所示。 20 2)盒圖的實例 以前面求一組數中最大值的算法為例,如用盒圖描述,結果如下圖所示。 21 3)盒圖的優缺點 盒圖有如下一些優點: 所有的程序結構均用方框來表示,無論并列或者嵌套,程序的結構清晰可見; 它的控制轉移不能任意規定,必須遵守結構化程序設計的要求; 很容易確定局部和全程數據的作用域; 很容易表現嵌套關系,也可以表示模塊的層次結構。盒圖不
7、足的是,當程序內嵌套的層數增多時,內層的方塊越畫越小,不僅會增加畫圖的困難,并將使圖形的清晰性受到影響;當需要對設計進行修改時,盒圖的修改工作量會很大。 22 3PAD圖PAD是問題分析圖(Problem Analysis Diagram)的英文縮稱。PAD圖的基本原理是:采用自頂向下、逐步細化和結構設計的原則,力求將模糊的問題解的概念逐步轉換為確定的和詳盡的過程,使之最終可采用計算機直接進行處理。 1) PAD圖的表示方式 用PAD圖表達的三種基本控制結構如下圖所示。 AB順序型順序型ABPWHILE PS選擇型選擇型重復型重復型23輸入數組輸入數組AMAX=A(1)I=2,N輸出輸出MAX
8、MAX=A(I)MAXA(I)2) PAD圖的實例 以前面求一組數中最大值的算法為例,如用PAD圖來描述,結果如下圖所示。 24 3)PAD圖的優缺點PAD圖的主要優點如下: 支持自頂向下,逐步求精的要求; PAD圖滿足結構化程序設計要求,因此采用PAD圖導出的程序必然是結構化的; PAD圖描述的算法結構清晰、易讀易懂、使用方便。圖中每條豎線表示一個嵌套層次,圖示隨層次增加向右伸展; PAD圖既可以描述控制,也可以描述數據結構,很容易將PAD圖描述的算法轉換為源程序代碼; 可自動生成程序。但是,與程序流程圖和盒圖相比,PAD圖的使用不是很普遍。 25 4判定表和判定樹 請分別用判定表和判定樹工
9、具來描述某單位工資檔案管理系統中“職務津貼計算”加工邏輯過程。 假定職工的職稱只分為助工、工程師和高工三種,保低津貼分別是350、400、500元,并且單位根據職工的工作年限給予津貼適當的上浮獎勵,具體上浮情況如下:無論助工、工程師和高工工作年限在10年以下的無浮動;對于在單位工作超過10年但不到20年的職工,助工、工程師津貼上浮20%,高工上浮30%;對于在單位工作超過20年的職工,助工津貼上浮30%,工程師津貼上浮35%,高工上浮40%。 262728 5PDL語言 PDL語言即過程設計語言(Procedure Design Language),是一種用于描述程序算法和定義數據結構的偽碼設
10、計語言。 1)PDL的構成 PDL是一種“混雜”語言,它使用一種語言(通常是某種自然語言)的詞匯來表示實際操作,同時卻使用另一種語言(某種結構化的程序設計語言)的語法來定義控制結構和數據結構。自然語言的采用使算法的描述靈活自由、清晰易懂,結構化程序設計語言的采用使控制結構的表達具有固定的形式且符合結構化設計的思想。 29 2)PDL的實例 前面求一組數中最大值的過程如果用PDL語言描述,結果如下: INPUT ARRAY A MAX=A(1) DO FOR I=2 TO N IF MAXA(I) SET MAX=A(I) ENDIF PRINT MAX30 3)PDL語言的優缺點 PDL語言具
11、有如下一些優點: PDL雖然不是程序設計語言,但是它與高級程序設計語言非常類似,只要對PDL描述稍加變換就可變成源程序代碼,因此,它是詳細設計階段很受歡迎的表達工具; 用PDL寫出的程序,既可以很抽象,又可以很具體。因此,容易實現自頂向下逐步求精的設計原則; PDL描述同自然語言很接近,易于理解; PDL描述可以直接作為注釋插在源程序中,成為程序的內部文檔,這對提高程序的可讀性是非常有益的。 PDL的缺點是不如圖形工具那樣描述形象直觀,對復雜條件的描述,不如判定表清晰、簡單,因此常常將PDL描述與一種圖形描述工具結合起來使用。 3132程序的復雜性度量程序的復雜性度量 定量度量程序復雜程度的方
12、法很有價值: 1) 估算出系統中故障的數量; 2) 估算系統開發需要用的工作量; 3) 可以用來比較兩個不同的設計或兩個不同算法的優劣; 4) 可以作為模塊規模的精確限度。 33 環形復雜度的度量方法 1程序圖 使用McCabe方法首先需要畫出程序圖(Program Graph),所謂程序圖可以看成是“退化了的”程序流程圖,也就是把程序流程圖中的每個處理符號都退化成一個點,原來連接不同處理符號的箭頭變成連接不同點的有向弧,這樣得到的有向圖就稱為程序圖。幾種基本結構的程序圖如下圖所示。3435開始開始 Sabcdefgh結束結束E(a)程序流程圖)程序流程圖abcdefghE(b)程序圖程序圖例
13、子例子36 2. 環形復雜度的度量方法 環形復雜度等于強連通的程序圖中線性無關的有向環的個數。根據圖論,在一個強連通的有向圖中線性無關環的個數由下面的公式給出: V(G)mn1 其中,V(G)表示有向圖G中的線性無關的環數; m表示有向圖G中有向邊(弧)的個數; n表示有向圖中的結點個數; 37用來源于圖論中的公式來計算左圖所示的強連通程序圖的環形復雜度,根據公式可得: V(G)13101438 3環形復雜度的用途 程序的環形復雜度取決于程序控制流的復雜程度,也即取決于程序結構的復雜程度。當程序內分支數或循環個數增加時,環形復雜度也隨之增加,因此它是對測試難度的一種定量度量,也能對系統最終的可
14、靠性給出某種預測。 McCabe研究大量程序后發現,程序的環形復雜度越高,程序的可理解性就越差,程序測試和維護的難度也就越大,并且,環形復雜度高的程序,往往就是最容易出問題的程序。 實踐證明,模塊規模以V(G)10為宜,即盡量將程序的環形復雜度控制在10以下。 39詳細設計規范Part 1 總體描述總體描述(General Description)1 前言(Introduction) 1.1 目的(Purpose) 1.2 范圍(Scope) 1.3定義,首字母縮略詞和簡寫(Definitions, acronyms and abbreviations) 1.4參考文獻(References)
15、 1.5文檔概要(Overview)402 項目標準,約定和規程(Project Standards, Conventions and Procedures) 2.1 設計標準(Design standards) 2.2 文檔標準(Documentation standards) 2.3 命名約定(Naming conventions) 41Part 2 構件設計規范構件設計規范(Component Design Specifications) n 構件標識符(Component identifier) n.1 類型(Type) n.2 目的(Purpose) n.3 功能(Function)
16、 n.4 子構件(Subordinates) n.5 依賴性(Dependencies) n.6 接口(Interfaces) n.7 資源(Resources) n.8 參考文獻(References) n.9 處理(Processing) n.10 數據(Data)42附錄A 軟件需求與構件跟蹤矩陣(Appendix B Software Requirements vs Components Traceability matrix)43Part 1 總體描述總體描述(General description)Part 1/1 前言前言(Introduction)本節應描述目的、范圍、術語、參
17、考文獻和文檔概要。(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)本節應該:(1) 描述DDD的目的(describe the purpose of the particular DDD);(2) 描述DDD的目標讀者(specify the intended readership of the DDD)。44Part
18、 1/1.2軟件范圍軟件范圍(Scope of the software)本節應:(1) 描述軟件產品的名字(identify the software product(s) to be produced);(2) 解釋軟件將要做什么、不能做什么(explain what the proposed software will do (and will not do, if necessary));(3) 盡可能精確地描述系統產生的利益、實現的目標(describe the relevant benefits, objectives and goals as precisely as possi
19、ble);(4) 如果存在高層規范,則應該與其描述相一致(be consistent with similar statements in higher-level specifications, if they exist)。45Part 1/1.3定義,首字母縮略詞和簡寫定義,首字母縮略詞和簡寫(Definitions, acronyms and abbreviations)這一節應提供DDD中所用到的所有術語、縮寫、簡寫的定義,或可參照的其它文檔。(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參考文獻參考文獻(References)這一節應提供一個完整的文獻列表,包括:名稱、作者、日期、報告號、期刊名稱、出版機構名稱等。Part 1/1.5文檔概要文檔概要(Overview)本節應該:(1) 描述DDD其余部分的結構(describe what the rest of the DDD contains);(2) 解釋DDD如何組織(explain how the DDD is organized)。46Part 1/2項目標準,約定和規程項目標準,約定和規程(Project Standards, Conventions and Procedures)Part 1/2.1 設計標準設計標準(Design standards)應參照AD階段所采用的方法,僅描述DD階段所用的具體方法。如果涉及多種方法或多種編程語言(例如,在一個Ada項目中采用C語言設計和編程),DD標準或許不同。47Part 1/2.2 文檔標準文檔標準(Documentation standard
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢察院一日活動方案
- 沙盤策劃活動方案
- 武警新年慰問活動方案
- 汽車答謝活動方案
- 河南老人活動方案
- 植樹澆水活動方案
- 油漆贈送活動方案
- 河源培訓活動策劃方案
- 民政特色創建活動方案
- 檢察院美化服務活動方案
- 西安匯知初級中學數學新初一分班試卷
- 阿米巴經營模式協議書模板
- 2023年青島版五年級下冊科學知識點(六三制)
- 項目資金投資合同范本
- 陜西延長石油集團有限責任公司招聘筆試題庫
- 【許林芳老師】-《企業文化構建與落地》
- DLT 5434-2021 電力建設工程監理規范表格
- 2024年中考語文名著閱讀重點梳理:《朝花夕拾》含中考練習題及參考答案
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設計規范-PDF解密
- 中小學智慧校園項目應急預案
- 互聯網醫療項目計劃書
評論
0/150
提交評論