![軟件工程導(dǎo)論第五版復(fù)習(xí)資料_第1頁](http://file4.renrendoc.com/view/2cb70a027517b27ff223a437f928cc5a/2cb70a027517b27ff223a437f928cc5a1.gif)
![軟件工程導(dǎo)論第五版復(fù)習(xí)資料_第2頁](http://file4.renrendoc.com/view/2cb70a027517b27ff223a437f928cc5a/2cb70a027517b27ff223a437f928cc5a2.gif)
![軟件工程導(dǎo)論第五版復(fù)習(xí)資料_第3頁](http://file4.renrendoc.com/view/2cb70a027517b27ff223a437f928cc5a/2cb70a027517b27ff223a437f928cc5a3.gif)
![軟件工程導(dǎo)論第五版復(fù)習(xí)資料_第4頁](http://file4.renrendoc.com/view/2cb70a027517b27ff223a437f928cc5a/2cb70a027517b27ff223a437f928cc5a4.gif)
![軟件工程導(dǎo)論第五版復(fù)習(xí)資料_第5頁](http://file4.renrendoc.com/view/2cb70a027517b27ff223a437f928cc5a/2cb70a027517b27ff223a437f928cc5a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
...wd......wd......wd...軟件工程導(dǎo)論第一章軟件工程學(xué)概述1、軟件完成特點功能的程序以及數(shù)據(jù)構(gòu)造和文檔2、軟件的特點〔1〕軟件開發(fā)更依賴于開發(fā)人員的業(yè)務(wù)素質(zhì)、智力、人員的組織、合作和管理。軟件開發(fā)、設(shè)計幾乎都是從頭開場,本錢和進度很難估計。〔2〕軟件存在潛伏錯誤,硬件錯誤一般能排除?!?〕軟件開發(fā)成功后,只需對原版進展復(fù)制?!?〕軟件在使用過程中維護復(fù)雜:1〕糾錯性維護—改正運行期間發(fā)現(xiàn)的潛伏錯誤;2〕完善性維護—提高或完善軟件的性能;3〕適應(yīng)性維護—修改軟件,以適應(yīng)軟硬件環(huán)境的變化;4〕預(yù)防性維護—改良軟件未來的可維護性和可靠性?!?〕軟件不會磨損和老化。3、軟件危機及軟件危機的表現(xiàn)軟件危機是指在計算機軟件開發(fā)、使用與維護過程中遇到的一系列嚴(yán)重問題和難題。軟件危機的表現(xiàn)1〕對軟件開發(fā)本錢和進度的估計常常很不準(zhǔn)確。常常出現(xiàn)實際本錢比估算本錢高出一個數(shù)量級、實際進度比方案進度拖延幾個月甚至幾年的現(xiàn)象,從而降低了開發(fā)商的信譽,引起用戶不滿。2〕用戶對已完成的軟件不滿意的現(xiàn)象時有發(fā)生。3〕軟件產(chǎn)品的質(zhì)量往往是靠不住的。4〕軟件常常是不可維護的。5〕軟件通常沒有適當(dāng)?shù)奈臋n資料。文檔資料不全或不合格,必將給軟件開發(fā)和維護工作帶來許多難以想象的困難和難以解決的問題。6〕軟件本錢在計算機系統(tǒng)總本錢中所占比例逐年上升。特別是軟件維護本錢迅速增加,已經(jīng)占據(jù)軟硬件總本錢的40%~75%。7〕開發(fā)生產(chǎn)率提高的速度遠跟不上軟件需求。4、軟件工程及軟件工程的特性 軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法開發(fā)、維護計算機軟件的有關(guān)技術(shù)和管理方法。軟件工程的特性:1〕軟件工程關(guān)注于大型程序的構(gòu)造2〕軟件工程的中心課題是控制復(fù)雜性 3〕軟件經(jīng)常變化 4〕開發(fā)軟件的效率非常重要5〕和諧地合作是開發(fā)軟件的關(guān)鍵6〕軟件必須有效地支持它的用戶7〕在軟件工程中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品5、軟件工程的根本原理用分階段的生存周期方案嚴(yán)格管理 堅持進展階段評審 實行嚴(yán)格的產(chǎn)品控制 采用現(xiàn)代程序設(shè)計技術(shù) 結(jié)果應(yīng)能清楚地審查 開發(fā)小組的人員應(yīng)少而精 成認(rèn)不斷改良軟件工程實踐的必要性6、軟件生存周期一個軟件從得出開發(fā)要求開場直到該軟件報廢為止的時期。軟件生命周期由軟件定義、軟件開發(fā)和運行維護〔也稱為軟件維護〕3個時期組成,每個時期又進一步劃分成假設(shè)干個階段。7、瀑布模型模型嚴(yán)格按照軟件生存周期各個階段來進展開發(fā),上一階段的輸出即是下一階段的輸入,并強調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對其階段性產(chǎn)品〔主要是文檔〕進展評審,通過后才能開場下一階段的工作。因此,它是一種以文檔作為驅(qū)動的模型。瀑布模型特點1〕階段間具有順序性和依賴性2〕推遲實現(xiàn)的觀點3〕質(zhì)量保證的觀點第二章可行性研究1、可行性研究的任務(wù)概括地講,可行性研究包括兩大局部的分析研究,分別是分析建設(shè)系統(tǒng)的必要性分析建設(shè)系統(tǒng)的可能具體,主要任務(wù)1〕進一步分析和澄清問題定義。2〕導(dǎo)出系統(tǒng)的高層邏輯模型。從系統(tǒng)邏輯模型出發(fā),探索假設(shè)干種系統(tǒng)實現(xiàn)方案。對每種方案都至少要從下述幾方面研究其可行性:經(jīng)濟可行性技術(shù)可行性法律可行性操作可行性3〕對以后的行動提出建議選擇一種最正確方案,并為系統(tǒng)制定一個初步的開發(fā)方案。2、可行性研究的步驟1〕復(fù)查系統(tǒng)規(guī)模和目標(biāo)。2〕研究現(xiàn)有的系統(tǒng)。3〕導(dǎo)出新系統(tǒng)高層邏輯模型。4〕進一步定義問題5〕導(dǎo)出和評價供選擇的解法。6〕推薦行動方針7〕草擬開發(fā)方案 8〕書寫文檔提交審查。3、系統(tǒng)流程圖〔不要求畫圖〕系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。4、數(shù)據(jù)流圖〔要求畫圖〕數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計算機技術(shù)人員也容易理解它,因此是分析員與用戶之間極好的通信工具。在數(shù)據(jù)流圖中沒有任何具體的物理部件,它只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程。5、數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。6、本錢效益分析1〕貨幣的時間價值:指同樣數(shù)量的貨幣隨時間的不同具有不同的價值。一般貨幣在不同時間的價值可用年利率來折算。設(shè):i表示年利率,現(xiàn)在存入P元,n年后的價值為F元,則有:F=P〔1+i〕n如果n年后能收入F元,這些錢折算成現(xiàn)在的價值稱為折現(xiàn)值,折現(xiàn)公式為:P=F/〔1+i〕n2〕純收入。是指在整個生存周期系統(tǒng)的累計收入的折現(xiàn)值PT與總本錢折現(xiàn)值ST之差,以T表示,則有:T=PT–ST3〕投資回收率。P=F1/(1+j)+F2/(1+j)^2+…+Fn(1+j)^nP:現(xiàn)在的投資額Fi:第i年底的效益〔i=1,2,3,…,n〕n:系統(tǒng)使用壽命j:投資回收率第三章需求分析1、需求分析的任務(wù)確定對系統(tǒng)的綜合要求功能需求性能需求可靠性和可用性需求出錯處理需求接口需求約束逆向需求將來可能提出的要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)方案2、與用戶溝通獲取需求的方法訪談:正式的,非正式的面向數(shù)據(jù)流自頂向下求精簡易的應(yīng)用規(guī)格說明技術(shù)快速建設(shè)軟件原型3、狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。此外,狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動作(例如,處理數(shù)據(jù))。1〕符號 初態(tài)用實心圓表示。 終態(tài)用一對同心圓(內(nèi)圓為實心圓)表示。 中間狀態(tài)用圓角矩形表示。狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。 2〕活動表的語法格式:事件名(參數(shù)表)/動作表達式 3〕事件表達式的語法如下: 事件說明[守衛(wèi)條件]/動作表達式 其中, 事件說明的語法為:事件名(參數(shù)表)。4、層次方框圖〔在需求分析階段使用〕層次方框圖用樹形構(gòu)造的一系列多層次的矩形框描繪數(shù)據(jù)的層次構(gòu)造。5、Warnier圖〔在需求分析階段使用〕Warnier圖也用樹形構(gòu)造描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。 用Warnier圖可以說明信息的邏輯組織6、IPO圖〔在需求分析階段使用〕IPO圖是輸入、處理、輸出圖的簡稱,它是美國IBM公司開展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。7、驗證軟件需求驗證需求的一致性:所有需求必須是一致的驗證需求的實現(xiàn)性:指定需求式可以實現(xiàn)的。對現(xiàn)有硬件很好預(yù)測,但軟件技術(shù)很難預(yù)測,只能根據(jù)現(xiàn)有技術(shù)水平出發(fā)判斷需求的實現(xiàn)性驗證需求的完整性和有效性:完整性,規(guī)格說明書應(yīng)該包括用戶所需的每個功能的性能。有效性,需求是正確有效的,確實能解決用戶面對的問題。第五章總體設(shè)計〔概要設(shè)計〕1、總體設(shè)計過程1〕設(shè)想供選擇的方案2〕選取合理的方案3〕推薦最正確方案4〕功能分解5〕設(shè)計軟件構(gòu)造6〕設(shè)計數(shù)據(jù)庫7〕制定測試方案8〕書寫文檔9〕審查和復(fù)審2、設(shè)計原理〔模塊化、抽象、逐步求精、信息隱藏與局部化〕〔小概念〕模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求。抽象是控制復(fù)雜性的根本策略。“抽象〞要求人們將注意力集中在某一層次上考慮問題,而忽略那些低層次的細節(jié)。軟件設(shè)計過程應(yīng)當(dāng)是在不同抽象級別上考慮和處理問題的過程。軟件工程過程的每一步都是對較高一級抽象的解作一次進一步具體化的描述。在上述由高級抽象到低級抽象的轉(zhuǎn)換過程中,伴隨著一連串的過程抽象和數(shù)據(jù)抽象抽象與求精是一對互補的概念。抽象使得設(shè)計者能夠說明過程和數(shù)據(jù),同時卻忽略低層細節(jié)。事實上,可以把抽象看作是一種通過忽略多余的細節(jié)同時強調(diào)有關(guān)的細節(jié),而實現(xiàn)逐步求精的方法。求精則幫助設(shè)計者在設(shè)計過程中逐步提醒出低層細節(jié)。這兩個概念都有助于設(shè)計者在設(shè)計演化過程中創(chuàng)造出完整的設(shè)計模型。信息隱藏原理指出:應(yīng)該這樣設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。在模塊中使用局部數(shù)據(jù)元素是局部化的一個例子。顯然,局部化有助于實現(xiàn)信息隱藏。3、模塊獨立原理開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。換句話說,希望這樣設(shè)計軟件構(gòu)造,使得每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關(guān)系很簡單。4、耦合和內(nèi)聚模塊的獨立程度可以由兩個定性標(biāo)準(zhǔn)度量,這兩個標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。耦合衡量不同模塊彼此間互相依賴(連接)的嚴(yán)密程度; 內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的嚴(yán)密程度。以下分別詳細闡述。盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。設(shè)計軟件時,應(yīng)該能夠識別內(nèi)聚度的上下,并通過修改設(shè)計盡可能提高模塊內(nèi)聚度,從而獲得較高的模塊獨立性。5、啟發(fā)規(guī)則1〕改良軟件構(gòu)造提高模塊的獨立性 2〕模塊規(guī)模應(yīng)該適中 3〕深度、寬度、扇出和扇入都應(yīng)適當(dāng) 4〕模塊的作用范圍應(yīng)在控制范圍之內(nèi) 5〕力爭降低模塊接口的復(fù)雜程度 6〕設(shè)計單入口單出口的模塊 7〕模塊功能應(yīng)該可以預(yù)測6、描繪軟件構(gòu)造的圖形工具〔層次圖、HIPO圖、構(gòu)造圖〕 層次圖用來描繪軟件的層次構(gòu)造。雖然層次圖與需求分析中介紹的描繪數(shù)據(jù)構(gòu)造的層次方框圖一樣,但是表現(xiàn)的內(nèi)容卻完全不同。層次圖中的一個矩形框代表一個模塊,方框間的連線表示調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系。HIPO圖是美國IBM公司創(chuàng)造的“層次圖加輸入/處理/輸出圖〞的英文縮寫。為了能使HIPO圖具有可追蹤性,在H圖〔層次圖〕里除了最頂層的方框之外,每個方框都加了編號。Yourdon提出的構(gòu)造圖是進展軟件構(gòu)造設(shè)計的另一個有力工具。構(gòu)造圖和層次圖類似,也是描繪軟件構(gòu)造的圖形工具,圖中一個方框代表一個模塊,框內(nèi)注明模塊的名字或主要功能;方框之間的箭頭〔或直線〕表示模塊的調(diào)用關(guān)系。在構(gòu)造圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。如果希望進一步標(biāo)明傳遞的信息是數(shù)據(jù)還是控制信息,則可以利用注釋箭頭尾部的形狀來區(qū)分:尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。7、面向數(shù)據(jù)流的設(shè)計方法變換分析變換分析是一系列設(shè)計步驟的總稱,經(jīng)過這些步驟把具有變換流特點的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件構(gòu)造。1〕重畫數(shù)據(jù)流圖;確定其具有變換流特征。2〕在數(shù)據(jù)流圖上區(qū)分系統(tǒng)的邏輯輸入、邏輯輸出和中心變換局部3〕進展一級分解,設(shè)計系統(tǒng)模塊構(gòu)造的頂層和第一層4〕進展二級分解,設(shè)計輸入、中心變換、輸出局部的中、下層模塊事務(wù)分析與變換分析一樣,事務(wù)分析也是從分析數(shù)據(jù)流圖開場,自頂向下,逐步分解,建設(shè)系統(tǒng)的構(gòu)造圖。主要區(qū)別由數(shù)據(jù)流圖到軟件構(gòu)造的映射方法不同。在數(shù)據(jù)流具有明顯的事務(wù)特點時,也就是一個明顯的事務(wù)中心時,采用事務(wù)分析。第六章詳細設(shè)計1、構(gòu)造程序設(shè)計構(gòu)造化程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制構(gòu)造。構(gòu)造化程序設(shè)計的特點:1)整個程序模塊化。2)每個模塊只有一個入口和一個出口。3)每個模塊都應(yīng)能單獨執(zhí)行,且無死循環(huán)。4)采用自頂向下。逐步求精的方法。2、人機界面設(shè)計〔設(shè)計問題、設(shè)計過程、人機界面設(shè)計指南〕設(shè)計問題: 1〕系統(tǒng)響應(yīng)時間;2〕用戶幫助設(shè)施;3〕出錯信息處理;4〕命令交互。設(shè)計過程用戶界面設(shè)計是一個迭代過程,直至與用戶模型和系統(tǒng)假想一致為止。界面設(shè)計完畢界面設(shè)計完畢修改設(shè)計創(chuàng)立新界面原型用戶評審界面創(chuàng)立界面原型1設(shè)計人員分析用戶評審意見 人機界面指南1〕一般交互指南:涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體控制,這類指南是全局性的。 2〕信息顯示指南:信息顯示的形式和方式的一些原則:a.僅顯示與當(dāng)前工作內(nèi)容的有關(guān)的信息;b.采用簡單明了的表達方式,防止用戶置身于大量的數(shù)據(jù)中;c.使用統(tǒng)一的標(biāo)號、標(biāo)準(zhǔn)的縮寫和預(yù)先定義好的顏色;d.允許用戶對可視環(huán)境進展維護,如放大、縮小圖象;e.只顯示有意義的出錯信息;f.用大、小寫,縮進和文本分組以幫助理解;g.用窗口〔在適合的情況下〕分隔不同種類的信息;h.用“模擬〞顯示方式表示信息,以使信息更容易被用戶提?。籭.高效地使用顯示屏。 3〕數(shù)據(jù)輸入指南:數(shù)據(jù)輸入的一般準(zhǔn)則:盡量減少用戶輸入的動作;保持信息顯示與數(shù)據(jù)輸入之間的一致性;允許用戶自定義輸入;采用靈活多樣的交互方式,允許用戶自選輸入方式;隱藏當(dāng)前狀態(tài)下不可選用的命令;讓用戶控制交互過程;為所有輸入動作提供幫助信息;消除冗余的輸入。去除所有無實際意義的輸入,盡量采用缺省值。3、詳細設(shè)計工具〔過程設(shè)計工具〕〔繪圖要求〕程序流程圖程序流程圖又稱為程序框圖,它是歷史最悠久使用最廣泛的描述軟件設(shè)計的方法,能直觀地描述過程的控制流程,便于初學(xué)者掌握。然而它也是用得最混亂的一種方法?!瞐〕選擇〔分支〕;〔b〕注釋;〔c〕預(yù)先定義的處理;〔d〕多分支;〔e〕開場或停頓〔f〕準(zhǔn)備;〔g〕循環(huán)上界限;〔h〕循環(huán)下界限;〔i〕虛線;〔j〕省略符;〔k〕并行方式;〔l〕處理;〔m〕輸入輸出;〔n〕連接;〔0〕換頁連接;〔p〕控制流盒圖〔N-S圖〕盒圖,又稱為N-S圖。每個處理步驟都用一個盒子來表示,這些處理步驟可以是語句或語句序列,在需要時,盒子中還可以嵌套另一個盒子,嵌套深度一般沒有限制,只要整張圖可以在一張紙上容納下就行(a)順序(b)IF_THEN_ELSE型分支(c)CASE型多分支(d)循環(huán)(e)調(diào)用子程序APAD圖PAD是問題分析圖〔ProblemAnalysisDiagram〕的英文縮寫,它是由程序流程圖演化而來,用二維樹形構(gòu)造的圖來表示程序的控制流,將這種圖翻譯成程序代碼比擬容易。判定表判定表由4局部組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。判定表右半部的每一列實質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。判定樹判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。判定樹的優(yōu)點在于,它的形式簡單到不需任何說明,一眼就可以看出其含義,因此易于掌握和使用PDL過程設(shè)計語言(PDL)是一種用于描述功能模塊的算法設(shè)計和加工細節(jié)的語言。它是一種偽碼。 它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具?!怖尤缦隆?、程序復(fù)雜度的度量McCabe方法McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度。所謂流圖實質(zhì)上是“退化了的〞程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。掌握將偽碼—程序流圖—環(huán)形復(fù)雜度計算—路徑測試這類題型。環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜度。有了描繪程序控制流的流圖之后,可以用下述3種方法中的任何一種來計算環(huán)形復(fù)雜度。(1)流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。(2)流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點數(shù)。(3)流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點的數(shù)目。Halstead方法Halstead方法是另一個著名的方法,它根據(jù)程序中運算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。 令N1為程序中運算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長度N定義為:N=N1+N2 詳細設(shè)計完成之后,可以知道程序中使用的不同運算符(包括關(guān)鍵字)的個數(shù)n1,以及不同操作數(shù)(變量和常數(shù))的個數(shù)n2。Halstead給出預(yù)測程序長度的公式如下:H=n1*log2n1+n2*log2n2 Halstead還給出了預(yù)測程序中包含錯誤的個數(shù)的公式如下:E=N*log2(n1+n2)/3000第七章實現(xiàn)1、編碼中需要注意的地方 A.選擇程序設(shè)計語言選擇語言主要實用標(biāo)準(zhǔn):1〕系統(tǒng)用戶的要求2〕可以使用的編譯程序3〕可以得到的軟件工具4〕工程規(guī)模5〕程序員的知識6〕軟件可移植性要求7〕軟件的應(yīng)用領(lǐng)域 B.編碼風(fēng)格源程序代碼的邏輯簡明清晰、易讀易懂是好程序的一個重要標(biāo)準(zhǔn),為了做到這一點,應(yīng)該遵循下述規(guī)則。1〕程序內(nèi)部的文檔2〕數(shù)據(jù)說明 3〕語句構(gòu)造4〕輸入輸出 5〕效率2、軟件測試根本知識軟件測試目標(biāo)(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程; (2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案; (3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試準(zhǔn)則(1)所有測試都應(yīng)該能追溯到用戶需求。 (2)應(yīng)該遠在測試開場之前就制定出測試方案。 (3)把Pareto原理應(yīng)用到軟件測試中。(4)應(yīng)該從“小規(guī)模〞測試開場,并逐步進展“大規(guī)模〞測試。 (5)窮舉測試是不可能的。(6)為了到達最正確的測試效果,應(yīng)該由獨立的第三方從事測試工作。軟件測試方法測試任何產(chǎn)品都有兩種方法: (1)黑盒測試(又稱為功能測試) 如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用; (2)白盒測試(又稱為構(gòu)造測試) 如果知道產(chǎn)品的內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進展。軟件測試步驟(1)模塊測試 (2)子系統(tǒng)測試 (3)系統(tǒng)測試 (4)驗收測試 (5)平行運行3、測試階段的信息流 (1)軟件配置:包括需求說明書、設(shè)計說明書和源程序清單等; (2)測試配置:包括測試方案和測試方案。4、單元測試 單元測試集中檢測軟件設(shè)計的最小單元——模塊。通常,單元測試和編碼屬于軟件過程的同一個階段。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,就可以用詳細設(shè)計描述作指南,對重要的執(zhí)行通路進展測試,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤測試重點 (1)模塊接口:對通過模塊接口的數(shù)據(jù)流進展測試(2)局部數(shù)據(jù)構(gòu)造:局部數(shù)據(jù)構(gòu)造是常見的錯誤來源。(3)重要的執(zhí)行通路:由于通常不可能進展窮盡測試,因此,在單元測試期間選擇最有代表性、最可能發(fā)現(xiàn)錯誤的執(zhí)行通路進展測試就是十分關(guān)鍵的。(4)出錯處理通路 (5)邊界條件:單元測試中最后的也可能是最重要的任務(wù)。5、集成測試:是測試和組裝軟件的系統(tǒng)化技術(shù)模塊組裝的兩種方法: 一種方法是先分別測試每個模塊,再把所有模塊按設(shè)計要求放在一起結(jié)合成所要的程序,這種方法稱為非漸增式測試方法; 另一種方法是把下一個要測試的模塊同已經(jīng)測試好的那些模塊結(jié)合起來進展測試,測試完以后再把下一個應(yīng)該測試的模塊結(jié)合進來測試。這種每次增加一個模塊的方法稱為漸增式測試,這種方法實際上同時完成單元測試和集成測試。當(dāng)使用漸增方式把模塊結(jié)合到程序中去時,有自頂向下和自底向上兩種集成策略。6、確認(rèn)測試:也稱為驗收測試,它的目標(biāo)是驗證軟件的有效性。驗證:指的是保證軟件正確地實現(xiàn)了某個特定要求的一系列活動;確認(rèn):指的是為了保證軟件確實滿足了用戶需求而進展的一系列活動7、白盒測試邏輯覆蓋〔8種邏輯覆蓋〕1.語句覆蓋 語句覆蓋的含義是,選擇足夠多的測試數(shù)據(jù),使被測程序中每個語句至少執(zhí)行一次。2.判定覆蓋 判定覆蓋又叫分支覆蓋,它的含義是,不僅每個語句必須至少執(zhí)行一次,而且每個判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個判定的每個分支都至少執(zhí)行一次。3.條件覆蓋 條件覆蓋的含義是,不僅每個語句至少執(zhí)行一次,而且使判定表達式中的每個條件都取到各種可能的結(jié)果。4.判定/條件覆蓋 既然判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,自然會提出一種能同時滿足這兩種覆蓋標(biāo)準(zhǔn)的邏輯覆蓋,這就是判定/條件覆蓋。5.條件組合覆蓋 條件組合覆蓋是更強的邏輯覆蓋標(biāo)準(zhǔn),它要求選取足夠多的測試數(shù)據(jù),使得每個判定表達式中條件的各種可能組合都至少出現(xiàn)一次。6.點覆蓋 滿足點覆蓋標(biāo)準(zhǔn)要求選取足夠多的測試數(shù)據(jù),使得程序執(zhí)行路徑至少經(jīng)過流圖的每個結(jié)點一次7.邊覆蓋為了滿足邊覆蓋的測試標(biāo)準(zhǔn),要求選取足夠多測試數(shù)據(jù),使得程序執(zhí)行路徑至少經(jīng)過流圖中每條邊一次。通常邊覆蓋和判定覆蓋是一致的。8.路徑覆蓋 路徑覆蓋的含義是,選取足夠多測試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序圖中有環(huán),則要求每個環(huán)至少經(jīng)過一次)控制構(gòu)造測試〔根本路徑測試〕使用根本路徑測試技術(shù)設(shè)計測試用例的步驟如下: 第一步:根據(jù)過程設(shè)計結(jié)果畫出相應(yīng)的流圖。第二步:計算流圖的環(huán)形復(fù)雜度。環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。 第三步:確定線性獨立路徑的根本集合。所謂獨立路徑是指至少引入程序的一個新處理語句集合或一個新條件的路徑,用流圖術(shù)語描述,獨立路徑至少包含一條在定義該路徑之前不曾用過的邊。使用根本路徑測試法設(shè)計測試用例時,程序的環(huán)形復(fù)雜度決定了程序中獨立路徑的數(shù)量,而且這個數(shù)是確保程序中所有語句至少被執(zhí)行一次所需的測試數(shù)量的上界。通常在設(shè)計測試用例時,識別出判定結(jié)點是很有必要的。本例中結(jié)點2、3、5、6和10是判定結(jié)點。 第四步:設(shè)計可強制執(zhí)行根本集合中每條路徑的測試用例。 應(yīng)該選取測試數(shù)據(jù)使得在測試每條路徑時都適當(dāng)?shù)卦O(shè)置好了各個判定結(jié)點的條件。 在測試過程中,執(zhí)行每個測試用例并把實際輸出結(jié)果與預(yù)期結(jié)果相比擬。一旦執(zhí)行完所有測試用例,就可以確保程序中所有語句都至少被執(zhí)行了一次,而且每個條件都分別取過true值和false值。8、黑盒測試等價劃分等價類劃分的思想是將輸入數(shù)據(jù)按有效的〔合理的〕和無效的〔不合理的〕劃分成假設(shè)干個等價類,認(rèn)為測試等價類中的一個代表值的結(jié)果就等于對該類其他值的測試。邊界值分析邊界值分析〔boundaryvalueanalysis,BVA〕是指設(shè)計測試用例,使程序在輸入或輸出的邊界值或者邊界值左右的值執(zhí)行。錯誤推測錯誤推測法的根本思想是:程序測試員通過已經(jīng)掌握的測試?yán)碚摵蛯嶋H測試中積累的經(jīng)歷,推測程序在哪些情況下可能發(fā)生錯誤,并將可能發(fā)生錯誤的情況列出,然后為每一可能發(fā)生錯誤的情況各設(shè)計一個測試用例。組合數(shù)據(jù)9、調(diào)試調(diào)試則是在進展了一次成功的測試之后立即開場的。 調(diào)試的目的是確定錯誤的位置和引起錯誤的原因,并加以改正。因此,又稱為排錯或糾錯。第八章維護1、軟件維護的定義軟件維護就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。2、軟件維護分類改正性維護——為改正軟件系統(tǒng)中潛藏的錯誤而進展的活動。 適應(yīng)性維護——為適應(yīng)軟件運行環(huán)境的變化而修改軟件的活動 完善性維護——根據(jù)用戶在軟件使用過程中提出的建設(shè)性意見而進展的維護活動。 預(yù)防性維護——為了進一步改善軟件系統(tǒng)的可維護性和可靠性,并為以后的改良奠定根基。第九章面向?qū)ο蠓治?、面向?qū)ο蟮膸讉€概念A(yù).對象對象是現(xiàn)實世界中個體或事物的抽象表示,是其屬性和相關(guān)操作的封裝。屬性表示對象的性質(zhì),屬性值規(guī)定了對象所有可能的狀態(tài)。對象的操作是指該對象可以展現(xiàn)的外部服務(wù)。對象的特點 (1)以數(shù)據(jù)為中心。 (2)對象是主動的。 (3)實現(xiàn)了數(shù)據(jù)封裝。 (4)本質(zhì)上具有并行性。 (5)模塊獨立性好。 B.類。類表示某些對象在屬性和操作方面的共同特征。類是支持繼承的抽象數(shù)據(jù)類型,而對象就是類的實例。 C.實例實例就是由某個特定的類所描述的一個具體的對象。 D.消息消息傳遞是對象與其外部世界相互關(guān)聯(lián)的唯一途徑。對象可以向其它對象發(fā)送消息以請求服務(wù),也可以響應(yīng)其它對象傳來的消息,完成自身固有的某些操作,從而服務(wù)于其它對象。E.方法方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。方法描述了對象執(zhí)行操作的算法,響應(yīng)消息的方法。 F.屬性屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象。類的每個實例都有自己特有的屬性值。 G.封裝在面向?qū)ο蟮某绦蛑校褦?shù)據(jù)和實現(xiàn)操作的代碼集中起來放在對象內(nèi)部。 H.繼承廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。 I.多態(tài)性(polymorphism)在面向?qū)ο罄碚撝校鄳B(tài)性的定義是:同一操作作用于不同的類的實例,將產(chǎn)生不同的執(zhí)行結(jié)果,即不同類的對象收到一樣的消息時,得到不同的結(jié)果。多態(tài)性包含編譯時的多態(tài)性運行時的多態(tài)性兩大類。 J.重載(overloading)有兩種重載:函數(shù)重載是指在同一作用域內(nèi)的假設(shè)干個參數(shù)特征不同的函數(shù)可以使用一樣的函數(shù)名字;運算符重載是指同一個運算符可以施加于不同類型的操作數(shù)上面。重載進一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性K.聚集現(xiàn)實世界普遍存在局部—整體關(guān)系。局部—整體關(guān)系在OO方法學(xué)中表示為類之間的聚集關(guān)系。在聚集關(guān)系下,局部類的對象是整體類對象的一個組成局部。2、UML根基知識第十三章軟件工程管理1、軟件規(guī)模的估算A.代碼行技術(shù)度量是以軟件的代碼行〔LOC,LineofCode〕數(shù)為根基的直接度量。設(shè):L表示軟件的代碼行數(shù),單位為KLOC〔千行代碼〕或LOC;E表示開發(fā)軟件所需工作量,單位為人月〔PM〕或人年〔PY〕;S表示軟件本錢,單位為美元或元;N表示錯誤個數(shù);Pd表示軟件文檔頁數(shù);M表示開發(fā)所用的人數(shù)。則有: 1)軟件開發(fā)的生產(chǎn)率P〔即平均每人月開發(fā)的代碼行數(shù),以LOC/PM為單位〕為:P=L/E2〕開發(fā)每行代碼的平均本錢C〔以美元/LOC或元/LOC為單位〕為:C=S/L3〕代碼出錯率EQR〔即每千行代碼的平均錯誤數(shù),以個/KLOC為單位〕為:EQR=N/L4〕軟件的文檔率D〔即平均每千行代碼的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)營酒吧合同
- 股份制改革流程文書模板與指導(dǎo)
- 汽車美容店合作協(xié)議書年
- 委托培訓(xùn)協(xié)議書
- 質(zhì)量管理體系培訓(xùn)指導(dǎo)書
- 2025年青海貨運從業(yè)資證孝試模似題庫
- 小學(xué)三年級數(shù)學(xué)加減乘除混合口算
- 2025年黔東南道路貨運駕駛員從業(yè)資格證考試題庫
- 2025年上海貨車叢業(yè)資格證考試題
- 2025年汕頭貨運從業(yè)資格證怎么考試
- 中儲棉直屬企業(yè)招聘筆試真題2024
- 2024年長沙衛(wèi)生職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2025屆高考數(shù)學(xué)一輪專題重組卷第一部分專題十四立體幾何綜合文含解析
- 福建省泉州市南安市2024-2025學(xué)年九年級上學(xué)期期末考試語文試題(無答案)
- 醫(yī)療器材申請物價流程
- 人教PEP版2025年春季小學(xué)英語三年級下冊教學(xué)計劃
- 華為研發(fā)部門績效考核制度及方案
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- 攝影入門課程-攝影基礎(chǔ)與技巧全面解析
- 冀少版小學(xué)二年級下冊音樂教案
- 【龍集鎮(zhèn)稻蝦綜合種養(yǎng)面臨的問題及優(yōu)化建議探析(論文)13000字】
評論
0/150
提交評論