自考本科教材課件——NO4面向?qū)ο骍ML_第1頁
自考本科教材課件——NO4面向?qū)ο骍ML_第2頁
自考本科教材課件——NO4面向?qū)ο骍ML_第3頁
自考本科教材課件——NO4面向?qū)ο骍ML_第4頁
自考本科教材課件——NO4面向?qū)ο骍ML_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蠓椒║ML主講:段智敏考試大綱本章要求掌握創(chuàng)建系統(tǒng)/產(chǎn)品模型(包括概念模型和軟件模型)中用于表達信息的基本術(shù)語以及用于表達模型的用例圖、類圖、順序圖和狀態(tài)圖。識記類、接口、用例、協(xié)作等概念關(guān)聯(lián)、泛化、實現(xiàn)、依賴等概念類圖、用例圖、順序圖、狀態(tài)以及狀態(tài)圖的構(gòu)成領(lǐng)會面向?qū)ο蠓椒ǖ幕舅枷險ML每一個術(shù)語所基于的原理和在建模中的作用類的描述及其語義的表達和在建模中的作用表達關(guān)聯(lián)語義的基本手段狀態(tài)的種類及其描述順序圖中的操作子正交子狀態(tài)機與非正交子狀態(tài)機面向?qū)ο蠓椒嫦驅(qū)ο蠓椒òl(fā)展概述面向?qū)ο蠓椒ㄊ且环N以對象、對象關(guān)系等來構(gòu)造軟件系統(tǒng)模型的系統(tǒng)化方法??梢?,面向?qū)ο蠓椒ǖ氖澜缬^是:一切系統(tǒng)都是

2、由對象構(gòu)成的,它們的相互作用、相互影響,構(gòu)成了各式各樣系統(tǒng)。其發(fā)展主要經(jīng)歷了:支持編程的面向?qū)ο笳Z言1967:Dahl和 Nygaard在挪威開發(fā)了第一個面向?qū)ο笳Z言:Simula-6720世紀80年代初,Smallsalk語言得到廣泛應用;隨后出現(xiàn)了Objective C、C+和Eiffel等。 20世紀80年中期以來,面向?qū)ο蠓治龊驮O(shè)計方法學得到了快速發(fā)展,相繼提出了很多有關(guān)的方法學,典型的有:1986:G.Booch的OOD; 1990:P.Coad和E.Yourdon的OOA,OOD1991:J.Rumbbaugh的OMT; 1994:Embly的OSA等。面向?qū)ο蠓椒ㄔ诜椒▽W方面形成

3、了兩大主流學派:以“方法(method )”驅(qū)動的方法學基本思想:在給出符號體系的基礎(chǔ)上,明確規(guī)定進行的“步驟”,并在每一步中給出“實施策略”。代表:P.Coad的“OOA(1990)”, “ OOD(1991)”優(yōu)點:容易學習和掌握。缺點:不夠靈活,可能對出現(xiàn)的新問題就沒有辦法處理。以“模型(model )”驅(qū)動的方法學基本思想:給出模型化概念,即符號體系以及目標模型;而不明確規(guī)定實現(xiàn)目標的“步驟”,但給出一些必要的指導。代表:Rumbaugh 的“OMT(1991)”等優(yōu)點:比較靈活。缺點:與OOA相比,不易學習和掌握。面向?qū)ο蠓椒∣MG發(fā)布的UML以及USDP(統(tǒng)一軟件開發(fā)過程)95年,

4、Grade Booch 、Jim Rumbaugh在OOPSA會議上公布了他們的統(tǒng)一方法(0.8版);96年, G.Booch 、J.Rumbaugh以及Ivar Jacobson“三友”,將他們的統(tǒng)一建模語言命名為UML;97年,Rational公司發(fā)布了UML文檔1.0版,作為OMG的建議方案;98年,在合并不同建議的基礎(chǔ)上,OMG以其結(jié)果1.1版作為一個正式的標準。1999年,RTF發(fā)布了1.3版,2000年9月,發(fā)布了1.4版,2003年3月,發(fā)布了2.0版。面向?qū)ο蠓椒ㄊ艿綐I(yè)界和學術(shù)界廣泛關(guān)注,特別是UML以及相應的支持工具已在軟件開發(fā)中得到了廣泛的應用。 “在建模語言方面,UML已

5、成為一種繪制面向?qū)ο笤O(shè)計圖的標準工具,并已傳播到非面向?qū)ο箢I(lǐng)域。面向?qū)ο笠郧暗闹饕椒ㄒ呀?jīng)消逝.UML登場了,并且穩(wěn)居寶座?!?“統(tǒng)一建模語言UML乃軟件設(shè)計與需求規(guī)約語言。論述語言之優(yōu)劣,有用戶,設(shè)計,實現(xiàn)等觀點。這些觀點既有區(qū)別,又有聯(lián)系。UML問世以來,褒貶不一,但其應用廣泛,成績顯著,實為具有代表性之建模語言?!?摘自序,徐家福譯 UMLUML概述UML是一種可視化語言,用于:規(guī)約系統(tǒng)的制品;構(gòu)造系統(tǒng)的制品;建立系統(tǒng)制品的文檔。UML應用范圍UML作為一種一般性的語言,可用于:對象方法和構(gòu)件方法;所有應用領(lǐng)域(例如,航空航天、財政、通訊等) 不同的實現(xiàn)平臺(例如,J2EE、.NET等)

6、運行平臺(包括VB、VC、中間件、J2EE、.NET、框架等)問題域禰補兩者之間的“距離” -建立不同抽象層次的術(shù)語空間和模型表示工具-支持多視角地建立系統(tǒng)模型這意味著:UML是系統(tǒng)分析和設(shè)計的工具。UML就軟件開發(fā)方法學而言,UML給出了方法學中不同抽象層次的術(shù)語以及表達模型的工具。表達模型的工具 -USE CASE圖需求獲取層表達模型的工具 -類圖、交互圖等需求分析層表達模型的工具 -類圖、交互圖等設(shè)計層表達模型的工具 UMLUML面向?qū)ο蠓椒ㄐg(shù)語/符號為了支持軟件開發(fā),面向?qū)ο蠓椒ㄖ饕峁┝藘深愋g(shù)語:一類是表達結(jié)構(gòu)化事物的術(shù)語一類是表達關(guān)系的術(shù)語除了這兩類術(shù)語之外,為了控制信息組織的復雜

7、性,還引入了用于組織特定對象結(jié)構(gòu)的包。同樣做一類比,一個包相當一個可管理的“預制塊”。為了使建造的系統(tǒng)模型容易理解,引入了術(shù)語-注解,用于對模型增加一些輔助性說明??陀^事物術(shù)語類與對象類與對象類是一組相同屬性、操作、關(guān)系和語義的對象的描述。對象是類的實例。類的表示通常把類表示為具有三個欄目的矩形,每個欄目分別代表類名、屬性和操作。例如:客觀事物術(shù)語類與對象類名類名使用黑體字,第一個字母通常要大寫,并位于第一欄的中央。實踐中,類名往往是從正被建模系統(tǒng)的詞匯表中提取的簡單名詞或名詞短語。類可以是抽象類,即沒有實例的類,類名采用斜體字。例如:WindowWindowsize:Areavisibili

8、ty:Booleandisplay( )hide( )客觀事物術(shù)語類與對象屬性(Attribute)屬性是類的一個命名特性,由該類的所有對象所共享,用于表達對象狀態(tài)的數(shù)據(jù)。一個屬性往往具有所屬的類型,用于描述該特性的實例可以取值的范圍。類的一個對象對每一個屬性應有特定的值。一個類可以有多個屬性,也可以沒有屬性??陀^事物術(shù)語類與對象操作(Operation)操作是服務的一個實現(xiàn),由該類的任意對象為其行為所要求的。換言之,一個操作抽象了一個對象所要做的事情,并且該類的其它對象也要做這件事情。 調(diào)用一個對象上的操作可能會改變該對象的數(shù)據(jù)或狀態(tài)。一個類可以有多個操作,也可以沒有操作。Rectangle

9、add( )grow( )move( )isEmpty( )客觀事物術(shù)語類與對象在實際應用中,操作名往往是描述其所在類的行為的動詞或動詞短語。在操作名中,除第一個詞之外,其他每個詞的第一個字母要大寫??梢酝ㄟ^給出操作的特征標記進一步描述之,特征標記通常包括參數(shù)名、類型和默認值;如果該操作是一個函數(shù),那么其特征標記還包括返回類型。TemperatureSensorreset()setAlarm(t:temperature)value():Temperature客觀事物術(shù)語類與對象屬性和操作的可見性客觀事物術(shù)語類與對象操作的多態(tài)性Rectangleadd( )grow( )move( )isEmp

10、ty( )Rectangleadd( )grow( )move( )算法isEmpty( )Rectangleadd( )grow( )move( )算法isEmpty( )客觀事物術(shù)語類與對象類的描述及其語義的表達通過類的名字、屬性和操作表達類的語意,為了更好的表達類的含義,增強類的語義,可以通過以下幾種形式:詳細敘述類的職責,詳細敘述類的職責是對類進行模型化的基礎(chǔ),在此基礎(chǔ)上可進一步定義類的屬性和操作通過類的注解、操作的注解,以結(jié)構(gòu)化文本的形式、編程語言,詳述注釋整個類的語義、各個方法通過類或操作的注解,以結(jié)構(gòu)化文本形式,詳述各操作的前、后置條件詳述類的狀態(tài)機詳述類的內(nèi)部結(jié)構(gòu)類與其他類的協(xié)

11、作客觀事物術(shù)語類與對象類在建模中的主要用途模型化問題域中的概念模型化系統(tǒng)中的責任分布為了完成某些行為,標識一組緊密協(xié)同工作的類。對以上的每個類,標識它的一組職責。從整體上觀察這些類,把其中職責過多的類分解為一些較小抽象,而把責任過于鎖碎的類合并為一個較大的類,繼之重新分配責任??紤]這些類的相互協(xié)作方式,調(diào)整它們的責任,使協(xié)作中沒有哪個類的職責過多或過少。模型化基本類型客觀事物術(shù)語類與對象類在使用中應注意的問題每個類都應是某個有形的事物或概念的抽象。一個結(jié)構(gòu)良好的類,應符合以下條件:是對問題域或解域中的事物的明確抽象。嵌入了一個小的、明確定義的責任集,并能很好地實現(xiàn)之。清晰地分離了抽象的規(guī)約和實

12、現(xiàn)??陀^事物術(shù)語接口接口(Interface)是操作的一個集合,其中每個操作描述了類或構(gòu)件的一個服務。用帶有分欄和關(guān)鍵字的矩形符號來表示接口。在操作分欄中給出接口支持的操作列表接口的屬性分欄總是空的用小圓圈來表示接口圓圈表示由類提供的接口供接口半圓圈表示類需要的接口需接口interfaceIWindowOpen()Close()Display()客觀事物術(shù)語接口例:該圖表明類String支持接口Hashable、Comparable類HashTable使用接口Hashable、Comparable類String實現(xiàn)接口Comparable客觀事物術(shù)語接口建立系統(tǒng)模型中,使用接口應注意以下問題:

13、接口只描述類(構(gòu)件或子系統(tǒng))的外部可見操作,并不描述內(nèi)部結(jié)構(gòu)。接口僅描述一個特定類的有限行為。接口沒有實現(xiàn),接口也沒有屬性、狀態(tài)或者關(guān)聯(lián),接口只有操作。接口在形式上等價于一個沒有屬性、沒有方法而只有抽象操作的抽象類。接口只可以被其它類目使用,而其本身不能訪問其它類目??梢詫涌谑褂梅夯P(guān)系??陀^事物術(shù)語協(xié)作協(xié)作(Collaboration)定義了一個交互,包括交互各方、交互方式以及交互內(nèi)容,它們的共同工作提供了某種協(xié)作性行為。用虛線橢圓表示: 說明:協(xié)作具有結(jié)構(gòu)、行為和維度。由于一個給定的類或?qū)ο罂梢詤⑴c多個協(xié)作,因此協(xié)作表現(xiàn)了系統(tǒng)細化的構(gòu)成模式??陀^事物術(shù)語用例用況(UseCase)是對一組

14、動作序列的描述,系統(tǒng)執(zhí)行這些動作應產(chǎn)生對特定的參與者有值的、可觀察的結(jié)果。用實線橢圓表示:說明用況用于構(gòu)造模型中的行為。用況是通過協(xié)作予以細化的。Place order客觀事物術(shù)語主動類主動類(Active Class)是一種至少具有一個進程或線程的類,能夠啟動系統(tǒng)的控制活動。表示:與類圖相似,多兩條豎線。主要特性:主動類對象的行為通常與其他元素的行為是并發(fā)的。客觀事物術(shù)語構(gòu)件構(gòu)件(Component)是系統(tǒng)設(shè)計的模塊化部件,通過外部接口隱藏了它的內(nèi)部實現(xiàn)。表示:說明;在一個系統(tǒng)中,共享相同接口的構(gòu)件可以相互替代,但其中要保持相同的邏輯行為。可以結(jié)合連接件來表示構(gòu)件的實現(xiàn)。構(gòu)件可以包含更小的構(gòu)

15、件??陀^事物術(shù)語制品制品(Artifact)是系統(tǒng)中物理的、可替代的部件,其中包含物理信息(比特).表示:說明在一個系統(tǒng)中,可能會存在不同類型的部署制品,例如源 代碼文件、可執(zhí)行程序和腳本等。制品通常代表對源代碼信息或運行時信息的一個物理打包??陀^事物術(shù)語節(jié)點節(jié)點(Node)是在運行時存在的物理元素,通常它表示一種具有記憶能力和處理能力的計算機資源。表示:說明:一個構(gòu)件可以駐留在一個節(jié)點中,也可以從一個節(jié)點移到另一個節(jié)點。表達事物的術(shù)語小結(jié)模型化概念類、接口、協(xié)作、用況、主動類、構(gòu)件、制品、節(jié)點,是可包含在一個UML模型中的基本模型化元素,用于抽象客觀世界中的任何實體對象它們存在一些變體,例如

16、:類的變體-參與者、信號、實用程序;主動類的變體-進程和線程;制品的變體-應用、文檔、庫、頁和表等。在UML中,把以上結(jié)構(gòu)化概念統(tǒng)稱為類目(Classifier)表達關(guān)系的術(shù)語在UML中,有以下4種關(guān)系:關(guān)聯(lián)(Association)泛化(Generalization)實現(xiàn)(Realization)依賴(Dependency)這4種關(guān)系是UML的基本關(guān)系構(gòu)造塊,用于表達類目之間的關(guān)系,以構(gòu)造一個結(jié)構(gòu)良好的UML模型。關(guān)系術(shù)語關(guān)聯(lián)關(guān)聯(lián)(Association)定義:關(guān)聯(lián)是類目之間的結(jié)構(gòu)關(guān)系,描述了一組鏈(links),鏈是對象之間的連接(connection)。例如:如一個關(guān)聯(lián)只連接兩個類目,稱

17、為二元關(guān)聯(lián);如一個關(guān)聯(lián)連接n個類目,稱為n元關(guān)聯(lián)。關(guān)聯(lián)表示has-a的關(guān)系,類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。關(guān)聯(lián)關(guān)系有雙向關(guān)聯(lián)和單向關(guān)聯(lián)。關(guān)系術(shù)語關(guān)聯(lián)關(guān)聯(lián)的語義表達:關(guān)聯(lián)名(name):關(guān)聯(lián)可以有一個名字,用于描述該關(guān)聯(lián)的“涵義”,為了避免該關(guān)聯(lián)涵義上的歧義性,可給出其關(guān)聯(lián)方向。導航:給定一個類目,可以找到與之相關(guān)聯(lián)的另一個類目,用實心箭頭指示方向。角色(role):當一個類參與一個關(guān)聯(lián)時,有一個特定角色。在類的一個關(guān)聯(lián)中,可以顯式地命名該角色,如下所示:PersonCarOwns0.*CarPersondrives*company cardriverAuthorComp

18、uterUsesc1c2c3c4c5c6c7p1p3p2p4p5擁有關(guān)系:, , , 模型化為 1.2 0.1 擁有 多重性(multiplicity):類中對象參與一個關(guān)聯(lián)的數(shù)目,稱為該關(guān)聯(lián)角色的多重性。例如:關(guān)系術(shù)語關(guān)聯(lián)可導航多重性關(guān)聯(lián)示例一個保險公司擁有多份保險合同,這些合同與一個或多個客戶關(guān)聯(lián)。一個客戶擁有多份保險合同(0對多),這些合同與一個保險公司關(guān)聯(lián)。一份保險合同位于一個保險公司和一個或多個客戶之間。保險合同同時與一個客戶(或多個客戶)和一個保險公司相關(guān)聯(lián)。保險合同在一份(0或1)保險契約(一份書面形式的保險合同)里表達。保險契約與保險合同關(guān)聯(lián)。 關(guān)系術(shù)語關(guān)聯(lián)關(guān)系術(shù)語關(guān)聯(lián)關(guān)聯(lián)類(

19、Association Class) :可以將類附屬到關(guān)聯(lián)上,這種情況下的類稱為關(guān)聯(lián)類。一個關(guān)聯(lián)類,可以被看作是一個關(guān)聯(lián),但還有類的特性;或被看作是一個類,但有關(guān)聯(lián)的特性。companyperson0.1*Jobsalaryemployeremployee* Job 1.*bossmanagesworker關(guān)系術(shù)語關(guān)聯(lián)限定符(Qualifier):一個限定符是一個關(guān)聯(lián)的屬性或?qū)傩员恚@些屬性的值將對該關(guān)聯(lián)相關(guān)的對象集做了一個劃分。例如:左圖的限定符有一個屬性account#,表明:在一個銀行中,一個帳戶對應一個用戶,或沒有對應人員。右圖的限定符有兩個屬性,它們與Chessboard一起確定了S

20、quare,且 Square是其組成部分。關(guān)系術(shù)語關(guān)聯(lián)聚合(aggregation):一種特殊形式的關(guān)聯(lián),表達一種“整體/部分”關(guān)系,即“包含”或“由組成”。聚合表示共享聚合組合聚合TeamPerson*Members*WindowTextListboxButtonMenu*關(guān)系術(shù)語關(guān)聯(lián)組合聚合說明組合聚合擁有它的各個組成部分。部分和整體之間具有很強的“屬于”關(guān)系,具有一致的生存期。整體方的多重性必須是0或1(0.1),而部分方的多重性可以是任意值。在一個組合中,其部分可以包含一些類和關(guān)聯(lián);根據(jù)需要,也可以把它們規(guī)約為關(guān)聯(lián)類?;铏C機身機尾機翼1111leftWingrightWing關(guān)系術(shù)語

21、關(guān)聯(lián)組合聚合有三種不同的方式顯示W(wǎng)indowTextListboxButtonMenu*WindowTextListboxButtonMenu*WindowTextListboxButtonMenu*Contains關(guān)系術(shù)語關(guān)聯(lián)可見性+:公共訪問-:對關(guān)聯(lián)之外的任何對象不可訪問#:只有另一端的超類可以訪問:同一包中聲明的類可訪問約束有序(ordered)無重復(set)有重復(bag)有序集合(order set)列表(list)只讀(readonly)關(guān)系術(shù)語泛化泛化(Generalization)泛化是一種存在于一般元素和特殊元素之間的分類關(guān)系。泛化關(guān)系(繼承關(guān)系)中特殊元素和一般元素之間

22、的關(guān)系:“is-a”關(guān)系 。說明子類可繼承父類的屬性和操作,并可有更多的屬性和操作子類可以替換父類的聲明若子類的一個操作的實現(xiàn)覆蓋了父類同一個操作的實現(xiàn),這種情況被成為多態(tài)性,但兩個操作必須具有相同的名字和參數(shù)一個類可以有0個、1個或多個父類。沒有父類且最少有一個子類的類被稱為根類或基類;沒有子類的類稱為葉子類。如果一個類只有一個父類,則說它使用了單繼承;如果一個類有多個父類,則說它使用了多繼承關(guān)系術(shù)語泛化標準泛化關(guān)系 單一繼承表示多重繼承表示VehicleCarBoatTruckVehicleCarBoatTruck分離表示法 共享表示法PoweredVehicleAirplaneCarTr

23、uckAircraft關(guān)系術(shù)語泛化繼承、多態(tài)以及聚合結(jié)合使用示例Figureabstractposition: Posdraw () abstractPolygondraw ()Groupdraw ()Linedraw ()Circledraw ()consists of*Canvasconsists ofconsists of*關(guān)系術(shù)語泛化受約束的泛化關(guān)系UML為泛化關(guān)系預定義的幾種約束:重疊(Overlapping):在繼承關(guān)系中,那些繼承于某個子類的任何更深層次的子類可以繼承于該繼承關(guān)系的多個子類。 互斥(Disjoint):不允許將多個子類特化為一個公共子類。 完全(Complete)

24、:如果某個約束指出一個泛化關(guān)系是完全的,就意味著已經(jīng)指定了該泛化關(guān)系中的所有子類,并且不允許再增加子類了。 不完全(Incomplete):如果對一個泛化關(guān)系指定不完全約束,這就意味著還沒有給出該泛化關(guān)系中的所有子類,允許以后再增加子類。 關(guān)系術(shù)語細化細化(realization)定義:細化是類目之間的一種語義關(guān)系,其中一個類目規(guī)約了保證另一個類目執(zhí)行的契約。說明:在以下2個地方會使用實現(xiàn)關(guān)系:接口與實現(xiàn)它們的類和構(gòu)件之間;用況與實現(xiàn)它們的協(xié)作之間。表示:舉例:分析類設(shè)計類關(guān)系術(shù)語依賴依賴(Dependency)定義;依賴是一種使用關(guān)系,用于描述一個事物(如類Window)使用另一事物(如類E

25、vent)的信息和服務。說明:在大多數(shù)情況里,使用依賴來描述一個類使用另一個的操作如果被使用的類發(fā)生變化,那么另一個類的操作也會受到影響依賴可用于其它事物之間,例如注解之間和包之間表示:一條有向虛線,箭頭尾部的元素依賴于箭頭頭部元素。關(guān)系術(shù)語依賴為了進一步表達依賴的語義,UML對依賴進行了分類,并給出了相應的標記。綁定(bind):表明源的實例化是使用目標給定的實際參數(shù)來達到的。導出(derive):表明可以從目標推導出源。允許(permit):表明目標對源而言是可見的。實例(instanceOf):表明源的對象是目標的一個實例。實例化(instantiate):表明源的實例是由目標創(chuàng)建的。冪

26、類型(powertype):表明源是目標的冪類型。精化(refine):表明源比目標更精細。使用(use):表明源的公共部分的語義依賴于目標的語義。關(guān)系分類UML模型中可以包含的基本關(guān)系關(guān)聯(lián)、泛化、細化、依賴概念體系完備性關(guān)聯(lián)、泛化、細化都是一類特定的依賴,可以保證UML能夠表達客觀世界中的各種各樣的關(guān)系。在系統(tǒng)建模中,先使用關(guān)聯(lián)、泛化、細化,如果不能模型化關(guān)系再使用依賴。使用關(guān)聯(lián)、泛化、細化和依賴,可以模型化各種關(guān)系模型化簡單依賴模型化單繼承模型化結(jié)構(gòu)關(guān)系模型化精化關(guān)系模型化簡單依賴例如,一種常見的依賴關(guān)系是:一個類只是使用另一個類作為它的操作參數(shù)。對此,可從含有操作的類到被該操作用做參數(shù)的

27、類創(chuàng)建一個依賴。即: 注:如果操作add和remove給出了明顯的操作標記(c:Course,如上所示),則一般就不需要給出這個依賴;但當省略操作標記時或一個模型還描述了被使用類的其它關(guān)系時,就應顯示這一依賴。 CourseSchduleadd(c:Course) remove(c:Course) Course模型化單繼承第一步:對于給定的一組類,發(fā)現(xiàn)2個或2個以上類的共同責任、屬性和操作。第二步:把發(fā)現(xiàn)的共同責任、屬性和操作放到一個一般類中其中要注意,不要引入過多的層次。第三步:畫出從每個特殊類到一般類(父類)的泛化關(guān)系。注: 斜體字表明是一個抽象類或抽象操作; 子類中給出的操作為非斜體字,

28、表明給出了操作的實現(xiàn)。模型化結(jié)構(gòu)關(guān)系第一步:標識關(guān)聯(lián)若對于每一個類,需要導航到另一個類的對象,那么就要在這2個類之間給出一個關(guān)聯(lián)。這是關(guān)聯(lián)的數(shù)據(jù)驅(qū)動觀點。例如,一個學校信息系統(tǒng)中的一組類:若對于每一個類的對象需要與另一個類的對象進行交互,并且后一個對象不作為前一個對象的局部變量或操作參數(shù),那么就要在這2個類之間給出一個關(guān)聯(lián)。這是關(guān)聯(lián)的行為驅(qū)動觀點例如:要了解Student所要參與的課程,因此就應在Student和Course之間給出一個關(guān)聯(lián),用于描述學生參與的課程第二步:對于標識的每一個關(guān)聯(lián),添加語義描述例如,就上圖而言,給出關(guān)聯(lián)的多重性:每門課程至少有一名教師,而沒有一名教師可以教0到多門課

29、程。每門課程是精確地屬于一個系的。第三步:標識“整體部分”如果關(guān)聯(lián)中的一個類與另一端的類相比,前者在結(jié)構(gòu)上或組織上是一個整體,而后者是它們的一部分,那么就要把它們標識為聚合,見上圖。聚合:一所學??梢杂?到多名學生,一個學生可以注冊在一所或多所學校學習;一所學??梢杂幸粋€或多個系,而每個系只能屬于一所學校。要注意:在該例中,Department和Instructor之間有兩個關(guān)聯(lián),其中:一個關(guān)聯(lián)(聚合)說明可以指派一名教師到一個或多個系中工作,而一個系可以有一名或多名教師另一關(guān)聯(lián)表明一個系只能有一名教師作系主任,而某些教師不是系主任。組合信息術(shù)語包組織信息的一種通用機制包目的:為了組織類目,控

30、制信息組織和文檔組織的復雜性。語義:包是模型元素的一個分組。一個包本身可以被嵌套在其它包中,并且可以含有子包和其它種類的模型元素。包元素的可見性,可以通過在該元素名字前加上可見性符號(+:公共的,-:私有的,#:受保護的)來指示。表示在大矩形中描述包的內(nèi)容,而把該包的名字放在左上角的小矩形中??梢园阉脑禺嬙诎耐饷妫ㄟ^符號,將這些元素與該包相連。這時可把該包的名字放在大矩形中。UML模型表達格式模型表達工具UML提供了6種可對系統(tǒng)靜態(tài)部分建模的圖形工具:類圖構(gòu)件圖組合結(jié)構(gòu)圖對象圖部署圖制品圖。UML提供了7種可對系統(tǒng)動態(tài)部分建模的圖形工具:用況圖狀態(tài)圖活動圖順序圖通信圖交互概觀圖定時

31、圖靜態(tài)模型表達工具-類圖定義:類圖是給出一組類、接口、協(xié)作以及它們之間關(guān)系的圖。作用:可用于可視化地表達系統(tǒng)的靜態(tài)模型。是構(gòu)件圖和部署圖的基礎(chǔ)。類圖的內(nèi)容:通常包含:類;接口;依賴、泛化和關(guān)聯(lián)關(guān)系。還可以包含注解和約束,以及或子系統(tǒng),甚至,可包含一個實例,以便使其可視化。 注:這些成分,確定了所表達系統(tǒng)的各種形態(tài)。靜態(tài)模型表達工具-類圖類圖的一般用法類圖主要用于對系統(tǒng)的靜態(tài)設(shè)計視圖(投影)進行建模,支持表達系統(tǒng)的功能需求,既系統(tǒng)提供給最終用戶的服務。一般以三種方式使用類圖:對系統(tǒng)中的詞匯建模當要決策:使用哪些類目和UML關(guān)系,作為系統(tǒng)的組成部分;哪些類目類目和UML關(guān)系,處于系統(tǒng)之外。此時可使

32、用類圖來描述這些抽象和它們的責任。對簡單協(xié)作建模當需要用一組類來表達系統(tǒng)中的某一事物語義時,可使用類圖詳細描述這組類以及它們之間的關(guān)系。對邏輯數(shù)據(jù)庫模式建模 當需要給出數(shù)據(jù)庫概念設(shè)計的指導,可對要在數(shù)據(jù)庫中存儲的信息,采用類圖對相應的數(shù)據(jù)庫模式進行建模。靜態(tài)模型表達工具-類圖系統(tǒng)行為(功能)的建模工具用例圖USE CASE圖的內(nèi)容:包含6個抽象,確定了所表達的系統(tǒng)的各種形態(tài)。主題(Subject)用況(Use cases)參與者(Actor)泛化關(guān)系:依賴、泛化、關(guān)聯(lián)定義:USE CASE圖是一種表達動態(tài)模型的圖形化工具,其中顯示了一組Use cases、Actors以及它們之間的關(guān)系。USE

33、 CASE圖還可以包含包,形成一些更大的功能塊。有時為了對一個特定的執(zhí)行系統(tǒng)進行可視化,也把用況的實例放到用例圖中。注:為使以USE CASE圖表達的系統(tǒng)更易理解,包含注解和約束。系統(tǒng)行為(功能)的建模工具用例圖主題由一組用況所描述的一個類,該類通常是一個系統(tǒng)或子系統(tǒng)。其中的這些用況描述了該主題的完整行為,而參與者則表示與該主題進行交互的另一種類。用例包含兩個視角:使用視角,例如: “做一次拼寫檢查”; “對文檔建立索引”系統(tǒng)設(shè)計視角:一個use case規(guī)約了系統(tǒng)可以執(zhí)行的一個動作(action)序列,包括一些可能的變體,并對特定的操作者( actor)產(chǎn)生可見的、有值的結(jié)果。它是類、對象、

34、操作的源,是系統(tǒng)分析和設(shè)計階段的輸入之一。是分析和設(shè)計,制定開發(fā)計劃、測試計劃,設(shè)計測試用例的依據(jù)之一??梢詣澐窒到y(tǒng)與外部實體的界限,是系統(tǒng)開發(fā)的起點。系統(tǒng)行為(功能)的建模工具用例圖參與者定義:參與者表達了一組高內(nèi)聚的角色,當用戶與用例交互時,該用戶扮演了這些角色。說明:通常,一個參與者表達了與系統(tǒng)交互的那些人的角色、硬件的角色或其它系統(tǒng)的角色。參與者實際上不是軟件應用的一部分,而是在應用的環(huán)境之中,其實例代表以某種特定方式與系統(tǒng)進行交互。 一個客體對象可以扮演多個參與者,例如一個人既可以是參與者A,又是參與者B。一個參與者代表客體在一個方面的角色。表示:系統(tǒng)行為(功能)的建模工具用例圖關(guān)系

35、:可以定義參與者之間的泛化關(guān)系,例如:關(guān)聯(lián):參與關(guān)系,即操作者參與一個用例。例如,操作者的實例與用例實例相互通訊。關(guān)聯(lián)是操作者和用例之間的唯一關(guān)系。擴展:用例A到用例B的一個擴展關(guān)系,指出了B的一個實例可以由A說明的行為予以擴展(根據(jù)該擴展所說明的特定條件),并依據(jù)該擴展點定義的位置,A說明的行為被插入到B中。包含:用例A到用例B的一個包含,指出A的一個實例將包含B說明的行為,即這一行為將包含在A定義的那部分中。 泛化:用例A到用例B的泛化,指出A是B的特殊情況。注:擴展和包含是依賴的變體。1 * the salesperson asks for the catalog Place Order

36、extension pointsadditional requests:after creation of the order SupplyCustomer Data Order Produck Arrange Payment Request Catalogsalesperson 例:USE CASE關(guān)系 Actor關(guān)系Supervisor Establish Credit 1 *系統(tǒng)行為(功能)的建模工具用例圖用況圖的使用對系統(tǒng)語境建模給定一個系統(tǒng),均有其內(nèi)部的事物和外部的事物。例如:在一個信用卡系統(tǒng)中,其內(nèi)部事物有:帳戶、事務處理和欺詐行為檢測代理;其外部事務有:信用卡顧客和零售機構(gòu)。其內(nèi)

37、部事物的責任是完成其外部事物所期望由系統(tǒng)提供的行為。與系統(tǒng)交互的外部事物構(gòu)成了該系統(tǒng)的語境,該語境定義了系統(tǒng)存在的環(huán)境。第一點:采用UML用況圖對系統(tǒng)語境進行建模,應關(guān)注存在于系統(tǒng)周圍的參與者,確定什么作為系統(tǒng)的參與者,什么不作為系統(tǒng)的參與者,使該圖只包含那些在其生命周期內(nèi)所必須的參與者。系統(tǒng)行為(功能)的建模工具用例圖零售機構(gòu)(顧客通過該機構(gòu)刷卡,購買商品或服務財務結(jié)算機構(gòu)(負責信用卡帳戶的結(jié)算服務)第二點:對系統(tǒng)語境建模,應遵循以下策略:決定哪些行為是系統(tǒng)的一部分,那些行為是由外部實體執(zhí)行的,以此標識系統(tǒng)邊界,同時定義主題。在標識系統(tǒng)的參與者時,應考慮以下問題:誰需要得到系統(tǒng)的幫助,以完成

38、其任務;誰執(zhí)行系統(tǒng)的功能;系統(tǒng)與哪些硬件設(shè)備或其他系統(tǒng)交互;誰執(zhí)行一些輔助功能進行系統(tǒng)的管理和維護。將一些相似的參與者組織為一般/特殊結(jié)構(gòu)。在需要加深理解的地方,為每個參與者提供一個衍型。最后,將這些參與者放入用況圖中,并建立它們與系統(tǒng)用況之間的關(guān)聯(lián)-通信路徑。系統(tǒng)行為(功能)的建模工具用例圖系統(tǒng)行為(功能)的建模工具用例圖對需求建模需求可以用各種形式予以表達,但大多數(shù)的系統(tǒng)功能都可以表示成用況。對系統(tǒng)的需求建模,應遵循以下策略:首先,通過標識參與者來建立系統(tǒng)的語境。其次,對于每個參與者考慮他所期望或需要系統(tǒng)提供的行為。并把它們作為用況。第三,通過分解用況所表達的行為,形成必要的泛化結(jié)構(gòu)和擴展

39、、包含結(jié)構(gòu)。第四,模型化用況圖中各種關(guān)系。最后,通過注解和約束給出這些用況的非功能需求。例如:系統(tǒng)行為(功能)的建模工具用例圖系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖定義:狀態(tài)圖是顯示一個狀態(tài)機的圖,其中強調(diào)了從一個狀態(tài)到另一狀態(tài)的控制流。一個狀態(tài)機是一種行為,規(guī)約了一個對象在其生存期間因響應事件并作出響應而經(jīng)歷的狀態(tài)。Onfirst floorMovingupMovingdownMoving tofirst floorIdlearrivedarrivedarrivedgo upgo upgo downtime-out電梯對象的狀態(tài)圖 狀態(tài)1或/和條件Action狀態(tài)2或/和條件Action狀態(tài)3

40、狀態(tài)4或/和條件Action狀態(tài)6狀態(tài)5狀態(tài)7或/和條件Action狀態(tài)8條件條件系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖狀態(tài)圖的內(nèi)容狀態(tài)(State) 事件(Event)狀態(tài)轉(zhuǎn)換(State Transition) 狀態(tài)圖可以描述一個對象在其生命周期中擁有哪些狀態(tài),該對象在這些狀態(tài)下的行為,以及什么樣的事件會導致狀態(tài)發(fā)生改變。 系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖未付款已付款刪除貨物對象付款創(chuàng)建貨物對象狀態(tài)定義:一個狀態(tài)是類目的一個實例(以后簡稱對象)在其生存期間的一種條件(condition)或情況(situation),該期間該對象滿足這一條件,執(zhí)行某一活動或等待某一消息。一個對象的狀態(tài)是該

41、對象在此之前所執(zhí)行的所有活動的結(jié)果,通常是由對象的屬性值所決定的,并且會鏈接到其他對象。表示:對象狀態(tài)舉例:物(對象)已經(jīng)付款(狀態(tài))小轎車(對象)靜止不動(狀態(tài))機器的引擎(對象)在運轉(zhuǎn)(狀態(tài))Jim(對象)擔任銷售員的角色(狀態(tài))Kate(對象)結(jié)婚了(狀態(tài))系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖狀態(tài)名狀態(tài)變量活動狀態(tài)分類:UML把狀態(tài)分為初態(tài)、終態(tài)和正常狀態(tài)。初態(tài)(Initial State) :表達狀態(tài)機默認的開始位置,用實心圓來表示終態(tài)(Final State) :表達狀態(tài)機的執(zhí)行已經(jīng)完成,用內(nèi)含一個實心圓的圓來表示正常狀態(tài):既不是初態(tài)又不是終態(tài)的狀態(tài),稱為正常狀態(tài)注:在沒有特別說明的

42、情況下所說的狀態(tài)指的是正常狀態(tài)。實際上,初態(tài)和終態(tài)都是偽狀態(tài),即只有名字。從初態(tài)轉(zhuǎn)移到正常狀態(tài)可以給出一些特征,例如監(jiān)護條件和動作。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖狀態(tài)的規(guī)約:狀態(tài)的由狀態(tài)名、狀態(tài)變量和活動三個部分組成狀態(tài)名:是一個標識狀態(tài)的文本串,也可以有匿名狀態(tài)(無狀態(tài)名)動作,即進入/退出之效應(effect):進入或退出該狀態(tài)時所執(zhí)行的動作。為了表達進入/退出之效應,UML給出2個專用的動作標號:Entry:該標號標識在進入該狀態(tài)時所要執(zhí)行的、由相應動作表達式所規(guī)定的動作,簡稱進入動作。Exit:該標號標識在退出該狀態(tài)時所要執(zhí)行的、由相應動作表達式所規(guī)定的動作,簡稱退出動作?;顒樱?/p>

43、為了表達狀態(tài)內(nèi)轉(zhuǎn)換中的動作或活動,UML給出了一個專用的動作標號:do,該標號標識正在進行由其相應動作表達式所規(guī)定的活動。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖LoginLogin time = Current timeentry/type“l(fā)ogin”exit/login(user name, password)do/get user namedo/get passwordhelp/display help舉例:一個名為login的狀態(tài) 表達動作的一般格式為:動作標號/ 動作表達式動作(action)和活動(activity)一個活動是指狀態(tài)機中一種可中斷的計算,中斷處理后仍可繼續(xù);一個動作是

44、指不可中斷的原子計算,它可導致狀態(tài)的改變或?qū)е乱粋€值的返回??梢姡粋€活動往往是有多個動作組成的。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖子狀態(tài)(Substate)如果在一個狀態(tài)機中引入另一個狀態(tài)機,那么被引入的狀態(tài)機稱為子狀態(tài)機。子狀態(tài)是被嵌套在另一狀態(tài)中的狀態(tài)。把沒有子狀態(tài)的狀態(tài)稱為簡單狀態(tài);而把含子狀態(tài)的狀態(tài)稱為組合狀態(tài)。子狀態(tài)可以是與子狀態(tài)(And-substate),也可以是或子狀態(tài)(Or-substate)。 系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖ForwardBackwardRunning或子狀態(tài) ForwardBackwardHigh speedLow speedRunning與子狀

45、態(tài) 事件一個事件是對一個有意義的發(fā)生的規(guī)約,該發(fā)生有其自己的時空。在狀態(tài)機的語境下,一個事件是一個激勵(stimulus),可引發(fā)狀態(tài)的轉(zhuǎn)換。事件的種類:內(nèi)部事件:是在系統(tǒng)內(nèi)對象之間傳送的事件。例如,溢出異常。外部事件:是在系統(tǒng)和它的參與者之間傳送的事件。例如:按下一個按鈕,一個來自傳感器的中斷。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖模型化事件:在UML中有以下四種類型的事件: 信號事件:接收到一個顯式的來自其他對象的信號,在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個event-signature。調(diào)用事件:對象調(diào)用了另一個對象中的操作。在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個event-signature。變化事件:

46、這種事件在圖形上顯示為一個狀態(tài)轉(zhuǎn)換上的guard-condition條件。時間事件:指定的一段時間的消耗:在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個時間表達式。 系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖信號(signal)信號是消息的一個類目,是消息類型。像類一樣,信號有屬性和操作,信號之間可以有泛化。在UML中,可將信號模型化為信號類,使用signal來構(gòu)造。用依賴衍型來表示一個操作發(fā)送了一個特定的信號。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖調(diào)用(call)一個調(diào)用事件表示對象接受到一個操作調(diào)用的請求。可以使用在類的定義中的操作定義來規(guī)約調(diào)用事件。該事件或觸發(fā)狀態(tài)機中的一個狀態(tài)轉(zhuǎn)換,或調(diào)用目標對象的一個方法。

47、“信號”是一種異步事件,而“調(diào)用”一般是同步事件,但可以把“調(diào)用”規(guī)約為異步調(diào)用。信號通常由狀態(tài)機處理,而調(diào)用事件由一個方法來處理。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖時間事件是表示推移一段時間的事件。時間表達式可以是復雜的,也可以是簡單的,例如:after 2 seconds,at(1 jan 2012,12.00).變化事件是表示一個條件得到滿足或表示狀態(tài)的一個變化。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖狀態(tài)轉(zhuǎn)換定義:狀態(tài)轉(zhuǎn)換是兩個狀態(tài)間的一種關(guān)系,指明在第一個狀態(tài)中的一個對象將執(zhí)行一些確定的動作,當規(guī)約的事件發(fā)生并規(guī)約的條件滿足時,進入第二個狀態(tài)。描述一個狀態(tài)轉(zhuǎn)換,包括:源狀態(tài)轉(zhuǎn)移觸發(fā)器:

48、源狀態(tài)中由對象識別的事件監(jiān)護條件:一個布爾表達式效應:一種可執(zhí)行的行為目標狀態(tài):標記格式為:事件觸發(fā)器“監(jiān)護條件”/動作表達式系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖狀態(tài)圖的作用建立一個系統(tǒng)動態(tài)方面的模型,這些動態(tài)方面包括任意種類對象、任意系統(tǒng)結(jié)構(gòu)(類、接口、構(gòu)件和節(jié)點)視覺下以事件定序的行為。建立一個場景的模型,其主要途徑是針對use case給出相應的狀態(tài)圖。其中,不論動態(tài)模型還是場景模型,通常都是對反應型對象(reactive object)的行為進行建模。系統(tǒng)行為(生存周期)的建模工具狀態(tài)圖反應型對象,或稱為事件驅(qū)動的對象,其行為特征是響應其外部語境中所出現(xiàn)的事件,并作出相應的反應。系統(tǒng)行為(交互)的建模工具順序圖定義:順序圖是一種交互圖,即由一組對象以及這些對象之間的關(guān)系組成,其中還包含這些對象之間被發(fā)送的消息。例如:順序圖示例 系統(tǒng)行為(交互)的建模工具順序圖包含的內(nèi)容:交互各方:角色或?qū)ο蠼换シ绞剑和ㄓ嵒蜴溄换?nèi)容:消息像其它圖形一樣,可以包含注解和約束。這些成分確定了交互的各種形態(tài)。從應用的角度來看,交互圖是一個交互中各元素(各方、方式和內(nèi)容)的投影。其中把這些元素的語義應用到交互圖中。系統(tǒng)行為(交互)的建模工具順序圖說明:順序圖包含了一些由時間定序的消息。消息被表示為一條箭頭線,從一條生命線到另一條生命線。其中

溫馨提示

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

評論

0/150

提交評論