關於Star UML

爲何是使用Star UML而不是Visio 2013呢?框架

之前本人在大學期間使用的Visio 2013來繪製UML的,最近一個星期由於在閱讀源碼,因此有多學了一門UML繪製工具—Star UML,下面就來聊一聊Star UML相對於Visio 2013有哪些優勢:函數

  1. Star UML是專一了UML領域,沒有其餘額外的功能。而Visio 2013是一個大而全的軟件,在UML繪製這方面,我的以爲沒有Star UML好用。
  2. Star UML的面板跟Visual Studio差很少,能夠很輕鬆·上手。
  3. Star UML支持的可用圖種類多,分別有類圖、用例圖、順序圖、順序圖(角色)、協做圖、協做圖(角色)、狀態圖、活動圖、構建圖、部署圖、組合結構圖。
  4. 在一個UML工程中,咱們更容易、有效地組織管理咱們的文件結構,這得益於Star UML引入了模型、子系統、和包這三個概念。
  5. 支持C#的框架的導入。目前Star UML僅僅是支持古老的C#的框架的導入,這些框架分別是.NET 1.0以及MFC 6.0。導入了這個框架以後,咱們能夠用比較少工做來建立一個有效的類圖。
  6. 對用一個元素有多種展現方式,在一個Class Diagram中,咱們可能只須要展現這個某個咱們以及很熟悉的類的名稱,而不須要展現這個類的屬性、字段以及方法的使用,咱們可讓這個類以Texture方式展現。對於一個元素,Star UML支持None、Textual、Iconic、Decoration展現。與此同時,咱們還能夠選擇展現一個方法或屬性哪些信息。

有這麼多優勢,固然也會有肯定啊,他相對於Visio 2013來講,他的界面過於古老,和Visio 2013那種風格是不能比較的。與此同時,Star UML的的元素對齊方面也和Visio 2013相差太遠。工具

說了這麼多,讓咱們來看看Star UML是怎麼繪製一個類圖的。下面是摘錄自網上的教程,在這個教程以後,還有其餘東西要聊一聊的。測試

 

1.綜述(What)

 

Star UML是一種生成類圖和其餘類型的UML圖表的工具。本文是一個使用Star UML建立類圖(Java語言描述)的簡明手冊。this

Star UML(簡稱SU),是一種建立UML類圖,並可以自動生成C Sharp的「stub code」 的工具。SU也能夠作C Sharp逆向工程,以產生相應的UML圖表。url

在本教程中,咱們將使用SU設計一個pizza餅。執行後續步驟,能夠建立以下面所示的UML圖。SU能夠生成反映類結構的代碼,而不是任何對象的具體實現。所以,在使用SU建立圖表後,你還應該爲此stub code添加剩餘的功能性代碼,填寫每種方法原本應該作的事。spa

 

 

2新建「畫布」

2.1 添加新工程翻譯

啓動StarUML,而後一個名叫「New Project By Approach」的對話框會彈出,選擇「Empty Project」,在右邊的「Model Explorer」面板中能夠看到新建的「Untitled」工程,工程的屬性能夠在下方的Properties面板中修改(工程名、做者等)。設計

2.2添加模型3d

經過「Model」主菜單,或者在Model Explorer面板的工程上右擊,依次」 Add — Model 」

2.3添加類圖

經過「Model」主菜單,或右擊選定模型,依次「Add Diagram — Class Diagram」。

2.4設置profile(UML輪廓)

經過「Model — Profile…」菜單去設置工程所需的profile。這決定了工程所使用的規則和約定。必定要包含」JAVA Porfile」這一項目。

 

2.5保存工程

當即就保存工程,這樣在出現問題的時候,您就不會丟失信息。

從「File 」菜單,選擇「Save」 ,並選擇一個地方以保存工程。你的StarUML項目如今應該看起來的是這樣的:

 

 

3開始「做畫」(How)

3.1創造圖表

如今,開始真正創造圖表,從默認就在屏幕的左邊的「Toolbox」面板選擇「類」圖標,而後左鍵單擊diagram窗口的某處。這樣就使用通用名字創造了一個新的類。雙擊,將類更名爲Circle。

 

3.2添加屬性

右擊圖中的目標,在彈出菜單中選擇「Add」中的「Attribute」(被標示爲綠色),爲其添加一個屬性(或者域),填入指望的名字「_radius」。

    • 在窗體右下邊的Properties面板中,找到「Type」輸入框,輸入double做爲_radius屬性的類型。
    • 類的內部數據(域/屬性)都是私有的,由於他們是嚴格由類內部使用的。因此,在Properties面板中將_radius設置爲「私有」。

3.3繼續進行設計

重複一樣的過程,添加名爲Rectangle的類和double型的私有成員_width和_height。 (下面這段話是使用方面的注意事項,總感受翻譯不太好,就原文搬上來了)

You may notice using the 「Model Explorer」 on the right is faster to add these, but do however note that adding the classes and interfaces themselves in this toolbox (instead of using the toolbox on the left and clicking on the palette to create the object) will not create the objects in the diagram.

3.4創造 IShape interface

從toolbox中,選擇「Interface」,並點擊圖表的某處。將其更名爲IShape。建立之後,選中它。

    • 在頂部工具欄,選擇 「Stereotype Display」 下拉按鈕,將值改變爲「None」。這將改變默認的圓形形狀,使其變爲成長方形。
    • 仍是在頂部工具欄,取消選中」 Suppress Operations 「。這將使咱們可以看到接口所擁有的方法。 

 

 

向IShape 接口添加返回值爲double的getArea方法。

    • 設定返回值類型(☆)。在「Model Explorer」中展開IShape節點,右擊你剛剛建立的getArea方法,並選擇「Add Parameter」。在「Properties」框中,將參數的名子變爲空,將「DirectionKind」變爲「RETURN」,將「Type」變爲double。
    • 將IShape和getArea的IsAbstract屬性框打上勾,他們在圖標上的名字將變爲斜體。這是UML的標準,表示這是接口或者其餘抽象實體。

3.5添加類和接口的關係

能夠經過從toolbox中選擇表示「Realization」的箭頭,並從Circle拖拽向IShape,使Circle實現接口IShape。重複一樣的過程,爲Rectangle添加實現關係。這是添加了Circle 和 Rectangle對於IShape接口的實現關係。

小技巧:若是想使鏈接線表現爲直角的方式,右擊鏈接線,並選擇」 Format — Line Style — Rectilinear」菜單。你經過這種方式,使箭頭重疊在一塊兒,可使你的圖看起來更整潔。

3.6添加類基於接口的行爲

因爲Circle和Rectangle類都實現了IShape接口,就必須有一樣的行爲(方法)。在「Model Explorer」面板中,複製getArea方法(按Ctrl-C或者右鍵點擊並選擇Copy菜單),並粘貼到Circle和Rectangle類。

注意:這些實現了的方法在Circle和Rectangle類中都不是抽象的,而是具體的,因此取消勾選IsAbstract框。

如今的類圖看起來應該是這樣的:

 

 

3.7添加Pizza類

向Pizza添加double型的私有域_price,添加返回double類型的公有操做getPrice。

3.8爲Pizza類添加IShape 的引用

從toolbox中選擇」 DirectedAssociation 「箭頭,點擊Pizza類,並向IShape拖拽 。

    • 選中箭頭,在右邊的「Properties」框上,將name一欄改成「has-a」,「End1.Aggregation」 一欄改成「AGGREGATE」(這個圖示說明Pizza和shape對象是「聚合「的關係)。
    • 將「End2.Name」一欄改成_shape,將「End2.Visibility」改成私有。這樣就自動爲Pizza添加一個名字爲_shape,使用IShape接口的私有域。

爲_shape建立一個「得到者」方法,名字叫作getShape,返回IShape 。這就是建立一個行爲,名字是getShape,返回IShape 。

3.9添加構造函數

1.爲Pizza添加構造函數,右擊,在彈出的「Add」 菜單中選擇「Operation」。從這裏,增長一個普通的帶有dboule型price參數和IShape類型shape參數的操做。

2.爲Circle增長一個帶有double型的radius參數的構造函數。

3.爲Rectangle增長一個帶有double型width和height參數的構造函數。

你的圖如今應該是這樣的:

 

 

3.10添加Test_Pizza類

爲了說明UML類圖更多的功能,又增長了一個叫作「Test_Pizza」的類,它用做測試目的,並使用到Pizza和IShape類。

    • 經過從toolbox中選擇「Dependency」箭頭,從一個類拖向他因此來的類,來添加不通類之間的依賴關係。在這個例子中, Test_Pizza 依賴於Pizza、Circle和Rectangle類,由於它實例化了它們。
    • 從Properties box選擇name屬性,或者雙擊圖表上的「依賴線」,能夠爲依賴關係添加標籤。特別的是,當一類實例化另外一個類,咱們會把依賴線叫作「instantiates」。 你能夠選中並拖動依賴線的標籤,以達到更美觀的效果。
    • 依賴關係不會影響代碼生成。

如今的圖應該像本文最開始所示。

 

看完如何繪製一個類圖,下面就聊聊我這使用過程當中遇到的一些問題:

  1. 要懂得區分Class和Class Diagram的區別:Class Diagram是圖表的意思。在Star UML中,他描述、展現着各類Class、Interface之間的關係。Class和Interface都是咱們描述現實世界的類、接口。他們一旦存在模塊(Model)中的時候,咱們能夠經過兩種方式來從模塊(Model)中刪除這個Class或者Interface。第一種是在Class Diagram中選中這個Class,經過Ctrl+Delete來刪除,直接經過Delete鍵的話,只能在該Diagram中刪除該Class,並不能從Model中刪除該Class。第二種是在Model Explorer中選中這類,而後右擊,選擇Delete From Model。
  2. 在輸入一些簡單的類或者方法的時候,直接在Class Diagram中輸入的完整的字符串,會比你去Properties面板中修改參數更方便。好比我在Class Diagram中輸入比我在Properties面板中一個一個屬性地去改更方便,高效。

     3.打開軟件的時候,會彈出以下對話框,選擇不一樣的項目類型,其實只是在初始化的時候給你加載的項目文件結構不同,針對於簡單小型的項目,我更傾向於懸着EmptyProject。

 

參考文檔:

http://www.flyne.org/article/379

http://wenku.baidu.com/link?url=4XTJzTRQfZkx3KlZYs1S-oRzXy9elrAmboRu-5JSn6HX6MO9JRO20_aCGdE5cvn1WmWyuMjDo-m3rDsi-pAZMb5QSOMaAOYuaGzYTmXiKhO

相關文章
相關標籤/搜索