《軟件工程與實踐》 |(四)軟件設計 知識梳理

 

系列索引: 《軟件工程與實踐》第三版 軟件工程課程知識梳理


目錄

 

系列索引: 《軟件工程與實踐》第三版 軟件工程課程知識梳理

本章重難點:

   4.1 軟件設計概述

4.1.1 軟件設計的概念和目標

4.1.2 軟件設計的過程

   4.2 軟件總體設計

4.2.1  軟件總體設計的任務

4.2.2 總體設計的原則和過程

4.2.3  軟件總體設計的方法

   4.3 軟件詳細設計

4.3.1 詳細設計的任務和原則

4.3.2 詳細設計的方法和工具

   4.4 數據庫設計概述

4.4.1 數據庫設計任務及步驟

 

4.4.2 概念數據模型設計

4.4.3 邏輯結構及物理結構設計

4.4.4 爲什麼數據要規範化

   4.5 網絡系統設計概述

   4.6 用戶界面設計

   4.7 軟件設計文檔

   4.8 本章小結


 

 

 

本章重難點:

● 掌握軟件設計的概念、目標和過程        

● 熟悉軟件總體及詳細設計的任務和原則        

● 掌握數據庫設計、網絡設計和界面設計要點及方法        

● 掌握軟件設計工具使用及設計文檔編寫格式和方法

 

   4.1 軟件設計概述

4.1.1 軟件設計的概念和目標

軟件設計分爲兩個階段:總體設計詳細設計

總體設計主要確定總體架構、總體設計文檔和方案。詳細設計是具體細化,確定組成模塊及聯繫、處理過程、數據庫及網絡、界面設計、軟件設計文檔(含具體方案)等。

 

4.1.2 軟件設計的過程

    軟件設計先要進行總體設計概要設計,從總體上進行宏觀概要架構設計,將軟件需求轉化爲軟件的系統結構和數據結構。對經過“複審”可接受的總體設計方案,進入“詳細設計”,進一步進行“模塊描述”,最後還要經過“複審”,完成“設計文檔”

軟件設計過程中的信息流

 

   4.2 軟件總體設計

4.2.1  軟件總體設計的任務

 軟件總體設計的任務主要包括:

4.2.2 總體設計的原則和過程

總體設計的總原則及過程是:

由宏觀到微觀、逐步求精的原則,定性定量分析相結合、分解與協調相結合和模型化方法,並要兼顧系統的通用性、關聯性、整體性和層次性。根據系統的總體結構、功能、任務和目標的要求分解系統,使各子系統之間互相協調配合,實現系統的整體優化。

軟件設計基本原則:  模塊化,抽象,內聚和耦合,子系統及模塊劃分,信息隱蔽等

1. 軟件工程模塊化

模塊是構成程序的基本構件,主要由數據說明、執行語句等程序對象構成。模塊化(Modular)是將複雜軟件劃分爲功能相對獨立且易於處理的模塊的過程。

2. 抽象和逐步求精

3.模塊的內聚和耦合

          內聚對內,耦合對外,最大程度的追求高內聚低耦合。

 4. 子系統及模塊的劃分

   結構圖(Structure Chart,SC)是準確描述表達軟件結構的圖形表示方法,可反映模塊之間的層次調用關係和聯繫。

 打印報告的模塊結構圖。其調用次序爲上層調用下層,同層按照數據傳遞關係確定,一般從左到右執行。執行過程即按照數據流向進行。

好的軟件結構準則: 頂部寬度小,中部寬度大,底部寬度次之。

 

   5. 信息隱藏

 信息隱蔽主要是指模塊所包含的“過程及數據”信息,對於其它模塊需要隱蔽。模塊規定和設計應遵從:使包含在模塊中的“過程或數據”信息,對於其它不需要這些信息的模塊,不能訪問或“不可見”。

 

 

4.2.3  軟件總體設計的方法

 軟件設計方法可以分爲三大類:

一是面向數據流的設計(結構化設計方法)也稱爲過程驅動設計;

二是面向數據結構設計,也稱爲數據驅動的設計;

三是面向對象設計。

 

1. 結構化設計方法

結構化設計方法概述

SD法分爲總體設計詳細設計兩個階段:

(1)總體設計。總體設計過程要解決系統的模塊結構,確定系統模塊的層次結構。SD法的總體設計步驟是:

         ① 從 DFD 圖(數據流圖或數據流程圖)導出初始的模塊結構圖。       ② 改進初始的模塊結構圖。

(2)詳細設計。詳細設計階段的任務是: 對模塊圖中每個模塊的過程進行描述.常用描述方式:流程圖、N-S(結構流程)圖、PAD圖等。

 

結構化設計方法的設計過程

結構化設計方法的目標確定設計軟件結構的一個系統化的途徑

SD法總體設計過程需要從DFD 圖導出初始模塊結構圖, 首先要分析DFD 圖的類型, 對不同類型的DFD圖,採用不同的技術將其轉換爲初始的模塊結構圖(SC 圖).

一般將 DFD 圖分爲兩種典型類型: 中心變換型事務處理型

中心變換型的數據流圖基本上呈線性形狀,可以比較明顯地分爲 輸入、變換(或加工)、輸出三部分,其中變換部分是系統的主要工作

此類系統的數據流圖常呈輻射狀,一個加工(事務中心)將它的輸入分離成若干種發散的數據流,從而形成若干條活動的路徑,然後根據輸入值選擇其中的一條路徑處理,

在中型以上DFD中,常用變換流爲主,事務流爲輔的方法

結構化設計設計步驟

   

2. 面向數據結構的設計方法

Jackson 開發方法是一種典型的面向數據結構的分析與設計方法。適合於數據處理類方法。

 

3.原型法

利用初步設計某一相對直觀易於理解的原型,經過徵求意見逐步改進完善的設計方法。

適合於軟件規模大、要求複雜、系統服務不清晰的情況。特別是當性能要求較高時,需要對軟件設計原型先做一些試驗。

原型法在整個軟件開發策略或設計階段均可使用, 目的是爲了不斷取得反饋並進行改進。

 

   4.3 軟件詳細設計

4.3.1 詳細設計的任務和原則

詳細設計主要完成對軟件模塊的內部過程具體設計和描述,解決“具體怎麼做(現實)”的問題。

主要包括:模塊設計、過程設計、界面設計

1. 詳細設計的任務

 2. 詳細設計的原則

 

4.3.2 詳細設計的方法和工具

1. 詳細設計方法的選擇 

選擇設計方法原則是:過程描述便於理解、複審和維護,可自然地轉換成代碼,並保證代碼與詳細設計完全一致。

三種基本控制結構:     順序、選擇和循環

詳細設計使用的結構化程序設計是一種設計程序技術,採用自頂向下、 逐步求精的設計方法單入口單出口的控制結構

*2. 詳細設計的工具(有的在需求分析中介紹)

詳細設計常用工具包括以下三種:   圖形、表格、語言.

 圖形工具是將過程細節用圖形進行表示,  如流程圖、盒圖、問題分析圖(PAD)等。

 

   4.4 數據庫設計概述

4.4.1 數據庫設計任務及步驟

 

4.4.2 概念數據模型設計

 在軟件分析階段利用E-R圖進行系統描述

 

4.4.3 邏輯結構及物理結構設計

(1)邏輯結構設計需要將E-R圖轉換爲關係模式

(2)物理結構設計是根據數據模型及處理要求,設計出數據庫的物理數據模型。

(3)數據庫物理設計的方法是:選擇存儲結構和存取方法,以求獲得最佳的存取效率。

 

4.4.4 爲什麼數據要規範化

規範化 --- 將數據的邏輯結構歸結爲滿足一定條件的二維表(關係)。

 通常用“範式(Normal Forms)”定義消除數據冗餘的程度。第一範式(1 NF)數據冗餘程度最大,第五範式(5 NF)數據冗餘程度最小。

從實用角度看來,在大多數場合選用第三範式都比較恰當。

 

   4.5 網絡系統設計概述

網絡技術的選擇

 網絡的分層設計

從軟件系統體系結構上,主要考慮網絡系統體系結構具體實際需求。

 

   4.6 用戶界面設計

   4.7 軟件設計文檔

   4.8 本章小結

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章