UML(統(tǒng)一建模語言)基礎(chǔ)



《UML(統(tǒng)一建模語言)基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《UML(統(tǒng)一建模語言)基礎(chǔ)(103頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,第三章 UML,,1,,知識圖譜,2,,Agenda,什么是UML,,什么是模型,,常見的UML認識誤區(qū),3,,什么是UML,UM,L,是一種,Language,(語言),,U,M,L是一種,Modeling,(建模)Language,,U,ML是,Unified,(統(tǒng)一)Modeling Language,,,已進入全面應(yīng)用階段的事實標準,,應(yīng)用領(lǐng)域正在逐漸擴展,包括嵌入式系統(tǒng)建模、業(yè)務(wù)建模、流程建模等多個領(lǐng)域,,成為“產(chǎn)生式編程”的重要支持技術(shù):MDA、可執(zhí)行UML等,,4,,UML發(fā)
2、展歷程,5,,UML的統(tǒng)一,活動圖來自James Odell,,,狀態(tài)圖來自David Harel,,接口來自Microsoft,包的符號來自Apple Macintosh,,6,,什么是模型,模型是對現(xiàn)實的簡化,7,,建模的目的與原則,幫助我們按照實際情況或按我們需要的樣式對系統(tǒng)進行可視化;提供一種詳細說明系統(tǒng)的結(jié)構(gòu)或行為的方法;給出一個指導(dǎo)系統(tǒng)構(gòu)造的模板;對我們所做出的決策進行文檔化,,僅當(dāng)需要模型時,才構(gòu)建它,,選擇要創(chuàng)建什么模型對如何動手解決問題和如何形成解決方案有著意義深遠的影響;最好的模型是與現(xiàn)實相聯(lián)系的;,8,,為什么使用UML建模,UML是一種統(tǒng)一的、標準化的建模語言,,,UM
3、L是一種應(yīng)用面很廣泛的建模語言,9,,UML可以建立什么模型,模型的種類,模型的用途,業(yè)務(wù)模型,對業(yè)務(wù)過程、工作流、組織的建模,需求模型,對捕獲的需求進行整理和分析的工具,輔助開發(fā)人員與用戶進行溝通,設(shè)計模型,包含高層設(shè)計(架構(gòu)模型)和詳細設(shè)計模型,用于統(tǒng)一開發(fā)人員、溝通設(shè)計信息,數(shù)據(jù)庫模型,設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)、表結(jié)構(gòu)以及與應(yīng)用系統(tǒng)的交互,實現(xiàn)模型,用來理清軟件的組成、部署方案,為安裝與維護人員的工作提供指導(dǎo),10,,草圖與藍圖,藍圖一般是指采用CASE工具繪制的、正式的、規(guī)范的UML模型,,草圖則通常是指手工繪制的、規(guī)范度較低的在紙張的UML模型,,大膽地繪制草圖,盡可能基于草圖進行討論。對于
4、局部的、重要性不高的、共享范圍較小的UML模型,直接將草圖掃描到電腦存檔即可;對于全局的、重要性高的、高度共享的,在草圖的基礎(chǔ)上用CASE工具繪制成為正式的藍圖,并將其納入統(tǒng)一的模型管理中,11,,誰應(yīng)該建模,業(yè)務(wù)建模:以領(lǐng)域?qū)<覟橹?,需求分析人員是主力,系統(tǒng)分析員、架構(gòu)師可參與,,需求模型:以需求分析人員為主,系統(tǒng)分析員是主力,領(lǐng)域?qū)<姨峁┲笇?dǎo),架構(gòu)師和資深開發(fā)人員參與,,設(shè)計模型:高層設(shè)計模型以架構(gòu)師為主,系統(tǒng)分析員從需求方面提供支持,資深開發(fā)人員從技術(shù)實現(xiàn)方面提供支持。詳細設(shè)計模型則以資深開發(fā)人員為主,架構(gòu)師提供指導(dǎo)。,,實現(xiàn)模型:以資深開發(fā)人員(設(shè)計人員)為主,架構(gòu)師提供總體指導(dǎo)。,,
5、數(shù)據(jù)庫模型:以數(shù)據(jù)庫開發(fā)人員為主,架構(gòu)師提供指導(dǎo),資深開發(fā)人員(設(shè)計人員)予以配合。,12,,UML,最適于的過程,Use-case driven,用例驅(qū)動的,,Architecture-centric,以體系結(jié)構(gòu)為中心,,Iterative & incremental,迭代的和增量的,,13,,UML,修飾,命名:也就是為對象、關(guān)系和圖起名字。和任何語言一樣,名字都是一個標識符,,UML修飾:,在為了更好的表示這些細節(jié),UML中還提供了一些修飾符號,例如不同可視性的符號、用斜體字表示抽象類,,,,14,,UML定義的圖,圖名,功能,備注,類圖,描述類、類的特性以及類之間的關(guān)系,UML 1原有
6、,對象圖,描述一個時間點上系統(tǒng)中各個對象的一個快照,UML 1非正式圖,組成結(jié)構(gòu)圖,描述類的運行時刻的分解,UML 2.0新增,構(gòu)件圖,描述構(gòu)件的結(jié)構(gòu)與連接,UML 1原有,部署圖,描述在各個節(jié)點上的部署,UML 1原有,包圖,描述編譯時的層次結(jié)構(gòu),UML中非正式圖,用例圖,描述用戶與系統(tǒng)如何交互,UML 1原有,活動圖,描述過程行為與并行行為,UML 1原有,狀態(tài)圖,描述事件如何改變對象生命周期,UML 1原有,順序圖,描述對象之間的交互,重點在強調(diào)順序,UML 1原有,通信圖,描述對象之間的交互,重點在于連接,UML 1中的協(xié)作圖,計時圖,描述對象之間的交互,重點在于定時,UML 2.0
7、新增,交互縱覽圖,是一種順序圖與活動圖的混合,UML 2.0新增,15,,4+1視圖,設(shè)計視圖,實現(xiàn)視圖,部署視,圖,過程視圖,Use case,,視圖,Use case View,描述系統(tǒng)的外部特性、系統(tǒng)功能等。,Implementation View,,表示系統(tǒng)的實現(xiàn)特征,常用構(gòu)件圖表示。,Design View,,描述系統(tǒng)設(shè)計特征,包括結(jié)構(gòu)模型視圖和行為模型視圖,前者描述系統(tǒng)的靜態(tài)結(jié)構(gòu)(類圖、對象圖),后者描述系統(tǒng)的動態(tài)行為(交互圖、狀態(tài)圖、活動圖)。,Process View,,表示系統(tǒng)內(nèi)部的控制機制。常用類圖描述過程結(jié)構(gòu),用交互圖描述過程行為。,Deployment View,部署,
8、視圖描述系統(tǒng)的物理,部署,特征。用,部署,圖表示,。,Logic Model,Physic Model,Design,,View,Analysts/Designers,,Structure,,設(shè)計視圖,Process View,Performance,,Scalability,,Throughput,,System integrators,進程視圖,Implementation View,Programmers,,,Software management,,實現(xiàn)視圖,Deployment View,System topology,,,Delivery, installation,,commun
9、ication,System engineering,部署視圖,Use-Case View,End-user,Functionality,用例視圖,16,,UML視圖和圖,主要領(lǐng)域,視圖,圖,結(jié)構(gòu),靜態(tài)視圖,類圖,,設(shè)計視圖,組成結(jié)構(gòu)圖、協(xié)作圖、構(gòu)件圖,,用例視圖,用例圖,動態(tài),狀態(tài)視圖,狀態(tài)圖,,活動視圖,活動圖,,交互視圖,順序圖、通信圖,物理,部署視圖,部署圖,模型管理,模型管理視圖,包圖,,特性描述,包圖,17,,UML圖形分類,18,,UML模型關(guān)系的種類,19,,關(guān)聯(lián)關(guān)系,關(guān)聯(lián)(Association)表示兩個類之間存在某種語義上的聯(lián)系。關(guān)聯(lián)關(guān)系提供了通信的路徑,它是所有關(guān)系中最通
10、用、語義最弱的。,,在UML中,使用一條實線來表示關(guān)聯(lián)關(guān)系,,在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系:聚合和組合,,,聚合關(guān)系:聚合(Aggregation)是一種特殊形式的關(guān)聯(lián)。聚合表示類之間的關(guān)系是整體與部分的關(guān)系,,如果發(fā)現(xiàn)“部分”類的存在,是完全依賴于“整體”類的,那么就應(yīng)該使用“組合”關(guān)系來描述,20,,泛化、實現(xiàn)、擴展與依賴,泛化關(guān)系描述了一般事物與該事物中的特殊種類之間的關(guān)系,也就是父類與子類之間的關(guān)系。,,實現(xiàn)關(guān)系是用來規(guī)定接口和實現(xiàn)接口的類或組件之間的關(guān)系。接口是操作的集合,這些操作用于規(guī)定類或組件的服務(wù)。,,擴展表示將一個構(gòu)造型附加到一個元類(,metaclass,)上,使得元
11、類的定義中包括這個構(gòu)造型。,,有兩個元素,X,、,Y,,如果修改元素,X,的定義可能會引起對另一個元素,Y,的定義的修改,則稱元素,Y,依賴(,Dependency,)于元素,X,。,21,,類圖 class diagram,,描述類以及類之間的關(guān)系,,單個類的符號表示,,,訪問權(quán)限的表示:public +; protect # ; private –,,類符號的幾種變體,Clock,- hour : int,- minute : int,- second : int,+ ShowTime() : void,+ SetTime(newH : int = 0, newM : int = 0, n
12、ewS : int = 0) : void,22,,表示類之間關(guān)系的UML符號,,派生 Student 派生GraduateStudent,,繼承 GraduateStudent繼承Student,,泛化 Student泛化GraduateStudent,,特化 GraduateStudent繼承Student,23,,聚合aggregation: Airport 聚集Aircraft,,一個機場可以有0架或多架(*)飛機,,一架飛機可以正停在0個或1個機場,24,,組合composition: Car由Tire組成,,汽車包含輪胎,,1輛汽車包含4到5個輪胎,,1個輪胎只能裝在1輛汽車上,2
13、5,,汽車使用(依賴)加油站,,26,,27,,示例類圖,先看清有哪些類,然后看看類之間存在的關(guān)系,并結(jié)合多重性來理解類圖的結(jié)構(gòu)特點以及各個屬性和方法的含義,28,,讀圖過程,讀出類:圖中共有7個類,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut,,讀出關(guān)系:從圖中關(guān)系最復(fù)雜(也就是線最密集)的類開始閱讀,本圖中最復(fù)雜的就是Order類。1)OrderItem和Order之間是組合關(guān)系,根據(jù)箭頭的方向可知Order包含了OrderItem。2)Order類和Customer、Consignee、Deliver
14、Order是關(guān)聯(lián)關(guān)系。也就是說,一個訂單和客戶、收貨人、送貨單是相關(guān)的。,,29,,接口與抽象類,抽象類是一種不能夠被直接實例化的類,也就是說不能夠創(chuàng)建一個屬于抽象類的對象,,,,,,接口則是一種類似于抽象類的機制,它是一個沒有具體實現(xiàn)的類,,,30,,關(guān)聯(lián)類,關(guān)聯(lián)類即是關(guān)聯(lián)也是類,它不僅像關(guān)聯(lián)那樣連接兩個類,而且還可以定義一組屬于關(guān)系本身的特性,,31,,對象圖,,對象是類的實例,是具有具體屬性值的具體事物,,例如你的時鐘,品牌是:瑞士,型號是R-001,,下圖中的圖標說明了如何用UML來表示對象。注意對象的圖標也是一個矩形,并且對象名下面要帶下劃線。具體實例的名字位于冒號的左邊而該實例
15、所屬的類名位于冒號的右邊。實例的名字以一個小寫字母開頭。也有可能是一個匿名類。,,32,,開發(fā)過程,33,,(0)業(yè)務(wù),,(1)需求,,(2)分析:結(jié)構(gòu),,(3)分析:行為,,(4)設(shè)計,34,,兩種分析方法,,35,,用例圖,,用例圖能描述系統(tǒng)、子系統(tǒng)、或類的行為。它將系統(tǒng)功能劃分成對參與者有用的需求。站在用戶的角度看待系統(tǒng)、定義系統(tǒng) ;使用用戶能夠看懂的語言來表述。表示處于同一系統(tǒng)中的參與者和用例之間的關(guān)系的圖,,表示法:用例圖是包括參與者、由系統(tǒng)邊界(一個矩形)封閉一組用例、參與者和用例之間的關(guān)聯(lián)、用例間的關(guān)系以及參與者泛化的圖。,,36,,用例圖組成元素,參與者,,用例,,系統(tǒng)邊界,,
16、關(guān)系,,37,,參與者,參與者是與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外部用戶、進程或其他系統(tǒng)的理想化概念。作為外部用戶與系統(tǒng)發(fā)生交互作用,這是參與者的特征。,,參與者可以是人,也可以是外部計算機系統(tǒng)和外部進程、硬件、時鐘。,,表示法:用一個小人圖標表示參與者,1)外部系統(tǒng):當(dāng)系統(tǒng)需要與其它系統(tǒng)交互時,如ATM柜員機系統(tǒng)中,銀行后臺系統(tǒng)就是一個參與者;2)硬件設(shè)備:如果系統(tǒng)需要與硬件設(shè)備交互時,如在開發(fā)IC卡門禁系統(tǒng)時,IC卡讀寫就是一個參與者;3)時鐘:當(dāng)系統(tǒng)需要定時觸發(fā)時,時鐘就是參與者,38,,用例,用例是外部可見的一個系統(tǒng)功能單元,這些功能單元由系統(tǒng)所提供,并通過一系列系統(tǒng)功能單元與一個
17、或多個參與者之間交換消息所表達。,,用例的用途是在不揭示系統(tǒng)內(nèi)部構(gòu)造的情況下定義連貫的行為。,,用例的定義包含用例所必需的所有行為,,表示法:用例用一個包括用例名的橢圓形來表示。,,,,39,,系統(tǒng)邊界,,系統(tǒng)邊界:描述了系統(tǒng)的邊界,以及描述了外部系統(tǒng)與系統(tǒng)之間交互的邊界,,表示法:,,用封閉所有用例的矩形表示,,40,,關(guān)系,,參與者與用例以及用例之間的關(guān)系,41,,舉例,42,,狀態(tài)圖,,顯示一個狀態(tài)機(包括簡單狀態(tài)、轉(zhuǎn)換、嵌套組成狀態(tài))的圖。,,表示法:簡單狀態(tài)圖表示成直邊圓角矩形框,,43,,多種狀態(tài)的表示,,44,,閱讀最簡單的狀態(tài)圖,最為核心的元素?zé)o外乎是兩個:一個是用圓角矩形表示
18、的狀態(tài)(初態(tài)和終態(tài)例外);另一個則是在狀態(tài)之間的、包含一些文字描述的有向箭頭線,這些箭頭線稱為轉(zhuǎn)換,45,,轉(zhuǎn)換的五要素,,,,源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài),,目標狀態(tài):當(dāng)轉(zhuǎn)換完成后對象的狀態(tài),,觸發(fā)事件:用來為轉(zhuǎn)換定義一個事件,包括調(diào)用、改變、信號、時間四類事件,,前置條件:布爾表達式,決定是否激活轉(zhuǎn)換、,,動作:轉(zhuǎn)換激活時的操作,46,,復(fù)雜轉(zhuǎn)換,轉(zhuǎn)換類型,描述,語法,外部轉(zhuǎn)換,對事件做出響應(yīng),引起狀態(tài)變化或自身轉(zhuǎn)換,同時引發(fā)一個特定動作,如果離開或進入狀態(tài)將引發(fā)進入轉(zhuǎn)換、離開轉(zhuǎn)換,事件(參數(shù))[監(jiān)護條件]/動作,內(nèi)部轉(zhuǎn)換,對事件做出響應(yīng),并執(zhí)行一個特定的活動,但并不引起狀態(tài)變化或進入轉(zhuǎn)換、
19、離開轉(zhuǎn)換,事件(參數(shù))[監(jiān)護條件]/動作,進入轉(zhuǎn)換,當(dāng)進入某一狀態(tài)時,執(zhí)行相應(yīng)活動,entry/活動,退出轉(zhuǎn)換,當(dāng)離開某一狀態(tài)時,執(zhí)行相應(yīng)活動,exit/活動,47,,48,,各種轉(zhuǎn)換的區(qū)別,進入和退出轉(zhuǎn)換:當(dāng)進入一個狀態(tài)時,執(zhí)行某個動作;或當(dāng)退出某個狀態(tài)時,執(zhí)行什么動作。這時就可以使用進入和退出轉(zhuǎn)換來表示,,內(nèi)部轉(zhuǎn)換:用來處理一些不離開該狀態(tài)的事件,,49,,使用復(fù)合狀態(tài),50,,繪制狀態(tài)圖,繪制狀態(tài)機圖的理想步驟是:尋找主要的狀態(tài),確定狀態(tài)之間的轉(zhuǎn)換,細化狀態(tài)內(nèi)的活動與轉(zhuǎn)換,用復(fù)合狀態(tài)來展開細節(jié),,尋找主要狀態(tài):對于航班機票預(yù)訂系統(tǒng)而言,顯然包括的狀態(tài)主要有 -- 在剛確定飛機計劃時,
20、顯然是沒有任何預(yù)訂的,并且在有人預(yù)訂機票之前都將處于這種“無預(yù)訂”狀態(tài) -- 對訂座而言顯然有“部分預(yù)訂”和“預(yù)訂完”兩種狀態(tài) -- 而當(dāng)航班快要起飛時,顯然要“預(yù)訂關(guān)閉”總結(jié)一下,主要有四種狀態(tài):無預(yù)訂、部分預(yù)訂、預(yù)訂完以及預(yù)訂關(guān)閉,,51,,活動圖,,活動圖是一種特殊形式的狀態(tài)機,用于對計算機流程和工作流程建模?;顒訄D中的狀態(tài)表示計算過程中所處的各種狀態(tài),而不是普通對象的狀態(tài),,通常,活動圖假定在整個計算處理的過程中沒有外部事件引起中斷,否則普通的狀態(tài)機更適合描述這種情況,,活動節(jié)點是活動圖中最主要的元素之一,它用來表示一個活動,,活動節(jié)點,表示法:表示成帶有圓形邊線的矩形框,52
21、,,活動圖的主要元素,分支與前置條件:分支是用菱形表示的,它有一個進入轉(zhuǎn)換(箭頭從外指向分支符號),一個或多個離開轉(zhuǎn)換(箭頭從分支符號指向外)。而每個離開轉(zhuǎn)換上都會有一個監(jiān)護條件,用來表示滿足什么條件的時候執(zhí)行該轉(zhuǎn)換。,,分岔與匯合:,53,,轉(zhuǎn)換,轉(zhuǎn)換:當(dāng)一個活動結(jié)束時,控制流就會馬上傳遞給下一個活動節(jié)點,在活動圖中稱之為“轉(zhuǎn)換”,用一條帶箭頭的直線來表示,,54,,閱讀簡單活動圖,55,,帶泳道的活動圖,56,,帶對象流的活動圖,57,,58,,繪制活動圖,“活動圖” 比較直觀易懂;與傳統(tǒng)的流程圖十分的相近,只要能夠讀懂活動圖,就不難畫出活動圖,,繪制時首先決定是否采用泳道:主要根
22、據(jù)活動圖中是否要體現(xiàn)出活動的不同實施者,,然后盡量使用分支、分岔和匯合等基本的建模元素來描述活動控制流程,,如果需要,加入對象流以及對象的狀態(tài)變化,利用一些高級的建模元素(如輔助活動圖、匯合描述、發(fā)送信號與接收信號、引腳、擴展區(qū))來表示更多的信息,,活動圖的建模關(guān)鍵是表示出控制流,其它的建模元素都是圍繞這一宗旨所進行的補充,,59,,順序圖,,UML中的4種交互圖,,順序圖:順序圖是一種強調(diào)消息時間順序的交互圖,為讀者提供了控制流隨著時間推移的清晰的可視化軌跡,,,通信圖:UML 2.0中的通信圖實際上就是UML 1中的協(xié)作圖,它強調(diào)的是參加交互的對象的組織,為讀者提供了在協(xié)作對象結(jié)構(gòu)組織的語
23、境中觀察控制流的一個清晰的可視化軌跡,,計時圖:采用了一種帶數(shù)字刻度的時間軸來精確地描述消息的順序,,交互概述圖:是交互圖和活動圖的混合物,,60,,順序圖,61,,順序圖的主要元素,對象與角色:最頂上一排矩形框。在交互圖中,參與交互的對象既可以是具體的事物,又可以是原型化的事物。作為具體的事物,一個對象代表現(xiàn)實世界中的某個東西。例如,,aOrder,,作為類,Order,的一個實例,可以代表一個特定的訂單;而如果作為一個原型化的事件,則,aOrder,可以代表類,Order,的任何一個實例。,,生命線與控制焦點:每個對象都有自己的生命線,對象生命線是一條垂直的虛線,用來表示一個對
24、象在一段時間內(nèi)存在。,62,,順序圖的主要元素,消息:用來描述對象之間所進行的通信的,該信息帶有對將要發(fā)生的活動的期望。當(dāng)傳送一個消息時,它所引起的動用是一個通過對計算過程的抽象而得到的可執(zhí)行語句。,,消息分為五種:調(diào)用、返回、發(fā)送、創(chuàng)建和銷毀,,調(diào)用:表示調(diào)用某個對象一個操作,,63,,順序圖的主要元素,順序編號:整個消息的傳遞過程就形成了一個完整的序列,因此通過在每個消息的前面加上一個用冒號隔開的順序號來表示其順序。除了順序編號之外,還可以采用嵌套方案:,,64,,順序圖的主要元素,循環(huán)與分支,,65,,通信圖,66,,通信圖主要元素,鏈:連接器,是用來表示對象之間的語義連接,一般而言,鏈
25、是關(guān)聯(lián)的一個實例(包括《association》、《self》、《global》、《local》等)。不過在UML 2中已經(jīng)開始弱化它們的使用,因此除非必要,無需過多地考慮它們,,消息編號:消息的編號有兩種,一種是無層次編號,它簡單直觀;另一種是嵌套的編號,它更易于表示消息的包含關(guān)系,,迭代標記:用*號表示,表示循環(huán),通常還有迭代表達式,用來說明循環(huán)規(guī)則,,67,,通信圖主要元素,監(jiān)護條件:通常是用來表示分支的,也就是表示“如果條件為,true,,才發(fā)送消息”,,在通信圖中使用監(jiān)護條件一定要有所限制,通常應(yīng)只列出主要的監(jiān)護條件,否則會影響其閱讀。如果需要,盡可能還是通過順序圖來表示,,68,,
26、69,,計時圖,,坐標軸交換了位置,改為從左到右來表示時間的推移,,用生命線的“凹下凸起”來表示狀態(tài)的變化,每個水平位置代表一種不同的狀態(tài),狀態(tài)的順序可以有意義、也可以沒有意義,,生命線可以跟在一根線后面,在這根線上顯示些不同的狀態(tài)值,,可顯示一個度量時間值的標尺,用刻度表示時間間隔,70,,計時圖,,71,,交互概覽圖,交互概述圖是將活動圖和順序圖嫁接在一起的圖,,可以看作活動圖的變體,它將活動節(jié)點進行細化,用一些小的順序圖來表示活動節(jié)點內(nèi)部的對象控制流,,也可以看作順序圖的變體,它用活動圖來補充順序圖,,交互概述圖在草圖中更加適用,先通過活動圖對業(yè)務(wù)流程進行建模,然后對于一些關(guān)鍵的
27、、復(fù)雜度并不高的活動節(jié)點進行細化,用順序圖來表示它的對象間的控制流,,不要盲目的使用交互概述圖,對于規(guī)模稍大的場景,它并不是一個很好的選擇,它將使模型的可讀性大大降低,72,,閱讀交互概述圖,73,,閱讀交互概述圖,理解活動控制流:可以將整個順序圖看作一個活動節(jié)點,,,,分析活動節(jié)點:在對整個業(yè)務(wù)的活動控制流有清晰的認識和了解之后,這時再深入到每個活動節(jié)點的細節(jié)中去,,74,,選擇建模策略,交互概述圖有兩種形式,一種是以活動圖為主線,并用順序圖表述細節(jié);另一種是以順序圖為主線,并用活動圖來表述細節(jié),,如果你是對工作流進行建模,那么應(yīng)該先采用活動圖來表示工作流的活動控制流,然后再通
28、過順序圖來描述其中一些活動節(jié)點的對象控制流,闡述更多實現(xiàn)細節(jié),,如果你是在為代碼的設(shè)計、實現(xiàn)進行建模,那么可以先通過順序圖理清對象之間的控制流;然后再通過活動圖來表示某些重要的方法、調(diào)用的算法流程,,75,,理清主線—用活動圖表述主線,76,,表述細節(jié)—用順序圖描述細節(jié),77,,包圖,,78,,什么是包,在面向?qū)ο筌浖_發(fā)的視角中,類顯然是構(gòu)建整個系統(tǒng)的基本構(gòu)造塊。但是對于龐大的應(yīng)用系統(tǒng)而言,其包含的類將是成百上千,再加上其間“阡陌交縱”的關(guān)聯(lián)關(guān)系、多重性等,必然是大大超出了人們可以處理的復(fù)雜度。這也就是引入了“包”這種分組事物構(gòu)造塊。,,包的作用是:1)對語義上相關(guān)的元素進行分組;2
29、)定義模型中的“語義邊界”;3)提供配置管理單元;4)在設(shè)計時,提供并行工作的單元;5)提供封裝的命名空間,其中所有名稱必須惟一,,79,,包的表示法,名稱:每個包都必須有一個與其它包相區(qū)別的名稱,,擁有的元素:在包中可以擁有各種其它元素,包括類、接口、構(gòu)件、節(jié)點、協(xié)作、用例,甚至是其它包或圖,80,,包圖,包的可見性:可以用“,+”,來表示“,public”,,用“,#”,來表示“,protected”,,用“,-”,來表示“,private”,81,,閱讀包圖,,首先根據(jù)《use》關(guān)系,可以發(fā)現(xiàn)Client包使用Server包,Server包使用System.Data.SqlCli
30、ent包,結(jié)合其元素,不難得知Client負責(zé)Order(訂單)的輸入,并通過Server來管理用戶的登錄(LoggingService)和數(shù)據(jù)庫存儲(DataBase),而Server包還將通過.NET的SQL Server訪問工具包來實現(xiàn)與數(shù)據(jù)庫的實際交互。,,接著再看兩個《import》,從包的命名和其所屬的元素不難發(fā)現(xiàn)Rule負責(zé)處理一些規(guī)則,并引用一個具體的窗體(Window),而Client包則通過引用Rule來實現(xiàn)整個窗體和表單的顯示、輸入等。并且還將暫存Order(訂單)信息。,,最后來看包的泛化關(guān)系,GUI有兩個具體實現(xiàn),一個是針對C/S的WindowsGUI,一個是實現(xiàn)B/
31、S的WebGUI。,,82,,包的依賴關(guān)系,《use》關(guān)系:是一種默認的依賴關(guān)系 ,說明客戶包(發(fā)出者)中的元素以某種方式使用提供者包(箭頭指向的包)的公共元素,也就是說客戶包依賴于提供者包,,《import》關(guān)系:最普遍的包依賴類型,說明提供者包的命名空間將被添加到客戶包的命名空間中,客戶包中的元素也能夠訪問提供者包的所有公共元素,,《access》關(guān)系:只想使用提供者包中的元素,而不想將其命名空間合并則應(yīng)使用該關(guān)系,,《trace》關(guān)系:想表示一個包到另一個包的歷史發(fā)展,則需要使用《trace》關(guān)系來表示,,83,,包圖繪制原則,最小化包之間的依賴,最小化每個包中的,public,、,pr
32、otected,元素的個數(shù),最大化每個包中,private,元素個數(shù),,在建模時應(yīng)該避免包之間的循環(huán)依賴,也就是不能夠包含相互依賴的情況,對于這種情況應(yīng)進行分析:,84,,尋找包,分析系統(tǒng)工作流程:,1,)通過,Internet,連接到股票信息服務(wù)器,獲取實時的股票信息,并存入數(shù)據(jù)庫中。,2,)根據(jù)用戶的輸入和選擇,從數(shù)據(jù)庫中獲取相應(yīng)的信息,展現(xiàn)在屏幕中。,3,)在數(shù)據(jù)的展現(xiàn)過程中,將需要繪制大量的圖表,,根據(jù)功能模塊組織包:,包,分析與功能,.NET支持包,SocketClient,負責(zé)連接Internet服務(wù)器,獲取實時股票信息,System.Net.Sockets,DataAccess,
33、負責(zé)從數(shù)據(jù)庫讀寫實時股票信息,System.Data.Sqlclient,UI,負責(zé)響應(yīng)用戶輸入和選擇,并展現(xiàn)信息,System.Windows.Forms,GraphicGenerate,負責(zé)根據(jù)數(shù)據(jù)庫的信息生成相應(yīng)的圖表,System.Drawing,85,,確定包與包之間的依賴關(guān)系,86,,構(gòu)件圖,構(gòu)件和構(gòu)件的要素,,構(gòu)件是系統(tǒng)中可替換的物理部分,它包裝了實現(xiàn)而且遵從并提供一組接口的實現(xiàn),,規(guī)格說明:對于構(gòu)件,必須有一個它所提供服務(wù)的抽象描述。通俗地說,每個構(gòu)件都必須提供特定的服務(wù),,一個或多個實現(xiàn):構(gòu)件是一種物理概念,必須被一個或多個實現(xiàn)所支持,當(dāng)然這些實現(xiàn)都必需符合規(guī)格說明,,受約束
34、的構(gòu)件標準:每一個構(gòu)件,在實現(xiàn)時必須遵從某種構(gòu)件標準,,封裝方法:也就是構(gòu)件遵從的封裝標準,,部署方法:當(dāng)件要運行時,首先要部署它,87,,構(gòu)件的類型,實施構(gòu)件:這類構(gòu)件是構(gòu)成一個可執(zhí)行系統(tǒng)必要和充分的構(gòu)件,例如動態(tài)鏈接庫、可執(zhí)行文件,另外還包括如COM+、CORBA及企業(yè)級Java Beans、動態(tài)Web頁面也屬于實施構(gòu)件的一部分,,工作產(chǎn)品構(gòu)件:這類構(gòu)件主要是開發(fā)過程的產(chǎn)物,包括創(chuàng)建實施構(gòu)件的源代碼文件及數(shù)據(jù)文件。這些構(gòu)件并不是直接地參與可執(zhí)行系統(tǒng),而且用來產(chǎn)生可執(zhí)行系統(tǒng)的中間工作產(chǎn)品,,執(zhí)行構(gòu)件:作為一個正在執(zhí)行的系統(tǒng)的結(jié)果而被創(chuàng)建的,例如由DLL實例化形成的COM+對象,,88,,
35、構(gòu)件及構(gòu)件接口表示法,89,,90,,91,,嵌套構(gòu)件圖,92,,如何繪制構(gòu)件圖,1 確定子系統(tǒng)對外的接口,,將整個“在線酒店預(yù)訂子系統(tǒng)”作為一個構(gòu)件,考慮其對外接口。顯然它首先需要提供用戶界面;其次還需要與加盟的酒店系統(tǒng)連接,完成預(yù)訂工作,93,,2 確定子構(gòu)件和接口,,顯然要有一個構(gòu)件來實現(xiàn)用戶界面,一個構(gòu)件來完成與酒店系統(tǒng)的連接和預(yù)訂,另外還應(yīng)該有一個負責(zé)將用戶的需求與酒店的供給進行匹配的“調(diào)度程序”,94,,3 對每個構(gòu)件分析它們之間的關(guān)系,95,,組成結(jié)構(gòu)圖,,96,,97,,部署圖,,98,,部署圖的主要元素,節(jié)點:它代表一個運行時的計算資源,例如一臺計算機、一個工作站等其它設(shè)備,
36、,節(jié)點的概念和構(gòu)件有許多相同之處,例如二者有多名稱,都可以參與依賴、泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實例,都可以參與交互。但它們之間也存在明顯的區(qū)別:構(gòu)件是參與系統(tǒng)執(zhí)行的事物,而節(jié)點是執(zhí)行構(gòu)件的事物;構(gòu)件表示邏輯元素的物理打包,而節(jié)點表示構(gòu)件的物理部署,,本圖中建模了四個節(jié)點:B/S客戶端、C/S客戶端、IIS服務(wù)器和數(shù)據(jù)庫服務(wù)器,99,,部署圖的主要元素,連接:節(jié)點之間最常見的關(guān)系就是關(guān)聯(lián)關(guān)系(用一根實線表示)。為了更好地表示兩個節(jié)點之間的關(guān)系,我們可以通過“約束”來對連接進行描述。,源節(jié)點,目標節(jié)點,約束,含義,B/S客戶端,IIS服務(wù)器,{HTTP+Network},網(wǎng)絡(luò)連接,使用
37、HTTP協(xié)議,C/S客戶端,IIS服務(wù)器,{HTTP+SOAP+Network},網(wǎng)連接,通過Web Service訪問服務(wù),IIS服務(wù)器,數(shù)據(jù)庫服務(wù)器,{ADO.NET},.NET提供的數(shù)據(jù)庫訪問解決方案,100,,部署圖的補充元素,處理器(《process》):具有處理能力的節(jié)點,即可以執(zhí)行構(gòu)件,,設(shè)備(《device》):沒有處理能力的節(jié)點,至少是不關(guān)心其處理能力的節(jié)點。例如打印機、IC卡讀寫器,如果我們的系統(tǒng)不考慮它們內(nèi)部的芯片,就可建模為設(shè)備,,節(jié)點屬性和操作:可以為一個節(jié)點提供處理器速度、內(nèi)存容量、網(wǎng)卡數(shù)量等屬性,可以為其提供啟動、關(guān)機等操作,,101,,如何繪制部署圖,1,確定所
38、需的節(jié)點和節(jié)點間的連接關(guān)系,,IC,卡讀卡器:提供給員工刷卡用,它將收集刷卡的時間信息,傳給應(yīng)用系統(tǒng),并存入數(shù)據(jù)庫中,,應(yīng)用服務(wù)器:用來負責(zé)從,IC,卡讀卡器中收集信息,并對管理人員提供員工設(shè)置、考勤查詢等功能,,數(shù)據(jù)庫服務(wù)器:用來存儲考勤數(shù)據(jù),由于該系統(tǒng)比較小,因此在物理上可以與應(yīng)用服務(wù)器合并,,客戶端軟件:提供給管理人員使用,連接應(yīng)用服務(wù)器,完成相應(yīng)操作,102,,2,根據(jù)實現(xiàn)描述節(jié)點,客戶端:需使用,Windows,操作系統(tǒng),安裝客戶端軟件(假設(shè)名為,KaoQing.exe,),,服務(wù)器:包含一個用,Delphi,開發(fā)的服務(wù)端軟件(設(shè)為,KqServer.exe,),它需要與,Access,數(shù)據(jù)庫交互(設(shè)為,KaoQing.mdb,),并且需要通過,IC,卡讀卡器的驅(qū)動程序(假設(shè)名為,cardReader.dll,)來實現(xiàn)與,IC,卡讀卡器通信,,IC,卡讀寫器:對于本系統(tǒng)而言,它是不執(zhí)行構(gòu)件的設(shè)備,不過為了方便員工,安裝了,3,個。,103,,
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年作風(fēng)建設(shè)學(xué)習(xí)教育開展情況的報告范文
- 在2025年民營企業(yè)座談會上的主持講話范文
- 在2025年全縣教育領(lǐng)域群眾身邊不正之風(fēng)和腐敗問題集中整治調(diào)度會上的講話范文
- 工委副書記在2025年機關(guān)DeepSeek應(yīng)用專題輔導(dǎo)培訓(xùn)班開班儀式上的講話范文
- 在2025年DeepSeek大模型政務(wù)應(yīng)用培訓(xùn)會上的講話范文
- 在青年干部培訓(xùn)結(jié)業(yè)典禮上的講話文稿
- 2025年副書記防汛工作會議上的講話范文
- 2025年主管商務(wù)部門黨組書記在理論學(xué)習(xí)中心組會上研討發(fā)言文稿
- 2025年國企黨委關(guān)于干部職工思想政治工作情況的報告范文
- 在機關(guān)單位作風(fēng)建設(shè)學(xué)習(xí)教育突出問題專項整治工作部署會議上的講話范文
- 醫(yī)院領(lǐng)導(dǎo)2025年黨風(fēng)廉政建設(shè)推進會上的講話范文
- 2025年關(guān)于開展“以案促改”工作實施方案供參考
- 在2025年安全生產(chǎn)專項整治暨化工行業(yè)風(fēng)險防控部署會上的講話范文
- 領(lǐng)導(dǎo)干部在“十五五”發(fā)展規(guī)劃編制啟動會上的講話文稿
- 2025年書記在慰問老干部暨情況通報會上的主持講話提綱范文