二級C語言第3章 軟件工程基礎
《二級C語言第3章 軟件工程基礎》由會員分享,可在線閱讀,更多相關《二級C語言第3章 軟件工程基礎(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、二級C語言第3章 軟件工程基礎第第3章章 軟件工程基礎軟件工程基礎3.1 3.1 軟件工程基本概念軟件工程基本概念3.2 3.2 結構化分析方法結構化分析方法3.3 3.3 結構化設計方法結構化設計方法3.4 3.4 軟件測試軟件測試3.5 3.5 程序的調試程序的調試二級C語言第3章 軟件工程基礎 軟件定義與軟件特點軟件定義與軟件特點 軟件危機與軟件工程軟件危機與軟件工程 軟件工程過程與軟件生命周期軟件工程過程與軟件生命周期 軟件工程的目標和與原則軟件工程的目標和與原則3.1 軟件工程基本概念軟件工程基本概念 軟件定義與軟件特點軟件定義與軟件特點 計算機軟件是包括程序、數(shù)據(jù)及相關文檔的完整集
2、合。計算機軟件是包括程序、數(shù)據(jù)及相關文檔的完整集合。 軟件的特點包括:軟件的特點包括:(1 1)軟件是一種邏輯實體;)軟件是一種邏輯實體;(2 2)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;(3 3)軟件在運行、使用期間不存在磨損、老化問題;)軟件在運行、使用期間不存在磨損、老化問題;(4 4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題;機系統(tǒng)的限制,這導致了軟件移植的問題;(5 5)軟件復雜性高,成本昂貴;)軟件復雜性高,成本昂貴;(6 6)軟件開發(fā)涉及諸多
3、的社會因素。)軟件開發(fā)涉及諸多的社會因素。軟件危機與軟件工程軟件危機與軟件工程軟件危機泛指在計算機軟件開發(fā)和維護過程中所軟件危機泛指在計算機軟件開發(fā)和維護過程中所遇到的一系列嚴重問題,主要表現(xiàn)為成本、質量、遇到的一系列嚴重問題,主要表現(xiàn)為成本、質量、生產(chǎn)率等問題。生產(chǎn)率等問題。二級C語言第3章 軟件工程基礎軟件工程定義:軟件工程定義: 軟件工程是應用于計算機軟件的定義、開發(fā)和維護的軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。(一整套方法、工具、文檔、實踐標準和工序。(GB) 軟件工程是建立并使用完善的工程化原則,以較經(jīng)濟軟件工程是建立并使用完善的工程化
4、原則,以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。(系列方法。(Fritz Bauer) 將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中。發(fā)、運行和維護的過程,即將工程化應用于軟件中。(IEEE) 軟件工程包括軟件工程包括3個要素:方法(完成軟件工程項目的技個要素:方法(完成軟件工程項目的技術手段)、工具(支持軟件的開發(fā)、管理、文檔生成)術手段)、工具(支持軟件的開發(fā)、管理、文檔生成)和過程(支持軟件開發(fā)的各環(huán)節(jié)的控制、管理)。和過程(支持
5、軟件開發(fā)的各環(huán)節(jié)的控制、管理)。軟件工程過程軟件工程過程軟件工程過程是把輸入轉化為輸出的一組彼此相關的資源和活動.軟件工程過程是指為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動。基于這個層面,軟件工程過程通常包含4種基本活動: (1)Plan軟件規(guī)格說明; (2)Do軟件開發(fā); (3)Check軟件確認; (4)Action軟件演進。從軟件開發(fā)的觀點,軟件工程過程就是使用適當?shù)馁Y源(包括人員、硬軟件工具、時間等),為開發(fā)軟件進行的一組開發(fā)活動,在過程結束時將輸入(用戶要求)轉化為輸出(軟件產(chǎn)品) 軟件生命周期軟件生命周期軟件生命周期:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使
6、軟件生命周期:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。用退役的過程。軟件生命周期三個階段軟件生命周期三個階段: :軟件定義、軟件開發(fā)、運行維護,主軟件定義、軟件開發(fā)、運行維護,主要活動階段是:要活動階段是:(1 1)可行性研究與計劃制定;)可行性研究與計劃制定;(2 2)需求分析;)需求分析;(3 3)軟件設計;)軟件設計;(4 4)軟件實現(xiàn);)軟件實現(xiàn);(5 5)軟件測試;)軟件測試;(6 6)運行和維護。)運行和維護。軟件工程的目標和與原則軟件工程的目標和與原則目標:在給定成本、進度的前提下,開發(fā)出具有有效目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維
7、護性、可重用性、可適性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。需求的產(chǎn)品。基本目標:付出較低的開發(fā)成本;達到要求的軟件功基本目標:付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)軟件易于移植;需要能;取得較好的軟件性能;開發(fā)軟件易于移植;需要較低的費用;能按時完成開發(fā),及時交付使用。較低的費用;能按時完成開發(fā),及時交付使用?;驹瓌t:抽象、信息隱蔽、模塊化、局部化、確定基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。性、一致性、完備性和可驗證性
8、。軟件工程的理論和技術性研究的內容軟件工程的理論和技術性研究的內容軟件工程的理論和技術性研究的內容主要包括:軟件工程的理論和技術性研究的內容主要包括:軟件軟件開發(fā)技術和軟件工程管理。開發(fā)技術和軟件工程管理。軟件開發(fā)技術包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工軟件開發(fā)技術包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。具和軟件工程環(huán)境。軟件工程管理包括:軟件管理學、軟件工程經(jīng)濟學、軟件軟件工程管理包括:軟件管理學、軟件工程經(jīng)濟學、軟件心理學等內容。心理學等內容。v軟件管理學包括人員組織、進度安排、質量保證、配軟件管理學包括人員組織、進度安排、質量保證、配置管理、項目計劃等。置管理、項目計劃
9、等。二級C語言第3章 軟件工程基礎軟件開發(fā)工具與軟件開發(fā)環(huán)境軟件開發(fā)工具與軟件開發(fā)環(huán)境 軟件開發(fā)工具軟件開發(fā)工具軟件開發(fā)方法的有效實施必須得到相應工具的支持,軟件開發(fā)方法的有效實施必須得到相應工具的支持,否則方法將難以有效實施。否則方法將難以有效實施。 軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境或軟件工程環(huán)境是全面支持軟件開發(fā)軟件開發(fā)環(huán)境或軟件工程環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件工具按照一定的全過程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來,支持軟件生命周期內的各個方法或模式組合起來,支持軟件生命周期內的各個階段和各項任務的完成。階段和各項任務的完成。 計算機輔助軟
10、件工程(計算機輔助軟件工程(CASE)CASE將各種軟件工具、開發(fā)機器和一個存放開發(fā)將各種軟件工具、開發(fā)機器和一個存放開發(fā)過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)境。境。二級C語言第3章 軟件工程基礎軟件開發(fā)方法是軟件開發(fā)過程所遵循的方法和步驟,其目軟件開發(fā)方法是軟件開發(fā)過程所遵循的方法和步驟,其目的在于有效得到一些工作產(chǎn)品,即程序和文檔,并且的在于有效得到一些工作產(chǎn)品,即程序和文檔,并且滿足質量要求。滿足質量要求。軟件開發(fā)方法包括分析方法、設計方法和程序設計方法軟件開發(fā)方法包括分析方法、設計方法和程序設計方法結構化分析方法結構化分析方法二級C語
11、言第3章 軟件工程基礎需求分析需求分析軟件需求是指用戶對軟件在功能軟件需求是指用戶對軟件在功能, ,行為行為, ,性能性能, ,設計約束等設計約束等方面的期望方面的期望. .IEEEIEEE定義:定義:用戶解決問題或達到目標所需的條件或權能用戶解決問題或達到目標所需的條件或權能系統(tǒng)或系統(tǒng)部件要滿足合同、標準、規(guī)范或其他正式系統(tǒng)或系統(tǒng)部件要滿足合同、標準、規(guī)范或其他正式規(guī)定文檔所需具有的條件或權能;規(guī)定文檔所需具有的條件或權能;一種反映一種反映 、所描述的條件或職能的文檔說明。所描述的條件或職能的文檔說明。需求分析階段的工作需求分析階段的工作需求獲取需求獲取需求分析需求分析編寫需求規(guī)格說明書編寫
12、需求規(guī)格說明書需求評需求評審審二級C語言第3章 軟件工程基礎需求分析方法需求分析方法需求分析方法有需求分析方法有 (1 1)結構化需求分析方法;)結構化需求分析方法; 面向數(shù)據(jù)流面向數(shù)據(jù)流(SAStructured analysis),(SAStructured analysis),面向數(shù)據(jù)面向數(shù)據(jù)結構結構(JSDJackson system development method),(JSDJackson system development method),面面向數(shù)據(jù)結構的結構化數(shù)據(jù)系統(tǒng)開發(fā)方法向數(shù)據(jù)結構的結構化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSDData (DSSDData structured s
13、ystem development method)structured system development method) (2 2)面向對象的分析的方法()面向對象的分析的方法(OOAObject-Oriented OOAObject-Oriented method)method)。 從需求分析建立的模型的特性來分從需求分析建立的模型的特性來分 靜態(tài)分析靜態(tài)分析 動態(tài)分析動態(tài)分析結構化分析方法結構化分析方法結構化分析方法的實質:著眼于數(shù)據(jù)流,自頂向下,結構化分析方法的實質:著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字
14、典為主要工具字典為主要工具, ,建立系統(tǒng)的邏輯模型。建立系統(tǒng)的邏輯模型。結構化分析的常用工具結構化分析的常用工具 (1 1)數(shù)據(jù)流圖()數(shù)據(jù)流圖(DFDData Flow Diagram)DFDData Flow Diagram) (2 2)數(shù)據(jù)字典)數(shù)據(jù)字典(DD)(DD) (3 3)判定樹)判定樹 (4 4)判定表)判定表 二級C語言第3章 軟件工程基礎數(shù)據(jù)流圖 描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。圖形表示,它直接支持系統(tǒng)的功能建模。 圖形元素圖形元素 建立數(shù)據(jù)流圖的步驟:建立數(shù)據(jù)流圖的步驟: 由外
15、向里:先畫系統(tǒng)的輸入輸出,再畫系統(tǒng)的外部由外向里:先畫系統(tǒng)的輸入輸出,再畫系統(tǒng)的外部自頂向下:順序完成頂層、中間層、底層數(shù)據(jù)流圖自頂向下:順序完成頂層、中間層、底層數(shù)據(jù)流圖逐層分解。逐層分解。二級C語言第3章 軟件工程基礎數(shù)據(jù)字典數(shù)據(jù)字典 數(shù)據(jù)字典是結構化分析的核心數(shù)據(jù)字典是結構化分析的核心 數(shù)據(jù)字典的作用是對數(shù)據(jù)字典的作用是對DFDDFD中出現(xiàn)的被命名的圖形元素的中出現(xiàn)的被命名的圖形元素的確切解釋確切解釋 通常數(shù)據(jù)字典包含的信息有:名稱、別名、何處使用通常數(shù)據(jù)字典包含的信息有:名稱、別名、何處使用/ /如何使用、內容描述、補充信息等如何使用、內容描述、補充信息等 在數(shù)據(jù)字典的編制過程中,常使
16、用定義方式描述數(shù)據(jù)在數(shù)據(jù)字典的編制過程中,常使用定義方式描述數(shù)據(jù)結構結構需求分析階段的最后成果需求分析階段的最后成果-軟件需求規(guī)格說明書軟件需求規(guī)格說明書軟件需求規(guī)格說明書的特點:軟件需求規(guī)格說明書的特點:(1 1)正確性;)正確性;(2 2)無岐義性;)無岐義性;(3 3)完整性;)完整性;(4 4)可驗證性;)可驗證性;(5 5)一致性;)一致性;(6 6)可理解性;)可理解性;(7 7)可追蹤性。)可追蹤性。3.3 結構化設計方法結構化設計方法軟件設計是開發(fā)階段最重要的步驟,是將需求準確地軟件設計是開發(fā)階段最重要的步驟,是將需求準確地轉化為完整的軟件產(chǎn)品或系統(tǒng)的唯一途徑。轉化為完整的軟件
17、產(chǎn)品或系統(tǒng)的唯一途徑。從工程管理角度來看,軟件設計分為概要設計和詳細從工程管理角度來看,軟件設計分為概要設計和詳細設計。設計。 概要設計概要設計:確定軟件體系結構確定軟件體系結構,系統(tǒng)級接口系統(tǒng)級接口,全局數(shù)據(jù)結構或全局數(shù)據(jù)結構或 數(shù)據(jù)庫模式數(shù)據(jù)庫模式. 詳細設計詳細設計:確立模塊的實現(xiàn)算法和局部數(shù)據(jù)結構確立模塊的實現(xiàn)算法和局部數(shù)據(jù)結構.衡量軟件模塊獨立性的標準衡量軟件模塊獨立性的標準衡量軟件模塊獨立性使用衡量軟件模塊獨立性使用耦合性和內聚性耦合性和內聚性兩個定性的度量兩個定性的度量標準。標準。在程序結構中各模塊的內聚性越強,則耦合性越弱。優(yōu)秀在程序結構中各模塊的內聚性越強,則耦合性越弱。優(yōu)秀
18、軟件應高內聚,低耦合。軟件應高內聚,低耦合。 功能內聚功能內聚 非直接耦合非直接耦合 序列內聚序列內聚 數(shù)據(jù)耦合數(shù)據(jù)耦合 通信內聚通信內聚 標記耦合標記耦合 內聚內聚 過程內聚過程內聚 耦合耦合 控制耦合控制耦合 時間內聚時間內聚 外部耦合外部耦合 邏輯內聚邏輯內聚 公共耦合公共耦合 偶然內聚偶然內聚 內容耦合內容耦合軟件概要設計的基本任務軟件概要設計的基本任務(1 1)設計軟件系統(tǒng)結構;)設計軟件系統(tǒng)結構;(2 2)數(shù)據(jù)結構及數(shù)據(jù)庫設計;)數(shù)據(jù)結構及數(shù)據(jù)庫設計;(3 3)編寫概要設計文檔;)編寫概要設計文檔; (4 4)概要設計文檔評審。)概要設計文檔評審。常用的軟件設計工具是結構圖(常用的
19、軟件設計工具是結構圖(SCStructure Chart)SCStructure Chart)。結構圖的基本形式:基本形式、順序形式、重復形式、選擇結構圖的基本形式:基本形式、順序形式、重復形式、選擇形式。形式。結構圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和結構圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協(xié)調模塊。協(xié)調模塊。 典型的數(shù)據(jù)流類型有兩種:典型的數(shù)據(jù)流類型有兩種:變換型和事務型變換型和事務型。變換型系統(tǒng)結構圖由輸入、中心變換、輸出三部分變換型系統(tǒng)結構圖由輸入、中心變換、輸出三部分組成。組成。事務型數(shù)據(jù)流的特點是:接受一項事務,根據(jù)事務事務型數(shù)據(jù)流的特點是:接受一項事務,根據(jù)
20、事務處理的特點和性質,選擇分派一個適當?shù)奶幚韱卧?,處理的特點和性質,選擇分派一個適當?shù)奶幚韱卧?,然后給出結果。然后給出結果。面向數(shù)據(jù)流的設計方法面向數(shù)據(jù)流的設計方法詳細設計是為軟件結構圖中的每一個模塊確定實現(xiàn)詳細設計是為軟件結構圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結構,用某種選定的表達工具表示算法和局部數(shù)據(jù)結構,用某種選定的表達工具表示算法和數(shù)據(jù)結構的細節(jié)。算法和數(shù)據(jù)結構的細節(jié)。常見的過程設計工具有:圖形工具(程序流程常見的過程設計工具有:圖形工具(程序流程圖圖,N-S,PAD,HIPO,N-S,PAD,HIPO)、表格工具(判定表)、語言)、表格工具(判定表)、語言工具(工具(PDLPDL
21、)。)。 詳細設計詳細設計3.4 軟件測試軟件測試軟件測試定義:使用人工或自動手段來運行或測定軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的:軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。一個好的測試用例是指很可能找到迄今為止尚未發(fā)一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。未發(fā)現(xiàn)
22、的錯誤的測試。軟件測試方法:軟件測試方法:靜態(tài)測試和動態(tài)測試。靜態(tài)測試和動態(tài)測試。 靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。不實際運行軟件,主要通過人工進行。 動態(tài)測試:是基本計算機的測試,主要包括動態(tài)測試:是基本計算機的測試,主要包括白盒測試方法白盒測試方法和黑盒測試方法。和黑盒測試方法。 白盒測試:在程序內部進行,主要用于完成軟件內部操作白盒測試:在程序內部進行,主要用于完成軟件內部操作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。的驗證。主要方法有邏輯覆蓋、基本基路徑測試。 黑盒測試:主要診斷功能
23、不對或遺漏、界面錯誤、數(shù)據(jù)結黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結構或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,構或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認。主要方法有等價類劃分法、邊界值分析法、用于軟件確認。主要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。錯誤推測法、因果圖等。軟件測試方法軟件測試方法軟件測試過程一般按軟件測試過程一般按4 4個步驟進行:個步驟進行:單元測試單元測試-模塊測試模塊測試集成測試集成測試-增量與非增量方式增量與非增量方式驗收測試驗收測試驗證軟件的功能和性能是否滿驗證軟件的功能和性能是否滿足需求足需求系統(tǒng)測試系統(tǒng)
24、測試軟件測試過程軟件測試過程驅動模塊被測單元樁模塊樁模塊程序調試的任務是程序調試的任務是診斷和改正程序中的錯誤診斷和改正程序中的錯誤,主,主要在開發(fā)階段進行。要在開發(fā)階段進行。程序調試的基本步驟:程序調試的基本步驟:(1 1)錯誤定位;)錯誤定位;(2 2)修改設計和代碼,以排除錯誤;)修改設計和代碼,以排除錯誤;(3 3)進行回歸測試,防止引進新的錯誤。)進行回歸測試,防止引進新的錯誤。35 程序的調試程序的調試軟件調試可分表靜態(tài)調試和動態(tài)調試。靜態(tài)調試軟件調試可分表靜態(tài)調試和動態(tài)調試。靜態(tài)調試主要是指通過人的思維來分析源程序代碼和排錯,主要是指通過人的思維來分析源程序代碼和排錯,是主要的設計手段,而動態(tài)調試是輔助靜態(tài)調試。是主要的設計手段,而動態(tài)調試是輔助靜態(tài)調試。主要調試方法有:主要調試方法有:(1 1)強行排錯法;)強行排錯法;(2 2)回溯法;)回溯法; (3 3)原因排除法。)原因排除法。 軟件調試的方法軟件調試的方法THANK YOU感謝聆聽,批評指導2020
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。