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

下載本文檔

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

文檔簡介

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

2、持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。軟件工程的核心思想是把軟件產(chǎn)品作為是一個工程產(chǎn)品來處理。13.1.2 軟件生命周期分為定義、開發(fā)及維護三個階段。可行性研究初步項目計劃需求分析概要設計詳細設計實現(xiàn)測試使用維護退役定義階段開發(fā)階段維護階段13.1.3 軟件開發(fā)工具與軟件開發(fā)環(huán)境1. 軟件開發(fā)工具是指用來幫助開發(fā),測試、分析、維護其他計算機程序及其文檔資料的一類程序。軟件工具主要包括需求分析工具、設計工具、編碼工具、確認工具、維護工具等。2. 軟件工程環(huán)境軟件工程環(huán)境是指全面支持軟件開發(fā)全過程的軟件工具集合。13.2 軟件需求分析需求分析與需求分析方法1需求分析

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

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

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

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

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

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

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

10、GOTO 語句。 2 結構化程序設計的基本結構(1)順序結構AB(2)選擇結構假條件AB真真假A條件真假A條件(3)重復結構(循環(huán)結構)(1)使用順序、選擇、循環(huán)控制結構表示程序的控制邏輯;(2)選用的控制結構只有一個入口和一個出口;(3)程序語句組成容易識別的塊,每塊只有一個入口和一個出口;(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn);(5)語言中所沒有的控制結構,應該采用前后一致的方法來模擬;(6)嚴格控制GOTO 語句的使用。 3 結構化程序設計原則和方法的應用13.4.3 面向?qū)ο蟮某绦蛟O計1關于面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ǖ谋举|(zhì),就是主張從客觀世界固有的事物出發(fā)來構造系統(tǒng),提

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論