軟件工程2nd教材習題答案_第1頁
軟件工程2nd教材習題答案_第2頁
軟件工程2nd教材習題答案_第3頁
軟件工程2nd教材習題答案_第4頁
軟件工程2nd教材習題答案_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習 題 答 案習題一答案一、選擇題1. 軟件的主要特性是(A B C)。 A) 無形 B) 高成本C) 包括程序和文檔 D) 可獨立構成計算機系統(tǒng)2. 軟件工程三要素是(B)。A) 技術、方法和工具 B) 方法、工具和過程 C) 方法、對象和類 D) 過程、模型、方法3. 包含風險分析的軟件工程模型是(A)。A) 螺旋模型 B) 瀑布模型 C) 增量模型 D) 噴泉模型4. 軟件工程的主要目標是(C)。A) 軟件需求 B) 軟件設計 C) 風險分析 D) 軟件實現5. 下列屬于面向對象開發(fā)方法的是(A B C D)。A) Booch B) UML C) Coad D) OMT6. 軟件危機的主

2、要表現是(B D)。A) 軟件成本太高 B) 軟件產品的質量低劣C) 軟件開發(fā)人員明顯不足 D) 軟件生產率低下7. 軟件開發(fā)方法的主要工作模型有(A B C)A) 螺旋模型 B) 循環(huán)模型 C) 瀑布模型 D) 專家模型8. 軟件工程的目標有(A B C)。A) 易于維護 B) 低的開發(fā)成本 C) 高性能 D) 短的開發(fā)期9. 軟件工程學的目的和意義是(A D)。A) 應用科學的方法和工程化的規(guī)范管理來指導軟件開發(fā)B) 克服軟件危機C) 作好軟件開發(fā)的培訓工作D) 以較低的成本開發(fā)出高質量的軟件二、 判斷題1. 軟件就是程序,編寫軟件就是編寫程序。(×)2. 瀑布模型的最大優(yōu)點是將

3、軟件開發(fā)的各個階段劃分得十分清晰。(×)3. 結構化方法的工作模型是使用螺旋模型進行開發(fā)。(×)4. 結構化方法和OO方法都是一種面向過程的軟件開發(fā)方法。(×)5. 原型化開發(fā)方法包括生成原型和實現原型兩個步驟。(×)6. 面向對象的開發(fā)方法包括面向對象的分析、面向對象的設計和面向對象的程序設計。( )7. 軟件危機的主要表現是軟件的需求量迅速增加,軟件價格上升。(×)8. 軟件工具的作用是為了延長軟件產品的壽命。(×)9. 軟件工程過程應該以軟件設計為中心,關鍵是編寫程序。(×)10. RCP法與RSP法的主要區(qū)別是前者采

4、用循環(huán)漸進的開發(fā)方式,原型將成為最終的產品,而后者原型將被廢棄。()三、簡答題1. 軟件產品的特性是什么?答: 軟件是一種邏輯產品,具有無形性; 軟件產品的生產主要是研制;主要是腦力勞動; 軟件不存在磨損和老化問題,但存在退化問題; 軟件產品的成本非常昂貴,其開發(fā)方式目前尚未完全擺脫手工生產方式; 軟件具有“復雜性”,其開發(fā)和運行常受到計算機系統(tǒng)的限制。2. 軟件發(fā)展有幾個階段?各有何特征?答: 程序設計階段。 硬件特征:價格貴、存儲容量小、運行可靠性差。 軟件特征:只有程序、程序設計概念,不重視程序設計方法。 程序系統(tǒng)階段。 硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性

5、增長。 軟件特征:程序員數量猛增,開發(fā)人員素質低。 軟件工程階段。硬件特征:向超高速、大容量、微型化及網絡化方向發(fā)展。軟件特征:開發(fā)技術有很大進步,但未獲得突破性進展,軟件價格不斷上升,未完全擺脫軟件危機。3. 什么是軟件危機?其產生的原因是什么?答:“軟件危機”(Software Crisis)的出現是由于軟件的規(guī)模越來越大,復雜度不斷增加,軟件需求量增大。而軟件開發(fā)過程是一種高密集度的腦力勞動,軟件開發(fā)的模式及技術不能適應軟件發(fā)展的需要。致使大量質量低劣的軟件涌向市場,有的花費大量人力、財力,而在開發(fā)過程中就夭折。軟件危機主要表現在兩個方面:(1) 軟件產品質量低劣,甚至開發(fā)過程就夭折。(

6、2) 軟件生產率低,不能滿足需要。4. 什么是軟件過程?有哪些主要的軟件過程模型?它們各有哪些特點?答:軟件過程是指在軟件工具的支持下,所進行的一系列軟件開發(fā)和進化的活動。軟件過程模型是對軟件開發(fā)實際過程的抽象和簡化,是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型,因此又稱為軟件開發(fā)模型。主要的軟件過程模型有:瀑布模型、增量模型、螺旋模型、噴泉模型和基于知識的模型等。瀑布模型是經典的軟件開發(fā)模型,將軟件開發(fā)活動中的各項活動規(guī)定為依線性順序連接的若干階段,它簡單易用,在消除非結構化軟件、降低軟件的復雜性、促進軟件開發(fā)工程化方面起了很大的作用。但在軟件開發(fā)實踐中也逐漸暴露出它的缺點。它將一個充滿回溯的

7、軟件開發(fā)過程硬性分割為幾個階段,無法解決軟件需求不明確或者變動的問題。增量模型是一種非整體開發(fā)的模型。根據增量的方式和形式的不同,分為基于瀑布模型的漸增模型和基于原型的快速原型模型。該模型具有較大的靈活性,適合于軟件需求不明確、設計方案有一定風險的軟件項目。螺旋模型將瀑布模型和增量模型結合起來,并加入了風險分析。螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:制定計劃、風險分析、實施工程、客戶評估。噴泉模型用于采用對象技術的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性。噴泉模型使開發(fā)過程具有迭代性和無間隙性。軟件開發(fā)過程有4個階段,即分析、系統(tǒng)設計

8、、軟件設計和實現。各階段相互重疊,以分析為基礎,資源消耗成塔形,從高層返回低層無資源消耗。強調增量開發(fā),是對象驅動的過程,反映了對象的開發(fā)和重用過程?;谥R的模型也稱為智能模型。通過領域的專家系統(tǒng),可使需求說明更加完整、準確和無二義性。通過軟件工程知識和特定應用領域的知識和規(guī)則的應用來提供開發(fā)的幫助。5. 有哪些主要的軟件開發(fā)方法?答:主要的軟件開發(fā)方法有:結構化開發(fā)方法、原型化開發(fā)方法和面向對象的開發(fā)方法。6. 軟件生存周期各階段的主要任務是什么?答:軟件生存周期按瀑布模型分為6個階段: 可行性研究與計劃(確定系統(tǒng)的目標和規(guī)模,分析項目的可行性); 需求分析與規(guī)格說明(明確系統(tǒng)的規(guī)格和要求

9、); 設計(包括概要設計和詳細設計,將系統(tǒng)分解為模塊); 編程(用程序語言實現每個模塊,簡單容易); 測試(發(fā)現并改正錯誤,分為模塊測試、集成測試和系統(tǒng)聯調三級); 運行維護(擴充功能、糾錯等)。7. 原型化方法的核心是什么?它具有哪些特點?答:原型化方法的核心是,花費少量代價建立一個可運行的系統(tǒng),使用戶及早獲得學習的機會。強調軟件開發(fā)人員與用戶的不斷交互,通過原型的演進不斷適應用戶任務改變的需求。它是一個循環(huán)的模型。速成原型法按以下步驟循環(huán)執(zhí)行: 快速分析。 構造原型。 運行和評價原型。 修改與改進。習題二答案一、 選擇題1. 需求分析的主要目的是(B C)。A) 系統(tǒng)開發(fā)的具體方案B) 進

10、一步確定用戶的需求C) 解決系統(tǒng)是“做什么”的問題D) 解決系統(tǒng)是“如何做”的問題2. 需求分析的主要方法有(C D)。A) 形式化分析方法 B) PAD圖描述C) 結構化分析(SA)方法 D) OOA法3. 面向對象的分析方法主要是建立三類模型,即(D)。A) 系統(tǒng)模型、E-R模型、應用模型B) 對象模型、動態(tài)模型、應用模型C) -模型、對象模型、功能模型D) 對象模型、動態(tài)模型、功能模型4. SA法的主要描述手段有(B)。A) 系統(tǒng)流程圖和模塊圖B) DFD圖、數據詞典、加工說明C) 軟件結構圖、加工說明D) 功能結構圖、加工說明5. 畫分層DFD圖的基本原則有(A C D)。A) 數據守

11、恒原則B) 分解的可靠性原則C) 子、父圖平衡的原則D) 數據流封閉的原則6. 在E-R模型中,包含的基本成分是(C)。A) 數據、對象、實體B) 控制、聯系、對象C) 實體、聯系、屬性D) 實體、屬性、聯系7. 畫DFD圖的主要目的是(A D)。A) 作為需求分析階段用戶與開發(fā)者之間交流信息的工具B) 對系統(tǒng)的數據結構進行描述C) 對目標系統(tǒng)的層次結構進行描述D) 作為分析和設計的工具8. 數據字典是數據流圖中所有元素的定義的集合,一般由 (C) 四類條目組成。A) 數據說明條目、控制流條目、加工條目、數據存儲條目B) 數據流條目、數據項條目、文件條目、加工條目C) 數據源條目、數據流條目、

12、數據處理條目、數據文件條目D) 數據流條目、數據文件條目、數據池條目、加工條目 9. 在需求分析階段主要采用圖形工具來描述的原因是(B C)。A) 圖形的信息量大,便于描述規(guī)模大的軟件系統(tǒng)B) 圖形工具能夠極好地概括描述一個系統(tǒng)的信息,比文字敘述能夠更好地表達重要的細節(jié)C) 圖形能夠更加直觀地描述目標系統(tǒng),便于用戶理解和交流,有利于開發(fā)者與用戶之間達成一致的需求D) 圖形比文字描述簡單、形象二、 判斷題1. 在進行了可行性分析后,需求分析就只需要解決目標系統(tǒng)的設計方案。 (×)2. SA法是面向數據流,建立在數據封閉原則上的需求分析方法。 ()3. 需求管理主要是對需求變化的管理,即

13、如何有效控制和適應需求的變化。 ()4. 在面向對象的需求分析方法中,建立動態(tài)模型是最主要的任務。 (×)5. 加工小說明是對系統(tǒng)流程圖中的加工進行說明。 (×)6. 判定表的優(yōu)點是容易轉換為計算機實現,缺點是不能夠描述組合條件。 (×)7. 需求分析的主要方法有SD法、OOA法及HIPO法等。 (×)8. 分層的DFD圖可以用于可行性分析階段,描述系統(tǒng)的物理結構。 (×)9. 信息建模方法是從數據的角度來建立信息模型的,最常用的描述信息模型的方法是E-R圖。()10. 用于需求分析的軟件工具,應該能夠保證需求的正確性,即驗證需求的一致性、完整

14、性、現實性和有效性。 ()三、 簡答題1. 需求工程包括哪些基本活動?各項基本活動的主要任務是什么?答:需求工程過程包括如下主要活動: 獲取需求。深入實際,在充分理解用戶需求的基礎上,獲取足夠多的問題領域的知識,積極與用戶交流,捕捉、分析和修訂用戶對目標系統(tǒng)的需求,并提煉出符合解決領域問題的用戶需求。需求獲取的方法一般有問卷法、面談法、數據采集法、用例法、情景實例法以及基于目標的方法等。 需求分析與建模。對已獲取的需求進行分析和提煉,進行抽象描述,建立目標系統(tǒng)的概念模型,需求概念模型的要求包括實現的獨立性:不模擬數據的表示和內部組織等;需求模擬技術又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等

15、。進一步對所建立的模型(原型)進行分析。需求模型的表現形式有自然語言、半形式化(如圖、表、結構化英語等)和形式化表示等三種。 需求規(guī)格說明。對需求模型進行精確的、形式化的描述,為計算機系統(tǒng)的實現提供基礎。 確認需求。以需求規(guī)格說明為基礎輸入,通過符號執(zhí)行、模擬或快速原型等方法,分析和驗證需求規(guī)格說明的正確性和可行性,確保需求說明準確、完整地表達系統(tǒng)的主要特性,就是對需求規(guī)格說明與用戶達成一致。其主要任務是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法有:協(xié)商、競爭、仲裁、強制、教育等,其中有些只能用人的因素去控制。 需求管理。在整個需求工程過程中,貫穿了需求管理活動。需求管理主要包

16、括跟蹤和管理需求變化,支持系統(tǒng)的需求演進。由于客戶的需要總是不斷(連續(xù))增長的,但一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進化(變化)就成為軟件管理的首要問題。對于傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組。當前的發(fā)展是軟件家族法,即產品線方法。多視點方法也是管理需求變化的一種新方法,它可以用于管理不一致性,并進行關于變化的推理。進化需求是十分必要的。2簡述抽取需求的主要方法,并比較它們的特點。面談法。這是一種重要而直接簡單,隨時可使用的發(fā)現和獲取需求的方法。面談的對象主要有用戶和領域專家:與用戶面談主要了解和提取需求,與領域專家面談,是一個對領域知

17、識的學習和轉換過程。使用該方法時應注意面談前要充分準備,面談后認真分析總結,同時注意掌握面談的人際交流技巧,才能取得好的效果。問卷法調查法。通過采用向用戶發(fā)問卷調查表的方式,達到徹底弄清項目需求的一種需求獲取方法。這是一種從多個用戶處收集需求信息的有效方式,是對面談法的補充。會議討論法。所謂會議討論法,是指開發(fā)方和用戶方召開若干次需求討論會議,達到徹底弄清項目需求的一種需求獲取方法。這種方法適合于開發(fā)方不清楚項目需求的情況。原型法。對于某些試驗性、探索性的項目,更是難于得到一個準確、無二義性的需求。而原型化方法(Prototyping Method)是獲取這一類項目需求的有效方法。面向用例的方

18、法。分析建立“用例”的過程,也就是提取需求的過程。在實際應用中,常常將以上方法進行綜合應用。3. 客戶的需要總是不斷地增長,但是一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進化就成為軟件進化的首要問題。請說明需求變更的管理過程。答:需求變更的管理是需求管理的核心內容。其主要任務是對系統(tǒng)需求變更進行跟蹤和控制。對傳統(tǒng)的變化管理過程來說,其基本內容包括軟件配置、軟件基線和變更審查等。目前推出的新的管理方法有軟件家族法,即軟件產品線方法及多視點方法等。下圖描述了需求變更的管理過程。識別出的問題問題分析和變更描述變更分析和成本計算變更實現修正后的需求4. M公司的軟件產品以實驗型的新軟件為

19、主。用瀑布模型進行軟件開發(fā)已經有近十年了,并取得了一些成功。若你作為一名管理人員剛加入M公司,你認為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理由。切記:副總裁不喜歡報告長度超過一頁。參考答案提示:應先簡述瀑布模型的缺點,它已不適宜開發(fā)實驗型的軟件。根據快速原型法的特點,說明它特別適合于開發(fā)探索型、實驗型的軟件。5. 如何畫分層數據流圖?有哪些基本原則?答:總的原則是:至頂而下,逐層分解(畫分層數據流圖)。逐層分解的畫法可以控制每一層的復雜度。頂層:將整個系統(tǒng)作為一個加工,描述系統(tǒng)邊界(輸入與輸出)。中間層:將某個加工分解為一組子加工,其中的子加工還需進一步分解。底層

20、:由不再進行分解的基本加工組成。畫分層數據流圖的基本原則有: 數據守恒與數據封閉原則。 加工分解的原則。 子圖與父圖“平衡”的原則。 合理使用文件的原則。6. 加工小說明有哪些描述方法?它們各有何優(yōu)缺點?為什么不采用自然語言進行描述?答:主要的描述方法有三種;結構化語言、判定表和判定樹。結構化語言:介于自然語言和形式語言(如謂詞邏輯)之間的的一種半形式語言,它是自然語言的一個受限制的子集。是在自然語言的基礎上加上一些約束,一般分為兩層結構:外層語法較具體,為控制結構(順序、選擇、循環(huán));內層較靈活,表達“做什么”。常用結構化英語或結構化漢語表示,精確、簡明扼要、文體靈活。結構化語言特點:簡單,

21、易學,少二義性,但不好處理組合條件。判定表:適用于表述比較復雜的加工邏輯,如具有多項選擇條件的操作。判定表是一種二維的表格,常用于較復雜的組合條件。通常由四部分組成,如教材表2-2所示。對用結構化語言不易處理的較復雜的組合條件問題,可使用判定表。判定樹:本質上與判定表相同,圖形表示更易于理解。描述一般組合條件較清晰,但不易輸入計算機。7. 考察下圖中子圖、父圖的平衡關系。圖1圖2參考答案: 顯然,圖1中子圖與父圖不平衡。 圖2中,如果有如下數據條目:訂貨單=客戶+賬號+數量則子、父圖平衡。8. 畫出銀行取款過程的用例圖。問題描述為:儲戶用存折取款,首先填寫取款單,根據“ 銀行卡”中的信息檢驗取

22、款單與存折,如有問題,將問題反饋給儲戶,否則,登錄“儲戶存款數據庫”,修改相應數據,并更新“銀行卡”,同時發(fā)出付款通知,出納向儲戶付款。參考答案:分析所給出的需求,確定角色為:儲戶、存款數據庫、存折、出納。用例為:填寫取款單、驗證取款單與存折、銀行卡管理、數據庫管理、付款。銀行取款系統(tǒng)的高層用例圖儲戶存折出納存款數據庫付款數據庫管理填寫取款單銀行卡管理管理驗證取款單與存折<<extend>><<include>><<include>><<include>>習題三答案 一、 選擇題1. 模塊的基本特征

23、是(A C)。A) 外部特征(輸入/輸出、功能) B) 內部特征(輸入/輸出、功能) C) 內部特征(局部數據、代碼) D) 外部特征(局部數據、代碼 )2. SD方法的設計總則是(C D)。A) 程序簡潔、操作方便 B) 結構清晰、合理C) 模塊內聚性強 D) 模塊之間耦合度低3. 軟件設計的主要任務是(A B D)。A) 將分析階段獲得的需求說明轉換為計算機中可實現的系統(tǒng);B) 完成系統(tǒng)的數據結構和程序結構設計C) 完成模塊的編碼和測試D) 對模塊內部的過程進行設計4. 設計階段應達到的目標有(A D)。A) 提高可靠性和可維護性 B) 提高應用范圍C) 結構清晰 D) 提高可理解性和效率

24、5. 從工程管理的角度來看,軟件設計分(D)兩步完成。A) 系統(tǒng)分析、模塊設計 B) 詳細設計、總體設計C) 模塊設計、詳細設計 D) 總體設計、詳細設計6. 模塊獨立性準則定性指標(B D)來衡量。A) 分解度 B) 耦合度 C) 屏蔽性 D) 內聚性7. 用戶界面設計的任務包括(A B C)。A) 確定用戶界面類型 B) 建立任務模型C) 建立用戶模型 D) 建立功能模型 二、判斷題1. 劃分模塊可以降低軟件的復雜度和工作量,所以應該將模塊分得越小越好。 (×)2. 在網狀結構中任何兩個模塊都是平等的,沒有從屬關系,所以在軟件開發(fā)過程中常常被使用。(×)3. 信息隱蔽原

25、則有利于提高模塊的內聚性。()4. 中心變換型的DFD圖可看成是對輸入數據進行轉換而得到輸出數據的處理,因此可以使用事務分析技術得到初始的模塊結構圖。(×)5. SD法是一種面向數據結構的設計方法,強調程序結構與問題結構相對應。 (×)6. 當模塊的控制范圍是其作用范圍的子集時,模塊之間的耦合度較低。(×)三、簡答題1. 請解釋為什么需要體系結構設計。答:軟件體系結構為軟件系統(tǒng)提供了一個結構、行為和屬性的高級抽象,由構成系統(tǒng)的元素的描述、元素間的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結構不僅指定了系統(tǒng)的組織結構和拓撲結構,并且顯示了系統(tǒng)需求和

26、構成系統(tǒng)的元素之間的對應關系,提供了一些設計決策的基本原理。良好的體系結構是普遍適用的,它可以高效地處理各種各樣的個體需求。2. 集中式模型和分布式模型相比各有什么優(yōu)缺點?答:以集中式的倉庫模型為例。其主要優(yōu)點:(1) 數據由某個子系統(tǒng)產生,并且被存儲到倉庫中,以便為另外一些子系統(tǒng)共享;(2) 由于中央集中控制的緣故,共享數據能得到有效的管理,各子系統(tǒng)之間不需要通過復雜的機制來傳遞共享數據;(3) 一個子系統(tǒng)不必關心其他的子系統(tǒng)是怎么使用它產生的數據;(4) 所有的子系統(tǒng)都擁有一致的基于中央數據倉庫的數據視圖。如果新子系統(tǒng)也采用相同的規(guī)范,則將它集成于系統(tǒng)中是容易的。但這種系統(tǒng)也有明顯的缺陷:

27、(1) 雖然共享數據得到了有效的管理,但隨之而來的問題是各子系統(tǒng)必須有一致的數據視圖以便能共享數據,換句話說,就是各子系統(tǒng)之間為了能共享數據必須走一條折中的路線,這不可避免地會影響整個系統(tǒng)的性能。(2) 一個子系統(tǒng)發(fā)生了改變,它產生的數據也可能發(fā)生結構上的改變。問題隨之而來,其他的子系統(tǒng)如何能正確解析這些數據呢?所以為了達到共享的目的,數據翻譯系統(tǒng)會被引入到整個系統(tǒng)當中。但這種翻譯的代價是很高的,并且有時是不可能完成的。(3) 中央數據倉庫和各子系統(tǒng)的私有數據庫必須有相同的關于備份、安全、訪問控制和恢復的策略,這可能會影響子系統(tǒng)的效率。(4) 集中式的控制使數據和子系統(tǒng)的分布變得非常困難甚至成

28、為不可能。這里分布指的是將數據或子系統(tǒng)分散到不同的機器上。分布式結構有這樣的一些優(yōu)勢:(1) 資源共享:系統(tǒng)中每個服務節(jié)點上的資源都可以被系統(tǒng)中的其他節(jié)點訪問;(2) 開放性高:系統(tǒng)可以方便地增刪不同軟硬結構的節(jié)點;(3) 可伸縮性好:系統(tǒng)可以方便地增刪新的服務資源以滿足需要;(4) 容錯能力強:分布式系統(tǒng)中的信息冗余可以容忍一定程度的軟硬故障;(5) 透明性高:系統(tǒng)中的節(jié)點一般只需知道服務的位置而不必清楚系統(tǒng)的結構。但分布式結構也存在著一些不足:(1) 復雜性:分布式系統(tǒng)比集中式系統(tǒng)要復雜得多。集中式系統(tǒng)的性能主要依賴于主機的處理器能力,而分布式系統(tǒng)的性能則還會依賴于網絡的帶寬,這讓情形變得

29、更加復雜。(2) 安全性:網絡環(huán)境隨時面臨著各種威脅:病毒、惡意代碼、非法訪問等。如何保證安全性是一個讓人頭疼的問題。(3) 可管理性:分布式系統(tǒng)的開放性造成了系統(tǒng)的異構性。顯而易見,管理異構的系統(tǒng)比管理主機系統(tǒng)要困難得多。(5) 不可預知性:這主要指系統(tǒng)的響應時間。網絡環(huán)境本身的特點決定了網絡負載會明顯地影響整個系統(tǒng)的響應時間。3. 請舉出一種集中式模型的實例,并圖示它的結構。答:請參考“倉庫模型”4. 胖客戶模型和瘦客戶模型的區(qū)別是什么?它們分別被應用在什么樣的場合?答:在胖客戶模型中,客戶端應用負責用戶界面和應用邏輯部分,因此它的工作比較繁重。一般的數據庫應用都是屬于這種結構。而與此相反

30、,在瘦客戶模型中,服務器負責了更多的工作,而客戶端的工作就變得非常單純。瀏覽器/Web服務器結構就屬于瘦客戶結構,而且常被稱為B/S(Browser/Server)結構。5.請舉出一種分布式模型的實例,并圖示它的結構。答:請參考“兩層C/S模型”6.請為一個公司的電子商務網站建設提出體系結構設計方案。答:略。7.分布式對象模型與客戶服務器模型有什么異同?答:在C/S模型中,客戶和服務器的“地位”是不“平等”的:客戶只能向服務器提出服務請求,而服務器不能向客戶提出服務請求,同時服務器之間可以互相提供服務。另外,客戶一般要知道服務器在網絡上的具體位置(服務器的域名或者IP地址),相反,服務器則不需

31、要。這種差別在一定程度上限制了系統(tǒng)的靈活性和可擴展性。而在分布式對象結構中,服務的提供者是被稱為“對象”(Object)的系統(tǒng)組件(System Component)。每個對象的地位在邏輯上是平等的,它們可以互相為對方提供所需的服務。在這種情況下,提供服務的對象就是服務器,而提出服務請求的對象就是客戶。為了能夠提供服務,每個對象都有一個服務接口。8.請查閱相關的資料,寫一篇對比CORBA和DCOM的報告。答:略。9.模塊分解的最終目的是什么?答:模塊分解的目的是將系統(tǒng)“分而治之”,以降低問題的復雜性,使軟件結構清晰,易閱讀、易理解,易于測試和調試,因而也有助于提高軟件的可靠性。10. 模塊分解

32、應該遵循什么樣的標準? 答:按照“降低塊間聯系,提高塊內聯系”的設計總則對模塊進行分解。具體從以下方面考慮:(1) 盡可能建立功能模塊;(2) 消除重復功能;(3) 模塊的作用范圍與控制范圍,即當作用范圍為控制范圍的子集時,才能獲得較低的塊間聯系;(4) 模塊的大小適當;(5) 模塊的扇入/扇出數不宜太多。也可以用軟件獨立性的兩個定性指標來度量模塊分解的標準:一是耦合性。用于描述模塊之間聯系的緊密程度。從三個方面衡量塊間聯系大?。悍绞?(直接或間接)類型(數據型、控制型、混合型)數量(數量越大,塊間聯系越緊密。二是內聚性。用于描述模塊內部聯系的緊密程度。它是從功能的角度來度量模塊內的聯系。顯然

33、,塊內聯系愈緊,即內聚性愈強,模塊獨立性愈好。功能型模塊獨立性最好。1117題答案略。習題四答案一、選擇題1. 面向對象程序設計的基本機制是(ABC)。 A) 繼承 B) 消息 C) 方法 D) 結構2. 下列屬于面向對象的要素有(BCD)。A) 分類性 B) 抽象 C) 共享 D) 封裝3. 下列選項中屬于面向對象開發(fā)方法的有(ACD)。 A) Booch B) CAD C) Coad D) OMT4. 下列屬于Coad/Yourdon方法中面向對象的分析模型的層次有(AB)。A) 主題層 B) 對象層 C) 應用層 D) 接口層5. 一個類屬性依其特征劃分,其類型有(ABCD)。 A) 描

34、述型 B) 定義型 C) 派生型 D) 參考型6. 在進行面向對象分析時,所采用的模型有(ABC)。 A) 對象模型 B) 動態(tài)模型 C) 靜態(tài)模型 D) 功能模型7. 狀態(tài)是對象屬性的值的一種抽象,它的性質有(AB)。A) 時間性 B) 持續(xù)性 C) 有序性 D) 有窮性8. 數據流圖中的處理必須用對象中的操作來實現,常見的操作有(ABCD)。A) 查詢 B) 動作 C) 活動 D) 訪問9. 建立繼承關系時所采用的方式有(AC)。 A) 自頂向下 B) 從內到外 C) 自底向上 D) 從復雜到簡單10. 對象是人們要研究的任何事物,主要的對象類型有(ABCD)。A) 有形實體 B) 作用

35、C) 事件 D) 性能說明二、判斷題1. 面向對象的的方法是以類作為最基本的元素,它是分析問題和解決問題的核心。(×)2. 類是指具有相同或相似性質對象的抽象,對象是抽象的類,類的具體化就是對象。(×) 3. 繼承性是父類和子類之間共享數據結構和消息的機制,這是類之間的一種關系(×)。4. 多態(tài)性增強了軟件的靈活性和重用性,允許用更為明確、易懂的方式去建立通用軟件,多態(tài)性和繼承性相結合使軟件具有更廣泛的重用性和可擴充性。()5. 面向對象分析,就是抽取和整理用戶需求并建立問題域精確模型的過程。()6. 面向對象設計的主要目標是提高生產效率,提高質量和提高可維護性。

36、()7. 對象模型表示了靜態(tài)的、結構化的系統(tǒng)數據性質,描述了系統(tǒng)的靜態(tài)結構,它是從客觀世界實體的對象關系角度來描述,表現了對象的相互關系。()8. 面向對象的分析是用面向對象的方法對目標系統(tǒng)的問題域空間進行理解、分析和反映。通過對象層次結構的組織確定解空間中應存在的對象和對象層次結構。()9. 類的設計過程包括:確定類,確定關聯類,確定屬性,識別繼承關系。()10. 復用也叫重用或再用,面向對象技術中的“類”是比較理想的可重用軟構件,它有三種重用方式:實例重用、繼承重用、多態(tài)重用。()11. 主題是一種關于模型的抽象機制,它是面向對象模型的概貌,也是關于某個模型要同時考慮和理解的內容,主題起一

37、種控制作用。()12. 面向對象的分析由對象、結構、繼承性和基于消息的通信構成。(×)13. 支持繼承性是面向對象程序設計語言和傳統(tǒng)程序設計語言在語言機制方面的根本區(qū)別。()14. 面向對象的分析過程主要包括三項內容:理解、表達和驗證。()三、 簡答題1.消息傳遞機制與傳統(tǒng)程序設計模式中的過程調用相比,有何本質區(qū)別?答:(1) 消息傳遞必須給出信道的信息,通常要指出明確的接收方。 (2) 由于接收方是一通信實體,具有保持狀態(tài)的能力,所以同一發(fā)送方在不同時刻向同一接收方發(fā)送同樣的信息,可因接收方的當前狀態(tài)不同而得到不同的結果。 (3) 消息傳遞可以是異步的,發(fā)送方可以不必等待接收方返回

38、信息就可以繼續(xù)執(zhí)行后面的操作,因而支持程序的并發(fā)和分布執(zhí)行,而過程調用只能是同步的,本質上是串行的。2比較面向對象方法與結構化方法的特點,說明為什么面向對象方法比結構化方法更加優(yōu)越。答:結構化方法是以數據流和數據封閉性為基礎的,由SA、SD和 SP三部分構成。該方法:無法實現從問題空間到解空間的直接映射。開發(fā)方法求解過程是先對應用領域(問題空間)進行分析,建立起問題空間的邏輯模型,再通過一系列復雜的轉換和算法,構造計算機系統(tǒng),獲得解空間。無法實現高效的軟件復用。結構化方法是面向過程的,將數據和處理過程(操作)分離,不僅增加了軟件開發(fā)的難度,也難于支持軟件復用。開發(fā)方法難以實現從分析到設計的直接

39、過渡,從SA到SD要經過一系列復雜的變換。而面向對象的方法以對象為核心,強調模擬現實世界中的概念而不是算法,盡量用符合人類認識世界的思維方式來漸進地分析、解決問題。使問題空間與解空間具有一致性,便于對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟件開發(fā)的復雜度,提高軟件質量。軟件開發(fā)各個階段有機集成,有利于系統(tǒng)的穩(wěn)定性。具有良好的重用性。面向對象的技術在利用可重用的軟件成分構造新軟件系統(tǒng)上具有很大的靈活性,由于對象所具有的封裝性和信息隱蔽,使得對象的內部實現與外界隔離,具有較強的獨立性。繼承性本身就是一種重用機制。綜上,顯然面向對象方法比結構化方法更加優(yōu)越。3 Coad/Yourdon方法主

40、要有面向對象分析(OOA)和面向對象設計(OOD)。OOA概念模型由5個層次組成,請簡述這5個層次。答:OOA概念模型的5個層次分別是:(1) 發(fā)現類及對象。描述如何發(fā)現類及對象。從應用領域開始識別類及對象,形成整 個應用的基礎,然后,據此分析系統(tǒng)的責任。(2) 識別結構。該階段分為兩個步驟。第一,識別“一般特殊”結構,該結構捕獲了識別出的類的層次結構;第二,識別“整體部分”結構,該結構用來表示一個對象如何成為另一個對象的一部分,以及多個對象如何組裝成更大的對象。(3) 定義屬性。其中包括定義類的實例(對象)之間的實例連接。(4) 定義服務。其中包括定義對象之間的消息連接。(5) 定義主題。主

41、題由一組類及對象組成,用于將類及對象模型劃分為更大的單位,以便于理解。4面向對象的分析包括哪些主要活動?所建立的分析模型包括哪些類型的模型?答:面向對象的分析過程分為論域分析和應用分析。論域分析過程是抽取和整理用戶需求并建立問題域精確模型的過程。應用分析是將論域分析建立起來的問題論域模型,用某種基于計算機系統(tǒng)的語言來描述。面向對象的分析具體包括以下活動:獲取用戶基本需求。通常使用用例(User Case)來收集和描述。標識類和對象。包括標識類及對象的屬性和操作。定義類的結構和層次。通常有一般與特殊 (GeneralizationSpecialization)結構,整體與部分(WholePart

42、)結構。 建立類(對象)之間的關系,用“對象-關系模型”描述系統(tǒng)的靜態(tài)結構。 建立對象行為模型,描述系統(tǒng)的動態(tài)行為。所建立的分析模型包括:基本模型。是一個類圖(class diagram),是以直觀的方式表達系統(tǒng)最重要的信息。OOA基本模型的三個層次分別描述了:系統(tǒng)中應設哪幾類對象,每類對象的內部構成,對象與外部的關系。主題圖(subject)。又稱為子系統(tǒng)(subsystem),是將一些聯系密切的類組織在一起的類的集合。按照粒度控制原則,將系統(tǒng)組成幾個主題,便于理解。交互圖(interaction diagram) 是用例與系統(tǒng)成分之間的對照圖。主題圖和交互圖又稱為補充模型。5面向對象設計的

43、主要任務是什么?答:面向對象的設計(Object-Oriented Design,OOD)是面向對象開發(fā)方法(OOSD)的核心階段。是在OOA的基礎上解決系統(tǒng)“如何做”的問題。主要任務包括:系統(tǒng)設計 系統(tǒng)設計的任務包括:將分析模型中緊密相關的類劃分為若干子系統(tǒng)(也稱為主題),子系統(tǒng)應該具有良好的接口,子系統(tǒng)中的類相互協(xié)作;標識問題本身的并發(fā)性,將各子系統(tǒng)分配給處理器,建立子系統(tǒng)之間的通信。對象設計通過對象的認定和對象層次結構的組織,確定解空間中應存在的對象和對象層次結構,并確定外部接口和主要的數據結構。設計優(yōu)化對設計進行優(yōu)化,主要涉及提高效率的技術和建立良好的繼承結構的方法。6為什么面向對象的

44、方法能夠有效地解決軟件需求中存在的問題?需求過程中存在兩大難題,一是需求的確定是困難的,二是需求是不斷變動的。尤其是對于一些大型軟件系統(tǒng),開發(fā)周期長,系統(tǒng)規(guī)模大,復雜性高。面向對象的方法中,由于對象所具有的封裝性和信息隱蔽,使得對象的內部實現與外界隔離,具有較強的獨立性。而且面向對象的方法是以對象為中心構造軟件系統(tǒng),而不是基于對系統(tǒng)功能進行分解來構造系統(tǒng),當系統(tǒng)功能需求改變時不會引起系統(tǒng)結構的變化,使軟件系統(tǒng)具有良好的穩(wěn)定性和可適應性。軟件生存期各階段所使用的方法、技術具有高度的連續(xù)性,對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟件開發(fā)的復雜度,提高軟件質量,也便于需求的確定。7. OM

45、T方法明確提出了建模的概念,為什么在軟件開發(fā)過程中需要進行建模?答:OMT方法從不同而又相關的角度建立三類模型:對象模型、動態(tài)模型和函數模型,并為每一類模型提供了圖形表示。軟件模型一般包括數學模型、描述模型和圖形模型。在軟件開發(fā)過程中進行建模,一是由于軟件系統(tǒng)的復雜性和規(guī)模的不斷增大,需要建立不同的模型對系統(tǒng)的各個層次更好地進行描述。模型具有的直觀性及豐富的信息描述,便于開發(fā)人員與用戶的交流。建立的模型為以后的系統(tǒng)維護和升級提供了文檔。鑒于上述原因,在軟件開發(fā)過程中建模,能夠提高軟件開發(fā)的效率和質量。8為什么說面向對象的方法為軟件復用提供了良好的環(huán)境?答:軟件復用是將已有的軟件成分用于構造新的

46、軟件系統(tǒng),以達到提高軟件系統(tǒng)的開發(fā)質量與效率,降低開發(fā)成本的目的。復用的軟件成分也稱為可復用構件(Reusable Component)。對可復用組件一般有以下的要求:具有功能上的獨立性與完整性;具有較高的通用性;具有較高的靈活性;具有嚴格的質量保證;具有較高的標準化程度。面向對象的方法對復用的支持主要反映在:面向對象方法可以保護在整個軟件生存周期概念、原則、術語及表示法達到高度一致。這使面向對象方法不但能在各個級別支持軟件復用,而且能對各個級別的復用形成統(tǒng)一、高效的支持,達到良好的全局效果。OOA基本模型體現了更高的抽象,更容易成為一個可復用的系統(tǒng)構架。所有的對象都用類作為其抽象描述。類作為

47、一種可復用構件,在運用于不同系統(tǒng)時,不會出現因該類對象實例不同而使系統(tǒng)模型有所不同的情況。所以面向對象方法的主要概念及原則與軟件復用的要求十分吻合。OO方法中的對象和類是系統(tǒng)的基本構成單位,它符合可復用構件所應具備的那些特性,如完整性、獨立性、可標識性、一般性、抽象、封裝等。尤其是面向對象方法的對象封裝性,為軟件復用技術提供了良好的條件。而繼承機制本質上就是一種復用機制,因此面向對象方法為軟件復用提供了一個良好的環(huán)境。習題五答案一、選擇題1. 下列不是模型元素的是(D)。A) 關聯 B) 聚合 C) 依賴 D) 筆記2. UML具有擴展性,常見的擴展機制有(BCD)。A) 修飾 B) 版類 C

48、) 加標簽值 D) 約束3. UML語言支持的建模方式有(ABD)。A) 靜態(tài)建模 B) 動態(tài)建模 C) 模塊化建模 D) 功能建模4. 下列各種圖可用于動態(tài)建模的有(ACD)。A) 狀態(tài)圖 B) 類圖 C) 序列圖 D) 活動圖5. 下列屬于狀態(tài)的組成部分的有(AB)。A) 名稱 B) 活動 C) 條件 D) 事件6. UML中包括的事件有(ABCD)。A) 條件為真 B) 收到另一對象的信號C) 收到操作調用 D) 時間表達式7. 屬性的可見性有(ABD)。A) 公有的 B) 私有的 C) 私有保護的 D) 保護的8. 用例之間的關系有(BCD)。A) 友元 B) 擴展 C) 使用 D)

49、組合9. 應用于通用化約束的方式有(ABCD)。A) 完整 B) 不相交 C) 不完整 D) 覆蓋10. 消息的類型有(ABC)A) 同步 B) 異步 C) 簡單 D) 復雜二、 判斷題1. UML建模語言是由視圖、圖、模型元素和通用機制構成的層次關系來描述的。 ()2. UML是一種建模語言,是一種標準的表示,是一種方法。 (×)3. 泳道是一種分組機制,它描述了狀態(tài)圖中對象所執(zhí)行的活動。 (×)4. 同步消息和異步消息的主要區(qū)別是:同步消息的發(fā)送對象在消息發(fā)送后,不必等待消息處理,可立即繼續(xù)執(zhí)行,而異步消息則發(fā)送對象必須等待接收對象完成消息處理后,才能繼續(xù)執(zhí)行。(

50、15;) 5. 類圖中的角色是用于描述該類在關聯中所扮演的角色和職責的。 () 6. 類圖用來表示系統(tǒng)中類和類與類之間的關系,它是對系統(tǒng)動態(tài)結構的描述。 (×) 7. 用例模型的基本組成部件是用例、角色和用例之間的聯系。 ()8. 用例之間有擴展、使用、組合等幾種關系。 ()9. 順序圖描述對象之間的交互關系,重點描述對象間消息傳遞的時間順序。 ()10. 活動圖顯示動作及其結果,著重描述操作實現中所完成的工作以及用例實例或類中的活動。(×)三、 簡答題1. 以圖1(一個在學校首次報名的 UML 活動圖)為例,說明如何繪制活動圖。圖1 學校首次報名的UML活動圖答:要創(chuàng)建一

51、個UML活動圖,需要反復執(zhí)行下列步驟。(1) 定義活動圖的范圍。首先應該確定建模的范圍,是對整個系統(tǒng)建模,還是一個子系統(tǒng)。一旦定義了作圖的范圍,應該在其頂部,用一個注釋指明該圖的標題和惟一的標識符,還可標注該圖的時間及作者姓名。本題的建模范圍是一個學校管理系統(tǒng)中的“報名”部分。(2) 添加活動。活動是活動圖的核心,活動是完成系統(tǒng)任務所必須執(zhí)行的處理步驟。可從用例模型出發(fā),對每個角色(actor)所驅動的主要用例引入一個活動,如果是對整個系統(tǒng)建模,應對每個主要流程引入一個活動。在“報名”的活動圖中確定了“Fill out enrollment ”(填寫報名表)、“Enroll in univer

52、sity”(登記入學)、“Obtain help to fill out forms”(幫助填寫報名表)、“Attend university overview presentation”(參加介紹學校會議)等6個活動。(3) 添加起點和結束點。每個活動圖只能有一個起始點和多個結束點,結束點可以是所有活動的結束,也可以是對執(zhí)行過程的終止。(4) 添加活動間的轉變。當一個活動結束時將進入下一個活動,稱為活動轉移??蓸嗣骰顒愚D移的條件、引起活動轉移的事件。如活動“填寫報名表”有兩個活動轉移,當填寫報名表不正確時,則轉移到活動“幫助填寫報名表”;當填寫正確時,則轉移到活動“登記入學 ”。(5) 添加

53、判斷點。當對建模的邏輯需要做出一個判斷時,需要添加判斷點。例如,在圖1中 ,在“Enroll in university”活動之后,還必須按照入學條件進行判斷,滿足條件的繼續(xù)執(zhí)行入學報到的活動,而不滿足入學條件的則結束。(6) 找出并行活動。若兩個活動間沒有直接的聯系,而且它們都必須在第三個活動開始前結束,則它們是可以并行運行的。在圖1中,用同步線描述系統(tǒng)任務中的并發(fā)活動,活動“Attend university overview presentation”(參加介紹學校會議)和“Enroll in seminars” (注冊研討班)及“Make initial tuition payment

54、”(交付初始的學費)可并行執(zhí)行,使用同 步線表示它們都要在結束整個流程前完成。2. 簡述擴展、包含和細化三種UML依賴關系的異同。答:擴展、包含和細化都是描述了元素之間的依賴關系,但具體含義不同。擴展(extend)關系是對基本用例在對某些“擴展點”的功能的增加。通過向被擴展的用例添加動作來擴展用例。包含(include)關系表示一個元素為了實現或完成其全部的功能,需要用到已存在的另一個模型元素,本質上是一種使用關系。細化關系是不同語義層(如分析和設計)之間模型元素的依賴關系,表示一個元素對另一個因此細化關系可描述的語義范圍較廣,包括模型的逐步細化、優(yōu)化、變換、模板、模型合成、框架組成等。3. 軟件開發(fā)為什么要使用UML建模?它有何特點?答:軟件開發(fā)的過程猶如雕琢一件工藝品,由無形到有形,由粗到細。鑒于軟件系統(tǒng)的復雜性和規(guī)模的不斷增大,項目失敗的可能性也相應增加。需要建立不同的

溫馨提示

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

評論

0/150

提交評論