结构化设计方法
一、軟件設計的基本概念
1. 軟件設計的基礎
??? 軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的過程。
軟件設計的重要性和地位概括以下幾點:
(1)軟件開發階段(設計、編碼、測試)占據軟件項目開發總成本絕大部分,是在軟件開發中形成持量的關鍵環節。
(2)軟件設計是開發階段最重要的步驟,是將需求準確地轉化為完整的軟件產品的唯一途徑。
(3)軟件設計作出的決策最終影響軟件實現的成敗。
(4)設計是軟件工程和軟件維護的基礎
2. 軟件設計的基本原理
??? 軟件設計遵循軟件工程的基本目標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念。
?(1)抽象:把事物本質分析出來而不考慮其他細節。
(2)模塊化:把一個待開發的軟件分解成若干小的簡單的部分。
(3)信息隱蔽:在一個模塊包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。
(4)模塊獨立性:每個模塊只能完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。衡量軟件的模塊獨立性是用耦合性和內聚性作為度量標準。
●內聚性:一個模塊內部各個元素彼此結合的緊密程度的度量。內聚性按由弱到強有下面幾種:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內聚、功能內聚。
●耦合性:模塊間相互結合的緊密程度的度量。耦合度由高到低排列有下面幾種:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數據耦合、非直接耦合。
3.?結構化設計方法
????結構化設計就是采用最佳的可能方法設計系統的各個組成部分以及各萬分之間的內部聯系的技術。
二、概要設計
1. 概要設計的任務
概要設計的基本任務是:
(1)設計軟件系統結構
在概要設計階段,需要進一步分解,劃分為模塊以及模塊的層次結構,劃分的具體過程是:
l????????采用某種設計方法,將一個復雜的系統按功能劃分成模塊
l????????確定每個模塊的功能
l????????確定模塊之間的調用關系
l????????確定模塊之間的接口,即模塊之間傳遞的信息
l????????評價模塊結構的質量
(2)數據庫結構及數據庫設計
????????? 數據設計是實現需求定義和規格說明過程中提出的數據對象的邏輯表示。數據設計的具體任務是:確定輸入、輸出文件的詳細數據結構;結合算法設計,確定算法的邏輯數據結構及其操作;確定對邏輯結構所必須的那些操作的程序模塊,限制和確定各個數據設計決策的影響范圍;需要與操作系統或調度程序接口所必須的控制表進行數據交換時,確定其詳細的數據結構和使用規則;數據的保護性設計;防衛性、一致性、冗余性設計。
數據設計中應該注意掌握以下設計原則:
l?????用于功能和行為的系統分析原則也應用于數據
l?????應該標識所有的數據結構以及其上的操作
l?????應當建立數據詞典,并用于數據設計和程序設計
l?????低層的設計決策應該推遲到設計過程的后期
l?????只有那些需要直接使用數據結構、內部數據的模塊才能看到數據的表示
l?????應該開發一個由有用的數據結構和應用于其上的操作組成的庫
l?????軟件設計和程序設計語言應該支持抽象數據類型的規格說明和實現
(3)編寫設計文檔。在概要設計階段,需要編寫的文檔有,概要設計說明書、數據庫設計說明書、集成測試計劃等。
(4)概要設計文檔評審。在概要設計中,對設計部分是否完整地實現了需求中規定的功能、性能等要求,設計方案的可行性,關鍵的處理及內部接口定義正確性、有效性,各部分的一致性等要進行評審,以免在以后的設計中出現現在的問題而返工。
常用的軟件結構設計工具是結構圖(SC),結構圖是描述軟件結構的圖形工具。
基本圖符如:
2. 面向數據流的設計方法
???? 在需求分析階段,主要是分析信息在系統中加和流動的情況。面向數據流的設計方法定義了一些不同的映射方法,利用這些映射方法可以把數據流變換成結構圖表示的軟件結構。
(1)數據流類型
數據流分為變換型和事務型:
●變換型。變換型是指信息沿輸入通路進入系統,同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統。變換型數據處理問題的工作過程可分為三步,即取得數據、變換數據和輸出數據。
見下圖(變換型數據流結構圖):
●事務型。在很多軟件應用中,存在某種作業數據流,它可以引發一個或多個處理,這些處理能夠完成作業要求的功能,這種數據流叫作事務。事務型數據流的特點是接受一項事務,根據事務處理的特點和性質,選擇分派一個適當的處理單元(事務處理中心),然后給出結果。
見右圖(事務型數據流結構圖):
(2)面向數據流設計方法的實施要點與設計過程
面向數據流的結構設計過程和步驟:
第一步,分析、確認數據流圖的類型,區分是事務型還是變換型。
第二步,說明數據流的邊界。
第三步,把數據流圖映射為程序結構。
第四步,根據設計準則對產生的結構進行細化和求精。
3. 設計的準則
設計準則如下:
(1)提高模塊獨立性
(2)模塊規模適中
(3)深度、寬度、扇出和扇入適當
(4)使模塊的作用域在該模塊的控制域內
(5)應減少模塊的接口和界面的復雜性
(6)設計成單入口、單出口的模塊
(7)設計功能可預測的模塊
三、詳細設計
??????? 詳細設計的任務,是為軟件結構圖中的每一個模塊確定實現算法和局部數據結構,用某種選定的表達工具表示算法和數據結構的細節。
常見的過程設計工具有:
圖形工具:程序流程圖(一般流程圖),N-S, PAD,HIPO
表格工具:判定表
語言工具:PDL(偽碼)
1、程序流程圖
????? 程序流程圖是一種傳統的、應用廣泛的軟件過程設計表示,通常也稱程序框圖。
構成程序流程圖的最基本圖符有:
按照結構化程序設計要求,程序流程圖構成的任何程序可用5種控制結構來描述,分別是:
(1)順序型:幾個連續的加工步驟依次排列構成。
(2)選擇型:由某個邏輯判斷式的取值決定選擇兩個加工中的一個。
(3)先判定型循環:先判斷循環控制條件是否成立,成立則執行循環體語句。
(4)后判定型循環:重復執行某些特定的加工,直到控制條件成立。
(5)多分支選擇型:列舉多種加工情況,根據控制變量的取值,選擇執行其中之一。
2、N-S圖(又叫做盒圖)
N-S輸送有以下特征:
●每個構件具有明確的功能域
●控制轉移必須遵守結構化要求
●易于確定局部數據和全局數據的作用域
●易于表達嵌套關系和模塊的層次結構
3、問題分析圖(PAD圖)
PAD圖有以下特征:
●結構清晰,結構化程度高
●易于閱讀
●最左端的縱線是程序的主干線,每增加一層PAD圖向右擴展一條縱線,程序的縱線是程序層次數
●程序執行,從PAD圖最左主干線端結點開始、自上而下、自左向右依次執行,程序終止于最左主干線。
總結
- 上一篇: CC00006.elasticsearc
- 下一篇: HbuilderX连接手机模拟器实战记录