《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》習(xí)題及答案匯 第1-15章_第1頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》習(xí)題及答案匯 第1-15章_第2頁
《UML面向?qū)ο蠓治觥⒔Ec設(shè)計(jì)》習(xí)題及答案匯 第1-15章_第3頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》習(xí)題及答案匯 第1-15章_第4頁
《UML面向?qū)ο蠓治觥⒔Ec設(shè)計(jì)》習(xí)題及答案匯 第1-15章_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、單選題軟件工程的目標(biāo)不包括以下哪一項(xiàng)?

A.提高軟件產(chǎn)品的質(zhì)量

B.提高軟件產(chǎn)品的可靠性

C.延長軟件開發(fā)周期

D.控制軟件開發(fā)的成本答案:C面向?qū)ο蠓椒ㄗ钤缡窃谀姆N編程語言中出現(xiàn)的?

A.C++

B.Simula-67

C.Smalltalk

D.Java答案:B在面向?qū)ο蟾拍钪?,類和?duì)象的關(guān)系是:

A.類是對(duì)象的實(shí)例化

B.對(duì)象是類的實(shí)例化

C.類和對(duì)象是同一事物

D.類和對(duì)象沒有直接關(guān)系答案:B面向?qū)ο缶幊痰奶匦圆话ǎ?/p>

A.封裝

B.繼承

C.抽象

D.編譯答案:D下列哪種方法是解決軟件危機(jī)的突破口?

A.結(jié)構(gòu)化方法

B.面向過程方法

C.面向?qū)ο蠓椒?/p>

D.面向用戶方法答案:C二、對(duì)錯(cuò)題軟件工程是一門獨(dú)立的學(xué)科,強(qiáng)調(diào)運(yùn)用工程化的思想開發(fā)和維護(hù)軟件。

答案:對(duì)面向?qū)ο蠓椒◤?qiáng)調(diào)把功能和數(shù)據(jù)分離開來,形成獨(dú)立的模塊。

答案:錯(cuò)Smalltalk-80被認(rèn)為是面向?qū)ο笳Z言發(fā)展史上最重要的里程碑。

答案:對(duì)封裝是將對(duì)象的屬性和操作向外界隱藏的技術(shù)。

答案:對(duì)在面向?qū)ο蟾拍钪校愂菍?duì)象的特定實(shí)例。

答案:錯(cuò)三、填空題1968年,北大西洋公約組織首次提出了“______”的概念。

答案:軟件工程面向?qū)ο蠓椒◤?qiáng)調(diào)從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實(shí)生活中常用的______方法來認(rèn)識(shí)、理解和描述客觀事物。

答案:思維面向?qū)ο蠹夹g(shù)的根本特征是______。

答案:多態(tài)對(duì)象可以通過______過程成為計(jì)算機(jī)中的一個(gè)包含有數(shù)據(jù)和操作的集合體。

答案:封裝Smalltalk-80在面向?qū)ο蠹夹g(shù)中引入了類、對(duì)象、繼承等概念,其中最早正式使用了“______”這個(gè)術(shù)語。

答案:面向?qū)ο笏?、問答題簡述軟件工程的目標(biāo)和原則。答案:

軟件工程的目標(biāo)主要包括:控制軟件開發(fā)的成本。滿足用戶需求。提高軟件產(chǎn)品的質(zhì)量和可靠性。使軟件產(chǎn)品易于移植、維護(hù)、升級(jí)和使用??刂栖浖_發(fā)周期。軟件工程的原則包括:用分階段的生命周期計(jì)劃進(jìn)行嚴(yán)格的管理。堅(jiān)持進(jìn)行階段評(píng)審。實(shí)行嚴(yán)格的產(chǎn)品控制。采用現(xiàn)代程序設(shè)計(jì)技術(shù)。軟件工程結(jié)果應(yīng)能清楚地審查。開發(fā)小組的人員應(yīng)該少而精。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐性的必要性。請(qǐng)說明面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)。

答案:

面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)包括:更符合人類的思維習(xí)慣,能夠更有效地實(shí)現(xiàn)業(yè)務(wù)和系統(tǒng)之間的理解和轉(zhuǎn)換。封裝可以用較穩(wěn)定的對(duì)象將易變的功能和數(shù)據(jù)進(jìn)行封裝,從而減少需求變化對(duì)系統(tǒng)結(jié)構(gòu)的影響。復(fù)用性強(qiáng),通過繼承、聚合等手段在不同層次上提供各種代碼復(fù)用,提高開發(fā)效率。提供更好的擴(kuò)展性和支持迭代式開發(fā)的能力。請(qǐng)解釋什么是封裝,并簡述它的重要性。

答案:

封裝是將對(duì)象的屬性和操作向外界隱藏,僅對(duì)外公開接口,并控制屬性的訪問權(quán)限。它的重要性包括:增強(qiáng)了程序的模塊化,使各模塊獨(dú)立開發(fā)、測試、維護(hù)更容易。增強(qiáng)了程序的安全性,避免外界直接修改對(duì)象內(nèi)部狀態(tài)。簡化編程,使用者不必了解內(nèi)部實(shí)現(xiàn)細(xì)節(jié),通過接口即可使用對(duì)象功能。UML的產(chǎn)生標(biāo)志著什么?它對(duì)面向?qū)ο蠓椒ㄓ泻我饬x?答案:UML的產(chǎn)生標(biāo)志著面向?qū)ο蠓椒▽W(xué)的統(tǒng)一。其意義包括:提供了統(tǒng)一的概念、定義、表示法和術(shù)語,使得用戶能夠更加一致地理解和使用面向?qū)ο蠓椒ā槊嫦驅(qū)ο蠓椒ǖ膽?yīng)用掃清了障礙,使其得到更廣泛的應(yīng)用。面向?qū)ο蠓椒ǖ幕靖拍钣心男看鸢福簩?duì)象(Object):具有狀態(tài)、行為和標(biāo)識(shí)符的實(shí)體。類(Class):擁有共同結(jié)構(gòu)、行為和語義的一組對(duì)象的抽象。抽象(Abstraction):去除不重要的細(xì)節(jié),揭示事物的本質(zhì)特征。封裝(Encapsulation):隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口。泛化(Generalization):類之間一般描述和具體描述的關(guān)系,通過繼承實(shí)現(xiàn)。多態(tài)(Polymorphism):同一接口表現(xiàn)多種行為的能力。一、單選題UML主要用來描述、可視化、構(gòu)造和文檔化哪種類型的系統(tǒng)?A.數(shù)據(jù)密集型系統(tǒng)B.軟件密集型系統(tǒng)C.計(jì)算密集型系統(tǒng)D.硬件密集型系統(tǒng)答案:BUML的三位創(chuàng)始人中不包括以下哪位?A.GradyBoochB.JamesRumbaughC.IvarJacobsonD.SallyShlaer答案:DUML模型中用于捕獲需求和描述系統(tǒng)功能要求的圖是?A.類圖B.用例圖C.組件圖D.時(shí)序圖答案:B下列哪種UML建模工具是開源的?A.RationalRoseB.EnterpriseArchitectC.StarUMLD.RationalSoftwareArchitect答案:CUML2.0規(guī)范中進(jìn)行了哪些主要改進(jìn)?A.嵌套類元、行為建模改進(jìn)、結(jié)構(gòu)模型與行為模型關(guān)系改善B.新增對(duì)象模型、數(shù)據(jù)密集型分析、靜態(tài)模型設(shè)計(jì)C.架構(gòu)層次擴(kuò)展、增加時(shí)序圖、組件集成D.簡化用例建模、增加UML分析器、提供數(shù)據(jù)抽象接口答案:A二、對(duì)錯(cuò)題UML是一種專門的編程語言,用于開發(fā)面向?qū)ο蟮能浖到y(tǒng)。

答案:錯(cuò)

(UML不是編程語言,而是可視化的建模語言。)UML是一種獨(dú)立于開發(fā)過程的建模語言。

答案:對(duì)

(UML適用于各種開發(fā)過程。)UML1.x規(guī)范和UML2.x規(guī)范之間沒有顯著差異。

答案:錯(cuò)

(UML2.x對(duì)UML1.x進(jìn)行了重要改進(jìn)。)StarUML是一款免費(fèi)開源的UML建模工具。

答案:對(duì)

(StarUML是一款開源的UML工具。)UML的創(chuàng)始人中包括JamesRumbaugh和GradyBooch。

答案:對(duì)

(JamesRumbaugh和GradyBooch是UML的創(chuàng)始人之一。)三、填空題UML的中文全稱是:______。

答案:統(tǒng)一建模語言UML提供了一種基于______和______兩種建模機(jī)制的模型。

答案:靜態(tài),動(dòng)態(tài)UML最初由______公司推動(dòng)并提交給OMG進(jìn)行標(biāo)準(zhǔn)化。

答案:RationalUML中主要用于描述系統(tǒng)中對(duì)象的屬性和方法,以及它們之間關(guān)系的圖是:______。

答案:類圖在UML模型中,表示類與類之間繼承關(guān)系的符號(hào)是:______。

答案:空心箭頭四、問答題UML出現(xiàn)的背景是什么?

答案:在20世紀(jì)80年代末和90年代初,面向?qū)ο笳Z言的廣泛使用引發(fā)了大量關(guān)于面向?qū)ο箝_發(fā)方法的著作,產(chǎn)生了數(shù)十種不同的面向?qū)ο蠓椒?。這些方法各自擁有不同的概念、定義、表示法、術(shù)語和開發(fā)過程,導(dǎo)致不同項(xiàng)目組之間的交流和協(xié)作困難。為了統(tǒng)一不同方法中的概念,形成標(biāo)準(zhǔn)的建模語言,UML應(yīng)運(yùn)而生,并迅速成為事實(shí)上的標(biāo)準(zhǔn)。UML的主要目標(biāo)有哪些?

答案:為建模者提供一種可用、富有表達(dá)力的可視化建模語言。提供可擴(kuò)展性和特殊化機(jī)制以延伸核心概念。支持獨(dú)立于編程語言和開發(fā)過程的規(guī)范。為理解建模語言提供正式的基礎(chǔ)。推動(dòng)面向?qū)ο蠼9ぞ呤袌龅某砷L。支持更高級(jí)的開發(fā)概念。UML的核心特征有哪些?

答案:圖形表示法:如類圖、用例圖、時(shí)序圖等。靜態(tài)建模與動(dòng)態(tài)建模:靜態(tài)結(jié)構(gòu)描述對(duì)象的屬性和關(guān)系,動(dòng)態(tài)行為描述對(duì)象的相互作用。擴(kuò)展性:通過特征文件和元模型機(jī)制,提供定制化的模型元素。UML2.0與UML1.x相比有哪些主要變化?

答案:嵌套類元:幾乎每個(gè)模型構(gòu)造塊都可以嵌套。行為建模改進(jìn):所有行為模型除用例外均源自基本行為定義。結(jié)構(gòu)模型與行為模型關(guān)系改善:允許將行為模型與類或組件關(guān)聯(lián)。UML建模工具的作用是什么?請(qǐng)列舉兩個(gè)常用工具并說明其特征。

答案:建模工具用于可視化、構(gòu)建和分析UML模型,提高開發(fā)效率和準(zhǔn)確性。RationalRose:提供UML建模、逆向工程和正向工程功能,支持多種編程語言。StarUML:開源工具,支持大部分UML2.0圖類型,具備代碼生成與逆向工程能力。一、單選題RationalRose是由哪家公司最初研發(fā)的?A.OracleB.MicrosoftC.IBMD.Rational答案:DRationalRose主要支持哪種建模語言?A.SysMLB.ArchiMateC.UMLD.ERD答案:CRationalRose的哪個(gè)版本主要面向UNIX和Linux應(yīng)用程序建模?A.RationalRoseEnterpriseB.RationalRoseDeveloperforVisualStudioC.RationalRoseTechnicalDeveloperD.RationalRoseDeveloperforUNIX答案:D哪個(gè)視圖主要包含RationalRose模型代碼庫、可執(zhí)行文件和其他組件的信息?A.用例視圖B.邏輯視圖C.組件視圖D.部署視圖答案:C哪個(gè)工具欄用于在模型中快速瀏覽不同的UML圖?A.標(biāo)準(zhǔn)工具欄B.框圖工具欄C.菜單欄D.工具欄集成器答案:A二、對(duì)錯(cuò)題RationalRose只能生成C++和Java代碼。

答案:錯(cuò)

(RationalRose支持生成多種編程語言的代碼,包括C++、Java、VisualBasic等。)Rose的模型庫只能存儲(chǔ)同一視圖內(nèi)的模型元素信息。

答案:錯(cuò)

(模型庫可以存儲(chǔ)跨視圖的模型元素信息。)使用RationalRose可以直接將模型發(fā)布為Web頁面。

答案:對(duì)

(RationalRose支持將模型發(fā)布為HTML格式的Web頁面。)在RationalRose中,逆向工程用于從模型中生成代碼。

答案:錯(cuò)

(逆向工程是從代碼生成UML模型圖。)RationalRose的模型繪制區(qū)中的元素與瀏覽器中的元素保持同步。

答案:對(duì)

(兩者同步確保模型一致性。)三、填空題在RationalRose中,模型文件的擴(kuò)展名是______。

答案:.mdlRationalRose中,用戶可以根據(jù)自己的需要定制工具欄,這個(gè)功能被稱為______。

答案:定制工具欄RationalRose工具中,用于顯示命令執(zhí)行結(jié)果及錯(cuò)誤信息的窗口是______。

答案:日志窗口RationalRose可以比較和合并最多______個(gè)模型。

答案:七RationalRose的______特性用于支持多用戶并行開發(fā)。

答案:控制單元四、問答題簡述RationalRose對(duì)UML的支持功能。

答案:提供基本的繪圖功能:支持UML中大部分圖的繪制,包括用例圖、類圖、狀態(tài)圖等。提供模型庫:跨圖管理模型元素信息,確保模型元素一致性。提供導(dǎo)航功能:在不同視圖和圖中快速導(dǎo)航,支持超鏈接信息。提供代碼生成功能:針對(duì)多種目標(biāo)語言生成代碼,如C++、Java、VB等。提供逆向工程功能:從已有代碼生成相應(yīng)的UML圖。

2.簡述RationalRose的用途和功能。RationalRose是一種功能強(qiáng)大的面向?qū)ο蟮目梢暬9ぞ?,特別為UML設(shè)計(jì),廣泛應(yīng)用于軟件開發(fā)過程。以下是對(duì)其用途和功能的簡述:用途RationalRose用于軟件開發(fā)過程中的可視化建模,它幫助開發(fā)者設(shè)計(jì)、分析和文檔化軟件系統(tǒng)的結(jié)構(gòu)和行為。其主要用途包括:軟件設(shè)計(jì)和建模:提供多種UML圖形工具,幫助開發(fā)人員創(chuàng)建軟件設(shè)計(jì)模型。代碼生成和逆向工程:支持從模型生成代碼,或者從現(xiàn)有代碼生成模型,便于維護(hù)和理解復(fù)雜的軟件系統(tǒng)。項(xiàng)目管理和協(xié)作:通過模型集成和控制單元功能,支持多人協(xié)作開發(fā),提高項(xiàng)目管理效率。系統(tǒng)集成和部署:支持復(fù)雜系統(tǒng)的組件集成和部署建模,確保系統(tǒng)能夠正確集成和運(yùn)行。功能1)基本繪圖功能提供了大量的繪圖元素,并對(duì)元素的定義、選擇、放置和連接提供了技術(shù)支持。支持對(duì)UML各種圖的布局設(shè)計(jì)和元素排列,確保圖形清晰易懂。2)模型庫維護(hù)一個(gè)包含各種模型元素信息的模型庫,確保元素信息在不同圖中的一致性。提供非一致性檢查、審查功能、報(bào)告功能、重用建模元素和圖功能。3)導(dǎo)航功能允許在多個(gè)視圖或圖中進(jìn)行導(dǎo)航和切換,便于用戶瀏覽。支持超鏈接信息訪問和包的展開/折疊操作。4)代碼生成功能針對(duì)不同類型的目標(biāo)語言生成相應(yīng)的代碼,包括C++、Ada、Java、Oracle和VisualBasic等。生成的代碼包含類的屬性和方法聲明,方法體需由開發(fā)人員填補(bǔ)。5)逆向工程功能通過讀取用戶編寫的相關(guān)代碼,生成顯示代碼結(jié)構(gòu)的相關(guān)UML圖。幫助理解和維護(hù)企業(yè)購買的未知代碼或手工編寫的代碼。6)多用戶并行開發(fā)支持通過控制單元功能支持多用戶并行開發(fā),確保開發(fā)過程中模型的一致性。7)發(fā)布模型為Web將模型發(fā)布到網(wǎng)絡(luò)上,便于瀏覽和共享,省去打印模型文檔的麻煩。8)其他功能導(dǎo)入與導(dǎo)出模型,支持模型和部分模型元素的復(fù)用。日志記錄功能,保存對(duì)模型執(zhí)行的所有命令的結(jié)果及錯(cuò)誤信息。設(shè)置元素的顯示方式,提供多種顯示類型以強(qiáng)調(diào)突出的效果。定制工具欄,根據(jù)用戶需要添加或刪除按鈕??偨Y(jié)RationalRose是一個(gè)全面的、功能強(qiáng)大的UML建模工具,通過提供多種建模、生成代碼和逆向工程的功能,幫助軟件開發(fā)團(tuán)隊(duì)提高設(shè)計(jì)和開發(fā)效率。它的多用戶支持和Web發(fā)布功能使其在大型軟件開發(fā)項(xiàng)目中尤為有用。3.在Rose中使用框架有什么好處?在RationalRose中使用框架具有以下幾個(gè)顯著的好處:1)節(jié)省時(shí)間和精力框架提供了預(yù)定義的模型元素:使用框架可以避免從頭開始創(chuàng)建模型,因?yàn)榭蚣苤幸呀?jīng)包含了許多預(yù)定義的模型元素。這使得建模工作的重點(diǎn)更多地放在項(xiàng)目獨(dú)有的部分,而不是重復(fù)創(chuàng)建通用的元素。2)保證一致性框架保證了項(xiàng)目之間的一致性:在不同的項(xiàng)目中使用相同的框架,可以確保所有項(xiàng)目的基礎(chǔ)結(jié)構(gòu)和基本元素一致。這有助于開發(fā)團(tuán)隊(duì)在多個(gè)項(xiàng)目之間保持一致的標(biāo)準(zhǔn)和方法,降低了溝通和協(xié)作的難度。3)促進(jìn)協(xié)作框架支持多用戶協(xié)作:RationalRose的控制單元功能允許多個(gè)開發(fā)者同時(shí)在同一個(gè)模型上工作。通過使用框架,團(tuán)隊(duì)成員可以在一個(gè)統(tǒng)一的基礎(chǔ)上進(jìn)行協(xié)作,減少了合并和整合工作時(shí)的沖突和復(fù)雜性。4)增強(qiáng)模型的可復(fù)用性框架提高了模型的可復(fù)用性:框架中的通用元素可以在多個(gè)項(xiàng)目中重復(fù)使用,減少了重新設(shè)計(jì)和重新實(shí)現(xiàn)的工作量。這不僅節(jié)省了時(shí)間,還提高了模型的質(zhì)量和一致性。5)提供標(biāo)準(zhǔn)化的指導(dǎo)框架提供了標(biāo)準(zhǔn)化的指導(dǎo)和最佳實(shí)踐:框架通常包含行業(yè)最佳實(shí)踐和標(biāo)準(zhǔn)化的設(shè)計(jì)模式,這為開發(fā)者提供了指導(dǎo),幫助他們創(chuàng)建高質(zhì)量的模型。6)提高建模效率框架工具簡化了建模過程:RationalRose中框架的使用提供了很多自動(dòng)化的工具和功能,使得建模過程更加高效。例如,自動(dòng)生成代碼、逆向工程功能、模型審查和驗(yàn)證等。實(shí)際操作中的具體好處減少重復(fù)工作:例如,使用J2SE框架將自動(dòng)添加Java相關(guān)的包和類,大大減少了手動(dòng)創(chuàng)建的工作量。提高模型準(zhǔn)確性:通過一致的框架,減少了模型元素之間不一致和邏輯錯(cuò)誤的可能性。簡化管理和維護(hù):框架使得大型項(xiàng)目的管理和維護(hù)更加簡單,因?yàn)樗许?xiàng)目都遵循相同的結(jié)構(gòu)和標(biāo)準(zhǔn)。結(jié)論在RationalRose中使用框架,不僅提高了建模效率和模型質(zhì)量,還促進(jìn)了團(tuán)隊(duì)協(xié)作和項(xiàng)目的一致性。對(duì)于需要快速、高效地創(chuàng)建復(fù)雜軟件系統(tǒng)的開發(fā)團(tuán)隊(duì)來說,使用框架是一個(gè)非常有價(jià)值的選擇。RationalRose的發(fā)布為Web功能如何使用?

答案:操作步驟:菜單欄選擇【Tools】→【W(wǎng)ebPublisher】。在左側(cè)選擇要發(fā)布的模型視圖和包。在【LevelofDetail】區(qū)域選擇細(xì)節(jié)層次。在【Notation】區(qū)域選擇發(fā)布時(shí)的圖示方法。輸入HTML根文件名和路徑。單擊【Diagrams…】選擇圖形格式(Bitmap、PNG、JPEG)。單擊【Publish】發(fā)布為Web。RationalRose的日志窗口有什么作用?如何保存日志?

答案:作用:

用于記錄對(duì)模型執(zhí)行的命令結(jié)果及錯(cuò)誤信息。保存日志:菜單欄選擇【File】→【SaveLogAs】。輸入文件名并保存為擴(kuò)展名為.log的日志文件。一、單選題UML中的哪種事物主要描述系統(tǒng)中的物理元素,如計(jì)算機(jī)資源?A.類B.接口C.組件D.節(jié)點(diǎn)答案:D下列哪一種關(guān)系屬于UML中的依賴關(guān)系?A.泛化B.實(shí)現(xiàn)C.關(guān)聯(lián)D.導(dǎo)入答案:D在UML圖中表示類、屬性、方法的基本符號(hào)是?A.矩形B.圓角矩形C.菱形D.橢圓答案:AUML的擴(kuò)展機(jī)制中,用于對(duì)已有模型元素進(jìn)行修改或精化的機(jī)制是?A.標(biāo)記值B.約束C.構(gòu)造型D.注釋事物答案:C“4+1”視圖模型中的邏輯視圖主要與哪一種UML圖對(duì)應(yīng)?A.順序圖B.用例圖C.部署圖D.類圖答案:D二、對(duì)錯(cuò)題構(gòu)造型的表示方法是使用雙尖括號(hào)將其名稱括起來。

答案:對(duì)泛化關(guān)系描述了兩種模型元素之間的“部分-整體”關(guān)系。

答案:錯(cuò)

(泛化關(guān)系是特殊到一般的歸納分類關(guān)系,描述繼承。)在UML模型圖中,類和接口可以被描述為結(jié)構(gòu)事物。

答案:對(duì)

(結(jié)構(gòu)事物描述靜態(tài)部分,包括類、接口、組件等。)UML圖可以完全表達(dá)模型元素的全部屬性和行為。

答案:錯(cuò)

(UML圖通常只展示部分信息,完整內(nèi)容需參照規(guī)格說明。)“4+1”視圖模型中的場景視圖用于描述邏輯視圖、開發(fā)視圖和進(jìn)程視圖。

答案:錯(cuò)

(場景視圖用于描述系統(tǒng)的用例,與其他四個(gè)視圖協(xié)作。)三、填空題UML中的結(jié)構(gòu)事物包括類、接口、組件、節(jié)點(diǎn)和______。

答案:用例UML中,修飾是對(duì)規(guī)格說明的______或______表示。

答案:文字,圖形“4+1”視圖模型由PhilippeKruchten在______年提出。

答案:1995在“4+1”視圖模型中,主要描述系統(tǒng)運(yùn)行時(shí)性能和并發(fā)特性的視圖是______視圖。

答案:進(jìn)程UML中負(fù)責(zé)聯(lián)系各類事物并構(gòu)造出模型的四種主要關(guān)系包括:關(guān)聯(lián)、______、泛化和實(shí)現(xiàn)。

答案:依賴四、問答題什么是UML中的結(jié)構(gòu)事物和行為事物?它們各自包含哪些內(nèi)容?

答案:結(jié)構(gòu)事物:

通常描述UML模型的靜態(tài)部分,表示概念或物理元素。包括:類接口協(xié)作用例組件節(jié)點(diǎn)主動(dòng)類行為事物:

描述模型中的動(dòng)態(tài)元素,即時(shí)間和空間上的行為動(dòng)作。包括:交互狀態(tài)機(jī)活動(dòng)簡述UML的擴(kuò)展機(jī)制及其主要特性。

答案:構(gòu)造型:

對(duì)已有模型元素進(jìn)行修改或精化,創(chuàng)造出新的模型元素。使用雙尖括號(hào)內(nèi)附構(gòu)造型名稱表示,如<<interface>>。標(biāo)記值:

為模型元素提供額外屬性,用于存儲(chǔ)元屬性信息,表示為名稱-值組合。如{author="JamesRumbaugh"}。約束:

使用文本表達(dá)的語義條件或限制??梢愿郊釉谌魏卧厣?,用于提供額外的語義信息。表示為大括號(hào)內(nèi)文本,如{size>0}。什么是“4+1”視圖模型?各視圖的作用是什么?

答案:“4+1”視圖模型由PhilippeKruchten于1995年提出,通過五個(gè)不同視角描述軟件體系結(jié)構(gòu),包括邏輯視圖、開發(fā)視圖、進(jìn)程視圖、物理視圖和場景視圖。邏輯視圖:

將系統(tǒng)功能分解,展示系統(tǒng)內(nèi)部組織和協(xié)作,實(shí)現(xiàn)系統(tǒng)功能。對(duì)應(yīng)類圖。開發(fā)視圖:

描述模塊組織方式,包括源代碼、包、支持軟件等。對(duì)應(yīng)組件圖。進(jìn)程視圖:

描述系統(tǒng)運(yùn)行特性,側(cè)重并發(fā)、性能、分布等。對(duì)應(yīng)順序圖、狀態(tài)圖、活動(dòng)圖等。物理視圖:

描述硬件配置和拓?fù)浣Y(jié)構(gòu),強(qiáng)調(diào)安裝、通信和拓?fù)浣Y(jié)構(gòu)問題。對(duì)應(yīng)部署圖。場景視圖:

整合其他四個(gè)視圖,將系統(tǒng)用例作為驅(qū)動(dòng),協(xié)調(diào)功能和需求。對(duì)應(yīng)用例圖。UML1.4與UML2中圖的分類有何區(qū)別?

答案:UML2較UML1.4進(jìn)行了圖的擴(kuò)展和分類調(diào)整:新增圖:包圖:在UML2中明確定義,表示包的結(jié)構(gòu)關(guān)系。組合結(jié)構(gòu)圖:顯示結(jié)構(gòu)化類元或協(xié)作的內(nèi)部結(jié)構(gòu)。交互概覽圖:活動(dòng)圖的變體,合并了順序圖和控制流。時(shí)間圖:新增的序列圖形式,表示狀態(tài)變化和時(shí)間標(biāo)度。分類調(diào)整:順序圖、通信圖、交互概覽圖、時(shí)間圖統(tǒng)稱為交互圖。協(xié)作圖的功能大多由通信圖替代。如何利用“4+1”視圖模型進(jìn)行軟件架構(gòu)設(shè)計(jì)?

答案:設(shè)計(jì)步驟:場景視圖:

從用戶需求入手,構(gòu)建系統(tǒng)的場景視圖(用例圖),作為系統(tǒng)的整體驅(qū)動(dòng)力。邏輯視圖:

細(xì)化場景視圖,包括識(shí)別關(guān)鍵交互、設(shè)計(jì)下層元素、使用軟件術(shù)語描述交互邏輯。主要使用類圖表示。開發(fā)視圖:

描述模塊組織方式和靜態(tài)依賴關(guān)系,確保代碼重用性和可維護(hù)性。使用組件圖表示。進(jìn)程視圖:

分析系統(tǒng)運(yùn)行特性,分配進(jìn)程或線程,規(guī)劃運(yùn)行時(shí)交互。使用順序圖、狀態(tài)圖等表示。物理視圖:

規(guī)劃軟件安裝和配置,將軟件系統(tǒng)映射到硬件設(shè)備,優(yōu)化性能。使用部署圖表示。一、單選題在UML用例圖中,表示系統(tǒng)功能的核心建模元素是:A.類B.活動(dòng)C.用例D.節(jié)點(diǎn)答案:C在UML用例圖中,用于表示系統(tǒng)外部與系統(tǒng)交互的實(shí)體是:A.組件B.參與者C.接口D.包答案:B以下哪種關(guān)系表示一個(gè)用例在執(zhí)行時(shí)必須包含另一個(gè)用例的行為?A.泛化B.擴(kuò)展C.實(shí)現(xiàn)D.包含答案:D在用例圖中,用例的擴(kuò)展點(diǎn)用于:A.表示參與者與系統(tǒng)的交互B.表示用例擴(kuò)展行為的觸發(fā)條件C.表示參與者之間的泛化關(guān)系D.表示用例的抽象描述答案:B在UML中,主參與者與次參與者之間的區(qū)別在于:A.主參與者發(fā)起用例,而次參與者僅與用例交互B.主參與者執(zhí)行用例,次參與者被動(dòng)執(zhí)行C.主參與者與系統(tǒng)通信,次參與者不與系統(tǒng)通信D.主參與者啟動(dòng)用例,次參與者擴(kuò)展用例答案:A二、對(duì)錯(cuò)題用例是描述系統(tǒng)功能和服務(wù)的核心建模元素。

答案:對(duì)在UML用例圖中,一個(gè)用例可以主動(dòng)啟動(dòng)另一個(gè)用例。

答案:錯(cuò)

(用例之間不能主動(dòng)啟動(dòng),應(yīng)由參與者觸發(fā)。)擴(kuò)展關(guān)系指的是一個(gè)用例在另一個(gè)用例的行為上增加額外的行為。

答案:對(duì)泛化關(guān)系在用例和參與者之間都可以使用。

答案:對(duì)

(泛化關(guān)系可用于用例之間和參與者之間。)在UML用例圖中,包含關(guān)系與擴(kuò)展關(guān)系的箭頭方向是相同的。

答案:錯(cuò)

(包含關(guān)系的箭頭指向包含用例,擴(kuò)展關(guān)系的箭頭指向基用例。)三、填空題用例圖的基本構(gòu)成元素包括參與者、用例和______。

答案:關(guān)系一個(gè)用例中的參與者可以分為主參與者和______參與者。

答案:次用例之間的依賴關(guān)系有兩種常見形式,分別是______和______。

答案:包含,擴(kuò)展在用例文檔中,______描述了用例開始執(zhí)行前系統(tǒng)狀態(tài)的約束條件。

答案:前置條件在UML中,表示抽象參與者和抽象用例的方法是將其名稱用______字體表示。

答案:斜體四、問答題在用例圖中,什么是參與者?如何識(shí)別系統(tǒng)中的參與者?

答案:參與者:

與系統(tǒng)交互的外部實(shí)體,代表外部用戶、設(shè)備、其他系統(tǒng)等,不是系統(tǒng)的一部分。識(shí)別方法:為系統(tǒng)提供輸入或接收系統(tǒng)輸出的對(duì)象。需要訪問系統(tǒng)功能或信息的第三方系統(tǒng)或設(shè)備??梢杂|發(fā)系統(tǒng)事件的對(duì)象,如時(shí)間觸發(fā)器。維護(hù)系統(tǒng)信息的對(duì)象或角色。參與者分類:主要業(yè)務(wù)參與者:

從用例執(zhí)行中直接受益的用戶。主要系統(tǒng)參與者:

直接與系統(tǒng)交互,發(fā)起業(yè)務(wù)事件的用戶。外部服務(wù)參與者:

響應(yīng)用例請(qǐng)求的外部系統(tǒng)或設(shè)備。外部接收參與者:

接收用例輸出的非主要用戶。在用例圖中,擴(kuò)展關(guān)系和包含關(guān)系有什么區(qū)別?如何使用?

答案:擴(kuò)展關(guān)系:一個(gè)用例在另一個(gè)用例的行為基礎(chǔ)上添加額外行為?;美恢椋瑪U(kuò)展用例的執(zhí)行有條件。使用虛線箭頭指向基用例,附加<<extend>>構(gòu)造型。包含關(guān)系:一個(gè)用例在執(zhí)行時(shí)必須包含另一個(gè)用例的行為?;美蕾囉诎美慕Y(jié)果。使用虛線箭頭指向包含用例,附加<<include>>構(gòu)造型。使用方法:擴(kuò)展關(guān)系:

適用于可選行為或異常處理,如“退訂機(jī)票”用例擴(kuò)展“購買機(jī)票”用例。包含關(guān)系:

適用于重復(fù)使用行為,如“購買機(jī)票”用例包含“查詢航班”用例。簡述用例描述中的基本事件流和擴(kuò)展事件流的區(qū)別。

答案:基本事件流:用例中最核心的事件流,描述理想情況下的標(biāo)準(zhǔn)交互過程。按交互先后順序編號(hào)。擴(kuò)展事件流:基于基本事件流的分支或異常情況的處理。使用前綴“A-”加上基本流編號(hào)表示,如“A-2”。示例:基本事件流:用戶提交訂單信息。系統(tǒng)驗(yàn)證訂單信息并反饋確認(rèn)消息。擴(kuò)展事件流:

A-2如果訂單信息非法,系統(tǒng)提示用戶重新提交訂單。如何在用例圖中使用泛化關(guān)系?泛化關(guān)系有什么作用?

答案:使用方法:在參與者或用例之間建立父子關(guān)系。子用例或子參與者繼承父用例或父參與者的屬性和行為。使用實(shí)線三角箭頭,箭頭指向父元素。作用:簡化建模:

通過繼承減少重復(fù)定義,簡化模型設(shè)計(jì)。提升復(fù)用性:

子元素可以復(fù)用父元素的行為和屬性。層次化結(jié)構(gòu):

提供更清晰的模型層次結(jié)構(gòu)。示例:參與者泛化:

“管理員”與“用戶”是“系統(tǒng)角色”的子參與者。用例泛化:

“支付訂單”是“交易訂單”的子用例。用例圖中的“擴(kuò)展點(diǎn)”是什么?如何定義和使用擴(kuò)展點(diǎn)?

答案:擴(kuò)展點(diǎn):

基用例中用于決定是否執(zhí)行擴(kuò)展用例的觸發(fā)條件或位置。定義:

在基用例的規(guī)格說明中定義擴(kuò)展點(diǎn),指明條件或插入位置。使用:擴(kuò)展用例檢查擴(kuò)展點(diǎn)的條件,決定是否執(zhí)行擴(kuò)展行為。基用例執(zhí)行到擴(kuò)展點(diǎn)時(shí),暫停執(zhí)行并調(diào)用擴(kuò)展用例。擴(kuò)展用例執(zhí)行后,基用例繼續(xù)執(zhí)行。示例:擴(kuò)展點(diǎn)定義:

“注冊(cè)”用例包含擴(kuò)展點(diǎn)“身份驗(yàn)證信息”。擴(kuò)展關(guān)系:

“檢查實(shí)名信息”擴(kuò)展“注冊(cè)”用例的“身份驗(yàn)證信息”擴(kuò)展點(diǎn)。五、應(yīng)用題(1)根據(jù)題目描述可以分析出系統(tǒng)的參與者與用例。教務(wù)管理人員有登錄、教學(xué)計(jì)劃管理、名單管理、成績管理與課程分配用例,打印任課通知書作為課程分配用例的擴(kuò)展用例存在。學(xué)生有登錄及選課用例。教師包括登錄及成績管理用例,生成成績單作為成績管理用例的擴(kuò)展用例存在。用例圖可參考下圖。(2)首先確定系統(tǒng)的參與者包括工作人員與客戶兩個(gè)。工作人員作為客戶與系統(tǒng)交互的代理有申請(qǐng)開戶、存款及取款用例。打印存折用例作為申請(qǐng)開戶的擴(kuò)展用例存在??蛻粲休斎朊艽a及設(shè)置密碼用例,二者分別作為取款用例以及申請(qǐng)開戶用例的包含用例存在。用例圖可參考下圖。一、單選題在類圖中,用于描述類或接口之間關(guān)系的符號(hào)是:A.菱形B.實(shí)線箭頭C.空心三角箭頭D.實(shí)線或虛線答案:D在UML中,用于描述系統(tǒng)中一組類型及其之間的關(guān)聯(lián)的圖是:A.用例圖B.類圖C.部署圖D.順序圖答案:B在類圖中,表示類與類之間“整體-部分”關(guān)系的特殊關(guān)聯(lián)關(guān)系是:A.依賴關(guān)系B.泛化關(guān)系C.組合關(guān)系D.實(shí)現(xiàn)關(guān)系答案:C在類圖中,類的屬性和操作分別出現(xiàn)在類的哪兩個(gè)部分?A.頂端和中間B.中間和尾端C.頂端和尾端D.尾端和頂端答案:B哪種關(guān)系在類圖中使用空心三角箭頭表示?A.關(guān)聯(lián)關(guān)系B.泛化關(guān)系C.實(shí)現(xiàn)關(guān)系D.依賴關(guān)系答案:B二、對(duì)錯(cuò)題類圖中,接口不能有任何屬性。

答案:對(duì)泛化關(guān)系只能用于類與類之間的關(guān)系,不適用于接口。

答案:錯(cuò)

(泛化關(guān)系適用于類與類之間以及接口之間。)在UML中,組合關(guān)系比聚合關(guān)系更為強(qiáng)大和嚴(yán)格。

答案:對(duì)

(組合關(guān)系要求整體和部分的生命周期一致。)在類圖中,關(guān)聯(lián)類是與類的關(guān)聯(lián)關(guān)系的特例。

答案:對(duì)

(關(guān)聯(lián)類是一種特殊的關(guān)聯(lián)關(guān)系,具有類的特性。)類圖只能用于描述系統(tǒng)的靜態(tài)結(jié)構(gòu),不能用于描述邏輯數(shù)據(jù)庫模型。

答案:錯(cuò)

(類圖不僅可以描述靜態(tài)結(jié)構(gòu),還可用于邏輯數(shù)據(jù)庫建模。)三、填空題類圖主要描述系統(tǒng)的______結(jié)構(gòu)。

答案:靜態(tài)在UML中,表示類的屬性的數(shù)據(jù)類型的部分是______。

答案:類型聚合關(guān)系和組合關(guān)系分別用______和______表示。

答案:空心菱形,實(shí)心菱形泛化關(guān)系的語義表示一種“______”的關(guān)系。

答案:is-a-kind-of在類圖中,類之間的繼承關(guān)系稱為______。

答案:泛化關(guān)系四、問答題在類圖中,什么是類的屬性和操作?請(qǐng)分別說明它們的定義和語法。

答案:屬性:

表示類的特性,描述類的實(shí)例可以取值的范圍。語法格式如下:

可見性opt屬性名?:類型?opt多重性opt?=初始值?opt?{特性}?opt可見性:表示公有屬性表示私有屬性表示保護(hù)屬性類型:

屬性的數(shù)據(jù)類型,可以是系統(tǒng)類型或用戶自定義類型。多重性:

表示屬性的取值范圍,如[0..*]表示0個(gè)或多個(gè)。操作:

表示類的行為,描述類的實(shí)例可以執(zhí)行的服務(wù)。語法格式如下:

可見性opt操作名(?參數(shù)列表?opt)?:返回類型?opt?{特性}?opt參數(shù)列表:

定義操作的輸入?yún)?shù),格式為[方向]參數(shù)名:類型[=默認(rèn)值]。返回類型:

表示操作的返回值類型。特性:

表示操作的并發(fā)語義、查詢屬性、葉子屬性等。請(qǐng)簡述泛化關(guān)系與實(shí)現(xiàn)關(guān)系的區(qū)別與相似之處。

答案:相似之處:都用于表示類或接口之間的繼承關(guān)系。都使用空心三角箭頭表示。區(qū)別:泛化關(guān)系:

表示類與類之間、接口與接口之間的繼承關(guān)系,子類或子接口繼承父類或父接口的屬性和操作。

語義表示“is-a-kind-of”關(guān)系,如“狗是動(dòng)物的一種”。實(shí)現(xiàn)關(guān)系:

表示類與接口之間的關(guān)系,類實(shí)現(xiàn)接口中定義的操作。

語義表示“implements”關(guān)系,如“狗實(shí)現(xiàn)了可叫的接口”。如何使用類圖表示系統(tǒng)的靜態(tài)結(jié)構(gòu)?請(qǐng)列舉類圖的主要構(gòu)成元素及其作用。

答案:類圖的主要構(gòu)成元素:類:

系統(tǒng)中的主要實(shí)體,表示具有相同屬性和行為的一組對(duì)象。

作用:定義系統(tǒng)中的概念或物理實(shí)體。接口:

一組操作的集合,表示類或組件提供的服務(wù)。

作用:描述服務(wù)的契約和規(guī)范。關(guān)聯(lián)關(guān)系:

類或接口之間的連接關(guān)系。

作用:描述系統(tǒng)中實(shí)體之間的連接和交互。泛化關(guān)系:

父類與子類之間的繼承關(guān)系。

作用:實(shí)現(xiàn)屬性和行為的繼承,表示“is-a-kind-of”關(guān)系。實(shí)現(xiàn)關(guān)系:

類與接口之間的關(guān)系。

作用:實(shí)現(xiàn)接口中的操作,表示“implements”關(guān)系。聚合/組合關(guān)系:

類之間的“整體-部分”關(guān)系。

作用:表示整體與部分之間的結(jié)構(gòu)層次關(guān)系。什么是類的高級(jí)概念?請(qǐng)列舉并簡要說明。

答案:抽象類:

不可實(shí)例化的類,通常作為父類被子類繼承。表示方法:

類名使用斜體表示。模板類:

帶有未綁定形式參數(shù)的類,類似于泛型或模板。表示方法:

使用<<template>>構(gòu)造型,并在類名后附帶參數(shù)。關(guān)聯(lián)類:

具有類特性的關(guān)聯(lián)關(guān)系,表示關(guān)聯(lián)中的屬性和操作。表示方法:

類符號(hào)與關(guān)聯(lián)關(guān)系通過虛線連接。分析類:

在開發(fā)過程中用于表達(dá)職責(zé)簇的原型類。類型:邊界類:用于對(duì)外部環(huán)境與內(nèi)部系統(tǒng)的交互進(jìn)行建模??刂祁悾簩?duì)系統(tǒng)特定行為進(jìn)行控制。實(shí)體類:表示存儲(chǔ)信息的具體事物。面向?qū)ο笤O(shè)計(jì)的五大原則是什么?請(qǐng)列舉并簡要說明。

答案:開閉原則(Open-ClosedPrinciple):

軟件實(shí)體應(yīng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。解釋:

新功能的添加應(yīng)通過擴(kuò)展現(xiàn)有模塊實(shí)現(xiàn),而不應(yīng)修改原有模塊。里氏替換原則(LiskovSubstitutionPrinciple):

子類應(yīng)可以完全替換父類。解釋:

如果S是T的子類,則T類的對(duì)象應(yīng)可被S類對(duì)象替代而不改變程序特性。依賴倒置原則(DependencyInversionPrinciple):

高層次模塊不應(yīng)依賴于低層次模塊,二者都應(yīng)依賴于抽象。解釋:

抽象應(yīng)獨(dú)立于具體實(shí)現(xiàn),高層模塊應(yīng)通過接口或抽象類進(jìn)行依賴。接口分離原則(InterfaceSegregationPrinciple):

客戶類不應(yīng)依賴其不使用的接口。解釋:

應(yīng)使用多個(gè)小接口而非一個(gè)大接口。單一職責(zé)原則(SingleResponsibilityPrinciple):

每個(gè)類都應(yīng)只有一個(gè)職責(zé),并完全封裝該職責(zé)。解釋:

一個(gè)類應(yīng)只有一個(gè)引起變化的原因,避免職責(zé)分散導(dǎo)致高耦合。五、應(yīng)用題(1)由題目描述可以判斷出系統(tǒng)具有的實(shí)體類包括公司、普通雇員、部門經(jīng)理以及總經(jīng)理。其中后三者可以由統(tǒng)一的員工類泛化而來。根據(jù)題目描述在各個(gè)類之間建立關(guān)聯(lián)關(guān)系:公司與總經(jīng)理之間為1對(duì)1關(guān)系,總經(jīng)理和部門經(jīng)理之間為1對(duì)多關(guān)系,部門經(jīng)理與普通雇員之間也為1對(duì)多關(guān)系。類圖可參考下圖。(2)根據(jù)題意可以抽象出系統(tǒng)的實(shí)體類包括教師、習(xí)題、習(xí)題答案、作業(yè)題板、練習(xí)題板以及學(xué)生。作業(yè)題板與練習(xí)題板可以泛化為題板抽象類。根據(jù)描述對(duì)各個(gè)類添加適當(dāng)?shù)膶傩?。在各個(gè)類之間按照文字描述建立關(guān)聯(lián)關(guān)系。教師與習(xí)題之間構(gòu)成1對(duì)多關(guān)系,教師與作業(yè)題板構(gòu)成1對(duì)多關(guān)系,習(xí)題與習(xí)題答案之間構(gòu)成1對(duì)1關(guān)系,習(xí)題與題板之間構(gòu)成多對(duì)多關(guān)系且這一關(guān)聯(lián)關(guān)系可以描述為聚合關(guān)系,學(xué)生與作業(yè)題板構(gòu)成多對(duì)多關(guān)系,學(xué)生與練習(xí)題板構(gòu)成1對(duì)多關(guān)系。類圖可參考下圖。一、單選題對(duì)象圖用于描述系統(tǒng)在某一時(shí)刻的狀態(tài),這個(gè)狀態(tài)通常被稱為:A.系統(tǒng)框架B.系統(tǒng)靜態(tài)結(jié)構(gòu)C.系統(tǒng)快照D.系統(tǒng)行為答案:C在對(duì)象圖中,鏈?zhǔn)且韵履姆N關(guān)系的實(shí)例?A.泛化關(guān)系B.依賴關(guān)系C.關(guān)聯(lián)關(guān)系D.實(shí)現(xiàn)關(guān)系答案:C在對(duì)象圖中,對(duì)象的表示方法是:A.矩形B.圓形C.菱形D.菱形帶箭頭答案:A在UML對(duì)象圖中,鏈的作用類似于:A.類圖中的泛化關(guān)系B.類圖中的實(shí)現(xiàn)關(guān)系C.類圖中的關(guān)聯(lián)關(guān)系D.類圖中的依賴關(guān)系答案:C在對(duì)象圖中,如果對(duì)象沒有顯示名稱或類型,則稱為:A.關(guān)聯(lián)對(duì)象B.泛化對(duì)象C.匿名對(duì)象D.虛擬對(duì)象答案:C二、對(duì)錯(cuò)題對(duì)象圖可以看作類圖的實(shí)例。

答案:對(duì)對(duì)象圖主要用于表示系統(tǒng)的行為而不是靜態(tài)結(jié)構(gòu)。

答案:錯(cuò)

(對(duì)象圖用于表示系統(tǒng)的靜態(tài)結(jié)構(gòu)和狀態(tài)。)對(duì)象圖中的對(duì)象一定是有具體類型的實(shí)例。

答案:對(duì)鏈?zhǔn)穷愔g泛化關(guān)系的實(shí)例。

答案:錯(cuò)

(鏈?zhǔn)穷愔g關(guān)聯(lián)關(guān)系的實(shí)例。)在對(duì)象圖中,匿名對(duì)象是指沒有類型的對(duì)象。

答案:錯(cuò)

(匿名對(duì)象是指沒有名稱的對(duì)象。)三、填空題在對(duì)象圖中,對(duì)象通過______與其他對(duì)象相互關(guān)聯(lián)。

答案:鏈對(duì)象圖顯示了系統(tǒng)在______的快照。

答案:某一時(shí)刻在對(duì)象圖中,對(duì)象的狀態(tài)由對(duì)象的______及其當(dāng)前值組成。

答案:屬性對(duì)象圖中的鏈對(duì)應(yīng)于類圖中的______關(guān)系。

答案:關(guān)聯(lián)在對(duì)象圖中,用______表示對(duì)象的類型。

答案:冒號(hào)加類型名四、問答題什么是對(duì)象圖?它的主要組成元素有哪些?

答案:對(duì)象圖:

顯示某一時(shí)刻的一組對(duì)象及它們之間的關(guān)系??梢钥醋魇穷悎D的實(shí)例,用來表達(dá)系統(tǒng)在某一時(shí)刻的狀態(tài)。

舉個(gè)例子,一場足球比賽的全局結(jié)構(gòu)相當(dāng)于系統(tǒng)的類圖,而某一時(shí)間暫停時(shí)的球員位置就是對(duì)象圖。主要組成元素:對(duì)象:

類的實(shí)例,表示某一時(shí)刻對(duì)象的屬性和值。使用矩形表示,名稱欄顯示對(duì)象名與類型名。標(biāo)準(zhǔn)表示法:stu:Student匿名表示法::Student省略類名表示法:stu鏈:

關(guān)聯(lián)關(guān)系的實(shí)例,是兩個(gè)或多個(gè)對(duì)象之間的連接。使用實(shí)線段表示,可以顯示角色名稱。對(duì)象圖與類圖之間有什么聯(lián)系和區(qū)別?

答案:聯(lián)系:對(duì)象圖是類圖的實(shí)例,類圖中的類在對(duì)象圖中表現(xiàn)為對(duì)象。類圖中的關(guān)聯(lián)關(guān)系在對(duì)象圖中表現(xiàn)為鏈。區(qū)別:作用不同:

類圖表示系統(tǒng)的全局靜態(tài)結(jié)構(gòu),對(duì)象圖表示某一時(shí)刻系統(tǒng)的快照。范圍不同:

類圖完整描述系統(tǒng)中的類型和關(guān)系,對(duì)象圖只描述某一時(shí)刻的部分對(duì)象及其狀態(tài)。動(dòng)態(tài)與靜態(tài):

類圖為靜態(tài)模型,對(duì)象圖表示動(dòng)態(tài)快照。屬性與操作:

類圖中包含類的屬性和操作,而對(duì)象圖只顯示對(duì)象的屬性。在對(duì)象圖中,如何表示對(duì)象的狀態(tài)和對(duì)象之間的關(guān)系?

答案:對(duì)象的狀態(tài):

對(duì)象的狀態(tài)由對(duì)象的屬性及其當(dāng)前值組成,使用類似于類的矩形框表示。屬性的語法:屬性名=當(dāng)前值示例:makefileCopycodestu:Student---------------------age=20name="John"對(duì)象之間的關(guān)系:

對(duì)象之間的關(guān)系通過鏈表示,鏈?zhǔn)顷P(guān)聯(lián)關(guān)系的實(shí)例,使用實(shí)線段連接相關(guān)對(duì)象??梢栽阪湹膬啥颂砑咏巧Q。示例:markdownCopycodeobjA:ClassAobjB:ClassB-----------------------------nameA="ObjectA"nameB="ObjectB"-----------------------------|roleName|+----------------------+請(qǐng)簡述對(duì)象圖的建模技術(shù)及逆向工程策略。

答案:建模技術(shù):識(shí)別建模機(jī)制:

選擇系統(tǒng)的某個(gè)功能或行為,用類圖或協(xié)作描述機(jī)制。識(shí)別參與元素:

識(shí)別類、接口及其他相關(guān)元素,以及它們之間的關(guān)系。識(shí)別并選擇對(duì)象:

確定某一時(shí)刻的對(duì)象集。顯示對(duì)象的狀態(tài):

顯示對(duì)象的屬性及其當(dāng)前值。識(shí)別并顯示鏈:

顯示對(duì)象之間的鏈及其角色名稱。逆向工程策略:選擇目標(biāo):

設(shè)置調(diào)試的語境,選擇特定操作或類實(shí)例。執(zhí)行調(diào)試工具:

使用工具在某一時(shí)刻停止執(zhí)行。識(shí)別對(duì)象集:

識(shí)別協(xié)作的對(duì)象集,并顯示它們?cè)趯?duì)象圖中。顯示對(duì)象狀態(tài):

顯示對(duì)象的屬性值。識(shí)別鏈:

識(shí)別對(duì)象之間存在的鏈。簡化或擴(kuò)展:

簡化對(duì)象圖或擴(kuò)展相關(guān)對(duì)象鄰居。如何利用對(duì)象圖對(duì)機(jī)票預(yù)訂系統(tǒng)建模?請(qǐng)簡要說明。

答案:確定對(duì)象及狀態(tài):用戶對(duì)象:user:User,屬性name和id機(jī)票對(duì)象:ticket:Ticket,屬性ticketNumber和price航班對(duì)象:flight:Flight,屬性flightNumber和destination機(jī)場對(duì)象:airport:Airport,屬性name和location補(bǔ)充對(duì)象間的鏈:user與ticket之間的鏈表示用戶購買的機(jī)票。flight與ticket之間的鏈表示機(jī)票屬于哪個(gè)航班。airport與flight之間的鏈表示航班所屬的機(jī)場。最終對(duì)象圖:sqlCopycodeuser:User---------------------name="Alice"id="U123"---------------------|+-----------------------+|purchased|ticket:Ticket---------------------ticketNumber="T456"price=500.0---------------------|+-----------------------+|belongsTo|flight:Flight---------------------flightNumber="F789"destination="NewYork"---------------------|+-----------------------+|operatesFrom|airport:Airport---------------------name="JFK"location="NewYork"---------------------一、單選題在UML中,包圖的主要作用是:A.描述系統(tǒng)的行為B.描述系統(tǒng)的狀態(tài)C.描述系統(tǒng)的靜態(tài)結(jié)構(gòu)D.描述系統(tǒng)的執(zhí)行流程答案:C包圖中的包可以通過哪種方式表示其內(nèi)容?A.關(guān)聯(lián)關(guān)系B.外部表示法C.實(shí)現(xiàn)關(guān)系D.依賴關(guān)系答案:B以下哪一種構(gòu)造型用于表示包中的子系統(tǒng)?A.<<framework>>B.<<stub>>C.<<facade>>D.<<subsystem>>答案:D包的嵌套通常不宜過深,一般以多少層為宜?A.1-2層B.2-3層C.3-4層D.4-5層答案:B以下哪種關(guān)系用于描述包之間的依賴性?A.泛化關(guān)系B.實(shí)現(xiàn)關(guān)系C.關(guān)聯(lián)關(guān)系D.依賴關(guān)系答案:D二、對(duì)錯(cuò)題包圖只能用于組織用例圖。

答案:錯(cuò)

(包圖不僅可以組織用例圖,還可以組織類圖、組件圖等。)包的構(gòu)造型<<framework>>用于描述包含可重用設(shè)計(jì)模式的包。

答案:對(duì)包的引入關(guān)系通常使用虛線箭頭表示。

答案:對(duì)包的依賴關(guān)系通常會(huì)導(dǎo)致循環(huán)依賴。

答案:錯(cuò)

(循環(huán)依賴通常是由于分包不當(dāng)造成的,可以通過調(diào)整包結(jié)構(gòu)解決。)包的可見性決定了包外元素是否可以訪問包內(nèi)元素。

答案:對(duì)三、填空題包圖是描述系統(tǒng)中包和所包含元素的______方式的圖。

答案:組織包的外部表示法使用帶______的小圓圈的線段來表示包中的元素。

答案:十字包內(nèi)元素的可見性包括公有、保護(hù)和______三種類型。

答案:私有在包的分組原則中,要求包與包之間盡可能保持______。

答案:獨(dú)立包的依賴關(guān)系通常表示為一根帶______箭頭的虛線。

**答案:實(shí)心】四、問答題什么是包圖?它的主要作用是什么?

答案:包圖:

用來描述模型中的包和所包含元素的組織方式的圖,是維護(hù)和控制系統(tǒng)總體結(jié)構(gòu)的重要內(nèi)容。通過對(duì)包及其關(guān)系的描述,展示系統(tǒng)的模塊及模塊之間的依賴關(guān)系。主要作用:組織模型元素:

將大量類、接口、組件等分組組織到不同的包中,提高可維護(hù)性。表示模塊關(guān)系:

通過包之間的依賴關(guān)系、引入關(guān)系等,清晰展示模塊之間的關(guān)系。維護(hù)體系結(jié)構(gòu):

通過包圖維護(hù)系統(tǒng)的總體架構(gòu),控制模塊間的耦合性。包圖的主要組成元素有哪些?請(qǐng)簡要說明。

答案:包:

用于組織模型中的元素,表示模型中的模塊。使用文件夾形狀的矩形表示,包名顯示在頂部,可以顯示或隱藏包中元素。包的可見性:公有(+)、保護(hù)(#)、私有(-)包的構(gòu)造型:<<system>>、<<subsystem>>、<<facade>>、<<stub>>、<<framework>>包之間的關(guān)系:依賴關(guān)系:

表示一個(gè)包依賴于另一個(gè)包的公有元素,使用虛線箭頭表示。引入(<<import>>):將被引入包的公有元素添加到引入方的命名空間中。訪問(<<access>>):將被訪問包的公有元素添加到訪問方的私有命名空間中。注解和約束:

為包或包之間的關(guān)系添加額外信息或條件,增強(qiáng)模型的表達(dá)力。在包圖中,包與包之間的依賴關(guān)系有哪些類型?如何使用?

答案:依賴關(guān)系:

表示包與包之間的依賴性,通常根據(jù)不同的構(gòu)造型分為以下幾種類型:引入(<<import>>):作用:

將被引入包的公有元素添加到引入方的命名空間中,使得引入方可以直接使用簡單名訪問。表示方法:

使用帶實(shí)心箭頭的虛線,箭頭指向被引入的包。示例:cssCopycode<<import>>A----------------->B訪問(<<access>>):作用:

將被訪問包的公有元素添加到訪問方的私有命名空間中,使得訪問方可以引用但不能導(dǎo)出。表示方法:

使用帶實(shí)心箭頭的虛線,箭頭指向被訪問的包。示例:cssCopycode<<access>>A----------------->B包的分包原則有哪些?請(qǐng)簡述每一項(xiàng)。

答案:元素不能“狡兔三窟”:同一個(gè)元素不能在多個(gè)包中重復(fù)出現(xiàn),保持包結(jié)構(gòu)的層次性。相同包內(nèi)元素不能重名:包內(nèi)同種類元素的名稱必須唯一,不同種類元素可以重名。包內(nèi)元素要緊密聯(lián)系:包內(nèi)元素應(yīng)該具有相同或相似的性質(zhì),保持高內(nèi)聚。包與包盡可能保持獨(dú)立:包與包之間的依賴關(guān)系應(yīng)盡量減少,保持低耦合。如何利用包圖對(duì)機(jī)票預(yù)訂系統(tǒng)的用例圖建模?請(qǐng)簡要說明。

答案:組織包結(jié)構(gòu):信用評(píng)價(jià)包:

包含用例“檢查信用等級(jí)”和“修改信用等級(jí)”。登錄注冊(cè)包:

包含用例“登錄”和“注冊(cè)”。后臺(tái)操作包:

包含用例“設(shè)定航班安排”。核心業(yè)務(wù)包:

包含其他用例,如“預(yù)訂機(jī)票”、“退票”等。繪制包圖:diffCopycode+-------------------+|信用評(píng)價(jià)||+檢查信用等級(jí)||+修改信用等級(jí)|+-------------------+<<import>>|+-------------------+|登錄注冊(cè)||+登錄||+注冊(cè)|+-------------------+<<import>>|+-------------------+|后臺(tái)操作||+設(shè)定航班安排|+-------------------+<<import>>|+-------------------+|核心業(yè)務(wù)||+預(yù)訂機(jī)票||+退票|+-------------------+五、應(yīng)用題(1)根據(jù)題目描述創(chuàng)建三個(gè)包并描述其依賴關(guān)系即可。包圖可參考下圖。(2)答案不唯一,讀者只需要從某個(gè)角度將用例分到不同包中即可。一、單選題順序圖中,哪個(gè)元素用來表示對(duì)象在交互過程中的存在時(shí)間?A.對(duì)象(Object)B.生命線(Lifeline)C.激活(Activation)D.消息(Message)答案:B在順序圖中,消息(Message)一般表示什么?A.對(duì)象的屬性B.對(duì)象之間的通信C.對(duì)象的狀態(tài)D.對(duì)象的類答案:B在順序圖中,表示消息傳遞的箭頭從哪開始?A.從接收者的生命線開始B.從發(fā)送者的生命線開始C.從對(duì)象的頂部開始D.從對(duì)象的底部開始答案:B在UML順序圖中,表示一個(gè)對(duì)象執(zhí)行動(dòng)作所經(jīng)歷的時(shí)間段是什么?A.對(duì)象(Object)B.生命線(Lifeline)C.激活(Activation)D.消息(Message)答案:C在順序圖中,哪個(gè)元素表示消息的觸發(fā)事件?A.對(duì)象(Object)B.生命線(Lifeline)C.激活(Activation)D.消息(Message)答案:D二、對(duì)錯(cuò)題順序圖中的縱向軸表示不同的對(duì)象。(錯(cuò))答案:錯(cuò)順序圖中的生命線用實(shí)線表示。(錯(cuò))答案:錯(cuò)消息傳遞可以在順序圖中顯示為箭頭。(對(duì))答案:對(duì)順序圖中,激活表示對(duì)象的存在時(shí)間。(錯(cuò))答案:錯(cuò)順序圖中的對(duì)象可以是系統(tǒng)的參與者。(對(duì))答案:對(duì)三、填空題順序圖中表示對(duì)象交互的時(shí)間順序的二維圖,縱向是表示__________。答案:時(shí)間軸在順序圖中,消息傳遞的箭頭表示從一個(gè)對(duì)象的__________指向另一個(gè)對(duì)象的生命線。答案:生命線順序圖中的激活用__________表示,顯示在生命線上。答案:細(xì)長的矩形順序圖主要由對(duì)象、生命線、激活和__________構(gòu)成。答案:消息在順序圖中,創(chuàng)建對(duì)象時(shí)使用的消息類型是__________。答案:<<create>>四、問答題什么是順序圖?順序圖主要有哪些元素構(gòu)成?答案:順序圖是按時(shí)間順序顯示對(duì)象交互的圖,主要用于描述系統(tǒng)功能的不同角色之間相互協(xié)作、傳遞消息的順序關(guān)系。順序圖主要包括對(duì)象(Object)、生命線(Lifeline)、激活(Activation)和消息(Message)四個(gè)元素。順序圖中的生命線是什么?有什么作用?答案:生命線代表了一次交互中的一個(gè)參與對(duì)象在一段時(shí)間內(nèi)的存在,顯示為一條垂直的虛線。生命線表示對(duì)象在交互過程中的存在時(shí)間,可以隨時(shí)發(fā)送消息給它。請(qǐng)解釋順序圖中的激活元素及其作用。答案:激活,又稱為控制焦點(diǎn),表示一個(gè)對(duì)象執(zhí)行一個(gè)動(dòng)作所經(jīng)歷的時(shí)間段,顯示為細(xì)長的矩形,顯示在生命線上。激活表示對(duì)象在執(zhí)行某個(gè)任務(wù)或被占用的時(shí)間段。順序圖中的消息可以分為哪幾種主要類型?答案:順序圖中的消息可以分為調(diào)用(call)、返回(return)、創(chuàng)建(create)和銷毀(destroy)四種主要類型。調(diào)用消息表示對(duì)象之間的調(diào)用;返回消息表示對(duì)象接收到其他對(duì)象的消息后的返回;創(chuàng)建消息表示創(chuàng)建一個(gè)對(duì)象時(shí)發(fā)送的消息;銷毀消息表示銷毀一個(gè)對(duì)象時(shí)發(fā)送的消息。在UML2中的順序圖中,如何表示循環(huán)行為和條件行為?答案:在UML2中的順序圖中,通過“片段”(fragment)機(jī)制來表示循環(huán)行為和條件行為。常見的控制類型包括可選片段(opt)、條件片段(alt)、并行片段(par)、循環(huán)片段(loop)和交互片段(ref)??蛇x片段表示單條件分支;條件片段表示多條件分支;并行片段表示并行執(zhí)行的子片段;循環(huán)片段表示循環(huán)結(jié)構(gòu);交互片段表示對(duì)一段交互的引用。五、應(yīng)用題(1)根據(jù)題目描述確定順序圖中的對(duì)象包括工作人員、銀行系統(tǒng)及數(shù)據(jù)庫,按照交互的流程依次在對(duì)象之間建立消息即可。順序圖可參考下圖。(2)確定交互過程包括的對(duì)象有考勤系統(tǒng)界面、指紋識(shí)別系統(tǒng)以及數(shù)據(jù)庫登記系統(tǒng)。順序圖可參考下圖。一、單選題在協(xié)作圖中,用于表示兩個(gè)對(duì)象之間交互的連接線稱為什么?A.消息(Message)B.鏈(Link)C.生命線(Lifeline)D.對(duì)象(Object)答案:B協(xié)作圖中,哪種表示法用于表示對(duì)象之間的消息傳遞?A.生命線B.鏈C.箭頭D.激活答案:C在協(xié)作圖中,消息的順序通過什么來表示?A.字母B.阿拉伯?dāng)?shù)字C.羅馬數(shù)字D.特殊符號(hào)答案:B協(xié)作圖中,用于表示對(duì)象的符號(hào)是什么?A.圓形B.方形C.矩形D.菱形答案:C協(xié)作圖中,如何表示多重對(duì)象?A.用多條鏈連接B.用重疊的對(duì)象圖標(biāo)C.用不同顏色區(qū)分D.用虛線表示答案:B二、對(duì)錯(cuò)題協(xié)作圖中的鏈只能連接兩個(gè)對(duì)象。(錯(cuò))答案:錯(cuò)協(xié)作圖與順序圖的主要元素是相同的。(對(duì))答案:對(duì)在協(xié)作圖中,消息箭頭表示消息的發(fā)送者。(錯(cuò))答案:錯(cuò)協(xié)作圖不能表示對(duì)象的激活情況。(對(duì))答案:對(duì)協(xié)作圖可以表示對(duì)象的創(chuàng)建與銷毀。(錯(cuò))答案:錯(cuò)三、填空題協(xié)作圖中表示對(duì)象之間的連接線稱為__________。答案:鏈協(xié)作圖中的消息通過__________在鏈上表示。答案:箭頭協(xié)作圖中用__________表示對(duì)象實(shí)例。答案:矩形協(xié)作圖中的對(duì)象可以是系統(tǒng)的參與者或任何有效的__________。答案:系統(tǒng)對(duì)象在協(xié)作圖中,消息的順序通常用__________表示。答案:阿拉伯?dāng)?shù)字四、問答題什么是協(xié)作圖?協(xié)作圖主要有哪些元素構(gòu)成?答案:協(xié)作圖是用來表示多個(gè)對(duì)象在協(xié)同工作達(dá)成共同目標(biāo)過程中互相通信的情況。協(xié)作圖主要包括對(duì)象(Object)、鏈(Link)和消息(Message)三個(gè)元素。協(xié)作圖中的鏈有什么作用?答案:協(xié)作圖中的鏈表示兩個(gè)對(duì)象之間的獨(dú)立連接,用于傳輸或?qū)崿F(xiàn)消息的傳遞。鏈還可以顯示對(duì)象之間的關(guān)聯(lián)關(guān)系,并可以進(jìn)行可見性修飾。協(xié)作圖中的消息如何表示?它們有什么類型?答案:協(xié)作圖中的消息通過在鏈上添加短箭頭來表示,箭頭指向消息的接收者。消息可以有多種類型,包括調(diào)用、返回、創(chuàng)建和銷毀消息等。協(xié)作圖和順序圖有哪些相同點(diǎn)和不同點(diǎn)?答案:相同點(diǎn)包括:主要元素相同,表達(dá)語義相同,對(duì)象責(zé)任相同。不同點(diǎn)包括:協(xié)作圖強(qiáng)調(diào)對(duì)象的結(jié)構(gòu)和關(guān)聯(lián)關(guān)系,而順序圖強(qiáng)調(diào)消息傳遞的時(shí)間順序;順序圖可以顯式表現(xiàn)對(duì)象的創(chuàng)建與銷毀和激活情況,而協(xié)作圖則不能。請(qǐng)解釋協(xié)作圖中如何表示多重對(duì)象。答案:在協(xié)作圖中,多重對(duì)象表示為對(duì)象圖標(biāo)的重疊,這表示一組同類型的對(duì)象在交互中執(zhí)行相同的操作。五、應(yīng)用題(1)首先確定參與該交互的對(duì)象,可以劃分成信息輸入界面類、用戶實(shí)體類、取款信息控制類以及打印機(jī)控制類的匿名對(duì)象。根據(jù)對(duì)象所屬類的關(guān)聯(lián),我們需要在取款信息控制類的對(duì)象與其他三個(gè)對(duì)象之間分別添加鏈。最后按照交互過程在鏈上依次添加消息即可。協(xié)作圖可參考下圖。(2)根據(jù)題意確定參與交互的四個(gè)主要對(duì)象,即Customer參與者匿名實(shí)例、Front類匿名對(duì)象、Register匿名對(duì)象以及Dispenser類匿名對(duì)象。在對(duì)象之間添加鏈來表示關(guān)聯(lián),注意有些對(duì)象存在自身鏈。最后在鏈上添加消息即可。協(xié)作圖可參考下圖。一、單選題在UML狀態(tài)圖中,哪個(gè)元素用來表示對(duì)象生命周期中的一種條件或情況?A.狀態(tài)(State)B.轉(zhuǎn)換(Transition)C.事件(Event)D.動(dòng)作(Action)答案:A狀態(tài)圖中,表示兩種狀態(tài)間關(guān)系的元素是什么?A.狀態(tài)(State)B.轉(zhuǎn)換(Transition)C.事件(Event)D.動(dòng)作(Action)答案:B在狀態(tài)圖中,哪個(gè)符號(hào)表示初態(tài)?A.空心圓B.實(shí)心圓C.菱形D.矩形答案:B哪種事件表示對(duì)象接收到一個(gè)調(diào)用操作的請(qǐng)求?A.調(diào)用事件(CallEvent)B.改變事件(ChangeEvent)C.信號(hào)事件(SignalEvent)D.時(shí)間事件(TimeEvent)答案:A狀態(tài)圖中,表示對(duì)象處于某狀態(tài)時(shí)執(zhí)行的一系列動(dòng)作的元素是什么?A.狀態(tài)(State)B.轉(zhuǎn)換(Transition)C.動(dòng)作(Action)D.活動(dòng)(Activity)答案:D二、對(duì)錯(cuò)題狀態(tài)圖只能用于描述一個(gè)對(duì)象的行為。(對(duì))答案:對(duì)狀態(tài)圖中的轉(zhuǎn)換必須有一個(gè)觸發(fā)事件。(錯(cuò))答案:錯(cuò)狀態(tài)圖中可以使用選擇節(jié)點(diǎn)來表示分支結(jié)構(gòu)。(對(duì))答案:對(duì)偽狀態(tài)在狀態(tài)機(jī)中具有狀態(tài)的形式,但具有特殊行為。(對(duì))答案:對(duì)復(fù)合狀態(tài)只能包含一個(gè)子狀態(tài)。(錯(cuò))答案:錯(cuò)三、填空題狀態(tài)圖中表示對(duì)象生命周期中一種條件或情況的元素稱為__________。答案:狀態(tài)(State)在狀態(tài)圖中,從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的過渡稱為__________。答案:轉(zhuǎn)換(Transition)狀態(tài)圖中的初態(tài)表示為一個(gè)__________。答案:實(shí)心圓狀態(tài)圖中的選擇節(jié)點(diǎn)使用__________表示。答案:菱形當(dāng)對(duì)象進(jìn)入一個(gè)狀態(tài)時(shí)執(zhí)行的一系列動(dòng)作稱為__________。答案:活動(dòng)(Activity)四、問答題什么是狀態(tài)圖?狀態(tài)圖主要有哪些元素構(gòu)成?答案:狀態(tài)圖是用于展示狀態(tài)機(jī)的圖,顯示一個(gè)對(duì)象如何根據(jù)當(dāng)前狀態(tài)對(duì)不同事件做出反應(yīng)的動(dòng)態(tài)行為。狀態(tài)圖主要由狀態(tài)(State)和轉(zhuǎn)換(Transition)兩種元素構(gòu)成。狀態(tài)圖中的轉(zhuǎn)換是如何表示的?它包括哪些內(nèi)容?答案:轉(zhuǎn)換表示為從源狀態(tài)指向目標(biāo)狀態(tài)的實(shí)線箭頭,并附有轉(zhuǎn)換的標(biāo)簽。轉(zhuǎn)換的標(biāo)簽可以包括事件(Event)、監(jiān)護(hù)條件(GuardCondition)和效果列表(EffectList)。請(qǐng)解釋狀態(tài)圖中的偽狀態(tài)及其作用。答案:偽狀態(tài)是狀態(tài)機(jī)中具有狀態(tài)形式但具有特殊行為的頂點(diǎn)。偽狀態(tài)幫助描述或增強(qiáng)了轉(zhuǎn)換的語義細(xì)節(jié)。常見的偽狀態(tài)包括初態(tài)和選擇節(jié)點(diǎn)。初態(tài)表示狀態(tài)機(jī)的入口,選擇節(jié)點(diǎn)用于表達(dá)狀態(tài)機(jī)中的分支結(jié)構(gòu)。什么是復(fù)合狀態(tài)?復(fù)合狀態(tài)有哪些類型?答案:復(fù)合狀態(tài)是包含一個(gè)或多個(gè)嵌套狀態(tài)機(jī)的狀態(tài)。復(fù)合狀態(tài)可以分為順序復(fù)合狀態(tài)(非正交狀態(tài))和并發(fā)復(fù)合狀態(tài)(正交復(fù)合狀態(tài))。順序復(fù)合狀態(tài)中只有一個(gè)子狀態(tài)被激活,并發(fā)復(fù)合狀態(tài)中每個(gè)區(qū)域都有一個(gè)狀態(tài)被激活。如何使用狀態(tài)圖為對(duì)象的生命周期建模?答案:使用狀態(tài)圖為對(duì)象的生命周期建??梢詤⒖家韵虏襟E:確定狀態(tài)機(jī)的語境,設(shè)置初態(tài)和終態(tài),確定對(duì)象可能需要響應(yīng)的事件,列出對(duì)象的所有頂層狀態(tài)并建立轉(zhuǎn)換,識(shí)別狀態(tài)的入口動(dòng)作和出口動(dòng)作,使用子狀態(tài)對(duì)頂層狀態(tài)進(jìn)行嵌套,確保狀態(tài)機(jī)是良構(gòu)的。五、應(yīng)用題(1)根據(jù)題意確定監(jiān)視狀態(tài)、安全狀態(tài)及警告狀態(tài)三種狀態(tài)。監(jiān)視狀態(tài)下可以根據(jù)患者生理信號(hào)是否正常分別向安全狀態(tài)與警告狀態(tài)轉(zhuǎn)換,安全狀態(tài)和警告狀態(tài)在一段時(shí)間后自動(dòng)向監(jiān)視狀態(tài)轉(zhuǎn)換。狀態(tài)圖可參考下圖。(2)手機(jī)可以分為空閑、響鈴、撥號(hào)與通話四種狀態(tài)。根據(jù)題目敘述分別在各個(gè)狀態(tài)之間添加轉(zhuǎn)移即可。狀態(tài)圖可參考下圖。一、單選題在UML活動(dòng)圖中,哪個(gè)元素用來表示一個(gè)具體的操作或行為?A.活動(dòng)(Activity)B.動(dòng)作(Action)C.控制流(ControlFlow)D.判斷節(jié)點(diǎn)(DecisionNode)答案:B在活動(dòng)圖中,用于表示流程起點(diǎn)的符號(hào)是什么?A.實(shí)心圓B.空心圓C.菱形D.矩形答案:A哪種節(jié)點(diǎn)用于表示多個(gè)控制流合并為一個(gè)的節(jié)點(diǎn)?A.分叉節(jié)點(diǎn)(ForkNode)B.結(jié)合節(jié)點(diǎn)(JoinNode)C.合并節(jié)點(diǎn)(MergeNode)D.判斷節(jié)點(diǎn)(DecisionNode)答案:C在活動(dòng)圖中,表示并發(fā)控制流結(jié)束的節(jié)點(diǎn)是什么?A.分叉節(jié)點(diǎn)(ForkNode)B.結(jié)合節(jié)點(diǎn)(JoinNode)C.合并節(jié)點(diǎn)(MergeNode)D.判斷節(jié)點(diǎn)(DecisionNode)答案:B在活動(dòng)圖中,如何表示一個(gè)活動(dòng)的結(jié)束?A.實(shí)心圓B.空心圓中有一個(gè)實(shí)心圓C.菱形D.矩形答案:B二、對(duì)錯(cuò)題活動(dòng)圖只能用于描述單線程的執(zhí)行過程。(錯(cuò))答案:錯(cuò)在活動(dòng)圖中,分叉節(jié)點(diǎn)和結(jié)合節(jié)點(diǎn)的符號(hào)是相同的。(對(duì))答案:對(duì)活動(dòng)圖中的判斷節(jié)點(diǎn)用于創(chuàng)建流程的分支。(對(duì))答案:對(duì)控制流是連接動(dòng)作和活動(dòng)節(jié)點(diǎn)的箭頭。(對(duì))答案:對(duì)活動(dòng)圖中的泳道表示不同的執(zhí)行者或?qū)ο蟆?對(duì))答案:對(duì)三、填空題活動(dòng)圖中的動(dòng)作使用一個(gè)左右兩端為圓弧的“__________”來表示。答案:矩形框活動(dòng)圖中的開始標(biāo)記使用一個(gè)__________表示。答案:實(shí)心圓活動(dòng)圖中的判斷節(jié)點(diǎn)用一個(gè)__________來表示。答案:菱形在活動(dòng)圖中,__________用于表示流程中的分支。答案:判斷節(jié)點(diǎn)活動(dòng)圖中的合并節(jié)點(diǎn)將多個(gè)控制流合并為__________。答案:一個(gè)控制流四、問答題什么是活動(dòng)圖?活動(dòng)圖主要有哪些組成元素?答案:活動(dòng)圖是UML中用于表達(dá)系統(tǒng)動(dòng)態(tài)特性的圖,描述一系列具體動(dòng)態(tài)過程的執(zhí)行邏輯,展現(xiàn)活動(dòng)和活動(dòng)之間轉(zhuǎn)移的控制流?;顒?dòng)圖的主要組成元素包括動(dòng)作(Action)、活動(dòng)節(jié)點(diǎn)(ActivityNode)、控制流(ControlFlow)、判斷節(jié)點(diǎn)(DecisionNode)、合并節(jié)點(diǎn)(MergeNode)、分叉節(jié)點(diǎn)(ForkNode)、結(jié)合節(jié)點(diǎn)(JoinNode)和泳道(Swimlane)。在活動(dòng)圖中,如何使用判斷節(jié)點(diǎn)創(chuàng)建分支?答案:在活動(dòng)圖中,判斷節(jié)點(diǎn)用一個(gè)菱形來表示。判斷節(jié)點(diǎn)有一個(gè)進(jìn)入控制流和至少兩個(gè)離開控制流,每個(gè)離開控制流上應(yīng)附有一個(gè)控制條件,系統(tǒng)根據(jù)判斷結(jié)果選擇符合條件的離開控制流,從而創(chuàng)建分支。請(qǐng)解釋活動(dòng)圖中的分叉節(jié)點(diǎn)和結(jié)合節(jié)點(diǎn)。答案:分叉節(jié)點(diǎn)用于將一個(gè)控制流分成多個(gè)并發(fā)控制流,表示進(jìn)入并發(fā)狀態(tài)。結(jié)合節(jié)點(diǎn)用于將多個(gè)并發(fā)控制流合并為一個(gè)控制流,表示并發(fā)結(jié)束。分叉節(jié)點(diǎn)和結(jié)合節(jié)點(diǎn)都用一根粗橫線表示,分叉節(jié)點(diǎn)有一個(gè)進(jìn)入控制流和多個(gè)離開控制流,而結(jié)合節(jié)點(diǎn)有多個(gè)進(jìn)入控制流和一個(gè)離開控制流。什么是活動(dòng)圖中的泳道?有什么作用?答案:泳道用于將活動(dòng)圖中的元素按執(zhí)行者或?qū)ο筮M(jìn)行分組,每條泳道表示一個(gè)執(zhí)行者或?qū)ο?。泳道使活?dòng)圖更加清晰地展示哪個(gè)活動(dòng)由哪個(gè)對(duì)象執(zhí)行,有助于理解不同對(duì)象之間的協(xié)作和責(zé)任分工。在活動(dòng)圖中,如何表示一個(gè)活動(dòng)的開始和結(jié)束?答案:活動(dòng)圖中的開始標(biāo)記用一個(gè)實(shí)心圓表示,表示流程的起點(diǎn)?;顒?dòng)的結(jié)束標(biāo)記用一個(gè)空心圓中包含一個(gè)實(shí)心圓表示,表示流程的終點(diǎn)或可能的結(jié)束位置。五、應(yīng)用題(1)可以劃分出學(xué)生和選課系統(tǒng)兩個(gè)泳道,然后根據(jù)邏輯添加活動(dòng)圖的各個(gè)元素即可?;顒?dòng)圖可參考下圖。(2)可以劃分出用戶與系統(tǒng)兩個(gè)泳道,然后根據(jù)業(yè)務(wù)流程添加適當(dāng)元素完成活動(dòng)圖即可?;顒?dòng)圖可參考下圖。一、單選題在UML組件圖中,哪個(gè)元素表示系統(tǒng)的模塊化部分?A.類(Class)B.接口(Interface)C.組件(Component)D.包(Package)答案:C組件圖中的提供接口在UML2中如何表示?A.用一個(gè)小圓圈表示B.用一個(gè)半圓表示C.用一個(gè)箭頭表示D.用一個(gè)矩形表示答案:A組件圖中的需求接口在UML2中如何表示?A.用一個(gè)小圓圈表示B.用一個(gè)半圓表示C.用一個(gè)箭頭表示D.用一個(gè)矩形表示答案:B組件圖中,表示組件之間依賴關(guān)系的元素是什么?A.實(shí)線箭頭B.虛線箭頭C.實(shí)線D.虛線答案:B在Rose工具中,哪個(gè)元素表示一個(gè)獨(dú)立線程的包?A.包體B.任務(wù)體C.子程序規(guī)范D.子程序體答案:B二、對(duì)錯(cuò)題組件圖可以用來表示系統(tǒng)的邏輯結(jié)構(gòu)。(錯(cuò))答案:錯(cuò)組件圖中的接口可以分為提供接口和需求接口。(對(duì))答案:對(duì)在UML2中,組件圖中的端口用于進(jìn)一步控制組件的實(shí)現(xiàn)。(對(duì))答案:對(duì)部署組件是用于開發(fā)過程的中間產(chǎn)品。(錯(cuò))答案:錯(cuò)組件圖中的依賴關(guān)系用實(shí)線箭頭表示。(錯(cuò))答案:錯(cuò)三、填空題組件圖中的元素主要包括組件、接口和__________。答案:關(guān)系提供接口也被稱為__________。答案:供給接口需求接口也被稱為__________。答案:引入接口在UML2規(guī)范中,組件的提供接口用一個(gè)小圓圈表示,而需求接口用一個(gè)__________表示。答案:半圓在Rose中,子程序體的圖標(biāo)是一個(gè)__________,內(nèi)部頂端有一個(gè)白條。答案:細(xì)長的黑色矩形四、問答題什么是組件圖?組件圖的主要元素有哪些?答案:組件圖是一種用來描述軟件系統(tǒng)中各個(gè)物理組件及它們之間關(guān)系的UML圖。組件圖的主要元素包括組件(Component)、接口(Interface)和關(guān)系(Relationship)。在UML組件圖中,什么是端口?有什么作用?答案:端口是UML2規(guī)范中新引入的元素,是一個(gè)被封裝的組件對(duì)外的窗口,所有出入組件的交互都要通過端口。端口的作用是進(jìn)一步控制組件的實(shí)現(xiàn),提供封裝性和獨(dú)立性,增強(qiáng)組件的可替換性。請(qǐng)解釋組件圖中的提供接口和需求接口。答案:提供接口(ProvideInterface)是組件對(duì)外提供的服務(wù)操作的集合,表示組件為其他組件提供服務(wù)。需求接口(RequiredInterface)是組件向其他組件請(qǐng)求服務(wù)時(shí)要遵循的接口,表示組件需要其他組件提供的服務(wù)。組件圖中的依賴關(guān)系如何表示?它的作用是什么?答案:組件圖中的依賴關(guān)系用虛線箭頭表示。依賴關(guān)系表示一個(gè)組件在運(yùn)行時(shí)需要另一個(gè)組件的支持,即一個(gè)組件依賴于另一個(gè)組件提供的服務(wù)。組件圖在軟件設(shè)計(jì)中的作用是什么?答案:組件圖在軟件設(shè)計(jì)中起著明確系統(tǒng)設(shè)計(jì)、降低溝通成本和提高可重用性的作用。它幫助開發(fā)團(tuán)隊(duì)確定系統(tǒng)的模塊化組成,使得各個(gè)組件可以獨(dú)立開發(fā)、測試和替換,提高了系統(tǒng)的靈活性和可維護(hù)性。五、應(yīng)用題(1)根據(jù)題目要求創(chuàng)建三個(gè)組件。其中PrintProg組件需要實(shí)現(xiàn)IPrint接口,并按照要求在組件之間建立依賴關(guān)系即可。組件圖可參考下圖。(2)首先確定出系統(tǒng)所需的五個(gè)組件:UserInterface、SyatemController、Entity、PatientObsever以及Database。其中Entity組件需要依賴于Database組件,SystemController組件和PatientObserver組件均需要依賴于Entity組件,UserInterface組件要依賴于SystemController組件和PatientObserver組件。組件圖可參考下圖。一、單選題在UML部署圖中,哪個(gè)元素表示運(yùn)行時(shí)的物理對(duì)象?A.組件(Component)B.接口(Interface)C.節(jié)點(diǎn)(Node)D.包(Package)答案:C部署圖中,表示節(jié)點(diǎn)之間通信路徑的元素是什么?A.實(shí)線箭頭B.虛線箭頭C.連接(Connection)D.關(guān)聯(lián)(Association)答案:C在UML中,表示具有計(jì)算能力的節(jié)點(diǎn)是什么?A.設(shè)備(Device)B.處理器(Processor)C.接口(Interface)D.包(Package)答案:B部署圖中的節(jié)點(diǎn)用什么圖形表示?A.矩形B.圓形C.菱形D.長方體答案:D部署圖主要用于描述什么?A.系統(tǒng)的邏輯結(jié)構(gòu)B.系統(tǒng)的物理部署C.系統(tǒng)的用例模型D.系統(tǒng)的狀態(tài)轉(zhuǎn)換答案:B二、對(duì)錯(cuò)題部署圖用于描述系統(tǒng)的邏輯結(jié)構(gòu)。(錯(cuò))答案:錯(cuò)部署圖中的節(jié)點(diǎn)可以分為處理器和設(shè)備兩類。(對(duì))答案:對(duì)部署圖中的連接表示節(jié)點(diǎn)之間的通信路徑。(對(duì))答案:對(duì)部署圖中不可以使用注解和約束。(錯(cuò))答案:錯(cuò)一個(gè)系統(tǒng)可以有多個(gè)部署圖。(錯(cuò))答案:錯(cuò)三、填空題部署圖用于描述軟件和__________的關(guān)系。答案:硬件在UML中,具有計(jì)算能力的節(jié)點(diǎn)稱為__________。答案:處理器(Processor)部署圖中的節(jié)點(diǎn)之間使用__________表示通信路徑。答案:連接(Connection)設(shè)備節(jié)點(diǎn)通常作為__________的外部連接設(shè)備。答案:處理器部署圖的主要元素包括節(jié)點(diǎn)和__________。答案:連接四、問答題什么是部署圖?部署圖的主要元素有哪些?答案:部署圖是一種展示運(yùn)行時(shí)進(jìn)行處理的節(jié)點(diǎn)和在節(jié)點(diǎn)上存在的制品的配置的圖,闡述了軟件和運(yùn)行環(huán)境

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論