Office Visio 是Office軟件系列中的負責繪制流程圖和示意圖的軟件,是一款便于IT和商務人員就復雜信息、系統和流程進行可視化處理、分析和交流的軟件。使用 Office Visio 圖表,可以促進對系統和流程的了解。 和大家一起學習一下用Visio畫UML類圖的方法,主要有四個步驟,這里和大家分享一下,相信通過本節的學習,你對Visio畫UML類圖的步驟一定會有所了解。? 用Visio畫UML類圖? 對于畫類圖的工具很多,曾經學過用starUML畫類圖,但這個是用于Java語言的,對于用vs編程C++語言,個人感覺用visio會好一點。以下用以前面的俄羅斯方塊游戲中的一個Block類為例來講述。 1.首先創建一個類圖。接下來我們要做一下準備工作,因為我們這里用了PSDK中的POINT類型,在種數據類型在visio數據類型中找不到,所以我們先得追加這個數據類型。為了便于管理我們會先創建PSDK數據類型包. 創建數據包:菜單->UML->包.打開[UML包]對話框.點擊[新建]按鈕,在[包]列中輸入[PSDK數據類型],并確定 2.追加POINT數據類型: 這時我們可以看到模型資源管理器(若左邊窗口沒有,可以在從菜單->UML->視圖->模型資源管理器調出)中選中剛建的PSDK數據類型,再右擊->新建->數據類型,打開UML數據類型屬性對話框。選擇[數據類型]項目,在名稱項目中填寫[POINT],選擇[確定]結束. 注意:在PSDK中POINT是一個結構體,但是由于我們并不關心POINT的細節,所以把POINT作為簡單數據類型來處理。 類:Visio畫UML類圖時添加一個類很簡單,從形狀窗口中[UML靜態結構]分類中拖動對象就可以了。 3.設定類的詳細信息:設定類的詳細信息的大部分工作都是同時屬性對話框實現的.對于C++程序員來說,需要設定的內容包括類名,數據成員,成員函數.。 雙擊類或右擊->屬性打開UML類屬性對話框。在[類別]中選擇[類]項目,然后在右面的名稱欄目中寫入類名就可以了。這里還可以設定類的一些屬性,可以暫時先不管。 添加數據成員在右面的表格中追加成員函數。。[特性]欄目中寫入變量名,[類型]是用來選擇數據類型的。這里我們選擇[POINT]。[可見性]欄目選擇的是這個成員是公共的(private)。[多重性]是指,在類中,數據成員的個數。[1]代表在這個類中,有而且只有一個數據成員。[0..1]表示,沒有或者有一個。可以在[初始值]中輸入數據成員的初值。同樣添加其它數據成員。 4.添加成員函數:在[類別]窗口中選擇[操作]項目。在右邊表格中追加成員函數。在[操作]寫函數名,在[可見性]中選擇函數是,共有,保護還是私有的。[多態]也就是使否是虛函數。[范圍]表示一個函數是屬于實例,還是屬于類,靜態函數,也被稱為類的成員函數,普通的成員函數也被稱為實例的成員函數。所以如過,在這里選中了[分類器],就說明這個函數是靜態函數。 Visio畫UML類圖時,對于上面的操作,只是設定函數的一些基本信息,更詳細的信息可以通過選中函數后,點擊[屬性]按鈕,在出現的[UML操作屬性]窗口中設定。首先是設定函數的基本信息。和上面的窗口重復的內容,我們不再說明。我們只說明[前綴]和[后綴]。如果我們想要返回的類型是指針類型或者是應用類型的話,只要在[后綴]中填寫[*]或[&]就可以了。 下圖是用Visio畫UML類圖完成之后的效果。 ? ? ============================== Uml?關系主要有四大類: 依賴,關聯,泛化,實現。 其中 依賴和關聯是事物之間語義上的橫向關系,泛化和實現是事物之間的縱向關系。 一:依賴 Dependency 圖示:-----> 定義:關系最為松散的,單向的,暫時產生關系的事物之間使用。 使用圖例:在靜態圖、組件圖、部署圖中兩事物的弱依賴關系用此圖示。 二:關聯 Association 圖示:此圖為visio中畫法(在uml靜態結構中,拖動復合圖例,然后雙擊此圖例,將出現下圖,在關聯端list中,聚合列都選擇無,然后在isNavigable列中選擇劃箭頭的端。然后點選確定,就出現右側的關聯圖例)。 ? 定義:兩事物之間的比較密切關系。 實體之間的一個結構化關系表明對象是相互連接的。箭頭是可選的,它用于指定導航能力。如果沒有箭頭,暗示是一種雙向的導航能力。關聯轉換為一個實例作用域的變量。可為一個關聯附加其他修飾符。多重性(Multiplicity)修飾符暗示著實例之間的關系。 使用圖例:在靜態圖中使用,其他圖中也有類似的關聯關系,但細化為其他關系。 其中具體細分了兩種關系:聚合和組合。 1聚合 Aggregation 圖示:此圖為visio中畫法(在uml靜態結構中,拖動復合圖例,然后雙擊此圖例,將出現下圖,在關聯端list中,在聚合列中在需劃箭頭端選擇共享選項。然后點選確定,就出現左側的聚合圖例)。 定義:整體和個體之間的關系,個體生命周期的消亡對整體生命周期沒有太大的影響。has a的關系。 聚合是關聯的一種形式,代表兩個類之間的整體/局部關系。聚合暗示著整體在概念上處于比局部更高的一個級別,而關聯暗示兩個類在概念上位于相同的級別。聚合也轉換成一個實例作用域變量。關聯和聚合的區別純粹是概念上的,而且嚴格反映在語義上。聚合還暗示著實例圖中不存在回路。換言之,只能是一種單向關系。2組合 Composition 圖示:此圖為visio中畫法(在uml靜態結構中,直接拖動復合圖例) 定義:整體和個體之間的關系,contains a 的關系。 組合是聚合的一種特殊形式,暗示“局部”在“整體”內部的生存期職責。組合也是非共享的。所以,雖然局部不一定要隨整體的銷毀而被銷毀,但整體要么負責保持局部的存活狀態,要么負責將其銷毀。局部不可與其他整體共享。但是,整體可將所有權轉交給另一個對象,后者隨即將承擔生存期職責。在visio中 聚合和組合關系被分別稱之為共享和復合關系。主要在靜態圖中使用。菱形為整體一端,另一端為個體。 三:泛化 Generalization 圖示:此圖為visio中畫法(在uml靜態結構中,直接拖動歸納圖例) 定義:特殊到一般的關系。在軟件開發中被稱為繼承關系,is a 的關系。 四:實現 Realization 圖示:此圖為visio中畫法(右擊類,然后選擇形狀顯示選項,然后再勾選如左邊所示的實現鏈接,點選確定,此時選擇此類例圖,將出現黃色菱形,點選黃色菱形,然后劃線到要關聯的事物中。即出現此虛箭頭線)。 定義:類元之間的實現關系,在軟件開發中被稱為實現接口,或者抽象類之間的實現關系。 ? 另外在用例圖中,存在3種關系 1:參與者與參與者之間泛化關系,即visio中的歸納圖例。 2:參與者與用例之間用依賴關系。即visio中的通信圖例。 3:用例與用例之間用關聯關系,即拖拽visio中的擴展圖例。有時也可以用泛化關系。 其中關聯分為兩類:include關系,extends關系。 1)包含關系:把幾個用例的公共步驟分離成一個被包含的用例,用例間的包含關系允許包含提供者用例的行為到客戶用例中.把包含用例稱為客戶用例,被包含用例稱為提供者用例.包含用例提供功能給客戶用例。通俗一點講就是把一個復雜的事物,拆分成幾部分,整體和部分之間用包含關系。 2)擴展關系:是把新行為插入到已有用例中的方法.基礎用例提供了一組擴展點.這些擴展點可以添加新的行為.而擴展用例提供了一組插入片段.這些片段能插入到基礎用例的擴展點。將基用例中一段相對獨立并且可選的動作,用擴展(Extension)用例加以封裝,再讓它從基用例中聲明的擴展點(Extension Point)上進行擴展,從而使基用例行為更簡練和目標更集中,做基事件之后,我可能做擴展事件,也可能不做(在特殊情況下需要的新功能,擴展點就是特殊情況)。通俗一點講就是一個操作,可以有多種選擇方式,每種方式都可以實現此功能。多個實現和功能接口之間是一種擴展關系。 3)泛化關系:用例的泛化關系與類的泛化關系相似,即在用例泛化中,子用例表示父用例的特殊形式,子用例從父用例繼承了行為和屬性,還可以添加行為和屬性,改變已繼承的行為。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實際應用中很少使用泛化關系,子用例中的特殊行為都可以作為父用例中的備選流存在。 ? 包含以及擴展過程與泛化過程類似 共性:都是從現有的用例中抽取出公共的那部分信息,作為一個單獨的用例,然后通后過不同的方法來重用這個公共的用例,以減少模型維護的工作量 但三者對用例關系的優化側重點是不同的。如下: ?既然用例是系統提供服務的UML表述,那么服務這個過程在所有用例場景中是必然發生的,但發生按照發生條件可分為如下兩種情況: ???????? ⒈無條件發生:肯定發生的; ???????? ⒉有條件發生:未必發生,發生與否取決于系統狀態; ???????? 因此,針對用例的三種關系結合系統狀態考慮,泛化與包含用例屬于無條件發生的用例,而擴展屬于有條件發生的用例。進一步,用例的存在是為Actor提供服 務,但用例提供服務的方式可分為間接和直接兩種,依據于此,泛化中的子用例提供的是直接服務,而包含中的被包含用例提供的是間接服務。同樣,擴展用例提供的也是直接服務,但擴展用例的發生是有條件的。 ?另外一點需要提及的是:泛化中的子用例和擴展中的擴展用例均可以作為基本用例事件的備選擇流而存在。 ? 備注:默認情況下visio沒有include關系,可以通過一下方式來添加,選擇工具欄uml,再選擇構造型,添加如圖所示的一行,點選確定。此后將可以引用此include關系。 拖一個擴展圖例,然后雙擊,如下圖,構造型中就多出一個list include,選擇include,點選確定。此時右側擴展圖例上的文字將變為include. Visio幫助您創建具有專業外觀的圖表,以便理解、記錄和分析信息、數據、系統和過程。 |
溫馨提示:喜歡本站的話,請收藏一下本站!