《軟件工程》是計算機應(yīng)用專業(yè)(本科)非常重要的一門專業(yè)課,該課程包括筆試和試驗兩部分,并且也是課程設(shè)計的科目之一。學(xué)習(xí) 《軟件工程》,考生不僅需要掌握至少一門程序設(shè)計語言,還需要對數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、操作系統(tǒng)等課程有一定的了解,可以說綜合性很強。
從2002年起,《軟件工程》的教材改由北京大學(xué)出版,相應(yīng)的考試命題工作,也改由北京大學(xué)負責(zé)。
為了廣大考生能更好的學(xué)習(xí)《軟件工程》,我總結(jié)了全書的基礎(chǔ)知識點、歷年考試題型、試驗題目于下,希望可以幫助大家完成《軟件工程》的學(xué)習(xí)。
學(xué)習(xí)《軟件工程》必備書籍:
1.教材,《軟件工程》(黑皮),北京大學(xué)出版,2002年,王立福等
2輔導(dǎo),《計算機上機實驗考試應(yīng)試指導(dǎo)》(藍皮),北京大學(xué)出版,2003年,孫家肅
《軟件工程》筆試分為理論部分和設(shè)計部分,比例大致相當,在下面的復(fù)習(xí)大綱中將隨即提到,不再細分。另外,實驗部分也會在文中提及,希望讀者注意。
第一章 軟件工程概論
1. 軟件工程的目的:
倡導(dǎo)以工程的原理、原則和方法進行軟件開發(fā),以解決當時出現(xiàn)的軟件危機。
2. 軟件危機:
在計算機軟件開發(fā)和維護過程中所遇到的一系列問題。
3. 軟件及組成:
計算機系統(tǒng)中的程序和文檔稱為軟件,程序是計算機任務(wù)的處理對象和處理規(guī)則的描述,文檔是為了理解程序所需的闡述性資料。
4. 軟件工程定義:
軟件工程是一類求解軟件的工程,它應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法,創(chuàng)建軟件以達到提高質(zhì)量、降低成本的目的。其中,計算機科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計范型、評估成本及確定權(quán)衡,管理科學(xué)用于計劃、資源、質(zhì)量、成本等管理。軟件工程是一門指導(dǎo)計算機軟件開發(fā)和維護的工程學(xué)科。
5. 軟件工程框架及其內(nèi)容:
目標、活動和原則。軟件工程的目標為,生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。軟件工程活動定義為,生產(chǎn)一個最終滿足需求且達到工程目標的軟件產(chǎn)品所需要的步驟,主要包括需求、設(shè)計、實現(xiàn)、確認以及支持等活動。軟件工程設(shè)計原則為,選取適宜的開發(fā)模型,采用合適的設(shè)計方法,提供高質(zhì)量的工程支持,重視開發(fā)過程的管理。(參考教材教材第2頁圖1.1,更有利于記憶)
6. 軟件工程研究的內(nèi)容:
軟件開發(fā)模型、軟件開發(fā)方法、軟件過程、軟件工具、軟件開發(fā)環(huán)境、計算機輔助軟件工程(CASE)、軟件經(jīng)濟學(xué)等。
7. 軟件開發(fā)方法學(xué)定義:
是一種已定義好的技術(shù)集和符號表示習(xí)慣,來組織軟件開發(fā)的過程,一般表示為一系列步驟,包括結(jié)構(gòu)化方法、面向?qū)ο蠓椒āackson方法等等。
第二章 軟件開發(fā)模型
1. 軟件開發(fā)模型定義:
是軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架。
2. 瀑布模型內(nèi)容及特點:
瀑布模型將軟件生存周期的各項活動規(guī)定為依固定順序連接的軟干階段工作,是一種線性模型。各階段活動為,提出系統(tǒng)需求、提出軟件需求、需求分析、設(shè)計、編碼、測試和運行。每個開發(fā)階段具有以下特征,從上一階段接受本階段工作的對象作為輸入,對上述輸入實施本階段的活動,給出本階段的工作成果作為輸出傳入下一階段,對本階段工作進行評審,若本階段工作得到確認,則繼續(xù)下階段工作,否則返回前一階段甚至更前階段。瀑布模型最為突出的缺點是該模型缺乏靈活性。
3. 演化模型內(nèi)容及特點:
演化模型主要針對事先不能完整定義需求的軟件開發(fā),其開發(fā)過程一般是首先開發(fā)核心系統(tǒng),當核心系統(tǒng)投入運行后,軟件開發(fā)人員根據(jù)用戶的反饋,實施開發(fā)的迭代過程,每一迭代過 程均由需求、設(shè)計、編碼、測試、集成等階段組成,直到軟件開發(fā)結(jié)束。演化模型在一定程度上減少了軟件開發(fā)活動的盲目性。
4. 螺旋模型內(nèi)容及特點:
它是在瀑布模型和演化模型的基礎(chǔ)上,加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模型。沿螺旋模型順時針方向,依次表達了四個方面的活動,制定
計劃、風(fēng)險分析、實施工程、客戶評估。
5. 噴泉模型內(nèi)容及特點:
它體現(xiàn)了軟件創(chuàng)建所固有的迭代和無間隙特征,噴泉模型主要用于支持面向?qū)ο箝_發(fā)過程。
6. 增量模型內(nèi)容:
在設(shè)計了軟件系統(tǒng)整體體系結(jié)構(gòu)之后,首先完整的開發(fā)系統(tǒng)的一個初始子集,繼之,根據(jù)這一子集,建造一個更加精細的版本,如此不斷的進行系統(tǒng)的增量開發(fā)。
7. 瀑布模型、演化模型、螺旋模型之間的聯(lián)系:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟件,演化模型分為多次完成,每次迭代完成軟件的一個部分,螺旋模型也分為多次完成,每次完成軟件的一個新原型,并考慮風(fēng)險分析。
8. 演化模型和增量模型之間的區(qū)別
演化模型首先開發(fā)核心系統(tǒng),每次迭代為系統(tǒng)增加一個子集,整個系統(tǒng)是增量開發(fā)和增量提交,增量模型首先完整的開發(fā)系統(tǒng)的一個初始子集,然后不斷的建造更精細的版本。
第三章 結(jié)構(gòu)化設(shè)計
1. 軟件設(shè)計階段的主要任務(wù)、方法、階段:
需求分析階段的主要任務(wù)是確定系統(tǒng)必須“做什么”,形成軟件的需求規(guī)格說明書,軟件設(shè)計階段的主要任務(wù)是確定系統(tǒng)“怎么做”,從軟件需求規(guī)格說明書出發(fā),形 成軟件的具體設(shè)計方案,軟件設(shè)計可以采用多種方法,如結(jié)構(gòu)化設(shè)計方法、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法、面向?qū)ο蟮脑O(shè)計方法等,結(jié)構(gòu)化軟件設(shè)計可以分為總體設(shè)計和詳細設(shè)計兩個階段。
2. 總體設(shè)計階段的主要任務(wù)及其內(nèi)容:
總體設(shè)計階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖(MSD),在結(jié)構(gòu)圖中矩形表示功能單元,稱為“模塊”,連接上下層模塊的線段表示它們之間的調(diào)用關(guān)系,在總體設(shè)計階段,每個模塊還處于黑盒子級,模塊通過外部特征標識,名字、輸入、輸出。
3. 總體設(shè)計的表示形式及其內(nèi)容(層次圖、HIPO圖、結(jié)構(gòu)圖):
層次圖是軟件總體設(shè)計階段最常使用的表示形式之一,用來描繪軟件的層次結(jié)構(gòu),圖中的每個方框代表一個模塊,方框間的連線表示模塊的調(diào)用關(guān)系,層次圖很適合于在自頂向下設(shè)計軟件的過程中使用;
HIPO圖是由美國IBM公司發(fā)明的“層次圖+輸入/處理/輸出圖”的英文縮寫,HIPO圖實際上由H圖和IPO圖兩部分組成,H圖就是上面提到的層次圖,為了能使HIPO圖具有可跟蹤性,在H圖里除了最頂層的方框之外,每個方框都加了編號;
結(jié)構(gòu)圖和層次圖類似,圖中每個方框代表一個模塊,方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系,在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息,尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。
4. 模塊及其組成:
模塊是執(zhí)行一個特殊任務(wù)或?qū)崿F(xiàn)一個特殊的抽象數(shù)據(jù)類型的一組例程和數(shù)據(jù)結(jié)構(gòu),模塊由兩部分組成,接口和實現(xiàn)模塊功能的執(zhí)行機制。
5. 面向數(shù)據(jù)流的設(shè)計方法(綜合應(yīng)用):
面向數(shù)據(jù)流的設(shè)計方法把數(shù)據(jù)流圖映射成為軟件結(jié)構(gòu),數(shù)據(jù)流圖的類型決定了映射的方法,數(shù)據(jù)流圖可以分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,具有較明顯的輸入、變換(或稱主加工)和輸出界面的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖,數(shù)據(jù)沿輸入通路到達一個處理模塊,這個處理模塊根據(jù)輸入數(shù)據(jù)的類型在若干動作序列中選出一個來執(zhí)行,這類數(shù)據(jù)流圖稱為事務(wù)型數(shù)據(jù)流圖,并且稱這個模塊為事務(wù)中心,它完成如下任務(wù),接收輸入數(shù)據(jù)、分析數(shù)據(jù)并確定數(shù)據(jù)類型、根據(jù)數(shù)據(jù)類型選取一條活動通路。
6. 評價軟件設(shè)計質(zhì)量的主要準則(模塊化、抽象、耦合、內(nèi)聚)及詳細內(nèi)容:
模塊化是好的軟件設(shè)計的一個基本準則;
抽象就是抽出事務(wù)的本質(zhì)特性而暫時不考慮它們的細節(jié),模塊是按照不同的抽象級別安排的,高層抽象模塊向讀者隱藏了功能實現(xiàn)的細節(jié),這就是信息隱蔽,模塊之間相互隱藏自身的實現(xiàn)細節(jié)對一個好的設(shè)計來說是至關(guān)重要的;
耦合是對不同模塊之間相互依賴程度的度量,緊密耦合是指兩個模塊之間存在著很強的依賴關(guān)系,松散耦合是指兩個模塊之間存在一些依賴關(guān)系,但他們之間的連接比較弱,無耦合是指模塊之間根本沒有任何連接;
耦合的強度依賴于以下四個因素,一個模塊對另一個模塊的引用,一個模塊向另一個模塊傳遞的數(shù)據(jù)量,一個模塊施加到另一個模塊的控制的數(shù)量,模塊之間接口的復(fù)雜程度;
從強到弱的幾種常見的耦合類型,內(nèi)容耦合,一個模塊直接修改或操作另一個模塊的數(shù)據(jù);公共耦合,兩個以上的模塊共同引用一個全局數(shù)據(jù)項;控制耦合,一個模塊在界面上傳遞一個信號控制另一個模塊,接收信號的模塊的動作根據(jù)信號值進行調(diào)整,稱為控制耦合;標記耦合,若兩個模塊至少有一個通過界面?zhèn)鬟f的公共參數(shù)包含內(nèi)部結(jié)構(gòu);數(shù)據(jù)耦合,模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù),數(shù)據(jù)耦合是最簡單的耦合形式,系統(tǒng)中至少必須存在這種類型的耦合;
內(nèi)聚度量的是一個模塊內(nèi)部各成分之間相互關(guān)聯(lián)的強度,如果一個模塊的所有成分都直接參與并且對于完成同一功能來說都是最基本的,則該模塊是高內(nèi)聚的;
從低到高的幾種常見的內(nèi)聚類型,偶然內(nèi)聚,一個模塊的各個成分之間毫無關(guān)系;邏輯內(nèi)聚,幾個邏輯上相關(guān)的功能被放在同一模塊中;時間內(nèi)聚,一個模塊完成的功能必須在同一時間內(nèi)執(zhí)行,但這些功能只是因為時間因素關(guān)聯(lián)在一起;過程內(nèi)聚,一個模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行;通信內(nèi)聚,一個模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集;順序內(nèi)聚,一個模塊的各個成分和同一個功能密切相關(guān),而且一個成分的輸出作為另一個的成分;功能內(nèi)聚,最理想的內(nèi)聚是功能內(nèi)聚,模塊的所有成分對于完成單一的功能都是基本的;
內(nèi)聚和耦合是密切相關(guān)的,在進行軟件設(shè)計時,應(yīng)力爭做到強內(nèi)聚、弱耦合。
7. 結(jié)構(gòu)化設(shè)計的啟發(fā)式規(guī)則:
改進軟件結(jié)構(gòu)提高模塊獨立性,模塊規(guī)模應(yīng)該適中,深度、寬度、扇入和扇出應(yīng)適中,模塊的作用域應(yīng)該在控制域之內(nèi),力爭降低模塊接口的復(fù)雜性,模塊功能應(yīng)該可以預(yù)測;
模塊的作用域定義為受該模塊內(nèi)一個判定影響的所有模塊的集合,模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合。
8. 結(jié)構(gòu)化分析與結(jié)構(gòu)化設(shè)計的區(qū)別:
結(jié)構(gòu)化分析得到數(shù)據(jù)流圖、數(shù)據(jù)字典等,屬于邏輯模型,結(jié)構(gòu)化設(shè)計得到模塊結(jié)構(gòu)圖,屬于程序模型。
9. 詳細設(shè)計階段的目標、表現(xiàn)、內(nèi)容:
詳細設(shè)計階段的根本目標是確定怎樣具體的實現(xiàn)所要求的系統(tǒng),詳細設(shè)計以總體設(shè)計階段的工作為基礎(chǔ),但又不同于總體設(shè)計,主要表現(xiàn)在,在總體設(shè)計階段,數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以比較抽象的方式描述,詳細設(shè)計要提供關(guān)于算法的更多細節(jié);
詳細設(shè)計的模塊包含實現(xiàn)對應(yīng)的總體設(shè)計的模塊所需要的處理邏輯,主要有,詳細的算法,數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu),實施的功能和使用的數(shù)據(jù)之間的關(guān)系。
10.結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),結(jié)構(gòu)化設(shè)計的目標:
結(jié)構(gòu)化程序設(shè)計技術(shù)采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)三種結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計的目標之一是使程序的控制流程線性化,即程序的動態(tài)執(zhí)行順序符合靜態(tài)書寫結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計的觀點是要求設(shè)計好結(jié)構(gòu)的程序。
11.詳細設(shè)計的任務(wù),詳細設(shè)計的工具及其內(nèi)容特點:
詳細設(shè)計的任務(wù)是給出軟件模塊結(jié)構(gòu)中各個模塊的內(nèi)部過程描述,也就是模塊內(nèi)部的算法設(shè)計,詳細設(shè)計的工具可以分為圖形、表格、語言三種,包括程序流程圖、盒圖(N-S圖)、PAD圖、類程序設(shè)計語言(PDL);
程序流程圖中使用的主要符號包括順序、選擇、循環(huán)結(jié)構(gòu),它的主要缺點如下,程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早的考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu),程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制,程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu);
PAD是問題分析圖的英文縮寫,它用二維樹形結(jié)構(gòu)的圖表示程序的控制流,PAD圖的主要優(yōu)點如下,使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號所設(shè)計出來的程序必然是結(jié)構(gòu)化程序,PAD圖所描述的程序結(jié)構(gòu)十分清晰,用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記,很容易將PAD圖轉(zhuǎn)換成高級語言源程序,既可用于表示程序邏輯,也可用于描述數(shù)據(jù)結(jié)構(gòu),PAD圖的符號支持自頂向下逐步求精的使用,PAD圖是面向高級程序設(shè)計語言的;
類程序設(shè)計語言也稱為偽碼,它是用正文形式表示數(shù)據(jù)結(jié)構(gòu)和處理過程的設(shè)計工具,PDL具有以下特點,關(guān)鍵字的固定語法,提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的手段,自然語言的自由語法,用于描述處理過程和判定條件,數(shù)據(jù)說明的手段,既包括簡單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu),模塊定義和調(diào)用的技術(shù),提供各種 接口描述模式;
PDL作為一種設(shè)計工具有如下一些優(yōu)點,可以作為注釋直接插在源程序中間,可以使用普通的正文編輯程序或文字處理系統(tǒng),很方面的完成PDL的書寫和編輯工作,已經(jīng)有自動處理程序存在,而且可以自動由PDL生成程序代碼,PDL的缺點是不如圖形工具形象直觀,描述復(fù)雜的條件組合與動作間的對應(yīng)關(guān)系時,不如判定表或判定樹清晰簡單。
本章設(shè)計題為DFD到模塊結(jié)構(gòu)圖的轉(zhuǎn)換和詳細設(shè)計工具的具體應(yīng)用,為筆試和試驗的必考題型,非常重要,請考生參考輔導(dǎo)第256頁(1)~(7)題,務(wù)必每一種題型都熟練掌握。
第四章 面向?qū)ο蠓椒?/p>
1.基本概念:
(1)對象 在系統(tǒng)分析和系統(tǒng)構(gòu)造中,對象是對客觀世界事務(wù)的一種抽象,是由數(shù)據(jù)(屬性)及其上操作(行為)組成的封裝體。
(2)類 是具有相同結(jié)構(gòu)、行為和關(guān)系的一組對 象的描述。
(3)屬性 每一對象的屬性是一些有著確定值的、用于描述對象狀態(tài)信息的數(shù)據(jù)。
(4)服務(wù) 為了完成某一任務(wù),一個對象所提供的、并體現(xiàn)其責(zé)任的操作。
(5)消息 一個對象為實現(xiàn)其責(zé)任而與其他對象的通信,在面向?qū)ο蠓椒ㄖ校瑢ο笾g只能通過消息進行通信。
(6)繼承 表達類之間相似性的一種機制,即在已有的類的基礎(chǔ)之上增量構(gòu)造新的類,前者稱為父類(或超類),后者稱為子類,如果子類只從一個父類繼承,則稱為單繼承,如果子類從一個以上父類繼承,則稱為多繼承。
(7)操作 是類的實例被要求執(zhí)行的服務(wù)。
(8)關(guān)聯(lián) 把一組具有相同結(jié)構(gòu)特性、行為特征和語義的鏈的描述稱為關(guān)聯(lián)。
(9)鏈 是對象引用的元組(列表)。
(10)依賴 一個依賴規(guī)約了兩個模型元素(或兩個模型元素集合)之間的一種語義關(guān)系。
(11)狀態(tài) 一個狀態(tài)是在對象的生命期內(nèi)的一個條件,或在對象滿足某個條件,進行某個動作或等待某個事件的期間內(nèi)的一個交互。
(12)事件 指可以引發(fā)狀態(tài)轉(zhuǎn)換的所發(fā)生的事情。
2.對象的特點:
自治性,對象具有一定的獨立計算能力,封閉性,對象具有信息隱蔽的能力,通信性,對象具有與其他對象通信的能力。
3.面向?qū)ο蠓椒ㄍY(jié)構(gòu)化方法的比較:
結(jié)構(gòu)化方法強調(diào)過程抽象和模塊化,將現(xiàn)實世界映射為數(shù)據(jù)流和加工,加工之間通過數(shù)據(jù)流進行通信,數(shù)據(jù)作為被動的實體被主動地操作所加工,是以過程(或操作)為中心來構(gòu)造系統(tǒng)和設(shè)計程序的;
面向?qū)ο蠓椒ò咽澜缈闯墒仟毩ο蟮募希瑢ο髮?shù)據(jù)和操作封裝在一起,提供有限的接口,其內(nèi)部的實現(xiàn)細節(jié)、數(shù)據(jù)結(jié)構(gòu)及對它們的操作是外部不可見的,對象之間通過消息相互通信,面向?qū)ο蠓椒ň哂械睦^承性和封裝性支持軟件復(fù)用,并易于擴充,能較好的適應(yīng)復(fù)雜大系統(tǒng)不斷發(fā)展和變化的要求。
4.Coad-Yourdon方法:
該方法認為,人類在認識和理解現(xiàn)實世界的過程中,普遍運用著下面三個構(gòu)造法則,區(qū)分對象及其屬性,區(qū)分整體對象及其組成部分,不同對象類的形成及區(qū)分。
5.面向?qū)ο蠓椒ǚ治鲭A段的五個主要活動及其內(nèi)容:
標識類及對象、標識結(jié)構(gòu)、標識主體、定義屬性及實例連接、定義服務(wù)及消息連接;
兩層矩形符號表示類及對象,內(nèi)層矩形表示類,分為三部分,類名、屬性名、服務(wù)名,外層矩形表示該類的對象;
標識的結(jié)構(gòu)有兩種,一般/特殊結(jié)構(gòu)和整體/部分結(jié)構(gòu);
精煉主題可以從問題域和接口復(fù)雜性兩方面入手;
可以從四方面考慮標識屬性,原子概念,規(guī)范化,標識機制,保持一個可導(dǎo)出的屬性。
6.面向?qū)ο笤O(shè)計(OOD):
OOD分為四部分,問題域部分,保持系統(tǒng)總體結(jié)構(gòu)的穩(wěn)定性,人機交互部分,任務(wù)管理部分,簡化總體設(shè)計和編碼,數(shù)據(jù)管理部分,包括數(shù)據(jù)存放方法的設(shè)計和相應(yīng)服務(wù)的設(shè)計。
7.三種面向?qū)ο蟮脑O(shè)計模型(OSA模型):
對象關(guān)系模型、對象行為模型、對象相互作用模型。
8.面向?qū)ο笾刑厥獾年P(guān)系集合:
一般關(guān)系(is a),一個對象類中的每一對象是另一對象類的一個對象,聚合關(guān)系(is part of),一個對象,稱之為聚合,是由一些稱之為成分的對象構(gòu)成的,聯(lián)合關(guān)系(is member of),該關(guān)系用于生成一個由對象構(gòu)成的集合,并把該集合看作是一個對象,is member of關(guān)系總是二元關(guān)系;
成員類
是聯(lián)合的子集,對象是成員類的子集,對象是聯(lián)合子集的子集。
9.對象關(guān)系模型圖(ORM),對象行為模型,對象交互模型:
對了構(gòu)造ORM圖,OSA給出了五個基本概念,對象、關(guān)系、對象類、關(guān)系集合、約束為了構(gòu)造對象行為模型,OSA集中于三個基本概念,狀態(tài)、觸發(fā)、動作,OSA借助于狀態(tài)網(wǎng),描述對象間 的同步交互。
10.統(tǒng)一軟件開發(fā)過程(USDP)及其階段:
USDP是以用況為驅(qū)動的、以體系結(jié)構(gòu)為中心的、迭代、增量的過程,分為初始、細化、構(gòu)造、移交四個階段。
本章設(shè)計題為標識類、對象,及其屬性與操作等,一般與DFD建模題在一起,考參考輔導(dǎo)
第264頁建模題的第2問,另外,對象標識在試驗考試中也會出現(xiàn),希望考生多加練習(xí),重點掌握。
本章的理論比較靈活,需理解的記憶,考試的時候要做到舉一反三,不能只局限于文字定義。
第五章 軟件測試
1.兩種常用的測試技術(shù):
軟件產(chǎn)品與其他產(chǎn)品不同,其最大的成本是檢驗軟件的錯誤、修正錯誤的成本,以及為了發(fā)現(xiàn)這些錯誤所進行的設(shè)計測試程序和運行測試程序的成本,兩種常用的測試技術(shù)為,基于“白盒” 的路徑測試技術(shù)和基于“黑盒”的事務(wù)處理流程測試技術(shù),白盒測試技術(shù)依據(jù)的是程序的邏輯結(jié)構(gòu),黑盒測試技術(shù)依據(jù)的是軟件行為的描述。
2.軟件測試及其目標:
軟件測試可以定義為,按照規(guī)定規(guī)程,發(fā)現(xiàn)軟件錯誤的過程,軟件測試有兩個目標,一為預(yù)防錯誤,二為發(fā)現(xiàn)錯誤。
3.軟件測試和軟件調(diào)試的區(qū)別:
測試從一個側(cè)面證明程序員的“失敗”,而調(diào)試是為了證明程序員的正確,測試以已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序員是否通過測試,調(diào)試一般是以不可知的內(nèi)部條件開始,除統(tǒng)計性調(diào)試外,結(jié)果是不可預(yù)見的,測試是有計劃的,并要進行測試設(shè)計,而調(diào)試是不受時間約束的,測試是一個發(fā)現(xiàn)錯誤、改正錯誤、重新測試的過程,而調(diào)試是一個推理過程,測試的執(zhí)行是有規(guī)程的,而調(diào)試的執(zhí)行往往要求程序員進行必要推理以至直覺的“飛躍”,測試經(jīng)常是由獨立的測試組在不了解軟件的條件下完成的,而調(diào)試必須由了解詳細設(shè)計的程序員完成,大多數(shù)測試的執(zhí)行和設(shè)計可由工具支持,而調(diào)試時,程序員能利用的工具主要是調(diào)試器。
4.測試用例:
指的是為了發(fā)現(xiàn)程序中的故障而專門設(shè)計的一組或多組數(shù)據(jù)。
5.測試過程模型:
環(huán)境模型、對象模型、錯誤模型。
6.軟件錯誤類別:
結(jié)構(gòu)錯誤、數(shù)據(jù)錯誤、編程錯誤、接口錯誤。
7.控制流程圖及組成:
控制流程圖是程序控制結(jié)構(gòu)的圖形表示,其基本元素是過程塊、節(jié)點、判定,控制流程圖與程序流程圖之間的差異是在控制流程圖中,不顯示過程塊的細節(jié),而在程序流程圖中,著重于過程屬性的描述。
8.路徑測試的基本策略:
路徑測試技術(shù)的三種基本策略為,路徑測試(PX),執(zhí)行所有可能的穿過程序的控制流程路徑,語句測試(P1),至少執(zhí)行程序中所有語句一次,100%語句覆蓋率(C1)的邏輯覆蓋程序最弱,分支測試(P2),至少執(zhí)行程序中每一分支一次(至少每個判定都獲得一次“真”和“假”),100%分支覆蓋率(C2)比100%語句覆蓋在邏輯上要強,條件組合測試,在邏輯上比C1,C2更強。
9.路徑選取的一般規(guī)則:
選取最簡單的、具有一定功能含義的入口/出口路徑,對已選的路徑進行演化,選取無循環(huán)的路徑、短路徑、簡單路徑,選取沒有明顯功能含義的路徑。
10.路徑測試的目標:
執(zhí)行足夠的測試,以確保最小的C1+C2覆蓋率。
11.事務(wù)處理流程圖與控制流程圖的區(qū)別與聯(lián)系:
事務(wù)處理流程圖與控制流程圖的類同點是使用了相同的概念成分,不同之處是事務(wù)流程圖是一種數(shù)據(jù)流程圖,鏈支和過程塊的定義有所差異,另外事務(wù)流程圖的判定節(jié)點可能是一個復(fù)雜的過程,從而事務(wù)流程圖中的判定只能是“抽象”,第三點不同之處是事務(wù)流程圖中存在“中斷”的作用,中斷可以把一個過程等價的變換為具有繁多出口的鏈支,對此也要予以抽象。
12.事務(wù)處理流程測試的步驟:
獲得事務(wù)處理流程圖,瀏覽、復(fù)審,用例設(shè)計。
13.事務(wù)處理流程測試要解決的問題:
路徑選取、激活、測試設(shè)備、測試數(shù)據(jù)庫。
14.合理的測試序列:
單元測試、集成測試、有效性測試、系統(tǒng)測試。
15.單元測試及其內(nèi)容:
單元測試主要檢驗軟件設(shè)計的最小單位—模塊,單元測試一般采用白盒測試技術(shù),在單元測試期間,通常考慮模塊的四個特征,模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、“重要的”執(zhí)行路徑、錯誤執(zhí)行路徑,單元測試步驟分四部分,首先測試穿過模塊接口的數(shù)據(jù)流,繼之進行數(shù)據(jù)結(jié)構(gòu)的測試,還要進行執(zhí)行路徑的選擇測試,邊界測試是單元測試中的最后工作,也是最重要的工作。
16.集成測試及其內(nèi)容:
集成測試是軟件組裝的一個系統(tǒng)化技術(shù),其目標是發(fā)現(xiàn)與接口有關(guān)的 錯誤,集成測試是以主控模塊為測試驅(qū)動模塊,設(shè)計承接模塊替代其直接的下屬模塊,依據(jù)所選取的測試方式,在組合模塊時進行測試。
17.有效性測試及其手段:
有效性測試的目標是發(fā)現(xiàn)軟件實現(xiàn)的功能與需求規(guī)格說明書不一致的錯誤,有效性測試通常采用黑盒測試技術(shù)。
第六章 軟件測試
1.兩種常用的測試技術(shù):
軟件產(chǎn)品與其他產(chǎn)品不同,其最大的成本是檢驗軟件的錯誤、修正錯誤的成本,以及為了發(fā)現(xiàn)這些錯誤所進行的設(shè)計測試程序和運行測試程序的成本,兩種常用的測試技術(shù)為,基于“白盒”的路徑 測試技術(shù)和基于“黑盒”的事務(wù)處理流程測試技術(shù),白盒測試技術(shù)依據(jù)的是程序的邏輯結(jié)構(gòu),黑盒測試技術(shù)依據(jù)的是軟件行為的描述。
2.軟件測試及其目標:
軟件測試可以定義為,按照規(guī)定規(guī)程,發(fā)現(xiàn)軟件錯誤的過程,軟件測試有兩個目標,一為預(yù)防錯誤,二為發(fā)現(xiàn)錯誤。
3.軟件測試和軟件調(diào)試的區(qū)別:
測試從一個側(cè)面證明程序員的“失敗”,而調(diào)試是為了證明程序員的正確,測試以已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序員是否通過測試,調(diào)試一般是以不可知的內(nèi)部條件開始,除統(tǒng)計性調(diào)試外,結(jié)果是不可預(yù)見的,測試是有計劃的,并要進行測試設(shè)計,而調(diào)試是不受時間約束的,測試是一個發(fā)現(xiàn)錯誤、改正錯誤、重新測試的過程,而調(diào)試是一個推理過程,測試的執(zhí)行是有規(guī)程的,而調(diào)試的執(zhí)行往往要求程序員進行必要推理以至直覺的“飛躍”,測試經(jīng)常是由獨立的測試組在不了解軟件的條件下完成的,而調(diào)試必須由了解詳細設(shè)計的程序員完成,大多數(shù)測試的執(zhí)行和設(shè)計可由工具支持,而調(diào)試時,程序員能利用的工具主要是調(diào)試器。
4.測試用例:
指的是為了發(fā)現(xiàn)程序中的故障而專門設(shè)計的一組或多組數(shù)據(jù)。
5.測試過程模型:
環(huán)境模型、對象模型、錯誤模型。
6.軟件錯誤類別:
結(jié)構(gòu)錯誤、數(shù)據(jù)錯誤、編程錯誤、接口錯誤。
7.控制流程圖及組成:
控制流程圖是程序控制結(jié)構(gòu)的圖形表示,其基本元素是過程塊、節(jié)點、判定,控制流程圖與程序流程圖之間的差異是在控制流程圖中,不顯示過程塊的細節(jié),而在程序流程圖中,著重于過程屬性的描述。
8.路徑測試的基本策略:
路徑測試技術(shù)的三種基本策略為,路徑測試(PX),執(zhí)行所有可能的穿過程序的控制流程路徑,語句測試(P1),至少執(zhí)行程序中所有語句一次,100%語句覆蓋率(C1)的邏輯覆蓋程序最弱,分支測試(P2),至少執(zhí)行程序中每一分支一次(至少每個判定都獲得一次“真”和“假”),100%分支覆蓋率(C2)比100%語句覆蓋在邏輯上要強,條件組合測試,在邏輯上比C1,C2更強。
9.路徑選取的一般規(guī)則:
選取最簡單的、具有一定功能含義的入口/出口路徑,對已選的路徑進行演化,選取無循環(huán)的路徑、短路徑、簡單路徑,選取沒有明顯功能含義的路徑。
10.路徑測試的目標:
執(zhí)行足夠的測試,以確保最小的C1+C2覆蓋率。
11.事務(wù)處理流程圖與控制流程圖的區(qū)別與聯(lián)系:
事務(wù)處理流程圖與控制流程圖的類同點是使用了相同的概念成分,不同之處是事務(wù)流程圖是一種數(shù)據(jù)流程圖,鏈支和過程塊的定義有所差異,另外事務(wù)流程圖的判定節(jié)點可能是一個復(fù)雜的過程,從而事務(wù)流程圖中的判定只能是“抽象”,第三點不同之處是事務(wù)流程圖中存在“中斷”的作用,中斷可以把一個過程等價的變換為具有繁多出口的鏈支,對此也要予以抽象。
12.事務(wù)處理流程測試的步驟:
獲得事務(wù)處理流程圖,瀏覽、復(fù)審,用例設(shè)計。
13.事務(wù)處理流程測試要解決的問題:
路徑選取、激活、測試設(shè)備、測試數(shù)據(jù)庫。
14.合理的測試序列:
單元測試、集成測試、有效性測試、系統(tǒng)測試。
15.單元測試及其內(nèi)容:
單元測試主要檢驗軟件設(shè)計的最小單位—模塊,單元測試一般采用白盒測試技術(shù),在單元測試期間,通常考慮模塊的四個特征,模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、“重要的”執(zhí)行路徑、錯誤執(zhí)行路徑,單元測試步驟分四部分,首先測試穿過模塊接口的數(shù)據(jù)流,繼之進行數(shù)據(jù)結(jié)構(gòu)的測試,還要進行執(zhí)行路徑的選擇測試,邊界測試是單元測試中的最后工作,也是最重要的工作。
16.集成測試及其內(nèi)容:
集成測試是軟件組裝的一個系統(tǒng)化技術(shù),其目標是發(fā)現(xiàn)與接口有關(guān)的錯誤, 集成測試是以主控模塊為測試驅(qū)動模塊,設(shè)計承接模塊替代其直接的下屬模塊,依據(jù)所選取的測試方式,在組合模塊時進行測試。
17.有效性測試及其手段:
有效性測試的目標是發(fā)現(xiàn)軟件實現(xiàn)的功能與需求規(guī)格說明書不一致的錯誤,有效性測試通常采用黑盒測試技術(shù)。
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準。
(二)本網(wǎng)站在文章內(nèi)容來源出處標注為其他平臺的稿件均為轉(zhuǎn)載稿,免費轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會及時進行處理解決。
相關(guān)推薦
2023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:反饋
08-292023年4月浙江自考高級英語課文串講筆記四
01-062023年浙江自考水產(chǎn)繁殖育苗技術(shù)復(fù)習(xí)資料:論述題
02-272023年4月浙江自考《英語(二)》串講資料二:詞性
04-012023年10月浙江自考中國古代文學(xué)史(一)復(fù)習(xí)資料:陳子昂與張若虛
09-062022年浙江《組織與管理概論》復(fù)習(xí)資料
09-222023年4月浙江自考環(huán)境心理學(xué)復(fù)習(xí)重點三
11-18自考輔導(dǎo)資料:2019年10月《美學(xué)》知識點-情感與理解
09-182023年4月浙江自考旅游心理學(xué)復(fù)習(xí)筆記:學(xué)習(xí)過程
12-132023年4月浙江自考中國現(xiàn)代文學(xué)作品選復(fù)習(xí)資料十四
11-29與考生自由互動、并且能直接與專業(yè)老師進行交流解答。
與考生自由互動、并且能直接與專業(yè)老師進行交流解答。