2021年3月南開大學(xué)期末復(fù)習(xí)資料軟件工程與軟件測試技術(shù)_第1頁
2021年3月南開大學(xué)期末復(fù)習(xí)資料軟件工程與軟件測試技術(shù)_第2頁
2021年3月南開大學(xué)期末復(fù)習(xí)資料軟件工程與軟件測試技術(shù)_第3頁
2021年3月南開大學(xué)期末復(fù)習(xí)資料軟件工程與軟件測試技術(shù)_第4頁
2021年3月南開大學(xué)期末復(fù)習(xí)資料軟件工程與軟件測試技術(shù)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《軟件工程與軟件測試技術(shù)》課程

期末復(fù)習(xí)資料

《軟件工程與軟件測試技術(shù)》課程講稿章節(jié)目錄及知識點:

第1章概述

(1)了解軟件的定義

(2)了解軟件危機的產(chǎn)生

(3)了解軟件工程的定義

第2章軟件過程

(1)掌握軟件過程的定義

(2)掌握軟件生命周期的幾個階段

(3)掌握瀑布模型、快速原型模型、軟件開發(fā)模型的基本過程,了解其優(yōu)缺

,(4)掌握增量模型、螺旋模型、噴泉模型的基本過程,了解其優(yōu)缺點

第3章可行性研究

(1)了解可行性研究的目的與任務(wù)

(2)掌握系統(tǒng)流程圖

(3)掌握數(shù)據(jù)流圖

(4)掌握數(shù)據(jù)字典

(5)了解成本-效益分析的方法

第4章軟件需求分析

(1)了解需求分析的任務(wù)

(2)掌握需求獲取的常用方法

(3)掌握結(jié)構(gòu)化分析方法

(4)熟練使用需求分析圖形工具

第5章軟件總體設(shè)計

(1)了解軟件設(shè)計和總體設(shè)計的定義

(2)掌握模塊化、抽象和信息隱蔽和局部化的原理

(3)掌握模型快獨立性和衡量標(biāo)準(zhǔn)

(4)掌握軟件結(jié)構(gòu)設(shè)計準(zhǔn)則

(5)熟練使用軟件結(jié)構(gòu)設(shè)計圖形工具

(6)掌握結(jié)構(gòu)化設(shè)計方法

第6章軟件詳細(xì)設(shè)計

(1)了解詳細(xì)設(shè)計的目標(biāo)和任務(wù)

(2)掌握程序流程圖、盒圖等程序設(shè)計工具的使用

(3)掌握程序判定表、判定樹等程序設(shè)計工具的使用

(4)掌握人機界面設(shè)計的原則和方法

第7章軟件編碼

(1)掌握程序設(shè)計語言的選擇準(zhǔn)則

(2)掌握程序設(shè)計風(fēng)格要點

第8章軟件測試

(1)掌握軟件測試的目標(biāo)和原則

(2)掌握幾種軟件測試方法的定義

(3)掌握語句覆蓋、判定覆蓋等邏輯覆蓋方法

(4)掌握條件覆蓋、條件組合覆蓋等邏輯覆蓋方法

(5)掌握循環(huán)測試和基本路徑測試基本方法

(6)掌握等價類劃分的方法

(7)掌握邊界值分析、錯誤推測和因果圖的原理和方法

(8)掌握單元測試方法

(9)掌握集成測試方法

(10)掌握確認(rèn)測試和系統(tǒng)測試方法

(11)掌握軟件調(diào)試的方式

第9章軟件維護(hù)

(1)了解軟件維護(hù)定義

(2)掌握軟件維護(hù)過程

(3)掌握軟件可維護(hù)定義和方法

(4)了解軟件維護(hù)中存在的問題

第10章面向?qū)ο蠓椒▽W(xué)

(1)了解面向?qū)ο蠓椒ǘx

(2)掌握面向?qū)ο蟮幕靖拍?/p>

(3)掌握對象、類及類之間關(guān)系

(4)掌握統(tǒng)一建模語言UML

第11章面向?qū)ο蟮姆治?/p>

(1)掌握面向?qū)ο蟮姆治鲞^程

(2)掌握建立用例模型方法

(3)掌握建立對象模型方法

(4)掌握建立順序圖和通信圖方法

(5)掌握建立狀態(tài)圖和活動圖方法

(6)掌握建立物理實現(xiàn)模型方法

第12章面向?qū)ο蟮脑O(shè)計與實現(xiàn)

(1)掌握面向?qū)ο蟮脑O(shè)計準(zhǔn)則和啟發(fā)式規(guī)則

(2)掌握問題與子系統(tǒng)和人機監(jiān)護(hù)子系統(tǒng)

(3)掌握任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)

(4)掌握服務(wù)設(shè)計方法

(5)掌握關(guān)聯(lián)設(shè)計方法

(6)掌握面向?qū)ο笤O(shè)計優(yōu)化方法

(7)掌握面向?qū)ο笙到y(tǒng)實現(xiàn)方法

一、客觀部分:(單項選擇、多項選擇)

(一)、單項選擇

1模塊獨立性是由內(nèi)聚性和耦合性來度量的,其中內(nèi)聚性是()

A.模塊間的聯(lián)系程度

B.模塊的功能強度

C.信息隱藏程度

D.接口的復(fù)雜程度

★考核知識點:模塊獨立性

參見講稿章節(jié):5.3

附1.1.1:(考核知識點解釋)

模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而

和軟件系統(tǒng)中其它的模塊的接口是簡單的。

模塊的獨立性可以從兩個方面來度量:耦合衡量不同模塊彼此間相互依賴的

緊密程度。耦合要低,即每個模塊和其他模塊之間的關(guān)系要簡單。內(nèi)聚衡量一個

模塊內(nèi)部各個元素之間彼此結(jié)合的緊密程度的度量。內(nèi)聚要高,每個模塊完成

一個相對獨立的特定子功能。

模塊耦合性類型包括:無直接耦合、數(shù)據(jù)耦合、標(biāo)記耦合、控制耦合、公共

環(huán)境耦合、內(nèi)容耦合,它們之間依次耦合性由低到高,模塊獨立性由強到弱。

模塊內(nèi)聚類型包括:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功

能內(nèi)聚,它們之間依次內(nèi)聚性由低至高,模塊獨立性由弱至強。

2.成本/效益分析是()的一項重要內(nèi)容

A.可行性研究

B.需求分析

C.軟件測試

D.軟件維護(hù)

[答案]:A

★考核知識點:可行性研究-成本/效益分析

參考講稿章節(jié):3.1、3.5

附1.1.2(考核知識點解釋):

在澄清了問題定義之后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型。然后從系統(tǒng)邏輯

模型出發(fā),探索若干種可供選擇的主要解法,也就是系統(tǒng)實現(xiàn)方案。分析每種解

法可行性和利弊,從而判定系統(tǒng)的目標(biāo)和規(guī)模是否現(xiàn)實,系統(tǒng)完成后帶來的效益

是否達(dá)到值得投資開發(fā)這個系統(tǒng)的程度。

可行性的研究實際上是一次大大簡化了的系統(tǒng)分析和系統(tǒng)設(shè)計的過程,即以

抽象的方式進(jìn)行分析和研究。

成本-效益分析的目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行,從

而幫助客戶正確地作出是否投資于這項開發(fā)工程的決定。

3.軟件開發(fā)模型不包括()

A.瀑布模型

B.用例模型

C.增量模型

D.螺旋模型

★考核知識點:軟件開發(fā)模型

參見講稿章節(jié):2.3、2.4

附1.1.3:(考核知識點解釋)

經(jīng)典的軟件開發(fā)模型有瀑布模型、快速原型模型、增量模型、螺旋模型、噴

泉模型等。

瀑布模型也稱生存周期模型或線性順序模型,是W-Royce于1970年首先

提出來的。它是將軟件生存周期各個活動規(guī)定為依線性順序連接的若干階段的模

型,包括問題定義、可行性研究、需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試

和維護(hù)。瀑布模型規(guī)定了由前至后、相互銜接的固定次序,恰如奔流不息拾級而

下的瀑布。所以稱為'‘瀑布模型傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可

以用瀑布模型來描述。而且是以文檔為驅(qū)動,適合于需求很明確的軟件項目開發(fā)

的模型。

快速原型(rapidprototype)是快速建立起來的可以在計算機上運行的程序,

它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。

增量模型也稱為漸增模型,是瀑布模型的順序特征和快速原型法的迭代特征

相結(jié)合的產(chǎn)物,是一種非整體開發(fā)的模型。

螺旋模型加入了瀑布模型與增量模型都忽略了的風(fēng)險分析,即將兩種模型結(jié)

合起來,彌補了兩種模型的不足。螺旋模型是一種迭代模型,它把開發(fā)過程分為

幾個螺旋周期,每迭代一次,螺旋線就前進(jìn)一周。它是一種風(fēng)險驅(qū)動的模型。基

本思想:使用原型及其他方法來盡量降低風(fēng)險。簡單理解,在每個階段之前都增

加了風(fēng)險分析過程的快速原型模型。

噴泉模型是典型的面向?qū)ο笊芷谀P?。以用戶需求為動力,以對象作?/p>

驅(qū)動的模型,適合面向?qū)ο蟮拈_發(fā)方法。

4.()是關(guān)于數(shù)據(jù)的信息集合,是結(jié)構(gòu)化分析模型的核心

A.數(shù)據(jù)流圖

B.數(shù)據(jù)字典

C.狀態(tài)轉(zhuǎn)換圖

D.實體關(guān)系圖

★考核知識點:結(jié)構(gòu)化分析模型

參見講稿章節(jié):4.3

附LL4:(考核知識點解釋)

結(jié)構(gòu)化分析模型的核心是數(shù)據(jù)字典,它描述了所有的在目標(biāo)系統(tǒng)中使用的和

生成的數(shù)據(jù)對象。圍繞著這個核心的有三種圖:1)實體一關(guān)系圖描述數(shù)據(jù)對象

之間的關(guān)系,它是用來進(jìn)行數(shù)據(jù)建?;顒拥膱D形。圖中出現(xiàn)的每個數(shù)據(jù)對象的屬

性可以在數(shù)據(jù)對象描述中描述。2)數(shù)據(jù)流圖描述數(shù)據(jù)在系統(tǒng)中如何被傳送或變

換,以及描述如何對數(shù)據(jù)流進(jìn)行變換的功能和子功能。數(shù)據(jù)流圖是功能建模的基

礎(chǔ),在加工規(guī)格說明中給出了對出現(xiàn)在數(shù)據(jù)流圖中的每個功能的描述。3)狀態(tài)

轉(zhuǎn)換圖指明了作為外部事件結(jié)果的系統(tǒng)行為。為此,狀態(tài)轉(zhuǎn)換圖描繪了系統(tǒng)的各

種行為模式(稱為“狀態(tài)”)和在不同狀態(tài)間轉(zhuǎn)換的方式。狀態(tài)轉(zhuǎn)換圖是行為建

模的基礎(chǔ),在“控制規(guī)格說明”中包含了有關(guān)軟件控制的附加信息。

5.在實體-關(guān)系圖中,包含以下基本成分()

A.實體、關(guān)系、控制

B.狀態(tài)、事件、關(guān)系

C.數(shù)據(jù)對象、屬性、關(guān)系

D.數(shù)據(jù)、對象、實體

★考核知識點:實體-關(guān)系圖

參見講稿章節(jié):4.3

附1.1.5:(考核知識點解釋)

實體-關(guān)系圖中包含了實體(即數(shù)據(jù)對象)、關(guān)系和屬性3種基本成分。通常

用矩形框代表實體,用連接相關(guān)實體的菱形框表示關(guān)系,用橢圓形或圓角矩形表

示實體(或關(guān)系)的屬性,并用無向邊把實體(或關(guān)系)與其屬性連接起來。

6.以下對狀態(tài)轉(zhuǎn)換圖描述錯誤的是()

A.狀態(tài)轉(zhuǎn)換圖通過描繪系統(tǒng)的狀態(tài)及引用系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的

行為。

B.狀態(tài)圖的狀態(tài)有初態(tài)、終態(tài)和中間狀態(tài),在一張圖中三種狀態(tài)都可以有。至

多個。

C.狀態(tài)圖中事件是引起系統(tǒng)做動作或(和)轉(zhuǎn)換狀態(tài)的控制信息。

D.狀態(tài)圖提供了行為建模機制。

★考核知識點:狀態(tài)轉(zhuǎn)換圖

參見講稿章節(jié):4.3

附1.1.6:(考核知識點解釋)

狀態(tài)轉(zhuǎn)換圖簡稱狀態(tài)圖,通過描繪系統(tǒng)的狀態(tài)及引用系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,

來表示系統(tǒng)的行為。狀態(tài)圖還指出了作為特定事件的結(jié)果系統(tǒng)將做哪些動作。因

此,狀態(tài)圖提供了行為建模機制。

狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模

式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即

初始狀態(tài))、終態(tài)(即最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),

而終態(tài)則可以有。至多個。

事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或(和)從一個

狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外界事件的抽象。

7.在面向數(shù)據(jù)流的設(shè)計方法中,一般將數(shù)據(jù)流分為()

A.信息流和控制流

B.變換流和控制流

C.變換流和事務(wù)流

D.事務(wù)流和控制流

★考核知識點:數(shù)據(jù)流類型

參見講稿章節(jié):5.6

附1.1.7:(考核知識點解釋)

通過對數(shù)據(jù)流圖中的數(shù)據(jù)流進(jìn)行分析,數(shù)據(jù)流可以分為兩種類型:變換流和

事務(wù)流。

變換流:信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入

系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟

件系統(tǒng)。變換型數(shù)據(jù)流圖呈線形,由輸入、變換、輸出三部分組成,變換是系統(tǒng)

地變換中心。

事務(wù)流:數(shù)據(jù)沿著輸入通路到達(dá)一個處理T,T根據(jù)輸入數(shù)據(jù)的類型,在若

干動作序列中選出一個來執(zhí)行,這類稱為事務(wù)流。事務(wù)型數(shù)據(jù)流圖常呈輻射狀。

8.邏輯覆蓋測試法中,條件覆蓋的目的是()

A.使程序中每個語句至少執(zhí)行一次

B.使程序每個語句至少執(zhí)行一次,且每個判定表達(dá)式中條件的各種可能組合都

至少出現(xiàn)一次

C.使程序中每個語句至少執(zhí)行一次,且每個判定表達(dá)式至少獲得一次真值和假

D.使程序中每個語句至少執(zhí)行一次,且使判定表達(dá)式中的每個條件都取到各種

可能的結(jié)果

★考核知識點:邏輯覆蓋測試

參見講稿章節(jié):8.3、8.4

附LL8:(考核知識點解釋)

邏輯覆蓋測試法:用流程圖來設(shè)計測試,考察的重點是圖中的判定框(菱形

框),因為這些判定是決定程序結(jié)構(gòu)的關(guān)鍵成分,不是與選擇有關(guān),就是與循環(huán)

結(jié)構(gòu)有關(guān)。按照對被測程序所作測試的有效程度,可由弱到強區(qū)分為5種覆蓋標(biāo)

準(zhǔn):語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋。

語句覆蓋的基本思想是:選擇足夠的測試用例,運行被測程序,使得程序中

每個語句至少都能被執(zhí)行一次。

判定覆蓋又叫分支覆蓋,它的基本思想是:設(shè)計足夠的測試用例,運行被測

程序,不僅使得被測程序中每個語句必須至少執(zhí)行一次,而且每個判定表達(dá)式的

每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個判定的每個分支都至少執(zhí)行一

次。

條件覆蓋的基本思想是,設(shè)計足夠多的測試用例,不僅每個語句至少執(zhí)行一

次,而且使判定表達(dá)式中的每個條件都取到各種可能的結(jié)果(真或假)。

判定/條件覆蓋實際上是判定和條件覆蓋結(jié)合起來,它是判定和條件覆蓋的交

集?;舅枷胧牵涸O(shè)計足夠多的測試用例,不僅每個語句至少執(zhí)行一次,而且使

判定表達(dá)式中的每個條件的所有可能結(jié)果至少出現(xiàn)一次,并使每個判定表達(dá)式所

有可能的結(jié)果也至少出現(xiàn)一次。

條件組合覆蓋的基本思想是:設(shè)計足夠多的測試用例,使得每個判定表達(dá)式

中條件的各種可能組合都至少出現(xiàn)一次。

采用其中任何一種方法都不能完全覆蓋所有的測試用例,在實際的測試用例

設(shè)計過程中,可以根據(jù)需要和不同的測試用例設(shè)計特征,將不同的方法組合起來

交叉使用。一般以條件組合覆蓋為主設(shè)計測試用例,然后再補充部分用例,達(dá)到

路徑覆蓋測試標(biāo)準(zhǔn),以實現(xiàn)最佳的測試用例輸出。

9.()是面向?qū)ο笙到y(tǒng)中對象之間交互的途徑,是向另外一個對象發(fā)出的服務(wù)

請求。

A.類

B.消息

C.封裝

D.調(diào)用

★考核知識點:面向?qū)ο蟮幕靖拍?/p>

參考講稿章節(jié):10.2

附129(考核知識點解釋):

對象的定義:對象是對問題域中客觀存在的事物的抽象,是由描述該對象屬

性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體。對象包

括兩大要素:屬性(用來描述對象的靜態(tài)特征)和操作(用來描述對象的動態(tài)特

征)。對象是面向?qū)ο蠓椒▽W(xué)中的基本成分,每個對象都可以用它本身的一組屬

性和它可以執(zhí)行的一組操作來定義。

類的定義:類是具有相同屬性和操作的一組相似對象(實體)的集合。類為

屬于該類的全部對象提供了統(tǒng)一的抽象描述。同類的對象具有相同的屬性和方法。

消息的定義:消息是面向?qū)ο笙到y(tǒng)中對象之間交互的途徑,是向另外一個對

象發(fā)出的服務(wù)請求,請求對象參與某一處理或回答某一要求的信息,是對象之間

建立的一種通信機制。通常一個消息的關(guān)鍵要素包括消息的發(fā)送者、消息的接收

者、消息所要求的具體服務(wù)及其參數(shù)、消息的應(yīng)答等。

封裝的定義:封裝指把對象的屬性和操作結(jié)合成一個獨立的系統(tǒng)單位,并盡

可能隱藏對象的內(nèi)部細(xì)節(jié),又稱信息隱藏。通過對象的封裝特性,用戶只能看到

對象封裝界面上的信息,對象內(nèi)部對用戶是隱蔽的,有效地實現(xiàn)了模塊化功能。

封裝的目的是將對象的使用者與設(shè)計者分開。封裝的作用有3個方面:一是使對

象形成接口和實現(xiàn)兩個部分;二是封裝的信息隱藏將所聲明的功能(行為)與內(nèi)

部實現(xiàn)(細(xì)節(jié))分離;三是封裝可以保護(hù)對象,避免用戶誤用,也可以保護(hù)客戶

機,對象實現(xiàn)過程的改變不會影響到相應(yīng)客戶機的改變。

10.應(yīng)該在(),完整地定義每個類的服務(wù)

A.建立對象模型之時

B.建立功能模型之后

C.建立動態(tài)模型之后

D.建立動態(tài)模型和功能模型之后

★考核知識點:建立對象模型的過程

參見講稿章節(jié):11.3

附1.1.10:(考核知識點解釋)

建立對象模型的過程:復(fù)雜問題(大型系統(tǒng))的對象模型通常由下述5個層

次組成:主題層(也稱范疇層)、類與對象層、結(jié)構(gòu)層、屬性層和服務(wù)層。5個

層次對應(yīng)著在面向?qū)ο蠓治鲞^程中建立對象模型的5項主要活動:識別主題、識

別類與對象、識別結(jié)構(gòu)、定義屬性和定義服務(wù)。通常,在概念中,面向?qū)ο蚰P?/p>

建立大體上按照下列順序進(jìn)行:識別類與對象、識別結(jié)構(gòu)、識別主題、定義屬性

和定義服務(wù)。但通常在完整地定義每個類的服務(wù)之前,需要先建立起動態(tài)模型和

功能模型,通過對這兩種模型的研究,才能夠更正確、更合理地確定每個類應(yīng)該

提供哪些服務(wù)。綜上,面向?qū)ο蠓治龃篌w上按照下列順序執(zhí)行:識別類與對象、

識別結(jié)構(gòu)、識別主題、定義屬性、建立動態(tài)模型、建立功能模型和定義服務(wù)。

(二)、多項選擇

1.軟件過程是為了獲得高質(zhì)量所需要完成的一系列任務(wù)的框架,它包括()

A.實現(xiàn)過程

B.管理過程

C.支持過程

D.測試過程

★考核知識點:軟件過程

參考講稿章節(jié):2.1

附1.2.1(考核知識點解釋):

軟件過程(softwareprocess)是為了獲得高質(zhì)量所需要完成的一系列任務(wù)的框

架,它規(guī)定了完成多項任務(wù)的工作步驟。軟件產(chǎn)品和服務(wù)的質(zhì)量,很大程度上取

決于生產(chǎn)和維護(hù)該軟件或者服務(wù)的過程的質(zhì)量。

軟件過程也包括實現(xiàn)過程(軟件開發(fā)活動)、管理過程和支持過程三種類型。

2.下述任務(wù)中,屬于軟件工程需求分析階段的是()

A.確定對系統(tǒng)的綜合需求

B.分析系統(tǒng)的數(shù)據(jù)需求

C.確定系統(tǒng)由哪些模型組成及每個模塊的功能

D.建立軟件的邏輯模型

★考核知識點:需求分析的任務(wù)

參考講稿章節(jié):4.1

附1.2.2(考核知識點解釋):

需求分析是軟件生命周期最重要的一步,它在問題定義和可行性研究階段

之后進(jìn)行。需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個問題。

需求分析指的是建立一個新的或改變一個現(xiàn)存的計算機系統(tǒng)時,描寫新系統(tǒng)的目

的、范圍、定義和功能時要做的所有工作。在軟件工程的歷史中,很長時間認(rèn)為

需求分析是軟件工程中最簡單的步驟,但越來越多的人認(rèn)識到它是整個過程中最

關(guān)鍵的環(huán)節(jié)。

需求分析的任務(wù)不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完

成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰而且具體的需求。需求分

析是調(diào)查、評價以及肯定用戶對軟件需求的過程,其目的在于精化軟件的作用范

圍,也是分析和確認(rèn)軟件系統(tǒng)構(gòu)成的過程,以確定未來系統(tǒng)的主要成分及它們之

間的接口細(xì)節(jié)。需求分析的任務(wù)包括:1)確定對系統(tǒng)的綜合需求;2)分析系統(tǒng)

的數(shù)據(jù)需求;3)建立軟件的邏輯模型;4)編寫軟件需求規(guī)格說明書;5)需求

分析評審。

3.軟件設(shè)計是把軟件需求轉(zhuǎn)換為軟件表示的過程,軟件設(shè)計的任務(wù)包括()

A.數(shù)據(jù)設(shè)計

B.體系結(jié)構(gòu)設(shè)計

C.接口設(shè)計

D.過程設(shè)計

★考核知識點:軟件設(shè)計

參考講稿章節(jié):5.1

附1.2.3(考核知識點解釋):

軟件設(shè)計是把軟件需求轉(zhuǎn)換為軟件表示的過程。軟件設(shè)計的任務(wù)就是把分析

模塊轉(zhuǎn)換成設(shè)計。軟件設(shè)計必須依據(jù)對軟件的需求來進(jìn)行,結(jié)構(gòu)化分析的結(jié)果為

結(jié)構(gòu)化設(shè)計提供了最基本的輸入信息。分析模型的每個元素都提供了創(chuàng)建設(shè)計模

型時所需要的信息。

數(shù)據(jù)設(shè)計把分析階段創(chuàng)建的信息域模型轉(zhuǎn)變成實現(xiàn)軟件所需要的數(shù)據(jù)結(jié)構(gòu)。

體系結(jié)構(gòu)設(shè)計確定了程序的主要結(jié)構(gòu)元素(即程序構(gòu)件)之間的關(guān)系。

接口設(shè)計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各構(gòu)件之間、軟件與其它協(xié)同系統(tǒng)之間

及軟件與用戶之間的交互機制。

過程設(shè)計把程序體系結(jié)構(gòu)中的結(jié)構(gòu)元素,變換成對軟件構(gòu)件的過程性描述。

4.結(jié)構(gòu)化程序設(shè)計所使用的結(jié)構(gòu)有()

A.順序

B.選擇

C.重復(fù)

D.GOTO

★考核知識點:結(jié)構(gòu)化程序設(shè)計

參考講稿章節(jié):6.1

附124(考核知識點解釋):

結(jié)構(gòu)程序設(shè)計的概念最早是由E.W.Dijkstra在1965年召開的IFIP(國際信息

處理聯(lián)合會)會議上提出的,他指出:“可以從高級語言中取消GOTO語句程

序的質(zhì)量與程序中所包含的GOTO語句的數(shù)量成反比1966年,Bohm和

Jacopini證明了程序設(shè)計語言中,只用3種基本控制結(jié)構(gòu)就能實現(xiàn)任何單入口、

單出口的程序。這3種基本的控制結(jié)構(gòu)是順序、選擇和循環(huán)。

結(jié)構(gòu)化程序設(shè)計經(jīng)典定義:“如果一個程序的代碼塊僅僅通過順序、選擇

和循環(huán)這3種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個代碼塊只有一個入口和一個出口,

則稱這個程序是結(jié)構(gòu)化的?!?/p>

5.以下哪些是軟件詳細(xì)設(shè)計工具。

A.程序流程圖

B.盒圖(N-S圖)

C.問題分析圖(PAD圖)

D.HIPO圖

★考核知識點:詳細(xì)設(shè)計工具

參考講稿章節(jié):6.2、6.3

附125(考核知識點解釋):

詳細(xì)設(shè)計工具:描述程序處理過程的工具稱為詳細(xì)設(shè)計工具,可以分為以下

三類:圖形工具、表格工具、語言工具。

程序流程圖也稱為程序框圖,它是一種最古老、應(yīng)用最廣泛、且最有爭議的

描述詳細(xì)設(shè)計的工具。流程圖包括三種基本成分:(1)處理,用方框表示;(2)

判斷條件,用菱形框表示;(3)控制流,用箭頭表示。

盒圖:為了克服流程圖在描述邏輯時的隨意等缺點,提出了一種不用GOTO

語句、不需要流向線的結(jié)構(gòu)化流程圖,稱為盒圖,也稱為N-S圖。在N-S圖中,

每個“處理步驟”是用一個盒子表示的,所謂“處理步驟”可以是語句或語句序

列。盒子中可以嵌套另一個盒子,嵌套深度一般沒有限制。只能從上邊進(jìn)入盒子

然后從下邊走出,除此之外別無其他出入口,N-S圖限制了隨意的控制轉(zhuǎn)移,保

證了程序的良好結(jié)構(gòu)。

問題分析圖(PAD圖)是用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種

圖翻譯成程序代碼比較容易。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許

遞歸使用。

判定表:當(dāng)算法中包含多重嵌套的條件選擇時,判定表能夠清晰地表示復(fù)雜

的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。判定表用于表示程序的靜態(tài)邏輯,在

判定表中的條件部分給出所有的兩分支判斷的列表,動作部分給出相應(yīng)的處理,

要求將程序流程圖中的多分支判斷都改成兩分支判斷。一張判定表由4部分組成:

左上部列出所有條件;左下部是所有可能做的動作;右上部是表示各種條件組合

的一個矩陣;右下部是和每種條件組合相對應(yīng)的動作。判定表右半部的每一列實

質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。

判定樹:判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的

動作之間的對應(yīng)關(guān)系。

過程設(shè)計語言(PDL):過程設(shè)計語言(ProcessDesignLanguage,PDL)是一

種用于描述功能模塊的算法設(shè)計和加工細(xì)節(jié)的語言,稱為設(shè)計程序用語言,它是

一種偽碼。

6.從發(fā)展歷程來看,程序設(shè)計語言可以分為()幾代

A.機器語言

B.匯編語言

C.高級語言

D.非過程化語言

★考核知識點:程序設(shè)計語言

參考講稿章節(jié):7.1

附126(考核知識點解釋):

程序設(shè)計語言的分類:從發(fā)展歷程來看,程序設(shè)計語言可以分為4代。機器

語言、匯編語言、高級語言、非過程化語言。

7.軟件產(chǎn)品在交付使用之前一般要經(jīng)過()

A.單元測試

B.集成測試

C.確認(rèn)測試

D.系統(tǒng)測試

★考核知識點:軟件測試過程

參考講稿章節(jié):8.8

附127(考核知識點解釋):

軟件產(chǎn)品在交付使用之前一般要經(jīng)過單元測試、集成測試、確認(rèn)測試和系統(tǒng)

測試4個階段的測試。

單元測試是對軟件基本組成單元進(jìn)行的測試,檢查每個獨立模塊是否正確地

實現(xiàn)了規(guī)定的功能,單元測試所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計中的錯誤。各模塊

經(jīng)過單元測試后,接下來需要進(jìn)行集成測試。

集成測試是將已分別通過測試的單元按設(shè)計要求組合起來再進(jìn)行測試,以檢

查這些單元之間的接口是否存在問題,同時檢查與設(shè)計相關(guān)的軟件體每畝結(jié)構(gòu)的

有關(guān)問題。在這個測試階段發(fā)現(xiàn)的往往是軟件設(shè)計中的錯誤,也可能發(fā)現(xiàn)需求中

的錯誤。

確認(rèn)測試是檢查所開發(fā)的軟件是否滿足需求規(guī)格說明書中所確定的功能和

性能的需求,在這個測試階段發(fā)現(xiàn)的是需求分析階段的錯誤,如對用戶需求的誤

解,有沖突的用戶需求等。

完成確認(rèn)測試后,得到的應(yīng)該是用戶確認(rèn)的合格的軟件產(chǎn)品,但為了檢查該

產(chǎn)品能否與系統(tǒng)的其他部分協(xié)調(diào)工作,需要進(jìn)行系統(tǒng)測試。系統(tǒng)測試是在實際運

行環(huán)境下對計算機系統(tǒng)進(jìn)行一系列的嚴(yán)格有效的測試來發(fā)現(xiàn)軟件的潛在問題,以

保證各組成部分不僅單獨的正常運行,而且在系統(tǒng)各部分統(tǒng)一協(xié)調(diào)下也能正常運

行。

8.下列關(guān)于軟件測試和調(diào)試的說法正確的是()

A.測試的目的是為找出軟件中所有存在的錯誤

B.調(diào)試的目的是為了解決軟件中存在的錯誤

C.成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試

D.調(diào)試能夠證明軟件的正確性

★考核知識點:軟件測試、軟件調(diào)試

參考講稿章節(jié):8.1、8.11

附1.2.8(考核知識點解釋):

軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,好的測試方案是極可

能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案,成功的測試是發(fā)現(xiàn)了至今為止尚未

發(fā)現(xiàn)的錯誤的測試。

調(diào)試,也稱為糾錯,是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。

軟件測試的目的是為找出軟件中存在的錯誤,即通過測試來發(fā)現(xiàn)錯誤,而調(diào)

試的目的是為了解決存在的錯誤,即對錯誤定位、分析并找出原因改正錯誤,因

此調(diào)試也稱為糾錯。

常用調(diào)試技術(shù)包括:簡單調(diào)試技術(shù)、回溯法、消去原因法(又包括折半查找

法、歸納法和演繹法)。

9.軟件維護(hù)活動可以歸結(jié)為以下()幾類

A.改正性維護(hù)

B.適應(yīng)性維護(hù)

C.完善性維護(hù)

D.預(yù)防性維護(hù)

★考核知識點:軟件維護(hù)的分類

參考講稿章節(jié):9.1

附1.2.9(考核知識點解釋):

軟件維護(hù)活動可以歸結(jié)為以下四類:改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);

預(yù)防性維護(hù)。在整個軟件維護(hù)階段所花費的全部工作中,預(yù)防性維護(hù)只占很小的

比例,大約4%;改正性維護(hù)占21%,適應(yīng)性維護(hù)占25%,而完善性維護(hù)占了約

一半的工作量。

10.統(tǒng)一建模語言UML的表示方法有。

A.視圖

B.圖

C.模型元素

D.公共機制

★考核知識點:統(tǒng)一建模語言UML

參考講稿章節(jié):10.4

附1.2.10(考核知識點解釋):

UML的表示方法:UML的表示方法有視圖、圖、模型元素、公共機制等。

11.在面向?qū)ο蟮脑O(shè)計中,應(yīng)遵循的設(shè)計準(zhǔn)則包括()

A.高內(nèi)聚、低耦合

B.信息隱藏

C.模塊化、抽象

D.可重用

★考核知識點:面向?qū)ο蟮脑O(shè)計準(zhǔn)則

參考講稿章節(jié):12.1

附1.2.11(考核知識點解釋):

面向?qū)ο笤O(shè)計的過程可以看作是按照設(shè)計準(zhǔn)則,對分析模型進(jìn)行細(xì)化的過程。

面向?qū)ο蟮脑O(shè)計準(zhǔn)則包括以下6個方面:模塊化、抽象、信息隱藏、弱耦合、強

內(nèi)聚、可重用。

12.面向?qū)ο笙到y(tǒng)的邏輯設(shè)計模型劃分為若干部分,分別對應(yīng)組成目標(biāo)系統(tǒng)的()。

A.問題域子系統(tǒng)

B.人機交互子系統(tǒng)

C.任務(wù)管理子系統(tǒng)

D.數(shù)據(jù)管理子系統(tǒng)

★考核知識點:面向?qū)ο蟮南到y(tǒng)設(shè)計

參考講稿章節(jié):12.2

附1.2.12(考核知識點解釋):

面向?qū)ο笙到y(tǒng)的邏輯設(shè)計模型可以劃分為4部分,分別對應(yīng)組成目標(biāo)系統(tǒng)的

4個子系統(tǒng)。分別是:問題域子系統(tǒng)、人機交互子系統(tǒng)、任務(wù)管理子系統(tǒng)、數(shù)據(jù)

管理子系統(tǒng)。

13.在面向?qū)ο蟮姆?wù)設(shè)計中,確定類中應(yīng)用的服務(wù)包括()

A.從對象模型中引入服務(wù)

B.從用例模型中引入服務(wù)

C.從動態(tài)模型中引入服務(wù)

D.從物理模型中引入服務(wù)

★考核知識點:面向?qū)ο蟮南到y(tǒng)設(shè)計

參考講稿章節(jié):12.4

附1.2.13(考核知識點解釋):

面向?qū)ο蟮姆?wù)設(shè)計:設(shè)計和細(xì)化類中的服務(wù)是面向?qū)ο笤O(shè)計階段的重要工

作。面向?qū)ο笤O(shè)計中服務(wù)的設(shè)計可以分為兩個步驟:確定類中應(yīng)有的服務(wù)、設(shè)計

實現(xiàn)服務(wù)的方法。確定類中應(yīng)有的服務(wù)包括:從對象模型中引入服務(wù)、從動態(tài)模

型中確定服務(wù)、從用例模型中引入服務(wù)。設(shè)計實現(xiàn)服務(wù)的方法主要包括以下幾項

工作:選擇數(shù)據(jù)結(jié)構(gòu)、定義內(nèi)部類和內(nèi)部操作、設(shè)計實現(xiàn)服務(wù)的算法。

二、主觀部分:

(一)、名詞解釋

1.軟件工程

★考核知識點:軟件工程的定義

參考講稿章節(jié):1.3

附2.1.1(考核知識點解釋):

軟件工程是指導(dǎo)計算機軟件開發(fā)和維護(hù)的一門工程學(xué)科,采用工程的概念、原理、

技術(shù)和方法來開發(fā)和維護(hù)軟件。

2.軟件過程

★考核知識點:軟件過程

參考講稿章節(jié):2.1

附2.1.2(考核知識點解釋):

軟件過程(softwareprocess)是為了獲得高質(zhì)量所需要完成的一系列任務(wù)的框

架,它規(guī)定了完成多項任務(wù)的工作步驟。

3.軟件生命周期

★考核知識點:軟件生命周期

參考講稿章節(jié):2.2

附2.1.3(考核知識點解釋):

軟件生命周期是指某一軟件項目被提出來并著手實現(xiàn)開始直到該軟件報廢或停

止使用為止的生命周期,又稱軟件生存期。

4.數(shù)據(jù)流圖

★考核知識點:數(shù)據(jù)流圖

參考講稿章節(jié):3.3

附2.1.4(考核知識點解釋):

數(shù)據(jù)流圖(DataFlowDiagram,DFD)用于表示系統(tǒng)邏輯模型的一種工具,它以直

觀的圖形清晰地描述了系統(tǒng)數(shù)據(jù)的流動和處理過程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的

圖形展示。圖中沒有任何具體的物理元素,主要強調(diào)的是數(shù)據(jù)流和處理過程。即

使不是計算機專業(yè)人員也很容易理解,因此是軟件開發(fā)人員和用戶之間極好的通

信工具。設(shè)計數(shù)據(jù)流圖時只需考慮軟件系統(tǒng)必須完成的基本邏輯功能,不需要考

慮如何具體實現(xiàn)這些功能,所以它也是今后進(jìn)行軟件設(shè)計開發(fā)的很好的出發(fā)點。

數(shù)據(jù)流圖有4種基本符號:方框或立方體,表示數(shù)據(jù)的源點或終點,是系統(tǒng)之外

的實體;圓形或者圓角矩形,表示加工(變換數(shù)據(jù)的處理);兩行平行線或者開

口矩形表示數(shù)據(jù)存儲;箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。

5.數(shù)據(jù)字典

★考核知識點:數(shù)據(jù)字典

參考講稿章節(jié):3.4

附2.1.5(考核知識點解釋):

數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息集合,也是對數(shù)據(jù)流圖包含的所有元素的定義的集合。

數(shù)據(jù)字典的作用是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)

據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴(yán)格;

然而沒有數(shù)據(jù)流圖,數(shù)據(jù)字典也難于發(fā)揮作用。對數(shù)據(jù)流圖和對數(shù)據(jù)流圖中每個

元素的精確定義放在一起,才能共同構(gòu)成系統(tǒng)的規(guī)格說明。

6.軟件總體設(shè)計

★考核知識點:軟件總體設(shè)計

參考講稿章節(jié):5.1

附2.1.6(考核知識點解釋):

軟件總體設(shè)計是將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)的過程。總體設(shè)計

是軟件結(jié)構(gòu)的建立過程,它將軟件系統(tǒng)分解成許多個模塊,并決定每個模塊的外

部特征,即功能和界面(輸入和輸出)。

7.結(jié)構(gòu)化設(shè)計方法

★考核知識點:結(jié)構(gòu)化設(shè)計方法

參考講稿章節(jié):5.6

附2.1.7(考核知識點解釋):

結(jié)構(gòu)化設(shè)計(StructuredDesign,簡稱SD)方法,也稱為面向數(shù)據(jù)流的設(shè)計方法,

與結(jié)構(gòu)化分析方法相銜接。結(jié)構(gòu)化設(shè)計方法目標(biāo)是通過對數(shù)據(jù)流的分析來設(shè)計軟

件結(jié)構(gòu),將數(shù)據(jù)流圖映射為軟件結(jié)構(gòu)圖。

8.判定表

★考核知識點:判定表

參見講稿章節(jié):6.3

附2.1.8:(考核知識點解釋)

當(dāng)算法中包含多重嵌套的條件選擇時,判定表能夠清晰地表示復(fù)雜的條件組合與

應(yīng)做的動作之間的對應(yīng)關(guān)系。判定表用于表示程序的靜態(tài)邏輯,在判定表中的條

件部分給出所有的兩分支判斷的列表,動作部分給出相應(yīng)的處理,要求將程序流

程圖中的多分支判斷都改成兩分支判斷。一張判定表由4部分組成:左上部列出

所有條件;左下部是所有可能做的動作;右上部是表示各種條件組合的一個矩陣;

右下部是和每種條件組合相對應(yīng)的動作。判定表右半部的每一列實質(zhì)上是一條規(guī)

則,規(guī)定了與特定的條件組合相對應(yīng)的動作。

9.靜態(tài)測試

★考核知識點:軟件測試方法

參見講稿章節(jié):8.2

附2.1.9:(考核知識點解釋)

靜態(tài)測試,就是靜態(tài)分析,指被測程序不在機器上運行,對模塊的源代碼進(jìn)行研

讀,查找錯誤或收集一些度量數(shù)據(jù),檢測只進(jìn)行特性分析。

10.動態(tài)測試

★考核知識點:軟件測試方法

參見講稿章節(jié):8.2

附2.1.10:(考核知識點解釋)

動態(tài)測試是指通過運行程序發(fā)現(xiàn)錯誤。

11.黑盒測試

★考核知識點:軟件測試方法

參見講稿章節(jié):8.2

附2.1.11:(考核知識點解釋)

黑盒測試,也稱功能測試或數(shù)據(jù)驅(qū)動測試。它不考慮程序內(nèi)部結(jié)構(gòu)和處理過程。

把被測程序看成一個黑盒子,只在軟件接口處進(jìn)行測試。測試者只知道該程序輸

入和輸出之間的關(guān)系或程序的功能,依靠能夠反映這一關(guān)系和程序功能的需求規(guī)

格說明書考慮確定測試用例和推斷測試結(jié)果的正確性,檢查程序是否滿足功能要

求黑盒測試被用來證實軟件功能的正確性和可操作性。

12.白盒測試

★考核知識點:軟件測試方法

參見講稿章節(jié):8.2

附2.1.12:(考核知識點解釋)

白盒測試,也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試法與黑盒測試法不同,測試

人員將程序視為一個透明的白盒子,測試人員需了解程序的內(nèi)部結(jié)構(gòu)和處理過程。

以檢查處理過程的細(xì)節(jié)為基礎(chǔ),要求對程序的結(jié)構(gòu)特性做到一定程度的覆蓋,對

程序中的所有邏輯路徑進(jìn)行測試,并檢驗內(nèi)部控制結(jié)構(gòu)是否有錯,確定實際的運

行狀態(tài)與預(yù)期的狀態(tài)是否一致。

13.測試用例

★考核知識點:測試用例

參見講稿章節(jié):8.3

附2.1.13.:(考核知識點解釋)

測試用例是針對特定測試對象而開發(fā)的一組輸入、預(yù)置條件和預(yù)期結(jié)果。測試用

例的基本目的是確定一組最有可能發(fā)現(xiàn)某個錯誤或某類錯誤的測試數(shù)據(jù)。測試用

例的不足在于不可能測試程序的每條路徑,也不能把所有數(shù)據(jù)都試一遍。

14.集成測試

★考核知識點:集成測試

參見講稿章節(jié):8.9

附2.1.14:(考核知識點解釋)

集成測試是在單元測試基礎(chǔ)上,將所有模塊按要求組裝成一個完整的系統(tǒng)而進(jìn)行

的測試。集成測試用于組裝軟件的一種系統(tǒng)的技術(shù),是要把模塊按照設(shè)計要求組

裝起來的同時進(jìn)行測試,用以發(fā)現(xiàn)和接口相聯(lián)系的問題。

15.確認(rèn)測試

★考核知識點:確認(rèn)測試

參見講稿章節(jié):8.10

附2.1.15:(考核知識點解釋)

確認(rèn)測試,又稱為有效性測試或驗收測試,是從質(zhì)量的角度,在功能、性能、可

靠性、易用性等方面對軟件做全面的質(zhì)量檢測。

16.系統(tǒng)測試

★考核知識點:系統(tǒng)測試

參見講稿章節(jié):8.10

附2.1.16:(考核知識點解釋)

系統(tǒng)測試是將經(jīng)過單元測試、集成測試、確認(rèn)測試以后的軟件,作為計算機系統(tǒng)

中的一個組成部分,需要與系統(tǒng)中的硬件、外部設(shè)備、支持軟件、數(shù)據(jù)及操作人

員結(jié)合起來,在實際運行環(huán)境下對計算機系統(tǒng)進(jìn)行一系列的嚴(yán)格有效的測試來發(fā)

現(xiàn)軟件的潛在問題,以保證各組成部分不僅單獨的正常運行,而且在系統(tǒng)各部分

統(tǒng)一協(xié)調(diào)下也能正常運行。

系統(tǒng)測試不同于功能測試。功能測試主要是驗證軟件功能是否符合用戶需求,并

不考慮各種環(huán)境及非功能問題,如安全性、可靠性、性能等,而系統(tǒng)測試是在更

大范圍內(nèi)進(jìn)行的測試,著重對系統(tǒng)的性能、特性進(jìn)行測試。

17.a測試

★考核知識點:a測試

參見講稿章節(jié):8.10

附2.1.17:(考核知識點解釋)

a測試:是用戶在開發(fā)者的場所進(jìn)行,并且在開發(fā)者對用戶的“指導(dǎo)”下進(jìn)行測

試。開發(fā)者負(fù)責(zé)記錄發(fā)現(xiàn)的錯誤和使用中遇到的問題。

18.B測試

★考核知識點:B測試

參見講稿章節(jié):8.10

附2.1.18:(考核知識點解釋)

B測試:是由軟件的最終用戶們在一個或多個客戶場所進(jìn)行,在開發(fā)者不能控制

的環(huán)境中的“真實”應(yīng)用。用戶記錄下在B測試過程中遇到的一切問題(真實的

或想象的),并且定期把這些問題報告給開發(fā)者。開發(fā)者對產(chǎn)品進(jìn)行修改和完善,

最終得到正式的發(fā)布版本。

16.軟件可維護(hù)性

★考核知識點:軟件可維護(hù)性

參見講稿章節(jié):9.3

附2.1.16:(考核知識點解釋)

軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯誤和缺陷,以及為滿足新的要求進(jìn)行修

改、擴充或壓縮的容易程度。軟件可維護(hù)性是軟件開發(fā)階段各個時期的關(guān)鍵目標(biāo)。

17.封裝

★考核知識點:面向?qū)ο蠡靖拍?/p>

參見講稿章節(jié):10.2

附2.1.17:(考核知識點解釋)

封裝指把對象的屬性和操作結(jié)合成一個獨立的系統(tǒng)單位,并盡可能隱藏對象的內(nèi)

部細(xì)節(jié),又稱信息隱藏。通過對象的封裝特性,用戶只能看到對象封裝界面上的

信息,對象內(nèi)部對用戶是隱蔽的,有效地實現(xiàn)了模塊化功能。封裝的目的是將對

象的使用者與設(shè)計者分開。

18.構(gòu)件

★考核知識點:構(gòu)件

參見講稿章節(jié):11.6

附2.1.18:(考核知識點解釋)

構(gòu)件是一個相對獨立的可裝配的物理塊,一般作為一個獨立的文件存在。構(gòu)件具

有確定的接口,相互之間可以調(diào)用,構(gòu)件之間存在依賴關(guān)系。構(gòu)件定義了一個系

統(tǒng)的功能,一個構(gòu)件是一個或多個類的實現(xiàn)。

(二)、簡答

1.簡述軟件危機的表現(xiàn)形式,產(chǎn)生軟件危機的原因,軟件危機的解決途徑

★考核知識點:軟件危機

參見講稿章節(jié):1.2

附2.2.1(考核知識點解釋):

軟件危機是指在計算機軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。

軟件危機的表現(xiàn)形式:

1)對軟件開發(fā)成本和研制進(jìn)度的估計常常很不精確。

2)“已完成”的軟件不能滿足用戶要求。

3)軟件產(chǎn)品質(zhì)量差,可靠性得不到保證。

4)軟件產(chǎn)品可維護(hù)性差。

5)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。

6)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計算機應(yīng)用速度普及深入的趨勢。

產(chǎn)生軟件危機的原因:

1)軟件是計算機系統(tǒng)中的邏輯部件,軟件產(chǎn)品往往規(guī)模龐大,結(jié)構(gòu)復(fù)雜。

2)軟件開發(fā)的管理困難。

3)軟件開發(fā)費用不斷增加,維護(hù)費用急劇上升,直接威脅計算機應(yīng)用的擴大。

4)軟件開發(fā)技術(shù)落后。

5)生產(chǎn)方式落后。

6)開發(fā)工具落后,生產(chǎn)效率提高緩慢。

軟件危機的解決途徑:

1)首先應(yīng)該對計算機軟件有一個正確的認(rèn)識,徹底清除“軟件就是程序”的錯

誤觀念。

2)要使用好的開發(fā)技術(shù)和方法,并且要不斷研究探索更好更有效的技術(shù)和方法。

盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤觀念和作法。

3)要有良好的組織、嚴(yán)密的管理,各類人員要相互配合,共同完成任務(wù)。充分

認(rèn)識軟件開發(fā)不是某種個體勞動的神秘技巧。

2.簡述軟件工程的基本目標(biāo)。

★考核知識點:軟件工程

參見講稿章節(jié):L3

附222:(考核知識點解釋)

軟件工程是指導(dǎo)計算機軟件開發(fā)和維護(hù)的一門工程學(xué)科,采用工程的概念、原理、

技術(shù)和方法來開發(fā)和維護(hù)軟件。

軟件工程的宗旨是為了提高軟件生產(chǎn)率、降低生產(chǎn)成本,以較小的代價獲得

高質(zhì)量的軟件產(chǎn)品。

軟件工程的基本目標(biāo)包括

1)付出較低的開發(fā)成本

2)達(dá)到用戶要求的全部軟件功能

3)取得較好的軟件性能

4)具有較好的易用性、可重用性和可移植性

5)需要較低的維護(hù)費用,較高的可靠性

6)能按時完成開發(fā)工作,及時交付用戶使用

3.什么是軟件的生命周期?典型的軟件生命周期包括哪些階段?軟件生命周期

中軟件開發(fā)時期包含哪些階段?并簡述各階段的主要任務(wù)。

★考核知識點:軟件生命周期

參見講稿章節(jié):2.2

附223:(考核知識點解釋)

軟件生命周期是借用工程中產(chǎn)品生命周期的概念而得來的,是指某一軟件項

目被提出來并著手實現(xiàn)開始直到該軟件報廢或停止使用為止的生命周期,又稱軟

件生存期。

軟件的生命周期一般分為軟件定義、軟件開發(fā)和軟件運行三個時期。

軟件定義時期一般有問題定義、可行性研究和需求分析三個階段;軟件開發(fā)

時期有概要設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、綜合測試階段;軟件維護(hù)時期完

成運行維護(hù)階段。

軟件開發(fā)時期通常由下述4個階段組成:概要設(shè)計、詳細(xì)設(shè)計、編碼和單元

測試、綜合測試。其中前兩個階段又稱為系統(tǒng)設(shè)計,后兩個階段又稱為系統(tǒng)實現(xiàn)。

(1)概要設(shè)計又稱為總體設(shè)計、初步設(shè)計、邏輯設(shè)計或高層設(shè)計。這個階

段是要概括地回答“怎樣實現(xiàn)目標(biāo)系統(tǒng)?”,主要任務(wù)是將需求轉(zhuǎn)變?yōu)檐浖谋?/p>

示形式。開發(fā)人員要把確定的各項功能需求轉(zhuǎn)換成需求的體系結(jié)構(gòu),即從需求規(guī)

格說明書導(dǎo)出軟件結(jié)構(gòu)圖(體系結(jié)構(gòu)設(shè)計),確定由哪些模塊組成以及模塊之間

的關(guān)系(接口設(shè)計、組件設(shè)計),同時還要設(shè)計該項目的應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)

構(gòu)和數(shù)據(jù)庫結(jié)構(gòu)(數(shù)據(jù)庫設(shè)計),撰寫出總體設(shè)計說明書。

(2)詳細(xì)設(shè)計也稱為模塊設(shè)計、物理設(shè)計或低層設(shè)計,詳細(xì)設(shè)計階段的任

務(wù)是要回答“應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)?”,為概要設(shè)計階段得到的軟件結(jié)

構(gòu)圖中的每個模塊完成的功能進(jìn)行具體描述、內(nèi)部特征,要把功能描述轉(zhuǎn)變?yōu)榫?/p>

確的、結(jié)構(gòu)化的過程描述,即確定實現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu),并用

相應(yīng)的詳細(xì)設(shè)計工具表示出來,撰寫軟件的詳細(xì)設(shè)計說明書。

(3)編碼和單元測試這個階段的關(guān)鍵任務(wù)將軟件設(shè)計轉(zhuǎn)換成程序代碼,寫

出正確的,容易理解、容易維護(hù)的程序模塊。程序員應(yīng)該根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和

實際環(huán)境,選取一種適當(dāng)?shù)母呒壋绦蛟O(shè)計語言(必要時用匯編語言),把詳細(xì)設(shè)

計的結(jié)果翻譯成用選定的語言書寫的程序,并且仔細(xì)測試編寫出的每一個模塊。

最終提交源程序、詳盡的程序說明和單元測試報告。

(4)測試是開發(fā)時期的最后一個階段,是保證軟件質(zhì)量的重要手段。這個

階段的關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。

最基本的測試是集成測試和驗收測試。必要時還可以再通過現(xiàn)場測試或平行運行

等方法對目標(biāo)系統(tǒng)進(jìn)一步測試檢驗。集成測試是根據(jù)設(shè)計的軟件結(jié)構(gòu),把經(jīng)過單

元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程序進(jìn)行必要的

測試。驗收測試則是按照規(guī)格說明書的規(guī)定(通常在需求分析階段確定),由用

戶(或在用戶積極參加下)對目標(biāo)系統(tǒng)進(jìn)行驗收。最終提交測試計劃、詳細(xì)測試

方案以及實際測試結(jié)果等。

4.什么是模塊、模塊化?軟件設(shè)計為什么要模塊化?

★考核知識點:軟件設(shè)計模塊化

參見講稿章節(jié):5.4

附2.2.4:(考核知識點解釋)

模塊,又稱“組件”,是軟件結(jié)構(gòu)的基礎(chǔ),是軟件元素,是能夠單獨命名、

獨立完成一定功能的程序語句的集合。

模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊

的過程。

模塊化是為了使一個復(fù)雜的大型程序能被人的智力所管理。如果一個大型程

序僅由一個模塊組成,它將很難被人所理解。

模塊化的目的是降低軟件復(fù)雜性,使軟件設(shè)計、測試、維護(hù)等操作變得容易。

運用模塊化技術(shù)還可以防止錯誤蔓延,從而可以提高系統(tǒng)的可靠性。

4.簡述軟件模塊設(shè)計準(zhǔn)則。

★考核知識點:軟件結(jié)構(gòu)設(shè)計準(zhǔn)則

參見講稿章節(jié):5.4

附224:(考核知識點解釋)

軟件模塊設(shè)計需要遵循的準(zhǔn)則如下:

1)降低模塊之間的耦合性,提高模塊的內(nèi)聚性。

2)模塊結(jié)構(gòu)的深度、寬度、扇出和扇入應(yīng)適當(dāng)

3)模塊的作用范圍應(yīng)該在控制范圍內(nèi)

4)模塊接口設(shè)計要簡單,以便降低復(fù)雜程度和冗余度

5)設(shè)計功能可預(yù)測并能得到驗證的模塊

6)適當(dāng)劃分模塊規(guī)模,以保持其獨立性

5.簡述軟件測試的原則。

★考核知識點:軟件測試的原理

參見講稿章節(jié):8.1

附225:(考核知識點解釋)

原則一:所有的測試都應(yīng)該能追溯到用戶需求

原則二:測試工作具有創(chuàng)造性,但很困難。

1.測試用例既要有輸入數(shù)據(jù),又要有對應(yīng)的輸出結(jié)果。

2.測試用例不僅要選用合理的輸入數(shù)據(jù),還應(yīng)選擇不合理的輸入數(shù)據(jù)。

3.除了檢查程序是否做了它應(yīng)該做的工作,還應(yīng)該檢查程序是否做了它不應(yīng)

該做的工作。

原則三:測試要有計劃性

1.應(yīng)該遠(yuǎn)在測試開始之前就制定測試計劃

2.測試計劃、測試用例、測試報告必須作為文檔長期保存

3.嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性

原則四:把Pareto原理應(yīng)用于軟件測試

原則五:窮舉測試是不可能的

原則六:測試要有獨立性

5.有哪些常用的黑盒測試方法?有哪些常用的白盒測試方法?

★考核知識點:白盒測試、黑盒測試

參見講稿章節(jié):83-8.7

附225:(考核知識點解釋)

用黑盒技術(shù)設(shè)計測試用例一般有等價類劃分、邊界值分析、錯誤推測和因果

圖4種方法。

常用的白盒測試方法包括邏輯覆蓋測試法、循環(huán)測試法、基本路徑測試法。

在邏輯覆蓋法中大致又可以分為:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆

蓋和條件組合覆蓋。

6.簡述等價類劃分以及等價類劃分原則。

★考核知識點:等價類劃分

參見講稿章節(jié):8.6

附226:(考核知識點解釋)

等價類劃分法是把所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等

價類。則可以合理地做出下述假定:每類中的一個典型值在測試中的作用與這一

類中所有其他值的作用相同。用少量有代表性的測試數(shù)據(jù)代替大量測試目的相同

的例子,能有效提高測試效率,并取得良好的測試效果。在劃分等價類時,可以

將其劃分為兩類:有效等價類和無效等價類。有效等價類是指完全滿足程序輸入

的規(guī)范說明,是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合。利用有效等價類可以

檢驗程序是否滿足規(guī)范說明書所規(guī)定的功能和性能。無效等價類是指不滿足程序

輸入的規(guī)范說明,是不合理的、無意義的輸入數(shù)據(jù)所構(gòu)成的集合。利用無效等價

類可以檢驗程序的容錯性。

等價類劃分原則:

1)如果規(guī)定了輸入取值范圍或輸入數(shù)據(jù)的個數(shù),則可劃分出一個有效等價

類(在范圍內(nèi))和兩個無效等價類(輸入值小于最小值或大于最大值)。

2)如果規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚?,則每

個允許的輸入值是一個有效等價類,還有一個無效等價類(不允許的輸入值,

3)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可劃分出一個有效等價類(符

合規(guī)則)和若干個無效等價類(從各種不同角度違反規(guī)則)。

4)如果規(guī)定了輸入數(shù)據(jù)為整型,則可以劃分出正整數(shù)、零、負(fù)整數(shù)3個有

效等價類,其他為無效等價類。

6.簡述邊界值分析法及邊界值分析的原則。

★考核知識點:邊界值分析

參見講稿章節(jié):8.7

附226:(考核知識點解釋)

邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補充,人們從長

期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是

在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。

這里所說的邊界是指,相當(dāng)于輸入等價類和輸出等價類而言,稍高于其邊界值及

稍低于其邊界值的一些特定情況。通常輸入等價類與輸出等價類的邊界,是重點

測試的內(nèi)容,應(yīng)當(dāng)選取正好等于、剛剛大于、或剛剛小于邊界的值作為測試數(shù)據(jù)。

邊界值分析原則:1)剛剛達(dá)到這個范圍的邊界值,以及剛剛超越這個范圍

的邊界值作為測試輸入數(shù)據(jù);2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、

最小個數(shù)、比最大個數(shù)多1、比最小個數(shù)少1的數(shù)作為測試數(shù)據(jù);3)根據(jù)規(guī)格

說明書的每個輸出條件,使用前面的原則1和2;4)規(guī)格說明書給出的輸入域

或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。

7.什么是類,什么是對象,類和對象是什么關(guān)系?

★考核知識點:面向?qū)ο蟮幕靖拍?,對象、類及類之間關(guān)系

參見講稿章節(jié):10.2、10.3

附227:(考核知識點解釋)

類是具有相同屬性和操作的一組相似對象(實體)的集合。也就是說,類是

對具有相同屬性和行為的一個或多個對象的描述,通常在這種描述中也包括對怎

樣創(chuàng)建該類的新對象的說明。類為屬于該類的全部對象提供了統(tǒng)一的抽象描述。

同類的對象具有相同的屬性和方法。

對象是對問題域中客觀存在的事物的抽象,是一組屬性和在這些屬性上的操

作的封裝體。

在應(yīng)用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的任何事物都可以作為對

象,它既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何有明

確邊界和意義的東西。

由于客觀世界中的實體通常都既具有靜態(tài)的屬性,又具有動杰的行為,因此,

面向?qū)ο蠓椒▽W(xué)中的對象是由描述該對象屬性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加

的所有操作封裝在一起構(gòu)成的統(tǒng)一體。

類給出了屬于該類的全部對象的抽象定義,而對象則是符合這種定義的一個

實體。

因此,對象又稱為是類的一個“實例(Instance)",類又稱為是對象的“模

板(Template)”。

另外,類是靜態(tài)的,類的語義和類之間的關(guān)系在程序執(zhí)行之前已經(jīng)定義,但

對象是動態(tài)的,在程序執(zhí)行過程中可以動態(tài)地創(chuàng)建和刪除對象;

類代表一類抽象的概念或事物,對象是在客觀世界中實際存在的類的實例。

8.簡述面向?qū)ο蠓椒▽W(xué)中類與類之間的關(guān)系。

★考核知識點:類及類之間關(guān)系

參見講稿章節(jié):10.3

附228:(考核知識點解釋)

類與類之間的關(guān)系:包括繼承、多態(tài)性、關(guān)聯(lián)、依賴、實現(xiàn)、聚集與組合。

繼承是子類自動地共享父類中定義的數(shù)據(jù)和方法的機制。反過來,從子類抽

取共同通用的特征形成父類的過程也叫做泛化(Generalization)。繼承可以表示

類與類、接口與接口之間的繼承關(guān)系,或類與接口之間的實現(xiàn)關(guān)系。具有繼承關(guān)

系的類之間,既具有共享特性又具有差別或新增,并且類之間具有層次結(jié)構(gòu)。繼

承具有傳遞性。

多態(tài)性指子類對象可以像父類對象那樣使用,它們可以共享一個操作名,然

而卻有不同的實現(xiàn)方法。

關(guān)聯(lián)體現(xiàn)的是兩個類之間語義級別的一種強依賴關(guān)系,長期性的,平等的。

關(guān)聯(lián)可以是單向的、雙向的。

依賴就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、

臨時性的、非常弱的,但是類B的變化會影響到類A。關(guān)于關(guān)聯(lián)關(guān)系和依賴關(guān)

系有一個簡單的判斷原則:某個類以成員變量的形式出現(xiàn)在另一個類中,二者是

關(guān)聯(lián)關(guān)系;某個類以局部變量的形式出現(xiàn)在另一個類中,二者是依賴關(guān)系。

實現(xiàn)是用來規(guī)定接口和實現(xiàn)接口的類之間的關(guān)系,接口是操作的集合,而這

些操作就用于規(guī)定類或者構(gòu)件的一種服務(wù)。

一個類可由一個或多類部分類組成,表示組成關(guān)系的整體和部分類之間的關(guān)

聯(lián)又可以細(xì)分為聚集和組合。整體擁有各部分,部分與整體不是相同的生存期,

如整體不存在了,部分還存在,稱為聚集;還有一種情況,整體擁有各部分,部

分與整體具有同樣的生存期,如整體不存在了,部分也會隨之消失,稱為組合。

9.面向?qū)ο蠓治鲋饕⒛膸追N模型?各自的特點是什么?

★考核知識點:面向?qū)ο蟮姆治鲞^程

參見講稿章節(jié):11.1

附2

溫馨提示

  • 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

提交評論