UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案匯總01軟件工程概要-14電梯分析與設(shè)計_第1頁
UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案匯總01軟件工程概要-14電梯分析與設(shè)計_第2頁
UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案匯總01軟件工程概要-14電梯分析與設(shè)計_第3頁
UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案匯總01軟件工程概要-14電梯分析與設(shè)計_第4頁
UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案匯總01軟件工程概要-14電梯分析與設(shè)計_第5頁
已閱讀5頁,還剩116頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

11UML基礎(chǔ)、建模與應(yīng)用習(xí)題及答案一、程序設(shè)計階段(1946年~1955年)二、軟件作坊階段(1956年~1970年)三、傳統(tǒng)軟件工程階段(1970年至今)3.傳統(tǒng)軟件開發(fā)方法包括哪6個階段?答:需求分析->設(shè)計->編碼->測試->實施->維護4.什么是軟件過程?典型的軟件過程有哪幾種?22答:在軟件開發(fā)過程中產(chǎn)生的所有物理型事物稱為制品。例如,需求文檔、分析文檔、設(shè)計文檔、可執(zhí)行的程序、各種庫、各種構(gòu)件、表、文件等等都是制品。按照軟件開發(fā)周期,可將制品分為需求制品、分析制品、設(shè)計制品和實現(xiàn)制品。時間維(包括四個階段),縱軸表示工作流(包括9個工作流)。四個建模元素的主要對象:角色、活動、產(chǎn)品、工作流。33內(nèi)容組織迭代迭代:達代和迭代2代內(nèi)容組織迭代迭代:達代和迭代2代初始細(xì)化配置-法i迭代:迭代物法i迭代:迭代物44一.簡答題1.什么是UML?答:UML(UnifiedModelingLanguage,統(tǒng)一建模語言)是一門可視化答:在面向?qū)ο蟮能浖_發(fā)過程中,常用UML對系統(tǒng)的產(chǎn)品進行說明、可視化和文檔構(gòu)建和書寫面向?qū)ο蟮能浖破贰?)UML最適用于數(shù)據(jù)建模、業(yè)務(wù)建模、對象建模和組件建模。3)UML語言應(yīng)用于軟件開發(fā)周期的每一個階段。其已被OMG作為業(yè)界標(biāo)準(zhǔn)。建立之后,模型可以被UML工具轉(zhuǎn)化成指定的程序語言代碼。1)業(yè)務(wù)模型:展示業(yè)務(wù)過程、業(yè)務(wù)內(nèi)容和業(yè)務(wù)規(guī)則的模型。采用對象模型表示業(yè)務(wù)模2)需求模型:展示用戶要求和業(yè)務(wù)要求的模型。需求模型常由用例模型表示。和組成;詳細(xì)設(shè)計模型展示軟件微觀組成和架構(gòu)。詳細(xì)設(shè)計模型常由對象模型展示。4)實現(xiàn)模型(也稱為物理模型描述了軟件組件及其關(guān)系(常由構(gòu)件圖和部署圖組5.常用的UML工具有哪些?55二.填空題語言其數(shù)量從不到十種增加到了(五十)多種。3.UML的定義包括UML語義、UML規(guī)則和(UML表示)三個部分4.UML工具是幫助軟件開發(fā)人員方便使用UML的軟件,它的主要功能包括:支持各種UML模型圖的輸入、(編輯)和存儲;支持正向工程和(逆向工程);提供和其他二.簡答題答:不可以答:接口5.類圖與對象圖有什么關(guān)系?答:對象圖可以看作是類圖的實例化,用來表示對象在一時刻的狀態(tài)。6.組合結(jié)構(gòu)圖用途是什么?66圖是一種靜態(tài)結(jié)構(gòu),它展示了一個類目內(nèi)部的成員及成員之間的關(guān)系。1)接口是操作的集合,接口細(xì)分為供給接口和需求接口。2)端口是對接口的封裝,即,把一組供、需求接口看做一個整體。3)一個構(gòu)件由內(nèi)部部件和鏈接件組成。部件是構(gòu)件的實現(xiàn)單元,部件也可能是一個構(gòu)件的實例。部件有名字和類型。鏈接件可能是接口,也可能是構(gòu)件實例。三.填空題8.接口的構(gòu)造型是(《Interface》)。9.外部類寫在(錨頭)一端,另一端是內(nèi)部類。10.關(guān)聯(lián)的屬性包括名稱、(角色)、多重性、限定和導(dǎo)航。11.在單向關(guān)聯(lián)中,箭尾端的類稱為(源類),箭頭端的類稱為(目標(biāo)類)。13.鏈接表示兩個(對象)間的關(guān)系。對象是類的一個實例,鏈接是(關(guān)聯(lián))的實例。14.對象間的關(guān)系有兩種:(單向鏈接)和雙向鏈接15.端口必須有(供給接口),可以沒有需求接口。16.一個構(gòu)件由內(nèi)部部件和(鏈接件)組成,部件是構(gòu)件的實現(xiàn)單元。部件有名字和(類型)。三.簡答題772)包是版本控制和管理的的基本單元。方便跟蹤和管理。3)設(shè)計階段。包作為任務(wù)分配的基本單元。如,多個設(shè)計小組同時對幾個相互獨立包中的類進行詳細(xì)設(shè)計。4)實現(xiàn)階段。包作為邏輯空間劃分的基本單元,方便編程。答:系統(tǒng)、子系統(tǒng)、子包、用例、構(gòu)件、接口、協(xié)作、類和圖。簡單名:僅寫出包的名字,沒有列出外圍包名全名:包名字前列出了外圍包的名字UML語言為包提供了5種標(biāo)準(zhǔn)構(gòu)造型用《stub》修飾的包是一個代理包,即,代理其它包的功能。用《framework》符號修飾的包是一個窗口7.繪制包圖一般需要哪幾個步驟?答:尋找候選包->調(diào)整候選包->指定包中元素的可見性->迭代消除包循環(huán)依賴8818.在分析階段,以對象模型(或者用例模型)為依據(jù),把關(guān)系(緊密)的類(或者用例)分到同一個包中,把關(guān)系(松散)的類(或者用例)分到不同的包中。20.若兩個包之間是《import》依賴,則提供者包中的(公共)就成為客戶包中的公有元素,公有元素在包外是(可以訪問的)。21.若兩個包之間是《access》依賴,提供者包中的公有元素就成為客戶包中的(私有)元素,這些私有元素在包外是不可以訪問的。22.包間的泛化關(guān)系類似于類間的泛化關(guān)系,子包繼承了父包中的(公共元素)和保護元素。23.《trace》表示客戶包從提供者包進化而來?!秚race》表示(模型)間的關(guān)系,不是表示元素間的關(guān)系,客戶包與提供者包屬于兩個不同的(抽象級別)。關(guān)系使客戶包和提供者包的命名空間合并成(一個包),如果兩個包中的元素具有相同名稱將會導(dǎo)致命名空間的(沖突)。25.依賴關(guān)系用一個虛線箭頭表示,箭尾端的包稱為(客戶包),箭頭端的包稱為(提供者包)。1.控制焦點代表了什么?順序圖中的對象有哪兩種狀態(tài)?99下端代表執(zhí)行即將結(jié)束。當(dāng)對象處于控制焦點處時,代表對象處于激活狀態(tài),否答:順序編號和嵌套編號同步消息中,發(fā)送消息的對象要等待接收消息的對象執(zhí)行完所有的操作后,才能繼續(xù)執(zhí)行自己的操作,用實心箭頭表示。異步消息中,發(fā)送消息的對象無需等待接收消息的對象是否執(zhí)行操作,便可繼續(xù)執(zhí)行自己的操作,用開發(fā)箭頭表示。箭頭都由發(fā)送消息的對象指向接收消息的對象。順序圖:主要元素:對象、生命線、控制焦點和消息。協(xié)作圖:基本元素有:活動者(Actor)、對象(Object)、鏈接(Link)和消息答:順序圖與協(xié)作圖都表示對象之間的交互作用,只是它們的側(cè)重點有所不同。3)協(xié)作圖強調(diào)了對象在交互中承擔(dān)的角色,但對象在交互中的先后順序必須從消息順序號獲得。的相對時間,協(xié)作圖沒有這些功能。三.填空題27.對象交互形成的控制流程有三種,它們是:分支、(并發(fā))和循環(huán)。。28.一個區(qū)域就是一個(長方形框表示)。區(qū)域之間用虛線隔開,每個區(qū)域擁有一個監(jiān)護條件和一個(復(fù)合語句),監(jiān)護條件寫在(中括號)中。32.critical組合區(qū)也稱為“臨界區(qū)域”。在臨界區(qū)域中所有的操作要么(全部成功執(zhí)行),要么都不執(zhí)行。33.ref操作符用于引用其他的圖,被引用的圖的名字寫在(ref矩形框)中央。34.協(xié)作圖用一個迭代符(*)和迭代子句(可選)來表示循環(huán)。六.選擇題(A)泳道(B)動作狀態(tài)(C)對象(D)活動狀態(tài)2.活動圖中的開始狀態(tài)使用表示(A)菱形(B)直線箭頭(C)黑色實心圓(D)空心圓3.UML中的用來描述過程或操作的工作步驟(A)狀態(tài)圖(B)活動圖(C)用例圖(D)部署圖4.技術(shù)是將一個活動圖中的活動狀態(tài)進行分組,每一組表示一個特定的類、人或部門,他們負(fù)責(zé)完成組成內(nèi)的活動(A)泳道(B)分支(C)分叉匯合(D)轉(zhuǎn)移七.簡答題答:文字格式和表達式。2.簡要說明輸入轉(zhuǎn)換和輸出轉(zhuǎn)換的含義;答:轉(zhuǎn)換對于目標(biāo)活動節(jié)點來說是輸入轉(zhuǎn)換,對源活動節(jié)點來說是輸出轉(zhuǎn)換。答:菱形框與實線開箭頭中斷區(qū):收到某一中斷事件后,某些活動將會終止,將這些將要終止的事件組成一個區(qū)域,這個區(qū)域就是中斷區(qū)。中斷區(qū)用虛線框表示。中斷邊:中斷邊連接著中斷活動置于中斷區(qū)中,當(dāng)控制焦點處于中斷區(qū)時,若中斷活動收到一個中斷事件后,中斷區(qū)內(nèi)的所有活動停止執(zhí)行,控制焦點轉(zhuǎn)向控制邊。八.填空題35.僅當(dāng)所有的并發(fā)(輸入)轉(zhuǎn)換都在匯合線段上集合后,匯合線段上的輸出轉(zhuǎn)換才36.泳道用來標(biāo)識活動的(執(zhí)行者)。用活動執(zhí)行者的名稱作為(泳道)的名字。38.別針也是一個(小方形框),其圖形符號是一個更小的方框。39.中斷區(qū)的圖形符號:用虛線繪制的(虛線框)表示中斷區(qū)。40.用三角形與(小方塊)一起表示異常別針。41.輸入擴展節(jié)點繪制在擴展區(qū)的(左邊界)。輸出擴展節(jié)點繪制在擴展區(qū)的(右42.Iterative順序)處理集合中的每個對象。當(dāng)所有對象處理完并在輸出擴展節(jié)點上組成(對象集合)后,才能向外流出。43.Parallel并行)處理集合中的每個對象。當(dāng)所有對象處理完并在輸出擴展節(jié)點上組成對象集合后,才能向外流出。44.Stream逐個)處理集合中的每個對象。每個處理完的對象到達輸出擴展節(jié)點直接向外流出。45.信號是一種表示對象之間通信的(異步消息)消息,有3種信號,它們是(時間信號)、(發(fā)送信號)、(接收信號)。46.發(fā)送信號發(fā)出一個異步消息。對于(發(fā)送者)而言是發(fā)送信號,對于(接收者)而言是“接收信號”。九.簡答題答:定時圖是特殊的順序圖,都強調(diào)了以時間為順序。但定時圖用活動圖細(xì)化了順序圖中某些重要對象的行為。2.對飲料機的售賣過程,制作一張交互概況圖(分別用兩種圖繪制);1:投入錢幣2:獲得錢幣3:檢查存貨4:有存貨更新余額7:分發(fā)飲料8:返回現(xiàn)金儀投入錢幣且益前速錢幣記量且益前速位k吐出飲料=3.對ATM的取款過程,制作一張交互概況圖(分別用兩種圖繪制);1:發(fā)出取款請求5:余額不足7:余額充足8:種除相應(yīng)金額2:理示程我共意突出規(guī)金,提示根教成可1:將水放上灶臺2:點火加熱3:水沸騰5.請繪制圖書館書籍借還定時圖,要求與借書人員的郵箱狀態(tài)關(guān)聯(lián)起來,例如,當(dāng)書6.請說明異常、事件、消息和信號之間的區(qū)別與聯(lián)系。2)信號(signal)是是消息傳遞的形式,比如3)信息(information)是指傳達給人消息是信息的形式,信息是消息的內(nèi)容,而信號則是消息的表現(xiàn)形式。答:兩者用途不同。構(gòu)件圖是用來描述系統(tǒng)的靜態(tài)實現(xiàn)視圖;部署圖是用來定義系統(tǒng)8.舉例說明部署圖在系統(tǒng)分析階段、設(shè)計階段的應(yīng)用。2)描述與本系統(tǒng)相關(guān)的其他系統(tǒng)及其關(guān)系。4)描述一個組織的硬件/網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)設(shè)計嵌入系統(tǒng)的硬件和軟件的結(jié)構(gòu)例如:結(jié)點通常擁有內(nèi)存,并具有處理能力,計算機可以是一個結(jié)點,構(gòu)件提供了一組接口的實現(xiàn),主要有所需求與供給的都可以是構(gòu)件,如冰箱可以保存食物鮮度,但需要不同:構(gòu)件是系統(tǒng)執(zhí)行的主體,而結(jié)點是執(zhí)行構(gòu)件的物理平臺;構(gòu)件是邏輯部件。而五.填空題47.交互概況圖是將(活動圖)和順序圖嫁接在一起的圖。定時圖是一種特殊的順序48.定時圖的縱軸由對象的(狀態(tài))構(gòu)成,橫軸表示(時間),時間由左向右延伸;49.定時圖的主要元素:對象、(水平線)和垂直線。50.定時圖的水平線表示(對象所處狀態(tài)),垂直線表示(對象所處時間)。),54.部署圖可以展示物理結(jié)點之間的關(guān)系,也可以展示構(gòu)件在(物理結(jié)點)上的部署十.簡答題答:狀態(tài)指事物表現(xiàn)出來的形態(tài),一般用一個屬性值或者一組屬性值度量對象的學(xué)生、中學(xué)生或大學(xué)生,但當(dāng)你是其中一種時,其它兩種便不可能是你的互斥子狀態(tài)內(nèi)包含多個子狀態(tài),當(dāng)復(fù)合狀態(tài)激活時,有兩個或多個子狀態(tài)處于活動狀態(tài),即子狀態(tài)之間是并發(fā)關(guān)系。例如:進入大學(xué)學(xué)習(xí),想要畢業(yè)必須修讀完自己專業(yè)的必修課程,除此之外為了滿足學(xué)分要求還得自行選修公選課或參加社團等行為增加自己的學(xué)分以達到畢業(yè)標(biāo)準(zhǔn),三者可同時進行。外部遷移進入復(fù)合狀態(tài)時,狀態(tài)便恢復(fù)到上次離開復(fù)合狀態(tài)時的子狀態(tài),并執(zhí)行歷史狀態(tài)的入口動作。好比做嵌入式實驗,需要連接實驗箱與在終端處理文件并將文件傳入實驗箱中。若在實驗到后半段的編碼過程中,發(fā)現(xiàn)沒有配置環(huán)境而導(dǎo)致實驗暫停,便將此處記為歷史狀態(tài),等到配置好環(huán)境后,再從此處繼續(xù)實驗而不是從頭開始。便是走去吃飯,argument便可代表走的速度,是要走著去吃飯還是跑去吃飯6.通過例子說明內(nèi)部調(diào)用事件和外部調(diào)用事件的含義;內(nèi)部調(diào)用事件:事件沒有引起對象狀態(tài)的改變;取款時,當(dāng)余額大于所取金額時,便直接從余額扣取相應(yīng)金額,沒有發(fā)生狀態(tài)的改變,僅改變了余額的數(shù)值扣除相應(yīng)金額,對象賬戶便進入無法提款的狀態(tài),提示無法取款六.填空題55.一個狀態(tài)圖包含的元素:初始狀態(tài)、終止?fàn)顟B(tài)、(狀態(tài))、遷移和判決點。發(fā)某個動作并將條件表達式的值再次設(shè)置為(false),然后繼續(xù)測試條件表達式的值,如59.動作在執(zhí)行時不能被(中斷),動作分為(入口)動作和(出口)動作,60.內(nèi)部遷移是指對象狀態(tài)(沒有發(fā)生改變)的前提下執(zhí)行的動作。61.自動遷移發(fā)生時對象(離開)源狀態(tài)后又回到源狀態(tài)。自動遷移會執(zhí)行(入口)62.子狀態(tài)之間的關(guān)系有兩種:(并發(fā)關(guān)系)和(互斥)關(guān)系。63.如果復(fù)合狀態(tài)中的子狀態(tài)是(互斥)關(guān)系,那么復(fù)合狀態(tài)只包含一個狀態(tài)機。字母“H”外繪制一個小圓圈表示歷史狀態(tài)十一.簡答題1)按照標(biāo)準(zhǔn)定義接口構(gòu)件按照標(biāo)準(zhǔn)定義接口。2)構(gòu)件實現(xiàn)了供給接口的功能構(gòu)件必須實現(xiàn)供給接口聲明的服務(wù)。不同構(gòu)件的部署方法不同。必須按照標(biāo)準(zhǔn)部署構(gòu)件。接口:接口分為需求接口與供給接口。供給接口規(guī)定了構(gòu)件所實現(xiàn)的功能,構(gòu)件都有供給接口;需求接口是一種形式上的存在,對于構(gòu)件的供給接口,哪些構(gòu)件需要其功能便是其對應(yīng)的需求接口。好比:不會英語的人和翻譯器,兩者都是構(gòu)件,后者可以翻譯英語,這便是翻譯器的供給接口,而人的需求接口便是對翻譯的需求。端口:端口是對一組接口的封裝,即把一組相關(guān)的供給接口和需求接口封裝成一個整體。端口必須有供給接口,可以沒有需求接口。好比可以把各種各樣的語言翻譯封裝接口決定來定義。另外該構(gòu)件的需求接口需要其它構(gòu)件來滿足其需求。好比:翻譯器是一個構(gòu)件,其供給接口可以翻譯語言,其需求接口需要以電為其供能。由《entity》修飾的構(gòu)件是實體構(gòu)件。實體構(gòu)件能保存永久信息。實現(xiàn)了構(gòu)件功能,沒有提供接口說明。無狀態(tài)的構(gòu)件,執(zhí)行計算功能的構(gòu)件。7)構(gòu)造型《subsystem》子系統(tǒng)級構(gòu)件,構(gòu)件代表一個子系統(tǒng)。4.舉例說明隱含接口的構(gòu)件和展示接口的構(gòu)件的表示法;2)在矩形框的右上角放置一個構(gòu)件圖標(biāo),圖11-10(b)3)直接使用構(gòu)件圖標(biāo)abCapeibpiiC七.填空題66.構(gòu)件圖中的關(guān)系有:構(gòu)件之間的關(guān)系、(接口)之間的關(guān)系、構(gòu)件和接口之間的67.提供服務(wù)的構(gòu)件稱為(提供者),使用服務(wù)的構(gòu)件稱為(客戶)。268.在設(shè)計階段必須把構(gòu)件之間的依賴關(guān)系解耦為(實現(xiàn))接口和(使用)之間的關(guān)72.類是對一組對象共同特征的抽象和描述,而制品是計算機上比特流的(封裝)。十二.簡答題答:參與者、用例、關(guān)系2.用例圖中的參與者屬于系統(tǒng)的成員嗎?答:不屬于,參與者來自系統(tǒng)外部3.舉例說明用例與場景之間的關(guān)系。答:參與者為了實現(xiàn)某種目標(biāo),需要執(zhí)行一系列操作,這些操作的集合稱為場景。即場景是用例的一次完整的執(zhí)行路徑。4.舉例說明用例之間的三種關(guān)系。2)擴展關(guān)系設(shè)置“取款”為基本指令,若設(shè)置取款上限,那超過取款上限后就需要提醒取款失敗并顯示超額取款。取款包含于這條指令之內(nèi)。在購買商品時,可以選擇多種支付手段:現(xiàn)金支付、銀行卡支付、信用卡支付??梢詫⑵浞夯芍Ц?.舉例說明組織用例的全過程。將大的用例分解為多個小用例,將多個小的用例合并為一個大用例。如果一組用例中有相同的操作,就把相同的操作抽取出來封裝為包含用例;將一個用例分解為兩個用例后,其中一個用例有條件地調(diào)用另外一個用例,在通過分析和整理后,系統(tǒng)就由一組基本用例、包含用例和擴展用例組成。抽象用例,兩個基本用例和登錄賬戶是包含關(guān)系,超額取款是取款的擴展用例。6.舉例說明尋找參與者、尋找用例的過程。參與者:參與者是系統(tǒng)外部的一個實體。參與者請求系統(tǒng)執(zhí)行用例,以獲得參與者需要實現(xiàn)的目標(biāo)。重點是系統(tǒng)外部的實體,并可以請求執(zhí)行用例,系統(tǒng)的用戶是參與者,系統(tǒng)的管理員也是參與者。用例:用例是對一組場景共同行為的抽象和概括,場景是用例的一次完整的執(zhí)行用例相當(dāng)于一個函數(shù),場景相當(dāng)于函數(shù)的一次執(zhí)行過程。八.填空題74.用例圖主要用于對系統(tǒng)的(功能)建模。75.參與者的名字要用(角色)表示,不能是一個具體的對象名表示。77.用例之間的關(guān)系有:(包含)關(guān)系、擴展關(guān)系和(泛化)關(guān)系。81.參與者和用例是一種雙向的(通訊)關(guān)系,用一條(實線)表示雙向通信。十三.簡答題答:雙向工程包括正向工程和逆向工程。正向工程把設(shè)計模型轉(zhuǎn)換為代碼框架,開發(fā)者不需要編寫類、屬性、方法代碼。逆向工程是指把代碼轉(zhuǎn)換成設(shè)計模型。一旦某些代碼被修改,采用逆向工程將修改后的代碼轉(zhuǎn)換為設(shè)計模型2)語法檢查5)備份文件九.填空題1.正向工程把設(shè)計模型轉(zhuǎn)換為(代碼框架),開發(fā)者不需要編寫類、屬性、方法等代碼,只需在方法體中編寫相應(yīng)的(語句),實現(xiàn)方法的功能。2.一旦某些代碼被修改,采用逆向工程將修改后的代碼轉(zhuǎn)換為(設(shè)計)模型。3.Rose工具能夠使代碼與UML模型保持一致,每次創(chuàng)建或修改模型中的UML元素,系統(tǒng)都會自動(生成代碼)。4.Rose會將java文件與模型中的(組件)聯(lián)系起來。因此,Rose要求模型中的每個Java類都必須屬于組件視圖中的某個(Java組件)。中進行(逆向)工程。1.請對ATM系統(tǒng)進行領(lǐng)域建模和用例建模領(lǐng)域建模:銀行未注冊用戶可以通過用戶名、密碼和手機號成為注冊用戶并生成相應(yīng)賬銀行客戶可以登錄賬戶,使用ATM系統(tǒng)取款、貸款、存款、查詢自身賬戶所剩余額,并修改自身賬戶的密碼,可以給他人賬戶轉(zhuǎn)賬。銀行職員可以查看行內(nèi)監(jiān)控,并在合適時機為ATM機添加現(xiàn)金以保持正常運轉(zhuǎn),還要日常維護ATM機以保證其能正常工作。收款由信用系統(tǒng)通過ATM機完成完成,客戶信用等級決定了貸款金額。注冊用戶(扮演角色)銀行職員(扮演角色)信用系統(tǒng)(扮演角色)未注冊客戶(扮演角色)銀行客戶(扮演角色)賬戶(概念)監(jiān)控(概念)ATM機(概念)類定義注冊用戶(knowcustomer)這個類的屬性有用戶名、口令、手機號碼。銀行職員(worker)負(fù)責(zé)維護ATM機與查看監(jiān)控確保銀行內(nèi)秩序的正常。這個類的屬性有用戶名、口令。信用系統(tǒng)(Creditsystem)流程最后的收款者,并評估用戶的信任等級以決定其可貸款金額未注冊客戶(unknowcustomer)僅能了解銀行的消息與基本功能,無法使用銀行的功能。監(jiān)控(monitor)監(jiān)控行內(nèi)行為,預(yù)防惡性事件的發(fā)賬戶(account)用戶注冊后獲得一個賬戶,該類有屬性:賬戶號,手機號,口令。ATM機(ATM)集成了各種功能的機器,客戶享受銀行服務(wù)的重要保證。銀行客戶(customer)銀行的用戶,可以通過登錄ATM機完成取款、存款、查詢自身余額,并修改賬戶的密碼,轉(zhuǎn)賬等操作。這個類的屬性有用戶名、口令、手機號碼和信用等級。動作短語關(guān)系說明銀行客戶與銀行職員都是注冊用戶繼承使用ATM系統(tǒng)取款、貸款、存款、查詢自身賬戶所剩余額,并修改自身賬戶的密碼,給他人賬戶銀行職員可以查看行內(nèi)監(jiān)控銀行職員需要日常維護ATM機以保證其能正常工作未注冊用戶可以通過用戶名、密碼和手機號成為注冊用戶并生成相應(yīng)賬戶成為注冊用戶并生成相應(yīng)賬戶收款由信用系統(tǒng)通過ATM機完成111worker11knowcustomerUsecreditsystemUsemonitor11changepasswd0cdllection()Maijtainworkerusemamepasswd1x()了解銀行消息未注冊用戶測覽銀行功能注冊注冊用戶:瀏覽銀行功能銀行客戶:注冊用例名稱注冊用例id參與者未注冊用戶描述通過輸入用戶名、口令與手機號成為注冊用戶。2.了解銀行消息用例名稱了解銀行消息用例id參與者未注冊用戶,已注冊用戶描述了解銀行提供的基本消息用例名稱瀏覽銀行功能用例id參與者未注冊用戶,已注冊用戶描述了解銀行提供的基本功能用例名稱用戶登錄用例id參與者注冊用戶描述通過輸入用戶名與口令登錄賬戶5.存款用例名稱存款用例id參與者客戶描述機存入銀行賬戶之中6.取款用例名稱取款用例id參與者客戶描述機從賬戶中取出7.轉(zhuǎn)賬用例名稱轉(zhuǎn)賬用例id參與者客戶描述登錄對應(yīng)賬戶后,賬戶中的余額從ATM機中取出再轉(zhuǎn)到輸入的對應(yīng)賬戶中8.修改密碼用例名稱注冊用例id參與者客戶描述登錄對應(yīng)賬戶后,通過驗證手機號來修改密碼9.貸款用例名稱貸款用例id參與者客戶,信用系統(tǒng)描述登錄賬戶后,經(jīng)過信用系統(tǒng)的評估后,決定客戶可貸金額后,客戶選擇貸款金額。10.查看監(jiān)控用例名稱查看監(jiān)控用例id參與者銀行工作人員描述工作人員登錄對應(yīng)賬戶后,可以查看監(jiān)控11.維護ATM用例名稱參與者銀行工作人員描述每日檢查ATM,保證其能正常工作12.收款用例名稱收款用例id參與者信用系統(tǒng)描述進行收款13.信任評估用例名稱信任評估用例id參與者信用系統(tǒng)描述對客戶的信任等級進行評估第13習(xí)題1、氣象監(jiān)測站需求:2)風(fēng)向同時,系統(tǒng)還應(yīng)通過上面的數(shù)據(jù)導(dǎo)出下面的數(shù)用戶可以通過鍵盤選擇某一個主要測量指標(biāo)(如,溫度、濕度),讓系統(tǒng)顯示該測量指標(biāo)在24小時內(nèi)的最高值和最低值,以及出現(xiàn)這些值的時間。系統(tǒng)應(yīng)該允許用戶根據(jù)已知值來校正傳感器,并允許用戶設(shè)置當(dāng)前的時間和日期。下面確定系統(tǒng)的硬件平臺和要求。在對軟件系統(tǒng)進行分析和設(shè)計之前,首先必須確定硬件平臺,我們做以下假定。2)時間和日期由一個時鐘提供;3)通過遠(yuǎn)端的傳感器來測量溫度、氣壓和濕度;數(shù)器)的標(biāo)柱測量風(fēng)向和風(fēng)速;5)通過鍵盤提供用戶輸入;7)計算機每/60秒產(chǎn)生一定時器中斷。這個硬件平臺的部署圖:TemperatureSonsor,圖1.1硬件平臺部署圖TimeDate對象有兩種狀態(tài):初始化狀態(tài)和運行狀態(tài)(運行在24-hourmode圖1.2TimeDate對象狀態(tài)圖-10°高值低值傳感器值Sensor類,可以用-1和1之間的浮點數(shù)來表達變?nèi)舾蓚€數(shù)值的一條擬合直線的斜率。因此,我們在這兩個類中增加以下的責(zé)任和其相應(yīng)的責(zé)任:報告溫度或壓力變化趨勢,表示給定時間區(qū)間上,過去值的擬合直線的斜率。通過初步分析,設(shè)計出濕度傳感器類的規(guī)格說明。我們建議創(chuàng)建一個公共的超類HistoricalSensor,負(fù)責(zé)提供這個公共的行為。下面是這個超類的規(guī)格說明。責(zé)任:報告過去24小時內(nèi)測量數(shù)據(jù)的最高和最低值根據(jù)前面的分析,下面設(shè)計出風(fēng)速傳感器類。責(zé)任:跟蹤當(dāng)前風(fēng)向因為不能夠直接探測出當(dāng)前的風(fēng)速。風(fēng)速的計算方法是:將標(biāo)柱上風(fēng)杯的旋轉(zhuǎn)次數(shù)除以計數(shù)間隔,然后乘以與特定的標(biāo)柱裝置對應(yīng)的比例值。對上面4個具體類(溫度傳感器、壓力傳感器、濕度傳感器和風(fēng)速傳感器)做快速的領(lǐng)域分析,可以發(fā)現(xiàn)它們有一個共同的特點,那就是可以根據(jù)兩個已知的數(shù)據(jù)點,用線性內(nèi)插法來校正自己。為了給四個類中提供這個行為,可以創(chuàng)建一個更責(zé)任:給定兩個已知數(shù)據(jù)點,提供線性內(nèi)插值的值風(fēng)向傳感器既不需要校正,也不需要報告歷史完整的層次結(jié)構(gòu)。TrendSensorspeed圖1.4下面設(shè)計邊界類,它們是:小鍵盤類、顯示器類、時鐘類。責(zé)任:跟蹤最近一次用戶輸入值得注意的是,這個鍵盤僅僅知道幾個鍵中的某個鍵被按下,把解釋每個鍵的含義的責(zé)任委托給其它的不同的類圖1.5提供了一個通用的顯示界面原型。在這個原型中,省略了對系統(tǒng)需求中節(jié)。同時,需求提出某些顯示模式:某些數(shù)據(jù)需要用文本顯示(以兩種不同的大?。?;元素是靜態(tài)的(如temp標(biāo)簽),另外一些元素是動態(tài)的(如風(fēng)向)。在分析階段,初步?jīng)Q定用軟件來顯示這些靜態(tài)和動態(tài)元素。責(zé)任:管理LCD設(shè)備,為顯示某些圖形元素提供服務(wù)。類時,必須提供一個代理來負(fù)責(zé)將傳感器數(shù)據(jù)轉(zhuǎn)換為顯示器可以識別的數(shù)據(jù)。這個代理的設(shè)計,推遲在后面實現(xiàn)。最后一個需要設(shè)計的邊界類是定時器。這里假定系統(tǒng)中有且只有一個定時器,它每隔1/60秒向計算機發(fā)出中斷,調(diào)用一個中斷服務(wù)例程。45每1/60秒一個硬件3、系統(tǒng)用例:4圖1.73.1主要用例:1)檢測基本的氣象測量數(shù)據(jù)。包括風(fēng)速、風(fēng)向、溫度、氣壓和適度;2)檢測導(dǎo)出的測量數(shù)據(jù)。包括風(fēng)冷度、露點、溫度趨勢和氣壓趨勢;3)顯示用戶選定的測量數(shù)據(jù)的最高值和最低值;4)設(shè)置時間和日期;5)校正選定的傳感器;3.2輔助用例:根據(jù)分析,增加2個輔助用例:1)電源故障2)傳感器故障。1、氣象檢測系統(tǒng)用例:檢測基本的氣象測量數(shù)據(jù)是氣象檢測系統(tǒng)的首要用例。其中一個約束是:不可能在1秒內(nèi)測量60次以上。通過分析,我們提出了以下采集速率,這些速率能夠充分的捕獲氣象風(fēng)向:每0.1秒風(fēng)速:每0.5秒+sample()+sampler()考慮到軟件系統(tǒng)的國際化要求,還應(yīng)該考慮:系統(tǒng)是采用攝氏還是華氏顯示溫度?系統(tǒng)是采用公里每小時(k/h)還是采用英里每小時(m/h)顯示風(fēng)速?為提供軟件系統(tǒng)的靈活性,必須在TmperatureSensor和WindspeedSensor類中增加一個操作setMode(設(shè)計模式)。最后,必須相應(yīng)地修改操作drawStaticItems的通過TemperatureSensor和PressureSensor類,可以導(dǎo)出溫度和壓力數(shù)據(jù)的變化趨勢。但是,為了實現(xiàn)所有的導(dǎo)出測量數(shù)據(jù),需要創(chuàng)建兩個新類——WindChill與其他兩個類協(xié)作完成各自的責(zé)任。具體地說,TemperatureSensor和WindspeedSensor協(xié)作計算的導(dǎo)出數(shù)據(jù)封8+sensors:Sensors+setSamplingRate()+sample()+sampler()+下一步考慮用戶與氣象監(jiān)測系統(tǒng)交互的場景。敘述:顯示所選測量數(shù)據(jù)的最高值和最低值。3)用戶按下wind、temp、pressure或humidity鍵中的任何一個,其他按鍵(除run外)被忽略;5)用戶按下UP或DOWN鍵來分別選擇顯示24小時中最高值或最低值,其他的按鍵(除run外)被忽略;6)系統(tǒng)顯示所選值,同時顯示該值出現(xiàn)時的時間;7)控制返回步驟3)或步驟5)。注意:用戶可以按下RUN鍵來提交或放棄操作,此時,正在閃爍的信息、選擇的值和這個場景提醒我們,應(yīng)該在displaymanager類中增加兩個操作:flashLabel操作。根據(jù)操作變量讓標(biāo)簽閃爍或停止閃爍。displaymode操作。在LCD設(shè)備上以文本的方式顯示信息。敘述:這個用例設(shè)置日期和時間。2)系統(tǒng)顯示selecting;4)系統(tǒng)閃爍相應(yīng)的標(biāo)簽,同時閃爍選擇項的第一個字段(即時間的小時字段和日期的5)用戶按下LEFT或RIGHT鍵來選擇另外的字段(選擇可以來回移動),用戶按下UP6)控制返回步驟3)或步驟5)。注意:用戶可以按下RUN鍵來提交或放棄操作,此時,正在閃爍的信息和selecting消息消失,時間和日期被重置。敘述:這個用例用于校正傳感器。2)系統(tǒng)顯示calibrating;3)用戶按下wind、temp、pressure或humidity鍵中的任何一個,其他按鍵(除run5)用戶按下UP或DOWN鍵來選擇高校正點或低效正點;8)控制返回步驟3)或步驟5)。和resumeSample(重新采樣)。3)用戶按下wind、temp鍵中的任何一個,其他按鍵(除run外)被忽略;7)控制返回步驟3)或步驟5)。通過對上面幾個場景的分析,我們可以確定面板上按鈕圖2.4氣象監(jiān)測用戶小鍵盤狀態(tài)直接對應(yīng)于前述的四個場景。如圖2.5所示。WindH最后一個主要場景是“啟動系統(tǒng)”,啟動系統(tǒng)時3)初始化用戶輸入緩沖區(qū),刪除無用的按鍵(有噪音引起);2、系統(tǒng)架構(gòu)設(shè)計:3)如圖2.6所示,基于時間幀的處理模式。他將時間分成若干幀(通常是固定的長度),幀又可以更進一步被分成子幀,每個子幀包含一些功能行為,從一個幀到另外一個幀的活動可能不同,例如,可以每隔10個幀進行一次風(fēng)向采樣,每隔30個幀進行一次風(fēng)采樣處理顯示采樣時間圖2.6時間幀處理圖2.7是作者設(shè)計的一張類圖,這個類圖忽略了次要的類,強調(diào)了主要的類。它體現(xiàn)首先介紹時鐘類timer,如圖3.1展示了類設(shè)計為了動態(tài)改變采樣對象的行為,我們?yōu)镾ampler對象增加兩個操作:SensorsSensor+rawValue()+name()+id()*因為不想將Collection類的大部分操作暴露給Sensor類的客戶,我們將Collection定義為一個受保護的超類。在Sensor類中,只聲明少量的操作。我們可以創(chuàng)建一個泛化的傳感器集合類,它能夠容納同一個傳感器的多個實例,每一個實例可以用唯一的ID來區(qū)分——這些ID從0開始。因為,Sampler對象(采樣代理)要獲取Sensor對象的采樣值,并將這個采樣值傳遞類、Sensor類和DisplayManager類的關(guān)系設(shè)計為圖3.4所示。11+numberOfSensors():Integer+numberOfSensors(SensorName):Integer+display(float,SensorName,id:Integer=0)+sensor(SensorName,id:Integer=0):Sensor+currentValue()11Sampler類是完成氣象監(jiān)測的核心類,圖3.5是系統(tǒng)架構(gòu)的初步設(shè)計圖。DisplayDisplayManagerAcquire111+rawValue()+name()+id()*開發(fā)軟件系統(tǒng)時,每一個當(dāng)前版本都是建立在前一個版本之上?,F(xiàn)在計劃我們的發(fā)布版本序列:開發(fā)一個具有最小功能的發(fā)布版本序列。其中,每一個版本都是建立在前一個版本之1)設(shè)計并實現(xiàn)傳感器的層次結(jié)構(gòu)。2)設(shè)計并實現(xiàn)與管理顯示類相關(guān)的其他類。3)設(shè)計并實現(xiàn)負(fù)責(zé)管理用戶界面的各個類。為了對軟件體系結(jié)構(gòu)有深入的了解,首先應(yīng)該開發(fā)一個包含最小功能集合的發(fā)布版本。即,該版本必須實現(xiàn)系統(tǒng)中每一個關(guān)鍵類的小部分功能。由于實現(xiàn)了每個關(guān)鍵部分的功能,這就使解決了項目中存在的高風(fēng)險。在構(gòu)造系統(tǒng)架構(gòu)的過程中,我們通過迭代和增量方法演示了傳感器類及其相關(guān)類的分析和設(shè)計過程。在這個演化的發(fā)布版本中,通過完善系統(tǒng)的最小功能,對傳感器類的進一B步分析和細(xì)化。最初的傳感器類設(shè)計如圖1.4所示,為了穩(wěn)定類的基本框架,將下層類的公共操作currentValue提升到Sensor類中。按照需求,每個傳感器實例必須有一個到特定接口的映射。這個接口必須用到傳感器圖3.5所示。+rawValue()現(xiàn)在可以簡化DisplayManager::display的簽名了,即,display操作只需用到一個參數(shù)(即對Sensor對象的引用)。CalibratingSensor類的規(guī)格說明如圖3.6所示。+currentValue()+setHighValue(float,float)+setLowValue(float,float)+CalibratiingSensor(SensorName,id:Integer=0)+rawValue()+rawValue()+name()+id()類HistoricalSensor的規(guī)格說明如圖3.6所示。類TrendSensor還是定義為抽象類。把類TrendSensor定義為HistoricalSensor類的一個子類,并在其中增加了一個具體的操作trend,如圖3.7所示。把類TemperatureSensor定義為TrendSensor的一個子類,如圖3.8所示。6

溫馨提示

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

最新文檔

評論

0/150

提交評論