軟件工程考試重點(diǎn)_第1頁
軟件工程考試重點(diǎn)_第2頁
軟件工程考試重點(diǎn)_第3頁
軟件工程考試重點(diǎn)_第4頁
軟件工程考試重點(diǎn)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程1?1軟件危機(jī)1、 軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(熟記)2、 了解軟件危機(jī)主要的一些典型表現(xiàn)。(P2)3、 出現(xiàn)軟件危機(jī)的原因:4、 消除軟件危機(jī)的途徑:首先,我們要對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí);更重要的是,必須充分認(rèn)識(shí)到軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)格、各類人員協(xié)同配合、共同完成的工程項(xiàng)目;最后,應(yīng)該開發(fā)和使用更好的軟件工具。總之,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。1.2軟件工程1、 軟件工程:采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。(熟記)2、 了解軟件工程的本質(zhì)特征:1) 、軟件工程關(guān)注于大型程序的構(gòu)造2) 、軟件工程的中心課題是控制復(fù)雜性3) 、軟件經(jīng)常變化4) 、開發(fā)軟件的效率非常重要5) 、和諧的合作是開發(fā)軟件的關(guān)鍵6) 、軟件必須有效地支持它的用戶7) 、在軟件工程的領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品3、 缺乏應(yīng)用領(lǐng)域地相關(guān)知識(shí),是軟件開發(fā)項(xiàng)目出現(xiàn)問題的常見原因。4、 軟件工程的基本原理:1) 、用分階段的生命周期計(jì)劃嚴(yán)格管理2) 、堅(jiān)持進(jìn)行階段審評(píng)3) 、實(shí)行嚴(yán)格的產(chǎn)品控制4) 、采用現(xiàn)代程序設(shè)計(jì)技術(shù)5) 、結(jié)果應(yīng)能清楚地審查6) 、開發(fā)小組的人員應(yīng)該少而精7) 、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性5、 方法學(xué)(范型):在軟件生命周期全過程中使用的一整套技術(shù)方法的集合。6、 軟件工程方法學(xué)3要素:方法、工具和過程。7、 目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)8、 傳統(tǒng)方法學(xué)也成為生命周期方法學(xué)或結(jié)構(gòu)化范型。9、 面向?qū)ο蠓椒▽W(xué)具有的4個(gè)要點(diǎn)。(P10)1.3軟件生命周期1、 概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))3個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。2、 軟件定義時(shí)期的任務(wù)3、 軟件定義時(shí)期通常進(jìn)一步劃分成3個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分析4、 維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。5、 軟件開發(fā)時(shí)期通常分成4個(gè)階段:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試。前兩個(gè)階段又稱為系統(tǒng)設(shè)計(jì),后兩個(gè)階段又稱為系統(tǒng)實(shí)現(xiàn)。6、 軟件生命周期每個(gè)階段的基本任務(wù):?jiǎn)栴}定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試。1.4軟件工程生命周期模型(過程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型。(對(duì)各種模型要了解)1-5小結(jié)(熟讀,對(duì)本章系統(tǒng)地了解)第2章可行性分析可行性分析的目的:用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。2.1可行性研究的任務(wù)1、 研究解法的可行性的三個(gè)方面:技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性。2、 可行性研究最根本的任務(wù):對(duì)以后的行動(dòng)方針提出建議。3、 可行性研究需要的時(shí)間長(zhǎng)短取決于工程的規(guī)模。2.2可行性研究過程1、 復(fù)查系統(tǒng)規(guī)模和目標(biāo)2、 研究目前正在試用的系統(tǒng)3、 導(dǎo)出新系統(tǒng)的高層邏輯模型4、 進(jìn)一步定義問題5、 導(dǎo)出和評(píng)價(jià)供選擇的解法6、 推薦行動(dòng)方針7、 草擬開發(fā)計(jì)劃8、 書寫文檔提交審查2.3系統(tǒng)流程圖1、 系統(tǒng)流程圖:概括地描繪物理系統(tǒng)的工具。2、 系統(tǒng)流程圖的基本思想:用圖形符號(hào)以黑盒子形式描繪組系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。3、 P39符號(hào)4、 系統(tǒng)流程圖的習(xí)慣畫法:使信息在圖中從頂向下或從左向右流動(dòng)。5、面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法時(shí)分層次地描繪這個(gè)系統(tǒng)。2?4數(shù)據(jù)流圖1、 數(shù)據(jù)流圖(DFD):—種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過程中所經(jīng)受的變換。2、 數(shù)據(jù)流圖的四種基本符號(hào)P413、 數(shù)據(jù)存儲(chǔ)(靜止?fàn)顟B(tài))和數(shù)據(jù)流(運(yùn)動(dòng))都是數(shù)據(jù)。4、 數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”而不是考慮“怎么做”5、 星號(hào)(*)是數(shù)據(jù)流之間的“與”關(guān)系;加號(hào)(+)表示“或”關(guān)系;十號(hào)表示只能從中選一個(gè)(互斥關(guān)系)。6、 畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。2?5數(shù)據(jù)字典1、 數(shù)據(jù)字典應(yīng)由對(duì)下列4類元素的定義組成:數(shù)據(jù)流、數(shù)據(jù)流分量(即數(shù)據(jù)元素)、數(shù)據(jù)存儲(chǔ)、處理。2、 由數(shù)據(jù)元素組成數(shù)據(jù)的方式的三種基本類型:順序、選擇、重復(fù)。+可選3、 用以下符號(hào)描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系:=意思是等價(jià)于(或定義為)、+意思是和(即連接兩個(gè)分量)、□意思是或(通常用“I”號(hào)隔開供選擇的分量)、{}意思是重復(fù)、()意思是可選。4、 數(shù)據(jù)字典最重要的用途是作為分析階段的工具。2?6成本/效益分析1、 成本叔益分析的目的:從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地作出是否投資于這項(xiàng)開發(fā)工程的決定。2、 軟件開發(fā)成本:主要表現(xiàn)為人力消耗。3、 成本估算技術(shù):代碼行技術(shù)、任務(wù)分解技術(shù)、自動(dòng)估計(jì)成本技術(shù)。4、 貨幣的時(shí)間價(jià)值:用利率的形式。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后的價(jià)值:F=P(1+i廠n5、 衡量一項(xiàng)開發(fā)工程的價(jià)值:投資回收期。6、 純收入7、 投資回收率2.7小結(jié)三需求分析4、 需求分析是軟件定義時(shí)期的最后一個(gè)階段。5、 基本任務(wù):準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題。6、 用于需求分析的結(jié)構(gòu)化分析方法必須遵守下述準(zhǔn)則:(1) 、必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該應(yīng)該建立數(shù)據(jù)模型。E-R圖(2) 、必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。數(shù)據(jù)流圖(3) 、必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。狀態(tài)圖(4)、必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展開細(xì)節(jié)。3?1需求分析的任務(wù)5、 對(duì)軟件系統(tǒng)的綜合要求:功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理需求、接口需求、約束、逆向需求、將來可能提出的要求。6、 需求分析的任務(wù):確定對(duì)系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)計(jì)劃3.2與用戶溝通獲取需求的方法8、 訪談、面向數(shù)據(jù)流自頂向下求精、簡(jiǎn)易地應(yīng)用規(guī)格說明技術(shù),快速建立軟件原型。9、 結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下求精進(jìn)行需求分析的方法。10、 快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)。3.3分析建模與規(guī)格說明9、 需求分析過程應(yīng)建立3種模型:數(shù)據(jù)模型、功能模型、行為模型。10、 數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)。11、 狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。3.4實(shí)體-聯(lián)系圖(E-R)E-R圖中包含著實(shí)體(即數(shù)據(jù)對(duì)象)、關(guān)系和屬性3種基本成分。3.5數(shù)據(jù)規(guī)范化第一范式:每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。第二范式:滿足第一范式的條件,而且每個(gè)非關(guān)鍵字都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。第三范式:符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵字屬性值不依賴于另一個(gè)非關(guān)鍵字屬性值)。3.6狀態(tài)轉(zhuǎn)換圖1、 狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖):通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。2、 在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(即最終狀態(tài))和中間狀態(tài)。在狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有0至多個(gè)。3、 事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。4、 在狀態(tài)圖中,初態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示。中間狀態(tài)用圓角矩5、 活動(dòng)表的語法格式:事件名(參數(shù)表)/動(dòng)作表達(dá)式6、 在活動(dòng)表中通常使用的3種標(biāo)準(zhǔn)事件:Entry事件指定進(jìn)入該狀態(tài)的動(dòng)作Exit事件指定退出該狀態(tài)的動(dòng)作Do事件制定在該狀態(tài)下的動(dòng)作7、 狀態(tài)轉(zhuǎn)換:箭頭指明的轉(zhuǎn)換方向。8、 事件表達(dá)式的語法:事件說明【守衛(wèi)條件】/動(dòng)作表達(dá)式事件說明與守衛(wèi)條件同時(shí)使用時(shí),則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式為真時(shí),狀態(tài)轉(zhuǎn)換才發(fā)生;如果只有守衛(wèi)條件沒有事件說明則只要守衛(wèi)條件為真,狀態(tài)轉(zhuǎn)換就發(fā)生。9、 守衛(wèi)條件是一個(gè)布爾表達(dá)式。10、 動(dòng)作表達(dá)式是一個(gè)過程表達(dá)式,當(dāng)狀態(tài)表達(dá)式開始時(shí)執(zhí)行該表達(dá)式。3.7其他圖形層次方框圖、warnier圖、IPO圖(輸入、處理、輸出圖的簡(jiǎn)稱)3.8驗(yàn)證軟件需求從四個(gè)方面進(jìn)行驗(yàn)證:一致性、完整新、現(xiàn)實(shí)性、有效性3.9小結(jié)五總體設(shè)計(jì)5.1設(shè)計(jì)過程第3章總體設(shè)計(jì)過程通常有兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件的結(jié)構(gòu)。第4章典型的總體設(shè)計(jì)過程包括下述9個(gè)步驟:1) 、設(shè)想宮選擇的方案需求分析階段得出的數(shù)據(jù)流程圖是總體設(shè)計(jì)的極好的出發(fā)點(diǎn)。2) 、選擇合理的方案對(duì)每個(gè)合理的方案,分析員都應(yīng)準(zhǔn)備下列四份材料:系統(tǒng)流程圖組成系統(tǒng)的物理元素清單成本/效益分析實(shí)現(xiàn)各個(gè)系統(tǒng)的進(jìn)度計(jì)劃3) 、推薦最佳方案4) 、功能分解5) 、設(shè)計(jì)軟件結(jié)構(gòu)軟件結(jié)構(gòu)可以用層次圖或結(jié)構(gòu)圖來描繪。6) 、設(shè)計(jì)數(shù)據(jù)庫7) 、制定測(cè)試計(jì)劃8) 、書寫文檔這個(gè)階段完成的文檔有:系統(tǒng)說明、用戶手冊(cè)、測(cè)試計(jì)劃、詳細(xì)的實(shí)現(xiàn)計(jì)劃、數(shù)據(jù)庫設(shè)計(jì)結(jié)果。9) 、審查和復(fù)查5.2設(shè)計(jì)原理1、 模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨(dú)立2、 模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。3、 模塊是構(gòu)成程序的基本構(gòu)件。4、 模塊化就是把程序分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。5、 抽象:把相似的方面集中和概括起來,暫時(shí)忽略它們之間的差異,或者說,抽出事物的本質(zhì)特性而暫時(shí)不考慮它們之間的細(xì)節(jié)。6、 逐步求精是人類解決復(fù)雜問題時(shí)采用的基本方法,也是許多軟件工程技術(shù)的基礎(chǔ)。定義:為了能集中精力解決主要問題而盡量推遲對(duì)問題細(xì)節(jié)的考慮。7、 信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來說,是不能訪問的。8、 局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。9、 模塊獨(dú)立的概念是模塊化,抽象,信息隱藏和局部化概念的直接結(jié)果。10、 模塊獨(dú)立化重要性的原因:第一,有效地模塊化的軟件比較容易開發(fā)出來;第二,獨(dú)立的模塊化比較容易測(cè)試和維護(hù)。11、 模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量,這兩個(gè)標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。12、 耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。13、 耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問一個(gè)模塊的點(diǎn),以及通過接口的數(shù)據(jù)。14、 如果兩個(gè)模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。15、 如果傳遞的信息中有控制信息(盡管有時(shí)這種控制信息以數(shù)據(jù)的形式出現(xiàn)),則這種耦合稱為控制耦合。16、 數(shù)據(jù)耦合是低耦合。17、 公共環(huán)境耦合、18、 最高程度的耦合式內(nèi)容耦合。19、 內(nèi)聚標(biāo)志著一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。20、 偶然內(nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚21、 低內(nèi)聚、中內(nèi)聚、高內(nèi)聚的分類。5.3啟發(fā)規(guī)則11、 /軟件結(jié)構(gòu)提高模塊獨(dú)立性12、 模塊規(guī)模應(yīng)該適中13、 深度、寬度、扇出和扇入都應(yīng)適當(dāng)14、 模塊的應(yīng)用域應(yīng)該在控制域之內(nèi)15、 力爭(zhēng)降低模塊接口的復(fù)雜程度16、 設(shè)計(jì)單入口單出口的模塊17、 模塊功能應(yīng)該可以預(yù)測(cè)5.4描繪軟件結(jié)構(gòu)的圖形工具7、 層次圖和HIPO圖8、 結(jié)構(gòu)圖5.5面向數(shù)據(jù)流的設(shè)計(jì)方法7、 面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。8、 信息流分成兩種類型:變化流、事物流(概念)9、 變換分析是一系列設(shè)計(jì)步驟的總稱,經(jīng)過這些步驟吧具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。10、 變換分析的設(shè)計(jì)步驟。5.6小結(jié)第6章詳細(xì)設(shè)計(jì)目標(biāo):1?確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng)2?設(shè)計(jì)出程序的“藍(lán)圖”3?詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終的程序代碼的質(zhì)量6.1 結(jié)構(gòu)程序設(shè)計(jì)1?概念:結(jié)果程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的的設(shè)計(jì)方法和單入口但出口的控制結(jié)構(gòu)。2?三種基本控制結(jié)構(gòu):1) 順序結(jié)構(gòu):相當(dāng)于“A、B”2) 選擇結(jié)構(gòu):相當(dāng)于“fexpthenAelseBendif;”3) 循環(huán)結(jié)構(gòu):相當(dāng)于“WhileexpdoA”3?擴(kuò)充的兩種控制結(jié)構(gòu):1)多分支結(jié)構(gòu):相當(dāng)于“CaseIofI=1:C1; I=n:Cn;”2) UNTIL循環(huán)結(jié)構(gòu):相當(dāng)于“RepeatAuntilexp;”4?結(jié)構(gòu)程序設(shè)計(jì)的種類:1)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):只允許使用順序、IF_THEN_ELSE型分支和DO_WHILE型循環(huán);擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):除了三種基本控制結(jié)構(gòu),還使用DO_CASE型多分支結(jié)構(gòu)和DO_WHILE型循環(huán)結(jié)構(gòu);修正的結(jié)構(gòu)程序設(shè)計(jì):除了三種基本控制結(jié)構(gòu)和兩種擴(kuò)充結(jié)構(gòu),還使用LEAVE(或BREAK)結(jié)構(gòu)。人機(jī)界面設(shè)計(jì)6.2.1設(shè)計(jì)問題1?系統(tǒng)響應(yīng)時(shí)間2?用戶幫助設(shè)施3?出錯(cuò)信息處理4?命令交互6.2.2設(shè)計(jì)過程6.2.3人機(jī)界面設(shè)計(jì)指南1?一般交互指南2?信息顯示指南3?數(shù)據(jù)輸入指南過程設(shè)計(jì)的工具6.3.1程序流程圖程序流程圖:是一種描述程序的控制結(jié)構(gòu)流程和指令執(zhí)行情況的有向圖。程序流程圖的主要缺點(diǎn):程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。6.3.2盒圖盒圖特點(diǎn):功能域明確,可以從盒圖上一眼就看出來。不可能任意轉(zhuǎn)移控制。很容易確定局部和全程數(shù)據(jù)的作用域。很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。PAD圖是一種問題分析圖。PAD圖優(yōu)點(diǎn):使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來的程序必然是結(jié)構(gòu)化程序PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著德程序?qū)哟蔚脑黾?,PAD圖逐漸向右延伸,每次增加一個(gè)層次,圖形向右擴(kuò)展豎線。PAD圖中豎線的總條數(shù)就是程序的層次數(shù)。用PAD圖表現(xiàn)程序邏輯,易懂、易讀、易記。PAD圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。容易將PAD圖轉(zhuǎn)換成高級(jí)語言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。開始時(shí)設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì)。6.3.4判定表判定表由四部分組成:左上部列出所有條件左下部是所有可能做的動(dòng)作右上部是表示各種條件組合的一個(gè)矩陣右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作6.3.5判定樹判定樹是判定表的變種。6.3.5過程設(shè)計(jì)語言過程設(shè)計(jì)語言(PDL)也稱為偽碼。PDL的優(yōu)點(diǎn):可以作為注釋的直接插在源程序中間可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDl的書寫和編輯工作已經(jīng)有自動(dòng)處理PDL的程序存在,而且可以自動(dòng)由PDL生成程序代碼。PDL缺點(diǎn):不如圖形工具形象直觀。6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法Jackson圖順序結(jié)構(gòu)選擇結(jié)構(gòu)重復(fù)結(jié)構(gòu)6.4.2改進(jìn)的Jackson圖Jackson方法Jackson結(jié)構(gòu)程序設(shè)計(jì)方法基本上由5個(gè)步驟組成:分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單兀。用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖。第一,為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框。第二,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。第三,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。用偽碼表示程序。6.5程序復(fù)雜程度的定量度量McCabe方法1?流圖“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。2?計(jì)算環(huán)形復(fù)雜度的方法環(huán)形復(fù)雜度等于流圖中的區(qū)域數(shù)。流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù)的,N是結(jié)點(diǎn)數(shù)。流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。3?環(huán)形復(fù)雜度的用途它是對(duì)測(cè)試難度的一種定量度量,也能對(duì)軟件最終的可靠性給出某種預(yù)測(cè)。實(shí)踐表明,模塊規(guī)模以V(G)<=10為宜。Halstead根據(jù)程序中運(yùn)算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。N=N]+N2程序總長(zhǎng)度:N運(yùn)算符出現(xiàn)的總次數(shù):N1操作數(shù)出現(xiàn)的總次數(shù):N2Halstead給出的預(yù)測(cè)程序長(zhǎng)度的公式:H=nlogn+nlogn1°212°22預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式:E=Nlog(n+n)/30001第七章實(shí)現(xiàn)概念:編碼:測(cè)試:7.17?1?1編碼和測(cè)試統(tǒng)稱為實(shí)現(xiàn)。把軟件設(shè)計(jì)結(jié)果翻譯成程序。檢測(cè)程序并改正錯(cuò)誤的過程。編碼選擇程序設(shè)計(jì)語言1?計(jì)算機(jī)程序設(shè)計(jì)語言基本上可以分為兩大類::匯編語言:高級(jí)語言2?選擇語言時(shí)應(yīng)考慮的實(shí)用標(biāo)準(zhǔn):系統(tǒng)用戶要求可以使用的編譯程序可以得到的軟件工具工程規(guī)模程序員的知識(shí)軟件可移植性要求軟件的應(yīng)用領(lǐng)域7.1.2編碼風(fēng)格程序內(nèi)部的文檔數(shù)據(jù)說明語句構(gòu)造輸入輸出效率7.27.2.1軟件測(cè)試基礎(chǔ)軟件測(cè)試的目標(biāo)1?有關(guān)測(cè)試的一些規(guī)則:測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試成功的測(cè)試是發(fā)現(xiàn)多了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試軟件測(cè)試準(zhǔn)則所有測(cè)試都應(yīng)該追溯到用戶要求應(yīng)該遠(yuǎn)在測(cè)試開始之前就制定出側(cè)是計(jì)劃把Pareto原理應(yīng)用到軟件測(cè)試中應(yīng)該從“小規(guī)?!睖y(cè)試開始,并逐步進(jìn)行“大規(guī)模”測(cè)試窮舉測(cè)試是不可能的為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作測(cè)試方法黑盒測(cè)試白盒測(cè)試測(cè)試步驟模塊測(cè)試子系統(tǒng)測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試平行運(yùn)行測(cè)試階段的信息流7.3單元測(cè)試7?3?1 測(cè)試重點(diǎn):模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯(cuò)處理通路邊界條件代碼審查計(jì)算機(jī)測(cè)試7.4 集成測(cè)試7.4.1 自頂向下集成自頂向下集成是一種遞增的裝配軟件結(jié)構(gòu)的方法,這種應(yīng)用方法非常廣泛。它需要存根程序,不需要驅(qū)動(dòng)程序。

7.4.27.4.37.4.47.57.5.17.5.27.5.37.67.6.17.6.2自底向上集成自底向上集成是從軟件結(jié)構(gòu)最底層模塊開始進(jìn)行組裝和測(cè)試,它與自頂向下結(jié)合方法相反,需要驅(qū)動(dòng)程序,但是不需要存根程序。不同集成測(cè)試策略的比較回歸測(cè)試包括3類不同的測(cè)試用例檢測(cè)軟件全部功能的代表性測(cè)試用例專門針對(duì)可能受修改影響的軟件功能的附加測(cè)試針對(duì)被修改過的軟件成分的測(cè)試確認(rèn)測(cè)試確認(rèn)測(cè)試的范圍確認(rèn)測(cè)試的兩種可能的結(jié)果:功能和性能與用戶要求一致,軟件是可以接受的功能和性能與用戶要求有差距軟件配置復(fù)查Alpha和Beta測(cè)試Alpha測(cè)試由用戶在開發(fā)者的場(chǎng)所進(jìn)行,并且在開發(fā)者對(duì)用戶的“指導(dǎo)”下進(jìn)行測(cè)試。Beta測(cè)試由軟件的最終用戶在一個(gè)或多個(gè)客戶場(chǎng)所進(jìn)行白盒測(cè)試邏輯覆蓋語句覆蓋判定覆蓋條件覆蓋r?ZUAC#不IJ4爻JHL條件組合覆蓋點(diǎn)覆蓋邊覆蓋&路徑覆蓋控制結(jié)構(gòu)測(cè)試基本路徑測(cè)試:步驟:1)根據(jù)過程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖計(jì)算流圖的環(huán)形復(fù)雜度確定線性獨(dú)立路徑的基本集合設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑的測(cè)試用例

條件測(cè)試循環(huán)測(cè)試方法:1)簡(jiǎn)單循環(huán)嵌套循環(huán)串接循環(huán)黑盒測(cè)試技術(shù)等價(jià)劃分邊界值分析錯(cuò)誤推斷調(diào)試調(diào)試過程調(diào)試途徑蠻干法回溯法原因排除法軟件可靠性7.9.1基本概念軟件可靠性的定義軟件的可用性7.9.2估算平均無效故障時(shí)間的方法方法基本假定估算平均無故障時(shí)間估算錯(cuò)誤總數(shù)的方法第8章維護(hù)軟件維護(hù)定義軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。維護(hù)的種類:改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù)預(yù)防性維護(hù)軟件維護(hù)的特點(diǎn)8.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)會(huì)維護(hù)差別巨大8.2.2維護(hù)的代價(jià)高昂8.2.3維護(hù)的問題很多軟件維護(hù)過程維護(hù)組織維護(hù)報(bào)告維護(hù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論