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