軟件工程-習(xí)題解集_第1頁
軟件工程-習(xí)題解集_第2頁
軟件工程-習(xí)題解集_第3頁
軟件工程-習(xí)題解集_第4頁
軟件工程-習(xí)題解集_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程-習(xí)題解集軟件工程-習(xí)題解集軟件工程-習(xí)題解集xxx公司軟件工程-習(xí)題解集文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計,管理制度《軟件工程》習(xí)題集趙緒輝渤海大學(xué)信息科學(xué)與工程學(xué)院2005年9月目錄TOC\o"1-3"\h\z一軟件與軟件工程 1二軟件項目管理 3三需求分析 5四面向?qū)ο蟮男枨蠓治?7五軟件設(shè)計 10六程序設(shè)計語言和編碼 12七軟件測試 14八軟件維護(hù) 16綜合試卷一 17綜合試卷二 20綜合試卷三 23附參考答案: 26一軟件與軟件工程參考答案 26二軟件工程管理參考答案 28三需求分析參考答案 29四面向?qū)ο蟮男枨蠓治鰠⒖即鸢?31五軟件設(shè)計參考答案 36六程序設(shè)計語言和編碼參考答案 38七軟件測試參考答案 40八軟件維護(hù)參考答案 42綜合試卷一參考答案及評分標(biāo)準(zhǔn) 44綜合試卷二參考答案及評分標(biāo)準(zhǔn) 46綜合試卷三參考答案及評分標(biāo)準(zhǔn) 48一軟件與軟件工程一、選擇題1.軟件的主要特性是()A、無形性B、高成本C、包括程序和文檔D、可獨立構(gòu)成計算機(jī)系統(tǒng)2.軟件工程三要素是()A、技術(shù)、方法和工具B、方法、工具和過程C、方法、對象和類D、過程、模型、方法3.包含風(fēng)險分析的軟件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、噴泉模型4.軟件工程的主要目標(biāo)是()A、軟件需求B、軟件設(shè)計C、風(fēng)險分析D、軟件實現(xiàn)5.下列屬于面向?qū)ο箝_發(fā)方法的是()A、BoochB、UMLC、CoadD、OMT6.軟件危機(jī)的主要表現(xiàn)是()A、軟件成本太高B、軟件產(chǎn)品的質(zhì)量低劣C、軟件開發(fā)人員明顯不足D、軟件生產(chǎn)率低下7.軟件開發(fā)方法的主要工作模型有()A、螺旋模型B、循環(huán)模型C、瀑布模型D、專家模型8.軟件工程的目標(biāo)有()A、易于維護(hù)B、低的開發(fā)成本C、高性能D、短的開發(fā)期9.軟件工程學(xué)的目的和意義是()A、應(yīng)用科學(xué)的方法和工程化的規(guī)范管理來指導(dǎo)軟件開發(fā)。B、克服軟件危機(jī)。C、作好軟件開發(fā)的培訓(xùn)工作。D、以較低的成本開發(fā)出高質(zhì)量的軟件。二、判斷題1.軟件就是程序,編寫軟件就是編寫程序。2.瀑布模型的最大優(yōu)點是將軟件開發(fā)的各個階段劃分得十分清晰。3.結(jié)構(gòu)化方法的工作模型是使用螺旋模型進(jìn)行開發(fā)的。4.結(jié)構(gòu)化方法和JSP方法都不適合于大型軟件的開發(fā)5.原型化開發(fā)方法包括生成原型和實現(xiàn)原型兩個步驟。6.面向?qū)ο蟮拈_發(fā)方法包括面向?qū)ο蟮姆治?、面向?qū)ο蟮脑O(shè)計和面向?qū)ο蟮某绦蛟O(shè)計。7.軟件危機(jī)的主要表現(xiàn)是軟件的需求量迅速增加,軟件價格上升。8.軟件工具的作用是為了延長軟件產(chǎn)品的壽命。9.軟件工程過程應(yīng)該以軟件設(shè)計為中心,關(guān)鍵是編寫程序。法與RSP法的主要區(qū)別是前者采用循環(huán)漸進(jìn)的開發(fā)方式,原型將成為最終的產(chǎn)品,而后者將被廢棄。三、簡答題1.軟件產(chǎn)品的特性是什么2.軟件發(fā)展有幾個階段各有何特征3.什么是軟件危機(jī)其產(chǎn)生的原因是什么4.什么是軟件生存周期模型它有哪些主要模型5.有哪些主要的軟件開發(fā)方法6.軟件生命期各階段的任務(wù)是什么

二軟件項目管理一、選擇題1、軟件工程管理的對象是:()A、軟件開發(fā)人員B、軟件工程項目C、軟件開發(fā)過程D、軟件開發(fā)速度2、以下對軟件工程管理的任務(wù)和目標(biāo)最準(zhǔn)確的描述是:()A、明確軟件開發(fā)項目的工作范圍、可能遇到的風(fēng)險、需要的資源;B、明確軟件開發(fā)中要實現(xiàn)的任務(wù)和需經(jīng)歷的里程碑;C、明確所需的工作量以及進(jìn)度安排;D、以上所有答案3、在軟件管理資源要求中,最為重要的、起決定性的資源是以下哪種資源:()A、硬件資源B、軟件資源C、人力資源D、軟件復(fù)用性及軟件部件庫4、開發(fā)一個軟件工程的第一部是:()A、可行性研究B、組織開發(fā)人員C、購買開發(fā)工具D、開發(fā)任務(wù)指定5、可行性報告中不包括一下哪個方面:()A、技術(shù)上的可行性B、經(jīng)濟(jì)上可行性C、人力的可行性D、經(jīng)濟(jì)上的可行性6、影響軟件開發(fā)成本估算的因素不包括以下那項:()A、軟件人員業(yè)務(wù)水平B、軟件開發(fā)規(guī)模及復(fù)雜度C、開發(fā)所需時間D、開發(fā)所需硬件資源7、自底向上的估計法的特點是:()A、簡單、工作量小、誤差大B、精度高,但缺少子任務(wù)(模塊)間的聯(lián)系C、估算較精確,但區(qū)分類比較困難D、復(fù)雜、不可行,一般不采用此種方法8、對一個軟件工程來說,占總工作量的百分比最大的工作是:()A、需求分析B、軟件設(shè)計C、編碼工作D、測試和調(diào)試工作9、軟件質(zhì)量度量的方法包括:()A、精確度量B全面度量C、簡易度量D、以上所有答案10、CMM表示:()A、軟件過程成熟度模型B、軟件過程工業(yè)化控制C、國際軟件質(zhì)量認(rèn)證D、軟件統(tǒng)一性標(biāo)準(zhǔn)。二、判斷題1、軟件工程管理是對軟件項目的開發(fā)管理,是對整個軟件生存期的所有活動進(jìn)行管理。2、軟件工程管理的主要任務(wù)有:軟件可行性分析與成本估算、軟件生產(chǎn)率及質(zhì)量管理、軟件售后管理3、直接影響軟件開發(fā)風(fēng)險的因素是成本估算4、軟件開發(fā)配備人員的基本原則是:重質(zhì)量、重數(shù)量、重培訓(xùn)5、“簡易度量”不是軟件質(zhì)量度量的方法6、CMM是指導(dǎo)軟件開發(fā)的一種面向?qū)ο蟮男录夹g(shù)7、CMM將軟件過程的成熟度分為以下五個級別:初始級、可重復(fù)級、已定義級、已管理級和優(yōu)化級8、CMM對開發(fā)一個軟件所做的基本要求是“有章可循、有章必循”三、簡答題1.簡述一個成熟的軟件機(jī)構(gòu)應(yīng)具有的特點2、CMM將軟件過程的成熟度分為哪幾個級別

三需求分析一、選擇題1.需求分析的主要目的是()A、系統(tǒng)開發(fā)的具體方案B、進(jìn)一步確定用戶的需求C、解決系統(tǒng)是“做什么的問題”D、解決系統(tǒng)是“如何做的問題”2.需求分析的主要方法有()A、形式化分析方法B、PAD圖描述C、結(jié)構(gòu)化分析(SA)方法D、OOA法3.面向?qū)ο蟮姆治龇椒ㄖ饕墙⑷惸P?,即()。A、系統(tǒng)模型、ER模型、應(yīng)用模型B、對象模型、動態(tài)模型、應(yīng)用模型C、ER模型、對象模型、功能模型D、對象模型、動態(tài)模型、功能模型4.SA法的主要描述手段有()A、系統(tǒng)流程圖和模塊圖B、DFD圖、數(shù)據(jù)詞典、加工說明C、軟件結(jié)構(gòu)圖、加工說明D、功能結(jié)構(gòu)圖、加工說明5.畫分層DFD圖的基本原則有()。A、數(shù)據(jù)守恒原則B、分解的可靠性原則C、子、父圖平衡的原則D、數(shù)據(jù)流封閉的原則6.在E-R模型中,包含以下基本成分()。A、數(shù)據(jù)、對象、實體B、控制、聯(lián)系、對象C、實體、聯(lián)系、屬性D、實體、屬性、聯(lián)系7.畫DFD圖的主要目的是()A、作為需求分析階段用戶與開發(fā)者之間交流信息的工具。B、對系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述。C、對目標(biāo)系統(tǒng)的層次結(jié)構(gòu)進(jìn)行描述。D、作為分析和設(shè)計的工具。8.數(shù)據(jù)字典是數(shù)據(jù)流圖中所有元素的定義的集合,一般由以下4類條目組成()。A、數(shù)據(jù)說明條目、控制流條目、加工條目、數(shù)據(jù)存儲條目B、數(shù)據(jù)流條目、數(shù)據(jù)項條目、文件條目、加工條目C、數(shù)據(jù)源條目、數(shù)據(jù)流條目、數(shù)據(jù)處理條目、數(shù)據(jù)文件條目D、數(shù)據(jù)流條目、數(shù)據(jù)文件條目、數(shù)據(jù)池條目、加工條目9.在需求分析階段主要采用圖形工具來描述的原因是()。A、圖形的信息量大,便于描述規(guī)模大的軟件系統(tǒng)。B、圖形工具能夠極好地概括描述一個系統(tǒng)的信息,比文字?jǐn)⑹瞿軌蚋玫乇磉_(dá)重要的細(xì)節(jié)。C、圖形能夠更加直觀地描述目標(biāo)系統(tǒng),便于用戶理解和交流,有利于開發(fā)者與用戶之間達(dá)成一致的需求。D、圖形比文字描述簡單、形象二、判斷題1.在進(jìn)行了可行性分析后,需求分析就只需要解決目標(biāo)系統(tǒng)的設(shè)計方案。2.SA法是面向數(shù)據(jù)流,建立在數(shù)據(jù)封閉原則上的需求分析方法。3.HIPO法既是需求分析方法又是軟件設(shè)計方法。4.在面向?qū)ο蟮男枨蠓治龇椒ㄖ?,建立動態(tài)模型是最主要的任務(wù)。5.加工小說明是對系統(tǒng)流程圖中的加工進(jìn)行說明。6.判定表的優(yōu)點是容易轉(zhuǎn)換由計算機(jī)實現(xiàn),缺點是不能夠描述組合條件。7.需求分析的主要方法有SD法、OOA法及HIPO法等。8.分層的DFD圖可以用于可行性分析階段,描述系統(tǒng)的邏輯結(jié)構(gòu)。9.信息建模方法是從數(shù)據(jù)的角度來建立信息模型的,最常用的描述信息模型的方法是E-R圖。10.用于需求分析的軟件工具,應(yīng)該能夠保證需求的正確性,即驗證需求的一致性、完整性、現(xiàn)實性和有效性。三、簡答題1.什么是需求分析需求分析階段的基本任務(wù)是什么公司的軟件產(chǎn)品以開發(fā)實驗型的新軟件為主。用瀑布模型進(jìn)行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理員剛加入M公司,你認(rèn)為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理由,切記:副總裁不喜歡報告長度超過一頁(B5)。3.如何畫分層數(shù)據(jù)流圖4.加工小說明有哪些描述方法5.常用的軟件需求分析的方法有哪些

四面向?qū)ο蟮男枨蠓治鲆弧⑦x擇題1.面向?qū)ο蟪绦蛟O(shè)計的基本機(jī)制()A繼承B消息C方法D結(jié)構(gòu)2.下列屬于面向?qū)ο蟮囊氐模ǎ〢分類性B抽象C共享D封裝3.下列選項中屬于面向?qū)ο箝_發(fā)方法的有()ABoochBCADCCoadDOMT4.下列屬于Coad方法中面向?qū)ο蟮姆治瞿P偷膶哟斡校ǎ〢主題層B對象層C應(yīng)用層D接口層5.一個屬性依其特征,其類型有()A描述型B定義型C派生型D參考型6.下列在面向?qū)ο蠓治龅臅r候采用的模型有()A對象模型B動態(tài)模型C靜態(tài)模型D功能模型7.狀態(tài)是對象屬性的值的一種抽象,它的性質(zhì)有()A時間性B持續(xù)性C有序性D有窮性8.數(shù)據(jù)流圖中的處理必須用對象中的操作來實現(xiàn)常見的操作有()A查詢B動作C活動D訪問9.建立繼承關(guān)系時所采用的方式有()A自頂向下B從內(nèi)到外C自底向上D從復(fù)雜到簡單10.對象是人們要研究的任何事物主要的對象類型有()A有形實體B作用C事件D性能說明11.下列不是常見的模型元素間的關(guān)系有()A關(guān)聯(lián)B聚合C依賴D筆記具有擴(kuò)展性,常見的擴(kuò)展機(jī)制有()A修飾B版類C加標(biāo)簽值D約束語言支持的建模方式有()A靜態(tài)建模C動態(tài)建模C模塊化建模D功能性建模14.下列各種圖可用于動態(tài)建模的有()A狀態(tài)圖B類圖C序列圖D活動圖15.下列屬于狀態(tài)的組成部分的有()A名稱B活動C條件D事件中包括的事件有()A條件成真B收到另一對象的信號C收到操作調(diào)用D經(jīng)過指定時間間隔17.屬性的可見性有()A:公有的B私有的C私有保護(hù)的D保護(hù)的18.用例之間的關(guān)系有()A:友元B擴(kuò)展C使用D組合19.應(yīng)用于通用化約束的方式有()A完整B不相交C不完整D覆蓋20.消息的類型有()A同步B異步C簡單D復(fù)雜二、判斷題1.面向?qū)ο蟮牡姆椒ㄊ且灶愖鳛樽罨镜脑?,它是分析問題解決問題的核心。2.類是指具有相同或相似性質(zhì)對象的抽象,對象是抽象的類,類的具體化就是對象。3.繼承性是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和消息的機(jī)制,這是類之間的一種關(guān)系。4.多態(tài)性增強(qiáng)了軟件的靈活性和重用性,允許用更為明確,易懂的方式去建立通用軟件,多態(tài)性和繼承性相結(jié)合使軟件具有更廣泛的重用性和可擴(kuò)充性。5.面向?qū)ο蠓治?,就是抽取和整理用戶需求并建立問題域精確模型的過程。6.面向?qū)ο蟮脑O(shè)計主要目標(biāo)是提高生產(chǎn)效率,提高質(zhì)量和提高可維護(hù)性。7.對象模型表示了靜態(tài)的,結(jié)構(gòu)化的,系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),她是從客觀世界實體的對象關(guān)系角度來描述,表現(xiàn)了對象的相互關(guān)系。8.面向?qū)ο蟮姆治鍪怯妹嫦驅(qū)ο蟮姆椒▽δ繕?biāo)系統(tǒng)的問題空間進(jìn)行理解,分析和反映。通過對象層次結(jié)構(gòu)的組織確定解空間中應(yīng)存在的對象和對象層次結(jié)構(gòu)。9.類的設(shè)計過程確定類,確定關(guān)聯(lián)類,確定屬性,識別繼承關(guān)系。10.復(fù)用也叫重用或再用,面向?qū)ο蠹夹g(shù)中的“類”,是比較理想的可重用軟構(gòu)件,有三種重用方式實例重用,繼承重用,多態(tài)重用。11.主題是一種關(guān)于模型的抽象機(jī)制,它是面向?qū)ο竽P偷母琶?,也是關(guān)于某個模型要同時考慮和理解的內(nèi)容,主題起一種控制作用。12.面向?qū)ο蟮姆治鲇蓪ο?,結(jié)構(gòu),繼承性和基于消息的通信構(gòu)成。13.支持繼承性是面向?qū)ο蟪绦蛟O(shè)計語言和傳統(tǒng)程序設(shè)計語言在語言機(jī)制方面的根本區(qū)別。14.面向?qū)ο蟮姆治鲞^程主要包括三項內(nèi)容理解,表達(dá)和驗證。15.面向?qū)ο蟮脑O(shè)計的主要目標(biāo)是提高生產(chǎn)效率,提高質(zhì)量和提高可維護(hù)性。是由圖和元模型組成的。UML的語義是定義在一個四層建模概念框架中的,這四個層次分別是元元模型層,元模型層,模型層,用戶模型層是一種建模語言,是一種標(biāo)準(zhǔn)的表示,是一種方法。18.元素是UML的基本構(gòu)成單位,它包括模型元素和視圖元素19.關(guān)系是模型元素的抽象子類型。關(guān)系的責(zé)任是在元素實例中建立語義連接。除非由子類型另外指定,與所有連接相同元素實例的關(guān)系實例關(guān)聯(lián)的名字實例必須是唯一的20.角色是關(guān)聯(lián)角色實例到屬性實例集合的共享聚集。角色的責(zé)任是指定如何在關(guān)聯(lián)實例的一端將類型實例—的實例劃分21.類圖用來表示系統(tǒng)中類和類與類之間的關(guān)系,它是對系統(tǒng)動態(tài)結(jié)構(gòu)的描述。22.用例模型的基本組成部件是用例,角色和系統(tǒng)23.用例之間有擴(kuò)展,使用,組合,三種關(guān)系24.序列圖描述對象是如何交互的并且將重點放在消息序列上25.活動圖顯示動作及其結(jié)果。著重描述操作實現(xiàn)中所完成的工作以及用例實例或類中的活動。三、簡答題1.與傳統(tǒng)程序設(shè)計模式中的過程調(diào)用相比,消息傳遞機(jī)制有何本質(zhì)區(qū)別2.闡述面向?qū)ο蟮奶卣鳎⒆龊喴慕忉尫椒▏?yán)格區(qū)分了面向?qū)ο蠓治鯫OA和面向?qū)ο笤O(shè)計OOD。OOA方法利用五個層次和活動定義和記錄系統(tǒng)行為,輸入和輸出。請簡述這五個層次4.面向?qū)ο蟪绦蛟O(shè)計有哪些優(yōu)點5.面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較。6.當(dāng)重要的對象被發(fā)現(xiàn)后,通過一組互相關(guān)聯(lián)的模型詳細(xì)表示類之間的關(guān)系和對象的行為,這些模型從四個不同的側(cè)面表示了軟件的體系結(jié)構(gòu):靜態(tài)邏輯、動態(tài)邏輯、靜態(tài)物理和動態(tài)物理。試描述一下這四種特性。7.如何繪制活動圖8.簡述四種UML依賴關(guān)系異同。9.為什么要使用UML10.簡述UML實際建模過程11.在UML中的狀態(tài)圖,協(xié)作圖,活動圖,序列圖在系統(tǒng)分析中各起到了什么作用12.簡述關(guān)聯(lián)和依賴的區(qū)別。

五軟件設(shè)計一、選擇題1.模塊的基本特征是()A、外部特征(輸入/輸出、功能)B、內(nèi)部特征(輸入/輸出、功能)C、內(nèi)部特征(局部數(shù)據(jù)、代碼)D、外部特征(局部數(shù)據(jù)、代碼方法的設(shè)計總則是()A、程序簡潔、操作方便B、結(jié)構(gòu)清晰、合理C、模塊內(nèi)聚性強(qiáng)D、模塊之間耦合度低3.軟件設(shè)計的主要任務(wù)是()A、將分析階段獲得的需求說明轉(zhuǎn)換為計算機(jī)中可實現(xiàn)的系統(tǒng)B、完成系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)設(shè)計C、完成模塊的編碼和測試D、對模塊內(nèi)部的過程進(jìn)行設(shè)計4.設(shè)計階段應(yīng)達(dá)到的目標(biāo)有()A、提高可靠性和可維護(hù)性;B、提高應(yīng)用范圍;C、結(jié)構(gòu)清晰;D、提高可理解性和效率圖由()A組成直觀目錄表B、PAD圖C、IPO圖D、詳細(xì)的IPO圖6.從工程管理的角度來看,軟件設(shè)計分兩步完成()A、1、系統(tǒng)分析2、模塊設(shè)計B、1、詳細(xì)設(shè)計2、總體設(shè)計C、1、模塊設(shè)計2、詳細(xì)設(shè)計D、1、總體設(shè)計2、詳細(xì)設(shè)計7.用戶界面設(shè)計的任務(wù)包括()A、確定用戶界面類型B、建立任務(wù)模型C、建立用戶模型D、建立功能模型8.模塊獨立性準(zhǔn)則由以下定性指標(biāo)來衡量()A、分解度B、耦合度C、屏蔽性D、內(nèi)聚性二、判斷題1.劃分模塊可以降低軟件的復(fù)雜度和工作量,所以應(yīng)該將模塊分得越小越好2.在網(wǎng)狀結(jié)構(gòu)中任何兩個模塊都是平等的,沒有從屬關(guān)系,所以在軟件開發(fā)過程中常常被使用3.信息隱蔽原則有利于提高模塊的內(nèi)聚性4.中心變換型的DFD圖可看成是對輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,因此可以使用事務(wù)分析技術(shù)得到初始的模塊結(jié)構(gòu)圖法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,強(qiáng)調(diào)程序結(jié)構(gòu)與問題結(jié)構(gòu)相對應(yīng)6.所謂結(jié)構(gòu)沖突,是指輸入數(shù)據(jù)與輸出數(shù)據(jù)之間很少或沒有結(jié)構(gòu)上的對應(yīng)關(guān)系。通常解決的辦法是:構(gòu)造一個或者多個中間結(jié)構(gòu),在輸入和輸出結(jié)構(gòu)之間進(jìn)行轉(zhuǎn)換圖是以功能、功能完備性準(zhǔn)則逐層分解的三、簡答題1.模塊內(nèi)聯(lián)系和模塊間聯(lián)系有哪些種類2.照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計總則對模塊進(jìn)行修改,具體從哪些方面進(jìn)行改進(jìn)

六程序設(shè)計語言和編碼一、選擇題1.程序設(shè)計語言可以分為()面向過程的語言B、機(jī)器語言C、高級語言D、匯編語言2.程序效率包括()幾個方面的內(nèi)容。A、代碼效率B、運(yùn)行效率C、存儲效率D、I/O效率方法中的基本控制結(jié)構(gòu)有()A、順序結(jié)構(gòu)B、選擇結(jié)構(gòu)C、重復(fù)結(jié)構(gòu)D、GOTO結(jié)構(gòu)4.內(nèi)部文檔可用注釋語言書寫,注釋語言分為()A、序言性注釋B、描述性注釋C、功能性注釋D、狀態(tài)性注釋5.為使程序中數(shù)據(jù)說明更易于理解和維護(hù),必須遵循以下原則()。A、數(shù)據(jù)說明的次序應(yīng)當(dāng)規(guī)范化;B、一個語句說明多個變量時,各變量名按字母順序排列;C、對于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),要加注釋,說明在程序?qū)崿F(xiàn)時的特點;D、定義變量名應(yīng)按字母順序排列。6.源程序的效率與()階段確定的算法的效率直接有關(guān)。A、概要設(shè)計B、總體設(shè)計C、單元設(shè)計D、詳細(xì)設(shè)計7.在詳細(xì)設(shè)計翻譯轉(zhuǎn)換成源程序代碼后,算法效率反映為對程序的哪幾個方面的要求()A、讀寫速度B、代碼長度C、存儲容量D、執(zhí)行速度8.提高程序效率的根本途徑在于()A.編程時對程序語句做調(diào)整;B.選擇良好的設(shè)計方法;C.使程序最大限度的簡潔;D.選擇良好的數(shù)據(jù)結(jié)構(gòu)與算法。二、簡答題1.編碼階段的主要任務(wù)是什么2.結(jié)構(gòu)化程序設(shè)計的優(yōu)點是什么如何在編碼中使用這種方法3.為何要進(jìn)行程序的注釋應(yīng)怎樣進(jìn)行程序的注釋4.什么是應(yīng)該提倡的編程風(fēng)格為了有良好的設(shè)計風(fēng)格,應(yīng)注意哪些方面的問題5.編碼階段的主要任務(wù)是什,應(yīng)交付的結(jié)果是什么法的自頂向下,逐步求精方法的優(yōu)點有哪些7.為了有良好的設(shè)計風(fēng)格,應(yīng)注意哪些方面的問題8.怎樣評價程序的執(zhí)行效率它與程序清晰性的關(guān)系是怎樣的9.假定:需要編一個求解一元二次方程根的子程序,加入到現(xiàn)有的子程序庫中,供其他程序員使用。要求:1)為該子程序?qū)懸粋€序言性注釋;2)用PASCAL語言或其它語言寫出這個子程序(要把根的性質(zhì),如:實根、復(fù)根、降為一次方程等等有區(qū)別地通知調(diào)用者),并加上描述性注釋。

七軟件測試一、選擇題1.軟件測試的主要特點是()A、軟件測試的開銷大B、軟件測試要依靠工具C、軟件測試要驗證軟件正確性D、軟件不能進(jìn)行“窮舉”測試2.整體測試又稱為組裝測試,其主要內(nèi)容包括()A、對整體的性能進(jìn)行測試B、設(shè)計測試用例進(jìn)行功能測試C、設(shè)計測試用例進(jìn)行測試D、對組裝過程進(jìn)行測試3.漸增式是將模塊一個一個的連入系統(tǒng),每連入一個模塊,()A、只需要對新連入的模塊進(jìn)行測試。B、都不需要再進(jìn)行測試。C、都要對新子系統(tǒng)進(jìn)行測試。D、都要進(jìn)行回歸測試。4.靜態(tài)測試是以人工的、非形式化的方法對程序進(jìn)行分析和測試。常用的靜態(tài)測試方法有:()A、狀態(tài)圖B、流程圖C、數(shù)據(jù)流分析圖D、調(diào)用圖5.集成過程的原則是()A、盡量將所有模塊集成到系統(tǒng)中B、盡早測試關(guān)鍵模塊C、集成盡早測試關(guān)鍵模塊盡早測試包含I/O的模塊D、按照輸入-處理-輸出的次序進(jìn)行集成6.關(guān)于白盒法覆蓋程度的論述中正確的是:()A、語句覆蓋:選擇測試用例使程序中每條語句至少被執(zhí)行一次B、判定覆蓋:選擇測試用例使程序中每個判定至少都獲得一次“真”值和一次“假”值。C、條件覆蓋:選擇測試用例使每個條件都滿足。D、條件組合覆蓋:將所有的判定條件的都組合起來執(zhí)行。7.軟件測試的基本原則是()A、關(guān)鍵是注重測試用例的選擇B、選擇盡可能多的測試用例C、盡量不由程序設(shè)計者進(jìn)行測試D、充分注意測試中的群集現(xiàn)象8.等價分類法的關(guān)鍵是()A、選擇測試用例B、找出等價類的邊界條件C、劃分等價類D、通過輸入條件,確定無效等價類二、判斷題1.單元測試通常應(yīng)該先進(jìn)行“人工走查”,再以白盒法為主,輔以黑盒法進(jìn)行動態(tài)測試。2.功能測試是系統(tǒng)測試的主要內(nèi)容,檢查系統(tǒng)的功能、性能是否與需求規(guī)格說明相同。3.白盒法是一種靜態(tài)測試方法,主要用于模塊測試。4.軟件測試的目的是進(jìn)一步對程序進(jìn)行調(diào)試,發(fā)現(xiàn)錯誤。5.在等價分類法中,為了提高測試效率,一個測試用例可以覆蓋多個無效等價類。6.白盒法是一種靜態(tài)測試方法,主要用于模塊測試。7.在分析規(guī)范(因、果)的基礎(chǔ)上畫出因果圖,再將其轉(zhuǎn)換為有限項判斷表,就容易得出測試用例。8.系統(tǒng)測試的主要方法是白盒法,主要進(jìn)行功能測試、性能測試、安全性測試及可靠性等測試。9.有效性測試是在模擬的環(huán)境(或就是開發(fā)環(huán)境下)下運(yùn)用黑盒法,驗證軟件特性是否與需求符合。10.在發(fā)現(xiàn)錯誤后,則應(yīng)按照一定的技術(shù)去糾正它。糾錯的關(guān)鍵是“錯誤定位”。三、簡答題1.漸增式與非漸增式各有何優(yōu)、缺點為什么通常采用漸增式2.自頂而下增值與自底而上增值各有何優(yōu)、缺點3.等價分類法的基本思想是什么4.一般,驅(qū)動模塊比樁模塊容易設(shè)計,為什么5.什么是α測試和β測試

八軟件維護(hù)一、選擇題1.軟件維護(hù)的類型有()A完善性維護(hù)B糾錯性維護(hù)C適應(yīng)性維護(hù)D預(yù)防性維護(hù)2.各種軟件維護(hù)的類型中最重要的是()。A完善性維護(hù)B糾錯性維護(hù)C適應(yīng)性維護(hù)D預(yù)防性維護(hù)3.以下屬于完善性維護(hù)的有()。A解決開發(fā)是未能測試各種可能條件帶來的問題;B增加聯(lián)機(jī)求助命令;C縮短系統(tǒng)的應(yīng)答時間,使其達(dá)到特定要求;D為軟件的運(yùn)行增加監(jiān)控設(shè)施。4.進(jìn)行系統(tǒng)修改時可能會產(chǎn)生維護(hù)的副作用,它們可能有()。A修改數(shù)據(jù)的副作用B修改錯誤后,又引入了新的錯誤C修改代碼的副作用D文檔資料的副作用5.確定可維護(hù)性的因素主要有()。A文檔B可理解性C可修改性D可測試性6.軟件維護(hù)階段所產(chǎn)生的文檔主要有()。A軟件問題報告B軟件修改報告C軟件修改申請報告7.表達(dá)計劃安排的主要工具有()APERT圖B甘特圖CDFD圖D進(jìn)度表二、判斷題1.軟件維護(hù)只需要校正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)2.軟件維護(hù)總工作量可用公式表示為:M=P+K·;exp(D-C)3.生產(chǎn)性活動包括分析評價、修改設(shè)計、編寫程序代碼和設(shè)計約束4.改進(jìn)程序的執(zhí)行效率不會引入錯誤5.強(qiáng)調(diào)簡明性的程序出錯率低6.用面向?qū)ο蠓椒ㄩ_發(fā)的軟件系統(tǒng),可維護(hù)性好三、簡答題1.為什么要進(jìn)行軟件維護(hù)2.怎樣防止維護(hù)的副作用3.什么是軟件可維護(hù)性可維護(hù)性度量的特性是什么4.高可維護(hù)性的方法有哪些

綜合試卷一試卷總分:100分答卷時間:110分鐘試卷類型:A 單項選擇題(每小題的四個備選答案只有一個正確答案,每題1分,共10分)1.在問題分析階段,用戶需求具有()A.模糊性,全面性,一致性B.全面性,精確性,一致性C.模糊性,歧義性,不一致性D.全面性,精確性,不一致性2.?dāng)?shù)據(jù)流圖的繪制應(yīng)采用()A.問題分解、逐步求精的方法B.模塊化方法C.原型化方法D.結(jié)構(gòu)化方法3.在軟件的生存期模型中,軟件開發(fā)不包括()A.概要設(shè)計B.組裝測試C.實現(xiàn)D.維護(hù)4.軟件復(fù)雜性度量模型應(yīng)遵循下列基本原則()軟件復(fù)雜性與程序大小的關(guān)系不是線性的控制結(jié)構(gòu)復(fù)雜的程序較復(fù)雜數(shù)據(jù)結(jié)構(gòu)復(fù)雜的程序較復(fù)雜以上A,均對5.下面內(nèi)聚度最高的是()A.過程性內(nèi)聚B.功能性內(nèi)聚C.邏輯性內(nèi)聚D.偶然性內(nèi)聚6.在將需求規(guī)格說明書提交給設(shè)計階段之前,必須進(jìn)行()A.修改B.追蹤C(jī).調(diào)試D.評審7.軟件設(shè)計的主要任務(wù)是()A.根據(jù)需求規(guī)格說明導(dǎo)出系統(tǒng)的實現(xiàn)方案B.實現(xiàn)用戶需求的一致化,精確化,安全化C.編程序D.寫代碼8.下面哪一類是白盒測試的基本技術(shù)()A.基本路徑測試B.等價分類法C.邊界值分析法D.對比測試法9.軟件生存周期模型不包括:()A.瀑布模型B、對象模型C、增量模型D、噴泉模型10.功能點度量的優(yōu)點是()A.適用于開發(fā)的各個時期B.只適用于過程語言C.與程序設(shè)計語言無關(guān)E.不涉及主觀因素填空題(每題2分,共30分)計算機(jī)軟件是與計算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、規(guī)則及任何與之有關(guān)的________和____________。程序設(shè)計說明書由系統(tǒng)分析員編寫,交給________使用。影響編碼質(zhì)量的因素包括編程語言,______________和_______________。白盒測試包括________________和______________兩種技術(shù)。軟件生存周期的軟件定義分為_______________和________________兩個階段。軟件維護(hù)的內(nèi)容包括糾錯性維護(hù),適應(yīng)性維護(hù)、改善性維護(hù)和_______________。螺旋模型是生存周期模型與原型的結(jié)合,不僅體現(xiàn)了兩個模型的優(yōu)點,而且還增加了新的成分_______________。軟件工程的定量描述離不開度量、測量和________________3個基本概念。9.1991年8月,美國卡內(nèi)基·梅隆大學(xué)軟件工程研究所公開發(fā)布CMM(即_________________)。10.需求分析可分為問題分析、______________和________________3個階段。11.軟件開發(fā)階段由___________、_____________和測試3個基本活動組成。12.無論基于哪一種數(shù)據(jù)管理方法,數(shù)據(jù)持久存儲服務(wù)的設(shè)計都包括定義_______________和定義________________兩部分。13.______________是指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相似軟件元素的過程。14.可以用三種抽象方法開發(fā)軟部件:功能抽象、_____________、__________________。15.快速原型方法的關(guān)鍵在于如何快速地實現(xiàn)可運(yùn)行的原型,以便盡快提交__________確認(rèn),然后再進(jìn)行改進(jìn)。名詞解釋(每小題4分,共16分)軟件工程2.軟件需求3.軟件測試4.軟件維護(hù) 四、簡答題(每小題5分,共30分)軟件開發(fā)過程中必須遵循哪些軟件工程原則至少列出5條并簡述之面向?qū)ο蠓椒▽W(xué)包含哪些核心概念簡述之寫出至少5種內(nèi)聚度。SD方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過程分哪5步UML的消息類型有幾種,哪幾種6.瀑布模型的缺陷有哪些 五、應(yīng)用題(1題6分,2題8分,共14分)針對“高校學(xué)生學(xué)籍成績管理系統(tǒng)”至少列出六項系統(tǒng)需求畫出“高校學(xué)生學(xué)籍成績管理系統(tǒng)”的頂級和第一級數(shù)據(jù)流圖,并轉(zhuǎn)化為相應(yīng)的程序結(jié)構(gòu)。

綜合試卷二試卷總分:100分答卷時間:110分鐘試卷類型:B一、選擇題(每小題的四個備選答案只有一個正確答案,每題1分,共10分)1.需求分析報告的任務(wù)是()A.正確評價當(dāng)前系統(tǒng)B.徹底了解管理方法C.是用戶接受分析人員的觀點D.弄清用戶的要求,確定待開發(fā)軟件的功能要求,性能需求和運(yùn)行環(huán)境約束。2.系統(tǒng)軟件和應(yīng)用軟件總稱計算機(jī)的()A.軟件系統(tǒng)B.操作系統(tǒng)C.?dāng)?shù)據(jù)庫管理系統(tǒng)D.語言編譯系統(tǒng)3.在數(shù)據(jù)流圖中的數(shù)據(jù)存儲是指()A.手工臺帳B.?dāng)?shù)據(jù)存儲的地方C.?dāng)?shù)據(jù)庫文件D.磁盤文件4.α,β測試屬于()A.系統(tǒng)測試B.單元測試C.綜合測試D.確認(rèn)測試5.用結(jié)構(gòu)化程序設(shè)計方法編程時,任何程序均由以下三種基本邏輯結(jié)構(gòu)組成()A.控制結(jié)構(gòu)、選擇結(jié)構(gòu)、執(zhí)行結(jié)構(gòu)B.順序結(jié)構(gòu)、控制結(jié)構(gòu)、選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)、順序結(jié)構(gòu)、選擇結(jié)構(gòu)D.順序結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、循環(huán)結(jié)構(gòu)6.需求規(guī)格說明書的主體包括()A.人員需求,成本需求B.進(jìn)度需求,人員需求C.功能與行為需求描述及非行為需求描述D.進(jìn)度安排,軟件設(shè)計方案,質(zhì)量控制方案7.軟件設(shè)計在過程上可分為()兩個階段.A.總體設(shè)計和數(shù)據(jù)設(shè)計B.概要設(shè)計和詳細(xì)設(shè)計C.過程設(shè)計和界面設(shè)計D.?dāng)?shù)據(jù)設(shè)計和過程設(shè)計 8.多個軟件元素相互通信并協(xié)同完成任務(wù)的能力稱之為()可維護(hù)性B.可適應(yīng)性C.可互操作性D.可移植性9.單元測試的對象是()A.模塊B.子系統(tǒng)C.系統(tǒng)D.硬件系統(tǒng)10.下列屬于維護(hù)階段的文檔是()A.軟件規(guī)格說明B.用戶操作手冊C.軟件測試分析報告D.軟件問題報告二、填空題(每題2分,共30分)開發(fā)軟件的可行性分析應(yīng)包括____________上的可行性,_________________上的可行性和法律上的可行性。類之間具有___________關(guān)系和__________關(guān)系。OO方法主張分析人員在________空間中直接模擬___________空間中的對象及其行為。計算機(jī)軟件由二部分組成,一是___________,二是___________。結(jié)構(gòu)化模塊結(jié)構(gòu)圖的設(shè)計方法有___________和___________。軟件開發(fā)是一個自頂向下逐步細(xì)化和求精過程,而軟件測試是一個__________________集成的過程。軟件工程是將系統(tǒng)的、規(guī)范的、可度量的工程化方法應(yīng)用于____________、____________和維護(hù)的全過程及上述方法的研究。變換模型是基于_______________規(guī)格說明語言及程序變換的軟件開發(fā)模型。9.軟件工程的風(fēng)險分析包括風(fēng)險標(biāo)識、風(fēng)險估算、______________和_______________四部分。10.CMM的能力成熟度共分5級:L1初始級、L2可重復(fù)級、L3___________、L4可管理級、L5_____________。11.UML的用例與用例之間存在_______________和_______________兩種關(guān)系。12.按照重用活動是否跨越相似性較少的多個應(yīng)用領(lǐng)域,軟件重用可區(qū)別為_________重用和____________重用兩類。13.快速原型的構(gòu)造過程可以歸納為________________、_______________、檢查、改進(jìn)四個步驟。14.軟件設(shè)計可分為_____________和______________兩大步驟。15.___________測試針對程序的每一條邏輯路徑都要分別設(shè)計測試用例,檢查要支和循環(huán)的情況三、名詞解釋(每小題4分,共16分)計算機(jī)軟件2.?dāng)?shù)據(jù)流圖軟件可維護(hù)性4.軟件測試 四、簡答題(每小題5分,共30分)1.高質(zhì)量的軟件應(yīng)該具備哪些條件寫出至少5種耦合度。3.人機(jī)界面的設(shè)計可分為哪幾個步驟 4.簡述螺旋模型的基本開發(fā)過程。5.衡量某種程序語言是否適合于特定的項目,應(yīng)考慮下面哪些因素6.SD方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過程分哪5步 五、應(yīng)用題(1題6分,2題8分,共14分)1.針對“小型圖書管理系統(tǒng)”至少列出六項系統(tǒng)需求2.畫出“小型圖書管理系統(tǒng)”的頂級和第一級數(shù)據(jù)流圖,并轉(zhuǎn)化為相應(yīng)的程序結(jié)構(gòu)。

綜合試卷三試卷總分:100分答卷時間:110分鐘試卷類型:C 項選擇題(每小題的四個備選答案只有一個正確答案,每題1分,共10分)1.問題分析階段的參加人員主要有()A.用戶B.設(shè)計人員C.分析員D.分析員和用戶2.下述耦合度最低者為()A.公共耦合B.內(nèi)容耦合C.外部耦合D.非直接耦合.3.軟件開發(fā)階段的三個基本活動為()A.分析,設(shè)計,編碼B.分析,設(shè)計,測試C.設(shè)計,編碼,測試D.分析,編碼,測試4.在SD方法中,將數(shù)據(jù)流變換的信息流分為()A.變換流和事務(wù)流B.輸入,輸出流C.輸入,轉(zhuǎn)換,輸出流D.事件,控制流5.軟件設(shè)計階段的文本可為()A.需求規(guī)格說明書B.用戶手冊C.設(shè)計規(guī)格說明書D.可行性分析報告6.啟發(fā)式設(shè)計策略中不包括()A.降低耦合讀,提高內(nèi)聚度B.改造程序結(jié)構(gòu),追求單入口和單出口的模塊C.改造程序結(jié)構(gòu),減少扇入D.改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域內(nèi)7.可行性研究的工作成果是()A.初步的項目開發(fā)計劃B.設(shè)計規(guī)格說明書C.測試說明書D.需求規(guī)格說明書8.軟件工程有()三部分組成A.目標(biāo),方法,過程B.方法,工具,過程C.目標(biāo),方法,工具D.目標(biāo),工具,過程9.一個成功的測試可以()。A.表明程序沒有錯誤B.發(fā)現(xiàn)所有錯誤C.提高軟件可靠性D.發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤10.在下述說明中,哪一個不屬于軟件設(shè)計活動()A.總體結(jié)構(gòu)設(shè)計B.?dāng)?shù)據(jù)設(shè)計C.界面設(shè)計D.程序設(shè)計二、填空題(每題2分,共30分)是一種數(shù)據(jù)媒體和其上記錄的數(shù)據(jù)。2.軟件生存周期的軟件定義分為_______________和________________兩個階段。3.逆向工程和______________是目前預(yù)防性維護(hù)采用的主要技術(shù)。4.螺旋模型是生存周期模型與原型的結(jié)合,不僅體現(xiàn)了兩個模型的優(yōu)點,而且還增加了新的成分_______________。5.在將需求規(guī)格說明書提交給設(shè)計階段之前,必須進(jìn)行____________________。圖是表示數(shù)據(jù)對象及其關(guān)系的圖形語言機(jī)制。靜態(tài)圖包括類圖、____________和____________。8.軟件設(shè)計可分為_____________和______________兩大步驟。9.面向?qū)ο蟮闹赜猛ǔ2辉试S用戶直接修改庫中___________,對類庫進(jìn)行擴(kuò)充或修改的辦法只是將新的子類加入到類庫的繼承層次結(jié)構(gòu)中。測試完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。測試僅在程序界面上進(jìn)行。11.軟件開發(fā)階段由___________、_____________和測試3個基本活動組成。12.軟件維護(hù)的內(nèi)容包括_____________,適應(yīng)性維護(hù)、改善性維護(hù)和預(yù)防性維護(hù)。13.軟件工程的風(fēng)險分析包括風(fēng)險標(biāo)識、______________、風(fēng)險評價和_______________四部分。14.無論基于哪一種數(shù)據(jù)管理方法,數(shù)據(jù)持久存儲服務(wù)的設(shè)計都包括定義_______________和定義________________兩部分。15.人機(jī)界面設(shè)計過程先后涉及四個模型,設(shè)計模型、_____________、終端用戶對未來系統(tǒng)的假想、_______________。三、名詞解釋(每小題4分,共16分)1.軟件生命周期2.軟件工程3.協(xié)作圖4.軟件重用 四、簡答題(每小題5分,共30分)軟件工程的目標(biāo)有哪些至少寫出5種2.面向?qū)ο蠓椒▽W(xué)包含哪些核心概念簡述之3.UML的消息類型有幾種,哪幾種4.人機(jī)界面的設(shè)計可分為哪幾個步驟5.一個程序段的文檔應(yīng)包括哪些內(nèi)容6.螺旋模型有哪些優(yōu)點五、應(yīng)用題(1題6分,2題8分,共14分)1.針對“通用在線考試系統(tǒng)”至少列出六項系統(tǒng)需求2.畫出“通用在線考試系統(tǒng)”的頂級和第一級數(shù)據(jù)流圖,并轉(zhuǎn)化為相應(yīng)的程序結(jié)構(gòu)。

附參考答案:一軟件與軟件工程參考答案一、選擇題二、判斷題1.錯誤2.錯誤3.錯誤4.正確5.錯誤6.正確7.錯誤8.錯誤9.錯誤10.正確三、簡答題軟件產(chǎn)品的特性是什么答:軟件是一種邏輯產(chǎn)品,具有無形性;軟件產(chǎn)品的生產(chǎn)主要是研制;軟件不存在磨損和老化問題,但存在退化問題。軟件產(chǎn)品的生產(chǎn)主要是腦力勞動;軟件產(chǎn)品的成本非常昂貴,其開發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式。軟件具有“復(fù)雜性”,其開發(fā)和運(yùn)行常受到計算機(jī)系統(tǒng)的限制。軟件發(fā)展有幾個階段各有何特征答:①程序設(shè)計階段。硬件特征:價格貴、存儲容量小、運(yùn)行可靠性差。軟件特征:只有程序、程序設(shè)計概念,不重視程序設(shè)計方法。②程序系統(tǒng)階段。硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性增長。軟件特征:程序員數(shù)量猛增,開發(fā)人員素質(zhì)低。③軟件工程階段。硬件特征:向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展。軟件特征:開發(fā)技術(shù)有很大進(jìn)步,但未獲得突破性進(jìn)展,軟件價格不斷上升,未完全擺脫軟件危機(jī)。3.什么是軟件危機(jī)其產(chǎn)生的原因是什么答:“軟件危機(jī)”(Softwarecrisis)的出現(xiàn)是由于軟件的規(guī)模越來越大,復(fù)雜度不斷增加,軟件需求量增大。而軟件開發(fā)過程是一種高密集度的腦力勞動,軟件開發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場,有的花費(fèi)大量人力財力,而在開發(fā)過程中就夭折?!败浖C(jī)”主要表現(xiàn)在兩個方面:(1)軟件產(chǎn)品質(zhì)量低劣,甚至開發(fā)過程就夭折。(2)軟件生產(chǎn)率低,不能滿足需要。4.什么是軟件生存周期模型它有哪些主要模型答:軟件生存周期模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。主要模型包括:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型。5.有哪些主要的軟件開發(fā)方法答:主要的軟件開發(fā)方法有;結(jié)構(gòu)化開發(fā)方法、Jackson(JSP、JSD)方法、原型化開發(fā)方法、維也納開發(fā)方法(VDM)和面向?qū)ο蟮拈_發(fā)方法。6.軟件生命期各階段的任務(wù)是什么答:軟件生命期瀑布模型分為六個階段:可行性研究與計劃(確定系統(tǒng)的目標(biāo)和規(guī)模、分析項目的可行性)需求分析與規(guī)格說明(明確系統(tǒng)的規(guī)格和要求)設(shè)計(包括概要設(shè)計和詳細(xì)設(shè)計,將系統(tǒng)分解為模塊)編程(用程序語言實現(xiàn)每個模塊,簡單容易)測試(發(fā)現(xiàn)并改正錯誤,分為模塊測試、集成測試和系統(tǒng)聯(lián)調(diào)三級)運(yùn)行維護(hù)(擴(kuò)充功能、糾錯等)

二軟件工程管理參考答案一、選擇題二、判斷題1.正確2.錯誤3.正確4.錯誤5.錯誤6.錯誤7.正確8.正確三、簡答題1.簡述一個成熟的軟件機(jī)構(gòu)應(yīng)具有的特點。答:建立了機(jī)構(gòu)級的軟件開發(fā)和維護(hù)過程。軟件人員對其有較好的理解。一切活動均遵循過程的要求進(jìn)行,做到工作步驟有次序,且有章可循;軟件過程必要時可做改進(jìn),但需在經(jīng)小型實驗和成本效益分析基礎(chǔ)上進(jìn)行;軟件產(chǎn)品的質(zhì)量和客戶對軟件產(chǎn)品的滿意程度不是由開發(fā)人員,而是由負(fù)責(zé)質(zhì)量保證的經(jīng)理負(fù)責(zé)監(jiān)控;項目進(jìn)度和預(yù)算是根據(jù)以往項目取得的實踐經(jīng)驗確定,因而比較符合實際情況。2、CMM將軟件過程的成熟度分為哪幾個級別答:初始級、可重復(fù)級、已定義級、已管理級和優(yōu)化級

三需求分析參考答案一、選擇題二、判斷題1.錯誤2.正確3.正確4.錯誤5.錯誤6.錯誤7.錯誤8.正確9.正確10.正確三、簡答題什么是需求分析需求分析階段的基本任務(wù)是什么答:需求分析是當(dāng)前軟件工程中的關(guān)鍵問題,需求分析階段的任務(wù)是:在可行性分析的基礎(chǔ)上,進(jìn)一步了解、確定用戶需求。準(zhǔn)確地回答“系統(tǒng)必須做什么”的問題。獲得需求規(guī)格說明書。還涉及到軟件系統(tǒng)的目標(biāo)、軟件系統(tǒng)提供的服務(wù)、軟件系統(tǒng)的約束和軟件系統(tǒng)運(yùn)行的環(huán)境。它還涉及這些因素和系統(tǒng)的精確規(guī)格說明以及系統(tǒng)進(jìn)化之間的關(guān)系。需求分析的基本任務(wù)包括:抽取需求分析現(xiàn)行系統(tǒng)存在需要解決的問題。獲取足夠多的問題領(lǐng)域的知識,需求抽取的方法一般有問卷法、面談法、數(shù)據(jù)采集法、用況法、情景實例法以及基于目標(biāo)的方法等,還有知識工程方法,如:場記分析法、卡片分類法、分類表格技術(shù)和基于模型的知識獲取等。模擬和分析需求需求分析和模擬又包含三個層次的工作。首先是需求建模。需求模型的表現(xiàn)形式有自然語言、半形式化(如圖、表、結(jié)構(gòu)化英語等)和形式化表示等三種。需求概念模型的要求包括實現(xiàn)的獨立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等;需求模擬技術(shù)又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。傳遞需求傳遞需求的主要任務(wù)是書寫軟件需求規(guī)格說明。認(rèn)可需求就是對需求規(guī)格說明達(dá)成一致,其主要任務(wù)是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法有:協(xié)商、競爭、仲裁、強(qiáng)制、教育等,其中有些只能用人的因素去控制。進(jìn)化需求客戶的需要總是不斷(連續(xù))增長的,但是一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進(jìn)化(變化)就成為軟件進(jìn)化的首要問.。對傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組。當(dāng)前的發(fā)展是軟件家族法,即產(chǎn)品線方法。多視點方法也是管理需求變化的一種新方法,它可以用于管理不一致性并進(jìn)行關(guān)于變化的推理。公司的軟件產(chǎn)品以開發(fā)實驗型的新軟件為主。用瀑布模型進(jìn)行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理員剛加入M公司,你認(rèn)為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理由,切記:副總裁不喜歡報告長度超過一頁(B5)。答:應(yīng)先簡述瀑布模型的缺點,它已不適宜開發(fā)實驗型的軟件。根據(jù)快速原型法的特點,特別適合于開發(fā)探索型、實驗型的軟件。3.如何畫分層數(shù)據(jù)流圖答:總的原則是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖):比較復(fù)雜的系統(tǒng)不能畫在一張紙上逐層分解的畫法可以控制每一層的復(fù)雜度。頂層:將整個系統(tǒng)作為一個加工,描述系統(tǒng)邊界(輸入與輸出。)中間層:表示某個加工分解為一組子加工,其中的子加工還需進(jìn)一步分解。底層:由不再進(jìn)行分解的基本加工組成。4.加工小說明有哪些描述方法答:結(jié)構(gòu)化語言:介于自然語言和形式語言(如謂詞邏輯)之間。結(jié)構(gòu)化英語:通常由外層和內(nèi)層結(jié)構(gòu)組成漢語的情況:精確、簡明扼要、文體可以靈活。判定表:適用于表述比較復(fù)雜的加工邏輯,如具有多項選擇條件的操作。判定樹:本質(zhì)上同判定表,圖形表示更易于理解。5.常用的軟件需求分析的方法有哪些答:結(jié)構(gòu)化分析方法(SA)、功能分解法、信息建模法、面向?qū)ο蟮姆治龇椒ǎ∣OA)。

四面向?qū)ο蟮男枨蠓治鰠⒖即鸢敢?、選擇題二、判斷題1.錯誤2.正確3.錯誤4.錯誤5.正確6.正確7.正確8.正確9.正確10.正確11.正確12.錯誤13.正確14.正確15.正確16.正確17.錯誤18.正確19.正確20.正確21.錯誤22.正確23.正確24.正確25.錯誤三、簡答題1.與傳統(tǒng)程序設(shè)計模式中的過程調(diào)用相比,消息傳遞機(jī)制有何本質(zhì)區(qū)別答:1)消息傳遞必須給出信道的信息,通常要指出明顯的接受方。2)由于接受方是一通信實體,具有保持狀態(tài)的能力,所以同一發(fā)送方在不同時刻向同一接受方發(fā)送同樣的信息,可因接受方的當(dāng)前狀態(tài)不同而得到不同的結(jié)果。3)消息傳遞可以是異步的,發(fā)送方可以不必等待接受方返回信息就可以繼續(xù)執(zhí)行后面的操作,因而支持程序的并發(fā)和分布執(zhí)行,而過程調(diào)用只能是同步的,本質(zhì)上是串行的。2.闡述面向?qū)ο蟮奶卣?,并做簡要的解釋答?)對象唯一性。每個對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。2)分類性。是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類。3)繼承性。是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。4)多態(tài)性。是指相同的操作或函數(shù),過程作用于多種類型的對象上并獲得不同的結(jié)果。方法嚴(yán)格區(qū)分了面向?qū)ο蠓治鯫OA和面向?qū)ο笤O(shè)計OOD。OOA方法利用五個層次和活動定義和記錄系統(tǒng)行為,輸入和輸出。請簡述這五個層次1)發(fā)現(xiàn)類及對象。描述如何發(fā)現(xiàn)類及對象。從應(yīng)用領(lǐng)域開始識別類及對象,形成整個應(yīng)用的基礎(chǔ),然后,據(jù)此分析系統(tǒng)的責(zé)任。2)識別結(jié)構(gòu)。該階段分為兩個步驟。第一,識別一般-特殊結(jié)構(gòu),該結(jié)構(gòu)捕獲了識別出的類的層次結(jié)構(gòu);第二,識別整體-部分結(jié)構(gòu),該結(jié)構(gòu)用來表示一個對象如何成為另一個對象的一部分,以及多個對象如何組裝成更大的對象。3)定義主題。主題由一組類及對象組成,用于將類及對象模型劃分為更大的單位,便于理解。4)定義屬性。其中包括定義類的實例(對象)之間的實例連接。5)定義服務(wù)。其中包括定義對象之間的消息連接。4.面向?qū)ο蟪绦蛟O(shè)計有哪些優(yōu)點答:并發(fā)時間短,效率高,可靠性高,所開發(fā)的程序更強(qiáng)壯。由于面向?qū)ο缶幊痰目芍赜眯?,可以在?yīng)用程序中大量采用成熟的類庫,從而縮短了開發(fā)時間。程序更易于維護(hù)、更新和升級。繼承和封裝使得應(yīng)用程序的修改帶來的影響更加局部化。5.面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較答:分析是問題抽象(做什么),設(shè)計是問題求解(怎么做),實現(xiàn)是問題的解(結(jié)果)。任何方法學(xué)對客觀世界的抽象和求解過程都是如此。在問題抽象階段,結(jié)構(gòu)化方法面向過程,按照數(shù)據(jù)變換的過程尋找問題的結(jié)點,對問題進(jìn)行分解。因此,與面向?qū)ο蠓椒◤?qiáng)調(diào)的對象模型不同,描述數(shù)據(jù)變換的功能模型是結(jié)構(gòu)化方法的重點。如果問題世界的功能比數(shù)據(jù)更復(fù)雜或者更重要,那么結(jié)構(gòu)化方法仍然應(yīng)是首選的方法學(xué)。如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜且變換并不多,那么如以過程主導(dǎo)分析和設(shè)計,一旦有系統(tǒng)變更就會給下游開發(fā)帶來極大混亂。由于對過程的理解不同,面向過程的功能細(xì)分所分割出的功能模塊有時會因人而異。而面向?qū)ο蟮膶ο蠹?xì)分,從同一問題領(lǐng)域的對象出發(fā),不同人得出相同結(jié)論的比率較高。在設(shè)計上,結(jié)構(gòu)化方法學(xué)產(chǎn)生自頂向下、結(jié)構(gòu)清晰的系統(tǒng)結(jié)構(gòu)。每個模塊有可能保持較強(qiáng)的獨立性,但它往往與數(shù)據(jù)庫結(jié)構(gòu)相獨立,功能模塊與數(shù)據(jù)庫邏輯模式間沒有映射關(guān)系,程序與數(shù)據(jù)結(jié)構(gòu)很難封裝在一起。如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜,模塊獨立性很難保證。面向?qū)ο蠓椒ǔ橄蟮南到y(tǒng)結(jié)構(gòu)往往并不比結(jié)構(gòu)化方法產(chǎn)生的系統(tǒng)結(jié)構(gòu)簡單,但它能映射到數(shù)據(jù)庫結(jié)構(gòu)中,很容易實現(xiàn)程序與數(shù)據(jù)結(jié)構(gòu)的封裝。在軟件工程基本原則中有一條“形式化原則”,即對問題世界的抽象結(jié)論應(yīng)該以形式化語言(圖形語言、偽碼語言等)表述出來。結(jié)構(gòu)化方法可以用數(shù)據(jù)流圖、系統(tǒng)結(jié)構(gòu)圖、數(shù)據(jù)辭典、狀態(tài)轉(zhuǎn)移圖、實體關(guān)系圖來進(jìn)行系統(tǒng)邏輯模型的描述;而面向?qū)ο蠓椒梢允褂脤ο竽P蛨D、數(shù)據(jù)辭典、動態(tài)模型圖、功能模型圖。其中對象模型圖近似系統(tǒng)結(jié)構(gòu)圖與實體關(guān)系圖的結(jié)合,動態(tài)模型圖類似狀態(tài)遷移圖,功能模型圖類似數(shù)據(jù)流圖。6.當(dāng)重要的對象被發(fā)現(xiàn)后,通過一組互相關(guān)聯(lián)的模型詳細(xì)表示類之間的關(guān)系和對象的行為,這些模型從四個不同的側(cè)面表示了軟件的體系結(jié)構(gòu):靜態(tài)邏輯、動態(tài)邏輯、靜態(tài)物理和動態(tài)物理。試描述一下這四種特性答:靜態(tài)邏輯模型描述實例化(類成員關(guān)系)、關(guān)聯(lián)、聚集(整體/部分)、和一般化(繼承)等關(guān)系。這被稱為對象模型。一般化關(guān)系表示屬性和方法的繼承關(guān)系。定義對象模型的圖形符號體系通常是從用于數(shù)據(jù)建模的實體關(guān)系圖導(dǎo)出的。對設(shè)計十分重要的約束,如基數(shù)(一對一、一對多、多對多),也在對象模型中表示。動態(tài)邏輯模型描述對象之間的互相作用?;ハ嘧饔猛ㄟ^一組協(xié)同的對象,對象之間消息的有序的序列,參與對象的可見性定義,來定義系統(tǒng)運(yùn)行時的行為。。靜態(tài)物理模型通過模塊描述代碼的布局。動態(tài)物理模型描述軟件的進(jìn)程和線程體系結(jié)構(gòu)。7.如何繪制活動圖答:UML活動圖記錄了單個操作或方法的邏輯,單個用戶案例,或者單個業(yè)務(wù)流程的邏輯。要創(chuàng)建一個UML活動圖,您需要反復(fù)執(zhí)行下列步驟,第一步,定義活動圖的范圍首先應(yīng)該定義您要對什么建模。單個用戶案例力一個用戶案例的一部分一個包含多個用戶案例的商務(wù)流程一個類的單個方法一旦您定義了您所作圖的范圍,您應(yīng)該在其頂部,用一個標(biāo)注添加標(biāo)簽,指明該圖的標(biāo)題和唯一的標(biāo)示符。您有可能也想要包括該圖的時間甚至作者名第二步,添加起始和結(jié)束點每個活動圖有一個起始點和結(jié)束點,因此您也要馬上添加它們。在《UML精粹》(UMLDistilled)(參見參考資料),F(xiàn)owler和Scott認(rèn)為結(jié)束點是可選的。有時候一個活動只是一個簡單的結(jié)束,如果是這種情況,指明其唯一的轉(zhuǎn)變是到一個結(jié)束點也是無害的。這樣,當(dāng)其他人閱讀您的圖時,他或她知道您已經(jīng)考慮了如何退出這些活動。第三步,添加活動如果您正對一個用戶案例建模,對每個角色(actor)所發(fā)出的主要步驟引入一個活動(該活動可能包括起始步驟,加上對起始步驟系統(tǒng)響應(yīng)的任何步驟)。如果您正對一個高層的商務(wù)流程建模,對每個主要流程引入一個活動,通常為一個用戶案例或用戶案例包。最后,如果您正對一個方法建模,那么對此引入一個活動是很常見的。第四步,添加活動間的轉(zhuǎn)變我的風(fēng)格總是應(yīng)該退出一個活動,即使它是轉(zhuǎn)變到一個結(jié)束點。一旦一個活動有多個轉(zhuǎn)變時,您必需對每個轉(zhuǎn)變加以相應(yīng)標(biāo)示。第五步,添加決策點有時候,您所建模的邏輯需要做出一個決策。有可能是需要檢查某些事務(wù)或比較某些事務(wù)。要注意的是,使用決策點是可選的。例如,在圖1中,我可以只是簡單地將“接受”和“拒絕”兩個轉(zhuǎn)變直接接到“在大學(xué)報名(EnrollinUniversity)”活動。";第六步,找出可并行活動之處當(dāng)兩個活動間沒有直接的聯(lián)系,而且它們都必需在第三個活動開始前結(jié)束,那它們是可以并行運(yùn)行的。在圖1中,您看到是有可能“參加簡要介紹(attendoverview)”和“報名研討班(enrollinseminars)”可以按任意次序進(jìn)行,但是它們都得在您結(jié)束整個流程前完成。8.簡述四種UML依賴關(guān)系異同答:綁定關(guān)系位于模板(如C++模板)和用其生成的模型元素之間,該元素完全是模板的實例化,為添加任何新的東西。可溯關(guān)系是兩個元素或元素集合之間的概念連接,用于描述位于不同語義層或多種視點下的同一個概念。這些元素間并沒有任何特定的映射關(guān)系,關(guān)系的方向可被忽略。通常用于跟蹤需求,或幫助建模者跟蹤多個模型的變化。使用關(guān)系表示一個元素為了實現(xiàn)或完成其全部的功能需要其它元素或元素集合的配合,例如類與類之間的多種方法調(diào)用關(guān)系。細(xì)化關(guān)系是不同語義層(如分析和設(shè)計)之間模型元素的依賴關(guān)系,表示客戶可由供應(yīng)者導(dǎo)出。這一導(dǎo)出關(guān)系不一定非要用算法來描述,可以完全人為決定,因此細(xì)化關(guān)系可描述的語義范圍較廣,包括:模型的逐步細(xì)化、優(yōu)化、變換、模板、模型合成、框架組成等等。綁定和使用關(guān)系只能用于同一模型中元素的連接,而可溯和細(xì)化關(guān)系可用于連接多個模型的元素。9.為什么要使用UML軟件開發(fā)的過程猶如雕琢一件工藝品,由無形到有形,由粗到細(xì)。我們知道,隨著計算機(jī)應(yīng)用的飛速發(fā)展,軟件的復(fù)雜程度不斷提高,源代碼的規(guī)模越來越大,項目失敗的可能性也相應(yīng)增加。在長期的研究與實踐中,人們越來越深刻地認(rèn)識到,建立簡明準(zhǔn)確的表示模型是把握復(fù)雜系統(tǒng)的關(guān)鍵。模型是對事物的一種抽象,人們常常在正式建造實物之前,首先建立一個簡化的模型,以便更透徹地了解它的本質(zhì),抓住問題的要害。在模型中,先要剔除那些與問題無關(guān)的、非本質(zhì)的東西,從而使模型與真實的實體相比更加簡單明了、易于把握??偟膩碚f,使用模型可以使人們從全局上把握系統(tǒng)的全貌及其相關(guān)部件之間的關(guān)系,可以防止人們過早地陷入各個模塊的細(xì)節(jié)。因此,面向?qū)ο蟮姆治雠c設(shè)計應(yīng)該從建模開始。10.簡述UML實際建模過程答:每次迭代都分為以下幾個階段:分析階段建模的目的是捕捉系統(tǒng)的功能需求,分析、提取所開發(fā)系統(tǒng)的";客觀世界";領(lǐng)域的類以及描述它們的合作概貌。設(shè)計階段建模的目的是通過考慮實現(xiàn)環(huán)境,將分析階段的模型擴(kuò)展和轉(zhuǎn)化為可行的技術(shù)實現(xiàn)方案。實現(xiàn)階段具體工作就是進(jìn)行編碼,同時對已構(gòu)造的模型作相應(yīng)的修正。配置階段通過模型描述所開發(fā)系統(tǒng)的軟硬件配置情況。測試階段使用前幾個階段所構(gòu)造的模型來指導(dǎo)和協(xié)助測試工作。11.在UML中的狀態(tài)圖,協(xié)作圖,活動圖,序列圖在系統(tǒng)分析中各起到了什么作用答:狀態(tài)圖表示一個類的狀態(tài)變化,例如訂單的狀態(tài)變化等,在實時系統(tǒng)中用的較多,也可以用于輔助設(shè)計用戶界面;順序圖表示各個類如何合作,一起完成一個usecase,并可以驗證和修正類圖,協(xié)作圖從另一個角度來完成這些事情,協(xié)作圖也可以從順序圖生成。活動圖可以用來表示usecase的各條分支。12.簡述關(guān)聯(lián)和依賴的區(qū)別關(guān)聯(lián)是類之間的“靜態(tài)”關(guān)系,只有通過這個關(guān)系的導(dǎo)航,一個對象才能找到另一個對象。它就象我們手中的通信錄,取得其他對象的聯(lián)系方法。除了這個職責(zé)之外,關(guān)聯(lián)沒有進(jìn)一步的意義了。這時有人可能會問,我們總該用關(guān)聯(lián)(通信錄)為程序做點什么呀!不好意思,關(guān)聯(lián)除了能找到對方之外,別的什么都不懂了。因此,一般來說,關(guān)聯(lián)是用語言機(jī)制中的指針來實現(xiàn),可以在程序初始或運(yùn)行是建立。當(dāng)然,也可以用任何標(biāo)識對象,并能在運(yùn)行中定位對象的機(jī)制來實現(xiàn)。依賴關(guān)系,簡單地來說就是“動態(tài)”的關(guān)系,提供者可能要求或指示依賴關(guān)系中客戶的變化,依賴者為了達(dá)成要求被依賴對象行動的目的,依賴首先要取得對方的引用,以便于實施這個依賴操作,對方對象的引用可以通過二種方法獲得,一種是依賴對象之間也存在關(guān)聯(lián)關(guān)系,所以它可以直接通過自己的關(guān)聯(lián)找到對方對象的引用,第二種是依賴對象之間不存在直接關(guān)聯(lián)關(guān)系,程序設(shè)計者有責(zé)任設(shè)計通過第三方對象的關(guān)聯(lián),經(jīng)過一次或多次的關(guān)聯(lián)導(dǎo)航獲得目標(biāo)對象的引用。最后,依賴對象通過這二種的任一種方法獲得目標(biāo)對象引用后,就可以向目標(biāo)對象施加相應(yīng)的依賴關(guān)系行為。

五軟件設(shè)計參考答案一、選擇題二、判斷題1.錯誤2.錯誤3.正確4.錯誤5.錯誤6.正確7.正確三、簡答題模塊內(nèi)聯(lián)系和模塊間聯(lián)系有哪些種類答:塊間聯(lián)系的各種類型:按塊間聯(lián)系的方式可分為直接引用與過程調(diào)用;按塊間共用信息的作用可分為數(shù)據(jù)型、控制型與混合型;按塊間共用的信息數(shù)量分按照塊間聯(lián)系分類法(按照耦合度由大到?。簝?nèi)容型:直接引用另一模塊的內(nèi)部信息;公共型:兩個模塊引用共同的全程數(shù)據(jù)區(qū);控制型:模塊間傳送的信息用于控制模塊的內(nèi)部邏輯;復(fù)合型:模塊間傳送復(fù)合的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)型:模塊間傳送單個數(shù)據(jù)項。按照塊內(nèi)聯(lián)系的各種類型(內(nèi)聚性從小到大):偶然型:模塊內(nèi)部沒有必然聯(lián)系;邏輯型:邏輯上相似的功能放進(jìn)一個模塊;瞬時型:將同時執(zhí)行的語句放在一個模塊;通訊型:模塊中的各部分引用共同的數(shù)據(jù);順序型:模塊中一部分的輸出是另一部分的收入;功能型:模塊中剛好包含了完成一個基本任務(wù)所必需的成分。2.照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計總則對模塊進(jìn)行修改,具體從哪些方面進(jìn)行改進(jìn)答:1)盡可能建立功能模塊;2)消除重復(fù)功能;3)模塊的作用范圍與控制范圍,即當(dāng)作用范圍為控制范圍的子集時,才能獲得較低的塊間聯(lián)系;4)模塊的大小適當(dāng);5)模塊的扇入扇出數(shù)不宜太多。

六程序設(shè)計語言和編碼參考答案一、選擇題二、簡答題1.編碼階段的主要任務(wù)是什么答:為每個模塊編寫程序。即是:將詳細(xì)設(shè)計的結(jié)果轉(zhuǎn)換為用某種計算機(jī)語言寫的程序——源程序代碼。2.結(jié)構(gòu)化程序設(shè)計的優(yōu)點是什么如何在編碼中使用這種方法答:易于閱讀,易于驗證。程序設(shè)計自頂向下,逐步求精3.為何要進(jìn)行程序的注釋應(yīng)怎樣進(jìn)行程序的注釋答:讀程序時則不再翻閱其他說明材料,使用注釋是提高程序可讀性的有力手段。1)序言性注釋應(yīng)置于每個模塊的起始部分,主要內(nèi)容有:(1)說明每個模塊的用途,功能;(2)說明模塊的接口即調(diào)用格式,參數(shù)描述及從屬模塊的清單;(3)數(shù)據(jù)描述;(4)開發(fā)歷史。2)書寫功能性注釋應(yīng)注意以下幾點:(1)用空行或縮進(jìn)或括號,以便很容易區(qū)分注釋和程序。(2)修改程序也應(yīng)修改注釋。(3)注釋是用來說明程序段,不是每一行程序都要加注釋。4.什么是應(yīng)該提倡的編程風(fēng)格為了有良好的設(shè)計風(fēng)格,應(yīng)注意哪些方面的問題答:1)追求建立在不損害程序可讀性或可靠性基礎(chǔ)上,要先使程序正確、清晰,再提高程序效率。2)別貪圖效率上的小利,而破壞程序的清晰性。3)讓編譯程序去作簡單的優(yōu)化。4)提高程序效率的根本途徑在于:選擇良好的設(shè)計方法,良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。5.編碼階段的主要任務(wù)是什么,應(yīng)交付的結(jié)果是什么答:編碼階段的主要任務(wù)是為每個模塊編寫程序。即是:將詳細(xì)設(shè)計的結(jié)果轉(zhuǎn)換為用某種計算機(jī)語言寫的程序——源程序代碼。編碼階段應(yīng)交付的結(jié)果是帶有“程序內(nèi)部文檔”的、不再含有語法錯誤的程序。法的自頂向下,逐步求精方法的優(yōu)點有哪些答:此法符合人們解決復(fù)雜問題的普遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率;而且用先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過程,開發(fā)出來的程序具有清晰的層次結(jié)構(gòu),因此程序容易閱讀和理解,這樣,程序自頂向下,逐步細(xì)化,分解成一個樹型結(jié)構(gòu)。因此,在同一層次的節(jié)點上做細(xì)化工作,相互之間沒有聯(lián)系,它們之間的細(xì)化工作相互獨立;在任何一步發(fā)生錯誤,一般只影響它下層的節(jié)點,同一層其他節(jié)點不受影響;在以后的測試中,也可以先獨立地一個節(jié)點一個節(jié)點的做,最后再集成。這樣,程序清晰和模塊化,使得在修改和重新設(shè)計一個軟件時,可復(fù)用的代碼量最大。7.為了有良好的設(shè)計風(fēng)格,應(yīng)注意哪些方面的問題答:1)標(biāo)識符應(yīng)按意取名。標(biāo)識符即符號名,包括:模塊名、常量名、標(biāo)號名、子程序名、數(shù)據(jù)區(qū)名、緩沖區(qū)名等等。這些名字應(yīng)能反映它所代表的實際東西,應(yīng)有一定實際意義,使其能夠見名知意,有助于對程序功能的理解。2)程序應(yīng)加注釋,它分為兩類:序言性注釋和功能性注釋。序言性注釋應(yīng)置于每個模塊的起始部分,主要內(nèi)容有:a.說明每個模塊的用途,功能;b.說明模塊的接口即調(diào)用格式,參數(shù)描述及從屬模塊的清單;c.?dāng)?shù)據(jù)描述;d.開發(fā)歷史。功能性注釋是嵌在源程序體中,用于說明其后的程序段或語句的功能以及數(shù)據(jù)的狀態(tài);也就是解釋下面要“做什么”,或是執(zhí)行了下面的語句會怎樣;而不是解釋下面“怎么做”,因為怎么做常常是與程序重復(fù)的,且對讀者理解程序沒有什么幫助。8.怎樣評價程序的執(zhí)行效率它與程序清晰性的關(guān)系是怎樣的答:許多程序員往往片面的追求效率,其實程序系統(tǒng)的成本不僅包括運(yùn)行所需的機(jī)時,同時還應(yīng)把程序員機(jī)操作員所花費(fèi)的人力考慮進(jìn)去,在編程時為追求效率而損害可讀性或可靠性,會給以后的維護(hù)工作帶來嚴(yán)重困難,所以從整體看來是不值得的。此外,我們還應(yīng)該認(rèn)識到,提高程序效率的根本途徑在于:選擇良好的設(shè)計方法、良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。1)追求建立在不損害程序可讀性或可靠性基礎(chǔ)上,要先使程序正確、清晰,再提高程序效率。2)別貪圖效率上的小利,而破壞程序的清晰性。3)讓編譯程序去作簡單的優(yōu)化。4)提高程序效率的根本途徑在于:選擇良好的設(shè)計方法,良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。9.略

七軟件測試參考答案一、選擇題二、判斷題1.正確2.正確3.錯誤4.錯誤5.錯誤6.錯誤7.正確8.錯誤9.正確10.正確三、簡答題1.漸增式與非漸增式各有何優(yōu)、缺點為什么通常采用漸增式答:非漸增式是將所有的模塊一次連接起來,簡單、易行,節(jié)省機(jī)時,但測試過程中難于查錯,發(fā)現(xiàn)錯誤也很難定位,測試效率低。漸增式是將模塊一個一個的連入系統(tǒng),每連入一個模塊,都要對新系統(tǒng)進(jìn)行測試。這種組裝測試方案比較非漸增式,容易查出錯誤及進(jìn)行錯誤定位,有利于查出模塊接口部分的錯誤,因此測試效率高。因此通常采用漸增式。2.自頂而下增值與自底而上增值各有何優(yōu)、缺點答:自頂而下增值優(yōu)點:能夠盡早發(fā)現(xiàn)系統(tǒng)主控方面的問題。缺點:無法驗證樁模塊是否完全模擬了下屬模塊的功能。自底而上增值優(yōu)點:驅(qū)動模塊較容易編寫樁模塊,能夠盡早查出底層涉及較復(fù)雜的算法和實際的I/O模塊中的錯誤。3.等價分類法的基本思想是什么答:根據(jù)程序的輸入特性,將程序的定義域劃分為有限個等價區(qū)段—“等價類”,從等價類中選擇出的用例具有“代表性”,即測試某個等價類的代表值就等價于對這一類其它值的測試。如果某個等價類的一個輸入數(shù)據(jù)(代表值)測試中查出了錯誤,也即是該等價類中的其它值也會查出同樣的錯誤。4.一般,驅(qū)動模塊比樁模塊容易設(shè)計,為什么答:因為驅(qū)動模塊是模擬主程序或者調(diào)用模塊的功能,處于被測試模塊的上層,所以驅(qū)動模塊只需要模擬向被測模塊傳遞數(shù)據(jù),接收、打印從被測模塊返回的數(shù)據(jù)的功能,較容易實現(xiàn)。而樁模塊用于模擬那些由被測模塊所調(diào)用的下屬模塊的功能,由于下屬模塊往往不只一個,也不只一層,由于模塊接口的復(fù)雜性,樁模塊很難模擬各下層模塊之間的調(diào)用關(guān)系,同時為了模擬下層模塊的不同功能,需要編寫多個樁模塊,而這些樁模塊所模擬的功能是否正確,也很難進(jìn)行驗證。因此,驅(qū)動模塊的設(shè)計顯然比樁模塊容易。5.什么是α測試和β測試答:α測試是在開發(fā)機(jī)構(gòu)的監(jiān)督下,由個別用戶在確認(rèn)測試階段后期對軟件進(jìn)行測試,目的是評價軟件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。β測試是由支持軟件預(yù)發(fā)行的客戶對FLURPS進(jìn)行測試,主要目的是測試系統(tǒng)的可支持性。

八軟件維護(hù)參考答案一、選擇題二、判斷題1.錯誤2.錯誤3.錯誤4.錯誤5.正確6.正確三、簡答題1.為什么要進(jìn)行軟件維護(hù)答:軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需求而修改軟件的過程。一個中等規(guī)模的軟件,如果其開發(fā)過程需要一到二年時間,則它投入使用以后,其運(yùn)行時間可能持續(xù)五到十年之久。在這個維護(hù)階段中,人們需要著手解決開發(fā)階段尚未解決的問題,同時,還解決維護(hù)工作本身所產(chǎn)生的問題。做好軟件的維護(hù)工作不僅能夠排除軟件中存在的錯誤,是它能夠正常工作,而且還可以使它擴(kuò)充功能,提高性能,為用戶帶來新的效益。維護(hù)階段的化肥約占整個軟件生命期花費(fèi)的67%

溫馨提示

  • 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

提交評論