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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

編碼、測試和。

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

3.可行性研究,應從、技術可行性、運行可行性、和開放方案可行性等方面研究。

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

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

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

和。

6.結構化分析方法是面向進行需求分析的方法。結構化分析方法使

用與來描述。

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

8.軟件詳細設計工具可分為3類,即、和

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

復查和管理復審、O

10.大型軟件測試包括、、確認測試和

四個步驟。

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

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

3、經濟可行性法律可行性

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

5、加工數據流數據存儲文件

6、數據流數據流圖DFD數據字典DD

7、繼承性

8、圖示工具、設計語言表格工具

9、審查測試

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

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

12345

CCCAC

678910

DDACB

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

A、低內聚低耦合

B、低內聚高耦合

C、高內聚低耦合

D、高內聚高耦合

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

設計方法。

A、對象

B、數據流

C、數據結構

D、控制結構

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

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

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

c、事務分析和變換分析的設計步驟是基本相似的

A、aB、bC、cD、b和c

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

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

C、螺旋模型方法D、構件組裝模型

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

的主要保證是(兀

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

環(huán)境

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

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

級語言()。

A、PASCALB、VISUALBASIC

C、C++D、匯編語言

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

A、證明軟件的正確性

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

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

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

8.使用白盒測試方法時,確定測試數據應根據()和指定的覆蓋標準。

A、程序的內部邏輯B、程序的復雜程度

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

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

A、校正性維護B、適應性維護

C、完善性維護I)、預防性維護

10.PDL是()語言。

A、高級程序設計語言B、偽碼式

C、中級程序設計語言D、低級程序設計語言

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

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

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

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

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

5.質量保證是為了保證產品和服務充分滿足消費者要求的質量而進行的有計劃,有組

織的活動。(V)

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

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

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

在10行以下。(X)

9.在編制程序時,首先應該對程序的結構充分考慮,不要急于開始編碼,而要像寫軟

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

(X)

10.程序設計風格指導原則提出,盡量多使用臨時變量。(X)

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

1.什么是軟件工程?

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

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

的最好的技術方法結合起來。

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

低:非直接耦合f數據耦合f標記耦合一控制耦合-外部耦合->公共耦合一內

容耦合:高

強:功能內聚-信息內聚一通信內聚一過程內聚f時間內聚一邏輯內聚-

巧合內聚:弱

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

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

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

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

4.什么是黑盒測試法?

黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程,

它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當地接收

輸入數據,產生正確地輸出信息。

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

1.根據下面的偽代碼程序,完成相應要求。(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

設計該程序的語句覆蓋和路徑覆蓋測試用例。(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

要目標是提高軟件質量,減少軟件維護代價。

~問題定義(確定題目)

,軟件定義V可行性研究

、需求分析

一概要設計

-系統(tǒng)設計-

一詳細設計

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

一編碼和單元測試

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

J綜合測試

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

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

可行性研究:

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

2、四個方面:技術、經濟、操作可行性

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

需求分析:

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

2、結構化方法就是面向數據流自頂向下逐步求精進行需求分析的方法。

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

總體設計:

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

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

系統(tǒng)設計階段(確定系統(tǒng)具體實施方案)、結構設計階段(確定軟件結構)

模塊獨立:內聚和耦合

耦合表示一個軟件結構內各個模塊之間的互連程度,應盡量選用松散耦合的系統(tǒng)

低耦合性高

非直接耦合數據耦合標記耦臺控制耦合外部耦合公共耦合內容耦合

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

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

高-------------------------內聚性---------------------------低

功能內聚信息內聚通信內聚過程內聚時間內聚邏輯內聚巧合內聚

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

功能單一功能分散

面向數據流的設計方法:變換流和事務流

詳細設計:

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

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

寫的程序。

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

面向數據結構的設計方法(jackson方法):

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

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

編碼

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

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

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

集成測試:

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

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

接口,子功能的組合是否達到了預期要求的功能,全程數據結構是否有問題等。

白盒測試技術(邏輯覆蓋、基本路經測試)

白盒測試時將程序看作是一個透明的盒子,也就是說測試人員完全了解程序的內部結構和處

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

的要求正確工作。白盒測試又稱為結構測試。

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

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

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

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

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

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

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

一次。

基本路經測試:

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

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

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

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

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

數據的輸入能否正確接收,輸出是否正確;

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

用黑盒法設計測試用例時,必須用所有可能的輸入數據來檢查程序是否都能產生正確的輸出

2、等價類劃分

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

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

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

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

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

輸入數據的個數多于給定的個數要求)。

(3)如果輸入條件規(guī)定了輸入數據的一組可能的值,而且程序對這組可能的值做相同的處

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

(4)如果輸入條件規(guī)定了輸入數據的一組可能的值,但是程序對不同的輸入值做不同的處

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

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

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

維護(改正性維護、適應性維護、完善性維護、預防性維護)

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

面向對象方法學優(yōu)點:1、與人類習慣的思維方法一致2、穩(wěn)定性好3、可重用性好4、較易

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

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

貳軟件工程

1.1軟件危機

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

(熟記)

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

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

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

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

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

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

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

管理措施。

1.2軟件工程

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

時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以

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

2、了解軟件工程的本質特征:

1)、軟件工程關注于大型程序的構造

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

3)、軟件經常變化

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

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

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

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

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

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

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

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

2)、堅持進行階段審評

3)、實行嚴格的產品控制

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

5)、結果應能清楚地審查

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

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

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

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

7、目前使用得最廣泛的軟件工程方法學,分別是傳統(tǒng)方法學和面向對象方法學

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

9、面向對象方法學具有的4個要點。(P10)

1.3軟件生命周期

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

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

2、軟件定義時期的任務

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

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

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

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

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

體設計、詳細設計、編碼和單元測試、綜合測試.

1.4軟件工程

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

噴泉模型。

(對各種模型要了解)

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

可行性分析

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

2.1可行性研究的任務

研究解法的可行性的三個方面:技術可行性、經濟可行性、操作可行性。

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

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

2.2可行性研究過程

復查系統(tǒng)規(guī)模和目標

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

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

進一步定義問題

導出和評價供選擇的解法

推薦行動方針

草擬開發(fā)計劃

書寫文檔提交審查

2.3系統(tǒng)流程圖

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

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

序、文檔、數據庫、人工過程等)。

3、P39符號

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

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

2.4數據流圖

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

過程中所經受的變換。

數據流圖的四種基本符號P41

數據存儲(靜止狀態(tài))和數據流(運動)都是數據。

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

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

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

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

2.5數據字典

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

數據存儲、處理。

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

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

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

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

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

2.6成本/效益分析

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

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

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

成本估算技術:代碼行技術、任務分解技術、自動估計成本技術。

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

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

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

純收入

投資回收率

2.7小結

三需求分析

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

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

用于需求分析的結構化分析方法必須遵守下述準則:

(1)、必須理解并描述問題的信息域,根據這條準則應該應該建立數據模型。

E-R圖

(2)、必須定義軟件應完成的功能,這條準則要求建立功能模型。數據流圖

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

狀態(tài)圖

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

節(jié)。

3.1需求分析的任務

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

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

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

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

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

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

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

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

結構化分析方法就是面向數據流自頂向下求精進行需求分析的方法。

快速建立軟件原型是最準確、最有效、最強大的需求分析技術。

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

需求分析過程應建立3種模型:數據模型、功能模型、行為模型。

數據流圖是建立功能模型的基礎。

狀態(tài)轉換圖是行為建模的基礎。

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

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

3.5數據規(guī)范化

第一范式:每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內部結構。

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

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

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

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

3.6狀態(tài)轉換圖

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

來表示系統(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)做動作或(和)轉換狀態(tài)的控制信息。

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

示。如圖:

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

狀態(tài)名1

在活漫3種標準事件:

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

狀態(tài)變量的

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

名字和值

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

活動表

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

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

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

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

換就發(fā)生。

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

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

3.7其他圖形

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

3.8驗證軟件需求

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

3.9小結

五總體設計

5.1設計過程

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

案;結構設計階段,確定軟件的結構。

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

1)、設想宮選擇的方案

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

2)、選擇合理的方案

對每個合理的方案,分析員都應準備下列四份材料:

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

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

C.成本/效益分析

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

3)、推薦最佳方案

4)、功能分解

5)、設計軟件結構

軟件結構可以用層次圖或結構圖來描繪。

6)、設計數據庫

7)、制定測試計劃

8)、書寫文檔

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

計劃、數據庫設計結果。

9)、審查和復查

5.2設計原理

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

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

模塊是構成程序的基本構件。

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

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

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

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

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

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

信息隱藏原理指出:應該這樣設計和確定模塊,使得一個模塊內包含的信息(過

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

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

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

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

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

模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內聚和耦合。

耦合是對一個軟件結構內不同模塊之間互連程度的度量。

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

接口的數據。

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

耦合稱為數據耦合。

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

這種耦合稱為控制耦合。

數據耦合是低耦合。

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

晶宮樂里度的理A#內去圭里人

內最標志著一木模塊內各X:素彼此結合的緊密程度,它是信息隱藏和局部化概

念的自然擴展。

偶然內聚、邏輯內聚、時間內聚

低內聚、中內聚、高內聚的分類。

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

/軟件結構提高模塊獨立性

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

深度、寬度、扇出和扇入都應適當

模塊的應用域應該在控制域之內

力爭降低模塊接口的復雜程度

設計單入口單出口的模塊

模塊功能應該可以預測

5.4描繪軟件結構的圖形工具

層次圖和HIPO圖

結構圖

5.5面向數據流的設計方法

面向數據流的設計方法把信息流映射成軟件結構,信息流的類型決定了映射的方

法。

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

變換分析是一系列設計步驟的總稱,經過這些步驟吧具有變換流特點的數據流圖

按預先確定的模式映射成軟件結構。

變換分析的設計步驟。

5.6小結

第6章詳細設計

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

2.設計出程序的“藍圖”

3.詳細設計的結果基本決定了最終的程序代碼的質量

6.1結構程序設計

1.概念:結果程序設計是一種設計程序的技術,它采用自頂向

下逐步求精的的設計方法和單入口但出口的控制結構。

2.三種基本控制結構:

1)順序結構:相當于“A、B”

2)選擇結構:相當于"IfexpthenAelseBendif;"

3)循環(huán)結構:相當于"WhileexpdoA”

3.擴充的兩種控制結構:

1)多分支結構:相當于“CaseIofI=l:Cl;.......I=n:Cn;w

2)UNTIL循環(huán)結構:相當于"RepeatAuntilexp;"

4.結構程序設計的種類:

1)經典的結構程序設計:只允許使用順序、IF_THEN

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

2)擴展的結構程序設計:除了三種基本控制結構,還使用

DO_CASE型多分支結構和DO_WHILE型循環(huán)結構;

3)修正的結構程序設計:除了三種基本控制結構和兩種擴

充結構,還使用LEAVE(或BREAK)結構。

6.2人機界面設計

6.2.1設計問題

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

2.用戶幫助設施

3.出錯信息處理

4.命令交互

6.2.2設計過程

6.2.3人機界面設計指南

1.一般交互指南

2.信息顯示指南

3.數據輸入指南

6.3過程設計的工具

6.3.1程序流程圖

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

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

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

程序的控制流程,而不去考慮程序的全局結構。

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

全不顧結構程序設計的精神,隨意轉移控制。

程序流程圖不易表示數據結構。

6.3.2盒圖

盒圖特點:

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

不可能任意轉移控制。

很容易確定局部和全程數據的作用域。

很容易表現(xiàn)嵌套關系,也可以表示模塊的層次結構。

PAD圖

是一種問題分析圖。

PAD圖優(yōu)點:

使用表示結構化控制結構的PAD符號所設計出來的程序必然是結構

化程序

PAD圖所描繪的程序結構十分清晰。圖中最左面的豎線是程序的主

線,即第一層結構。隨著德程序層次的增加,PAD圖逐漸向右延伸,

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

是程序的層次數。

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

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

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

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

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

產率。

即可用于表示程序邏輯,也可用于描繪數據結構。

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

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

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

判定表

判定表由四部分組成:

左上部列出所有條件

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

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

右下部是和每種條件組合相對應的動作

6.3.5判定樹

判定樹是判定表的變種。

過程設計語言

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

PDL的優(yōu)點:

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

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

的書寫和編輯工作

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

碼。

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

面向數據結構的設計方法

Jackson圖

順序結構

選擇結構

重復結構

改進的Jackson圖

Jackson方法

Jackson結構程序設計方法基本上由5個步驟組成:

分析并確定輸入數據和輸出數據的邏輯結構,并用Jackson圖描繪這

些數據結構。

找出輸入數據結構和輸出數據結構中有對應關系的數據單元。

用下述3條規(guī)則從描繪數據結構的Jackson圖導出描繪程序結構的

Jackson圖。

為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程

序結構圖的相應層次畫一個處理框。

根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖

的相應層次分別為它們畫上對應的處理框。

根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖

的相應層次分別為它們畫上對應的處理框。

列出所有操作和條件,并且把它們分配到程序結構圖的適當位置。

用偽碼表示程序。

程序復雜程度的定量度量

McCabe方法

1.流圖

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

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

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

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

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

N是結點數。

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

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

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

種預測。

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

6.5.2Halstead

根據程序中運算符和操作數的總數來度量程序的復雜程度。

N=NI+N2

程序總長度:N

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

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

Halstead給出的預測程序長度的公式:

H=n1Iog2n1+n2Iog2n2

預測程序中包含錯誤的個數的公式:

E=Nlog2(n1+n2)/3000

第七章實現(xiàn)

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

編碼:把軟件設計結果翻譯成程序。

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

編碼

選擇程序設計語言

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

1):匯編語言

2):高級語言

2.選擇語言時應考慮的實用標準:

系統(tǒng)用戶要求

可以使用的編譯程序

可以得到的軟件工具

工程規(guī)模

程序員的知識

軟件可移植性要求

軟件的應用領域

編碼風格

程序內部的文檔

數據說明

語句構造

輸入輸出

效率

軟件測試基礎

7.2.1軟件測試的目標

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

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

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

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

軟件測試準則

所有測試都應該追溯到用戶要求

應該遠在測試開始之前就制定出側是計劃

把Pareto原理應用到軟件測試中

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

窮舉測試是不可能的

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

測試方法

黑盒測試

白盒測試

測試步驟

模塊測試

子系統(tǒng)測試

系統(tǒng)測試

驗收測試

平行運行

測試階段的信息流

單元測試

測試重點:

模塊接口

局部數據結構

重要的執(zhí)行通路

出錯處理通路

邊界條件

代碼審查

計算機測試

集成測試

自頂向下集成

自頂向下集成是一種遞增的裝配軟件結構的方法,這種應用方法非常

廣泛。它需要存根程序,不需要驅動程序。

自底向上集成

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

頂向下結合方法相反,需要驅動程序,但是不需要存根程序。

不同集成測試策略的比較

回歸測試

包括3類不同的測試用例

檢測軟件全部功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論