軟體設計的概念與原則:
將軟體劃分為若干獨立成分的依據
怎樣表示不同的成分內的功能細節和資料結構
怎樣統一衡量軟體設計的技術質量
軟體設計過程
制定規範
軟體系統結構的總體設計
處理方式設計
資料結構設計
可靠性設計
編寫概要設計階段的文件
概要設計評審
軟體設計基礎:
自頂向下,逐步細化
軟體結構
程式結構 網狀結構 樹形結構 (縱向叫深度,橫向叫寬度)
結構圖模組化
抽象化資訊隱蔽
模組化:模組是資料說明、可執行語句等程式物件的集合,模組可以單獨被命名的而且可通過名字來訪問。例如過程、函式、子程式、巨集等
等都可作為模組
模組獨立性是軟體系統中每個模組只涉及軟體要求的具體子功能,而和軟體系統中其他的模組介面是簡單的。
模組獨立的概念是模組化、抽象、資訊隱蔽和區域性化概念的直接結果
模組獨立的重要性:具有獨立的模組的軟體比較容易開發出來
獨立的模組比較容易測試和維護
模組的獨立程度可以由兩個定性標準度量,內聚和耦合。耦合衡量不同模組彼此間互相依賴的緊密程度;內聚衡量乙個模組內部各個元素此
結合的緊密程度
耦合是影響軟體複雜程度的乙個重要因素。應該採取的原則是,盡量使用資料耦合,少用控制耦合,限制公共耦合,完全不用
內容耦合
模組內聚:功能內聚 資訊內聚 通訊內聚 過程內聚 時間內聚 邏輯內聚 巧合內聚
結構化設計方法
首先研究、分析和審查資料流圖
然後根據資料流圖決定問題的型別、資料處理問題典型的型別有兩種:變換型和事務型
針對兩種不同的型別分別進行分析處理
變換分析有以下四部組成
重畫資料流圖
區分有效(邏輯)輸入、有效(邏輯)輸出和中心變換部分
進行以及分解,設計上層模組
進行二級分解,設計輸入、輸出和中心變換部分的中、下層模組
事務分析:
識別事務源
規定適當的事務型結構
識別各種事物和他們定義的操作
注意利用公共模組
對每一事物,或對聯絡密切的一組事務,建立乙個事務處理模組
對事物處理模組規定他們全部的下層操作模組
對操作模組規定他們全部細節模組
軟體模組結構的改進
模組功能的完善化
執行規定的功能的部分
出錯處理部分
給它的呼叫者返回乙個結束狀態標識
消除重複功能,改善軟體結構
完全相似
區域性相似
模組的作用範圍應在控制範圍之內
模組的控制範圍包括它本身及其所有的從屬模組
模組的作用範圍是模組內乙個判定的作用範圍,凡是受這個判定的所有模組都屬於這個判定的作用範圍
盡可能的減少高扇出結構,隨著深度增大扇入
避免或減少使用病態連線
直接病態連線
公共資料域病態連線
通訊模組病態連線
模組的大小要適中
涉及功能可**的模組,但要避免過分受限制的模組
軟體包應滿足設計約束和可移植性
設計的後處理
為每乙個模組寫乙份處理說明
為每乙個模組提供乙份介面說明
確定全域性變數結構和區域性資料結構
指出所有的設計約束和限制
進行概要設計的評審
資料設計及檔案設計
資料設計的原則
用於軟體的系統化方法也適用於資料
確定所有的資料結構和在每種資料結構上施加的操作
應當建立乙個資料詞典並用它來定義資料和軟體的設計
底層資料設計的決策應推遲到設計過程的後期進行
資料結構的表示只限於那些必須直接使用該資料結構內資料的模組才能知道
應當建立乙個存放有效資料結構及相關操作的庫
軟體設計和程式語言應當支援抽像資料型別的定義和實現
檔案設計分兩個階段
檔案的邏輯設計主要在概要設計中完成
檔案的物理設計主要在詳細設計中完成
檔案設計步驟:
整理必須的資料元素
分析資料間的關係
確定檔案的邏輯設計
理解檔案的特性
確定檔案的組織形式
順序檔案:每個記錄是等長的,操作簡單,查詢方便。查詢最後乙個記錄,時間較長
直接訪問檔案:其基本資料記錄按順序檔案組織,記錄排列順序按關鍵字值公升序或降序安排,且具有索引部分,也按統一關鍵字進行索
引分割槽檔案:這類檔案主要用於存放程式
虛擬儲存檔案:這是基於作業系統的請求頁式儲存管理功能而建立的索引順序檔案
倒排檔案:按候選屬性建立索引表
確定檔案的儲存介質
確定檔案的記錄格式
骨算訪問時間和儲存容量
過程設計
程式流程圖
不提倡使用,因為它過早的考慮了控制流
盒式圖(n-s圖)
特點:功能域表示的比較明確
不可能實現任意轉移
很容易確定區域性和全域性的作用域
很容易的表示巢狀結構,也可表示模組間的層次結構
可以表示模組之間的變換關係
控制關係比較隱含
迴圈次數隱含
程式流程圖去掉控制流的一種變換
問題分析圖(pad圖)
使用pad圖設計的程式一定是結構化程式
用pad圖描述的流程圖比較清晰
表示的程式結構易懂且便於記憶
可以很容易的將pad圖轉換為高階語言的程式
可以描述資料結構
支援自頂向下逐步求精的一種方法的使用
判定表用於表示程式的靜態邏輯
在判定表中的條件部分給出所有的兩分支判斷的 列表,動作部分給出相應的處理
要求將程式流程圖中的多分支判斷夠改成兩分支判斷
pdl(program design language)
是一種用於描述功能模組的演算法設計和加工細節的語言。成為設計程式用語言。它是一種偽碼
具有嚴格的關鍵字外語法,用於定義控制結構和資料結構,同時它的表示實際操作和條件的內語法又是靈活自由的,可使用自然語言詞
匯特點:提供全部結構化控制結構、資料說明和模組特徵。能對pdl正文進行結構分割,使之變得易於理解
為了區別關鍵字,規定關鍵字一律大寫,其他單詞一律小寫。或者規定關鍵字加下劃線,或者規定他們為黑體字
不如圖形工具直觀
描述複雜的條件組合和與動作之間的關係,不如判定表清晰
面向資料結構的分析設計方
jackson
系統開發方法(
jsd):
jackson
系統開發方法(
jsd)是一種典型的面向資料結構的分析設計法,
它是以資訊驅動的,是將資訊轉換稱軟體的程式結構
warnier
方法:又一種面向資料結構的設計方法
第四章 方法重寫
一 方法重寫 定義 在子類中可根據需要對從父類中繼承來的方法進行改造,也稱為方法的重置 覆蓋。執行時,子類方法將覆蓋父類的方法。要求 1 重寫方法必須和重寫方法具有相同的方法名稱,引數列 表。2 重寫方法返回值型別不能大於被重寫方法的返回值型別。3 重寫方法使用的訪問許可權不能小於被重寫方法的訪問許...
第四章 物件導向 2
類被 載入的順序 1.載入 static 靜態修飾的 內容 屬性 方法 塊 2.載入建構函式 先載入 父類的建構函式 在載入 子類的建構函式 3.在從上到下 載入 基本屬性 和 方法 許可權修飾符 private 私有 許可權,在建立的物件 或者本類中使用 default 同乙個包中的類 才能訪問 ...
第四章 軟體工程
這一章組要包括 一 軟體開發生命週期 軟體開發生命週期的模型包括 瀑布模型 一次完成 原型 動態定義需求,一次次明確需求 螺旋模型 迴圈改進,加入了風險分析 噴泉模型 迭代 二 軟體專案管理 專案管理的核心是專案的成本,進度,質量。專案管理內容主要包括 啟動,度量,估算,風險分析,進度安排,追蹤控制...