軟件工程考試試習(xí)題(含答案)_第1頁
軟件工程考試試習(xí)題(含答案)_第2頁
軟件工程考試試習(xí)題(含答案)_第3頁
軟件工程考試試習(xí)題(含答案)_第4頁
軟件工程考試試習(xí)題(含答案)_第5頁
免費預(yù)覽已結(jié)束,剩余27頁可下載查看

下載本文檔

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

文檔簡介

1、一、 填空題(每空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)化分析方法是面向_進(jìn)行需求分析的方法。結(jié)構(gòu)化分析方法使用_與_來描述。7. 是自動地共享類、子類和對象中的方法和數(shù)據(jù)的機(jī)制。8. 軟件詳細(xì)設(shè)計工具可分為3類,即_、_和_。9. 為了在軟

2、件開發(fā)過程中保證軟件的質(zhì)量,主要采取下述措施:_、復(fù)查和管理復(fù)審、_。10. 大型軟件測試包括 、 、確認(rèn)測試和 四個步驟。1、 可行性研究 需求分析 運行與維護(hù)2、 系統(tǒng)軟件 支撐軟件 應(yīng)用軟件3、 經(jīng)濟(jì)可行性 法律可行性4、 物理系統(tǒng) 黑盒子形式5、 加工 數(shù)據(jù)流 數(shù)據(jù)存儲文件6、 數(shù)據(jù)流 數(shù)據(jù)流圖DFD 數(shù)據(jù)字典DD7、 繼承性8、 圖示工具、設(shè)計語言 表格工具9、 審查 測試10、 單元測試 集成測試 系統(tǒng)測試二、 單項選擇題(每小題2分,共20分)12345CCCAC678910DDACB1. 軟件設(shè)計中劃分模塊的一個準(zhǔn)則是( )。A、 低內(nèi)聚低耦合B、 低內(nèi)聚高耦合C、 高內(nèi)聚低耦

3、合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、a B、b C、c D、b和c4. ( )是用戶和設(shè)計交換最頻繁的方法。A、 原型化方法 B、瀑布模型方法C、 螺旋模型方法 D、構(gòu)件組裝模型5. 軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實施的主要保證是( )。A

4、、 硬件環(huán)境B、軟件開發(fā)的環(huán)境C、 軟件開發(fā)工具和軟件開發(fā)的環(huán)境 D、 開發(fā)人員的素質(zhì)6. 20世紀(jì)50年代以來,出現(xiàn)了許多不同的程序設(shè)計語言,下列語言中哪個語言是低級語言( )。A、 PASCAL B、 VISUAL BASICC、 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. 軟件維護(hù)工作的最主要部分是( )。A、 校正性維護(hù)

5、 B、適應(yīng)性維護(hù)C、完善性維護(hù) D、預(yù)防性維護(hù)10. PDL是( )語言。A、 高級程序設(shè)計語言 B、偽碼式 C、中級程序設(shè)計語言 D、低級程序設(shè)計語言三、 判斷題(正確的在括號內(nèi)打上“”,錯誤的打上“”。每題2分,共20分)1. 用黑盒法測試時,測試用例是根據(jù)程序內(nèi)部邏輯設(shè)計的。( X )2. 發(fā)現(xiàn)錯誤多的程序模塊,殘留在模塊中的錯誤也多。( V )3. 為了加快軟件維護(hù)作業(yè)的進(jìn)度,應(yīng)盡可能增加維護(hù)人員的數(shù)目。( X )4. 軟件維護(hù)就是改正軟件中的錯誤。( X )5. 質(zhì)量保證是為了保證產(chǎn)品和服務(wù)充分滿足消費者要求的質(zhì)量而進(jìn)行的有計劃,有組織的活動。( V )6. 軟件開發(fā)的主要任務(wù)是寫程

6、序。 ( 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)計算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好

7、的技術(shù)方法結(jié)合起來。2 耦合性和內(nèi)聚性有幾種類型 其耦合度、內(nèi)聚強度的順序如何低:非直接耦合 數(shù)據(jù)耦合標(biāo)記耦合 控制耦合外部耦合 公共耦合內(nèi)容耦合 :高強:功能內(nèi)聚 信息內(nèi)聚 通信內(nèi)聚 過程內(nèi)聚 時間內(nèi)聚 邏輯內(nèi)聚 巧合內(nèi)聚:弱 3 簡述需求分析工作可以分成哪四個方面軟件需求分析的有哪三個基本原則:需求分析階段分成四個方面:對問題的識別、分析與綜合、制定規(guī)格說明和評審。三個基本原則:必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域;必須按自頂向下、逐步分解的方式對問題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。4 什么是黑盒測試法黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程

8、,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù),產(chǎn)生正確地輸出信息。五、 程序設(shè)計與算法描述題(共15分)1. 根據(jù)下面的偽代碼程序,完成相應(yīng)要求。(8分) START IF C1THEN WHILE C2 DO f ENDDOELSE BLOCK g p ENDBLOCK ENDIF REPEAT UNTIL C3qr ENDREP STOP1) 畫出程序流程圖(4分)2) 用NS圖描述(4分)2. 有下列偽碼程序:STARTINPUT (M,N)IF M=10 THEN X=10 ELSE X=lENDIFIF N=20 THEN Y=20 ELSE Y

9、=2ENDIFPRINT(X,Y)STOP設(shè)計該程序的語句覆蓋和路徑覆蓋測試用例。(7分)M=9(或l0),N=l9(或=10),N=20(或=20)路徑覆蓋的測試用例為M=9,N=19;M=9、N=20; M=l0,N=l9;M=10,N=20要目標(biāo)是提高軟件質(zhì)量,減少軟件維護(hù)代價。問題定義(確定題目)可行性研究需求分析概要設(shè)計詳細(xì)設(shè)計編碼和單元測試綜合測試系統(tǒng)設(shè)計系統(tǒng)實現(xiàn)軟件定義軟件開發(fā)運行維護(hù):主要任務(wù)是使軟件持久地滿足用戶的需要軟件生命周期:軟件過程五個模型對比(瀑布模型、快速原型、增量、螺旋、噴泉模型)可行性研究:1、任務(wù):用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。2、四個

10、方面:技術(shù)、經(jīng)濟(jì)、操作可行性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ù)流自頂向下逐步求精進(jìn)行需求分析的方法。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)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個程序結(jié)構(gòu)。系統(tǒng)設(shè)計階段(確定系統(tǒng)具體實施方案)、結(jié)構(gòu)設(shè)計階段(確定軟件結(jié)構(gòu))模塊獨立:內(nèi)聚和耦合耦合表示一個軟件結(jié)構(gòu)內(nèi)各個模塊

11、之間的互連程度,應(yīng)盡量選用松散耦合的系統(tǒng)內(nèi)聚 (Cohesion): 一個模塊內(nèi)各元素結(jié)合的緊密程度面向數(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ù)

12、雜度。編碼單元測試:又稱模塊測試。每個程序模塊完成一個相對獨立的子功能,所以可以對該模塊進(jìn)行單獨的測試。由于每個模塊都有清晰定義的功能,所以通常比較容易設(shè)計相應(yīng)的測試方案,以檢驗每個模塊的正確性。集成測試:在單元測試完成后,要考慮將模塊集成為系統(tǒng)的過程中可能出現(xiàn)的問題,例如,模塊之間的通信和協(xié)調(diào)問題,所以在單元測試結(jié)束之后還要進(jìn)行集成測試。這個步驟著重測試模塊間的接口,子功能的組合是否達(dá)到了預(yù)期要求的功能,全程數(shù)據(jù)結(jié)構(gòu)是否有問題等。白盒測試技術(shù)(邏輯覆蓋、基本路經(jīng)測試) 白盒測試時將程序看作是一個透明的盒子,也就是說測試人員完全了解程序的內(nèi)部結(jié)構(gòu)和處理過程。所以測試時按照程序內(nèi)部的邏輯測試程序

13、、檢驗程序中的每條通路是否都能按預(yù)定的要求正確工作。白盒測試又稱為結(jié)構(gòu)測試。語句覆蓋就是設(shè)計足夠的調(diào)試用例,使得程序中的每個語句至少執(zhí)行一次。判定覆蓋就是設(shè)計足夠的測試用例,使得程序中每個判定的取“真”分支和取“假”分支至少都執(zhí)行一次,判定覆蓋又稱分支覆蓋條件覆蓋就是設(shè)計足夠的測試用例,使得程序判定中的每個條件能獲得各種可能的結(jié)果。判定條件覆蓋就是設(shè)計足夠的測試用例,使得判定中的每個條件都取到各種可能的值,而且每個判定表達(dá)式也都取到各種可能的結(jié)果。條件組合覆蓋就是設(shè)計足夠的測試用例,使得每個判定中的條件的各種可能組合都至少出現(xiàn)一次。基本路經(jīng)測試:黑盒測試技術(shù)(等價劃分) 黑盒測試時完全不考慮程

14、序內(nèi)部的結(jié)構(gòu)和處理過程,只按照規(guī)格說明書的規(guī)定來檢查程序是否符合它的功能要求。黑盒測試是在程序接口進(jìn)行的測試,又稱為功能測試。1、黑盒測試檢查的主要方面有:程序的功能是否正確或完善;數(shù)據(jù)的輸入能否正確接收,輸出是否正確;是否能保證外部信息(如數(shù)據(jù)文件)的完整性等。用黑盒法設(shè)計測試用例時,必須用所有可能的輸入數(shù)據(jù)來檢查程序是否都能產(chǎn)生正確的輸出 2、等價類劃分 等價類的劃分在很大程度上依靠的是測試人員的經(jīng)驗,下面給出幾條基本原則:(1)如果輸入條件規(guī)定了取值范圍,則可劃分出一個有效的等價類(輸入值在此范圍內(nèi))和兩個無效的等價類(輸入值小于最小值、輸入值大于最大值)。(2)如果輸入條件規(guī)定了輸入數(shù)

15、據(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ū)Σ煌妮斎胫底霾煌奶幚?,則每個輸入值是一個有效的等價類,此外還有一個無效的等價類(所有不允許值的集合)。(5)如果輸入條件規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可以劃分一個有效的等價類(符合規(guī)則)和若干個無效的等價類

16、(從各種角度違反規(guī)則)。維護(hù)(改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù))決定軟件可維護(hù)性因素(可理解性、可測試性、可修改性、可移植性、可重用性)面向?qū)ο蠓椒▽W(xué)優(yōu)點:1、與人類習(xí)慣的思維方法一致2、穩(wěn)定性好3、可重用性好4、較易開發(fā)大型軟件產(chǎn)品5、可維護(hù)性好對象模型1、關(guān)聯(lián)2、聚集3、泛化4、依賴和細(xì)化貳 軟件工程軟件危機(jī)1、軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(熟記)2、了解軟件危機(jī)主要的一些典型表現(xiàn)。(P2)3、出現(xiàn)軟件危機(jī)的原因:4、消除軟件危機(jī)的途徑:首先,我們要對計算機(jī)軟件有一個正確的認(rèn)識;更重要的是,必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧

17、,而應(yīng)該是一種組織良好、管理嚴(yán)格、各類人員協(xié)同配合、共同完成的工程項目;最后,應(yīng)該開發(fā)和使用更好的軟件工具??傊瑸榱私鉀Q軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程1、軟件工程:采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。(熟記)2、了解軟件工程的本質(zhì)特征: 1)、軟件工程關(guān)注于大型程序的構(gòu)造 2)、軟件工程的中心課題是控制復(fù)雜性 3)、軟件經(jīng)常變化 4)、開發(fā)軟件的效率非常重要 5)、和諧的合作是開發(fā)軟件的關(guān)鍵 6)、軟件必須有效地支持它的

18、用戶 7)、在軟件工程的領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品3、缺乏應(yīng)用領(lǐng)域地相關(guān)知識,是軟件開發(fā)項目出現(xiàn)問題的常見原因。4、軟件工程的基本原理: 1)、用分階段的生命周期計劃嚴(yán)格管理 2)、堅持進(jìn)行階段審評 3)、實行嚴(yán)格的產(chǎn)品控制 4)、采用現(xiàn)代程序設(shè)計技術(shù) 5)、結(jié)果應(yīng)能清楚地審查 6)、開發(fā)小組的人員應(yīng)該少而精 7)、承認(rèn)不斷改進(jìn)軟件工程實踐的必要性5、方法學(xué)(范型):在軟件生命周期全過程中使用的一整套技術(shù)方法的集合。6、軟件工程方法學(xué)3要素:方法、工具和過程。7、目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)8、傳統(tǒng)方法學(xué)也成為生命周期

19、方法學(xué)或結(jié)構(gòu)化范型。9、面向?qū)ο蠓椒▽W(xué)具有的4個要點。(P10)軟件生命周期1、概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運行維護(hù)(也稱為軟件維護(hù))3個時期組成,每個時期又進(jìn)一步劃分成若干個階段。2、軟件定義時期的任務(wù)3、軟件定義時期通常進(jìn)一步劃分成3個階段:問題定義、可行性研究、需求分析4、維護(hù)時期的主要任務(wù)是使軟件持久地滿足用戶的需要。5、軟件開發(fā)時期通常分成4個階段:總體設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、綜合測試。前兩個階段又稱為系統(tǒng)設(shè)計,后兩個階段又稱為系統(tǒng)實現(xiàn)。6、軟件生命周期每個階段的基本任務(wù):問題定義、可行性研究、需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、綜合測試。軟件工程生

20、命周期模型(過程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型。(對各種模型要了解)小結(jié)(熟讀,對本章系統(tǒng)地了解)可行性分析可行性分析的目的:用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決??尚行匝芯康娜蝿?wù)研究解法的可行性的三個方面:技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性??尚行匝芯孔罡镜娜蝿?wù):對以后的行動方針提出建議??尚行匝芯啃枰臅r間長短取決于工程的規(guī)模??尚行匝芯窟^程復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在試用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型進(jìn)一步定義問題導(dǎo)出和評價供選擇的解法推薦行動方針草擬開發(fā)計劃書寫文檔提交審查 系統(tǒng)流程圖1、系統(tǒng)流程圖:概括地描繪物理系統(tǒng)的工具。2、系統(tǒng)流程

21、圖的基本思想:用圖形符號以黑盒子形式描繪組系統(tǒng)的每個部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。3、P39符號4、系統(tǒng)流程圖的習(xí)慣畫法:使信息在圖中從頂向下或從左向右流動。5、面對復(fù)雜的系統(tǒng)時,一個比較好的方法時分層次地描繪這個系統(tǒng)。數(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ù)流圖的基本目的是利用它作為交流信息的

22、工具。數(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ù)字典最重要的用途是作為分析階段的工具。成本/效益分析成本/效益分析的目的:從經(jīng)濟(jì)角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地作出是否投資于這項開發(fā)工程的決定。軟件開發(fā)成本:主要表現(xiàn)為人力消耗。成本估算技術(shù):代碼行技術(shù)、任務(wù)分解技術(shù)

23、、自動估計成本技術(shù)。貨幣的時間價值:用利率的形式。 假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后的價值:F=P(1+i)n衡量一項開發(fā)工程的價值:投資回收期。純收入投資回收率小結(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)、必須對描述信息、功能和行為的模型進(jìn)行分解,

24、用層次的方式展開細(xì)節(jié)。需求分析的任務(wù)對軟件系統(tǒng)的綜合要求:功能需求、性能需求、可靠性和可用性需求、出錯處理需求、接口需求、約束、逆向需求、將來可能提出的要求。需求分析的任務(wù):確定對系統(tǒng)的綜合要求 分析系統(tǒng)的數(shù)據(jù)要求 導(dǎo)出系統(tǒng)的邏輯模型 修正系統(tǒng)開發(fā)計劃與用戶溝通獲取需求的方法訪談、面向數(shù)據(jù)流自頂向下求精、簡易地應(yīng)用規(guī)格說明技術(shù),快速建立軟件原型。結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下求精進(jìn)行需求分析的方法??焖俳④浖褪亲顪?zhǔn)確、最有效、最強大的需求分析技術(shù)。分析建模與規(guī)格說明需求分析過程應(yīng)建立3種模型:數(shù)據(jù)模型、功能模型、行為模型。數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)。狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。實

25、體-聯(lián)系圖(E-R)E-R圖中包含著實體(即數(shù)據(jù)對象)、關(guān)系和屬性3種基本成分。數(shù)據(jù)規(guī)范化第一范式:每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。第二范式:滿足第一范式的條件,而且每個非關(guān)鍵字都由整個關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。第三范式:符合第二范式的條件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進(jìn)一步描述(即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值)。狀態(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)

26、)和中間狀態(tài)。在狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有0至多個。事件就是引起系統(tǒng)做動作或(和)轉(zhuǎn)換狀態(tài)的控制信息。 狀態(tài)名狀態(tài)變量的名字和值活動表在狀態(tài)圖中,初態(tài)用一對同心圓(內(nèi)圓為實心圓)表示。中間狀態(tài)用圓角矩形表示。如圖:活動表的語法格式:事件名(參數(shù)表)/動作表達(dá)式在活動表中通常使用的3種標(biāo)準(zhǔn)事件: Entry事件指定進(jìn)入該狀態(tài)的動作 Exit事件指定退出該狀態(tài)的動作 Do事件制定在該狀態(tài)下的動作狀態(tài)轉(zhuǎn)換:箭頭指明的轉(zhuǎn)換方向。事件表達(dá)式的語法:事件說明【守衛(wèi)條件】/動作表達(dá)式 事件說明與守衛(wèi)條件同時使用時,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式為真時,狀態(tài)轉(zhuǎn)換才發(fā)生;如果只有守衛(wèi)條件沒有事件說明

27、則只要守衛(wèi)條件為真,狀態(tài)轉(zhuǎn)換就發(fā)生。守衛(wèi)條件是一個布爾表達(dá)式。動作表達(dá)式是一個過程表達(dá)式,當(dāng)狀態(tài)表達(dá)式開始時執(zhí)行該表達(dá)式。其他圖形層次方框圖、warnier圖、IPO圖(輸入、處理、輸出圖的簡稱)驗證軟件需求從四個方面進(jìn)行驗證:一致性、完整新、現(xiàn)實性、有效性小結(jié)五 總體設(shè)計設(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.組成系

28、統(tǒng)的物理元素清單 C.成本/效益分析 D.實現(xiàn)各個系統(tǒng)的進(jìn)度計劃 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ù)查設(shè)計原理模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標(biāo)識符代表它。模塊是構(gòu)成程序的基本構(gòu)件。模塊化就是把程序分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶

29、的需求。抽象:把相似的方面集中和概括起來,暫時忽略它們之間的差異,或者說,抽出事物的本質(zhì)特性而暫時不考慮它們之間的細(xì)節(jié)。逐步求精是人類解決復(fù)雜問題時采用的基本方法,也是許多軟件工程技術(shù)的基礎(chǔ)。定義:為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮。信息隱藏原理指出:應(yīng)該這樣設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。模塊獨立的概念是模塊化,抽象,信息隱藏和局部化概念的直接結(jié)果。模塊獨立化重要性的原因:第一,有效地模塊化的軟件比較容易開發(fā)出來;第二,獨立的模塊化比較容易測試和維護(hù)。模塊的

30、獨立程度可以由兩個定性標(biāo)準(zhǔn)度量,這兩個標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合的強弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。如果傳遞的信息中有控制信息(盡管有時這種控制信息以數(shù)據(jù)的形式出現(xiàn)),則這種耦合稱為控制耦合。數(shù)據(jù)耦合是低耦合。公共環(huán)境耦合、最高程度的耦合式內(nèi)容耦合。內(nèi)聚標(biāo)志著一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚低內(nèi)聚、中內(nèi)聚、高內(nèi)聚的分類。啟發(fā)規(guī)則/軟件結(jié)構(gòu)提高模塊

31、獨立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的應(yīng)用域應(yīng)該在控制域之內(nèi)力爭降低模塊接口的復(fù)雜程度設(shè)計單入口單出口的模塊模塊功能應(yīng)該可以預(yù)測描繪軟件結(jié)構(gòu)的圖形工具層次圖和HIPO圖結(jié)構(gòu)圖面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。信息流分成兩種類型:變化流、事物流(概念)變換分析是一系列設(shè)計步驟的總稱,經(jīng)過這些步驟吧具有變換流特點的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。變換分析的設(shè)計步驟。小結(jié)第6章 詳細(xì)設(shè)計目標(biāo):1.確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng) 2.設(shè)計出程序的“藍(lán)圖” 3.詳細(xì)設(shè)計的結(jié)果基本決定了最終的程序代碼的質(zhì)量 結(jié)構(gòu)程

32、序設(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)于“If exp then A else B endif;” 3) 循環(huán)結(jié)構(gòu):相當(dāng)于“While exp do A”3.擴(kuò)充的兩種控制結(jié)構(gòu): 1)多分支結(jié)構(gòu):相當(dāng)于“Case I of I=1:C1;I=n:Cn;” 2)UNTIL循環(huán)結(jié)構(gòu):相當(dāng)于“Repeat A until exp;”4.結(jié)構(gòu)程序設(shè)計的種類: 1)經(jīng)典的結(jié)構(gòu)程序設(shè)計:只允許使用順序、IF_ELSE型分支和DO_WHILE型循環(huán); 2)擴(kuò)展的結(jié)

33、構(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)和兩種擴(kuò)充結(jié)構(gòu),還使用LEAVE(或BREAK)結(jié)構(gòu)。 人機(jī)界面設(shè)計6.2.1 設(shè)計問題1.系統(tǒng)響應(yīng)時間2.用戶幫助設(shè)施3.出錯信息處理4.命令交互6.2.2 設(shè)計過程6.2.3 人機(jī)界面設(shè)計指南1.一般交互指南2.信息顯示指南3.數(shù)據(jù)輸入指南 過程設(shè)計的工具6.3.1 程序流程圖 程序流程圖:是一種描述程序的控制結(jié)構(gòu)流程和指令執(zhí)行情況的有向圖。程序流程圖的主要缺點:程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程

34、序的全局結(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圖逐漸向右延伸,每次增加一個層次,圖形向右擴(kuò)展豎線。PAD圖中豎線的總條數(shù)就是程

35、序的層次數(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è)計。判定表判定表由四部分組成: 左上部列出所有條件 左下部是所有可能做的動作 右上部是表示各種條件組合的一個矩陣 右下部

36、是和每種條件組合相對應(yīng)的動作6.3.5 判定樹 判定樹是判定表的變種。過程設(shè)計語言過程設(shè)計語言(PDL)也稱為偽碼。PDL的優(yōu)點:可以作為注釋的直接插在源程序中間可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDl的書寫和編輯工作已經(jīng)有自動處理PDL的程序存在,而且可以自動由PDL生成程序代碼。PDL缺點:不如圖形工具形象直觀。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法Jackson圖順序結(jié)構(gòu)選擇結(jié)構(gòu)重復(fù)結(jié)構(gòu)改進(jìn)的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)

37、中有對應(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ù)的具體操作以及分支

38、或循環(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.2 Halstead根據(jù)程序中運算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。N=N1+N2程序總長度:N 運算符出現(xiàn)的總次數(shù):N1操作數(shù)出現(xiàn)的總次數(shù):N2Halstead給出的預(yù)測程序長度的公式: H=n1log2n1+n2log2n2 預(yù)測程序

39、中包含錯誤的個數(shù)的公式: E=Nlog2(n1+n2)/3000第七章 實現(xiàn)概念:編碼和測試統(tǒng)稱為實現(xiàn)。編碼:把軟件設(shè)計結(jié)果翻譯成程序。測試:檢測程序并改正錯誤的過程。編碼選擇程序設(shè)計語言1.計算機(jī)程序設(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)的錯誤的測

40、試成功的測試是發(fā)現(xiàn)多了至今為止尚未發(fā)現(xiàn)的錯誤的測試軟件測試準(zhǔn)則所有測試都應(yīng)該追溯到用戶要求應(yīng)該遠(yuǎn)在測試開始之前就制定出側(cè)是計劃把Pareto原理應(yīng)用到軟件測試中應(yīng)該從“小規(guī)?!睖y試開始,并逐步進(jìn)行“大規(guī)?!睖y試窮舉測試是不可能的為了達(dá)到最佳的測試效果,應(yīng)該由獨立的第三方從事測試工作測試方法黑盒測試白盒測試測試步驟模塊測試子系統(tǒng)測試系統(tǒng)測試驗收測試平行運行測試階段的信息流單元測試測試重點:模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯處理通路邊界條件代碼審查計算機(jī)測試集成測試自頂向下集成自頂向下集成是一種遞增的裝配軟件結(jié)構(gòu)的方法,這種應(yīng)用方法非常廣泛。它需要存根程序,不需要驅(qū)動程序。自底向上集成自底向上集成是從軟件結(jié)構(gòu)最底層模塊開始進(jìn)行組裝和測試,它與自頂向下結(jié)合方法相反,需要驅(qū)動程序,但是不需要存根程序。不同集成測試策略的比較回歸測試包括3類不同的測試用例檢測軟件全部功能的代表性測試用例專門針對可能受修改影響的軟件功能的附加測試針對被修改過的軟件成分的測試確認(rèn)測試7.5.1 確認(rèn)測試的范圍確認(rèn)測試的兩種可能的結(jié)果:功能和性能與用戶要求一致,軟件是可以接受的功能和性能與用戶要求有差距軟件配置復(fù)查A

溫馨提示

  • 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

提交評論