第十三章軟件工程ppt課件(全)_第1頁
第十三章軟件工程ppt課件(全)_第2頁
第十三章軟件工程ppt課件(全)_第3頁
第十三章軟件工程ppt課件(全)_第4頁
第十三章軟件工程ppt課件(全)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第13章軟件工程 13.1 軟件工程的基本概念13.2 軟件需求分析13.3 軟件設計13.4 程序設計基礎13.5軟件測試13.6程序的調試習題13.1 軟件工程的基本概念軟件危機與軟件工程 1. 軟件危機軟件危機主要表現在:軟件需求的增長得不到滿足;軟件開發的成本和進度無法控制;軟件質量難以保證;軟件不可維護或維護成度非常低;軟件成本不斷提高;軟件開發趕不上硬件的發展。2. 軟件工程為了消除軟件危機,形成了軟件工程的概念。軟件工程就是試圖用工程、科學和數學的原理與方法研制、維護計算機軟件的有關技術及管理方法。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支

2、持軟件的開發、管理、文檔生成;過程支持軟件開發的各個環節的控制、管理。軟件工程的核心思想是把軟件產品作為是一個工程產品來處理。13.1.2 軟件生命周期分為定義、開發及維護三個階段??尚行匝芯砍醪巾椖坑媱澬枨蠓治龈乓O計詳細設計實現測試使用維護退役定義階段開發階段維護階段13.1.3 軟件開發工具與軟件開發環境1. 軟件開發工具是指用來幫助開發,測試、分析、維護其他計算機程序及其文檔資料的一類程序。軟件工具主要包括需求分析工具、設計工具、編碼工具、確認工具、維護工具等。2. 軟件工程環境軟件工程環境是指全面支持軟件開發全過程的軟件工具集合。13.2 軟件需求分析需求分析與需求分析方法1需求分析

3、軟件需求是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析階段的工作包括四個方面:需求獲取 需求分析 編寫需求說明書需求評審 2. 需求分析方法常見的需求分析方法有: 結構化分析方法。 面向對象的分析方法。結構化分析方法 結構化分析方法的實質是著眼于數據流,自頂向下,逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。結構化分析的步驟如下:通過對用戶的調查,獲得當前系統的具體模型:去掉具體模型中非本質因素,抽象出當前系統的邏輯模型:根據計算機的特點分析當前系統與目標系統的差別,建立目標系統的邏輯模型完善目標系統并補充細節,寫出目標系統的軟件需

4、求規格說明;評審直到確認完全符合用戶對軟件的需求。結構化分析的常用工具1. 數據流圖數據流圖是描述數據處理過程的有力工具,是從數據傳遞和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程。2. 數據字典數據字典是對所有與系統相關的數據元素的一個有組織的列表,以及精確的、嚴格的定義。3. 判定表判定表是一種文本化的加工說明的流行格式,它特別適用于帶有一組測試條件的說明。 條 件分 類1234金 額1000100010001000動 作賬目狀況未過期已過期未過期已過期押下批準單發出批準單發出提貨單發出通知單4.判定樹判定樹也是用來表達加工邏輯的一種工具。軟件需求規格說明書是需求分析階段的

5、最后成果。1. 軟件需求規格說明書的作用便于用戶、開發人員進行理解和交流。反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據。作為確認測試和驗收的依據。2. 軟件需求規格說明書的內容概述;數據描述;功能描述;性能描述;參考文獻;附錄。3. 軟件需求規格說明書的特征正確性;無歧義性;完整性;可驗證性;一致性;可理解性;可修改性;可追蹤性。 13.3 軟件設計13.3.1 軟件設計的基本概念1. 軟件設計的基礎2. 軟件設計的基本原理(1) 模塊化模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集成起來組成一個整體,可以完成指定的功能。(2) 抽象用自頂向下由抽象到具體的方

6、式進行分配控制,簡化了軟件的設計和實現,提高了軟件的可理解性和可測試性,并且使軟件更容易維護。(3) 信息隱蔽信息隱蔽使得一個模塊內包含的信息(過程和數據)對于不需要這些信息的模塊來說,是不能訪問的。(4)模塊獨立性每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的接口很簡單。模塊的獨立程度可以由兩個定性標準來衡量,這兩個標準分別稱為耦合性和內聚性。藕合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此間結合的緊密程度。一般較較優秀的軟件設計應盡量做到高內聚、低耦合,即減弱模塊間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。13.3.2 概要設計1.

7、 概要設計的任務1) 設計軟件系統結構2) 數據結構及數據庫設計3) 編寫概要設計文檔4) 概要設計文檔評審2. 面向數據流的設計方法3. 設計的準則 提高模塊獨立性。 模塊規模適中。 應減少模塊的接口和界面的復雜性。設計成單入口、單出口的模塊。設計功能可預測的模塊。詳細設計詳細設計也稱過程設計。在過程設計階段,要對每個模塊規定的功能以及算法的設計,給出適當的算法描述。常見的過程設計工具有:圖形工具:程序流程圖,N-S,PAD,HIPO。表格工具:判定表。語言工具:PDL(偽碼)。13.4 程序設計基礎13.4.1 程序設計方法與風格 1源程序文檔化(1) 符號名的命名:具實際含義。 (2)

8、程序注釋: 序言性注釋:整體說明; 功能性注釋:語句或程序段的作用。(3) 視覺組織:使程序層次清晰。2數據說明的方法數據說明的次序規范化。說明語句中變量安排有序化。使用注釋來說明復雜數據的結構和作用。3. 語句的結構(1)在一行內只寫一條語句。(2)程序編寫要做到清晰第一,效率第二。(3)首先要保證程序正確,然后才要求提高速度。(4)避免使用臨時變量而使程序的可讀性下降。(5)避免不必要的轉移。(6)避免使用復雜的條件語句。(7)盡可能使用庫函數。(8)數據結構要有利于程序的簡化。(9)要模塊化,并且模塊功能盡可能單一。(10)利用信息隱蔽,確保各模塊的獨立性。(11)從數據出發去構造程序。

9、(12)確保每一個模塊的獨立性。(13)不好的程序不去修補,要重新編寫。輸入格式要簡單;輸入數據時,應允許使用自由格式;應允許缺省值;輸入一批數據時,最好使用輸入結束標志;對所有的輸入數據都要檢驗數據的合法性;在以交互式輸入輸出方式進行輸入時,要在屏幕上使用提示符明確提示輸入的請求;當程序設計語言對輸入格式有嚴格要求時,應保持輸入格式與輸入語句的一致性;給所有的輸出加注釋,并設計輸出報表格式。4 輸入和輸出13.4.2 結構化程序設計 1 結構化程序設計的原則(1)自頂向下:先考慮總體,后考慮細節。(2)逐步求精:對復雜問題,逐步細化。(3)模塊化:把總目標分解為小目標(模塊)。(4)限制使用

10、GOTO 語句。 2 結構化程序設計的基本結構(1)順序結構AB(2)選擇結構假條件AB真真假A條件真假A條件(3)重復結構(循環結構)(1)使用順序、選擇、循環控制結構表示程序的控制邏輯;(2)選用的控制結構只有一個入口和一個出口;(3)程序語句組成容易識別的塊,每塊只有一個入口和一個出口;(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現;(5)語言中所沒有的控制結構,應該采用前后一致的方法來模擬;(6)嚴格控制GOTO 語句的使用。 3 結構化程序設計原則和方法的應用13.4.3 面向對象的程序設計1關于面向對象方法面向對象方法的本質,就是主張從客觀世界固有的事物出發來構造系統,提

11、倡用人類在現實生活中常用的思維方法來認識、理解和描述客觀事物,強調最終建立的系統中的對象以及對象之間的關系能夠如實地反映問題域中固有事物及其關系。2 面向對象方法的基本概念 (1)對象(object ) 具有屬性和方法的實體叫對象。它由數據和可執行的一組操作共同組成。例如:一輛汽車是一個對象,它包含了汽車的屬性(如顏色、型號、載重量等)及其操作(如啟動、剎車等)。一個窗口是一個對象,它包含了窗口的屬性(如大小、顏色、位置等)及其操作(如打開、關閉等)。對象有如下一些基本特點:惟一性。指對象是可區分的。分類性。具有相同屬性和操作的對象抽象成類。多態性。指同一個操作可以是不同對象的行為。封裝性。從

12、外面看只能看到對象的外部特性,對象的內部,即處理能力的實行和內部狀態,對外是不可見的。模塊獨立性好。(2)類(Class)類是具有共同屬性、共同方法的對象的集合。例如:Integer是一個整數類,它描述了所有整數的性質。任何整數都是整數類的對象,而一個具體的整數“123 ”是類Integer 的一個實例。(3)消息(Message ) 消息是一個實例與另一個實例之間傳遞的信息,它請求對象執行某一處理或回答某一要求的信息,它統一了數據流和控制流。(4)繼承(Inheritance ) 繼承是指使用己有的類來定義新的類。已有的類稱為基類,新類稱為派生類。繼承分為單繼承與多重繼承。(5)多態性(Po

13、lymorphism ) 同樣的消息被不同的對象接受時可導致完全不同的行動,該現象稱為多態性。例如,在兩個類Male (男性)和Female (女性)都有一項屬性為Friend 。一個人的朋友必須屬于類Male 或Female ,這是一個多態性的情況13.5軟件測試軟件測試的目的軟件測試是為了發現錯誤而執行程序的過程。 13.5.2 軟件測試的準則所有測試都應追溯到需求;嚴格執行測試計劃,排除測試的隨意性;充分注意測試中的群集現象;程序員應避免檢查自己的程序;窮舉測試不可能;妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。13.5.3 軟件測試技術與方法 若從是否需要執行被

14、測軟件的角度,可以分為靜態測試和動態測試方法。若按照功能劃分可以分為白盒測試和黑盒測試方法。1. 靜態測試與動態測試(1) 靜態測試靜態測試一般指人工評審軟件文檔或程序,以便發現錯誤。靜態測試包括:代碼檢查、靜態結構分析、代碼質量度量等。(2)動態測試動態測試是在樣板測試數據上執行程序并分析輸出以發現錯誤的過程。所以動態測試包括三部分:生成測試數據、執行程序與驗證的輸出結果。2. 白盒測試與黑盒測試(1)白盒測試 軟件的白盒測試是對軟件的過程性細節作細致的檢查。這一方法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試

15、。通過在不同點檢查程序的狀態,確定實際的狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測試。(2)黑盒測試就軟件測試來講,軟件的黑盒測試意味著測試要根據軟件的外部特性進行。也就是說,這種方法是把測試對象看作一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。13.5.4 軟件測試的實施軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試(確認測試)和系統測試。 1. 單元測試單元測試是對軟件設計的最小單位模塊(程序單元)進行正確性檢驗的測試。單元測試的目的是發現各模塊內部可能存在的各種錯誤。 單元測試的依

16、據是詳細設計說明書和源程序。 2 集成測試集成測試是測試和組裝軟件的過程。它是把模塊在按照設計要求組裝起來的同時進行測試,主要目的是發現與接口有關的錯誤。集成測試的依據是概要設計說明書。3 確認測試確認測試的任務是驗證軟件的功能和性能及其他特性是否滿足了需求規格說明中確定的各種需求,以及軟件配置是否完全、正確。4 系統測試系統測試是將通過測試確認的軟件,作為整個基于計算機系統的一個元素,與計算機硬件、外設、支持軟件、數據和人員等其他系統元素組合在一起,在實際運行(使用)環境下對計算機系統進行一系列的集成測試和確認測試。13.6程序的調試基本概念在對程序進行了成功的測試之后將進入程序調試。程序調

17、試的任務是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測試是盡可能多地發現軟件中的錯誤。軟件測試貫穿整個軟件生命期,調試主要在開發階段。1 程序調試的基本步驟(1) 錯誤定位(2) 修改設計和代碼,以排除錯誤(3) 進行回歸測試,防止引進新的錯誤因為修改程序可能帶來新的錯誤,重復進行有關測試,以確認該錯誤是否被排除、是否引進了新的錯誤。如果所做的修正無效,則撤銷這次改動,重復上述過程,直到找到一個有效的解決辦法為止。2. 程序調試的原則(1)確定錯誤的性質和位置時的注意事項:分析思考與錯誤征兆有關的信息;避開死胡同;只把調試工具當作輔助手段來使用;避免用試探法,最多只能把它當作最后手段。(2

18、)修改錯誤的原則在出現錯誤的地方,很可能還有別的錯誤;修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現,而沒有修改錯誤本身;注意修正一個錯誤的同時有可能會引入新的錯誤;修改錯誤的過程將迫使人們暫時回到程序設計階段;修改源代碼程序,不要改變目標代碼軟件的調試方法 1. 強行排錯法 作為傳統的調試方法,其過程可概括為,設置斷點、程序暫停、觀察程序狀態、繼續運行程序是目前使用較多、效率較低的調試方法。涉及的調試技術主要是設置斷點和監視表達式。例如:通過內存全部打印來排錯;在程序特定部位設置打印語句,即斷點法;自動調試工具。2. 回溯法 該方法適合于小規模程序的排錯。即一旦發現了錯誤,先分析錯誤征兆,確定最

溫馨提示

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

評論

0/150

提交評論