軟件工程考試試題(含答案)_第1頁
軟件工程考試試題(含答案)_第2頁
軟件工程考試試題(含答案)_第3頁
軟件工程考試試題(含答案)_第4頁
軟件工程考試試題(含答案)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、填空題(每空1分,共25分)

1.軟件生存周期一般可以劃分為,問題定義、、、設(shè)計、

編碼、測試和。

2.基于軟件的功能劃分,軟件可以劃分成、、________三種。

3.可行性研究,應(yīng)從、技術(shù)可行性、運行可行性、和開放方案可行性等方面研究。

4.系統(tǒng)流程圖是描繪的傳統(tǒng)工具。它的基本思想是用圖形符號以

描繪系統(tǒng)里面的每個部件。

5.數(shù)據(jù)流圖的基本四種成分:數(shù)據(jù)輸入的源點和數(shù)據(jù)輸出匯點、、

和。

6.結(jié)構(gòu)化分析方法是面向進行需求分析的方法。結(jié)構(gòu)化分析方法使

用與來描述。

7.是自動地共享類、子類和對象中的方法和數(shù)據(jù)的機制。

8.軟件詳細(xì)設(shè)計工具可分為3類,即、和

9.為了在軟件開發(fā)過程中保證軟件的質(zhì)量,主要采取下述措施:

復(fù)查和管理復(fù)審、O

10.大型軟件測試包括、、確認(rèn)測試和

四個步驟。

1、可行性研究需求分析運行與維護

2、系統(tǒng)軟件支撐軟件應(yīng)用軟件

3、經(jīng)濟可行性法律可行性

4、物理系統(tǒng)黑盒子形式

5、加工數(shù)據(jù)流數(shù)據(jù)存儲文件

6、數(shù)據(jù)流數(shù)據(jù)流圖DFD數(shù)據(jù)字典DD

7、繼承性

8、圖示工具、設(shè)計語言表格工具

9、審查測試

10、單元測試集成測試系統(tǒng)測試

二、單項選擇題(每小題2分,共20分)

12345

CCCAC

678910

DDACB

1.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()o

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

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

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

D、高內(nèi)聚高耦合

2.Jackson設(shè)計方法是由英國的M.Jackson提出的,它是一種面向()的軟件

設(shè)計方法。

A、對象

B、數(shù)據(jù)流

C、數(shù)據(jù)結(jié)構(gòu)

D、控制結(jié)構(gòu)

3.試判斷下列敘述中,哪個(些)是正確的()。

a、軟件系統(tǒng)中所有的信息流都可以認(rèn)為是事務(wù)流

b、軟件系統(tǒng)中所有的信息流都可以認(rèn)為是變換流

c、事務(wù)分析和變換分析的設(shè)計步驟是基本相似的

A、aB、bC、cD、b和c

4.()是用戶和設(shè)計交換最頻繁的方法。

A、原型化方法B、瀑布模型方法

C、螺旋模型方法D、構(gòu)件組裝模型

5.軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實施

的主要保證是(兀

A、硬件環(huán)境B、軟件開發(fā)的

環(huán)境

C、軟件開發(fā)工具和軟件開發(fā)的環(huán)境D、開發(fā)人員的素質(zhì)

6.20世紀(jì)50年代以來,出現(xiàn)了許多不同的程序設(shè)計語言,下列語言中哪個語言是低

級語言()。

A、PASCALB、VISUALBASIC

C、C++D、匯編語言

7.軟件測試的目的是?()

A、證明軟件的正確性

B、找出軟件系統(tǒng)中存在的所有錯誤

C、證明軟件系統(tǒng)中存在錯誤

D、盡可能多的發(fā)現(xiàn)軟件系統(tǒng)中的錯誤

8.使用白盒測試方法時,確定測試數(shù)據(jù)應(yīng)根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。

A、程序的內(nèi)部邏輯B、程序的復(fù)雜程度

C、該軟件的編輯人員D、程序的功能

9.軟件維護工作的最主要部分是(兀

A、校正性維護B、適應(yīng)性維護

C、完善性維護I)、預(yù)防性維護

10.PDL是()語言。

A、高級程序設(shè)計語言B、偽碼式

C、中級程序設(shè)計語言D、低級程序設(shè)計語言

三、判斷題(正確的在括號內(nèi)打上“J”,錯誤的打上“X”。每題2分,共20分)

1.用黑盒法測試時,測試用例是根據(jù)程序內(nèi)部邏輯設(shè)計的。(X)

2.發(fā)現(xiàn)錯誤多的程序模塊,殘留在模塊中的錯誤也多。(V)

3.為了加快軟件維護作業(yè)的進度,應(yīng)盡可能增加維護人員的數(shù)目。(X)

4.軟件維護就是改正軟件中的錯誤。(X)

5.質(zhì)量保證是為了保證產(chǎn)品和服務(wù)充分滿足消費者要求的質(zhì)量而進行的有計劃,有組

織的活動。(V)

6.軟件開發(fā)的主要任務(wù)是寫程序。(X)

7.測試只能證明程序有錯誤,不能證明程序沒有錯誤。(V)

8.模塊化程序設(shè)計中,模塊越小,模塊化的優(yōu)點越明顯。一般來說,模塊的大小都

在10行以下。(X)

9.在編制程序時,首先應(yīng)該對程序的結(jié)構(gòu)充分考慮,不要急于開始編碼,而要像寫軟

件文檔那樣,很好地琢磨程序具有什么樣的功能,這些功能如何安排,等等。

(X)

10.程序設(shè)計風(fēng)格指導(dǎo)原則提出,盡量多使用臨時變量。(X)

四、簡答題(每題5分,共20分)

1.什么是軟件工程?

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

和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到

的最好的技術(shù)方法結(jié)合起來。

2.耦合性和內(nèi)聚性有幾種類型?其耦合度、內(nèi)聚強度的順序如何?

低:非直接耦合f數(shù)據(jù)耦合f標(biāo)記耦合一控制耦合-外部耦合->公共耦合一內(nèi)

容耦合:高

強:功能內(nèi)聚-信息內(nèi)聚一通信內(nèi)聚一過程內(nèi)聚f時間內(nèi)聚一邏輯內(nèi)聚-

巧合內(nèi)聚:弱

3.簡述需求分析工作可以分成哪四個方面?軟件需求分析的有哪三個基本原則?

:需求分析階段分成四個方面:對問題的識別、分析與綜合、制定規(guī)格說明和評審。

三個基本原則:必須能夠表達和理解問題的數(shù)據(jù)域和功能域;必須按自頂向下、逐

步分解的方式對問題進行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。

4.什么是黑盒測試法?

黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,

它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮?/p>

輸入數(shù)據(jù),產(chǎn)生正確地輸出信息。

五、程序設(shè)計與算法描述題(共15分)

1.根據(jù)下面的偽代碼程序,完成相應(yīng)要求。(8分)

START

IFC1

THEN

WHILEC2DO

f

ENDDO

ELSE

BLOCK

g

P

ENDBLOCK

ENDIF

REPEATUNTILC3

q

ENDREP

STOP

1)畫出程序流程圖(4分)

2.有下列偽碼程序:

START

INPUT(M,N)

IFM>=10

THENX=10

ELSEX=l

ENDIF

IFN>=20

THENY=20

ELSEY=2

ENDIF

PRINT(X,Y)

STOP

設(shè)計該程序的語句覆蓋和路徑覆蓋測試用例。(7分)

M=9(或<10),N=19(或〈20);

M=10(或>二10),N=20(或>:20)

路徑覆蓋的測試用例為

M=9,N=19;

M=9、N=20;

M=10,N=19;

M=10,N=20

要目標(biāo)是提高軟件質(zhì)量,減少軟件維護代價。

~問題定義(確定題目)

,軟件定義V可行性研究

、需求分析

一概要設(shè)計

-系統(tǒng)設(shè)計-

一詳細(xì)設(shè)計

軟件生命周期:<軟件開發(fā)一

一編碼和單元測試

、系統(tǒng)實現(xiàn)一

J綜合測試

I運行維護:主要任務(wù)是使軟件持久地滿足用戶的需要

軟件過程五個模型對比(瀑布模型、快速原型、增量、螺旋、噴泉模型)

可行性研究:

1、任務(wù):用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。

2、四個方面:技術(shù)、經(jīng)濟、操作可行性

3、數(shù)據(jù)流圖四種成分:1、源點/終點2、處理3、數(shù)據(jù)存儲4、數(shù)據(jù)流

需求分析:

1、任務(wù):確定系統(tǒng)必須完成哪些工作,對目標(biāo)系統(tǒng)提出完整、清晰、具體的要求。

2、結(jié)構(gòu)化方法就是面向數(shù)據(jù)流自頂向下逐步求精進行需求分析的方法。

3、實體聯(lián)系圖:1、數(shù)據(jù)對象2、屬性3、聯(lián)系(1:1、1:N、M:N)

總體設(shè)計:

任務(wù):回答''概括的說,系統(tǒng)應(yīng)該如何實現(xiàn)",用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)

定的任務(wù),也就是說應(yīng)該確定系統(tǒng)的物理配置方案,并且進而確定組成系統(tǒng)的每個程序結(jié)構(gòu)。

系統(tǒng)設(shè)計階段(確定系統(tǒng)具體實施方案)、結(jié)構(gòu)設(shè)計階段(確定軟件結(jié)構(gòu))

模塊獨立:內(nèi)聚和耦合

耦合表示一個軟件結(jié)構(gòu)內(nèi)各個模塊之間的互連程度,應(yīng)盡量選用松散耦合的系統(tǒng)

低耦合性高

非直接耦合數(shù)據(jù)耦合標(biāo)記耦臺控制耦合外部耦合公共耦合內(nèi)容耦合

強^---------------------模塊獨立性--------------------------弱

內(nèi)聚(Cohesion):一個模塊內(nèi)各元素結(jié)合的緊密程度

高-------------------------內(nèi)聚性---------------------------低

功能內(nèi)聚信息內(nèi)聚通信內(nèi)聚過程內(nèi)聚時間內(nèi)聚邏輯內(nèi)聚巧合內(nèi)聚

強------------------------模塊獨立性-------------------------弱

功能單一功能分散

面向數(shù)據(jù)流的設(shè)計方法:變換流和事務(wù)流

詳細(xì)設(shè)計:

任務(wù):確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng),也就是說經(jīng)過這個階段的設(shè)計工作應(yīng)該得出

對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書

寫的程序。

過程設(shè)計的工具(程序流程圖、盒圖、PAD圖、判定表、判定樹)

面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(jackson方法):

程序復(fù)雜程度的定量(McCabe方法):1、V(G)=E-N+2(E是流圖中邊的條數(shù),N是結(jié)點數(shù))

2、V(G)=P+1(P是流圖中判定結(jié)點的個數(shù))3、流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。

編碼

單元測試:又稱模塊測試。每個程序模塊完成一個相對獨立的子功能,所以可以對該模塊進

行單獨的測試。由于每個模塊都有清晰定義的功能,所以通常比較容易設(shè)計相應(yīng)的測試方案,

以檢驗每個模塊的正確性。

集成測試:

在單元測試完成后,要考慮將模塊集成為系統(tǒng)的過程中可能出現(xiàn)的問題,例如,模塊之間的

通信和協(xié)調(diào)問題,所以在單元測試結(jié)束之后還要進行集成測試。這個步驟著重測試模塊間的

接口,子功能的組合是否達到了預(yù)期要求的功能,全程數(shù)據(jù)結(jié)構(gòu)是否有問題等。

白盒測試技術(shù)(邏輯覆蓋、基本路經(jīng)測試)

白盒測試時將程序看作是一個透明的盒子,也就是說測試人員完全了解程序的內(nèi)部結(jié)構(gòu)和處

理過程。所以測試時按照程序內(nèi)部的邏輯測試程序、檢驗程序中的每條通路是否都能按預(yù)定

的要求正確工作。白盒測試又稱為結(jié)構(gòu)測試。

語句覆蓋就是設(shè)計足夠的調(diào)試用例,使得程序中的每個語句至少執(zhí)行一次。

判定覆蓋就是設(shè)計足夠的測試用例,使得程序中每個判定的取“真'’分支和取"假’'分支至少都

執(zhí)行一次,判定覆蓋又稱分支覆蓋

條件覆蓋就是設(shè)計足夠的測試用例,使得程序判定中的每個條件能獲得各種可能的結(jié)果。

判定/條件覆蓋就是設(shè)計足夠的測試用例,使得判定中的每個條件都取到各種可能的值,而

且每個判定表達式也都取到各種可能的結(jié)果。

條件組合覆蓋就是設(shè)計足夠的測試用例,使得每個判定中的條件的各種可能組合都至少出現(xiàn)

一次。

基本路經(jīng)測試:

黑盒測試技術(shù)(等價劃分)

黑盒測試時完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程,只按照規(guī)格說明書的規(guī)定來檢查程序是

否符合它的功能要求。黑盒測試是在程序接口進行的測試,又稱為功能測試。

1、黑盒測試檢查的主要方面有:

程序的功能是否正確或完善;

數(shù)據(jù)的輸入能否正確接收,輸出是否正確;

是否能保證外部信息(如數(shù)據(jù)文件)的完整性等。

用黑盒法設(shè)計測試用例時,必須用所有可能的輸入數(shù)據(jù)來檢查程序是否都能產(chǎn)生正確的輸出

2、等價類劃分

等價類的劃分在很大程度上依靠的是測試人員的經(jīng)驗,下面給出幾條基本原則:

(1)如果輸入條件規(guī)定了取值范圍,則可劃分出一個有效的等價類(輸入值在此范圍內(nèi))

和兩個無效的等價類(輸入值小于最小值、輸入值大于最大值)。

(2)如果輸入條件規(guī)定了輸入數(shù)據(jù)的個數(shù),則可相應(yīng)地劃分出一個有效的等價類(輸入數(shù)

據(jù)的個數(shù)等于給定的個數(shù)要求)和兩個無效的等價類(輸入數(shù)據(jù)的個數(shù)少于給定的個數(shù)要求、

輸入數(shù)據(jù)的個數(shù)多于給定的個數(shù)要求)。

(3)如果輸入條件規(guī)定了輸入數(shù)據(jù)的一組可能的值,而且程序?qū)@組可能的值做相同的處

理,則可將這組可能的值劃分為一個有效的等價類,而這些值以外的值劃分成無效的等價類。

(4)如果輸入條件規(guī)定了輸入數(shù)據(jù)的一組可能的值,但是程序?qū)Σ煌妮斎胫底霾煌奶?/p>

理,則每個輸入值是一個有效的等價類,此外還有一個無效的等價類(所有不允許值的集合)。

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

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

維護(改正性維護、適應(yīng)性維護、完善性維護、預(yù)防性維護)

決定軟件可維護性因素(可理解性、可測試性、可修改性、可移植性、可重用性)

面向?qū)ο蠓椒▽W(xué)優(yōu)點:1、與人類習(xí)慣的思維方法一致2、穩(wěn)定性好3、可重用性好4、較易

開發(fā)大型軟件產(chǎn)品5、可維護性好

對象模型1、關(guān)聯(lián)2、聚集3、泛化4、依賴和細(xì)化

貳軟件工程

1.1軟件危機

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

(熟記)

2、了解軟件危機主要的一些典型表現(xiàn)。(P2)

3、出現(xiàn)軟件危機的原因:

4、消除軟件危機的途徑:首先,我們要對計算機軟件有一個正確的認(rèn)識;更重

要的是,必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種

組織良好、管理嚴(yán)格、各類人員協(xié)同配合、共同完成的工程項目;最后,應(yīng)該開

發(fā)和使用更好的軟件工具。

總之,為了解決軟件危機,既要有技術(shù)措施(方法和工具),又要有必要的組織

管理措施。

1.2軟件工程

I、軟件工程:采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護軟件,把經(jīng)過

時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以

經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它。(熟記)

2、了解軟件工程的本質(zhì)特征:

1)、軟件工程關(guān)注于大型程序的構(gòu)造

2)、軟件工程的中心課題是控制復(fù)雜性

3)、軟件經(jīng)常變化

4)、開發(fā)軟件的效率非常重要

5)、和諧的合作是開發(fā)軟件的關(guān)鍵

6)、軟件必須有效地支持它的用戶

7)、在軟件工程的領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背

景的人創(chuàng)造產(chǎn)品

3、缺乏應(yīng)用領(lǐng)域地相關(guān)知識,是軟件開發(fā)項目出現(xiàn)問題的常見原因。

4、軟件工程的基本原理:

1)、用分階段的生命周期計劃嚴(yán)格管理

2)、堅持進行階段審評

3)、實行嚴(yán)格的產(chǎn)品控制

4)、采用現(xiàn)代程序設(shè)計技術(shù)

5)、結(jié)果應(yīng)能清楚地審查

6)、開發(fā)小組的人員應(yīng)該少而精

7)、承認(rèn)不斷改進軟件工程實踐的必要性

5、方法學(xué)(范型):在軟件生命周期全過程中使用的一整套技術(shù)方法的集合。

6、軟件工程方法學(xué)3要素:方法、工具和過程。

7、目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)

8、傳統(tǒng)方法學(xué)也成為生命周期方法學(xué)或結(jié)構(gòu)化范型。

9、面向?qū)ο蠓椒▽W(xué)具有的4個要點。(P10)

1.3軟件生命周期

1、概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運行維護(也稱為軟件維

護)3個時期組成,每個時期又進一步劃分成若干個階段。

2、軟件定義時期的任務(wù)

3、軟件定義時期通常進一步劃分成3個階段:問題定義、可行性研究、需求分

4、維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。

5、軟件開發(fā)時期通常分成4個階段:總體設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、

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

6、軟件生命周期每個階段的基本任務(wù):問題定義、可行性研究、需求分析、總

體設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、綜合測試.

1.4軟件工程

生命周期模型(過程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、

噴泉模型。

(對各種模型要了解)

1.5小結(jié)(熟讀,對本章系統(tǒng)地了解)

可行性分析

可行性分析的目的:用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。

2.1可行性研究的任務(wù)

研究解法的可行性的三個方面:技術(shù)可行性、經(jīng)濟可行性、操作可行性。

可行性研究最根本的任務(wù):對以后的行動方針提出建議。

可行性研究需要的時間長短取決于工程的規(guī)模。

2.2可行性研究過程

復(fù)查系統(tǒng)規(guī)模和目標(biāo)

研究目前正在試用的系統(tǒng)

導(dǎo)出新系統(tǒng)的高層邏輯模型

進一步定義問題

導(dǎo)出和評價供選擇的解法

推薦行動方針

草擬開發(fā)計劃

書寫文檔提交審查

2.3系統(tǒng)流程圖

1、系統(tǒng)流程圖:概括地描繪物理系統(tǒng)的工具。

2、系統(tǒng)流程圖的基本思想:用圖形符號以黑盒子形式描繪組系統(tǒng)的每個部件(程

序、文檔、數(shù)據(jù)庫、人工過程等)。

3、P39符號

4、系統(tǒng)流程圖的習(xí)慣畫法:使信息在圖中從頂向下或從左向右流動。

5、面對復(fù)雜的系統(tǒng)時,一個比較好的方法時分層次地描繪這個系統(tǒng)。

2.4數(shù)據(jù)流圖

數(shù)據(jù)流圖(DFD):一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的

過程中所經(jīng)受的變換。

數(shù)據(jù)流圖的四種基本符號P41

數(shù)據(jù)存儲(靜止?fàn)顟B(tài))和數(shù)據(jù)流(運動)都是數(shù)據(jù)。

數(shù)據(jù)流圖的基本要點是描繪“做什么”,而不是考慮“怎么做”。

星號(*)是數(shù)據(jù)流之間的“與”關(guān)系;加號(+)表示“或”關(guān)系;十號表示只

能從中選一個(互斥關(guān)系)。

畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。

2.5數(shù)據(jù)字典

數(shù)據(jù)字典應(yīng)由對下列4類元素的定義組成:數(shù)據(jù)流、數(shù)據(jù)流分量(即數(shù)據(jù)元素)、

數(shù)據(jù)存儲、處理。

由數(shù)據(jù)元素組成數(shù)據(jù)的方式的三種基本類型:順序、選擇、重復(fù)。+可選

用以下符號描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系:=意思是等價于(或定義為)、+意

思是和(即連接兩個分量)、[}意思是或(通常用號隔開供選擇的分量)、

{}意思是重復(fù)、()意思是可選。

數(shù)據(jù)字典最重要的用途是作為分析階段的工具。

2.6成本/效益分析

成本/效益分析的目的:從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而

幫助客戶組織的負(fù)責(zé)人正確地作出是否投資于這項開發(fā)工程的決定。

軟件開發(fā)成本:主要表現(xiàn)為人力消耗。

成本估算技術(shù):代碼行技術(shù)、任務(wù)分解技術(shù)、自動估計成本技術(shù)。

貨幣的時間價值:用利率的形式。

假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后的價值:F=P(l+i)'n

衡量一項開發(fā)工程的價值:投資回收期。

純收入

投資回收率

2.7小結(jié)

三需求分析

需求分析是軟件定義時期的最后一個階段。

基本任務(wù):準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個問題。

用于需求分析的結(jié)構(gòu)化分析方法必須遵守下述準(zhǔn)則:

(1)、必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該應(yīng)該建立數(shù)據(jù)模型。

E-R圖

(2)、必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。數(shù)據(jù)流圖

(3)、必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。

狀態(tài)圖

(4)、必須對描述信息、功能和行為的模型進行分解,用層次的方式展開細(xì)

節(jié)。

3.1需求分析的任務(wù)

對軟件系統(tǒng)的綜合要求:功能需求、性能需求、可靠性和可用性需求、出錯處理

需求、接口需求、約束、逆向需求、將來可能提出的要求。

需求分析的任務(wù):確定對系統(tǒng)的綜合要求

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

導(dǎo)出系統(tǒng)的邏輯模型

修正系統(tǒng)開發(fā)計劃

3.2與用戶溝通獲取需求的方法

訪談、面向數(shù)據(jù)流自頂向下求精、簡易地應(yīng)用規(guī)格說明技術(shù),快速建立軟件原型。

結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下求精進行需求分析的方法。

快速建立軟件原型是最準(zhǔn)確、最有效、最強大的需求分析技術(shù)。

3.3分析建模與規(guī)格說明

需求分析過程應(yīng)建立3種模型:數(shù)據(jù)模型、功能模型、行為模型。

數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)。

狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。

3.4實體-聯(lián)系圖(E-R)

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

3.5數(shù)據(jù)規(guī)范化

第一范式:每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。

第二范式:滿足第一范式的條件,而且每個非關(guān)鍵字都由整個關(guān)鍵字決定(而不

第三范式:符合%二范式的,件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一

個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進一步描述(即一個非關(guān)鍵

字屬性值不依賴于另一個非關(guān)鍵字屬性值)。

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

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

來表示系統(tǒng)的行為。

在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(即最終狀態(tài))和中

間狀態(tài)。在狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有o至多個。

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

在狀態(tài)圖中,初態(tài)用一對同心圓(內(nèi)圓為實心圓)表示。中間狀態(tài)用圓角矩形表

示。如圖:

活動方件名(參數(shù)表)/動作表達式

狀態(tài)名1

在活漫3種標(biāo)準(zhǔn)事件:

注入該狀態(tài)的動作

狀態(tài)變量的

出該狀態(tài)的動作

名字和值

亥狀態(tài)下的動作

活動表

狀態(tài)轉(zhuǎn)轉(zhuǎn)換方向。

事件表、直的有法:1:件說明【守衛(wèi)條件】/動作表達式

事件說明與守衛(wèi)條件同時使用時,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達式為真時,

狀態(tài)轉(zhuǎn)換才發(fā)生;如果只有守衛(wèi)條件沒有事件說明則只要守衛(wèi)條件為真,狀態(tài)轉(zhuǎn)

換就發(fā)生。

守衛(wèi)條件是一個布爾表達式。

動作表達式是一個過程表達式,當(dāng)狀態(tài)表達式開始時執(zhí)行該表達式。

3.7其他圖形

層次方框圖、warnier圖、IPO圖(輸入、處理、輸出圖的簡稱)

3.8驗證軟件需求

從四個方面進行驗證:一致性、完整新、現(xiàn)實性、有效性

3.9小結(jié)

五總體設(shè)計

5.1設(shè)計過程

總體設(shè)計過程通常有兩個主要階段組成:系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實現(xiàn)方

案;結(jié)構(gòu)設(shè)計階段,確定軟件的結(jié)構(gòu)。

典型的總體設(shè)計過程包括下述9個步驟:

1)、設(shè)想宮選擇的方案

需求分析階段得出的數(shù)據(jù)流程圖是總體設(shè)計的極好的出發(fā)點。

2)、選擇合理的方案

對每個合理的方案,分析員都應(yīng)準(zhǔn)備下列四份材料:

A.系統(tǒng)流程圖

B.組成系統(tǒng)的物理元素清單

C.成本/效益分析

D.實現(xiàn)各個系統(tǒng)的進度計劃

3)、推薦最佳方案

4)、功能分解

5)、設(shè)計軟件結(jié)構(gòu)

軟件結(jié)構(gòu)可以用層次圖或結(jié)構(gòu)圖來描繪。

6)、設(shè)計數(shù)據(jù)庫

7)、制定測試計劃

8)、書寫文檔

這個階段完成的文檔有:系統(tǒng)說明、用戶手冊、測試計劃、詳細(xì)的實現(xiàn)

計劃、數(shù)據(jù)庫設(shè)計結(jié)果。

9)、審查和復(fù)查

5.2設(shè)計原理

模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立

模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標(biāo)識符代表它。

模塊是構(gòu)成程序的基本構(gòu)件。

模塊化就是把程序分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功

能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求。

抽象:把相似的方面集中和概括起來,暫時忽略它們之間的差異,或者說,抽出

事物的本質(zhì)特性而暫時不考慮它們之間的細(xì)節(jié)。

逐步求精是人類解決復(fù)雜問題時采用的基本方法,也是許多軟件工程技術(shù)的基

礎(chǔ)。定義:為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮。

信息隱藏原理指出:應(yīng)該這樣設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信息(過

程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。

局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。

模塊獨立的概念是模塊化,抽象,信息隱藏和局部化概念的直接結(jié)果。

模塊獨立化重要性的原因:第一,有效地模塊化的軟件比較容易開發(fā)出來;第二,

獨立的模塊化比較容易測試和維護。

模塊的獨立程度可以由兩個定性標(biāo)準(zhǔn)度量,這兩個標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。

耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。

耦合的強弱取決于模塊間接口的復(fù)雜程度,進入或訪問一個模塊的點,以及通過

接口的數(shù)據(jù)。

如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種

耦合稱為數(shù)據(jù)耦合。

如果傳遞的信息中有控制信息(盡管有時這種控制信息以數(shù)據(jù)的形式出現(xiàn)),則

這種耦合稱為控制耦合。

數(shù)據(jù)耦合是低耦合。

公共環(huán)境耦合、

晶宮樂里度的理A#內(nèi)去圭里人

內(nèi)最標(biāo)志著一木模塊內(nèi)各X:素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概

念的自然擴展。

偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚

低內(nèi)聚、中內(nèi)聚、高內(nèi)聚的分類。

5.3啟發(fā)規(guī)則

/軟件結(jié)構(gòu)提高模塊獨立性

模塊規(guī)模應(yīng)該適中

深度、寬度、扇出和扇入都應(yīng)適當(dāng)

模塊的應(yīng)用域應(yīng)該在控制域之內(nèi)

力爭降低模塊接口的復(fù)雜程度

設(shè)計單入口單出口的模塊

模塊功能應(yīng)該可以預(yù)測

5.4描繪軟件結(jié)構(gòu)的圖形工具

層次圖和HIPO圖

結(jié)構(gòu)圖

5.5面向數(shù)據(jù)流的設(shè)計方法

面向數(shù)據(jù)流的設(shè)計方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方

法。

信息流分成兩種類型:變化流、事物流(概念)

變換分析是一系列設(shè)計步驟的總稱,經(jīng)過這些步驟吧具有變換流特點的數(shù)據(jù)流圖

按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。

變換分析的設(shè)計步驟。

5.6小結(jié)

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

目標(biāo):1.確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng)

2.設(shè)計出程序的“藍(lán)圖”

3.詳細(xì)設(shè)計的結(jié)果基本決定了最終的程序代碼的質(zhì)量

6.1結(jié)構(gòu)程序設(shè)計

1.概念:結(jié)果程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向

下逐步求精的的設(shè)計方法和單入口但出口的控制結(jié)構(gòu)。

2.三種基本控制結(jié)構(gòu):

1)順序結(jié)構(gòu):相當(dāng)于“A、B”

2)選擇結(jié)構(gòu):相當(dāng)于"IfexpthenAelseBendif;"

3)循環(huán)結(jié)構(gòu):相當(dāng)于"WhileexpdoA”

3.擴充的兩種控制結(jié)構(gòu):

1)多分支結(jié)構(gòu):相當(dāng)于“CaseIofI=l:Cl;.......I=n:Cn;w

2)UNTIL循環(huán)結(jié)構(gòu):相當(dāng)于"RepeatAuntilexp;"

4.結(jié)構(gòu)程序設(shè)計的種類:

1)經(jīng)典的結(jié)構(gòu)程序設(shè)計:只允許使用順序、IF_THEN

_ELSE型分支和DO_WHILE型循環(huán);

2)擴展的結(jié)構(gòu)程序設(shè)計:除了三種基本控制結(jié)構(gòu),還使用

DO_CASE型多分支結(jié)構(gòu)和DO_WHILE型循環(huán)結(jié)構(gòu);

3)修正的結(jié)構(gòu)程序設(shè)計:除了三種基本控制結(jié)構(gòu)和兩種擴

充結(jié)構(gòu),還使用LEAVE(或BREAK)結(jié)構(gòu)。

6.2人機界面設(shè)計

6.2.1設(shè)計問題

1.系統(tǒng)響應(yīng)時間

2.用戶幫助設(shè)施

3.出錯信息處理

4.命令交互

6.2.2設(shè)計過程

6.2.3人機界面設(shè)計指南

1.一般交互指南

2.信息顯示指南

3.數(shù)據(jù)輸入指南

6.3過程設(shè)計的工具

6.3.1程序流程圖

程序流程圖:是一種描述程序的控制結(jié)構(gòu)流程和指令執(zhí)行情況的有向

圖。程序流程圖的主要缺點:

程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮

程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。

程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完

全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。

程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。

6.3.2盒圖

盒圖特點:

功能域明確,可以從盒圖上一眼就看出來。

不可能任意轉(zhuǎn)移控制。

很容易確定局部和全程數(shù)據(jù)的作用域。

很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。

PAD圖

是一種問題分析圖。

PAD圖優(yōu)點:

使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號所設(shè)計出來的程序必然是結(jié)構(gòu)

化程序

PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主

線,即第一層結(jié)構(gòu)。隨著德程序?qū)哟蔚脑黾?,PAD圖逐漸向右延伸,

每次增加一個層次,圖形向右擴展豎線。PAD圖中豎線的總條數(shù)就

是程序的層次數(shù)。

用PAD圖表現(xiàn)程序邏輯,易懂、易讀、易記。PAD圖是二維樹形結(jié)

構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點開始執(zhí)行,自上而下,從

左向右順序執(zhí)行,遍歷所有結(jié)點。

容易將PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動

完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生

產(chǎn)率。

即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。

PAD圖的符號支持自頂向下、逐步求精方法的使用。開始時設(shè)計者

可以定義一個抽象的程序,隨著設(shè)計工作的深入而使用def符號逐步

增加細(xì)節(jié),直至完成詳細(xì)設(shè)計。

判定表

判定表由四部分組成:

左上部列出所有條件

左下部是所有可能做的動作

右上部是表示各種條件組合的一個矩陣

右下部是和每種條件組合相對應(yīng)的動作

6.3.5判定樹

判定樹是判定表的變種。

過程設(shè)計語言

過程設(shè)計語言(PDL)也稱為偽碼。

PDL的優(yōu)點:

可以作為注釋的直接插在源程序中間

可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PD1

的書寫和編輯工作

已經(jīng)有自動處理PDL的程序存在,而且可以自動由PDL生成程序代

碼。

PDL缺點:不如圖形工具形象直觀。

面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法

Jackson圖

順序結(jié)構(gòu)

選擇結(jié)構(gòu)

重復(fù)結(jié)構(gòu)

改進的Jackson圖

Jackson方法

Jackson結(jié)構(gòu)程序設(shè)計方法基本上由5個步驟組成:

分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描繪這

些數(shù)據(jù)結(jié)構(gòu)。

找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元。

用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的

Jackson圖。

為每對有對應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們在數(shù)據(jù)結(jié)構(gòu)圖中的層次在程

序結(jié)構(gòu)圖的相應(yīng)層次畫一個處理框。

根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖

的相應(yīng)層次分別為它們畫上對應(yīng)的處理框。

根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖

的相應(yīng)層次分別為它們畫上對應(yīng)的處理框。

列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。

用偽碼表示程序。

程序復(fù)雜程度的定量度量

McCabe方法

1.流圖

“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)

對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。

2.計算環(huán)形復(fù)雜度的方法

環(huán)形復(fù)雜度等于流圖中的區(qū)域數(shù)。

流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù)的,

N是結(jié)點數(shù)。

流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點的數(shù)目。

3.環(huán)形復(fù)雜度的用途

它是對測試難度的一種定量度量,也能對軟件最終的可靠性給出某

種預(yù)測。

實踐表明,模塊規(guī)模以V(G)<=10為宜。

6.5.2Halstead

根據(jù)程序中運算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。

N=NI+N2

程序總長度:N

運算符出現(xiàn)的總次數(shù):Ni

操作數(shù)出現(xiàn)的總次數(shù):N2

Halstead給出的預(yù)測程序長度的公式:

H=n1Iog2n1+n2Iog2n2

預(yù)測程序中包含錯誤的個數(shù)的公式:

E=Nlog2(n1+n2)/3000

第七章實現(xiàn)

概念:編碼和測試統(tǒng)稱為實現(xiàn)。

編碼:把軟件設(shè)計結(jié)果翻譯成程序。

測試:檢測程序并改正錯誤的過程。

編碼

選擇程序設(shè)計語言

1.計算機程序設(shè)計語言基本上可以分為兩大類:

1):匯編語言

2):高級語言

2.選擇語言時應(yīng)考慮的實用標(biāo)準(zhǔn):

系統(tǒng)用戶要求

可以使用的編譯程序

可以得到的軟件工具

工程規(guī)模

程序員的知識

軟件可移植性要求

軟件的應(yīng)用領(lǐng)域

編碼風(fēng)格

程序內(nèi)部的文檔

數(shù)據(jù)說明

語句構(gòu)造

輸入輸出

效率

軟件測試基礎(chǔ)

7.2.1軟件測試的目標(biāo)

1.有關(guān)測試的一些規(guī)則:

測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程

好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試

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

軟件測試準(zhǔn)則

所有測試都應(yīng)該追溯到用戶要求

應(yīng)該遠(yuǎn)在測試開始之前就制定出側(cè)是計劃

把Pareto原理應(yīng)用到軟件測試中

應(yīng)該從“小規(guī)模”測試開始,并逐步進行“大規(guī)模”測試

窮舉測試是不可能的

為了達到最佳的測試效果,應(yīng)該由獨立的第三方從事測試工作

測試方法

黑盒測試

白盒測試

測試步驟

模塊測試

子系統(tǒng)測試

系統(tǒng)測試

驗收測試

平行運行

測試階段的信息流

單元測試

測試重點:

模塊接口

局部數(shù)據(jù)結(jié)構(gòu)

重要的執(zhí)行通路

出錯處理通路

邊界條件

代碼審查

計算機測試

集成測試

自頂向下集成

自頂向下集成是一種遞增的裝配軟件結(jié)構(gòu)的方法,這種應(yīng)用方法非常

廣泛。它需要存根程序,不需要驅(qū)動程序。

自底向上集成

自底向上集成是從軟件結(jié)構(gòu)最底層模塊開始進行組裝和測試,它與自

頂向下結(jié)合方法相反,需要驅(qū)動程序,但是不需要存根程序。

不同集成測試策略的比較

回歸測試

包括3類不同的測試用例

檢測軟件全部功

溫馨提示

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

評論

0/150

提交評論