1. 程式人生 > >軟考總結---(六)結構化開發方法

軟考總結---(六)結構化開發方法

前言:下面和大家分享一下第六章的知識點,希望對大家有幫助。

(一)系統分析與設計概述

1、系統設計的基本原理

(1)抽象
重點說明一個實體的本質方面,忽略或掩蓋不太重要或非本質的方面。
抽象的最底層就是實現該軟體的源程式程式碼。
較低抽象層次的模組是較高抽象層次模組對問題解法描述的細化。

(2)模組化
在程式中是資料說明、可執行語句等程式物件的集合,或者是單獨命名和編制的元素,模組是可以組合分解和更換的單元。
【目的】使程式的結構清晰、容易閱讀、理解、測試和修改

(3)資訊隱蔽
開發整體程式結構時使用的法則,即將每個程式的成分隱蔽或封裝在一個單一的設計模組中,在定義每一個模組時,儘可能少地顯露其內部的處理。
【目的】提供軟體的可修改性、可測試性、可移植性。

(4)模組獨立
每個模組完成一個相對獨立的特定子功能,並且與其他模組聯絡簡單。
【衡量標準】:耦合性和內聚性。

2.【耦合】

(1)無直接耦合:兩個模組之間【沒有】直接關係,【不傳遞】任何資訊。耦合性【最弱】,獨立性最高。
(2)資料耦合:兩個模組間【有呼叫】關係,傳遞的是【簡單的資料值】。
(3)標記耦合:兩個模組之間傳遞的是【資料結構】。
(4)控制耦合:一個模組【呼叫】另一個模組時,傳遞的是【控制變數】,被呼叫模組通過控制變數的【值】有選擇地執行模組內的某一功能。
(5)外部耦合:通過【軟體之外】的環境聯結(如I/O將模組耦合到特定的裝置、格式、通訊協議上)。
(6)公共耦合:通過一個【公共資料】環境相互作用的那些模組的耦合
(7)內容耦合:一個模組呼叫另一個模組的【內部資料】,或通過非正常入口轉入另一個模組內部。

3.【內聚】

(1)偶然內聚:一個模組內各處理元素【沒有任何關係】
(2)邏輯內聚:執行若干【邏輯上相似的功能】,通過【引數】確定該模組完成哪一功能。
(3)時間內聚:需要【同時執行】的動作【組合】在一起的模組
(4)過程內聚:一個模組完成【多個任務】,這些任務必須按照指定的過程執行
(5)通訊內聚:所有處理元素都在【同一資料結構】上操作,或各處理使用相同的【輸入資料】或產生相同的【輸出資料】
(6)功能內聚:【最強】的內聚,所有元素共同完成同一功能,缺一不可。

4.【系統結構設計原則】

(1)分解-協調原則
(2)自頂向下的原則
(3)資訊隱蔽、抽象的原則
(4)一致性原則
(5)明確原則
(6)模組之間的耦合儘可能小,模組的內聚度儘可能高。
(7)模組的扇入係數和扇出係數要合理。(評價扇入(一個模組呼叫其他模組的個數)、扇出係數通常是【3或4】,一般【不超過7】)
(8)模組的適當規模

5.子系統劃分原則

(1)子系統要具有【相對獨立性】
(2)子系統之間的【資料依賴儘量小】
(3)劃分的結果應使【資料冗餘小】
(4)設定應考慮【今後管理髮展的需要】
(5)便於【系統分析階段實現】
(6)考慮到【各類資源的充分利用】

6.【模組的4個要素】

(1)輸入和輸出:輸入和輸出都是【同一個呼叫者】,即一個模組從呼叫者那裡取得輸入,進行加工後再返回給呼叫者。
(2)處理功能:【輸入】轉換成【輸出】所在的工作。
(3)內部資料:僅供該模組【本身】應用的資料
(4)程式程式碼:【實現】模組【功能】的程式。

7.模組結構圖

(1)所有模組其內部的凝聚行要強,模組之間的聯絡要少,即模組間有較強【獨立性】。
(2)所有模組之間的聯絡可能存在【上下級】之間的呼叫,不能有同級之間的橫向聯絡。
(3)整個系統呈【樹狀結構】,不允許有網狀結構或交叉。
(4)所有模組必須嚴格【分類編碼】並建立【歸檔檔案】

8.文件

(1)【使用者】與系統【分析人員】:(規劃、分析階段):可行性報告、總體規劃報告、系統開發合同和系統方案說明書。
(2)系統【開發人員】與專案【管理人員】:(專案期內):系統開發計劃、系統開發月報告、系統開發總結報告
(3)系統【測試人員】與系統【開發人員】:系統方案說明書、系統開發合同、系統設計說明書、測試計劃
(4)系統【開發人員】與【使用者】:使用者手冊、操作指南
(5)系統【開發人員】與系統【維護人員】:系統設計說明書、系統開發總結報告(研製報告、技術報告、技術手冊
(6)【使用者】與【維修人員】:(執行維護期間):技術手冊

(二)結構化分析方法

1.【處理】任何【複雜問題】的兩個基本手段

(1)抽象
(2)結構化方法:自頂向下逐層【分解】,自底向上【抽象】。
組成:一套分層的【資料流圖】、一本【資料字典】、一組【小說明】(加工邏輯說明)、補充材料

2.【資料流圖(DFD)組成】

資料流:(資料的流向)
加工:【輸入】資料流到【輸出】資料流的變換
資料儲存:儲存資料(介質有:磁碟、磁帶、其他儲存介質)
外部實體:系統所需資料的【源】(發源地)、【宿】(資料的歸宿地)
(*“與”、+“或”、異或“互斥”)

3.分層資料流圖的【審查】

(1)父圖與子圖【平衡】。輸入/輸出資料流保持一致。
(2)資料【守恆】。輸出資料流資料從輸入資料流中獲得,或通過該加工的處理而產生。
加工未使用其輸入資料流中的某些資料項。
(3)【區域性】資料儲存。
(4)一個加工輸出資料流【不能】與該加工輸入資料流【同名】。

4.資料字典(DD)

內容:資料流、資料項、資料儲存、基本加工。

5.加工邏輯說明

(1)結構化語言(外層:順序、選擇、迴圈;內層)
(2)判定表
(3)判定樹

(三)結構化設計(SD)方法

1.步驟

(1)建立一個滿足軟體需求的初始【結構圖】(自頂向下、逐步求精、資訊隱蔽、高內聚低耦合)
(2)對結構圖【改進】
(3)書寫設計文件
(4)設計評審

2.DFD資訊流分類

(1)變換流:外部形式轉換為內部表示
(2)資訊流:資訊沿著輸入通路到達另一個事務中心,選擇一個來執行。呈輻射狀。

3.變換分析

(1)確定輸入流和輸出流,分離出變換中心。
(2)第一級分解(頂層和第一層)
(3)第二季分解(中、下層)
(4)事物分析

(四)WebApp分析與設計

1.WebApp特性

(1)網路密集型
(2)併發性
(3)無法預知的負載量
(4)效能
(5)可用性
(6)資料驅動

2.WebApp需求模型

(1)內容模型(文字、影象、音訊、視訊):描述內容物件的構件能力
(2)互動模型:用例、順序圖、狀態圖、使用者介面原型
(3)功能模型
(4)導航模型
(5)配置模型:環境和基礎設施

3.WebApp設計

【通用特性】:可用性、功能性、可靠性、效率、可維護性、安全性、可擴充套件性、及時性
設計【目標】:簡單性、一致性、符合性、健壯性、導航性、視覺吸引與相容性
設計【動作】:架構設計、構件設計(內容、功能)、內容設計(線性、網路、層次、網格結構)、導航設計、美學設計、介面設計

(五)使用者介面設計

1.【3條黃金原則】

使用者操縱控制、減少使用者的記憶負擔、保持介面一致

2.使用者操縱控制

(1)【不強迫】使用者進入不必要的或【不希望的動作】的方式來定義【互動模式】
(2)提供【靈活的】互動
(3)允許【中斷和撤銷】使用者互動
(4)當技能級別增長時,可以互動流線化並允許定製互動
(5)使使用者與【內部技術】細節【隔離開】
(6)允許使用者與【出現在螢幕上】的物件【直接】互動

3.減少使用者的記憶負擔

(1)減少對短期記憶的要求
(2)建立有【意義的預設】
(3)定義【直觀】的【快捷方式】
(4)介面的【視覺佈局】應【基於真實世界的象徵】
(5)【不斷改進】的方式揭示資訊

4.保持介面一致

(1)允許使用者將當前任務放入有意義的環境中
(2)在應用系統家族內保持一致性
(3)如果過去的互動模型已經建立了使用者的期望,除非有不得已的理由,否則不要改變它

5.使用者介面分析和設計模型

【軟體工程師】所建立的設計模型
【人機介面】設計工程師所建立的設計模型
【終端使用者】在腦海裡對世界產生的映像
【系統實現者】建立的系統映像

6.使用者介面分析設計4個框架

介面分析建模、介面設計、介面構造、介面確認

7.使用者介面設計問題

系統響應時間、幫助設施、錯誤資訊處理、選單和命令標記

總結:軟考的學習也是一個不斷重複不斷總結的過程,越重複越總結越清晰。在總結中不斷地完善和提高。