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



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