軟件工程理論與實(shí)踐許家珆習(xí)題答案_第1頁(yè)
軟件工程理論與實(shí)踐許家珆習(xí)題答案_第2頁(yè)
軟件工程理論與實(shí)踐許家珆習(xí)題答案_第3頁(yè)
軟件工程理論與實(shí)踐許家珆習(xí)題答案_第4頁(yè)
軟件工程理論與實(shí)踐許家珆習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí) 題 答 案習(xí)題一答案     一、選擇題     1. 軟件的主要特性是(A B C)。 A) 無(wú)形                   B) 高成本     C) 包括程序和文檔D) 可獨(dú)立構(gòu)成計(jì)算機(jī)系統(tǒng)     2. 軟件工程三要素是(C D)。

2、60;    A) 技術(shù)、方法和工具B) 方法、工具和過(guò)程     C) 方法、對(duì)象和類 D) 過(guò)程、模型、方法     3. 包含風(fēng)險(xiǎn)分析的軟件工程模型是(A)。     A) 螺旋模型       B) 瀑布模型        C) 增量模型      D) 噴泉模

3、型     4. 軟件工程的主要目標(biāo)是(C)。     A) 軟件需求 B) 軟件設(shè)計(jì) C) 風(fēng)險(xiǎn)分析 D) 軟件實(shí) 現(xiàn)     5. 下列屬于面向?qū)ο箝_(kāi)發(fā)方法的是(A B C D)。     A) Booch B) UML C) Coad D) OMT     6. 軟件危機(jī)的主要表現(xiàn)是(B D)。     A) 軟件成本太高B) 軟件產(chǎn)品的質(zhì)量低劣

4、60;    C) 軟件開(kāi)發(fā)人員明顯不足 D) 軟件生產(chǎn)率低下     7. 軟件開(kāi)發(fā)方法的主要工作模型有(A B C)     A) 螺旋模型 B) 循環(huán)模型 C) 瀑布模型 D) 專家模型     8. 軟件工程的目標(biāo)有(A B C)。     A) 易于維護(hù) B) 低的開(kāi)發(fā)成本 C) 高性能 D) 短的開(kāi)發(fā)期     9. 軟件工程學(xué)的目的和意義是( 

5、)。     A) 應(yīng)用科學(xué)的方法和工程化的規(guī)范管理來(lái)指導(dǎo)軟件開(kāi)發(fā)     B) 克服軟件危機(jī)     C) 作好軟件開(kāi)發(fā)的培訓(xùn)工作     D) 以較低的成本開(kāi)發(fā)出高質(zhì)量的軟件     二、 判斷題     1. 軟件就是程序,編寫(xiě)軟件就是編寫(xiě)程序。(×)     2. 瀑布模型的最大優(yōu)點(diǎn)是將軟件開(kāi)發(fā)的各個(gè)

6、階段劃分得十分清晰。(×)     3. 結(jié)構(gòu)化方法的工作模型是使用螺旋模型進(jìn)行開(kāi)發(fā)。(×)     4. 結(jié)構(gòu)化方法和JSP方法都不適合于大型軟件的開(kāi)發(fā)。()     5. 原型化開(kāi)發(fā)方法包括生成原型和實(shí)現(xiàn)原型兩個(gè)步驟。(×)     6. 面向?qū)ο蟮拈_(kāi)發(fā)方法包括面向?qū)ο蟮姆治?、面向?qū)ο蟮脑O(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)。( )     7. 軟件危機(jī)的主要表現(xiàn)是軟件的需求

7、量迅速增加,軟件價(jià)格上升。(×)     8. 軟件工具的作用是為了延長(zhǎng)軟件產(chǎn)品的壽命。(×)     9. 軟件工程過(guò)程應(yīng)該以軟件設(shè)計(jì)為中心,關(guān)鍵是編寫(xiě)程序。(×)     10. RCP法與RSP法的主要區(qū)別是前者采用循環(huán)漸進(jìn)的開(kāi)發(fā)方式,原型將成為最終的產(chǎn)品,而后者將被廢棄。()     三、簡(jiǎn)答題     1. 軟件產(chǎn)品的特性是什么?  &#

8、160;  答: 軟件是一種邏輯產(chǎn)品,具有無(wú)形性;軟件產(chǎn)品的生產(chǎn)主要是研制;軟件不存在磨損和老化問(wèn)題,但存在退化問(wèn)題;軟件產(chǎn)品的生產(chǎn)主要是腦力勞動(dòng);軟件產(chǎn)品的成本非常昂貴,其開(kāi)發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式; 軟件具有“復(fù)雜性”,其開(kāi)發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制。     2. 軟件發(fā)展有幾個(gè)階段?各有何特征?     答: 程序設(shè)計(jì)階段。硬件特征:價(jià)格貴、存儲(chǔ)容量小、運(yùn)行可靠性差。軟件特征:只有程序、程序設(shè)計(jì)概念,不重視程序設(shè)計(jì)方法。 程序系統(tǒng)階段。硬件特征:速度、容量及工作可靠性有明顯提高,價(jià)格

9、降低,銷售有爆炸性增長(zhǎng) 。軟件特征:程序員數(shù)量猛增,開(kāi)發(fā)人員素質(zhì)低。 軟件工程階段。硬件特征:向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展。軟件特征:開(kāi)發(fā)技術(shù)有很大進(jìn)步,但未獲得突破性進(jìn)展,軟件價(jià)格不斷上升,未完全擺脫軟件危機(jī)。      3. 什么是軟件危機(jī)?其產(chǎn)生的原因是什么?     答:“軟件危機(jī)”(Software Crisis)的出現(xiàn)是由于軟件的規(guī)模越來(lái)越大,復(fù)雜度不斷增 加,軟件需求量增大。而軟件開(kāi)發(fā)過(guò)程是一種高密集度的腦力勞動(dòng),軟件開(kāi)發(fā)的模式及技術(shù) 不能適應(yīng)軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場(chǎng)

10、,有的花費(fèi)大量人力、財(cái)力, 而在開(kāi)發(fā)過(guò)程中就夭折。軟件危機(jī)主要表現(xiàn)在兩個(gè)方面:      (1) 軟件產(chǎn)品質(zhì)量低劣,甚至開(kāi)發(fā)過(guò)程就夭折。     (2) 軟件生產(chǎn)率低,不能滿足需要。     4. 什么是軟件生存周期模型?它有哪些主要模型?     答:軟件生存周期模型是描述軟件開(kāi)發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型。 主要模型包括:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識(shí)的模型。    

11、60; 5. 有哪些主要的軟件開(kāi)發(fā)方法?     答:主要的軟件開(kāi)發(fā)方法有:結(jié)構(gòu)化開(kāi)發(fā)方法、Jackson(JSP、JSD)方法、原型化開(kāi)發(fā)方 法、維也納開(kāi)發(fā)方法(VDM)和面向?qū)ο蟮拈_(kāi)發(fā)方法。     6. 軟件生命期各階段的任務(wù)是什么?     答:軟件生命期瀑布模型分為六個(gè)階段:     可行性研究與計(jì)劃(確定系統(tǒng)的目標(biāo)和規(guī)模,分析項(xiàng)目的可行性);     需求分析與規(guī)格說(shuō)明(明確系統(tǒng)的規(guī)格

12、和要求);     設(shè)計(jì)(包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將系統(tǒng)分解為模塊);     編程(用程序語(yǔ)言實(shí)現(xiàn)每個(gè)模塊,簡(jiǎn)單容易);     測(cè)試(發(fā)現(xiàn)并改正錯(cuò)誤,分為模塊測(cè)試、集成測(cè)試和系統(tǒng)聯(lián)調(diào)三級(jí));     運(yùn)行維護(hù)(擴(kuò)充功能、糾錯(cuò)等)。     習(xí)題二答案一、 選擇題     1. 需求分析的主要目的是( )。    

13、A) 系統(tǒng)開(kāi)發(fā)的具體方案     B) 進(jìn)一步確定用戶的需求     C) 解決系統(tǒng)是“做什么的問(wèn)題”     D) 解決系統(tǒng)是“如何做的問(wèn)題”     2. 需求分析的主要方法有( )。     A) 形式化分析方法 B) PAD圖描述     C) 結(jié)構(gòu)化分析(SA)方法 D) OOA法     3. 面向?qū)ο蟮姆?/p>

14、析方法主要是建立三類模型,即()。     A) 系統(tǒng)模型、ER模型、應(yīng)用模型     B) 對(duì)象模型、動(dòng)態(tài)模型、應(yīng)用模型     C) -模型、對(duì)象模型、功能模型     D) 對(duì)象模型、動(dòng)態(tài)模型、功能模型     4. 法的主要描述手段有()。     A) 系統(tǒng)流程圖和模塊圖     B) 圖、數(shù)據(jù)詞典、加工說(shuō)明

15、     C) 軟件結(jié)構(gòu)圖、加工說(shuō)明     D) 功能結(jié)構(gòu)圖、加工說(shuō)明     5. 畫(huà)分層圖的基本原則有( )。     A) 數(shù)據(jù)守恒原則     B) 分解的可靠性原則     C) 子、父圖平衡的原則     D) 數(shù)據(jù)流封閉的原則     6. 在E-R模型中,包含以

16、下基本成分(C)。     A) 數(shù)據(jù)、對(duì)象、實(shí)體     B) 控制、聯(lián)系、對(duì)象     C) 實(shí)體、聯(lián)系、屬性     D) 實(shí)體、屬性、聯(lián)系     7. 畫(huà)DFD圖的主要目的是(A D)。     A) 作為需求分析階段用戶與開(kāi)發(fā)者之間交流信息的工具     B) 對(duì)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述  

17、;   C) 對(duì)目標(biāo)系統(tǒng)的層次結(jié)構(gòu)進(jìn)行描述     D) 作為分析和設(shè)計(jì)的工具     8. 數(shù)據(jù)字典是數(shù)據(jù)流圖中所有元素的定義的集合,一般由以下四類條目組成(C)。     A) 數(shù)據(jù)說(shuō)明條目、控制流條目、加工條目、數(shù)據(jù)存儲(chǔ)條目     B) 數(shù)據(jù)流條目、數(shù)據(jù)項(xiàng)條目、文件條目、加工條目     C) 數(shù)據(jù)源條目、數(shù)據(jù)流條目、數(shù)據(jù)處理?xiàng)l目、數(shù)據(jù)文件條目  &

18、#160;  D) 數(shù)據(jù)流條目、數(shù)據(jù)文件條目、數(shù)據(jù)池條目、加工條目      9. 在需求分析階段主要采用圖形工具來(lái)描述的原因是(B C)。     A) 圖形的信息量大,便于描述規(guī)模大的軟件系統(tǒng)     B) 圖形工具能夠極好地概括描述一個(gè)系統(tǒng)的信息,比文字?jǐn)⑹瞿軌蚋玫乇磉_(dá)重 要的細(xì)節(jié)     C) 圖形能夠更加直觀地描述目標(biāo)系統(tǒng),便于用戶理解和交流,有利于開(kāi)發(fā)者與用 戶之間達(dá)成一致的需求   

19、;  D) 圖形比文字描述簡(jiǎn)單、形象     二、 判斷題     1. 在進(jìn)行了可行性分析后,需求分析就只需要解決目標(biāo)系統(tǒng)的設(shè)計(jì)方案。(×)     2. 法是面向數(shù)據(jù)流,建立在數(shù)據(jù)封閉原則上的需求分析方法。()     3. HIPO法既是需求分析方法,又是軟件設(shè)計(jì)方法。()     4. 在面向?qū)ο蟮男枨蠓治龇椒ㄖ校?dòng)態(tài)模型是最主要的任務(wù)。(×) 

20、    5. 加工小說(shuō)明是對(duì)系統(tǒng)流程圖中的加工進(jìn)行說(shuō)明。(×)     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ù)的角度來(lái)建立信息模型的,最常用的描

21、述信息模型的方法是E-R 圖。()     10. 用于需求分析的軟件工具,應(yīng)該能夠保證需求的正確性,即驗(yàn)證需求的一致性、完整性、現(xiàn)實(shí)性和有效性。()     三、 問(wèn)答題     1. 什么是需求分析?需求分析階段的基本任務(wù)是什么?     答:     需求分析是當(dāng)前軟件工程中的關(guān)鍵問(wèn)題,需求分析階段的任務(wù)是:在可行性分析的基礎(chǔ)上,進(jìn)一步了解、確定用戶需求。準(zhǔn)確地回答 “系統(tǒng)必須做什么?” 的

22、問(wèn)題。獲得需求規(guī)格說(shuō) 明書(shū)。還涉及到軟件系統(tǒng)的目標(biāo)、軟件系統(tǒng)提供的服務(wù)、軟件系統(tǒng)的約束和軟件系統(tǒng)運(yùn)行的環(huán)境。它還涉及到這些因素和系統(tǒng)的精確規(guī)格說(shuō)明,以及系統(tǒng)進(jìn)化之間的關(guān)系。     需求分析的基本任務(wù)包括:     (1) 抽取需求 分析現(xiàn)行系統(tǒng)存在需要解決的問(wèn)題。獲取足夠多的問(wèn)題領(lǐng)域的知識(shí),需求抽取的方法一般有問(wèn)卷法、面談法、數(shù)據(jù)采集法、用例法、情景實(shí)例法以及基于目標(biāo)的方法等;還有知識(shí)工程方法,例如,場(chǎng)記分析法、卡片分類法、分類表格技術(shù)和基于模型的知識(shí)獲取等 。   

23、60; (2) 模擬和分析需求 需求分析和模擬又包含三個(gè)層次的工作。首先是需求建模。需求模型的表現(xiàn)形式有自然語(yǔ)言、半形式化(如圖、表、結(jié)構(gòu)化英語(yǔ)等)和形式化表示等三種。需求概念模型的要求包括實(shí)現(xiàn)的獨(dú)立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等;需求模擬技術(shù)又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。     (3) 傳遞需求 傳遞需求的主要任務(wù)是書(shū)寫(xiě)軟件需求規(guī)格說(shuō)明。     (4) 認(rèn)可需求 就是對(duì)需求規(guī)格說(shuō)明達(dá)成一致,其主要任務(wù)是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法

24、有:協(xié)商、競(jìng)爭(zhēng)、仲裁、強(qiáng)制、教育等,其中有些只能用人的因素去控制。     (5) 進(jìn)化需求 客戶的需要總是不斷(連續(xù))地增長(zhǎng),但是一般的軟件開(kāi)發(fā)又總是落后于客戶需求的增長(zhǎng),如何管理需求的進(jìn)化(變化)就成為軟件進(jìn)化的首要問(wèn)題。對(duì)于傳統(tǒng)的變化管理過(guò)程來(lái)說(shuō),其基本成分包括軟件配置、軟件基線和變化審查小組。當(dāng)前的發(fā)展是軟件家族法 ,即產(chǎn)品線方法。多視點(diǎn)方法也是管理需求變化的一種新方法,它可以用于管理不一致性, 并進(jìn)行關(guān)于變化的推理。     2. M公司的軟件產(chǎn)品以開(kāi)發(fā)實(shí)驗(yàn)型的新軟件為主。用瀑布模型進(jìn)行軟件開(kāi)發(fā)

25、已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理員剛加入M公司,你認(rèn)為快速原型法對(duì)公司的軟件開(kāi)發(fā)更加優(yōu)越,請(qǐng)向公司副總裁寫(xiě)一份報(bào)告闡明你的理由,切記:副總裁不喜歡報(bào)告長(zhǎng)度 超過(guò)一頁(yè)(B5)。     參考答案提示:     應(yīng)先簡(jiǎn)述瀑布模型的缺點(diǎn),它已不適宜開(kāi)發(fā)實(shí)驗(yàn)型的軟件。根據(jù)快速原型法的特點(diǎn),說(shuō)明它特別適合于開(kāi)發(fā)探索型、實(shí)驗(yàn)型的軟件。     3. 如何畫(huà)分層數(shù)據(jù)流圖?     答:    

26、 總的原則是:至頂而下,逐層分解(畫(huà)分層數(shù)據(jù)流圖)。     比較復(fù)雜的系統(tǒng)不能畫(huà)在一張紙上,逐層分解的畫(huà)法可以控制每一層的復(fù)雜度。     頂層:將整個(gè)系統(tǒng)作為一個(gè)加工,描述系統(tǒng)邊界(輸入與輸出)。     中間層:表示某個(gè)加工分解為一組子加工,其中的子加工還需進(jìn)一步分解。     底層:由不再進(jìn)行分解的基本加工組成。     4. 加工小說(shuō)明有哪些描述方法?   

27、  答:     結(jié)構(gòu)化語(yǔ)言:介于自然語(yǔ)言和形式語(yǔ)言(如謂詞邏輯)之間。     結(jié)構(gòu)化英語(yǔ):通常由外層和內(nèi)層結(jié)構(gòu)組成。     漢語(yǔ)的情況:精確、簡(jiǎn)明扼要、文體可以靈活。     判定表:適用于表述比較復(fù)雜的加工邏輯,如具有多項(xiàng)選擇條件的操作。     判定樹(shù):本質(zhì)上與判定表相同,圖形表示更易于理解。     5. 考察下圖中子圖、父圖的平衡。&

28、#160;    圖1圖2參考答案:     顯然,圖1中子圖與父圖不平衡。改正如下:     如果有如下數(shù)據(jù)條目:     訂貨單=客戶+賬號(hào)+數(shù)量  則子、父圖平衡     6. 畫(huà)出銀行取款過(guò)程的DFD圖。問(wèn)題描述為:儲(chǔ)戶用存折取款,首先填寫(xiě)取款單,根據(jù)“ 賬卡”中的信息檢驗(yàn)取款單與存折,如有問(wèn)題,將問(wèn)題反饋給儲(chǔ)戶,否則,登錄“儲(chǔ)戶存款 數(shù)據(jù)庫(kù)”,修改相應(yīng)數(shù)據(jù),并更新“賬卡”,同時(shí)

29、發(fā)出付款通知,出納向儲(chǔ)戶付款。     參考答案:        7. 常用的軟件需求分析方法有哪些?     答: 結(jié)構(gòu)化分析方法(SA)、功能分解法、信息建模法、面向?qū)ο蟮姆治龇椒?OOA)。     習(xí)題三答案     一、 選擇題     1. 模塊的基本特征是(A C)。     A) 外

30、部特征(輸入/輸出、功能) B) 內(nèi)部特征(輸入/輸出、功能)      C) 內(nèi)部特征(局部數(shù)據(jù)、代碼) D) 外部特征(局部數(shù)據(jù)、代碼 )     2. SD方法的設(shè)計(jì)總則是(C D)。     A) 程序簡(jiǎn)潔、操作方便B) 結(jié)構(gòu)清晰、合理     C) 模塊內(nèi)聚性強(qiáng) D) 模塊之間耦合度低     3. 軟件設(shè)計(jì)的主要任務(wù)是(A B D)。     A

31、) 將分析階段獲得的需求說(shuō)明轉(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)部的過(guò)程進(jìn)行設(shè)計(jì)     4. 設(shè)計(jì)階段應(yīng)達(dá)到的目標(biāo)有( )。     A) 提高可靠性和可維護(hù)性 B) 提高應(yīng)用范圍     C) 結(jié)構(gòu)清晰 D) 提高可理解性和效率  

32、60;  5. 從工程管理的角度來(lái)看,軟件設(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)來(lái)衡量()。     A) 分解度 B) 耦合度 C) 屏蔽性 D) 內(nèi)聚性     7. 用戶界面設(shè)計(jì)的任務(wù)包括(A B C)。   

33、  A) 確定用戶界面類型 B) 建立任務(wù)模型     C) 建立用戶模型 D) 建立功能模型      8. 程序設(shè)計(jì)語(yǔ)言可以分為(B C D)。     A) 面向過(guò)程的語(yǔ)言B) 機(jī)器語(yǔ)言     C) 高級(jí)語(yǔ)言D) 匯編語(yǔ)言     9. 程序效率包括(A C D)幾個(gè)方面的內(nèi)容。     A) 代碼效率 B) 運(yùn)行效率C) 存儲(chǔ)效率 D)

34、I/O效率     10. SP方法中的基本控制結(jié)構(gòu)有(A B C)。     A) 順序結(jié)構(gòu) B) 選擇結(jié)構(gòu) C) 重復(fù)結(jié)構(gòu) D) GOTO結(jié)構(gòu)     11. 內(nèi)部文檔可用注釋語(yǔ)言書(shū)寫(xiě),注釋語(yǔ)言分為(A B C D)。     A) 序言性注釋 B) 描述性注釋 C) 功能性注釋 D) 狀態(tài)性注釋     12. 為使程序中數(shù)據(jù)說(shuō)明更易于理解和維護(hù),必須遵循以下原則(A B C) 。 

35、;    A) 數(shù)據(jù)說(shuō)明的次序應(yīng)當(dāng)規(guī)范化     B) 一個(gè)語(yǔ)句說(shuō)明多個(gè)變量時(shí),各變量名按字母順序排列     C) 對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),要加注釋,說(shuō)明在程序?qū)崿F(xiàn)時(shí)的特點(diǎn)     D) 定義變量名應(yīng)按字母順序排列     13. 源程序的效率與(D)階段確定的算法的效率直接有關(guān)。     A) 概要設(shè)計(jì) B) 總體設(shè)計(jì) C) 單元設(shè)計(jì) D) 詳細(xì)設(shè)計(jì) 

36、60;   14. 在詳細(xì)設(shè)計(jì)翻譯轉(zhuǎn)換成源程序代碼后,算法效率反映為對(duì)程序的哪幾個(gè)方面的要求 (C D)。     A) 讀寫(xiě)速度 B) 代碼長(zhǎng)度 C) 存儲(chǔ)容量 D) 執(zhí)行速度     15. 提高程序效率的根本途徑在于(B C)。      A) 編程時(shí)對(duì)程序語(yǔ)句進(jìn)行調(diào)整B) 選擇良好的設(shè)計(jì)方法     C) 使程序最大限度的簡(jiǎn)潔D) 選擇良好的數(shù)據(jù)結(jié)構(gòu)與算法     二、

37、判斷題     1. 劃分模塊可以降低軟件的復(fù)雜度和工作量,所以應(yīng)該將模塊分得越小越好。 (×)     2. 在網(wǎng)狀結(jié)構(gòu)中任何兩個(gè)模塊都是平等的,沒(méi)有從屬關(guān)系,所以在軟件開(kāi)發(fā)過(guò)程中常常被使用。(×)     3. 信息隱蔽原則有利于提高模塊的內(nèi)聚性。()     4. 中心變換型的DFD圖可看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,因此可以使 用事務(wù)分析技術(shù)得到初始的模塊結(jié)構(gòu)圖。(×) &#

38、160;   5. SD法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,強(qiáng)調(diào)程序結(jié)構(gòu)與問(wèn)題結(jié)構(gòu)相對(duì)應(yīng)。 (×)     6. 所謂結(jié)構(gòu)沖突,是指輸入數(shù)據(jù)與輸出數(shù)據(jù)之間很少或沒(méi)有結(jié)構(gòu)上的對(duì)應(yīng)關(guān)系。通常解決 的辦法是:構(gòu)造一個(gè)或者多個(gè)中間結(jié)構(gòu),在輸入和輸出結(jié)構(gòu)之間進(jìn)行轉(zhuǎn)換。()     7. 當(dāng)模塊的控制范圍是其作用范圍的子集時(shí),模塊之間的耦合度較低。(×)     8. JACKSON方法是以數(shù)據(jù)流、數(shù)據(jù)封閉性準(zhǔn)則逐層分解的。(×) 

39、    9. 程序設(shè)計(jì)語(yǔ)言的工程特性包括:可移植性、可重用性、可維護(hù)性、局部性和順序性。(×)     10. 項(xiàng)目應(yīng)用領(lǐng)域是選擇語(yǔ)言的關(guān)鍵因素。()     11. FORTRAN、Pascal、C語(yǔ)言、PL/1和匯編語(yǔ)言都是科學(xué)工程計(jì)算可選用的語(yǔ)言。(×)     12. 要用快速原型法開(kāi)發(fā)軟件,應(yīng)選用4GL語(yǔ)言。()     13. 提高程序效率的根本途徑是選擇良好的設(shè)計(jì)方法、數(shù)據(jù)

40、結(jié)構(gòu)與算法。(×)     14. 良好的程序設(shè)計(jì)風(fēng)格簡(jiǎn)單說(shuō)就是高的編程技巧。()     三、簡(jiǎn)答題     1. 模塊內(nèi)聯(lián)系和模塊間聯(lián)系有哪些種類?     答:塊間聯(lián)系的各種類型的劃分,從以下3方面考慮:     按塊間聯(lián)系的方式(可分為直接引用與過(guò)程調(diào)用);     按塊間共用信息的作用(可分為數(shù)據(jù)型、控制型與混合型); 

41、0;   按塊間共用的信息數(shù)量多少(信息多聯(lián)系緊密)。     (1) 塊間聯(lián)系的類型,按照耦合度由大到小分為:     內(nèi)容型:直接引用另一模塊的內(nèi)部信息;     公共型:兩個(gè)模塊引用共同的全程數(shù)據(jù)區(qū);     控制型:模塊間傳送的信息用于控制模塊的內(nèi)部邏輯;     復(fù)合型:模塊間傳送復(fù)合的數(shù)據(jù)結(jié)構(gòu);     數(shù)據(jù)型:模塊間傳送單個(gè)

42、數(shù)據(jù)項(xiàng)。     (2) 塊內(nèi)聯(lián)系的類型,按照內(nèi)聚性從小到大分為:     偶然型:模塊內(nèi)部沒(méi)有必然聯(lián)系;     邏輯型:邏輯上相似的功能放進(jìn)一個(gè)模塊;     瞬時(shí)型:將同時(shí)執(zhí)行的語(yǔ)句放在一個(gè)模塊;     通信型:模塊中的各部分引用共同的數(shù)據(jù);     順序型:模塊中一部分的輸出是另一部分的收入;     功能型

43、: 模塊中剛好包含了完成一個(gè)基本任務(wù)所必需的成分。     2. 分析以下DFD圖,說(shuō)明屬于哪種類型的DFD圖,并按照相應(yīng)的變換將其轉(zhuǎn)換為初始的模塊 結(jié)構(gòu)圖。     參考答案:(略)     3. 下圖是修改文件記錄的DFD圖,請(qǐng)確定其主加工。        解:主加工為:賬號(hào)、修改、寫(xiě)記錄。     4. 按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計(jì)總則對(duì)模塊進(jìn)行修改,具體從哪

44、些方面進(jìn) 行改進(jìn)?     解:     (1) 盡可能建立功能模塊;     (2) 消除重復(fù)功能;     (3) 模塊的作用范圍與控制范圍,即當(dāng)作用范圍為控制范圍的子集時(shí),才能獲得較低的塊間 聯(lián)系;     (4) 模塊的大小適當(dāng);     (5) 模塊的扇入扇出數(shù)不宜太多。     5. 根據(jù)模塊的作用范圍與控

45、制范圍的原則,判定a、b兩圖的正確性。     解:顯然,圖a不滿足作用范圍應(yīng)與控制范圍的原則,模塊F的作用范圍不在控制范圍之內(nèi)。      圖b的模塊設(shè)計(jì)合理。     6. 圖a中,模塊G為判定,判斷涉及到模塊B、F、G,請(qǐng)指出設(shè)計(jì)中的錯(cuò)誤,再根據(jù)改進(jìn)模 塊圖的基本原則,畫(huà)出12個(gè)改進(jìn)方案(不改變模塊G的判斷關(guān)系),并說(shuō)明是按照哪條基本 原則進(jìn)行改進(jìn)的。     解:圖b為一個(gè)改進(jìn)方案,將模塊G的位置提高,使其作用范圍為控制范圍的子

46、集,減少模塊 之間的聯(lián)系。      7. 編碼階段的主要任務(wù)是什,應(yīng)交付的結(jié)果是什么?     答:編碼階段的主要任務(wù)是為每個(gè)模塊編寫(xiě)程序。即是:將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換為用某種計(jì) 算機(jī)語(yǔ)言寫(xiě)的程序源程序代碼。編碼階段應(yīng)交付的結(jié)果是帶有“程序內(nèi)部文檔”的、不 再含有語(yǔ)法錯(cuò)誤的程序。     8. SP法的自頂向下,逐步求精方法的優(yōu)點(diǎn)有哪些?     答:此法符合人們解決復(fù)雜問(wèn)題的普遍規(guī)律,可提高軟件開(kāi)發(fā)的成功率和生產(chǎn)率;而且用先 全局后局

47、部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過(guò)程,開(kāi)發(fā)出來(lái)的程序具有清晰的層 次結(jié)構(gòu),因此程序容易閱讀和理解。這樣,程序自頂向下,逐步細(xì)化,分解成一個(gè)樹(shù)型結(jié)構(gòu) 。     因此,在同一層次的節(jié)點(diǎn)上做細(xì)化工作,相互之間沒(méi)有聯(lián)系,它們之間的細(xì)化工作相互獨(dú)立 ;在任何一步發(fā)生錯(cuò)誤,一般只影響它下層的節(jié)點(diǎn),同一層其他節(jié)點(diǎn)不受影響;在以后的測(cè)試中,也可以先獨(dú)立地一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)地做,最后再集成。這樣,程序清晰和模塊化,使 得在修改和重新設(shè)計(jì)一個(gè)軟件時(shí),可復(fù)用的代碼量最大。     9. 為了使程序具有良好的設(shè)計(jì)風(fēng)格,應(yīng)注意哪些方

48、面的問(wèn)題?     答:(1) 標(biāo)識(shí)符應(yīng)按意取名。     標(biāo)識(shí)符即符號(hào)名,包括:模塊名、常量名、標(biāo)號(hào)名、子程序名、數(shù)據(jù)區(qū)名、緩沖區(qū)名等。 這些名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一定實(shí)際意義,使其能夠見(jiàn)名知意,有助于對(duì) 程序功能的理解。     (2) 程序應(yīng)加注釋,它分為兩類:序言性注釋和功能性注釋。     序言性注釋?xiě)?yīng)置于每個(gè)模塊的起始部分,主要內(nèi)容有:說(shuō)明每個(gè)模塊的用途,功能;說(shuō)明模塊的接口即調(diào)用格式、參數(shù)描述及從屬模塊的清單

49、;數(shù)據(jù)描述;開(kāi)發(fā)歷史 。     功能性注釋是嵌在源程序體中的,用于說(shuō)明其后的程序段或語(yǔ)句的功能以及數(shù)據(jù)的狀態(tài);也就是解釋下面要“做什么”,或是執(zhí)行下面的語(yǔ)句會(huì)發(fā)生什么情況;而不是解釋下面“怎么做”,因?yàn)樵趺醋龀3J桥c程序重復(fù)的,且對(duì)讀者理解程序沒(méi)有什么幫助。     10. 樣評(píng)價(jià)程序的執(zhí)行效率?它與程序清晰性的關(guān)系是怎樣的?     答:許多程序員往往片面追求效率,其實(shí)程序系統(tǒng)的成本不僅包括運(yùn)行所需的機(jī)時(shí),同時(shí)還應(yīng)把程序員及操作員所花費(fèi)的人力考慮進(jìn)去。在編程時(shí)為追求效率而

50、損害可讀性或可靠性,會(huì)給以后的維護(hù)工作帶來(lái)困難,所以從整體上看來(lái)是不值得的。     此外,還應(yīng)該認(rèn)識(shí)到,提高程序效率的根本途徑在于:選擇良好的設(shè)計(jì)方法、良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時(shí)對(duì)程序語(yǔ)句進(jìn)行調(diào)整。     (1) 追求建立在不損害程序可讀性或可靠性基礎(chǔ)上,要先使程序正確、清晰,再提高程序 效率。     (2) 不能因?yàn)樨潏D效率上的小利,而破壞程序的清晰性。     (3) 讓編譯程序去作簡(jiǎn)單的優(yōu)化。  

51、;   (4) 提高程序效率的根本途徑在于:選擇良好的設(shè)計(jì)方法和良好的數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時(shí)對(duì)程序語(yǔ)句做調(diào)整。     11. 假定:需要編一個(gè)求解一元二次方程根的子程序,加入到現(xiàn)有的子程序庫(kù)中,供其他程序員使用。要求:     (1) 為該子程序?qū)懸粋€(gè)序言性注釋;     (2) 用PASCAL語(yǔ)言或其他語(yǔ)言寫(xiě)出這個(gè)子程序(要把根的性質(zhì),如:實(shí)根、復(fù)根、降為一次方程等有區(qū)別地通知調(diào)用者),并加上描述性注釋。   &#

52、160; 答案:(略)     習(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ū)ο箝_(kāi)

53、發(fā)方法的有(ACD)。     A) Booch B) CAD C) Coad D) OMT     4. 下列屬于Coad方法中面向?qū)ο蟮姆治瞿P偷膶哟斡?AB)。     A) 主題層 B) 對(duì)象層 C) 應(yīng)用層 D) 接口層     5. 一個(gè)類屬性依其特征劃分,其類型有(ABCD)。     A) 描述型 B) 定義型 C) 派生型 D) 參考型   

54、0; 6. 在進(jìn)行面向?qū)ο蠓治鰰r(shí),所采用的模型有(ABD)。     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ì)象中的操作來(lái)實(shí)現(xiàn)常見(jiàn)的操作有(ABCD)。     A) 查詢 B) 動(dòng)作 C) 活動(dòng) D) 訪問(wèn)

55、     9. 建立繼承關(guān)系時(shí)所采用的方式有(AC)。     A) 自頂向下 B) 從內(nèi)到外 C) 自底向上 D) 從復(fù)雜到簡(jiǎn)單     10. 對(duì)象是人們要研究的任何事物主要的對(duì)象類型有(ABCD)。     A) 有形實(shí)體 B) 作用 C) 事件 D) 性能說(shuō)明     二、判斷題     1. 面向?qū)ο蟮牡姆椒ㄊ且灶愖鳛樽罨镜脑兀欠治鰡?wèn)題解決

56、問(wèn)題的核心。(×)     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ū)ο蠓治觯褪浅槿『驼碛脩?/p>

57、需求并建立問(wèn)題域精確模型的過(guò)程。()     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)系角度來(lái)描述,表現(xiàn)了對(duì)象的相互關(guān)系。()     8. 面向?qū)ο蟮姆治鍪怯妹嫦驅(qū)ο蟮姆椒▽?duì)目標(biāo)系統(tǒng)的問(wèn)題空間進(jìn)行理解、分析和反映。通過(guò)對(duì)象層次結(jié)構(gòu)的組織確定解空間中應(yīng)存在的對(duì)象和對(duì)象層次結(jié)構(gòu)。()     9.

58、類的設(shè)計(jì)過(guò)程包括:確定類,確定關(guān)聯(lián)類,確定屬性,識(shí)別繼承關(guān)系。()     10. 復(fù)用也叫重用或再用,面向?qū)ο蠹夹g(shù)中的“類”,是比較理想的可重用軟構(gòu)件。有三種重用方式:實(shí)例重用、繼承重用、多態(tài)重用。()     11. 主題是一種關(guān)于模型的抽象機(jī)制,它是面向?qū)ο竽P偷母琶?,也是關(guān)于某個(gè)模型要同時(shí)考慮和理解的內(nèi)容,主題起一種控制作用。()     12. 面向?qū)ο蟮姆治鲇蓪?duì)象、結(jié)構(gòu)、繼承性和基于消息的通信構(gòu)成。(×)    

59、13. 支持繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言和傳統(tǒng)程序設(shè)計(jì)語(yǔ)言在語(yǔ)言機(jī)制方面的根本區(qū)別。()     14. 面向?qū)ο蟮姆治鲞^(guò)程主要包括三項(xiàng)內(nèi)容:理解、表達(dá)和驗(yàn)證。()     15. 面向?qū)ο蟮脑O(shè)計(jì)的主要目標(biāo)是提高生產(chǎn)效率、提高質(zhì)量和提高可維護(hù)性。()     三、 簡(jiǎn)答題     1 與傳統(tǒng)程序設(shè)計(jì)模式中的過(guò)程調(diào)用相比,消息傳遞機(jī)制有何本質(zhì)區(qū)別?     答:   &

60、#160; (1) 消息傳遞必須給出信道的信息,通常要指出明顯的接受方。     (2) 由于接受方是一通信實(shí)體,具有保持狀態(tài)的能力,所以同一發(fā)送方在不同時(shí)刻向同一 接受方發(fā)送同樣的信息,可因接受方的當(dāng)前狀態(tài)不同而得到不同的結(jié)果。     (3) 消息傳遞可以是異步的,發(fā)送方可以不必等待接受方返回信息就可以繼續(xù)執(zhí)行后面的操作,因而支持程序的并發(fā)和分布執(zhí)行,而過(guò)程調(diào)用只能是同步的,本質(zhì)上是串行的。     2 闡述面向?qū)ο蟮奶卣?,并做?jiǎn)要的解釋。  

61、0;  答:     (1) 對(duì)象惟一性。     每個(gè)對(duì)象都有自身惟一的標(biāo)識(shí),通過(guò)這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。     (2) 分類性。     是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。     (3) 繼承性。     是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。   &#

62、160; (4) 多態(tài)性。     是指相同的操作或函數(shù),過(guò)程作用于多種類型的對(duì)象上,并獲得不同的結(jié)果。     3 Coad方法主要由面向?qū)ο蠓治鯫OA和面向?qū)ο笤O(shè)計(jì)OOD。OOA方法分析過(guò)程和構(gòu)造OOA概念模型的順序由5個(gè)層次組成,請(qǐng)簡(jiǎn)述這5個(gè)層次。     答:     (1) 發(fā)現(xiàn)類及對(duì)象。描述如何發(fā)現(xiàn)類及對(duì)象。從應(yīng)用領(lǐng)域開(kāi)始識(shí)別類及對(duì)象,形成整 個(gè)應(yīng)用的基礎(chǔ),然后,據(jù)此分析系統(tǒng)的責(zé)任。   

63、60; (2) 識(shí)別結(jié)構(gòu)。該階段分為兩個(gè)步驟。第一,識(shí)別“一般特殊”結(jié)構(gòu),該結(jié)構(gòu)捕獲了識(shí)別出的類的層次結(jié)構(gòu);第二,識(shí)別“整體部分”結(jié)構(gòu),該結(jié)構(gòu)用來(lái)表示一個(gè)對(duì)象如何成為另一個(gè)對(duì)象的一部分,以及多個(gè)對(duì)象如何組裝成更大的對(duì)象。     (3) 定義主題。主題由一組類及對(duì)象組成,用于將類及對(duì)象模型劃分為更大的單位,便于理解。     (4) 定義屬性。其中包括定義類的實(shí)例(對(duì)象)之間的實(shí)例連接。     (5) 定義服務(wù)。其中包括定義對(duì)象之間的消息連接。  

64、60;  4 面向?qū)ο蟪绦蛟O(shè)計(jì)有哪些優(yōu)點(diǎn)?     解:開(kāi)發(fā)時(shí)間短、效率高、可靠性高,所開(kāi)發(fā)的程序更強(qiáng)壯。由于面向?qū)ο缶幊痰目芍赜眯?,可以在應(yīng)用程序中大量采用成熟的類庫(kù),從而縮短開(kāi)發(fā)時(shí)間,這樣程序更易于維護(hù)、 更新和升級(jí)。繼承和封裝使得應(yīng)用程序的修改帶來(lái)的影響更加局部 化。     5比較面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的特點(diǎn)。      解:分析是問(wèn)題抽象 (做什么),設(shè)計(jì)是問(wèn)題求解 (怎么做),實(shí)現(xiàn)是問(wèn)題的解 (結(jié)果)。任 何方法學(xué)對(duì)客觀世界的抽象和求解過(guò)程都是如此。

65、在問(wèn)題抽象階段,結(jié)構(gòu)化方法面向過(guò)程, 按照數(shù)據(jù)變換的過(guò)程尋找問(wèn)題的結(jié)點(diǎn),對(duì)問(wèn)題進(jìn)行分解。因此,與面向?qū)ο蠓椒◤?qiáng)調(diào)的對(duì)象 模型不同,描述數(shù)據(jù)變換的功能模型是結(jié)構(gòu)化方法的重點(diǎn)。如果問(wèn)題世界的功能比數(shù)據(jù)更復(fù) 雜或者更重要,那么結(jié)構(gòu)化方法仍然應(yīng)是首選的方法學(xué)。如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜且變換不多, 那么如果以過(guò)程主導(dǎo)分析和設(shè)計(jì),一旦有系統(tǒng)變更就會(huì)給下游開(kāi)發(fā)帶來(lái)極大混亂。      由于對(duì)過(guò)程的理解不同,面向過(guò)程的功能細(xì)分所分割出的功能模塊有時(shí)會(huì)因人而異。而面向 對(duì)象的對(duì)象細(xì)分,從同一問(wèn)題領(lǐng)域的對(duì)象出發(fā),不同人得出相同結(jié)論的比率較高。   &#

66、160; 在設(shè)計(jì)上,結(jié)構(gòu)化方法學(xué)產(chǎn)生自頂向下、結(jié)構(gòu)清晰的系統(tǒng)結(jié)構(gòu)。每個(gè)模塊有可能保持較強(qiáng)的獨(dú)立性,但它往往與數(shù)據(jù)庫(kù)結(jié)構(gòu)相獨(dú)立,功能模塊與數(shù)據(jù)庫(kù)邏輯模式間沒(méi)有映射關(guān)系,程序與數(shù)據(jù)結(jié)構(gòu)很難封裝在一起。如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜,則模塊獨(dú)立性很難保證。面向?qū)ο蠓椒ǔ橄蟮南到y(tǒng)結(jié)構(gòu)往往并不比結(jié)構(gòu)化方法產(chǎn)生的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,但它能映射到數(shù)據(jù)庫(kù)結(jié)構(gòu)中,很容易實(shí)現(xiàn)程序與數(shù)據(jù)結(jié)構(gòu)的封裝。      在軟件工程基本原則中有一條“形式化原則”,即對(duì)問(wèn)題世界的抽象結(jié)論應(yīng)該以形式化語(yǔ)言 (圖形語(yǔ)言、偽碼語(yǔ)言等)表述出來(lái)。結(jié)構(gòu)化方法可以用數(shù)據(jù)流圖、系統(tǒng)結(jié)構(gòu)圖、數(shù)據(jù)辭典、狀態(tài)轉(zhuǎn)移圖、實(shí)體關(guān)系圖來(lái)

67、進(jìn)行系統(tǒng)邏輯模型的描述;而面向?qū)ο蠓椒梢允褂脤?duì)象模型圖、數(shù)據(jù)辭典、動(dòng)態(tài)模型圖、功能模型圖。其中對(duì)象模型圖近似系統(tǒng)結(jié)構(gòu)圖與實(shí)體關(guān)系圖的結(jié)合,動(dòng)態(tài)模型圖類似狀態(tài)遷移圖,功能模型圖類似數(shù)據(jù)流圖。     6當(dāng)重要的對(duì)象被發(fā)現(xiàn)后,通過(guò)一組互相關(guān)聯(lián)的模型詳細(xì)表示類之間的關(guān)系和對(duì)象的行為,這些模型從四個(gè)不同的側(cè)面表示了軟件的體系結(jié)構(gòu)、靜態(tài)邏輯、動(dòng)態(tài)邏輯、靜態(tài)物理和動(dòng)態(tài)物理。試描述一下這四種特性。     解:靜態(tài)邏輯模型描述實(shí)例化(類成員關(guān)系)、關(guān)聯(lián)、聚集(整體/部分)、和一般化(繼承)等關(guān)系。這被稱為對(duì)象模型。一般化關(guān)系表

68、示屬性和方法的繼承關(guān)系。定義對(duì)象模 型的圖形符號(hào)體系通常是從用于數(shù)據(jù)建模的實(shí)體關(guān)系圖導(dǎo)出的。對(duì)設(shè)計(jì)十分重要的約束,如 基數(shù)(一對(duì)一、一對(duì)多、多對(duì)多),也在對(duì)象模型中表示。      動(dòng)態(tài)邏輯模型描述對(duì)象之間的互相作用?;ハ嘧饔猛ㄟ^(guò)一組協(xié)同的對(duì)象,對(duì)象之間消 息的有序的序列,參與對(duì)象的可見(jiàn)性定義,來(lái)定義系統(tǒng)運(yùn)行時(shí)的行為。     靜態(tài)物理模型通過(guò)模塊描述代碼的布局。動(dòng)態(tài)物理模型描述軟件的進(jìn)程和線程體系結(jié) 構(gòu)。      習(xí)題五答案    

69、 一、選擇題     1. 下列不是模型元素的是(D)。     A) 關(guān)聯(lián) B) 聚合 C) 依賴 D) 筆記     2. UML具有擴(kuò)展性,常見(jiàn)的擴(kuò)展機(jī)制有(BCD)。     A) 修飾 B) 版類 C) 加標(biāo)簽值 D) 約束     3. UML語(yǔ)言支持的建模方式有(ABD)。     A) 靜態(tài)建模B) 動(dòng)態(tài)建模 C) 模塊化建模 D) 功能建模

70、      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á)

71、式     7. 屬性的可見(jiàn)性有(ABD)。     A) 公有的 B) 私有的 C) 私有保護(hù)的 D) 保護(hù)的     8. 用例之間的關(guān)系有(BCD)。     A) 友元 B) 擴(kuò)展 C) 使用 D) 組合     9. 應(yīng)用于通用化約束的方式有(ABCD)。     A) 完整 B) 不相交 C) 不完整 D) 覆蓋   

72、;  10. 消息的類型有(ABC)。     A) 同步 B) 異步 C) 簡(jiǎn)單 D) 復(fù)雜     二、 判斷題     1. UML建模語(yǔ)言是由視圖、圖、模型元素和通用機(jī)制構(gòu)成的層次關(guān)系來(lái)描述的。 ()      2. UML是一種建模語(yǔ)言,是一種標(biāo)準(zhǔn)的表示,是一種方法。 (×)     3. 泳道是一種分組機(jī)制,它描述了狀態(tài)圖中對(duì)象所執(zhí)行的活動(dòng)。 (×)

73、60;    4. 同步消息和異步消息的主要區(qū)別是:同步消息的發(fā)送對(duì)象在消息發(fā)送后,不必等待消息處理,可立即繼續(xù)執(zhí)行,而異步消息則發(fā)送對(duì)象必須等待接收對(duì)象完成消息處理后,才能繼續(xù)執(zhí)行。 (×)      5. 類圖中的角色是用于描述該類在關(guān)聯(lián)中所扮演的角色和職責(zé)的。 ()      6. 類圖用來(lái)表示系統(tǒng)中類和類與類之間的關(guān)系,它是對(duì)系統(tǒng)動(dòng)態(tài)結(jié)構(gòu)的描述。 (×)      7. 用例模型的基本組成部件是用例、角色和用例之間的聯(lián)

74、系。 ()     8. 用例之間有擴(kuò)展、使用、組合等幾種關(guān)系。 ()     9. 順序圖描述對(duì)象之間的交互關(guān)系,重點(diǎn)描述對(duì)象間消息傳遞的時(shí)間順序。 ()     10. 活動(dòng)圖顯示動(dòng)作及其結(jié)果。著重描述操作實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或類中的活動(dòng)。(×)      三、 簡(jiǎn)答題     1. 以圖1(一個(gè)在學(xué)校首次報(bào)名的 UML 活動(dòng)圖)為例,說(shuō)明如何繪制活動(dòng)圖。圖1 學(xué)

75、校首次報(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í)行的處理步驟??蓮挠美P统霭l(fā),對(duì)每個(gè)角色(actor)所驅(qū)動(dòng)的主要

76、用例引入一個(gè)活動(dòng),如果是對(duì)整個(gè)系統(tǒng)建模,應(yīng)對(duì)每個(gè)主要流程引入一個(gè)活動(dòng)。在“報(bào)名”的活動(dòng)圖中確定了“Fill out enrollment ”(填寫(xiě)報(bào)名表)、“Enroll in university”(登記入學(xué))、“Obtain help to fill out fo rms”(幫助填寫(xiě)報(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í)行過(guò)程的終止。 &

77、#160;   (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)“填寫(xiě)報(bào)名表”有兩個(gè)活動(dòng)轉(zhuǎn)移,當(dāng)填寫(xiě)報(bào)名表不正確時(shí),則轉(zhuǎn)移到活動(dòng)“幫助填寫(xiě)報(bào)名表”,當(dāng)填寫(xiě)正確時(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é)束。   

78、;  (6) 找出并行活動(dòng)。當(dāng)兩個(gè)活動(dòng)間沒(méi)有直接的聯(lián)系,而且它們都必需在第三個(gè)活動(dòng)開(kāi)始前結(jié)束,那它們是可以并行運(yùn)行的。在圖1中,用同步線描述系統(tǒng)任務(wù)中的并發(fā)活動(dòng),活動(dòng)“Attend university overview presentation”(參加介紹學(xué)校會(huì)議)和“enroll in seminars” (注冊(cè)研討班)及“Make initial tuition payment”(交付初始的學(xué)費(fèi))可并行執(zhí)行,使用同 步線表示它們都要在結(jié)束整個(gè)流程前完成。     2. 簡(jiǎn)述擴(kuò)展、使用和細(xì)化三種UML依賴關(guān)系的異同。  

79、   答:擴(kuò)展關(guān)系是對(duì)基本用例在對(duì)某些“擴(kuò)展點(diǎn)”的功能的增加。     使用關(guān)系表示一個(gè)元素為了實(shí)現(xiàn)或完成其全部的功能需要用到已存在的另一個(gè)模型元素,例如類與類之間的多種方法調(diào)用關(guān)系。     細(xì)化關(guān)系是不同語(yǔ)義層(如分析和設(shè)計(jì))之間模型元素的依賴關(guān)系,因此細(xì)化關(guān)系可描述的語(yǔ)義范圍較廣,包括模型的逐步細(xì)化、優(yōu)化、變換、模板、模型合成、框架組成等等。     3. 為什么要使用UML?     答:軟件開(kāi)發(fā)的過(guò)程猶如雕

80、琢一件工藝品,由無(wú)形到有形,由粗到細(xì)。大家知道,隨著計(jì)算機(jī)應(yīng)用的飛速發(fā)展,軟件的復(fù)雜程度不斷提高,源代碼的規(guī)模越來(lái)越大,項(xiàng)目失敗的可能性也相應(yīng)增加。在長(zhǎng)期的研究與實(shí)踐中,人們?cè)絹?lái)越深刻地認(rèn)識(shí)到,建立簡(jiǎn)明準(zhǔn)確的表示模型是把握復(fù)雜系統(tǒng)的關(guān)鍵。模型是對(duì)事物的一種抽象,人們常常在正式建造實(shí)物之前,首先建立一個(gè)簡(jiǎn)化的模型,以便更透徹地了解它的本質(zhì),抓住問(wèn)題的要害。在模型中,先要剔除那些與問(wèn)題無(wú)關(guān)的、非本質(zhì)的東西,從而使模型與真實(shí)的實(shí)體相比更加簡(jiǎn)單明了、易于把握??偟膩?lái)說(shuō),使用模型可以使人們從全局上把握系統(tǒng)的全貌及其相關(guān)部件之間的關(guān)系,可以防止過(guò)早地陷入各個(gè)模塊的細(xì)節(jié)。因此,面向?qū)ο蟮姆治雠c設(shè)計(jì)應(yīng)該從建模

81、開(kāi)始。     4. 簡(jiǎn)述UML實(shí)際建模過(guò)程。     答:每次迭代都分為以下幾個(gè)階段:     分析階段。建模的目的是捕捉系統(tǒng)的功能需求,分析、提取所開(kāi)發(fā)系統(tǒng)的“客觀世界”領(lǐng)域的類以及描述它們的合作關(guān)系。     設(shè)計(jì)階段。建模的目的是通過(guò)考慮實(shí)現(xiàn)環(huán)境,將分析階段的模型擴(kuò)展和轉(zhuǎn)化為可行的技術(shù)實(shí)現(xiàn)方案。     實(shí)現(xiàn)階段。具體工作就是進(jìn)行編碼,同時(shí)對(duì)已構(gòu)造的模型作相應(yīng)的修正。     配置階段。通過(guò)模型描述所開(kāi)發(fā)系統(tǒng)的軟硬件配置情況。     測(cè)試階段。使用前幾個(gè)階段所構(gòu)造的模型來(lái)指導(dǎo)和協(xié)助測(cè)試工作。     5. 在UML中的狀態(tài)圖、協(xié)作圖、活動(dòng)圖、序列圖在系統(tǒng)分析中各起到了什么作用?     答:     狀態(tài)圖表示一個(gè)類的狀態(tài)變化,例如訂單的狀態(tài)變化等,在實(shí)時(shí)系統(tǒng)中用的較

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論