版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、選擇題1.軟件的主要特性是(ABC)。A)無形B)高成本C)包括程序和文檔D)可獨立構(gòu)成計算機(jī)系統(tǒng)2.軟件工程三要素是(B)。A)技術(shù)、方法和工具B)方法、工具和過程C)方法、對象和類D)過程、模型、方法3.包含風(fēng)險分析的軟件工程模型是(A)。A)螺旋模型B)瀑布模型C)增量模型D)噴泉模型4.軟件工程的主要目標(biāo)是()。A)軟件需求B)軟件設(shè)計C)風(fēng)險分析D)軟件實現(xiàn)5.下列屬于面向?qū)ο箝_發(fā)方法的是(ABCD)。A)BoochB)UMLC)CoadD)OMT6.軟件危機(jī)的主要表現(xiàn)是(BD)。A)軟件成本太高B)軟件產(chǎn)品的質(zhì)量低劣C)軟件開發(fā)人員明顯不足D)軟件生產(chǎn)率低下7.軟件開發(fā)方法的主要工作模型有(ABC)A)螺旋模型B)循環(huán)模型C)瀑布模型D)專家模型8.軟件工程的目標(biāo)有(ABC)。A)易于維護(hù)B)低的開發(fā)成本C)高性能D)短的開發(fā)期9.軟件工程學(xué)的目的和意義是(AD)。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)鍵是編寫程序。(×)10.RCP法與RSP法的主要區(qū)別是前者采用循環(huán)漸進(jìn)的開發(fā)方式,原型將成為最終的產(chǎn)品,而后者將被廢棄。(√)三、簡答題1.軟件產(chǎn)品的特性是什么?答:●軟件是一種邏輯產(chǎn)品,具有無形性;●軟件產(chǎn)品的生產(chǎn)主要是研制;●軟件不存在磨損和老化問題,但存在退化問題;●軟件產(chǎn)品的生產(chǎn)主要是腦力勞動;●軟件產(chǎn)品的成本非常昂貴,其開發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式;●軟件具有“復(fù)雜性”,其開發(fā)和運行常受到計算機(jī)系統(tǒng)的限制。2.軟件發(fā)展有幾個階段?各有何特征?答:①程序設(shè)計階段。硬件特征:價格貴、存儲容量小、運行可靠性差。軟件特征:只有程序、程序設(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ā)過程中就夭折。軟件危機(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)三級);●運行維護(hù)(擴(kuò)充功能、糾錯等)。習(xí)題二答案一、選擇題1.需求分析的主要目的是(BC)。A)系統(tǒng)開發(fā)的具體方案B)進(jìn)一步確定用戶的需求C)解決系統(tǒng)是“做什么的問題”D)解決系統(tǒng)是“如何做的問題”2.需求分析的主要方法有(CD)。A)形式化分析方法B)PAD圖描述C)結(jié)構(gòu)化分析(SA)方法D)OOA法3.面向?qū)ο蟮姆治龇椒ㄖ饕墙⑷惸P?,?D)。A)系統(tǒng)模型、ER模型、應(yīng)用模型B)對象模型、動態(tài)模型、應(yīng)用模型C)E-R模型、對象模型、功能模型D)對象模型、動態(tài)模型、功能模型4.SA法的主要描述手段有(B)。A)系統(tǒng)流程圖和模塊圖B)DFD圖、數(shù)據(jù)詞典、加工說明C)軟件結(jié)構(gòu)圖、加工說明D)功能結(jié)構(gòu)圖、加工說明5.畫分層DFD圖的基本原則有(ACD)。A)數(shù)據(jù)守恒原則B)分解的可靠性原則C)子、父圖平衡的原則D)數(shù)據(jù)流封閉的原則6.在E-R模型中,包含以下基本成分(C)。A)數(shù)據(jù)、對象、實體B)控制、聯(lián)系、對象C)實體、聯(lián)系、屬性D)實體、屬性、聯(lián)系7.畫DFD圖的主要目的是(AD)。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ù)流圖中所有元素的定義的集合,一般由以下四類條目組成(C)。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.在需求分析階段主要采用圖形工具來描述的原因是(BC)。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ù)是什么?答:需求分析是當(dāng)前軟件工程中的關(guān)鍵問題,需求分析階段的任務(wù)是:在可行性分析的基礎(chǔ)上,進(jìn)一步了解、確定用戶需求。準(zhǔn)確地回答“系統(tǒng)必須做什么?”的問題。獲得需求規(guī)格說明書。還涉及到軟件系統(tǒng)的目標(biāo)、軟件系統(tǒng)提供的服務(wù)、軟件系統(tǒng)的約束和軟件系統(tǒng)運行的環(huán)境。它還涉及到這些因素和系統(tǒng)的精確規(guī)格說明,以及系統(tǒng)進(jìn)化之間的關(guān)系。需求分析的基本任務(wù)包括: (1)抽取需求分析現(xiàn)行系統(tǒng)存在需要解決的問題。獲取足夠多的問題領(lǐng)域的知識,需求抽取的方法一般有問卷法、面談法、數(shù)據(jù)采集法、用例法、情景實例法以及基于目標(biāo)的方法等;還有知識工程方法,例如,場記分析法、卡片分類法、分類表格技術(shù)和基于模型的知識獲取等。 (2)模擬和分析需求需求分析和模擬又包含三個層次的工作。首先是需求建模。需求模型的表現(xiàn)形式有自然語言、半形式化(如圖、表、結(jié)構(gòu)化英語等)和形式化表示等三種。需求概念模型的要求包括實現(xiàn)的獨立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等;需求模擬技術(shù)又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。 (3)傳遞需求傳遞需求的主要任務(wù)是書寫軟件需求規(guī)格說明。 (4)認(rèn)可需求就是對需求規(guī)格說明達(dá)成一致,其主要任務(wù)是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法有:協(xié)商、競爭、仲裁、強(qiáng)制、教育等,其中有些只能用人的因素去控制。 (5)進(jìn)化需求客戶的需要總是不斷(連續(xù))地增長,但是一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進(jìn)化(變化)就成為軟件進(jìn)化的首要問題。對于傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組。當(dāng)前的發(fā)展是軟件家族法,即產(chǎn)品線方法。多視點方法也是管理需求變化的一種新方法,它可以用于管理不一致性,并進(jìn)行關(guān)于變化的推理。2.M公司的軟件產(chǎn)品以開發(fā)實驗型的新軟件為主。 用瀑布模型進(jìn)行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。 若你作為一名管理員剛加入M公司,你認(rèn)為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理由,切記:副總裁不喜歡報告長度超過一頁(B5)。參考答案提示:應(yīng)先簡述瀑布模型的缺點,它已不適宜開發(fā)實驗型的軟件。根據(jù)快速原型法的特點,說明它特別適合于開發(fā)探索型、實驗型的軟件。 瀑布模型以文檔為驅(qū)動,適合開發(fā)需求明確的軟件項目,所以不適宜開發(fā)實驗型軟件。 而快速原型模型,根據(jù)用戶實際使用的評價來進(jìn)行系統(tǒng)的進(jìn)化,越來越開發(fā)出最終的目標(biāo)軟件系統(tǒng),適合于這種實驗型軟件開發(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)組成?!駶h語的情況:精確、簡明扼要、文體可以靈活?!衽卸ū恚哼m用于表述比較復(fù)雜的加工邏輯,如具有多項選擇條件的操作?!衽卸洌罕举|(zhì)上與判定表相同,圖形表示更易于理解。5.考察下圖中子圖、父圖的平衡。
圖1圖2參考答案:圖1中子圖與父圖不平衡。子圖是父圖中加工2的分解,加工2有輸入數(shù)據(jù)流M和N,輸出數(shù)據(jù)流T,而子圖則只有一個輸入數(shù)據(jù)N,卻有兩個輸出數(shù)據(jù)流T與S。圖2中子圖是父圖中加工3的分解,雖然表面上加工3只有一個輸入數(shù)據(jù)流“訂貨單”,而子圖卻有三個輸入數(shù)據(jù)流,但是如果“訂貨單”是由“客戶”、“賬號”和“數(shù)量”三部分組成,即有如下數(shù)據(jù)條目,訂貨單=客戶+賬號+數(shù)量(2.2.5數(shù)據(jù)詞典),則子、父圖平衡。6.畫出銀行取款過程的DFD圖。 問題描述為:儲戶用存折取款,首先填寫取款單,根據(jù)“賬卡”中的信息檢驗取款單與存折, 如有問題,將問題反饋給儲戶, 否則,登錄“儲戶存款數(shù)據(jù)庫”,修改相應(yīng)數(shù)據(jù),并更新“賬卡”, 同時發(fā)出付款通知,出納向儲戶付款。參考答案:7.常用的軟件需求分析方法有哪些?答:結(jié)構(gòu)化分析方法(SA)、功能分解法、信息建模法、面向?qū)ο蟮姆治龇椒?OOA)。習(xí)題三答案一、選擇題1.模塊的基本特征是(AC)。A)外部特征(輸入/輸出、功能) B)內(nèi)部特征(輸入/輸出、功能)C)內(nèi)部特征(局部數(shù)據(jù)、代碼) D)外部特征(局部數(shù)據(jù)、代碼)2.SD方法的設(shè)計總則是(CD)。A)程序簡潔、操作方便B)結(jié)構(gòu)清晰、合理C)模塊內(nèi)聚性強(qiáng) D)模塊之間耦合度低3.軟件設(shè)計的主要任務(wù)是(ABD)。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)有(AD)。A)提高可靠性和可維護(hù)性B)提高應(yīng)用范圍C)結(jié)構(gòu)清晰 D)提高可理解性和效率5.從工程管理的角度來看,軟件設(shè)計分兩步完成(D)。A)①系統(tǒng)分析②模塊設(shè)計B)①詳細(xì)設(shè)計②總體設(shè)計C)①模塊設(shè)計②詳細(xì)設(shè)計D)①總體設(shè)計②詳細(xì)設(shè)計6.模塊獨立性準(zhǔn)則由以下定性指標(biāo)來衡量(BD)。A)分解度B)耦合度C)屏蔽性D)內(nèi)聚性7.用戶界面設(shè)計的任務(wù)包括(ABC)。A)確定用戶界面類型B)建立任務(wù)模型C)建立用戶模型D)建立功能模型8.程序設(shè)計語言可以分為(BCD)。A)面向過程的語言B)機(jī)器語言C)高級語言D)匯編語言9.程序效率包括(ACD)幾個方面的內(nèi)容。A)代碼效率B)運行效率C)存儲效率D)I/O效率10.SP方法中的基本控制結(jié)構(gòu)有(ABC)。A)順序結(jié)構(gòu)B)選擇結(jié)構(gòu)C)重復(fù)結(jié)構(gòu)D)GOTO結(jié)構(gòu)11.內(nèi)部文檔可用注釋語言書寫,注釋語言分為(ABCD)。A)序言性注釋B)描述性注釋C)功能性注釋D)狀態(tài)性注釋12.為使程序中數(shù)據(jù)說明更易于理解和維護(hù),必須遵循以下原則(ABC)。A)數(shù)據(jù)說明的次序應(yīng)當(dāng)規(guī)范化B)一個語句說明多個變量時,各變量名按字母順序排列C)對于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),要加注釋,說明在程序?qū)崿F(xiàn)時的特點D)定義變量名應(yīng)按字母順序排列13.源程序的效率與(D)階段確定的算法的效率直接有關(guān)。A)概要設(shè)計B)總體設(shè)計C)單元設(shè)計D)詳細(xì)設(shè)計14.在詳細(xì)設(shè)計翻譯轉(zhuǎn)換成源程序代碼后,算法效率反映為對程序的哪幾個方面的要求(CD)。A)讀寫速度B)代碼長度C)存儲容量D)執(zhí)行速度15.提高程序效率的根本途徑在于(BC)。A)編程時對程序語句進(jìn)行調(diào)整B)選擇良好的設(shè)計方法C)使程序最大限度的簡潔D)選擇良好的數(shù)據(jù)結(jié)構(gòu)與算法二、判斷題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)圖。(×)5.SD法是一種面向數(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)換。(√)7.當(dāng)模塊的控制范圍是其作用范圍的子集時,模塊之間的耦合度較低。(×)8.JACKSON方法是以數(shù)據(jù)流、數(shù)據(jù)封閉性準(zhǔn)則逐層分解的。(×)9.程序設(shè)計語言的工程特性包括:可移植性、可重用性、可維護(hù)性、局部性和順序性。(×)10.項目應(yīng)用領(lǐng)域是選擇語言的關(guān)鍵因素。(√)11.FORTRAN、Pascal、C語言、PL/1和匯編語言都是科學(xué)工程計算可選用的語言。(×)12.要用快速原型法開發(fā)軟件,應(yīng)選用4GL語言。(√)13.提高程序效率的根本途徑是選擇良好的設(shè)計方法、數(shù)據(jù)結(jié)構(gòu)與算法。(×)14.良好的程序設(shè)計風(fēng)格簡單說就是高的編程技巧。(√)三、簡答題1.模塊內(nèi)聯(lián)系和模塊間聯(lián)系有哪些種類?答:塊間聯(lián)系的各種類型的劃分,從以下3方面考慮:●按塊間聯(lián)系的方式(可分為直接引用與過程調(diào)用);●按塊間共用信息的作用(可分為數(shù)據(jù)型、控制型與混合型);●按塊間共用的信息數(shù)量多少(信息多聯(lián)系緊密)。 (1)塊間聯(lián)系的類型,按照耦合度由大到小分為: 內(nèi)容型:直接引用另一模塊的內(nèi)部信息; 公共型:兩個模塊引用共同的全程數(shù)據(jù)區(qū); 控制型:模塊間傳送的信息用于控制模塊的內(nèi)部邏輯; 復(fù)合型:模塊間傳送復(fù)合的數(shù)據(jù)結(jié)構(gòu); 數(shù)據(jù)型:模塊間傳送單個數(shù)據(jù)項。 (2)塊內(nèi)聯(lián)系的類型,按照內(nèi)聚性從小到大分為: 偶然型:模塊內(nèi)部沒有必然聯(lián)系; 邏輯型:邏輯上相似的功能放進(jìn)一個模塊; 瞬時型:將同時執(zhí)行的語句放在一個模塊; 通信型:模塊中的各部分引用共同的數(shù)據(jù); 順序型:模塊中一部分的輸出是另一部分的收入; 功能型:模塊中剛好包含了完成一個基本任務(wù)所必需的成分。2.分析以下DFD圖,說明屬于哪種類型的DFD圖,并按照相應(yīng)的變換將其轉(zhuǎn)換為初始的模塊結(jié)構(gòu)圖。
參考答案:(略)
3.下圖是修改文件記錄的DFD圖,請確定其主加工。解:主加工為:賬號、修改、寫記錄。4.按照“降低塊間聯(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ù)不宜太多。5.根據(jù)模塊的作用范圍與控制范圍的原則,判定a、b兩圖的正確性。解:顯然,圖a不滿足作用范圍應(yīng)與控制范圍的原則,模塊F的作用范圍不在控制范圍之內(nèi)。圖b的模塊設(shè)計合理。6.圖a中,模塊G為判定,判斷涉及到模塊B、F、G,請指出設(shè)計中的錯誤,再根據(jù)改進(jìn)模塊圖的基本原則,畫出1~2個改進(jìn)方案(不改變模塊G的判斷關(guān)系),并說明是按照哪條基本原則進(jìn)行改進(jìn)的。解:圖b為一個改進(jìn)方案,將模塊G的位置提高,使其作用范圍為控制范圍的子集,減少模塊之間的聯(lián)系。7.編碼階段的主要任務(wù)是什,應(yīng)交付的結(jié)果是什么?答:編碼階段的主要任務(wù)是為每個模塊編寫程序。即是:將詳細(xì)設(shè)計的結(jié)果轉(zhuǎn)換為用某種計算機(jī)語言寫的程序——源程序代碼。編碼階段應(yīng)交付的結(jié)果是帶有“程序內(nèi)部文檔”的、不再含有語法錯誤的程序。8.SP法的自頂向下,逐步求精方法的優(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ù)用的代碼量最大。9.為了使程序具有良好的設(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)容有:①說明每個模塊的用途,功能;②說明模塊的接口即調(diào)用格式、參數(shù)描述及從屬模塊的清單;③數(shù)據(jù)描述;④開發(fā)歷史。功能性注釋是嵌在源程序體中的,用于說明其后的程序段或語句的功能以及數(shù)據(jù)的狀態(tài);也就是解釋下面要“做什么”,或是執(zhí)行下面的語句會發(fā)生什么情況;而不是解釋下面“怎么做”,因為怎么做常常是與程序重復(fù)的,且對讀者理解程序沒有什么幫助。10.樣評價程序的執(zhí)行效率?它與程序清晰性的關(guān)系是怎樣的?答:許多程序員往往片面追求效率,其實程序系統(tǒng)的成本不僅包括運行所需的機(jī)時,同時還應(yīng)把程序員及操作員所花費的人力考慮進(jìn)去。在編程時為追求效率而損害可讀性或可靠性,會給以后的維護(hù)工作帶來困難,所以從整體上看來是不值得的。此外,還應(yīng)該認(rèn)識到,提高程序效率的根本途徑在于:選擇良好的設(shè)計方法、良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句進(jìn)行調(diào)整。(1)追求建立在不損害程序可讀性或可靠性基礎(chǔ)上,要先使程序正確、清晰,再提高程序效率。(2)不能因為貪圖效率上的小利,而破壞程序的清晰性。(3)讓編譯程序去作簡單的優(yōu)化。(4)提高程序效率的根本途徑在于:選擇良好的設(shè)計方法和良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。11.假定:需要編一個求解一元二次方程根的子程序,加入到現(xiàn)有的子程序庫中,供其他程序員使用。要求:(1)為該子程序?qū)懸粋€序言性注釋;(2)用PASCAL語言或其他語言寫出這個子程序(要把根的性質(zhì),如:實根、復(fù)根、降為一次方程等有區(qū)別地通知調(diào)用者),并加上描述性注釋。答案:(略)習(xí)題四答案一、選擇題1.面向?qū)ο蟪绦蛟O(shè)計的基本機(jī)制(ABC)。A)繼承B)消息C)方法D)結(jié)構(gòu)2.下列屬于面向?qū)ο蟮囊赜?BCD)。A)分類性B)抽象C)共享D)封裝3.下列選項中屬于面向?qū)ο箝_發(fā)方法的有(ACD)。A)Booch B)CAD C)Coad D)OMT4.下列屬于Coad方法中面向?qū)ο蟮姆治瞿P偷膶哟斡?AB)。A)主題層B)對象層C)應(yīng)用層D)接口層5.一個類屬性依其特征劃分,其類型有(ABCD)。A)描述型B)定義型C)派生型D)參考型6.在進(jìn)行面向?qū)ο蠓治鰰r,所采用的模型有(ABD)。A)對象模型B)動態(tài)模型C)靜態(tài)模型D)功能模型7.狀態(tài)是對象屬性的值的一種抽象,它的性質(zhì)有(AB)。A)時間性B)持續(xù)性C)有序性D)有窮性8.數(shù)據(jù)流圖中的處理必須用對象中的操作來實現(xiàn)常見的操作有(ABCD)。A)查詢B)動作C)活動D)訪問9.建立繼承關(guān)系時所采用的方式有(AC)。A)自頂向下B)從內(nèi)到外C)自底向上D)從復(fù)雜到簡單10.對象是人們要研究的任何事物主要的對象類型有(ABCD)。A)有形實體B)作用C)事件D)性能說明二、判斷題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ù)性。(√)三、簡答題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ū)ο蟮奶卣鳎⒆龊喴慕忉?。答?1)對象惟一性。每個對象都有自身惟一的標(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é)果。3.Coad方法主要由面向?qū)ο蠓治鯫OA和面向?qū)ο笤O(shè)計OOD。OOA方法分析過程和構(gòu)造OOA概念模型的順序由5個層次組成,請簡述這5個層次。答:(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)該以形式化語言(圖形語言、偽碼語言等)表述出來
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育引導(dǎo)與信息透明度對寵物保險的影響
- 石家莊2025年度設(shè)備租賃合同模板
- 2025版煤炭企業(yè)安全生產(chǎn)責(zé)任合同4篇
- 二零二五版特色主題咖啡廳租賃運營服務(wù)合同3篇
- 展廳裝修中綠色材料的運用與效果評估
- 科技創(chuàng)新在教育領(lǐng)域的運用及影響
- 現(xiàn)代商業(yè)環(huán)境下的小學(xué)拼音教學(xué)方法研究
- 個人健身器材買賣合同(2024版)3篇
- 2025版毛竹種植與竹制運動器材生產(chǎn)合作合同范本4篇
- 二零二五年度智能交通系統(tǒng)建設(shè)項目合同書4篇
- 《醫(yī)院財務(wù)分析報告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級上冊 期末綜合卷(含答案)
- 2024中國汽車后市場年度發(fā)展報告
- 感染性腹瀉的護(hù)理查房
- 廚房績效考核方案細(xì)則
- 2024年上海市各區(qū)高三語文二模試卷【文言文閱讀題】匯集練附答案解析
- 部編版語文一年級下冊第五單元整體教學(xué)設(shè)計教案
- 廢鐵收購廠管理制度
- 物品賠償單范本
- 《水和廢水監(jiān)測》課件
評論
0/150
提交評論