(完整word版)西南民族大學(xué)UML復(fù)習(xí)_第1頁
(完整word版)西南民族大學(xué)UML復(fù)習(xí)_第2頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、選擇10 x1(10二、判斷10 x1(10分)三、填空10 x1(10分)四、簡答5x5(25分)五、分析設(shè)計4題(45分)基本概念:UML介紹UML:Unified Modeling Language(統(tǒng)一 建模 語言) 是一種通用的模擬語言,可用于確定、展示和記錄軟件系統(tǒng)。建模語言是建模中的一個非常關(guān)鍵的因素。UML中的圖形標記非常適用于面向?qū)ο蟮能浖O(shè)計。什么是 UMLUML1.不是一種可視化編程語言,而是一種可視化建模語言。2.不是工具或知識庫的規(guī)格說明,而是建模語言的規(guī)格說明,是一種表示的標準。3.不是過程,也不是方法,但是允許任何一種過程和方法使用它。UMLUML 的設(shè)計目標

2、:1運用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型2建立起從概念模型直至可執(zhí)行體之間明顯的對應(yīng)關(guān)系3著眼于那些有重大影響的問題4.創(chuàng)建一種對人和機器都適用的建模語言UML已成為用于描繪軟件藍圖的標準語言,它可用于對軟件密集型系統(tǒng)進行建模,其主要特點包括:工程化、規(guī)范化、可視化、系統(tǒng)化、文檔化和智能化。繼承、多態(tài)與接口繼承:如果類B繼承類A,那么類A中描述的操作和信息結(jié)構(gòu)將成為類B的一部分。封裝、繼承、派生借助繼承,可以表示類之間的類似性, 并且在其他類能繼承的一個類中描述這些相似性。 因此,就能夠復(fù)用公共的描述。繼承常常被提倡為軟件工業(yè)界中關(guān)于復(fù)用的一個核心思想。繼承還有利于軟件維護。通過抽取和共享公共特性就

3、能夠通用化一些類,并且把它們放在繼承層次的更高位置。同樣,如果希望增加新類,可以尋找這樣一個類, 它已經(jīng)提供了適用于該新類的某些操作和信息結(jié) 構(gòu)。然后,讓新類繼承這個類,只需增加該新類所獨有的那些內(nèi)容。然后,使這個類專用化。多態(tài)指同一個實體同時具有多種形式(相同的操作會產(chǎn)生不同的動作)。在面向?qū)ο笳Z言中,接口的多種不同的實現(xiàn)方式即為多態(tài)(同樣的函數(shù)在不同的類上有不同的行為)。比如:形狀類一一有繪制方法(同一個函數(shù),但是不同形狀有不同的繪制方法)多態(tài)性:多態(tài)性(Polymorphism)是指同一個消息為不同的對象接收時,可產(chǎn)生不同的動作 或執(zhí)行結(jié)果。接口接口的主要目的是:為不相關(guān)的類提供通用的處

4、理服務(wù)。接口是一種約束形式,其中只包括成員定義,不包含成員實現(xiàn)的內(nèi)容。 當(dāng)類實現(xiàn)一個接口,它就許諾實現(xiàn)在那個接口中執(zhí)行所有的方法。UML對系統(tǒng)建模00開發(fā)的每個階段都可以用UML模型對系統(tǒng)建模,從系統(tǒng)不同的角度可以分為: 類模型:包圖、對象圖、類圖狀態(tài)模型:狀態(tài)圖交互模型:用例圖、順序圖、活動圖針對系統(tǒng)構(gòu)架:構(gòu)件圖、配置圖三種模型:類模型:提供數(shù)據(jù)模型狀態(tài)模型:各對象的控制結(jié)構(gòu)交互模型:對象間信息交換,系統(tǒng)的整體視圖UML的結(jié)構(gòu):九種圖形:靜態(tài)模型(系統(tǒng)結(jié)構(gòu)):類圖、對象圖、組件圖、部署圖動態(tài)模型(系統(tǒng)行為):時序圖、協(xié)作圖、狀態(tài)圖、活動圖、用例圖類圖:類的定義:類是具有相似結(jié)構(gòu)、行為和關(guān)系的

5、一組對象的描述符類圖使用出現(xiàn)在系統(tǒng)中的不同類來描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖用來描述不同的類和它們的關(guān)系。類的UML表示法:名字放在方框正中,首字母大寫,用單數(shù)名詞表示類名。比如:PersonPt lamp : s I r i ngPagp : int +move() : void +say() : void可視性(Visibility)標記表示:+公共# 保護-私用可視性也可以用以下關(guān)鍵字表示:public(公共)、protected(保護)、private(私用)。若可視性標記為“+”或“public”,則為公共屬性,可以被外部對象訪問。若可視性標記為“#或“protected”,則為保護屬性,

6、可以被本類或子類的對象訪問。若可視性標記為“-”或“private”,貝U為私用屬性,不可以被外部對象訪問,只能為 本類的對象使用。可視性可以缺省,表示該屬性不可視。對象圖:對象圖是類圖的實例, 幾乎使用與類圖完全相同的標識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類對象的UML表示法:一個方框,方框里面是對象名后跟冒號和類名,對象名和類名都狀態(tài)圖:狀態(tài)圖元素:起點、終點、狀態(tài)、事件、轉(zhuǎn)換、復(fù)合狀態(tài)和子狀態(tài)狀態(tài)圖圖符(常見)口注釋體 起點 狀態(tài)終點轉(zhuǎn)換符合狀態(tài)注釋連接參與者用例事件的描述:事件名稱參數(shù)表變化事件(change event)是指依賴于指定屬性值的布爾表達式得到滿足

7、。這是一種一直等 待直到特定條件被滿足的聲明方式。在UML中,用關(guān)鍵字When,后面跟隨布爾表達式來對一個變化事件建模。你可以用表達式來標記一個絕對時間(如:When time=10:00),或?qū)Ρ磉_式作不間斷地測試(如whenaltitude 擴展用例父用例子用例PersonalCompany順序圖:建立順序的步驟:1)確定交互的范圍2)識別參與交互的對象和活動者3)設(shè)置對象生命線的開始和結(jié)束4)設(shè)置消息5)細化消息對象的三種命名方式:obiectName:ClassName生命線是對象圖標向下延伸的虛線,表示對象生存時間.控制焦點(Focus of Control)又稱為激活期(Activ

8、ation),用生:ClasgNameobjectN日me:CI餌sName命線上的小矩形表示,在這個時間段內(nèi),對象執(zhí)行相應(yīng)的操作*FOC 嵌套活動圖:(activity diagram )活動圖:顯示了組成復(fù)雜過程的步驟序列,主要用于描述算法和工作流,在設(shè)計算法和工作流的早期階段最為有用活動圖的目標:顯示復(fù)雜過程內(nèi)部的各個步驟以及它們之間的順序約束 注意:1)活動圖可以顯示控制流,但專注于操作而不是對象2)活動圖中的各項活動要有相同的細節(jié)層次粗線條:并發(fā)線程的分流和合并主要元素:起點和終點、活動、轉(zhuǎn)移、接收信號和發(fā)送信號、 決策點和匯合點、 分叉和匯合、 控制流終點、泳道活動圖圖符活動判斷條

9、件同步條接收信號發(fā)送信號泳迢轉(zhuǎn)移注釋連接注釋體起點泳道:(swimla ne)泳道是為組織活動圖而對活動進行的分組,用來劃分狀態(tài)圖的狀態(tài) 每個泳道代表整個活動的部分高級職責(zé)整個活動可能最后由一到多個泳道實現(xiàn) 使用泳道可以把活動按照功能或所屬對象的不同來進行組織。屬于一個對象的所有活動都放在同一個泳道內(nèi),對象的名字放在泳道的頂部。 業(yè)務(wù)模型中了解哪個組織負責(zé)某項活動時使用把一項活動放在某條泳道中表明它會由組織內(nèi)的某個人或某些人執(zhí)行word Processor, exeClasses:WordProcessorSpellCheckerWordCounter地勤人員翳養(yǎng)人員(消理垃圾工加油1r 裝*

10、品、和飲料丿11組件圖:組件圖用來建模軟件的組件及其相互之間的關(guān)系。這些圖由組件和組件之間的關(guān)系構(gòu) 成。組件的表示W(wǎng)ordProcessorWordProcessorSpellCheckerSpellCheckerWordCounterWordCounter部署圖:部署圖用來描述系統(tǒng)的硬件配置、硬件部署以及軟件構(gòu)件和模塊在不同節(jié)點上分布的模 型圖。描述了系統(tǒng)運行時的硬件節(jié)點,以及在這些節(jié)點上運行的軟件構(gòu)件的靜態(tài)視圖。顯示了系統(tǒng)中的硬件、安裝在硬件上的軟件,以及用于連接異構(gòu)的機器之間的中間件。部署圖中通常包含2個元素節(jié)點(Node)關(guān)聯(lián)關(guān)系(Association)部署圖可以顯示節(jié)點以及它們之間

11、的必要連接,也可以顯示這些連接的類型,還可以顯示構(gòu)件和構(gòu)件之間的依賴關(guān)系,但是每個構(gòu)件必須存在于某些節(jié)點上。四、簡答題范圍:1狀態(tài)圖狀態(tài)圖主要由起點、終點和狀態(tài)組成,各狀態(tài)由轉(zhuǎn)移連接在一起。狀態(tài)圖適合于描述跨越多個用例的單個對象的行為。狀態(tài)圖由狀態(tài)、事件和轉(zhuǎn)換三個主要元素構(gòu)成。事件:“事件”指發(fā)生在時間和空間某點上的且能夠引起某些動作執(zhí)行的事情事件可以是(內(nèi)部事件)也可以是(外部事件) 外部事件:是在系統(tǒng)和參與者之間傳送的事件。內(nèi)部事件:是在系統(tǒng)內(nèi)部的對象之間傳送的事件四類事件:調(diào)用事件、信號事件、變更事件、時間事件1調(diào)用事件:是表示對操作的調(diào)度2信號事件:是指發(fā)送或接收信號的事件3變更事件:

12、因滿足某種條件而引起的事件,變化條件用when表示4時間事件:滿足某一時間表達式而引起的事件,時間事件用after,when表示2類與類關(guān)聯(lián),轉(zhuǎn)化為代碼,類與類關(guān)系定義UML六大關(guān)系關(guān)聯(lián)關(guān)系(Association)(又分為單向關(guān)聯(lián)、雙向關(guān)聯(lián)、自關(guān)聯(lián)、多重關(guān)聯(lián))聚合關(guān)系(Aggregation)組合關(guān)系(Composition)依賴關(guān)系(Dependency)實現(xiàn)(Realization)泛化(Generalization)關(guān)聯(lián)關(guān)系association關(guān)聯(lián)關(guān)系是類與類之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類對象與另一類對象之間有(has a)聯(lián)系。在UML類圖中,用實線連接有關(guān)

13、聯(lián)的對象所對應(yīng)的類,在使用C#、C+和Java等編程語言實現(xiàn)關(guān)聯(lián)關(guān)系時,通常將一個類的對象作為另一個類的屬性。關(guān)聯(lián)是模型元素間的一種語義聯(lián)系,當(dāng)類之間在概念上有連接關(guān)系時,類之間的連接叫做關(guān)聯(lián)。隊員和球隊之間的關(guān)聯(lián),可以用短語“隊員為籃球隊效力”來刻畫,圖形表示為:Pirsoti類與Bicycle類之間存在關(guān)聯(lián)關(guān)系, 這意味著Person類中需要定義一個B icycle類型的成員變量public class Personprivate Bicycle bicycle; /*騎自行車去上班*/public void goToWork()bicycle.r un(); public class C

14、ustomerprivate Product Products;public class Productprivate Customer customer;plays onTeam雙向關(guān)聯(lián)自關(guān)聯(lián)containsNode-subNode : Nodepublic class Node private Node sub node;多重關(guān)聯(lián)Form1.1 Butt on-butto ns: Butto n|L o.*public class Formprivate Butt onbutt ons;public class Butt on關(guān)聯(lián)可加上一些約束,以加強關(guān)聯(lián)的含義;Bank TellerSe

15、rvesCustomerordered)用ordered表示類的對象需要排序,不允許重復(fù)值對于一對對象,二元關(guān)聯(lián)通常至多有一個鏈接,在關(guān)聯(lián)端標注bagsequenee,允許在一對對象上有多重鏈接。袋子(bag):無序,可重復(fù)序列(sequenc:有序,可重復(fù)ordered和sequenee是相同的,只是前一個不允許重復(fù)值,后一個允許 限定符泛化關(guān)系(Generalization)(Generalization)泛化關(guān)系也就是繼承關(guān)系,也稱為“is-a”關(guān)系,泛化關(guān)系用于描述父類與子類之間的關(guān)系,父類又稱作基類或超類,子類又稱作派生類。在UML中,泛化關(guān)系用帶空心三角形的直線來表示。在代碼實現(xiàn)時

16、,使用面向?qū)ο蟮睦^承機制來實現(xiàn)泛化關(guān)系,如在Java語言中使用extends關(guān)鍵字、在C+、C#中使用冒號“:”來實現(xiàn)。public class Personprotected stri ng n ame; protected int age; public void move() public void say()public class Stude nt : Person private string studentNo; public void study() 實現(xiàn)關(guān)系(Realization)(Realization)接口之間也可以有與類之間關(guān)系類似的繼承關(guān)系和依賴關(guān)系,但是接口和類之

17、間還存在一種實現(xiàn)關(guān)系,在這種關(guān)系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作。在UML中,類與接口之間的實現(xiàn)關(guān)系用帶空心三角形的虛線來表示。Vehicle+move() : voidr111II1111ShipCar+move() : void+move() : voidpublic in terface Vehiclepublic void move(); public class Ship : Vehiclepublic void move()Console.WriteLine(輪船航行);public class Car : Vehiclepublic void move()Co

18、nsole.WriteLine(汽車行駛);泛化:子類向父類抽象繼承:子類對父類屬性和行為的繼承3高級類建模:類圖建立系統(tǒng)模型時可以添加的細節(jié),包含了:枚舉、多重性、作用域可見性、關(guān)聯(lián)終端、N元關(guān)聯(lián)聚合、抽象類、多重繼承元數(shù)據(jù)、具體化、約束派生數(shù)據(jù)、包枚舉(enumeration):由有限取值集合組成的一種數(shù)據(jù)類型。女口:enum WeekDay Mon day, Tuesday, Wedn esday, Thursday, Friday, Saturday, Sun day枚舉是指同一類中具有共同屬性和行為的對象,只是值不同;泛化則是指具有一些相同屬性和行為的對象,但是有一些重要屬性或行為不

19、能完全相同。枚舉與泛化的不同(語義和UML表達)Shape類和三角形、矩形、圓形等,父類不具有子類的特征,而不僅僅是值不同書第60頁 圖4-2(PPT上的 沒找到) 派生元素是可以從其它元素計算出來的元素不增加語義信息,但是有了派生元素可以更清楚或者更有利于設(shè)計 其表示法是在派生元素的名字前加一條斜線“/”SaledaleXtotalotime dorr/ed attribui曰從多重性導(dǎo)出屬性值口 a. _derhablft frcm theactual rnultiplicity4第12章領(lǐng)域分析:領(lǐng)域模型:理解系統(tǒng)問題和應(yīng)用 主要包括:類模型、有時候會有狀態(tài)模型,很少會包含交互模型領(lǐng)域模型是系統(tǒng)的靜態(tài)模型 分析需求的第一步是構(gòu)造領(lǐng)域模型領(lǐng)域模型顯示了真實系統(tǒng)的靜態(tài)結(jié)構(gòu),并把系統(tǒng)劃分成可工作的片段領(lǐng)域模型描述真實世界的類以及它們之間的相互關(guān)系在分析過程中,類模型的優(yōu)先級要高于狀態(tài)和交互模型,這是因為靜態(tài)結(jié)構(gòu)容易更好地定義,而且會較少地依賴應(yīng)用程序的細節(jié),并且當(dāng)解決方案發(fā)生演化的時候會更加穩(wěn)定領(lǐng)域模型的信息來自于問題陳述、其他相關(guān)系統(tǒng)的制品、專家對應(yīng)用領(lǐng)域的了解以及對真實世界的總的認識創(chuàng)建領(lǐng)域類模型,必須要經(jīng)過下面幾個步驟:1)尋找類2)準備

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論