软件工程导论复习之详细设计
1. 詳細設計的主要任務
①模塊的算法設計;
②確定每個模塊的內部數據結構及數據庫的物理結構;
③確定模塊接口的具體細節;
④為每個模塊設計一組測試用例;
⑤編寫詳細設計說明書,參加復審;
2. 結構程序設計
定義:程序的代碼塊僅僅通過順序,選擇和循環三種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口(盡可能少用GO TO語句的程序設計方法)
3. 程序流程圖
概念:程序流程圖又稱程序框圖,一直是軟件設計的主要工具。
優點:對控制流程的描繪很直觀,便于掌握
缺點:不是逐步求精的好工具,忽視程序的全局結構;可隨意轉移控制,違背結構程序設計的精神;不易表示數據結構
符號:
?
4. 盒圖N-S
一種不允許違背結構程序設計精神的圖形工具
特點:
(1)功能域(即一個特定控制結構的作用域)明確,可以從盒圖上一眼就看出來。
(2)不可能任意轉移控制。
3)很容易確定局部和全程數據的作用域。
4)很容易表現嵌套關系,也可以表示模塊的層次結構。
基本符號:
5. PAD圖Problem Analysis Diagram
用二維樹形結構的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易
優點:
(1)使用表示結構化控制結構的PAD符號所設計出來的程序必然是結構化程序
(2)PAD圖所描繪的程序結構十分清晰。(3)用PAD圖表現程序邏輯,易讀易懂、易記。
(4)容易將PAD圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產率。
(5)既可用于表示程序邏輯.也可用于描繪數據結構。
(6)PAD圖的符號支持自頂向下、逐步求精方法的使用。
基本符號:
6. 判定表Decision Table
分析和表達多邏輯條件下執行不同操作的情況下的工具。在程序設計發展的初期,判定表就已被當作編寫程序的輔助工具了,它可以把復雜的邏輯關系和多種條件組合的情況表達得既具體又明確。
組成部分:
①條件樁(Condition Stub):列出了問題得所有條件.通常認為列出得條件的次序無關緊要.
②動作樁(Action Stub):列出了問題規定可能采取的操作.這些操作的排列順序沒有約束.
③條件項(Condition Entry):列出針對它左列條件的取值.在所有可能情況下的真假值.
④動作項(Action Entry):列出在條件項的各種取值情況下應該采取的動作.
建立步驟:
①確定規則的個數.假如有n個條件.每個條件有兩個取值(0,1),故有2n種規則.
②列出所有的條件樁和動作樁.
③填入條件項.
④填入動作項.等到初始判定表.
⑤簡化合并相似規則(相同動作)
?7.?Jackson圖及改進
順序結構:A由B、C、D 3個元素順序組成,出現的次序依次是B、C和D
選擇結構:根據條件A是B或C或D中的某一個
?重復結構:A由B出現N次(N≥0)組成
?
優點:
①便于表示層次結構,是對結構進行自頂向下分解的有力工具
②形象直觀可讀性好
③既能表示數據結構也能表示程序結構
改進的jackson圖:Jackson圖表示選擇或重復結構時,選擇條件或循環結束條件不能直接在圖上表示.
8. Jackson方法
(1)確定輸入數據和輸出數據的邏輯結構,并用Jackson圖描繪這些數據結構
(2)找出輸入數據結構和輸出數據結構中有對應關系的數據單元
(3)從描繪數據結構的Jackson圖導出描繪程序結構的Jackson圖
? ①為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程序結構圖的相應層次畫一個處理框
? ②根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框
? ③根據輸出數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框
(4)列出所有操作和條件(包括分支條件和循環結束條件),并且把它們分配到程序結構圖的適當位置
(5)用偽碼表示程序。Jackson方法中使用的偽碼和Jackson圖是完全對應的
?9.?程序復雜程度的定量度量
把程序的復雜程度乘以適當常數即可估算出軟件中錯誤的數量以及軟件開發需要用的工作量,定量度量的結果可以用來比較兩個不同的設計或兩個不同算法的優劣;程序的定量復雜程度可以作為模塊規模的精確限度
McCabe方法:
McCabe方法根據程序控制流的復雜程度定量度量程序的復雜程度,這樣度量出的結果稱為程序的環形復雜度
流圖:為突出程序的控制流,完全不表現對數據的具體操作以及分支或循環的具體條件
計算環形復雜度的方法:
???①流圖中線性無關的區域數等于環形復雜度
???②流圖G的環形復雜度V(G)=E-N+2,E是流圖中邊的條數,N是結點數
???③流圖G的環形復雜度V(G)=P+1,P為流圖中判定結點的數目
總結
以上是生活随笔為你收集整理的软件工程导论复习之详细设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bilibiliC++25程序流程结构-
- 下一篇: python读取pcd文件_PCL读取P