

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件工程(2nd)教材習(xí)題答案【精選文檔】習(xí) 題 答 案習(xí)題一答案一、選擇題1。 軟件的主要特性是(A B C)。 A) 無形 B) 高成本C) 包括程序和文檔 D) 可獨(dú)立構(gòu)成計(jì)算機(jī)系統(tǒng)2. 軟件工程三要素是(B)。A) 技術(shù)、方法和工具 B) 方法、工具和過程 C) 方法、對(duì)象和類 D) 過程、模型、方法3. 包含風(fēng)險(xiǎn)分析的軟件工程模型是(A)。A) 螺旋模型 B) 瀑布模型 C) 增量模型 D) 噴泉模型4. 軟件工程的主要目標(biāo)是(C)。A) 軟件需求 B) 軟件設(shè)計(jì) C) 風(fēng)險(xiǎn)分析 D) 軟件實(shí)現(xiàn)5. 下列屬于面向?qū)ο箝_發(fā)方法的是(A B C D).A) Booch B) UML C)
2、 Coad D) OMT6. 軟件危機(jī)的主要表現(xiàn)是(B D)。A) 軟件成本太高 B) 軟件產(chǎn)品的質(zhì)量低劣C) 軟件開發(fā)人員明顯不足 D) 軟件生產(chǎn)率低下7。 軟件開發(fā)方法的主要工作模型有(A B C)A) 螺旋模型 B) 循環(huán)模型 C) 瀑布模型 D) 專家模型8。 軟件工程的目標(biāo)有(A B C)。A) 易于維護(hù) B) 低的開發(fā)成本 C) 高性能 D) 短的開發(fā)期9。 軟件工程學(xué)的目的和意義是(A D)。A) 應(yīng)用科學(xué)的方法和工程化的規(guī)范管理來指導(dǎo)軟件開發(fā)B) 克服軟件危機(jī)C) 作好軟件開發(fā)的培訓(xùn)工作D) 以較低的成本開發(fā)出高質(zhì)量的軟件二、 判斷題1。 軟件就是程序,編寫軟件就是編寫程序。(
3、×)2。 瀑布模型的最大優(yōu)點(diǎn)是將軟件開發(fā)的各個(gè)階段劃分得十分清晰。(×)3。 結(jié)構(gòu)化方法的工作模型是使用螺旋模型進(jìn)行開發(fā).(×)4。 結(jié)構(gòu)化方法和OO方法都是一種面向過程的軟件開發(fā)方法。(×)5。 原型化開發(fā)方法包括生成原型和實(shí)現(xiàn)原型兩個(gè)步驟。(×)6。 面向?qū)ο蟮拈_發(fā)方法包括面向?qū)ο蟮姆治?、面向?qū)ο蟮脑O(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì).( )7。 軟件危機(jī)的主要表現(xiàn)是軟件的需求量迅速增加,軟件價(jià)格上升。(×)8. 軟件工具的作用是為了延長軟件產(chǎn)品的壽命。(×)9。 軟件工程過程應(yīng)該以軟件設(shè)計(jì)為中心,關(guān)鍵是編寫程序。(×)1
4、0。 RCP法與RSP法的主要區(qū)別是前者采用循環(huán)漸進(jìn)的開發(fā)方式,原型將成為最終的產(chǎn)品,而后者原型將被廢棄。()三、簡答題1. 軟件產(chǎn)品的特性是什么?答: 軟件是一種邏輯產(chǎn)品,具有無形性; 軟件產(chǎn)品的生產(chǎn)主要是研制;主要是腦力勞動(dòng); 軟件不存在磨損和老化問題,但存在退化問題; 軟件產(chǎn)品的成本非常昂貴,其開發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式; 軟件具有“復(fù)雜性”,其開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制。2。 軟件發(fā)展有幾個(gè)階段?各有何特征?答: 程序設(shè)計(jì)階段。 硬件特征:價(jià)格貴、存儲(chǔ)容量小、運(yùn)行可靠性差。 軟件特征:只有程序、程序設(shè)計(jì)概念,不重視程序設(shè)計(jì)方法。 程序系統(tǒng)階段。 硬件特征:速度、容量及工
5、作可靠性有明顯提高,價(jià)格降低,銷售有爆炸性增長。 軟件特征:程序員數(shù)量猛增,開發(fā)人員素質(zhì)低。 軟件工程階段.硬件特征:向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展。軟件特征:開發(fā)技術(shù)有很大進(jìn)步,但未獲得突破性進(jìn)展,軟件價(jià)格不斷上升,未完全擺脫軟件危機(jī)。3。 什么是軟件危機(jī)?其產(chǎn)生的原因是什么?答:“軟件危機(jī)"(Software Crisis)的出現(xiàn)是由于軟件的規(guī)模越來越大,復(fù)雜度不斷增加,軟件需求量增大.而軟件開發(fā)過程是一種高密集度的腦力勞動(dòng),軟件開發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要.致使大量質(zhì)量低劣的軟件涌向市場(chǎng),有的花費(fèi)大量人力、財(cái)力,而在開發(fā)過程中就夭折。軟件危機(jī)主要表現(xiàn)在兩個(gè)方
6、面:(1) 軟件產(chǎn)品質(zhì)量低劣,甚至開發(fā)過程就夭折。(2) 軟件生產(chǎn)率低,不能滿足需要.4. 什么是軟件過程?有哪些主要的軟件過程模型?它們各有哪些特點(diǎn)?答:軟件過程是指在軟件工具的支持下,所進(jìn)行的一系列軟件開發(fā)和進(jìn)化的活動(dòng)。軟件過程模型是對(duì)軟件開發(fā)實(shí)際過程的抽象和簡化,是描述軟件開發(fā)過程中各種活動(dòng)如何執(zhí)行的模型,因此又稱為軟件開發(fā)模型。主要的軟件過程模型有:瀑布模型、增量模型、螺旋模型、噴泉模型和基于知識(shí)的模型等。瀑布模型是經(jīng)典的軟件開發(fā)模型,將軟件開發(fā)活動(dòng)中的各項(xiàng)活動(dòng)規(guī)定為依線性順序連接的若干階段,它簡單易用,在消除非結(jié)構(gòu)化軟件、降低軟件的復(fù)雜性、促進(jìn)軟件開發(fā)工程化方面起了很大的作用。但在軟
7、件開發(fā)實(shí)踐中也逐漸暴露出它的缺點(diǎn)。它將一個(gè)充滿回溯的軟件開發(fā)過程硬性分割為幾個(gè)階段,無法解決軟件需求不明確或者變動(dòng)的問題。增量模型是一種非整體開發(fā)的模型.根據(jù)增量的方式和形式的不同,分為基于瀑布模型的漸增模型和基于原型的快速原型模型。該模型具有較大的靈活性,適合于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風(fēng)險(xiǎn)分析.螺旋模型將開發(fā)過程分為幾個(gè)螺旋周期,每個(gè)螺旋周期可分為4個(gè)工作步驟:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程、客戶評(píng)估.噴泉模型用于采用對(duì)象技術(shù)的軟件開發(fā)項(xiàng)目.它克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動(dòng)集成的局限性。噴泉模型使開發(fā)過程具有迭代性
8、和無間隙性。軟件開發(fā)過程有4個(gè)階段,即分析、系統(tǒng)設(shè)計(jì)、軟件設(shè)計(jì)和實(shí)現(xiàn)。各階段相互重疊,以分析為基礎(chǔ),資源消耗成塔形,從高層返回低層無資源消耗。強(qiáng)調(diào)增量開發(fā),是對(duì)象驅(qū)動(dòng)的過程,反映了對(duì)象的開發(fā)和重用過程?;谥R(shí)的模型也稱為智能模型。通過領(lǐng)域的專家系統(tǒng),可使需求說明更加完整、準(zhǔn)確和無二義性.通過軟件工程知識(shí)和特定應(yīng)用領(lǐng)域的知識(shí)和規(guī)則的應(yīng)用來提供開發(fā)的幫助.5。 有哪些主要的軟件開發(fā)方法?答:主要的軟件開發(fā)方法有:結(jié)構(gòu)化開發(fā)方法、原型化開發(fā)方法和面向?qū)ο蟮拈_發(fā)方法。6。 軟件生存周期各階段的主要任務(wù)是什么?答:軟件生存周期按瀑布模型分為6個(gè)階段: 可行性研究與計(jì)劃(確定系統(tǒng)的目標(biāo)和規(guī)模,分析項(xiàng)目的
9、可行性); 需求分析與規(guī)格說明(明確系統(tǒng)的規(guī)格和要求); 設(shè)計(jì)(包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將系統(tǒng)分解為模塊); 編程(用程序語言實(shí)現(xiàn)每個(gè)模塊,簡單容易); 測(cè)試(發(fā)現(xiàn)并改正錯(cuò)誤,分為模塊測(cè)試、集成測(cè)試和系統(tǒng)聯(lián)調(diào)三級(jí)); 運(yùn)行維護(hù)(擴(kuò)充功能、糾錯(cuò)等)。7。 原型化方法的核心是什么?它具有哪些特點(diǎn)?答:原型化方法的核心是,花費(fèi)少量代價(jià)建立一個(gè)可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會(huì)。強(qiáng)調(diào)軟件開發(fā)人員與用戶的不斷交互,通過原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求。它是一個(gè)循環(huán)的模型。速成原型法按以下步驟循環(huán)執(zhí)行: 快速分析。 構(gòu)造原型。 運(yùn)行和評(píng)價(jià)原型. 修改與改進(jìn).習(xí)題二答案一、 選擇題1。 需求分析的主
10、要目的是(B C)。A) 系統(tǒng)開發(fā)的具體方案B) 進(jìn)一步確定用戶的需求C) 解決系統(tǒng)是“做什么"的問題D) 解決系統(tǒng)是“如何做”的問題2. 需求分析的主要方法有(C D).A) 形式化分析方法 B) PAD圖描述C) 結(jié)構(gòu)化分析(SA)方法 D) OOA法3. 面向?qū)ο蟮姆治龇椒ㄖ饕墙⑷惸P?,?D)。A) 系統(tǒng)模型、E-R模型、應(yīng)用模型B) 對(duì)象模型、動(dòng)態(tài)模型、應(yīng)用模型C) -模型、對(duì)象模型、功能模型D) 對(duì)象模型、動(dòng)態(tài)模型、功能模型4. SA法的主要描述手段有(B)。A) 系統(tǒng)流程圖和模塊圖B) DFD圖、數(shù)據(jù)詞典、加工說明C) 軟件結(jié)構(gòu)圖、加工說明D) 功能結(jié)構(gòu)圖、加工說
11、明5. 畫分層DFD圖的基本原則有(A C D)。A) 數(shù)據(jù)守恒原則B) 分解的可靠性原則C) 子、父圖平衡的原則D) 數(shù)據(jù)流封閉的原則6. 在E-R模型中,包含的基本成分是(C)。A) 數(shù)據(jù)、對(duì)象、實(shí)體B) 控制、聯(lián)系、對(duì)象C) 實(shí)體、聯(lián)系、屬性D) 實(shí)體、屬性、聯(lián)系7. 畫DFD圖的主要目的是(A D)。A) 作為需求分析階段用戶與開發(fā)者之間交流信息的工具B) 對(duì)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述C) 對(duì)目標(biāo)系統(tǒng)的層次結(jié)構(gòu)進(jìn)行描述D) 作為分析和設(shè)計(jì)的工具8。 數(shù)據(jù)字典是數(shù)據(jù)流圖中所有元素的定義的集合,一般由 (C) 四類條目組成。A) 數(shù)據(jù)說明條目、控制流條目、加工條目、數(shù)據(jù)存儲(chǔ)條目B) 數(shù)據(jù)流條目
12、、數(shù)據(jù)項(xiàng)條目、文件條目、加工條目C) 數(shù)據(jù)源條目、數(shù)據(jù)流條目、數(shù)據(jù)處理?xiàng)l目、數(shù)據(jù)文件條目D) 數(shù)據(jù)流條目、數(shù)據(jù)文件條目、數(shù)據(jù)池條目、加工條目 9. 在需求分析階段主要采用圖形工具來描述的原因是(B C).A) 圖形的信息量大,便于描述規(guī)模大的軟件系統(tǒng)B) 圖形工具能夠極好地概括描述一個(gè)系統(tǒng)的信息,比文字?jǐn)⑹瞿軌蚋玫乇磉_(dá)重要的細(xì)節(jié)C) 圖形能夠更加直觀地描述目標(biāo)系統(tǒng),便于用戶理解和交流,有利于開發(fā)者與用戶之間達(dá)成一致的需求D) 圖形比文字描述簡單、形象二、 判斷題1。 在進(jìn)行了可行性分析后,需求分析就只需要解決目標(biāo)系統(tǒng)的設(shè)計(jì)方案。 (×)2。 SA法是面向數(shù)據(jù)流,建立在數(shù)據(jù)封閉原則上
13、的需求分析方法。 ()3。 需求管理主要是對(duì)需求變化的管理,即如何有效控制和適應(yīng)需求的變化。 ()4。 在面向?qū)ο蟮男枨蠓治龇椒ㄖ?建立動(dòng)態(tài)模型是最主要的任務(wù)。 (×)5。 加工小說明是對(duì)系統(tǒng)流程圖中的加工進(jìn)行說明。 (×)6。 判定表的優(yōu)點(diǎn)是容易轉(zhuǎn)換為計(jì)算機(jī)實(shí)現(xiàn),缺點(diǎn)是不能夠描述組合條件. (×)7。 需求分析的主要方法有SD法、OOA法及HIPO法等。 (×)8. 分層的DFD圖可以用于可行性分析階段,描述系統(tǒng)的物理結(jié)構(gòu). (×)9。 信息建模方法是從數(shù)據(jù)的角度來建立信息模型的,最常用的描述信息模型的方法是ER圖。()10. 用于需求分析的
14、軟件工具,應(yīng)該能夠保證需求的正確性,即驗(yàn)證需求的一致性、完整性、現(xiàn)實(shí)性和有效性。 ()三、 簡答題1. 需求工程包括哪些基本活動(dòng)?各項(xiàng)基本活動(dòng)的主要任務(wù)是什么?答:需求工程過程包括如下主要活動(dòng): 獲取需求。深入實(shí)際,在充分理解用戶需求的基礎(chǔ)上,獲取足夠多的問題領(lǐng)域的知識(shí),積極與用戶交流,捕捉、分析和修訂用戶對(duì)目標(biāo)系統(tǒng)的需求,并提煉出符合解決領(lǐng)域問題的用戶需求。需求獲取的方法一般有問卷法、面談法、數(shù)據(jù)采集法、用例法、情景實(shí)例法以及基于目標(biāo)的方法等。 需求分析與建模.對(duì)已獲取的需求進(jìn)行分析和提煉,進(jìn)行抽象描述,建立目標(biāo)系統(tǒng)的概念模型,需求概念模型的要求包括實(shí)現(xiàn)的獨(dú)立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等
15、;需求模擬技術(shù)又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。進(jìn)一步對(duì)所建立的模型(原型)進(jìn)行分析。需求模型的表現(xiàn)形式有自然語言、半形式化(如圖、表、結(jié)構(gòu)化英語等)和形式化表示等三種。 需求規(guī)格說明。對(duì)需求模型進(jìn)行精確的、形式化的描述,為計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)提供基礎(chǔ)。 確認(rèn)需求。以需求規(guī)格說明為基礎(chǔ)輸入,通過符號(hào)執(zhí)行、模擬或快速原型等方法,分析和驗(yàn)證需求規(guī)格說明的正確性和可行性,確保需求說明準(zhǔn)確、完整地表達(dá)系統(tǒng)的主要特性,就是對(duì)需求規(guī)格說明與用戶達(dá)成一致。其主要任務(wù)是沖突求解,包括定義沖突和沖突求解兩方面.常用的沖突求解方法有:協(xié)商、競爭、仲裁、強(qiáng)制、教育等,其中有些只能用人的因素去控制。 需求管
16、理。在整個(gè)需求工程過程中,貫穿了需求管理活動(dòng)。需求管理主要包括跟蹤和管理需求變化,支持系統(tǒng)的需求演進(jìn)。由于客戶的需要總是不斷(連續(xù))增長的,但一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進(jìn)化(變化)就成為軟件管理的首要問題。對(duì)于傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組.當(dāng)前的發(fā)展是軟件家族法,即產(chǎn)品線方法。多視點(diǎn)方法也是管理需求變化的一種新方法,它可以用于管理不一致性,并進(jìn)行關(guān)于變化的推理。進(jìn)化需求是十分必要的。2簡述抽取需求的主要方法,并比較它們的特點(diǎn)。面談法。這是一種重要而直接簡單,隨時(shí)可使用的發(fā)現(xiàn)和獲取需求的方法。面談的對(duì)象主要有用戶和領(lǐng)域?qū)<遥?/p>
17、與用戶面談主要了解和提取需求,與領(lǐng)域?qū)<颐嬲劊且粋€(gè)對(duì)領(lǐng)域知識(shí)的學(xué)習(xí)和轉(zhuǎn)換過程。使用該方法時(shí)應(yīng)注意面談前要充分準(zhǔn)備,面談后認(rèn)真分析總結(jié),同時(shí)注意掌握面談的人際交流技巧,才能取得好的效果.問卷法調(diào)查法.通過采用向用戶發(fā)問卷調(diào)查表的方式,達(dá)到徹底弄清項(xiàng)目需求的一種需求獲取方法。這是一種從多個(gè)用戶處收集需求信息的有效方式,是對(duì)面談法的補(bǔ)充。會(huì)議討論法。所謂會(huì)議討論法,是指開發(fā)方和用戶方召開若干次需求討論會(huì)議,達(dá)到徹底弄清項(xiàng)目需求的一種需求獲取方法。這種方法適合于開發(fā)方不清楚項(xiàng)目需求的情況.原型法.對(duì)于某些試驗(yàn)性、探索性的項(xiàng)目,更是難于得到一個(gè)準(zhǔn)確、無二義性的需求.而原型化方法(Prototyping
18、 Method)是獲取這一類項(xiàng)目需求的有效方法。面向用例的方法.分析建立“用例”的過程,也就是提取需求的過程.在實(shí)際應(yīng)用中,常常將以上方法進(jìn)行綜合應(yīng)用.3。 客戶的需要總是不斷地增長,但是一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進(jìn)化就成為軟件進(jìn)化的首要問題.請(qǐng)說明需求變更的管理過程。答:需求變更的管理是需求管理的核心內(nèi)容.其主要任務(wù)是對(duì)系統(tǒng)需求變更進(jìn)行跟蹤和控制。對(duì)傳統(tǒng)的變化管理過程來說,其基本內(nèi)容包括軟件配置、軟件基線和變更審查等.目前推出的新的管理方法有軟件家族法,即軟件產(chǎn)品線方法及多視點(diǎn)方法等。下圖描述了需求變更的管理過程。識(shí)別出的問題問題分析和變更描述變更分析和成本計(jì)算
19、變更實(shí)現(xiàn)修正后的需求4。 M公司的軟件產(chǎn)品以實(shí)驗(yàn)型的新軟件為主。用瀑布模型進(jìn)行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理人員剛加入M公司,你認(rèn)為快速原型法對(duì)公司的軟件開發(fā)更加優(yōu)越,請(qǐng)向公司副總裁寫一份報(bào)告闡明你的理由.切記:副總裁不喜歡報(bào)告長度超過一頁.參考答案提示:應(yīng)先簡述瀑布模型的缺點(diǎn),它已不適宜開發(fā)實(shí)驗(yàn)型的軟件.根據(jù)快速原型法的特點(diǎn),說明它特別適合于開發(fā)探索型、實(shí)驗(yàn)型的軟件。5。 如何畫分層數(shù)據(jù)流圖?有哪些基本原則?答:總的原則是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖)。逐層分解的畫法可以控制每一層的復(fù)雜度。頂層:將整個(gè)系統(tǒng)作為一個(gè)加工,描述系統(tǒng)邊界(輸入與輸出)。中間層:
20、將某個(gè)加工分解為一組子加工,其中的子加工還需進(jìn)一步分解。底層:由不再進(jìn)行分解的基本加工組成。畫分層數(shù)據(jù)流圖的基本原則有: 數(shù)據(jù)守恒與數(shù)據(jù)封閉原則。 加工分解的原則。 子圖與父圖“平衡”的原則。 合理使用文件的原則.6. 加工小說明有哪些描述方法?它們各有何優(yōu)缺點(diǎn)?為什么不采用自然語言進(jìn)行描述?答:主要的描述方法有三種;結(jié)構(gòu)化語言、判定表和判定樹。結(jié)構(gòu)化語言:介于自然語言和形式語言(如謂詞邏輯)之間的的一種半形式語言,它是自然語言的一個(gè)受限制的子集。是在自然語言的基礎(chǔ)上加上一些約束,一般分為兩層結(jié)構(gòu):外層語法較具體,為控制結(jié)構(gòu)(順序、選擇、循環(huán));內(nèi)層較靈活,表達(dá)“做什么”。常用結(jié)構(gòu)化英語或結(jié)構(gòu)
21、化漢語表示,精確、簡明扼要、文體靈活.結(jié)構(gòu)化語言特點(diǎn):簡單,易學(xué),少二義性,但不好處理組合條件。判定表:適用于表述比較復(fù)雜的加工邏輯,如具有多項(xiàng)選擇條件的操作。判定表是一種二維的表格,常用于較復(fù)雜的組合條件。通常由四部分組成,如教材表2-2所示。對(duì)用結(jié)構(gòu)化語言不易處理的較復(fù)雜的組合條件問題,可使用判定表。判定樹:本質(zhì)上與判定表相同,圖形表示更易于理解。描述一般組合條件較清晰,但不易輸入計(jì)算機(jī)。7。 考察下圖中子圖、父圖的平衡關(guān)系。圖1圖2參考答案: 顯然,圖1中子圖與父圖不平衡。 圖2中,如果有如下數(shù)據(jù)條目:訂貨單=客戶+賬號(hào)+數(shù)量則子、父圖平衡。8. 畫出銀行取款過程的用例圖。問題描述為:儲(chǔ)
22、戶用存折取款,首先填寫取款單,根據(jù)“ 銀行卡”中的信息檢驗(yàn)取款單與存折,如有問題,將問題反饋給儲(chǔ)戶,否則,登錄“儲(chǔ)戶存款數(shù)據(jù)庫",修改相應(yīng)數(shù)據(jù),并更新“銀行卡”,同時(shí)發(fā)出付款通知,出納向儲(chǔ)戶付款。參考答案:分析所給出的需求,確定角色為:儲(chǔ)戶、存款數(shù)據(jù)庫、存折、出納。用例為:填寫取款單、驗(yàn)證取款單與存折、銀行卡管理、數(shù)據(jù)庫管理、付款。銀行取款系統(tǒng)的高層用例圖儲(chǔ)戶存折出納存款數(shù)據(jù)庫付款數(shù)據(jù)庫管理填寫取款單銀行卡管理管理驗(yàn)證取款單與存折<<extend>><<include>><<include>><<in
23、clude>>習(xí)題三答案 一、 選擇題1。 模塊的基本特征是(A C).A) 外部特征(輸入/輸出、功能) B) 內(nèi)部特征(輸入/輸出、功能) C) 內(nèi)部特征(局部數(shù)據(jù)、代碼) D) 外部特征(局部數(shù)據(jù)、代碼 )2. SD方法的設(shè)計(jì)總則是(C D)。A) 程序簡潔、操作方便 B) 結(jié)構(gòu)清晰、合理C) 模塊內(nèi)聚性強(qiáng) D) 模塊之間耦合度低3. 軟件設(shè)計(jì)的主要任務(wù)是(A B D)。A) 將分析階段獲得的需求說明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng);B) 完成系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)設(shè)計(jì)C) 完成模塊的編碼和測(cè)試D) 對(duì)模塊內(nèi)部的過程進(jìn)行設(shè)計(jì)4。 設(shè)計(jì)階段應(yīng)達(dá)到的目標(biāo)有(A D)。A) 提高可靠性
24、和可維護(hù)性 B) 提高應(yīng)用范圍C) 結(jié)構(gòu)清晰 D) 提高可理解性和效率5. 從工程管理的角度來看,軟件設(shè)計(jì)分(D)兩步完成。A) 系統(tǒng)分析、模塊設(shè)計(jì) B) 詳細(xì)設(shè)計(jì)、總體設(shè)計(jì)C) 模塊設(shè)計(jì)、詳細(xì)設(shè)計(jì) D) 總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)6. 模塊獨(dú)立性準(zhǔn)則定性指標(biāo)(B D)來衡量.A) 分解度 B) 耦合度 C) 屏蔽性 D) 內(nèi)聚性7。 用戶界面設(shè)計(jì)的任務(wù)包括(A B C)。A) 確定用戶界面類型 B) 建立任務(wù)模型C) 建立用戶模型 D) 建立功能模型 二、判斷題1. 劃分模塊可以降低軟件的復(fù)雜度和工作量,所以應(yīng)該將模塊分得越小越好。 (×)2. 在網(wǎng)狀結(jié)構(gòu)中任何兩個(gè)模塊都是平等的,沒有從屬
25、關(guān)系,所以在軟件開發(fā)過程中常常被使用。(×)3。 信息隱蔽原則有利于提高模塊的內(nèi)聚性。()4。 中心變換型的DFD圖可看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,因此可以使用事務(wù)分析技術(shù)得到初始的模塊結(jié)構(gòu)圖。(×)5。 SD法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,強(qiáng)調(diào)程序結(jié)構(gòu)與問題結(jié)構(gòu)相對(duì)應(yīng)。 (×)6。 當(dāng)模塊的控制范圍是其作用范圍的子集時(shí),模塊之間的耦合度較低。(×)三、簡答題1。 請(qǐng)解釋為什么需要體系結(jié)構(gòu)設(shè)計(jì).答:軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、元素間的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成
26、.軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。良好的體系結(jié)構(gòu)是普遍適用的,它可以高效地處理各種各樣的個(gè)體需求。2. 集中式模型和分布式模型相比各有什么優(yōu)缺點(diǎn)?答:以集中式的倉庫模型為例。其主要優(yōu)點(diǎn):(1) 數(shù)據(jù)由某個(gè)子系統(tǒng)產(chǎn)生,并且被存儲(chǔ)到倉庫中,以便為另外一些子系統(tǒng)共享;(2) 由于中央集中控制的緣故,共享數(shù)據(jù)能得到有效的管理,各子系統(tǒng)之間不需要通過復(fù)雜的機(jī)制來傳遞共享數(shù)據(jù);(3) 一個(gè)子系統(tǒng)不必關(guān)心其他的子系統(tǒng)是怎么使用它產(chǎn)生的數(shù)據(jù);(4) 所有的子系統(tǒng)都擁有一致的基于中央數(shù)據(jù)倉庫的數(shù)據(jù)視圖。如果新子系統(tǒng)也
27、采用相同的規(guī)范,則將它集成于系統(tǒng)中是容易的.但這種系統(tǒng)也有明顯的缺陷:(1) 雖然共享數(shù)據(jù)得到了有效的管理,但隨之而來的問題是各子系統(tǒng)必須有一致的數(shù)據(jù)視圖以便能共享數(shù)據(jù),換句話說,就是各子系統(tǒng)之間為了能共享數(shù)據(jù)必須走一條折中的路線,這不可避免地會(huì)影響整個(gè)系統(tǒng)的性能。(2) 一個(gè)子系統(tǒng)發(fā)生了改變,它產(chǎn)生的數(shù)據(jù)也可能發(fā)生結(jié)構(gòu)上的改變.問題隨之而來,其他的子系統(tǒng)如何能正確解析這些數(shù)據(jù)呢?所以為了達(dá)到共享的目的,數(shù)據(jù)翻譯系統(tǒng)會(huì)被引入到整個(gè)系統(tǒng)當(dāng)中。但這種翻譯的代價(jià)是很高的,并且有時(shí)是不可能完成的。(3) 中央數(shù)據(jù)倉庫和各子系統(tǒng)的私有數(shù)據(jù)庫必須有相同的關(guān)于備份、安全、訪問控制和恢復(fù)的策略,這可能會(huì)影響子
28、系統(tǒng)的效率。(4) 集中式的控制使數(shù)據(jù)和子系統(tǒng)的分布變得非常困難甚至成為不可能。這里分布指的是將數(shù)據(jù)或子系統(tǒng)分散到不同的機(jī)器上。分布式結(jié)構(gòu)有這樣的一些優(yōu)勢(shì):(1) 資源共享:系統(tǒng)中每個(gè)服務(wù)節(jié)點(diǎn)上的資源都可以被系統(tǒng)中的其他節(jié)點(diǎn)訪問;(2) 開放性高:系統(tǒng)可以方便地增刪不同軟硬結(jié)構(gòu)的節(jié)點(diǎn);(3) 可伸縮性好:系統(tǒng)可以方便地增刪新的服務(wù)資源以滿足需要;(4) 容錯(cuò)能力強(qiáng):分布式系統(tǒng)中的信息冗余可以容忍一定程度的軟硬故障;(5) 透明性高:系統(tǒng)中的節(jié)點(diǎn)一般只需知道服務(wù)的位置而不必清楚系統(tǒng)的結(jié)構(gòu)。但分布式結(jié)構(gòu)也存在著一些不足:(1) 復(fù)雜性:分布式系統(tǒng)比集中式系統(tǒng)要復(fù)雜得多.集中式系統(tǒng)的性能主要依賴于主
29、機(jī)的處理器能力,而分布式系統(tǒng)的性能則還會(huì)依賴于網(wǎng)絡(luò)的帶寬,這讓情形變得更加復(fù)雜。(2) 安全性:網(wǎng)絡(luò)環(huán)境隨時(shí)面臨著各種威脅:病毒、惡意代碼、非法訪問等。如何保證安全性是一個(gè)讓人頭疼的問題.(3) 可管理性:分布式系統(tǒng)的開放性造成了系統(tǒng)的異構(gòu)性。顯而易見,管理異構(gòu)的系統(tǒng)比管理主機(jī)系統(tǒng)要困難得多。(5) 不可預(yù)知性:這主要指系統(tǒng)的響應(yīng)時(shí)間.網(wǎng)絡(luò)環(huán)境本身的特點(diǎn)決定了網(wǎng)絡(luò)負(fù)載會(huì)明顯地影響整個(gè)系統(tǒng)的響應(yīng)時(shí)間。3. 請(qǐng)舉出一種集中式模型的實(shí)例,并圖示它的結(jié)構(gòu)。答:請(qǐng)參考3.2。1“倉庫模型”4. 胖客戶模型和瘦客戶模型的區(qū)別是什么?它們分別被應(yīng)用在什么樣的場(chǎng)合?答:在胖客戶模型中,客戶端應(yīng)用負(fù)責(zé)用戶界面和
30、應(yīng)用邏輯部分,因此它的工作比較繁重。一般的數(shù)據(jù)庫應(yīng)用都是屬于這種結(jié)構(gòu)。而與此相反,在瘦客戶模型中,服務(wù)器負(fù)責(zé)了更多的工作,而客戶端的工作就變得非常單純。瀏覽器/Web服務(wù)器結(jié)構(gòu)就屬于瘦客戶結(jié)構(gòu),而且常被稱為B/S(Browser/Server)結(jié)構(gòu)。5.請(qǐng)舉出一種分布式模型的實(shí)例,并圖示它的結(jié)構(gòu)。答:請(qǐng)參考3。2.4“兩層C/S模型”6。請(qǐng)為一個(gè)公司的電子商務(wù)網(wǎng)站建設(shè)提出體系結(jié)構(gòu)設(shè)計(jì)方案。答:略。7。分布式對(duì)象模型與客戶服務(wù)器模型有什么異同?答:在C/S模型中,客戶和服務(wù)器的“地位”是不“平等”的:客戶只能向服務(wù)器提出服務(wù)請(qǐng)求,而服務(wù)器不能向客戶提出服務(wù)請(qǐng)求,同時(shí)服務(wù)器之間可以互相提供服務(wù).另
31、外,客戶一般要知道服務(wù)器在網(wǎng)絡(luò)上的具體位置(服務(wù)器的域名或者IP地址),相反,服務(wù)器則不需要。這種差別在一定程度上限制了系統(tǒng)的靈活性和可擴(kuò)展性。而在分布式對(duì)象結(jié)構(gòu)中,服務(wù)的提供者是被稱為“對(duì)象”(Object)的系統(tǒng)組件(System Component)。每個(gè)對(duì)象的地位在邏輯上是平等的,它們可以互相為對(duì)方提供所需的服務(wù).在這種情況下,提供服務(wù)的對(duì)象就是服務(wù)器,而提出服務(wù)請(qǐng)求的對(duì)象就是客戶。為了能夠提供服務(wù),每個(gè)對(duì)象都有一個(gè)服務(wù)接口。8。請(qǐng)查閱相關(guān)的資料,寫一篇對(duì)比CORBA和DCOM的報(bào)告。答:略。9。模塊分解的最終目的是什么?答:模塊分解的目的是將系統(tǒng)“分而治之”,以降低問題的復(fù)雜性,使軟
32、件結(jié)構(gòu)清晰,易閱讀、易理解,易于測(cè)試和調(diào)試,因而也有助于提高軟件的可靠性。10. 模塊分解應(yīng)該遵循什么樣的標(biāo)準(zhǔn)? 答:按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計(jì)總則對(duì)模塊進(jìn)行分解。具體從以下方面考慮:(1) 盡可能建立功能模塊;(2) 消除重復(fù)功能;(3) 模塊的作用范圍與控制范圍,即當(dāng)作用范圍為控制范圍的子集時(shí),才能獲得較低的塊間聯(lián)系;(4) 模塊的大小適當(dāng);(5) 模塊的扇入/扇出數(shù)不宜太多。也可以用軟件獨(dú)立性的兩個(gè)定性指標(biāo)來度量模塊分解的標(biāo)準(zhǔn):一是耦合性。用于描述模塊之間聯(lián)系的緊密程度。從三個(gè)方面衡量塊間聯(lián)系大小:方式 (直接或間接)類型(數(shù)據(jù)型、控制型、混合型)數(shù)量(數(shù)量越大,塊間聯(lián)系越
33、緊密。二是內(nèi)聚性。用于描述模塊內(nèi)部聯(lián)系的緊密程度。它是從功能的角度來度量模塊內(nèi)的聯(lián)系。顯然,塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強(qiáng),模塊獨(dú)立性愈好。功能型模塊獨(dú)立性最好。1117題答案略。習(xí)題四答案一、選擇題1。 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本機(jī)制是(ABC)。 A) 繼承 B) 消息 C) 方法 D) 結(jié)構(gòu)2。 下列屬于面向?qū)ο蟮囊赜?BCD)。A) 分類性 B) 抽象 C) 共享 D) 封裝3. 下列選項(xiàng)中屬于面向?qū)ο箝_發(fā)方法的有(ACD)。 A) Booch B) CAD C) Coad D) OMT4。 下列屬于Coad/Yourdon方法中面向?qū)ο蟮姆治瞿P偷膶哟斡?AB)。A) 主題層 B) 對(duì)象層
34、 C) 應(yīng)用層 D) 接口層5。 一個(gè)類屬性依其特征劃分,其類型有(ABCD)。 A) 描述型 B) 定義型 C) 派生型 D) 參考型6. 在進(jìn)行面向?qū)ο蠓治鰰r(shí),所采用的模型有(ABC). A) 對(duì)象模型 B) 動(dòng)態(tài)模型 C) 靜態(tài)模型 D) 功能模型7. 狀態(tài)是對(duì)象屬性的值的一種抽象,它的性質(zhì)有(AB)。A) 時(shí)間性 B) 持續(xù)性 C) 有序性 D) 有窮性8。 數(shù)據(jù)流圖中的處理必須用對(duì)象中的操作來實(shí)現(xiàn),常見的操作有(ABCD)。A) 查詢 B) 動(dòng)作 C) 活動(dòng) D) 訪問9。 建立繼承關(guān)系時(shí)所采用的方式有(AC)。 A) 自頂向下 B) 從內(nèi)到外 C) 自底向上 D) 從復(fù)雜到簡單10
35、. 對(duì)象是人們要研究的任何事物,主要的對(duì)象類型有(ABCD).A) 有形實(shí)體 B) 作用 C) 事件 D) 性能說明二、判斷題1. 面向?qū)ο蟮牡姆椒ㄊ且灶愖鳛樽罨镜脑?,它是分析問題和解決問題的核心。(×)2。 類是指具有相同或相似性質(zhì)對(duì)象的抽象,對(duì)象是抽象的類,類的具體化就是對(duì)象.(×) 3。 繼承性是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和消息的機(jī)制,這是類之間的一種關(guān)系(×)。4. 多態(tài)性增強(qiáng)了軟件的靈活性和重用性,允許用更為明確、易懂的方式去建立通用軟件,多態(tài)性和繼承性相結(jié)合使軟件具有更廣泛的重用性和可擴(kuò)充性。()5. 面向?qū)ο蠓治?,就是抽取和整理用戶需求并建立問題
36、域精確模型的過程。()6. 面向?qū)ο笤O(shè)計(jì)的主要目標(biāo)是提高生產(chǎn)效率,提高質(zhì)量和提高可維護(hù)性。()7。 對(duì)象模型表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來描述,表現(xiàn)了對(duì)象的相互關(guān)系.()8. 面向?qū)ο蟮姆治鍪怯妹嫦驅(qū)ο蟮姆椒▽?duì)目標(biāo)系統(tǒng)的問題域空間進(jìn)行理解、分析和反映。通過對(duì)象層次結(jié)構(gòu)的組織確定解空間中應(yīng)存在的對(duì)象和對(duì)象層次結(jié)構(gòu)。()9. 類的設(shè)計(jì)過程包括:確定類,確定關(guān)聯(lián)類,確定屬性,識(shí)別繼承關(guān)系。()10。 復(fù)用也叫重用或再用,面向?qū)ο蠹夹g(shù)中的“類”是比較理想的可重用軟構(gòu)件,它有三種重用方式:實(shí)例重用、繼承重用、多態(tài)重用。()11。 主題是一種關(guān)
37、于模型的抽象機(jī)制,它是面向?qū)ο竽P偷母琶?,也是關(guān)于某個(gè)模型要同時(shí)考慮和理解的內(nèi)容,主題起一種控制作用。()12。 面向?qū)ο蟮姆治鲇蓪?duì)象、結(jié)構(gòu)、繼承性和基于消息的通信構(gòu)成。(×)13。 支持繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言和傳統(tǒng)程序設(shè)計(jì)語言在語言機(jī)制方面的根本區(qū)別。()14. 面向?qū)ο蟮姆治鲞^程主要包括三項(xiàng)內(nèi)容:理解、表達(dá)和驗(yàn)證.()三、 簡答題1.消息傳遞機(jī)制與傳統(tǒng)程序設(shè)計(jì)模式中的過程調(diào)用相比,有何本質(zhì)區(qū)別?答:(1) 消息傳遞必須給出信道的信息,通常要指出明確的接收方。 (2) 由于接收方是一通信實(shí)體,具有保持狀態(tài)的能力,所以同一發(fā)送方在不同時(shí)刻向同一接收方發(fā)送同樣的信息,可因接收方的
38、當(dāng)前狀態(tài)不同而得到不同的結(jié)果。 (3) 消息傳遞可以是異步的,發(fā)送方可以不必等待接收方返回信息就可以繼續(xù)執(zhí)行后面的操作,因而支持程序的并發(fā)和分布執(zhí)行,而過程調(diào)用只能是同步的,本質(zhì)上是串行的。2比較面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的特點(diǎn),說明為什么面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。答:結(jié)構(gòu)化方法是以數(shù)據(jù)流和數(shù)據(jù)封閉性為基礎(chǔ)的,由SA、SD和 SP三部分構(gòu)成。該方法:無法實(shí)現(xiàn)從問題空間到解空間的直接映射.開發(fā)方法求解過程是先對(duì)應(yīng)用領(lǐng)域(問題空間)進(jìn)行分析,建立起問題空間的邏輯模型,再通過一系列復(fù)雜的轉(zhuǎn)換和算法,構(gòu)造計(jì)算機(jī)系統(tǒng),獲得解空間。無法實(shí)現(xiàn)高效的軟件復(fù)用。結(jié)構(gòu)化方法是面向過程的,將數(shù)據(jù)和處理過程(操
39、作)分離,不僅增加了軟件開發(fā)的難度,也難于支持軟件復(fù)用.開發(fā)方法難以實(shí)現(xiàn)從分析到設(shè)計(jì)的直接過渡,從SA到SD要經(jīng)過一系列復(fù)雜的變換。而面向?qū)ο蟮姆椒ㄒ詫?duì)象為核心,強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不是算法,盡量用符合人類認(rèn)識(shí)世界的思維方式來漸進(jìn)地分析、解決問題。使問題空間與解空間具有一致性,便于對(duì)軟件開發(fā)過程所有階段進(jìn)行綜合考慮,能有效地降低軟件開發(fā)的復(fù)雜度,提高軟件質(zhì)量。軟件開發(fā)各個(gè)階段有機(jī)集成,有利于系統(tǒng)的穩(wěn)定性。具有良好的重用性。面向?qū)ο蟮募夹g(shù)在利用可重用的軟件成分構(gòu)造新軟件系統(tǒng)上具有很大的靈活性,由于對(duì)象所具有的封裝性和信息隱蔽,使得對(duì)象的內(nèi)部實(shí)現(xiàn)與外界隔離,具有較強(qiáng)的獨(dú)立性。繼承性本身就是一
40、種重用機(jī)制。綜上,顯然面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。3 Coad/Yourdon方法主要有面向?qū)ο蠓治?OOA)和面向?qū)ο笤O(shè)計(jì)(OOD)。OOA概念模型由5個(gè)層次組成,請(qǐng)簡述這5個(gè)層次。答:OOA概念模型的5個(gè)層次分別是:(1) 發(fā)現(xiàn)類及對(duì)象。描述如何發(fā)現(xiàn)類及對(duì)象。從應(yīng)用領(lǐng)域開始識(shí)別類及對(duì)象,形成整 個(gè)應(yīng)用的基礎(chǔ),然后,據(jù)此分析系統(tǒng)的責(zé)任。(2) 識(shí)別結(jié)構(gòu)。該階段分為兩個(gè)步驟。第一,識(shí)別“一般特殊”結(jié)構(gòu),該結(jié)構(gòu)捕獲了識(shí)別出的類的層次結(jié)構(gòu);第二,識(shí)別“整體部分”結(jié)構(gòu),該結(jié)構(gòu)用來表示一個(gè)對(duì)象如何成為另一個(gè)對(duì)象的一部分,以及多個(gè)對(duì)象如何組裝成更大的對(duì)象。(3) 定義屬性。其中包括定義類的實(shí)例(對(duì)
41、象)之間的實(shí)例連接。(4) 定義服務(wù).其中包括定義對(duì)象之間的消息連接。(5) 定義主題。主題由一組類及對(duì)象組成,用于將類及對(duì)象模型劃分為更大的單位,以便于理解.4面向?qū)ο蟮姆治霭男┲饕顒?dòng)?所建立的分析模型包括哪些類型的模型?答:面向?qū)ο蟮姆治鲞^程分為論域分析和應(yīng)用分析.論域分析過程是抽取和整理用戶需求并建立問題域精確模型的過程。應(yīng)用分析是將論域分析建立起來的問題論域模型,用某種基于計(jì)算機(jī)系統(tǒng)的語言來描述。面向?qū)ο蟮姆治鼍唧w包括以下活動(dòng):獲取用戶基本需求。通常使用用例(User Case)來收集和描述。標(biāo)識(shí)類和對(duì)象。包括標(biāo)識(shí)類及對(duì)象的屬性和操作。定義類的結(jié)構(gòu)和層次。通常有一般與特殊 (Ge
42、neralizationSpecialization)結(jié)構(gòu),整體與部分(WholePart)結(jié)構(gòu)。 建立類(對(duì)象)之間的關(guān)系,用“對(duì)象-關(guān)系模型"描述系統(tǒng)的靜態(tài)結(jié)構(gòu). 建立對(duì)象行為模型,描述系統(tǒng)的動(dòng)態(tài)行為.所建立的分析模型包括:基本模型。是一個(gè)類圖(class diagram),是以直觀的方式表達(dá)系統(tǒng)最重要的信息。OOA基本模型的三個(gè)層次分別描述了:系統(tǒng)中應(yīng)設(shè)哪幾類對(duì)象,每類對(duì)象的內(nèi)部構(gòu)成,對(duì)象與外部的關(guān)系。主題圖(subject)。又稱為子系統(tǒng)(subsystem),是將一些聯(lián)系密切的類組織在一起的類的集合.按照粒度控制原則,將系統(tǒng)組成幾個(gè)主題,便于理解。交互圖(interacti
43、on diagram) 是用例與系統(tǒng)成分之間的對(duì)照?qǐng)D。主題圖和交互圖又稱為補(bǔ)充模型.5面向?qū)ο笤O(shè)計(jì)的主要任務(wù)是什么?答:面向?qū)ο蟮脑O(shè)計(jì)(Object-Oriented Design,OOD)是面向?qū)ο箝_發(fā)方法(OOSD)的核心階段。是在OOA的基礎(chǔ)上解決系統(tǒng)“如何做"的問題。主要任務(wù)包括:系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)的任務(wù)包括:將分析模型中緊密相關(guān)的類劃分為若干子系統(tǒng)(也稱為主題),子系統(tǒng)應(yīng)該具有良好的接口,子系統(tǒng)中的類相互協(xié)作;標(biāo)識(shí)問題本身的并發(fā)性,將各子系統(tǒng)分配給處理器,建立子系統(tǒng)之間的通信。對(duì)象設(shè)計(jì)通過對(duì)象的認(rèn)定和對(duì)象層次結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的對(duì)象和對(duì)象層次結(jié)構(gòu),并確定外部接口
44、和主要的數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)優(yōu)化對(duì)設(shè)計(jì)進(jìn)行優(yōu)化,主要涉及提高效率的技術(shù)和建立良好的繼承結(jié)構(gòu)的方法。6為什么面向?qū)ο蟮姆椒軌蛴行У亟鉀Q軟件需求中存在的問題?需求過程中存在兩大難題,一是需求的確定是困難的,二是需求是不斷變動(dòng)的。尤其是對(duì)于一些大型軟件系統(tǒng),開發(fā)周期長,系統(tǒng)規(guī)模大,復(fù)雜性高.面向?qū)ο蟮姆椒ㄖ?,由于?duì)象所具有的封裝性和信息隱蔽,使得對(duì)象的內(nèi)部實(shí)現(xiàn)與外界隔離,具有較強(qiáng)的獨(dú)立性.而且面向?qū)ο蟮姆椒ㄊ且詫?duì)象為中心構(gòu)造軟件系統(tǒng),而不是基于對(duì)系統(tǒng)功能進(jìn)行分解來構(gòu)造系統(tǒng),當(dāng)系統(tǒng)功能需求改變時(shí)不會(huì)引起系統(tǒng)結(jié)構(gòu)的變化,使軟件系統(tǒng)具有良好的穩(wěn)定性和可適應(yīng)性。軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性
45、,對(duì)軟件開發(fā)過程所有階段進(jìn)行綜合考慮,能有效地降低軟件開發(fā)的復(fù)雜度,提高軟件質(zhì)量,也便于需求的確定.7。 OMT方法明確提出了建模的概念,為什么在軟件開發(fā)過程中需要進(jìn)行建模?答:OMT方法從不同而又相關(guān)的角度建立三類模型:對(duì)象模型、動(dòng)態(tài)模型和函數(shù)模型,并為每一類模型提供了圖形表示。軟件模型一般包括數(shù)學(xué)模型、描述模型和圖形模型.在軟件開發(fā)過程中進(jìn)行建模,一是由于軟件系統(tǒng)的復(fù)雜性和規(guī)模的不斷增大,需要建立不同的模型對(duì)系統(tǒng)的各個(gè)層次更好地進(jìn)行描述。模型具有的直觀性及豐富的信息描述,便于開發(fā)人員與用戶的交流.建立的模型為以后的系統(tǒng)維護(hù)和升級(jí)提供了文檔。鑒于上述原因,在軟件開發(fā)過程中建模,能夠提高軟件開
46、發(fā)的效率和質(zhì)量。8為什么說面向?qū)ο蟮姆椒檐浖?fù)用提供了良好的環(huán)境?答:軟件復(fù)用是將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng),以達(dá)到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率,降低開發(fā)成本的目的.復(fù)用的軟件成分也稱為可復(fù)用構(gòu)件(Reusable Component)。對(duì)可復(fù)用組件一般有以下的要求:具有功能上的獨(dú)立性與完整性;具有較高的通用性;具有較高的靈活性;具有嚴(yán)格的質(zhì)量保證;具有較高的標(biāo)準(zhǔn)化程度。面向?qū)ο蟮姆椒▽?duì)復(fù)用的支持主要反映在:面向?qū)ο蠓椒梢员Wo(hù)在整個(gè)軟件生存周期概念、原則、術(shù)語及表示法達(dá)到高度一致。這使面向?qū)ο蠓椒ú坏茉诟鱾€(gè)級(jí)別支持軟件復(fù)用,而且能對(duì)各個(gè)級(jí)別的復(fù)用形成統(tǒng)一、高效的支持,達(dá)到良好的全
47、局效果。OOA基本模型體現(xiàn)了更高的抽象,更容易成為一個(gè)可復(fù)用的系統(tǒng)構(gòu)架。所有的對(duì)象都用類作為其抽象描述。類作為一種可復(fù)用構(gòu)件,在運(yùn)用于不同系統(tǒng)時(shí),不會(huì)出現(xiàn)因該類對(duì)象實(shí)例不同而使系統(tǒng)模型有所不同的情況。所以面向?qū)ο蠓椒ǖ闹饕拍罴霸瓌t與軟件復(fù)用的要求十分吻合。OO方法中的對(duì)象和類是系統(tǒng)的基本構(gòu)成單位,它符合可復(fù)用構(gòu)件所應(yīng)具備的那些特性,如完整性、獨(dú)立性、可標(biāo)識(shí)性、一般性、抽象、封裝等.尤其是面向?qū)ο蠓椒ǖ膶?duì)象封裝性,為軟件復(fù)用技術(shù)提供了良好的條件。而繼承機(jī)制本質(zhì)上就是一種復(fù)用機(jī)制,因此面向?qū)ο蠓椒檐浖?fù)用提供了一個(gè)良好的環(huán)境。習(xí)題五答案一、選擇題1. 下列不是模型元素的是(D).A) 關(guān)聯(lián) B
48、) 聚合 C) 依賴 D) 筆記2. UML具有擴(kuò)展性,常見的擴(kuò)展機(jī)制有(BCD)。A) 修飾 B) 版類 C) 加標(biāo)簽值 D) 約束3。 UML語言支持的建模方式有(ABD)。A) 靜態(tài)建模 B) 動(dòng)態(tài)建模 C) 模塊化建模 D) 功能建模4。 下列各種圖可用于動(dòng)態(tài)建模的有(ACD)。A) 狀態(tài)圖 B) 類圖 C) 序列圖 D) 活動(dòng)圖5。 下列屬于狀態(tài)的組成部分的有(AB)。A) 名稱 B) 活動(dòng) C) 條件 D) 事件6。 UML中包括的事件有(ABCD)。A) 條件為真 B) 收到另一對(duì)象的信號(hào)C) 收到操作調(diào)用 D) 時(shí)間表達(dá)式7. 屬性的可見性有(ABD)。A) 公有的 B) 私有
49、的 C) 私有保護(hù)的 D) 保護(hù)的8. 用例之間的關(guān)系有(BCD)。A) 友元 B) 擴(kuò)展 C) 使用 D) 組合9。 應(yīng)用于通用化約束的方式有(ABCD)。A) 完整 B) 不相交 C) 不完整 D) 覆蓋10. 消息的類型有(ABC)A) 同步 B) 異步 C) 簡單 D) 復(fù)雜二、 判斷題1。 UML建模語言是由視圖、圖、模型元素和通用機(jī)制構(gòu)成的層次關(guān)系來描述的。 ()2。 UML是一種建模語言,是一種標(biāo)準(zhǔn)的表示,是一種方法. (×)3。 泳道是一種分組機(jī)制,它描述了狀態(tài)圖中對(duì)象所執(zhí)行的活動(dòng). (×)4. 同步消息和異步消息的主要區(qū)別是:同步消息的發(fā)送對(duì)象在消息發(fā)送后
50、,不必等待消息處理,可立即繼續(xù)執(zhí)行,而異步消息則發(fā)送對(duì)象必須等待接收對(duì)象完成消息處理后,才能繼續(xù)執(zhí)行.(×) 5. 類圖中的角色是用于描述該類在關(guān)聯(lián)中所扮演的角色和職責(zé)的。 () 6. 類圖用來表示系統(tǒng)中類和類與類之間的關(guān)系,它是對(duì)系統(tǒng)動(dòng)態(tài)結(jié)構(gòu)的描述。 (×) 7. 用例模型的基本組成部件是用例、角色和用例之間的聯(lián)系。 ()8. 用例之間有擴(kuò)展、使用、組合等幾種關(guān)系。 ()9。 順序圖描述對(duì)象之間的交互關(guān)系,重點(diǎn)描述對(duì)象間消息傳遞的時(shí)間順序. ()10. 活動(dòng)圖顯示動(dòng)作及其結(jié)果,著重描述操作實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或類中的活動(dòng)。(×)三、 簡答題1。 以圖1
51、(一個(gè)在學(xué)校首次報(bào)名的 UML 活動(dòng)圖)為例,說明如何繪制活動(dòng)圖.圖1 學(xué)校首次報(bào)名的UML活動(dòng)圖答:要?jiǎng)?chuàng)建一個(gè)UML活動(dòng)圖,需要反復(fù)執(zhí)行下列步驟.(1) 定義活動(dòng)圖的范圍。首先應(yīng)該確定建模的范圍,是對(duì)整個(gè)系統(tǒng)建模,還是一個(gè)子系統(tǒng).一旦定義了作圖的范圍,應(yīng)該在其頂部,用一個(gè)注釋指明該圖的標(biāo)題和惟一的標(biāo)識(shí)符,還可標(biāo)注該圖的時(shí)間及作者姓名.本題的建模范圍是一個(gè)學(xué)校管理系統(tǒng)中的“報(bào)名”部分。(2) 添加活動(dòng)。活動(dòng)是活動(dòng)圖的核心,活動(dòng)是完成系統(tǒng)任務(wù)所必須執(zhí)行的處理步驟.可從用例模型出發(fā),對(duì)每個(gè)角色(actor)所驅(qū)動(dòng)的主要用例引入一個(gè)活動(dòng),如果是對(duì)整個(gè)系統(tǒng)建模,應(yīng)對(duì)每個(gè)主要流程引入一個(gè)活動(dòng).在“報(bào)名”
52、的活動(dòng)圖中確定了“Fill out enrollment ”(填寫報(bào)名表)、“Enroll in university"(登記入學(xué))、“Obtain help to fill out forms”(幫助填寫報(bào)名表)、“Attend university overview presentation”(參加介紹學(xué)校會(huì)議)等6個(gè)活動(dòng)。(3) 添加起點(diǎn)和結(jié)束點(diǎn)。每個(gè)活動(dòng)圖只能有一個(gè)起始點(diǎn)和多個(gè)結(jié)束點(diǎn),結(jié)束點(diǎn)可以是所有活動(dòng)的結(jié)束,也可以是對(duì)執(zhí)行過程的終止。(4) 添加活動(dòng)間的轉(zhuǎn)變。當(dāng)一個(gè)活動(dòng)結(jié)束時(shí)將進(jìn)入下一個(gè)活動(dòng),稱為活動(dòng)轉(zhuǎn)移??蓸?biāo)明活動(dòng)轉(zhuǎn)移的條件、引起活動(dòng)轉(zhuǎn)移的事件。如活動(dòng)“填寫報(bào)名表”有兩
53、個(gè)活動(dòng)轉(zhuǎn)移,當(dāng)填寫報(bào)名表不正確時(shí),則轉(zhuǎn)移到活動(dòng)“幫助填寫報(bào)名表”;當(dāng)填寫正確時(shí),則轉(zhuǎn)移到活動(dòng)“登記入學(xué) ”。(5) 添加判斷點(diǎn)。當(dāng)對(duì)建模的邏輯需要做出一個(gè)判斷時(shí),需要添加判斷點(diǎn)。例如,在圖1中 ,在“Enroll in university”活動(dòng)之后,還必須按照入學(xué)條件進(jìn)行判斷,滿足條件的繼續(xù)執(zhí)行入學(xué)報(bào)到的活動(dòng),而不滿足入學(xué)條件的則結(jié)束。(6) 找出并行活動(dòng).若兩個(gè)活動(dòng)間沒有直接的聯(lián)系,而且它們都必須在第三個(gè)活動(dòng)開始前結(jié)束,則它們是可以并行運(yùn)行的.在圖1中,用同步線描述系統(tǒng)任務(wù)中的并發(fā)活動(dòng),活動(dòng)“Attend university overview presentation”(參加介紹學(xué)校會(huì)議
54、)和“Enroll in seminars" (注冊(cè)研討班)及“Make initial tuition payment”(交付初始的學(xué)費(fèi))可并行執(zhí)行,使用同 步線表示它們都要在結(jié)束整個(gè)流程前完成。2. 簡述擴(kuò)展、包含和細(xì)化三種UML依賴關(guān)系的異同。答:擴(kuò)展、包含和細(xì)化都是描述了元素之間的依賴關(guān)系,但具體含義不同。擴(kuò)展(extend)關(guān)系是對(duì)基本用例在對(duì)某些“擴(kuò)展點(diǎn)”的功能的增加。通過向被擴(kuò)展的用例添加動(dòng)作來擴(kuò)展用例。包含(include)關(guān)系表示一個(gè)元素為了實(shí)現(xiàn)或完成其全部的功能,需要用到已存在的另一個(gè)模型元素,本質(zhì)上是一種使用關(guān)系。細(xì)化關(guān)系是不同語義層(如分析和設(shè)計(jì))之間模型元素的依賴關(guān)系,表示一個(gè)元素對(duì)另一個(gè)因此細(xì)化關(guān)系可描述的語義范圍較廣,包括模型的逐步細(xì)化、優(yōu)化、變換、模板、模型合成、框架組成等。3. 軟件開發(fā)為什么要使用UML建模?它有何特點(diǎn)?答:軟件開發(fā)的過程猶如雕琢一件工藝品,由無形到有形,由粗到細(xì)。鑒于軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管網(wǎng)地上敷設(shè)張志英課件
- 河北科技大學(xué)《工程問題C++語言求解》2023-2024學(xué)年第二學(xué)期期末試卷
- 鶴崗師范高等??茖W(xué)校《學(xué)術(shù)寫作及文獻(xiàn)檢索》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆田家庵區(qū)小升初數(shù)學(xué)自主招生備考卷含解析
- 江西婺源茶業(yè)職業(yè)學(xué)院《臨床分子生物學(xué)檢驗(yàn)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 博爾塔拉蒙古自治州2025屆四下數(shù)學(xué)期末質(zhì)量檢測(cè)試題含解析
- 河北司法警官職業(yè)學(xué)院《FORTRAN語言程序設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京藝術(shù)學(xué)院《田間試驗(yàn)方法與技能田間》2023-2024學(xué)年第二學(xué)期期末試卷
- 輕奢生活方式的新寵-走進(jìn)時(shí)尚健康領(lǐng)域里的傳統(tǒng)中醫(yī)藥養(yǎng)生之宴
- 金融行業(yè)如何利用視頻進(jìn)行品牌傳播
- 海洋工程裝備技術(shù)專業(yè)人才培養(yǎng)方案(高職)
- 天然氣培訓(xùn)課件
- 浙江杭州余杭區(qū)余杭街道招考聘用編外人員16人(必考題)模擬卷及答案
- 腹腔穿刺術(shù)(僅供參考)課件
- 教學(xué)課件:《新能源材料技術(shù)》朱繼平
- 人教版部編七年級(jí)下冊(cè)語文必背古詩文言文
- 2022年七年級(jí)初一數(shù)學(xué)希望杯競賽模擬真題含答案27屆
- 自動(dòng)駕駛數(shù)據(jù)安全白皮書
- 工期定額-民用建筑
- 2020新版?zhèn)€人征信報(bào)告模板
- 云南省實(shí)驗(yàn)教材信息技術(shù)三年級(jí)第一冊(cè)第13課PPT課件
評(píng)論
0/150
提交評(píng)論