軟件工程導論張海潘第六總結PPT課件_第1頁
軟件工程導論張海潘第六總結PPT課件_第2頁
軟件工程導論張海潘第六總結PPT課件_第3頁
軟件工程導論張海潘第六總結PPT課件_第4頁
軟件工程導論張海潘第六總結PPT課件_第5頁
已閱讀5頁,還剩112頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 3 3、軟件軟件 軟件是程序、數據及文檔的完整集合。軟件是程序、數據及文檔的完整集合。 其中:其中: 程序是能夠完成預定功能和性能的可執行的指令程序是能夠完成預定功能和性能的可執行的指令序列;序列; 數據是使程序能夠適當地處理信息的數據結構;數據是使程序能夠適當地處理信息的數據結構; 文檔是開發、使用和維護程序的圖文資料。文檔是開發、使用和維護程序的圖文資料。 4 4、軟件工程軟件工程 軟件工程是采用工程的軟件工程是采用工程的概念、原理、技術和方法概念、原理、技術和方法來來開發與維護開發與維護軟件一門工程學科,從而軟件一門工程學科,從而經濟地開發出高經濟地開發出高質量的軟件并有效地維護它質量

2、的軟件并有效地維護它。 5 5、軟件工程方法學、軟件工程方法學 在軟件在軟件生命周期全過程生命周期全過程中使用的一整套中使用的一整套技術方法的技術方法的集合集合稱為軟件工程方法學。稱為軟件工程方法學。軟件工程軟件工程 第一章第一章 第1頁/共117頁 6 6、方法學三要素?、方法學三要素? 工程方法學包含工程方法學包含3 3個要素:個要素:方法、工具方法、工具和和過程過程; 方法方法:是完成軟件開發的各項任務的技術方法,回答:是完成軟件開發的各項任務的技術方法,回答“怎樣做怎樣做”的問的問題。題。 工具工具:是為運用方法而提供的自動的或半自動的軟件工程支撐環境。:是為運用方法而提供的自動的或半

3、自動的軟件工程支撐環境。 過程過程:是為了獲得高質量的軟件所需要完成的一系列任務的框架,它:是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。規定了完成各項任務的工作步驟。軟件工程軟件工程 第一章第一章 第2頁/共117頁7 7、傳統方法學、面向對象方法學、傳統方法學、面向對象方法學 (1)傳統方法學(生命周期方法學或結構化范型) 強調自頂向下; (2)面向對象方法學 強調主動地多次反復迭代; (3)面向對象方法學4個要點: 對象; 類; 繼承; 消息軟件工程軟件工程 第一章第一章 第3頁/共117頁 8 8、軟件生命周期、軟件生命周期 軟件孕育、誕生、成長、

4、成熟、衰亡的生存過程。軟件孕育、誕生、成長、成熟、衰亡的生存過程。軟件工程軟件工程 第一章第一章 第4頁/共117頁軟件生命周期1. 問題定義2. 可行性研究3. 需求分析4. 總體設計5. 詳細設計6. 編碼和單元測試7. 綜合測試8. 軟件維護第5頁/共117頁 各階段具體任務: 1.問題定義:必須回答的關鍵問題是:“要解決的問題是什么?”。 2.可行性研究:階段回答的關鍵問題是:“對于上一個階段所確定的問題有行得通的解決辦法嗎?” 3.需求分析:“目標系統必須做什么”,確定目標系統必須具備哪些功能。 4.總體設計:必須回答的關鍵問題是:“概括地說,應該怎樣實現目標系統?”總體設計又稱為概

5、要設計。 5.詳細設計:關鍵問題是:“應該怎樣具體地實現這個系統呢?” 6.編碼和單元測試:關鍵任務是寫出正確的容易理解、容易維護的程序模塊。 7.綜合測試:關鍵任務是通過各種類型的測試使軟件達到預定的要求。 8.軟件維護:通過各種必要的維護活動使系統持久地滿足用戶的需要。第6頁/共117頁 8 8、軟件過程、軟件過程 為為獲得高質量軟件所需要完成的獲得高質量軟件所需要完成的一系列任務的框架一系列任務的框架,它規定了完成各項任務的它規定了完成各項任務的工作步驟工作步驟。是軟件工程三要素之是軟件工程三要素之一的一的過程過程。 9 9、軟件生命周期模型、軟件生命周期模型 軟件過程通常用軟件過程通常

6、用軟件生命周期模型軟件生命周期模型來描述,它規定了來描述,它規定了把生命周期把生命周期劃分成哪些階段劃分成哪些階段以及各個以及各個階段執行的順序階段執行的順序,也,也稱為過程模型。稱為過程模型。 1010、典型的生命周期模型、典型的生命周期模型 瀑布模型、瀑布模型、 快速原型模型快速原型模型 增量模型、增量模型、 螺旋模型螺旋模型 噴泉模型噴泉模型軟件工程軟件工程 第一章第一章 第7頁/共117頁 1111、瀑布模型、瀑布模型、 軟件工程軟件工程 第一章第一章 實際的瀑布模型實際的瀑布模型傳統的瀑布模型傳統的瀑布模型第8頁/共117頁 1212、快速原型模型、快速原型模型 軟件工程軟件工程 第

7、一章第一章 實線箭頭實線箭頭表示開發過程表示開發過程 虛線箭頭虛線箭頭表示維護過程表示維護過程第9頁/共117頁 1313、增量模型、增量模型軟件工程軟件工程 第一章第一章 增量模型增量模型風險更大的增量模型風險更大的增量模型第10頁/共117頁 1414、螺旋模型:增加了、螺旋模型:增加了風險分析風險分析過程的過程的快速原型快速原型。 軟件工程軟件工程 第一章第一章 簡單得螺旋模型簡單得螺旋模型完整的螺旋模型完整的螺旋模型第11頁/共117頁 1515、噴泉模型:、噴泉模型:面向對象軟件開發迭代迭代和無縫無縫的特性軟件工程軟件工程 第一章第一章 噴泉模型噴泉模型第12頁/共117頁 1616

8、、各模型特點、各模型特點 瀑布模型的特點:瀑布模型的特點:1.階段間具有順序性和依賴性。 2.推遲實現的觀點。3.質量保證的觀點。 快速原型:快速原型:是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產品能完成功能的一個子集。 增量模型:增量模型:它分批地逐步向用戶提交產品,整個軟件產品被分解成許多個增量構件,開發人員一個構件一個構件地向用戶提交產品。 螺旋模型:螺旋模型:基本思想是使用原型及其他方法來盡量降低風險。理解這種模型的一個簡單方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型。(使用于內部開發的大規模軟件項目) 噴泉模型:噴泉模型:強調的是“迭代”

9、和“無縫“的特性,是典型的面向對象的軟件過程模型之一。第13頁/共117頁復習重點 軟件危機 軟件工程 軟件工程三要素 軟件生命周期包含的過程(3個時期、8個階段)及各過程的任務 瀑布模型 快速還原模型第14頁/共117頁1 1、可行性研究的目的:、可行性研究的目的: 就是用最小的代價在盡可能短的時間內就是用最小的代價在盡可能短的時間內確定問題是否能夠確定問題是否能夠解決解決。 必須記住,可行性研究的目的必須記住,可行性研究的目的不是解決問題不是解決問題,而是,而是確定問確定問題是否值得去解決題是否值得去解決。 從下述從下述3 3個方面研究每種解法的可行性:個方面研究每種解法的可行性: 1 1

10、)技術可行性技術可行性 2 2)經濟可行性經濟可行性 3 3)操作可行性操作可行性 其他方面:其他方面:運行可行性、法律可行運行可行性、法律可行性性2 2、典型的可行性研究有下述一些步驟:、典型的可行性研究有下述一些步驟: 1.1.復查系統規模和目標。復查系統規模和目標。 2.2.研究目前正在使用的研究目前正在使用的系統系統 3.3.導出新系統的高層邏輯模型導出新系統的高層邏輯模型 4.4.進一步定義問題進一步定義問題 5.5.導出和評價供選擇的解法導出和評價供選擇的解法 6.6.推薦行動方針推薦行動方針 7.7.草擬開發計劃草擬開發計劃 8.8.書寫文檔提交審查。書寫文檔提交審查。第二章第二

11、章 可行性研究可行性研究第15頁/共117頁3 3、系統流程圖:、系統流程圖: 是概括性地描繪是概括性地描繪物理系統物理系統的傳統工具,它的基本思想的傳統工具,它的基本思想是用是用圖形符號圖形符號以以黑盒子形式黑盒子形式描繪描繪組成系統的每個部件組成系統的每個部件。 系統流程圖表達的是系統流程圖表達的是數據在系統各部件之間流動的情況數據在系統各部件之間流動的情況,而而不是對數據進行加工處理不是對數據進行加工處理的控制過程,因此盡管系統流程的控制過程,因此盡管系統流程圖的某些符號和程序流程圖的符號形式相同,但是它卻圖的某些符號和程序流程圖的符號形式相同,但是它卻是物是物理數據流圖理數據流圖而而不

12、是程序流程圖不是程序流程圖。基本符號如下。基本符號如下第二章第二章 可行性研究可行性研究第16頁/共117頁庫存清單系統的系統流程圖庫存清單系統的系統流程圖第17頁/共117頁4 4、數據流圖(、數據流圖(DFDDFD) 是一種圖形化技術,它描繪信息流和數據從是一種圖形化技術,它描繪信息流和數據從輸入輸入移動到移動到輸出輸出的過程中所的過程中所經受的變換經受的變換。 在數據流圖中沒有任何具體的物理部件,它只是描在數據流圖中沒有任何具體的物理部件,它只是描繪數據繪數據在軟件在軟件中中流動和被處理流動和被處理的的邏輯過程。基本符邏輯過程。基本符號如號如下下:第二章第二章 可行性研究可行性研究第18

13、頁/共117頁附加符號:附加符號: 星號(星號(* *):表示):表示“與與”關系;關系; 加號加號(+ +):表示):表示“或或”關系關系 異或(異或( ):表示互斥):表示互斥關系關系第二章第二章 可行性研究可行性研究第19頁/共117頁5 5、畫數據流圖的步驟:、畫數據流圖的步驟: (1 1)從問題描述中提取數據流圖的)從問題描述中提取數據流圖的4 4種成分:種成分:u數據的源點數據的源點/ /終點終點u處理:處于靜止狀態的數據處理:處于靜止狀態的數據u數據流:處于運動中的數據數據流:處于運動中的數據u數據存儲:數據存儲: (2 2)畫基本系統模型)畫基本系統模型 (3 3)細化,描繪系

14、統的主要功能(功能級數據流圖)細化,描繪系統的主要功能(功能級數據流圖) (4 4)對系統主要功能進一步細化)對系統主要功能進一步細化第20頁/共117頁6 6、畫數據流圖舉例:、畫數據流圖舉例: 銀行計算機儲蓄系統的工作過程大致如下:銀行計算機儲蓄系統的工作過程大致如下: 儲戶填寫的存款單或取款單由業務員鍵入系統,儲戶填寫的存款單或取款單由業務員鍵入系統,如果是存款則系統記錄存款人姓名、住址如果是存款則系統記錄存款人姓名、住址( (或電話號或電話號碼碼) )、身份證號碼、存款類型、存款日期、到期日期、身份證號碼、存款類型、存款日期、到期日期、利率及密碼利率及密碼( (可選可選) )等信息,并

15、印出存單給儲戶;等信息,并印出存單給儲戶; 如果是取款而且存款時留有密碼,則系統首先核對如果是取款而且存款時留有密碼,則系統首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統計算儲戶密碼,若密碼正確或存款時未留密碼,則系統計算利息并印出利息清單給儲戶。利息并印出利息清單給儲戶。第21頁/共117頁第一步:第一步: 提取數據流圖的提取數據流圖的四種成分四種成分: 數據源點和終點數據源點和終點:業務員、儲戶:業務員、儲戶 處理:處理: (1) (1) 事物處理事物處理 (2) (2) 處理存款處理存款 (3 3)處理取款)處理取款 數據存儲:數據存儲: (1) (1) 存款信息存款信息 (2)

16、(2) 取款信息取款信息 數據流:數據流: 事物、存款單、存單事物、存款單、存單 密碼密碼 、取款單、利息清單、取款單、利息清單第22頁/共117頁頂層數據流圖第二步:畫基本數據流圖第二步:畫基本數據流圖第23頁/共117頁 功能級數據流圖功能級數據流圖第三步:畫功能級數據流圖第三步:畫功能級數據流圖 第24頁/共117頁 細化的數據流圖第四步:第四步:對系統主要功能進一步細化第25頁/共117頁7 7、數據字典:、數據字典: 數據的信息的集合,也就是對數據的信息的集合,也就是對數據流圖數據流圖中包含的中包含的所有元所有元素素的的定義定義的集合。的集合。 可行性研究階段,可行性研究階段,數據流

17、圖數據流圖與與數據字典數據字典共同構成系統的共同構成系統的邏輯模型邏輯模型。沒有數據字典,數據流圖就不嚴格,然而沒有。沒有數據字典,數據流圖就不嚴格,然而沒有數據流圖,數據字典也難于發揮作用。數據流圖,數據字典也難于發揮作用。 數據字典應該由對下列數據字典應該由對下列4 4類元素類元素的定義組成:數據流、數的定義組成:數據流、數據流分量(數據元素)、數據存儲和處理。據流分量(數據元素)、數據存儲和處理。 由由數據元素組成數據數據元素組成數據的方式只有下述的方式只有下述3 3種基本類型種基本類型:順序、:順序、選擇、重復和可選。選擇、重復和可選。 數據定義符號:數據定義符號:= + ( )= +

18、 ( ) = = 等價于等價于 ;+ + 和即連接;和即連接; 選擇一個;選擇一個; 重復重復 ;( )( )可選可選第26頁/共117頁8 8、定義數據的方法、定義數據的方法 數據組成方式數據組成方式( (三種基本類型三種基本類型) ):順序:順序 選擇選擇 重復重復 附附加類型加類型:可選:可選 數據定義符號:數據定義符號:= + ( )= + ( ) 含義:含義: = = 意思是等價于意思是等價于( (或定義為或定義為) ); + + 意思是和意思是和( (即,連接兩個分量即,連接兩個分量) ); 意思是或意思是或( (即,從方括弧內列出的若干個分量中選擇即,從方括弧內列出的若干個分量中

19、選擇一個一個) ),通常用,通常用“| |”號隔開供選擇的分量;號隔開供選擇的分量; 意思是重復意思是重復( (即,重復花括弧內的分量即,重復花括弧內的分量) );常常使;常常使用上限和下限進一步注釋表示重復的花括弧。用上限和下限進一步注釋表示重復的花括弧。 ( )( ) 意思是可選意思是可選( (即,圓括弧里的分量可有可無即,圓括弧里的分量可有可無) )。第27頁/共117頁電話定義-應用舉例 北京某高校可用的北京某高校可用的電話號碼電話號碼有有以下幾類:以下幾類: 校內電話校內電話號碼由號碼由4 4位數字組成,位數字組成, 第第1 1位數字不是位數字不是0 0; 校外電話校外電話又分為又分

20、為本市電話本市電話和和外外 地電話地電話兩類;兩類; a)a)撥校外電話需先撥撥校外電話需先撥0 0,若,若是本市電話則再接著撥是本市電話則再接著撥8 8位數位數 字字( (第第1 1位不是位不是0)0); b)b)若是外地電話則撥若是外地電話則撥3 3位區位區碼再撥碼再撥8 8位電話號碼位電話號碼( (第第1 1位不位不是是0)0)。請用定義請用定義數據字典數據字典的方法,定義的方法,定義上述的上述的電話號碼電話號碼。電話號碼電話號碼=校內電話號碼校內電話號碼| |校外電話號碼校外電話號碼 校內電話號碼校內電話號碼= =非零數字非零數字+ 3 + 3 位數字位數字 /后面繼續定義后面繼續定義

21、校外電話號碼校外電話號碼=本市號碼本市號碼| |外地號碼外地號碼 本市號碼本市號碼= =數字零數字零+8+8位數字位數字外地號碼外地號碼= =數字零數字零+3+3位數字位數字+8+8位數字位數字非零數字非零數字=1|2|3|4|5|6|7|8|9=1|2|3|4|5|6|7|8|9數字零數字零0 03 3位數字位數字33數字數字3 /33 /3至至3 3個數字個數字8 8位數字位數字= =非零數字非零數字+7+7位數字位數字7 7位數字位數字=7=7數字數字77數字數字0|1|2|3|4|5|6|7|8|90|1|2|3|4|5|6|7|8|9第28頁/共117頁9 9、成本、成本/ /效益分

22、析的目標效益分析的目標 正式要從正式要從經濟角度分析經濟角度分析開發一個特定的新系統開發一個特定的新系統是否劃算是否劃算,從而幫助客戶組織的負責人從而幫助客戶組織的負責人正確地做出是否投資于這項開正確地做出是否投資于這項開發工程的決定。發工程的決定。第二章可行性研究第二章可行性研究第29頁/共117頁 復習重點:復習重點: 可行性研究的目的可行性研究的目的 可行性研究的內容可行性研究的內容 數據流圖的畫法數據流圖的畫法 數據字典的實現數據字典的實現第二章第二章 可行性研究可行性研究第30頁/共117頁1 1、需求分析的任務、需求分析的任務 準確地回答準確地回答“系統必須做什么系統必須做什么”這

23、個問題。而這個問題。而不必研究不必研究“如何做如何做”。 需求分析的結果,是提供需求分析的結果,是提供準確完整準確完整的的軟件需求規格說明書軟件需求規格說明書。 2 2、軟件系統的、軟件系統的綜合要求綜合要求 功能需求、功能需求、 性能需求、可靠性和可用性需求、出錯處理性能需求、可靠性和可用性需求、出錯處理需求需求 接口需求、接口需求、 約束約束 、 逆向需求逆向需求 、 將來可能提出的將來可能提出的要求要求 3 3、分析系統的、分析系統的數據要求數據要求 (1 1)建立數據模型)建立數據模型E-RE-R圖圖 (2 2)描繪數據結構)描繪數據結構層次方框圖和層次方框圖和WarnierWarni

24、er圖圖 (3 3)數據結構規范化)數據結構規范化 第三章第三章 需求分析需求分析第31頁/共117頁4 4、需求分析過程建立、需求分析過程建立三種模型三種模型u數據模型:實體數據模型:實體- -聯系圖聯系圖u功能模型:數據流圖功能模型:數據流圖u行為模型:狀態轉換圖行為模型:狀態轉換圖數據字典是分析模型的核心第三章第三章 需求分析需求分析5 5、實體、實體- -聯系圖聯系圖 數據模型中包含數據模型中包含3 3種種相互關聯的信息:相互關聯的信息:數據對象數據對象、數據、數據 對象的對象的屬性屬性、數據對象彼此間相互連接的、數據對象彼此間相互連接的關系。關系。 聯系可分為以下三種類型:聯系可分為

25、以下三種類型:一對一一對一,一對多一對多和和多對多對第32頁/共117頁6 6、范式:、范式:第一范式、第二范式、第三范式第一范式、第二范式、第三范式第33頁/共117頁第三章第三章 需求分析需求分析7 7、狀態轉換圖、狀態轉換圖 通過描繪系統的通過描繪系統的狀態狀態及引起系統狀態轉換的及引起系統狀態轉換的事件事件,來表,來表示系統的示系統的行為行為。 第34頁/共117頁第35頁/共117頁第36頁/共117頁 8 8、層次方框圖、層次方框圖 用用樹形結構樹形結構的一系列的一系列多層次的矩形框多層次的矩形框描繪描繪的層次的層次結結構構。 第三章第三章 需求分析需求分析第37頁/共117頁 9

26、 9、WarnierWarnier圖圖 WarnierWarnier圖也用圖也用樹形結構樹形結構描繪信息,但是這種圖形描繪信息,但是這種圖形工具比層次方框圖提供了工具比層次方框圖提供了更豐富的描繪手段更豐富的描繪手段。 第三章第三章 需求分析需求分析軟件產品的Warnier圖第38頁/共117頁 1010、IPOIPO圖圖 是是輸入輸入、處理處理、輸出圖輸出圖的簡稱,能夠方便地描繪的簡稱,能夠方便地描繪輸入數輸入數據據、對、對數據的處理數據的處理和和輸出數據輸出數據之間的關系。之間的關系。第三章第三章 需求分析需求分析主文件更新處理的IPO圖第39頁/共117頁第三章第三章 需求分析需求分析

27、復習重點:復習重點: 需求分析的任務需求分析的任務 需求分析階段建立需求分析階段建立3 3種模型:種模型:u 數據模型數據模型u 功能模型功能模型u 行為模型行為模型 實體實體- -聯系圖(聯系圖(E-RE-R圖)的畫法圖)的畫法第40頁/共117頁第四章第四章 形式化說明技術形式化說明技術軟件工軟件工程的使程的使用方法用方法非形式化:用自然語言描述需求規格說明非形式化:用自然語言描述需求規格說明半形式化:用數據流圖或實體半形式化:用數據流圖或實體聯系圖聯系圖 建立模型建立模型形式化:描述系統性質的基于數學的技術形式化:描述系統性質的基于數學的技術第41頁/共117頁第五章第五章 總體設計總體

28、設計1 1、總體設計的目的、總體設計的目的“概括地說,系統應當概括地說,系統應當如何實現如何實現”,因此總體設計又稱為,因此總體設計又稱為概要設概要設計計或者或者初步設計初步設計。2 2、總體設計的過程、總體設計的過程由兩個主要階段組成:由兩個主要階段組成: 系統設計系統設計階段,確定系統的具體實現方案:階段,確定系統的具體實現方案: 包括:設想供選擇的方案、選取合理的方案、推薦最佳方案。包括:設想供選擇的方案、選取合理的方案、推薦最佳方案。結構設計結構設計階段,確定軟件結構階段,確定軟件結構: 包括:功能分解、設計軟件結構、設計數據庫、制定測試文檔包括:功能分解、設計軟件結構、設計數據庫、制

29、定測試文檔、書寫文檔、審查和復查。、書寫文檔、審查和復查。3 3、模塊、模塊是由是由邊界元素邊界元素限定的相鄰程序元素的序列,而且有一個總體標識限定的相鄰程序元素的序列,而且有一個總體標識符代表它。符代表它。第42頁/共117頁第五章第五章 總體設計總體設計4 4、模塊化、模塊化 就是把程序就是把程序劃分成劃分成獨立命名且可獨立訪問的模塊,每個模塊完獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來夠成一個整體,可以完成指成一個子功能,把這些模塊集成起來夠成一個整體,可以完成指定的功能滿足用戶的需求。定的功能滿足用戶的需求。 每個程序都相應地有一個每個程序都相應地有一個最適

30、當的模塊數目最適當的模塊數目M,使得系統的,使得系統的開開發成本最小發成本最小。 5 5、模塊化的作用、模塊化的作用模塊化可以使模塊化可以使軟件結構清晰軟件結構清晰,不僅容易設計也,不僅容易設計也容易閱讀和理解容易閱讀和理解; 模塊化使軟件模塊化使軟件容易測試和調試容易測試和調試,因而有助于提,因而有助于提高軟件的可靠性高軟件的可靠性;模塊化能夠模塊化能夠提高軟件的可修改性提高軟件的可修改性; 模塊化也有助于模塊化也有助于軟件開發工程的組織管理軟件開發工程的組織管理。第43頁/共117頁第五章第五章 總體設計總體設計6 6、抽象、抽象抽象就是抽象就是抽出事物本質抽出事物本質特性而特性而暫時不考

31、慮細節暫時不考慮細節。是人類處理復雜。是人類處理復雜問題的基本方法之一問題的基本方法之一7 7、逐步求精、逐步求精為了能集中精力為了能集中精力解決主要問題解決主要問題而盡量而盡量推遲推遲對問題對問題細節的考慮細節的考慮。8 8、信息隱藏、信息隱藏 設計和確定模塊,使得一個模塊設計和確定模塊,使得一個模塊內包含的信息內包含的信息(過程和數據過程和數據)對于不對于不需要這些信息的模塊來說,是需要這些信息的模塊來說,是不能訪問的不能訪問的。9 9、局部化、局部化 指把一些關系指把一些關系密切的軟件元素密切的軟件元素物理地物理地放得彼此靠近放得彼此靠近。顯然,局部。顯然,局部化有助于實現信息隱藏。化有

32、助于實現信息隱藏。 第44頁/共117頁第五章第五章 總體設計總體設計1010、模塊獨立性、模塊獨立性使得每個模塊完成一個使得每個模塊完成一個相對獨立的特定子功能相對獨立的特定子功能,并且和其他,并且和其他模塊模塊之間的關系很簡單。之間的關系很簡單。即即功能專一功能專一,模塊之間,模塊之間無過多的相互作用無過多的相互作用的模塊。的模塊。1111、模塊獨立程度的兩個定性標準度量、模塊獨立程度的兩個定性標準度量 兩個標準分別稱為兩個標準分別稱為內聚內聚和和耦合耦合。 1212、耦合、耦合是對一個軟件結構內是對一個軟件結構內不同模塊之間互連程度不同模塊之間互連程度的度量。的度量。耦合要低耦合要低,即

33、每個即每個模塊和其他模塊之間的關系要簡單模塊和其他模塊之間的關系要簡單; 1313、內聚、內聚 是衡量一個模塊是衡量一個模塊內部各個元素彼此結合的緊密程度內部各個元素彼此結合的緊密程度。內聚要高內聚要高,每個模塊完成一個相對獨立的特定子功能。理想內聚的模塊只,每個模塊完成一個相對獨立的特定子功能。理想內聚的模塊只做一件事情。做一件事情。第45頁/共117頁1414、耦合的種類(、耦合的種類(6 6種種)(1) 非直接耦合非直接耦合/完全獨立完全獨立:兩個模塊中的每一個都能獨立地工作而不需要另一個模:兩個模塊中的每一個都能獨立地工作而不需要另一個模塊的存在;塊的存在;(2)數據耦合)數據耦合:兩

34、個模塊彼此間通過:兩個模塊彼此間通過參數交換信息參數交換信息,而且交換的信息僅僅是,而且交換的信息僅僅是數據數據;(3)控制耦合)控制耦合:兩個模塊彼此間傳遞的信息中:兩個模塊彼此間傳遞的信息中有控制信息有控制信息;(4)特征耦合)特征耦合:把:把整個數據結構整個數據結構作為參數傳遞而被調用的模塊作為參數傳遞而被調用的模塊只需要使用其中一部只需要使用其中一部分數據元素分數據元素時,就出現了特征耦合;時,就出現了特征耦合;(5)公共環境耦合)公共環境耦合:兩個或多個模塊通過:兩個或多個模塊通過一個公共數據環境一個公共數據環境相互作用時,它們之間相互作用時,它們之間的耦合稱為公共環境耦合;的耦合稱

35、為公共環境耦合;(6)內容耦合)內容耦合:最高程度的耦合是:最高程度的耦合是內容耦合內容耦合。 如果出現下列情況之一,兩個模塊間就發生了內容耦合:如果出現下列情況之一,兩個模塊間就發生了內容耦合:u 一個模塊一個模塊訪問另一個模塊的內部數據訪問另一個模塊的內部數據;u 一個模塊一個模塊不通過正常入口轉到另一個模塊的內部不通過正常入口轉到另一個模塊的內部;u 兩個模塊有一部分程序兩個模塊有一部分程序代碼重疊代碼重疊;u 一個模塊一個模塊有多個入口有多個入口。 設計原則:設計原則:盡量使用數據耦合,盡量使用數據耦合,少用少用控制耦合和特征耦合,控制耦合和特征耦合,限制限制公共環境耦合的范圍公共環境

36、耦合的范圍,完全不用完全不用內容耦合。內容耦合。第46頁/共117頁1515、內聚的種類、內聚的種類(7種)(1)偶然內聚)偶然內聚:一個模塊完成一組任務,這些任務彼此間即使有關系,關系也是很松:一個模塊完成一組任務,這些任務彼此間即使有關系,關系也是很松散的,就叫做偶然內聚。散的,就叫做偶然內聚。(2)邏輯內聚)邏輯內聚:一個模塊完成的任務在一個模塊完成的任務在邏輯上邏輯上屬于屬于相同相同或或相似相似的一類,則稱為邏輯內的一類,則稱為邏輯內聚。聚。(3)時間內聚:)時間內聚:一個模塊包含的任務一個模塊包含的任務必須在同一段時間內執行必須在同一段時間內執行,就叫時間內聚。,就叫時間內聚。(4)

37、過程內聚)過程內聚:一個模塊內的:一個模塊內的處理元素是相關的處理元素是相關的,而且必須以,而且必須以特定次序執特定次序執行,則稱為行,則稱為過程內聚。過程內聚。(5)通信內聚)通信內聚:模塊中所有元素都:模塊中所有元素都使用同一個輸入數據使用同一個輸入數據和和(或或)產生同一個輸出數據產生同一個輸出數據,則,則稱為通信內聚。即在稱為通信內聚。即在同一個數據結構上操作同一個數據結構上操作。(6)順序內聚)順序內聚:一個模塊內的處理元素和:一個模塊內的處理元素和同一個功能密切相關同一個功能密切相關,而且這些處理,而且這些處理必須順必須順序執行序執行,則稱為順序內聚。,則稱為順序內聚。(7)功能內

38、聚:)功能內聚:如果模塊內所有處理元素如果模塊內所有處理元素屬于一個整體屬于一個整體,完成,完成一個單一的功能一個單一的功能,則稱,則稱為功能內聚。功能內聚是為功能內聚。功能內聚是最高程度的內聚最高程度的內聚。 高內聚:功能內聚 、順序內聚 中內聚:通信內聚 、過程內聚 低內聚:時間內聚 、邏輯內聚、偶然內聚第47頁/共117頁1515、啟發性規則、啟發性規則(7條)(1)改進軟件結構提高模塊獨立性:)改進軟件結構提高模塊獨立性:通過模塊通過模塊分解或合并分解或合并,降低耦合降低耦合提高內聚提高內聚。(2)模塊規模應該適中)模塊規模應該適中:過大的模塊往往是由于分解不充分,過小的模塊將導致:過

39、大的模塊往往是由于分解不充分,過小的模塊將導致模塊數目過多將使系統接口復雜。模塊數目過多將使系統接口復雜。(3)深度、寬度、扇出和扇入都應適當)深度、寬度、扇出和扇入都應適當:u 深度:軟件結構中深度:軟件結構中控制的層數;控制的層數;u 寬度:軟件結構內同一個層次上的寬度:軟件結構內同一個層次上的模塊總數的最大值模塊總數的最大值;u 扇出:一個模塊扇出:一個模塊直接控制直接控制(調用調用)的模塊數目的模塊數目;u 扇入:有多少個扇入:有多少個上級模塊直接調用它上級模塊直接調用它。第48頁/共117頁1515、啟發性規則、啟發性規則(7條)(4)模塊的作用域應該在控制域之內:)模塊的作用域應該

40、在控制域之內:u模塊的作用域:定義為受該模塊內一個模塊的作用域:定義為受該模塊內一個判定影判定影響的所有模塊的集合。響的所有模塊的集合。u模塊的控制域:是這個模塊模塊的控制域:是這個模塊本身以及所有直接或間接從屬于它本身以及所有直接或間接從屬于它的模塊的集合的模塊的集合 。(5)力爭降低模塊接口的復雜程度。)力爭降低模塊接口的復雜程度。(6)設計單入口單出口的模塊。)設計單入口單出口的模塊。(7)模塊功能應該可以預測:)模塊功能應該可以預測: 功能可預測:功能可預測:如果一個模塊可以當做一個黑盒子,只要輸入的數據相同就產生如果一個模塊可以當做一個黑盒子,只要輸入的數據相同就產生同樣的輸出,這個

41、模塊的功能就是可以預測的。同樣的輸出,這個模塊的功能就是可以預測的。第49頁/共117頁1616、層次圖(H圖)層次圖層次圖用來描繪用來描繪軟件的層次結構。軟件的層次結構。很適于在很適于在自頂向下自頂向下設計軟件的過程中使用設計軟件的過程中使用。與層次方框圖的區別是:與層次方框圖的區別是:層次方框圖描繪的是描繪的是數據結構數據結構。第50頁/共117頁1717、HIPO圖 HIPO圖是圖是 “層次圖層次圖+ 輸入輸入 / 處理處理/輸出圖輸出圖”的英文縮寫。的英文縮寫。 為了能使為了能使HIPO圖具有圖具有可追蹤性可追蹤性,在,在H圖圖(層次圖層次圖)里除了最頂層的方框之外,里除了最頂層的方框

42、之外,每個方框都加了每個方框都加了編號編號。 和和H圖中每個方框相對應,應該有一張圖中每個方框相對應,應該有一張IPO圖圖描繪這個方框代表的模塊的處理描繪這個方框代表的模塊的處理過程。過程。第51頁/共117頁1818、面向數據流的設計方法 面向數據流的設計方法可以面向數據流的設計方法可以把數據流圖變換成軟件結構把數據流圖變換成軟件結構。通常所說的通常所說的結構結構化設計方法化設計方法(簡稱簡稱SD方法方法),也就是基于,也就是基于數據流的設計方法。數據流的設計方法。 1919、信息流有兩種類型u變換流變換流u事務流事務流2020、變換分析 把具有把具有變換流特點變換流特點的的數據流圖數據流圖

43、按預先確定的模式按預先確定的模式映射成映射成軟件結構軟件結構。第52頁/共117頁2121、變換分析設計步驟(1)復查基本系統模型復查基本系統模型:確保系統的:確保系統的輸入數據輸入數據和和輸出數據輸出數據符合實際符合實際。(2)復查并精化數據流圖:確保數據流圖給出了)復查并精化數據流圖:確保數據流圖給出了正確的邏輯模型正確的邏輯模型,使數據流,使數據流圖中圖中每個處理每個處理都代表一個都代表一個相對獨立的子功能相對獨立的子功能。 (3)確定確定數據流圖具有數據流圖具有變換特性變換特性還是還是事務特性事務特性。(4)確定)確定輸入流輸入流和和輸出流輸出流的的邊界邊界,從而,從而孤立孤立出出變換

44、中心。變換中心。第53頁/共117頁2121、變換分析設計步驟(5)完成完成“第一級分解第一級分解”。最頂層的控制模塊協調下述從屬的控制功能。最頂層的控制模塊協調下述從屬的控制功能。 輸入信息處理輸入信息處理控制模塊控制模塊Ca,協調協調對所有對所有輸入數據的接收輸入數據的接收; 變換中心控制變換中心控制模塊模塊Ct,管理對內部形式的管理對內部形式的數據的所有處理操作數據的所有處理操作; 輸出信息處理輸出信息處理控制模塊控制模塊Ce,協調,協調輸出信息的產生過程輸出信息的產生過程。 第54頁/共117頁2121、變換分析設計步驟(6)完成完成“第第二二級分解級分解”。輸入部分、輸入部分、轉換部

45、分、輸出部分分別映射成接映射成接收模塊、收模塊、處理模塊、輸出模塊。 從變換中心的從變換中心的邊界開始邊界開始沿沿輸入通路向外移動輸入通路向外移動,把輸入通路中,把輸入通路中每個處理每個處理映射成軟件結構中映射成軟件結構中Ca控制下的控制下的一個低層模塊一個低層模塊; 然后沿然后沿輸出通路向外移動輸出通路向外移動,把輸出通路中,把輸出通路中每個處理每個處理映射成直接或間接受映射成直接或間接受模塊模塊Ce控制的控制的一個低層模塊一個低層模塊; 最后把最后把變換中心內變換中心內的的每個處理每個處理映射成受映射成受Ct控制的控制的一個處理模塊一個處理模塊。第55頁/共117頁2121、變換分析設計步

46、驟(6)完成完成“第第二二級分解級分解” (7)使用設計度量和啟發式規則對第一次分割得到的軟件結構進一步精化使用設計度量和啟發式規則對第一次分割得到的軟件結構進一步精化第56頁/共117頁2222、事物分析第57頁/共117頁2323、舉例根據根據儲蓄系統的數據流圖儲蓄系統的數據流圖利用利用面向數據流的設計方法面向數據流的設計方法設計其設計其軟件結構軟件結構第58頁/共117頁2323、舉例根據根據儲蓄系統的數據流圖儲蓄系統的數據流圖利用利用面向數據流的設計方法面向數據流的設計方法設計其設計其軟件結構軟件結構第59頁/共117頁第五章第五章 總體設計總體設計 復習重點:復習重點: 總體設計的目

47、的總體設計的目的 模塊化模塊化 模塊獨立及度量標準模塊獨立及度量標準 耦合、內聚及其種類耦合、內聚及其種類 啟發性規則啟發性規則 面向數據流的設計方法面向數據流的設計方法第60頁/共117頁第六章第六章 詳細設計設計詳細設計設計1 1、總體設計的目的、總體設計的目的確定確定應該怎樣具體地實現應該怎樣具體地實現所要求的系統所要求的系統。2 2、結構程序設計、結構程序設計u 經典的經典的結構程序設計:只允許使用結構程序設計:只允許使用順序順序、IF-THEN-ELSE型分支型分支和和DO-WHILE型循環這型循環這3種基本控制結構種基本控制結構;u 擴展的擴展的結構程序設計:如果除了上述結構程序設

48、計:如果除了上述3種基本控制結構之外,還允種基本控制結構之外,還允許使用許使用DO-CASE型多分支結構和型多分支結構和DO-UNTIL型循環結構;型循環結構;u 修正的修正的結構程序設計:再加上允許使用結構程序設計:再加上允許使用LEAVE(或或BREAK)結構。結構。描述描述程序處理過程的工具程序處理過程的工具叫程序設計工具叫程序設計工具,分為,分為圖形圖形、表格表格、和、和語言語言3 3類,必須提供對設計的無歧義的描述。包括:程序流程圖類,必須提供對設計的無歧義的描述。包括:程序流程圖(程序框圖)、盒圖(程序框圖)、盒圖(N-S(N-S圖圖) )、PADPAD圖、判定表、判定樹、過程設圖

49、、判定表、判定樹、過程設計語言計語言( (偽碼)。偽碼)。3 3、過程設計工具、過程設計工具第61頁/共117頁4 4、程序流程圖、程序流程圖程序流程圖又稱為程序流程圖又稱為程序框圖程序框圖,它是歷史最悠久、使用最廣,它是歷史最悠久、使用最廣泛描述過程設計的方法。也是用的泛描述過程設計的方法。也是用的最混亂最混亂的一種方法。的一種方法。第62頁/共117頁5 5、盒圖、盒圖(N-S(N-S圖圖) )出于要有一種出于要有一種不允許違背結構程序設計不允許違背結構程序設計精神的精神的圖形工具圖形工具的考慮,的考慮,Nassi和和Shneiderman提出了盒圖,又稱為提出了盒圖,又稱為N-S圖。圖。

50、第63頁/共117頁6 6、PADPAD圖圖是問題分析圖是問題分析圖(problem analysis diagram)的英文縮寫,它用二的英文縮寫,它用二維樹形結構的圖來表示程序的控制流,將這種圖翻譯成程序代碼維樹形結構的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。比較容易。 第64頁/共117頁7 7、判定表判定表判定表卻能夠清晰地表示判定表卻能夠清晰地表示復雜的條件組合復雜的條件組合與與應做的動作之間應做的動作之間的的對對應關系。應關系。第65頁/共117頁8 8、判定判定樹樹是是判定表的變種判定表的變種,用樹形的方式清晰地表示,用樹形的方式清晰地表示復雜的條件組合復雜的條件組

51、合與與應應做的動作之間做的動作之間的的對應關系對應關系。畫判定樹時畫判定樹時分枝的次序分枝的次序可能對可能對最終畫出的判定樹的簡潔程度最終畫出的判定樹的簡潔程度有較有較大影響。大影響。9 9、過程設計語言過程設計語言過程設計語言過程設計語言(PDL)也稱為也稱為偽碼偽碼,它是用,它是用正文形式正文形式表示表示數據和處數據和處理過程理過程的的設計工具設計工具。偽代碼的基本控制結構:偽代碼的基本控制結構:簡單陳述句結構簡單陳述句結構:避免復合語句。:避免復合語句。判定結構判定結構:IF_THEN_ELSE或或CASE_OF結構。結構。選擇結構選擇結構:WHILE_DO或或REPEAT_UNTIL結

52、構結構 第66頁/共117頁例題:某程序例題:某程序流程圖流程圖如下圖所示,請分別用如下圖所示,請分別用N-SN-S圖和圖和PADPAD圖表圖表示。示。第67頁/共117頁a UNTIL x8jbice WHILE x5dx1x2x3x4fgh UNTIL x7x6xi=PAD圖:第68頁/共117頁x8ajx1bTFfx6TFx7ighCASE xix2x4x3x5cdeN-S圖:第69頁/共117頁 例題:例題: 某校制定了某校制定了教師的講課課時津貼標準教師的講課課時津貼標準。 對于各種性質的講座,無論教師是什么職稱,每課時津貼費一律是對于各種性質的講座,無論教師是什么職稱,每課時津貼費

53、一律是5050元;元; 對于一般的授課,則根據教師的職稱來決定每課時津貼費:教授對于一般的授課,則根據教師的職稱來決定每課時津貼費:教授3030元,元,副教授副教授2525元,講師元,講師2020元,助教元,助教1515元。元。 請分別用請分別用判定表判定表、判定樹判定樹表示津貼標準。表示津貼標準。 第70頁/共117頁1010、面向數據結構的設計方法面向數據結構的設計方法面向數據結構的設計方法的根據面向數據結構的設計方法的根據數據結構數據結構最終最終得出得出對對程序處理過程序處理過程的描述程的描述。最適合在詳細階段使用。最適合在詳細階段使用。第71頁/共117頁1111、JacksonJac

54、kson方法方法面面Jackson結構程序設計結構程序設計方法由方法由5個步驟個步驟組成:組成:(1) 分析并確定分析并確定輸入數據輸入數據和和輸出數據輸出數據的邏輯結構,用的邏輯結構,用Jackson圖圖描繪數據結構描繪數據結構。(2) 找出找出輸入數據結構輸入數據結構和和輸出數據結構輸出數據結構中有中有對應關系的數據單元對應關系的數據單元。(3) 用用下述規則下述規則從描繪從描繪數據結構數據結構的的Jackson圖圖導出描繪程序結構導出描繪程序結構的的Jackson圖:圖: 第一,為每對有第一,為每對有對應關系的數據單元對應關系的數據單元,按照它們在數據結構圖中的層次,在程,按照它們在數據

55、結構圖中的層次,在程序結構圖的序結構圖的相應層次畫一個處理框相應層次畫一個處理框(層次不同時與圖中層次低的那個對應層次不同時與圖中層次低的那個對應); 第二,根據第二,根據輸入數據輸入數據結構中結構中剩余的每個數據單元剩余的每個數據單元所處的層次,在程序結構圖的所處的層次,在程序結構圖的相應層次分別為它們畫上相應層次分別為它們畫上對應的處理框對應的處理框; 第三,根據第三,根據輸出數據輸出數據結構中剩余的每個數據單元所處的層次,在程序結構圖的結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫相應層次分別為它們畫上對應的處理框上對應的處理框。 改進的改進的Jackson圖規定

56、在構成圖規定在構成順序結構的元素中不能有重復出現或選擇出現的順序結構的元素中不能有重復出現或選擇出現的元素元素,因此可能需要,因此可能需要增加中間層次的處理框增加中間層次的處理框。 (4) 列出列出所有操作所有操作和和條件條件(包括分支條件和循環結束條件包括分支條件和循環結束條件),并且把它們,并且把它們分配到程序分配到程序結構圖的適當位置結構圖的適當位置。(5) 用用偽碼表示程序偽碼表示程序。第72頁/共117頁1212、程序復雜程度的定量度量程序復雜程度的定量度量定量度量定量度量程序程序復雜程度復雜程度: McCabe方法、方法、Halstead方法。方法。1313、McCabeMcCab

57、e方法方法根據程序根據程序控制流的復雜程度控制流的復雜程度定量定量度量程序的復雜程度度量程序的復雜程度,這樣度量出的結,這樣度量出的結果稱為程序的果稱為程序的環形復雜度環形復雜度。為了突出表示程序的控制流,通常使用流圖。為了突出表示程序的控制流,通常使用流圖。第73頁/共117頁1414、計算環形復雜度的方法計算環形復雜度的方法有了描繪程序控制流的有了描繪程序控制流的流圖流圖之后,可以用下述之后,可以用下述3種方法種方法中的任何中的任何第74頁/共117頁第六章第六章 詳細設計詳細設計 復習重點:復習重點: 程序的程序的3 3種基本控制結構;種基本控制結構; 程序流程圖、程序流程圖、N-SN-

58、S圖圖( (盒圖盒圖) )、PADPAD圖的基本符號圖的基本符號 會畫程序流程圖、會畫程序流程圖、N-SN-S圖、圖、PADPAD圖和判定表、判定樹圖和判定表、判定樹 計算環形復雜度的方法計算環形復雜度的方法第75頁/共117頁第七章第七章 實現實現1 1、軟件實現、軟件實現通常把通常把編碼編碼和和測試測試統稱為實現統稱為實現。所謂編碼:就是把所謂編碼:就是把軟件設計結果軟件設計結果翻譯成翻譯成用某種程序設計語言用某種程序設計語言書寫的程序書寫的程序。源程序代碼的源程序代碼的邏輯簡明清晰邏輯簡明清晰、易讀易懂易讀易懂是好程序的一個重要標準。是好程序的一個重要標準。測試的目的:就是在軟件投入測試

59、的目的:就是在軟件投入生產性運行之前生產性運行之前,盡可能多地,盡可能多地發現軟件中的發現軟件中的錯誤錯誤。2 2、軟件測試的目標、軟件測試的目標測試測試是為了是為了發現程序中的錯誤發現程序中的錯誤而而執行程序的過程執行程序的過程;好的測試方案好的測試方案是極可能是極可能發現迄今為止尚未發現的錯誤的測試方案發現迄今為止尚未發現的錯誤的測試方案;成功的測試成功的測試是是發現了至今為止尚未發現的錯誤的測試發現了至今為止尚未發現的錯誤的測試。注意:注意:測試決測試決不能證明程序是正確的不能證明程序是正確的。即使經過了最嚴格的測試之后,仍然可能即使經過了最嚴格的測試之后,仍然可能還有沒被發現的錯誤潛藏

60、在程序中還有沒被發現的錯誤潛藏在程序中。測試用例測試用例應由測試應由測試輸入數據輸入數據和與之對應的和與之對應的預期輸出結果預期輸出結果這兩部分組成。這兩部分組成。 窮舉測試窮舉測試是是不可能的。不可能的。第76頁/共117頁3 3、軟件測試方法、軟件測試方法(1)黑盒測試)黑盒測試(功能測試功能測試):把把程序程序看作一個看作一個黑盒子黑盒子;完全完全不考慮程序的內部結構不考慮程序的內部結構和處和處理過程理過程;是在是在程序接口進行的測試程序接口進行的測試。 (2)白盒測試)白盒測試(結構測試結構測試):把把程序程序看成裝在一個看成裝在一個透明的盒子里透明的盒子里;測試者測試者完全知道程序的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論