【自考復(fù)習(xí)資料】01024軟件工程及應(yīng)用(考試重點(diǎn))_第1頁
【自考復(fù)習(xí)資料】01024軟件工程及應(yīng)用(考試重點(diǎn))_第2頁
【自考復(fù)習(xí)資料】01024軟件工程及應(yīng)用(考試重點(diǎn))_第3頁
【自考復(fù)習(xí)資料】01024軟件工程及應(yīng)用(考試重點(diǎn))_第4頁
【自考復(fù)習(xí)資料】01024軟件工程及應(yīng)用(考試重點(diǎn))_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

緒論(知識點(diǎn)摘要)(1)軟件工程:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算和進(jìn)度實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的工程,或以此為研究對象的學(xué)科。P15(2)軟件危機(jī):軟件生產(chǎn)率、軟件質(zhì)量遠(yuǎn)遠(yuǎn)滿足不了社會發(fā)展的需求,成為社會,經(jīng)濟(jì)發(fā)展的制約因素,人們通常把這一現(xiàn)象稱為“軟件危機(jī)”。(3)軟件工程發(fā)展的兩個時期:1、主要圍繞軟件項(xiàng)目、開展了有關(guān)開發(fā)模型、開發(fā)方法和支持工具的研究。2、圍繞對軟件工程過程的支持,開展了一系列有關(guān)軟件生產(chǎn)技術(shù),特別是軟件復(fù)用技術(shù)和軟件生產(chǎn)管理的研究與實(shí)踐。(4)計(jì)算機(jī)軟件:一般是指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。程序是計(jì)算機(jī)任務(wù)的處理對象和處理規(guī)則的描述;文檔是為了理解程序所需的闡述性資料。(5)軟件開發(fā)的本質(zhì):軟件開發(fā)的本質(zhì)就是實(shí)現(xiàn)問題空間的概念和處理邏輯到解空間的概念和處理邏輯之間的映射。(6)軟件開發(fā)涉及兩個方面的問題:一是如何實(shí)現(xiàn)這樣的映射(技術(shù));二是如何管理這樣的映射(管理)。(7)簡述軟件開發(fā)所涉及的兩大類技術(shù):一是求解軟件的開發(fā)邏輯,二是求解軟件的開發(fā)手段。(8)簡述實(shí)施軟件開發(fā)的基本途徑:是系統(tǒng)建模。所謂系統(tǒng)建模,是指運(yùn)用所掌握的知識,通過抽象,給出該系統(tǒng)的一個結(jié)構(gòu)——系統(tǒng)模型。(9)簡述何謂模型以及軟件開發(fā)中所涉及的模型:模型是一個抽象。該抽象是在意圖所確定的角度和抽象層次對物理系統(tǒng)的一個描述,描述其中的成分和成分之間所具有的特定語義的關(guān)系,還包括對該系統(tǒng)邊界的描述。軟件開發(fā)中所涉及的模型可分為兩大類,一類稱為概念模型,描述了系統(tǒng)是什么;另一類統(tǒng)稱為軟件模型,描述了實(shí)現(xiàn)概念模型的軟件解決方案。(10)軟件開發(fā)中所涉及的模型可分為兩大類:一類稱為概念模型,另一類統(tǒng)稱為軟件模型,軟件模型又包括設(shè)計(jì)模型、實(shí)現(xiàn)模型和部署模型等。(11)軟件工程需要解決的問題:軟件的費(fèi)用,可靠性,可維護(hù)性,軟件生產(chǎn)率和軟件的重用。(12)軟件工程的目標(biāo):付出較低開發(fā)成本;達(dá)到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護(hù)費(fèi)用;能按時完成開發(fā)任務(wù),及時交付使用;開發(fā)的軟件可靠性高。軟件需求與軟件需求規(guī)約(1)軟件需求:以一種技術(shù)形式,描述了一個產(chǎn)品/系統(tǒng)應(yīng)該具有的功能、性能和其它性質(zhì)。(2)軟件需求的性質(zhì):1、必要的,該需求是用戶所要求的。2、無歧義的,該需求只能用一種方式解釋。3、可測的,該需求是可進(jìn)行測試的。4、可跟蹤的,該需求可從一個開發(fā)階段跟蹤到另一個階段。5、可測量的,該需求是可測量的。(3)需求的分類:兩大類:一類是功能需求,一類是非功能需求,而非功能需求可分為性能需求,外部接口需求、設(shè)計(jì)約束和質(zhì)量屬性需求。(4)功能需求:規(guī)約了系統(tǒng)或系統(tǒng)構(gòu)件必須執(zhí)行的功能。(5)非功能需求:是性能、外部接口、設(shè)計(jì)約束和質(zhì)量屬性這4類需求的統(tǒng)稱。(6)功能需求和非功能需求之間的基本關(guān)系:功能需求是整個需求的主體,即沒有功能需求,就沒有派生的其他功能需求,就沒有性能、外部接口、設(shè)計(jì)約束和質(zhì)量屬性等非功能性需求。一個非功能需求可作用于一個或多個功能需求。(7)非功能需求:性能需求、外部接口需求(如用戶接口、硬件接口、軟件接口、通信接口、內(nèi)存約束、運(yùn)行和地點(diǎn)需求)、設(shè)計(jì)約束(如法規(guī)政策、硬件限制、與其他應(yīng)用的接口、并發(fā)操作、審計(jì)功能、控制功能、高級語言需求、握手協(xié)議)和質(zhì)量屬性(可靠性、存活性、可維護(hù)性和用戶友好性)這4類需求。(8)需求發(fā)現(xiàn)技術(shù):自悟、交談、觀察、小組會和提煉。(9)需求規(guī)約是一個軟件項(xiàng)目/產(chǎn)品/系統(tǒng)所有需求陳述的正式文檔,它表達(dá)了一個軟件產(chǎn)品/系統(tǒng)的概念模型。(10)需求規(guī)約的基本性質(zhì):1、重要性和穩(wěn)定性程度:按需求的重要性和穩(wěn)定性,對需求進(jìn)行分級。2、可修改的:在不過多地影響其他需求的前提下,可以容易地修改一個單一需求。3、完整的:沒有被遺漏的需求。4、一致的:不存在互斥的需求。(11)簡述需求規(guī)約的3種基本形式:1、非形式化的需求規(guī)約。非形式化的需求規(guī)約即以一種自然語言來表達(dá)需求規(guī)約,如同使用一種自然語言寫了一篇文章。2、半形式化的需求規(guī)約。半形式化的需求規(guī)約即以半形式化符號體系(包括術(shù)語表、標(biāo)準(zhǔn)化的表達(dá)格式等)來表達(dá)需求規(guī)約。3、形式化的需求規(guī)約。形式化的需求規(guī)約即以一種基于良構(gòu)數(shù)學(xué)概念的符號體系來編制需求規(guī)約,一般往往伴有解釋性注釋的支持。(12)軟件需求規(guī)約的作用:1、需求規(guī)約是軟件開發(fā)組織和用戶之間一份事實(shí)上的技術(shù)合同書,是產(chǎn)品功能及其環(huán)境的體現(xiàn)。2、對于項(xiàng)目的其余大多數(shù)工作,需求規(guī)約是一個管理控制點(diǎn)。3、對于產(chǎn)品/系統(tǒng)的設(shè)計(jì),需求規(guī)約是一個正式的、受控的起始點(diǎn)。4、需求規(guī)約是創(chuàng)建產(chǎn)品驗(yàn)收測試計(jì)劃和用戶指南的基礎(chǔ),即基于需求規(guī)約一般還會產(chǎn)生另外兩個文檔---初始測試計(jì)劃和用戶系統(tǒng)操作描述。(13)簡述需求規(guī)約和項(xiàng)目需求的不同:需求規(guī)約和項(xiàng)目需求是兩個不同的概念。需求規(guī)約是軟件開發(fā)組織和用戶之間一份事實(shí)上的技術(shù)合同書,即關(guān)注產(chǎn)品需求,回答“交付給客戶的產(chǎn)品/系統(tǒng)是什么”;而項(xiàng)目需求是客戶和開發(fā)者之間有關(guān)技術(shù)合同——產(chǎn)品/系統(tǒng)需求的理解,應(yīng)記錄在工作陳述中或其他某一項(xiàng)目文檔中,即關(guān)注項(xiàng)目工作與管理,回答“開發(fā)組要做的是什么”。結(jié)構(gòu)化方法(1)需求分析工作面臨的三大挑戰(zhàn):1、問題空間理解;2、人與人這間的通信;3、需求的變化性。(2)一種好的需求技術(shù)就具有以下基本特征:1、提供方便的通信的機(jī)制;2、鼓勵需求分析人員使用問題空間的術(shù)語思考問題,編寫文檔;3、提供定義系統(tǒng)邊界的方法;4、提供支持抽象的基本機(jī)制;5、為需求分析人員提供多種可供選擇的方案;6、提供特定的技術(shù),適應(yīng)需求的變化。(3)任何一種軟件分析方法包括:1、要給出一些基本術(shù)語,支持表達(dá)分析中所需要使用的信息;2、要給出表達(dá)系統(tǒng)模型的工具,支持表達(dá)系統(tǒng)功能;3、給出過程指導(dǎo),支持如何系統(tǒng)化地使用相關(guān)信息來建造系統(tǒng)模型。(4)結(jié)構(gòu)化方法基本術(shù)語:數(shù)據(jù)流、加工、數(shù)據(jù)存儲、數(shù)據(jù)源和數(shù)據(jù)潭。(5)數(shù)據(jù)流圖:表達(dá)功能模型的工具,即數(shù)據(jù)流圖(DataflowDiagram)簡稱DFD圖,簡單的說,DFD圖是一種描述數(shù)據(jù)變換的圖形化工具,其中包括的元素可以是數(shù)據(jù)流、數(shù)據(jù)存儲、加工、數(shù)據(jù)源和數(shù)據(jù)潭等。(6)結(jié)構(gòu)化方法的建模過程:1、建立系統(tǒng)環(huán)境圖,確定系統(tǒng)語境,一般為系統(tǒng)的頂層數(shù)據(jù)流圖;2、自頂向下,逐步求精,建立系統(tǒng)的層次數(shù)據(jù)流圖;3、定義數(shù)據(jù)字典,用于表達(dá)系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu);4、描述加工,用于表達(dá)每個加工輸入和輸出之間的邏輯關(guān)系;5、需求驗(yàn)證。(7)父DFD圖生成子DFD圖的步驟:1、將“父圖”的每一加工按其功能分解為若干個子加工;2、將“父圖”的輸入流和輸出流分派到相關(guān)的子加工;3、在各個加工之間建立合理的關(guān)聯(lián),必要是引入數(shù)據(jù)存儲,使之形成一個有機(jī)的整體。(8)數(shù)據(jù)字典(DD):用來定義數(shù)據(jù)庫流圖中的各個成分的具體含義。有以下三類條目:數(shù)據(jù)流條目,數(shù)據(jù)項(xiàng)條目,數(shù)據(jù)存儲條目。(9)數(shù)據(jù)字典中定義數(shù)據(jù)結(jié)構(gòu)的符號:1、“=”表定義為;2、“+”表順序;3、[|]表選擇;4、{}表重復(fù);5、m..n表子界。(10)描述加工的工具:1、結(jié)構(gòu)化自然語言;2、判定表;3判定樹。[這一部分的內(nèi)容請參照后面的相關(guān)習(xí)題](11)結(jié)構(gòu)化分析方法總結(jié):(12)需求階段的主要任務(wù):是完整地定義問題,確定系統(tǒng)的功能和能力。為此,該階段的主要任務(wù)一般包括需求發(fā)現(xiàn)、需求分析和需求驗(yàn)證,最終形成系統(tǒng)的軟件需求規(guī)格說明書。(13)需求驗(yàn)證:應(yīng)驗(yàn)證需求規(guī)格說明書中的每一單一需求是否滿足5個性質(zhì),即必要性、無歧義性、可測性、可跟蹤性、可測量性;驗(yàn)證需求規(guī)格說明書是否滿足4個性質(zhì),即重要性和穩(wěn)定程序、可修改性、完整性和一致性。(14)結(jié)構(gòu)化設(shè)計(jì)的主要任務(wù):在需求分析的基礎(chǔ)上,定義滿足需求所需要的軟件結(jié)構(gòu),即針對給定的問題,給出該項(xiàng)問題的軟件解決方案,研究“怎么做”的問題。(15)結(jié)構(gòu)化設(shè)計(jì)分為:總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。(16)總體設(shè)計(jì)階段的基本任務(wù):是把系統(tǒng)的功能需求分配到一個特定的軟件體系結(jié)構(gòu)中,即把需求分析所得到的系統(tǒng)DFD圖映射為設(shè)計(jì)層面上的模塊和模塊調(diào)用。(17)總體設(shè)計(jì)引入的兩個基本概念:1、模塊,即指軟件中具有特定標(biāo)識的獨(dú)立成分,即執(zhí)行一個特殊任務(wù)的一個過程以及相關(guān)的數(shù)據(jù)結(jié)構(gòu),包括接口和模塊體兩部分;2、模塊調(diào)用,即指模塊之間的一種使用關(guān)系。(18)軟件體系結(jié)構(gòu)圖主要有三種:1、模塊結(jié)構(gòu)圖(MSD圖);2、層次圖;3、HIPO圖。(19)HIPO圖是由H圖和IPO圖兩部分組成,H圖就是層次圖,IPO即為模塊的輸入/處理/輸出。(20)總體設(shè)計(jì)的步驟:1、初始設(shè)計(jì):首先將系統(tǒng)的DFD圖轉(zhuǎn)化為初始的模塊結(jié)構(gòu)圖;2、精華設(shè)計(jì):基于“高內(nèi)聚低耦合”的原則,通過模塊化,將初始的模塊結(jié)構(gòu)圖轉(zhuǎn)化為最終的、可供詳細(xì)設(shè)計(jì)使用的模塊結(jié)構(gòu)圖(MSD);3、復(fù)審階段:對MSD圖進(jìn)行復(fù)審。(21)數(shù)據(jù)流圖分為:變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖。(22)變換型數(shù)據(jù)流圖:具有較明顯的輸入部分和變換(主加工)部分之間的界面變換部分和輸出部分之間界面的數(shù)據(jù)流圖。(23)事務(wù)型數(shù)據(jù)流圖:數(shù)據(jù)到達(dá)一個加工T,該加工T根據(jù)輸入數(shù)據(jù)的值,在其后的若干動作序列中選出一個來執(zhí)行。(24)變換設(shè)計(jì)的步驟:1、設(shè)計(jì)準(zhǔn)備—復(fù)審并精化系統(tǒng)模型;2、確定輸入、變換、輸出這三部分之間的邊界;3、第一級分解—系統(tǒng)模塊結(jié)構(gòu)圖頂層和第一層的設(shè)計(jì);4、第二級分解---自頂向下,逐步求精。(25)變換型數(shù)據(jù)流圖對應(yīng)的軟件結(jié)構(gòu)包括:1、主控模塊;2、輸入模塊部分;3、變換模塊部分;4、輸出模塊部分。(26)事務(wù)設(shè)計(jì)的步驟:1、設(shè)計(jì)準(zhǔn)備—復(fù)審并精化系統(tǒng)模型;2、確定事務(wù)處理中心;3、第一級分解—系統(tǒng)模塊結(jié)構(gòu)圖頂層和第一層的設(shè)計(jì);4、第二級分解---自頂向下,逐步求精。(27)模塊耦合:是不同模塊之間相互依賴程序的度量。(28)模塊耦合的類型:1、內(nèi)容耦合:當(dāng)一個模塊直接修改或操作另一個模塊的數(shù)據(jù),或一個模塊不通過正常入口而轉(zhuǎn)入到另一個模塊時;2、公共耦合:兩個或兩個以上的模塊共同引用一個全局?jǐn)?shù)據(jù)項(xiàng);3、控制耦合一個模塊通過接口向另一個模塊傳遞一個控制信息,接收信號的模塊根據(jù)信號值進(jìn)行適當(dāng)?shù)膭幼鳎?、標(biāo)記耦合:若一個模塊A通過接口向兩個模塊B和C傳遞一個公共參數(shù);5、數(shù)據(jù)耦合:模塊之間通過參數(shù)來傳遞數(shù)據(jù)。(29)模塊內(nèi)聚:指一個模塊內(nèi)部各成分之間相互關(guān)聯(lián)程度的度量。(30)模塊內(nèi)聚的類型:1、偶然內(nèi)聚:一個模塊的各成分之間基本不存在任何關(guān)系;2、邏輯內(nèi)聚:幾個邏輯上相關(guān)的功能被放在同一個模塊中;3、時間內(nèi)聚:一個模塊完成的功能必須在同一時間內(nèi)執(zhí)行,但這些功能只是因?yàn)闀r間因素關(guān)聯(lián)在一起;4、過程內(nèi)聚:一個模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行;5、通信內(nèi)聚:一個模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集;6、順序內(nèi)聚:一個模塊的各個成分和同一個功能密切相關(guān),而且一個成分的輸出作為另一個成分的輸入;7、功能內(nèi)聚:最理想的內(nèi)聚,模塊的所有成分對于完成單一的功能都是基本的。(31)啟發(fā)式規(guī)則:1、改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;2、力求模塊結(jié)構(gòu)適中;3、力求深度、寬度、扇出和扇入適中;4、盡力使模塊的作用域在其控制域之內(nèi)。5、盡力降低模塊接口的復(fù)雜程序;6、力求模塊功能可以預(yù)測。(32)控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合。作用域:受該模塊內(nèi)的一個判定所影響的所有模塊的影響。(33)詳細(xì)設(shè)計(jì):具體描述模塊結(jié)構(gòu)圖中的每一模塊,即給出實(shí)現(xiàn)模塊功能的實(shí)施機(jī)制,包括一組例程和數(shù)據(jù)結(jié)構(gòu),從而精確地定義了滿足需求所規(guī)約的結(jié)構(gòu)。(34)詳細(xì)設(shè)計(jì)工具:1、程序流程圖;2、盒圖(N-S圖);3、PAD圖。(35)程序流程圖的主要缺點(diǎn):1、不是一種逐步求精的工具;2、所表達(dá)的控制流,往往不受任何約束可隨意轉(zhuǎn)移,從而會影響甚至破壞好的系統(tǒng)結(jié)構(gòu);3、不易表達(dá)數(shù)據(jù)結(jié)構(gòu)。(35)自頂向下、逐步求精方法的優(yōu)點(diǎn):1、自頂向下、逐步求精方法符合人們解決復(fù)雜問題的普遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率;2、用先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精的過程開發(fā)出來的程序具有清晰的層次結(jié)構(gòu);3、程序自頂向下,逐步細(xì)化,分解成樹形結(jié)構(gòu);4、程序清晰和模塊化,使得在修改和重新設(shè)計(jì)一個軟件時,可復(fù)用的代碼最大;5、程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明;6、每一步工作僅在上層結(jié)點(diǎn)的基礎(chǔ)上做不多的設(shè)計(jì)擴(kuò)展,便于檢查;7、有利于設(shè)計(jì)的分工和組織工作。(36)N—S圖有以下幾個特點(diǎn):1、圖中每個矩形框都是明確定義了的功能域,以圖形表示,清晰可見;2、它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計(jì)的要求;3、很容易確定局部數(shù)據(jù)和全局?jǐn)?shù)據(jù)作用域;4、很容易表現(xiàn)嵌套關(guān)系。面向?qū)ο蠓椒║ML(1)UML是一種可視化的語言,可用于規(guī)約系統(tǒng)的制品,構(gòu)造系統(tǒng)的制品、建立系統(tǒng)制品的文檔。這意味著UML可作為軟件需求規(guī)約、設(shè)計(jì)和實(shí)現(xiàn)的工具。(2)UML表達(dá)事件的術(shù)語:類與對象,接口,協(xié)作,用況,主動類,構(gòu)件,制品和結(jié)點(diǎn)。(3)UML表達(dá)關(guān)系的術(shù)語:關(guān)聯(lián)、泛化、實(shí)現(xiàn)和依賴。(4)類:是一組具有相同屬性、操作、關(guān)系和語義的對象的描述,包括一組屬性的操作。(5)類在建模中的用途:1、模型化問題域中的概念;2、建立系統(tǒng)的職責(zé)分布模型;3、模型化建模中使用的基本類型。(6)接口:是操作的一個集合,其中每個操作描述了類、構(gòu)件或子系統(tǒng)的一個服務(wù)。(7)在建立模型中,接口對系統(tǒng)模型化應(yīng)注意的問題:1、接口只可以被其他類目使用,而本身不能訪問其他類目;2、接口描述類的外部可見操作,通常是該類的一個特定有限行為;3、接口不描述其中操作的實(shí)現(xiàn),也沒有屬性和狀態(tài);4、接口之間沒有關(guān)聯(lián)、泛化、實(shí)現(xiàn)和依賴。(8)協(xié)作,是一個交互,涉及交互的三要素:交互各方、交互方式、交互方式以及交互內(nèi)容。(9)用況:是對一組動作序列的描述,系統(tǒng)執(zhí)行這些動作應(yīng)產(chǎn)生對特定參與者有值的、可觀察的結(jié)果。(10)主動類:是一種至少具有一個進(jìn)程或線程的類。(11)構(gòu)件:是系統(tǒng)設(shè)計(jì)中的一種模塊化部件,通過外部接口隱藏了它的內(nèi)部實(shí)現(xiàn)。(12)制品:是系統(tǒng)中包含物理信息的,可代替的物理部件。(13)結(jié)點(diǎn):是在運(yùn)行那個時存在的物理元素,通常表示一種具有記憶能力和處理能力的計(jì)算機(jī)資源。(14)關(guān)聯(lián):是對一組具有相同結(jié)構(gòu)、相同鏈的描述。(15)為了表達(dá)關(guān)聯(lián)的語義,UML采用以下途徑:1、關(guān)聯(lián)名2、導(dǎo)航3、角色4、可見性5、多重性6、限定符7、聚合8、組合9、關(guān)聯(lián)類10、約束。(16)泛化:是一般性類目和它的較為特殊性類目之間的一種關(guān)系,有事稱為“is-a-kind-of”關(guān)系。(17)進(jìn)一步表達(dá)泛化的語義,UML給出4個約束:1、完整2、不完整3、互斥4、重疊。(18)細(xì)化:是類目之間的語義聯(lián)系,其中一個類目規(guī)約了保證另一個類目執(zhí)行的契約。(19)依賴:是一種使用關(guān)系,用于描述一個類目使用另一類目的信息和服務(wù)。(20)UML圖形化工具分兩類:1、結(jié)構(gòu)圖,用于表達(dá)系統(tǒng)或系統(tǒng)成分的靜態(tài)結(jié)構(gòu)模型,給出系統(tǒng)或系統(tǒng)成分的一些說明性信息;2、行為圖,用于表達(dá)系統(tǒng)或系統(tǒng)成分的動態(tài)結(jié)構(gòu)模型,給出系統(tǒng)或系統(tǒng)成分的一些行為信息。(21)軟件開發(fā)中4中建模工具:類圖、用況圖、狀態(tài)圖、順序圖。(22)類圖:是可視化地表達(dá)系統(tǒng)靜態(tài)結(jié)構(gòu)模型的工具,通常包含類、接口、關(guān)聯(lián)、泛化和依賴關(guān)系等。(23)用況圖:對行為進(jìn)行抽象,給出行為結(jié)構(gòu),給出系統(tǒng)的動態(tài)性描述。包括6個模型元素:主題、用況、參與者、關(guān)聯(lián)、泛化、依賴。(24)狀態(tài)圖:是現(xiàn)實(shí)一個狀態(tài)機(jī)的圖,其中強(qiáng)調(diào)了從一個狀態(tài)到另一個狀態(tài)的控制流。UML把狀態(tài)分3類:初態(tài)、終態(tài)和通常狀態(tài)。(25)狀態(tài)圖包含的內(nèi)容:(1)狀態(tài):名字,進(jìn)入/退出效應(yīng),do動作或活動,被延遲事件(2)事件:信號事件,調(diào)用事件,時間事件,變化事件(3)狀態(tài)轉(zhuǎn)移:源狀態(tài)、轉(zhuǎn)移觸發(fā)器、監(jiān)護(hù)條件、效應(yīng)、目標(biāo)狀態(tài)。(26)順序圖:是一種交互圖,由一組對象以及按時序組織的對象之間的關(guān)系組成,其中還包含這些對象之間所發(fā)送的消息。(27)順序圖的構(gòu)成:(1)消息(2)對象生命線(3)聚焦控制??刂撇僮髯樱哼x擇執(zhí)行操作子,條件執(zhí)行操作子,并發(fā)執(zhí)行操作子,迭代執(zhí)行操作子。(28)結(jié)構(gòu)良好的類的條件:(1)明確抽象了問題域或解域中某個有型事物或概念(2)包含了一個小的、明確定義的職責(zé)集,并能很好的實(shí)現(xiàn)(3)清晰的分離了抽象和現(xiàn)實(shí)。(29)組合:如果在一個時間段內(nèi),整體類的實(shí)例中至少包含一個部分類的實(shí)例,并且該整體類的實(shí)例負(fù)責(zé)創(chuàng)建和消除部分類的實(shí)例,特別是整體類的實(shí)例和部分類的實(shí)例具有相同的生命周期。(30)聚合:一個類目是另一個類目的一部分,但整體與部分具有不同的生命用期,表達(dá)的是一種“整體/部分”的關(guān)系。(31)包:UML提供的組織信息的一種通用機(jī)制,目的是為了控制信息的復(fù)雜性。包之間存在兩種關(guān)系:引入和訪問。(32)認(rèn)識行為的有效算途徑:1、從功能的視角;2、從交互的視角;3、從生存周期的視角。在UML中用況圖支持系統(tǒng)功能的建模,交互圖支持系統(tǒng)交互的建模,狀態(tài)圖支持系統(tǒng)生存周期的建模。(33)用況之間的3種關(guān)系:泛化,擴(kuò)展和包含。(34)狀態(tài)圖的作用:1、創(chuàng)建一個系統(tǒng)的動態(tài)模型,包括有各種類型對象、各種系統(tǒng)結(jié)構(gòu)的以事件為序的行為;2、創(chuàng)建一個場景的模型,其主要途徑是為用況給出相應(yīng)的狀態(tài)圖。(35)狀態(tài)機(jī):是一種行為,規(guī)約了一個對象在其中生存期間因響應(yīng)時間并作出響應(yīng)而經(jīng)歷的狀態(tài)。(36)軟件開發(fā)方法學(xué),包括3個方面的內(nèi)容:一是給出定義不同抽象層的術(shù)語;二是應(yīng)給出各抽象層的模型表達(dá)工具;三是應(yīng)給出如何把各層模型映射為下一個抽象層的模型,即過程指導(dǎo)。面向?qū)ο蠓椒≧UP(1)RUP:是基于UML的一種過程框架,為軟件開發(fā),即為進(jìn)行不同抽象層之間“映射”安排其開發(fā)活動的次序,指定任務(wù)和需要開發(fā)的制品,提供了指導(dǎo);并為對項(xiàng)目中的制品和活動進(jìn)行監(jiān)控與度量,提供了相應(yīng)的準(zhǔn)則。(2)RUP的特點(diǎn):以用況驅(qū)動;以體系結(jié)構(gòu)為中心;迭代、增量式開發(fā)。(3)RUP規(guī)定的4個開發(fā)階段:初始階段;精化階段;構(gòu)造階段;移交階段。(4)簡述RUP的4個開發(fā)階段的基本目標(biāo):初始階段:獲得與特定腹部和平臺無關(guān)的系統(tǒng)體系結(jié)構(gòu)輪廓,精化階段:通過捕獲并描述系統(tǒng)的大部分需求,建立系統(tǒng)體系結(jié)構(gòu)基線的第一個版本,構(gòu)造階段:通過演化,形成最終的系統(tǒng)體系結(jié)構(gòu)基線,;移交階段:確保有一個實(shí)在的產(chǎn)品發(fā)布給用戶群。(5)RUP與UML之間關(guān)系:RUP與UML是一對“姐妹”,它們構(gòu)成了一種特定的軟件開發(fā)方法學(xué)。其中,UML作為一種可視化建模語言,給出了表達(dá)事物和事物之間關(guān)系的基本術(shù)語,給出了多種模型的表達(dá)工具;而RUP利用這些術(shù)語定義了需求獲取層、系統(tǒng)分析層、設(shè)計(jì)層、實(shí)現(xiàn)層,并給出了實(shí)現(xiàn)各層模型之間映射的基本活動以及相關(guān)指導(dǎo)。(6)核心工作流:需求獲??;分析;設(shè)計(jì);實(shí)現(xiàn);測試。(7)需求獲取目標(biāo):使用UML中的用況、參與者以及依賴等術(shù)語來抽象客觀實(shí)際問題,形成系統(tǒng)的需求獲取模型。(8)需求獲取開展的工作包括:1、列出候選的需求;2、理解系統(tǒng)語境;3、捕獲功能需求;4、捕獲非功能需求。(9)系統(tǒng)語境:包括領(lǐng)域模型(一般用類圖表示)或業(yè)務(wù)模型(業(yè)務(wù)用況模型和業(yè)務(wù)對象模型)。(10)建造一個系統(tǒng)需求獲取模型的活動和任務(wù),以及各活動的輸入和輸出?1、發(fā)現(xiàn)描述參與者和用況,輸入:業(yè)務(wù)模型或領(lǐng)域模型,補(bǔ)充需求,特征表;輸出:用況模型[概述],術(shù)語表;2、賦予用況優(yōu)先級:輸入:用況模型[概述],補(bǔ)充需求,術(shù)語表;輸出:體系結(jié)構(gòu)描述[用況模型視角];3、精化用況:輸入:用況模型[概述],補(bǔ)充需求,術(shù)語表;輸出:用況[精化];4、構(gòu)造人機(jī)接口原型:輸入:用況[精華],用況模型[概述],補(bǔ)充需求,術(shù)語表;輸出:人機(jī)接口原理;5、用況模型結(jié)構(gòu)化:輸入:用況[精華],用況模型[概述],補(bǔ)充需求,術(shù)語表;輸出:用況模型[精化]。(11)如何描述系統(tǒng)的參與者和用況?參與者:發(fā)現(xiàn)參與者與描述參與者:1)之前已經(jīng)存在業(yè)務(wù)用況模型,可依據(jù)業(yè)務(wù)模型直接發(fā)現(xiàn)一些候選參與者,2)沒有業(yè)務(wù)用況模型,即使存在領(lǐng)域模型,也需要系統(tǒng)分析人員與客戶一起來標(biāo)識系統(tǒng)參與者用況是系統(tǒng)向它的參與者提供結(jié)果(值)的功能塊,表達(dá)參與者使用系統(tǒng)的方式,因此一個用況可用于規(guī)約系統(tǒng)可執(zhí)行的、與參與者進(jìn)行交互的一個動作序列,包括其中一些可選動作序列,并且用況還有自己的屬性。(12)需求分析的目標(biāo):在系統(tǒng)用況模型的基礎(chǔ)上,創(chuàng)建系統(tǒng)分析模型以及在該分析模型視角下的體系結(jié)構(gòu)描述,系統(tǒng)分析模型是系統(tǒng)的一種概念模型,解決系統(tǒng)用況模型中存在的二義性和不一致性問題,并以一種系統(tǒng)化的形式準(zhǔn)確地表達(dá)用戶的需求。(13)需求分析階段的3個術(shù)語:分析包、分析類和用況細(xì)化。(14)分析類:是類的一種衍型,很少有操作和特征標(biāo)記,而用責(zé)任來定義其行為,并且其屬性和關(guān)系也是概念性的,包括:邊界類、實(shí)體類、控制類(15)用況細(xì)化:是一個針對一個用況,其行為可用多個分析類之間的相互作用來細(xì)化,并記為用況細(xì)化[分析](16)分析包:分析包是一種控制信息組織復(fù)雜性的機(jī)制,提供了分析制品的一種組織手段,形成了一些可管理的部分。(17)建造一個系統(tǒng)需求分析模型的活動和任務(wù),以及各活動的輸入和輸出?1、體系結(jié)構(gòu)分析:輸入:用況模型、補(bǔ)充需求、業(yè)務(wù)模型或領(lǐng)域模型、體系結(jié)構(gòu)描述[用況模型];輸出:分析包[概述]、分析類[概述]、體系結(jié)構(gòu)描述[分析];2、細(xì)化用況:輸入:用況模型、補(bǔ)充需求、業(yè)務(wù)模型或領(lǐng)域模型、體系結(jié)構(gòu)描述[分析];輸出:用況細(xì)化[分析]、分析類[概述];3、對類分析:輸入:用況細(xì)化[分析]、分析類[概述]輸出:分析類[完成];4、對包進(jìn)行分析:輸入:系統(tǒng)體系結(jié)構(gòu)描述[分析]、分析包[概述]輸出:分析類[完成]。(18)創(chuàng)建系統(tǒng)的分析模型,一般應(yīng)進(jìn)行體系結(jié)構(gòu)分析、用況分析、類的分析以及包的分析4項(xiàng)活動。(19)用況分析[分析]的目標(biāo):1、標(biāo)識那些在用況事件流執(zhí)行中所需要的分析類和對象;2、將用況的行為,分布到參與交互的各個分析對象;3、捕獲用況細(xì)化上的特定需求。(20)用況分析[分析]開展的活動包括:1、標(biāo)識分析類,標(biāo)識在細(xì)化一個用況中所需要的實(shí)體類、控制類和邊界類,給出它們的名字、責(zé)任、屬性和關(guān)系;2、描述分析(類)對象之間的交互,通常使用交互圖來描述。(21)類的分析[分析]的目標(biāo):1、標(biāo)識并維護(hù)分析類的責(zé)任;2、基于它們在用況細(xì)化中的角色,標(biāo)識并維護(hù)分析類的屬性和關(guān)系;3、捕獲分析類細(xì)化中的特定需求。(22)類的分析[分析]開展的活動包括:1、標(biāo)識責(zé)任;2、標(biāo)識屬性;3標(biāo)識關(guān)聯(lián)與聚合;(23)需求分析模型對以后開發(fā)工作的影響?1、對設(shè)計(jì)中子系統(tǒng)的影響。分析包一般將影響設(shè)計(jì)子系統(tǒng)的結(jié)構(gòu);2、對設(shè)計(jì)類的影響。分析包可以作為類設(shè)計(jì)時的規(guī)格說明;3、對用況細(xì)化[設(shè)計(jì)]的影響。用況細(xì)分[分析]對用況細(xì)化[設(shè)計(jì)]有兩方面影響,一個是它們有乃至于為用況創(chuàng)建更精確的規(guī)格說明,另一個是當(dāng)對用況進(jìn)行設(shè)計(jì)時,用況細(xì)化[分析]可作為其輸入。(24)需求獲取模型與需求分析模型之間比較?1、語言描述不同:客戶語言與開發(fā)語言;2、視圖:系統(tǒng)外與系統(tǒng)內(nèi);3、結(jié)構(gòu):使用用況予以結(jié)構(gòu)化,給出外部視角系統(tǒng)結(jié)構(gòu)與使用衍型類結(jié)構(gòu)化,給了部視角系統(tǒng)結(jié)構(gòu);4、作用:標(biāo)注“系統(tǒng)應(yīng)該做什么,不應(yīng)該做什么”與可以做出開發(fā)者理解系統(tǒng)如何勾畫、如何設(shè)計(jì)和如何實(shí)現(xiàn)基礎(chǔ);5、問題:捕獲系統(tǒng)功能,包括體系結(jié)構(gòu)方面具有意義的功能,可能存在冗余、不一致和沖突等問題與給出細(xì)化系統(tǒng)功能,包括在體系結(jié)構(gòu)方面具有意義的功能;6、定義一些進(jìn)一步需要在分析模型中予以分析用況與定義每一個用況細(xì)化。(25)RUP設(shè)計(jì)目標(biāo):定義滿足系統(tǒng)/產(chǎn)品分析模型所規(guī)約需求的軟件結(jié)構(gòu)。(26)RUP設(shè)計(jì)的基本術(shù)語:設(shè)計(jì)子系統(tǒng)、設(shè)計(jì)類、用況細(xì)化[設(shè)計(jì)]、接口。(27)RUP設(shè)計(jì)的軟件模型包括:1、部署模型;2、設(shè)計(jì)模型。(28)建造一個系統(tǒng)設(shè)計(jì)模型的活動和任務(wù),以及各活動的輸入與輸出?1、體系結(jié)構(gòu)設(shè)計(jì):輸入:用況模型、補(bǔ)充需求、分析模型、體系結(jié)構(gòu)描述[分析模型角度];輸出:子系統(tǒng)[概述]、接口[概述]、設(shè)計(jì)類[概述]、部署模型[概述]、體系結(jié)構(gòu)描述[設(shè)計(jì)];2、設(shè)計(jì)用況:輸入:用況模型、補(bǔ)充需求、分析模型、部署模型;輸出:用況[設(shè)計(jì)-實(shí)現(xiàn)]、設(shè)計(jì)類[概述]、子系統(tǒng)[概述]、接口[概述];3、類的設(shè)計(jì):輸入:用況[設(shè)計(jì)-實(shí)現(xiàn)]、設(shè)計(jì)類[概述]、接口[概述]、分析類[完成];輸出:設(shè)計(jì)類[完成];4、設(shè)計(jì)子系統(tǒng):體系結(jié)構(gòu)描述[設(shè)計(jì)]、子系統(tǒng)[概述]、接口[概述];輸出:子系統(tǒng)[完成]、接口[完成]。(29)用況的設(shè)計(jì)包括以下任務(wù):1、標(biāo)識參與用況細(xì)化的設(shè)計(jì)類;2、標(biāo)識參與用況細(xì)化的子系統(tǒng)的接口。(30)類的設(shè)計(jì)包括以下任務(wù):1、概括描述設(shè)計(jì)類;2、標(biāo)識操作;3、標(biāo)識屬性;4、標(biāo)識關(guān)聯(lián)、聚合;5、標(biāo)識泛化;6、描述方法;(31)RUP設(shè)計(jì)的突出優(yōu)點(diǎn):P165頁(32)RUP的設(shè)計(jì)模型包括以下元素:P165頁(33)RUP實(shí)現(xiàn)的目標(biāo):基于設(shè)計(jì)類和子系統(tǒng)生成構(gòu)件;對構(gòu)件進(jìn)行測試,進(jìn)行集成測試和連接;把可執(zhí)行的構(gòu)件映射到部署模型。(34)RUP實(shí)現(xiàn)包括以下活動:1、實(shí)現(xiàn)模型;2、實(shí)現(xiàn)子系統(tǒng);3、實(shí)現(xiàn)模型視角下的體系結(jié)構(gòu)描述;4、實(shí)現(xiàn)類;(35)RUP測試包括內(nèi)部測試、中間測試和最終測試。(36)RUP測試的主要活動:1、計(jì)劃測試;2、設(shè)計(jì)測試;3、實(shí)現(xiàn)測試;4、執(zhí)行集成測試;5、執(zhí)行系統(tǒng)測試;6、評價測試。軟件測試(1)兩種常用的軟件測試技術(shù):基于程序路徑的“白盒”測試技術(shù)和基于規(guī)約的“黑盒”測試技術(shù);“白盒”測試技術(shù),又稱為結(jié)構(gòu)測試技術(shù),典型的是路徑測試技術(shù);“黑盒”測試技術(shù),又稱為功能測試技術(shù),包括基于事務(wù)流的測試技術(shù)、狀態(tài)測試技術(shù)、定義域測試技術(shù)、等價類劃分、邊界值分析、因果圖。(2)測試的目標(biāo):1、預(yù)防錯誤;2、發(fā)現(xiàn)錯誤;(3)軟件測試:按照特定規(guī)程發(fā)現(xiàn)軟件錯誤的過程。(IEEE定義:使用人工或自動手段,運(yùn)行或測定某個系統(tǒng)的過程,其目的是檢驗(yàn)它是否滿足規(guī)定的需求,或清楚了解預(yù)期結(jié)果與實(shí)際結(jié)果之間的差異。)(4)軟件測試與調(diào)試的區(qū)別:1、測試從一側(cè)面證明程序員的“失敗”。調(diào)度為了證明程序員是正確的;2、測試以已知條件開始,使用預(yù)告定義的程序且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是否通過測試;3、測試是有計(jì)劃的,并要進(jìn)行測試設(shè)計(jì)。高度是不受時間約束的;4、測試是發(fā)現(xiàn)錯誤、改正錯誤、重新測試的過程。調(diào)試是一個推理過程;5、測試的執(zhí)行是有規(guī)程的。調(diào)試的執(zhí)行往往要求程序員進(jìn)行必要推理;6、測試經(jīng)常由獨(dú)立的測試組在不了解軟件技術(shù)的條件下完成的。高度必須由了解詳細(xì)設(shè)計(jì)的程序員完成;7、大多數(shù)測試的執(zhí)行和設(shè)計(jì)可由工具支持。調(diào)試時,程序員能利用的工具主要是調(diào)試器。(5)軟件測試過程模型:環(huán)境模型、對象模型和錯誤模型;這些模型在軟件測試中扮演了一種很重要的角色;這些模型的質(zhì)量,特別是程序模型的質(zhì)量,對發(fā)現(xiàn)錯誤具有關(guān)鍵性的作用。(6)路徑測試技術(shù)的基本要點(diǎn):1、采用控制流程圖來表達(dá)被測試的程序模型,提示程序中的控制結(jié)構(gòu);2、通過合理地選擇一組穿過程序的路徑,以達(dá)到某種測試度量。(7)控制流程圖:是一種表示程序控制結(jié)構(gòu)的圖形化工具,其基本元素是過程塊、節(jié)點(diǎn)、判定。(8)路徑測試技術(shù)的策略:語句覆蓋、分支覆蓋、條件覆蓋和條件組合覆蓋、路徑覆蓋。路徑覆蓋:執(zhí)行所有可能穿過程序控制流程的路徑;語句覆蓋:至少執(zhí)行程序中所有語句一次;分支覆蓋:至少將程序中的每一個分支執(zhí)行一次;條件覆蓋:指每個判定中的所有可能的條件取值至少執(zhí)行一次;條件組合覆蓋:設(shè)計(jì)足夠測試,使每個判定中的所有可能的條件聚會組合至少執(zhí)行一次。(9)測試覆蓋的基本關(guān)系:語句覆蓋<分支覆蓋<條件組合覆蓋<…路徑覆蓋。從上到下的覆蓋標(biāo)準(zhǔn)其檢錯能力也從弱到強(qiáng),其中條件組合發(fā)現(xiàn)錯誤的能力較強(qiáng),凡滿足其標(biāo)準(zhǔn)的測試用例,也必然滿足前四種覆蓋標(biāo)準(zhǔn)。在實(shí)際邏輯測試中,一般以條件組合覆蓋為主設(shè)計(jì)測試用例,然后再補(bǔ)充部分用例來達(dá)到路徑覆蓋的測試標(biāo)準(zhǔn)。(10)簡述白盒測試技術(shù)的要點(diǎn):白盒測試技術(shù)依據(jù)程序的邏輯結(jié)構(gòu),以控制流程圖作為被測對象建模工具,其中涉及過程塊、分支、節(jié)點(diǎn)、鏈以及路徑,并針對測試覆蓋率,給出了4種覆蓋策略:語名覆蓋、分支覆蓋、條件組合覆蓋和路徑覆蓋,它們之間具有偏序關(guān)系,并且可根據(jù)項(xiàng)目需求給出其他覆蓋策略。(11)路徑選取的一般原則:1、選擇最簡單的、具有一定功能含義的入口/出口路徑;2、在已選取的基礎(chǔ)上,選取無循環(huán)的路徑;選取短路徑、簡單路徑;3、選取沒有明顯功能含義的路徑,此時要研究這樣的路徑為什么存在,為什么沒有通過功能上合理的路徑得到覆蓋。(12)事務(wù)流測試技術(shù)中,采用事務(wù)流程圖作為表達(dá)被測試軟件模型的工具。(13)簡述事務(wù)流測試技術(shù)的要點(diǎn):P186頁(14)簡述程序流程圖與事務(wù)流程圖之間的主要區(qū)別?1、基本模型元素所表達(dá)的語義不同2、一個事務(wù)不等同于路徑測試中一條路徑,可能在中間某處就完成了某一用戶工作,終結(jié)了一個事務(wù)3、事務(wù)流程圖中的分支和節(jié)點(diǎn)可能是一個復(fù)雜的過程。(15)等價類劃分:是把軟件所有可能的輸入數(shù)據(jù),即軟件的輸入劃分成若干部分,形成一些等價類,即在一個部分中各個輸入數(shù)據(jù)對于發(fā)現(xiàn)軟件中錯誤的概率是一樣的,然后從每一部分中選取數(shù)據(jù)作為測試用例,進(jìn)行軟件測試。(16)劃分等價類的原則:1、如果輸入數(shù)據(jù)規(guī)定了取值范圍或值的個數(shù),則可以確定一個有效等價類和兩個無效等價類;2、如果規(guī)格說明規(guī)定了數(shù)據(jù)值的集合,或者是規(guī)定了“必須如何”的條件,這時可確定一個有效等價類和一個無效等價類;3、如果規(guī)格說明書中規(guī)定的是一個條件數(shù)據(jù),則可確定一個有效等價類和一個無效等價類;4、如果我們確知,已劃分的等價類中各元素在程序中的處理方式不同,則應(yīng)將此等價類進(jìn)一步劃分成更小的等價類。(17)等價類劃分方法選擇測試用例的原則:1、為每一個等價類規(guī)定一個唯一的編號;2、設(shè)計(jì)一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步,直到所有的有效等價都被覆蓋為止;3、設(shè)計(jì)一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步,直到所有的無效等價類都被覆蓋為止。(18)邊界值分析方法選擇測試用例原則?1、如果輸入數(shù)據(jù)規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界值,以及剛剛超越這個范圍邊界值作為測試輸入數(shù)據(jù);2、如果輸入數(shù)據(jù)規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多1、比最小個數(shù)少1的數(shù)作為測試數(shù)據(jù);3、根據(jù)規(guī)格說明的每個輸出數(shù)據(jù),使用前面的原則1;4、根據(jù)規(guī)格說明的每個輸出數(shù)據(jù),使用前面的原則2;5、如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選擇集合的第一個元素的最后一個元素作為測試用例;6、如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例;7、分析規(guī)格說明,找出其他可能的邊界條件。(19)因果圖:能夠有效地檢測輸入條件的各種組合可能會引起的錯誤。它的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)一個測試用例。(20)因果圖方法生成測試用例的步驟:P189頁(21)黑盒測試是把測試對象看作一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。(22)什么是白盒測試技術(shù)?有哪些覆蓋標(biāo)準(zhǔn)?白盒法測試法把測試對象看作一個打開的盒子,測試人員須了解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進(jìn)行測試,檢驗(yàn)內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實(shí)際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。白盒法有下列幾種覆蓋標(biāo)準(zhǔn):語句覆蓋:設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。判定覆蓋:設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。條件覆蓋:設(shè)計(jì)若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。判定/條件覆蓋:設(shè)計(jì)足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷中的每個條件的可能取值至少執(zhí)行一次。條件組合覆蓋:設(shè)計(jì)足夠的測試用例,運(yùn)行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。路徑覆蓋:設(shè)計(jì)足夠的測試用例,覆蓋程序中所有可能的路徑。(23)什么是黑盒測試技術(shù)?采用黑盒技術(shù)測試用例有哪幾種方法?這些方法各有什么特點(diǎn)?黑盒測試法把被測試對象看成是一個黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進(jìn)行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。采用黑盒技術(shù)測試用例的方法有:等價類的劃分:是將輸入數(shù)據(jù)按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試。這樣就把漫無邊際的隨機(jī)測試改為有針對性的等價類測試,用少量有代表性的例子代替大量測試目的相同的例子,能有效地提高測試效率。但這個方法的缺點(diǎn)是沒有注意選擇某些高效的、能夠發(fā)現(xiàn)更多錯誤的測試用例。邊界值分析法:是將測試邊界情況作為重點(diǎn)目標(biāo),選取正好等于、剛剛大于和剛剛小于邊界值的測試數(shù)據(jù)。因果圖:能夠有效地檢測輸入條件的各種組合可能會引起的錯誤。它的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)一個測試用例。(邊界情況是指輸入等價類和輸入等價類邊界上的情況。)這種方法可以查出更多的錯誤,因?yàn)樵诔绦蛑型谔幚磉吔缜闆r時易發(fā)生錯誤。(24)簡述單元測試、集成測試、有效性測試的含義及它們之間的區(qū)別?單元測試:主檢驗(yàn)軟件設(shè)計(jì)的最小單元――模塊。該測試以詳細(xì)設(shè)計(jì)文檔為指導(dǎo),測試模塊內(nèi)的重要控制路徑。集成測試:是軟件組裝的一個系統(tǒng)化技術(shù),其目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的錯誤;有效性測試:發(fā)現(xiàn)軟件實(shí)現(xiàn)的功能與需求規(guī)格說明書不一致的錯誤。(25)軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?軟件測試要經(jīng)過的步驟是:單元測試→集成測試→確認(rèn)測試→系統(tǒng)測試。單元測試:對源程序中每一個程序單元進(jìn)行測試,檢查各個模塊是否正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細(xì)設(shè)計(jì)文檔。集成測試:是為了檢查與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計(jì)是否合理有效。確認(rèn)測試:主要是檢查已實(shí)現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定了的各種需求。系統(tǒng)測試:是把已確認(rèn)的軟件與其他系統(tǒng)元素(如硬件、其他支持軟件、數(shù)據(jù)、人工等)結(jié)合在一起進(jìn)行測試。以確定軟件是否可以支付使用。第七章軟件生存周期過程與管理(1)軟件生存周期過程:軟件生存周期是軟件產(chǎn)品或系統(tǒng)的一系列相關(guān)活動的全周期。從形成概念開媽,歷經(jīng)開發(fā)、交付使用、在使用中不斷修訂和演化,直到最后被淘汰,讓位于新的軟件產(chǎn)品。(2)軟件生存周期模型:是一個包括軟件產(chǎn)品開發(fā)、運(yùn)行和維護(hù)中有關(guān)過程、活動和任務(wù)的框架,覆蓋了從該系統(tǒng)的需求定義到系統(tǒng)的使用終止。(3)簡述軟件開發(fā)中的過程類,以及它們的基本作用和它們之間的基本關(guān)系?答:分為3類。1、基本過程:那些軟件生產(chǎn)直接相關(guān)的活動集,分5個過程:獲取過程、供應(yīng)過程、開發(fā)過程、運(yùn)行過程和維護(hù)過程;2、支持過程:有關(guān)各方面按他們的目標(biāo)所從事的一系列相關(guān)支持活動集,有助于提高系統(tǒng)或軟件產(chǎn)品的質(zhì)量,分為:文檔過程、配置管理過程、質(zhì)量保證過程、驗(yàn)證過程、確認(rèn)過程、聯(lián)合評審過程、審計(jì)過程和問題解決過程等;3、組織過程:與軟件生產(chǎn)組織有關(guān)的活動集,分管理過程、基礎(chǔ)設(shè)施過程、培訓(xùn)過程、改進(jìn)過程(4)ISO/IEC12207-2008標(biāo)準(zhǔn)的內(nèi)容:1、為獲取方獲取一個軟件產(chǎn)品或服務(wù),為供應(yīng)方開發(fā)、運(yùn)行、維護(hù)、提供和銷毀一個軟件產(chǎn)品,建立了一種軟件生存周期框架,包含過程、活動和任務(wù),并通過過程分類、過程描述,給出它們之間的內(nèi)在關(guān)系;2、為軟件生存周期過程的定義、控制和改進(jìn)提供了一個過程,即生存周期模型管理過程。(5)系統(tǒng)語境的過程類包括:協(xié)議過程組;項(xiàng)目過程組;技術(shù)過程組;組織上項(xiàng)目使能過程組。(6)針對軟件開發(fā)的過程類包括:軟件實(shí)現(xiàn)過程組;軟件支持過程組;軟件復(fù)用過程組。(7)ISO/IEC12207-2008如何描述一個過程?每個過程都要有其意圖和結(jié)果,以便支持過程評估。一個過程至少要有一個活動。活動是由一組相關(guān)的任務(wù)構(gòu)成的。任務(wù)是實(shí)施一個過程的詳細(xì)工作。為了支持評估工作,該標(biāo)準(zhǔn)把任務(wù)分為3種形式:一是達(dá)到相應(yīng)過程結(jié)果必須執(zhí)行的任務(wù);二是達(dá)到相應(yīng)過程結(jié)果最好要執(zhí)行的任務(wù);三是達(dá)到相應(yīng)過程結(jié)果允許執(zhí)行的任務(wù)。(8)軟件生存周期模型主要包括:瀑布模型,增量模型,演化模型,螺旋模型,噴泉模型。(9)簡述瀑布模型以及可適應(yīng)的情況。瀑布模型將軟件生存周期的各項(xiàng)活動規(guī)定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到產(chǎn)品。適應(yīng)情況:需求已被很好的理解,并且開發(fā)組織非常熟悉為實(shí)現(xiàn)這一模型所需求的過程。(10)瀑布模型的優(yōu)缺點(diǎn)?優(yōu)點(diǎn):1、可強(qiáng)迫開發(fā)人員采用規(guī)范化的方法;2、嚴(yán)格地規(guī)定了每個階段必須提交的文檔;3、要求每個階段交出的所有產(chǎn)品都必須是經(jīng)過驗(yàn)證的。缺點(diǎn):1、由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要;2、瀑布模型只用于開始時需求已確定的情況。(11)增量模型的優(yōu)缺點(diǎn):優(yōu)點(diǎn):1、第一個可交付版本所需要的成本和時間是較少的,從而可減少開發(fā)由增量表示的小系統(tǒng)承擔(dān)的風(fēng)險;2、由于很快發(fā)布第一個版本,因此可以減少用戶需求的變更;3、允許增量投資,即在項(xiàng)目開始時可以僅對一個或兩個增量投資。缺點(diǎn):1、如果沒有對用戶的變更要求進(jìn)行規(guī)劃,那么產(chǎn)生的初始增量可能會造成后來增量的不穩(wěn)定。2、如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布。3、由于進(jìn)度和配置的復(fù)雜性,可能會增大管理成本,超出組織的能力。(12)演化模型:主要針對事先不能完整定義需求的軟件開發(fā)。(13)螺旋模型:是瀑布模型與演化模型的基礎(chǔ)上,加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模型。(14)簡述螺旋模型與其它模型之間的主要區(qū)別?1、螺旋模型關(guān)注解決問題的基本步驟,即標(biāo)識問題,標(biāo)識一些可選方案,選擇一個最佳方案,遵循動作步驟并實(shí)施后續(xù)工作,突出特征,在開發(fā)的迭代中實(shí)際上只有一個迭代過程真正開發(fā)了可交付的軟件;2、與深化模型和增量模型相比,同樣使用了瀑布模型作為一個嵌入的過程,即分析、設(shè)計(jì)、編碼、實(shí)現(xiàn)和維護(hù)的過程,并且在框架和全局體系結(jié)構(gòu)方面是等同的。但是,螺旋模型所關(guān)注的階段以及它們的活動是不同的,如增加一些管理活動和支持活動。盡管增量模型也有一些管理活動,但它基于以下假定:需求是最基本的、并且是唯一的風(fēng)險源,因而在螺旋模型中增大了決策和風(fēng)險的空間,螺旋模型擴(kuò)大了增量模型的管理范圍。

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論