顯示具有 StarUML 標籤的文章。 顯示所有文章
顯示具有 StarUML 標籤的文章。 顯示所有文章

2009年1月11日 星期日

StarUML - 配置版面

其實類別圖不應該是第一個建立的,不過,因為現在為了熟悉這一個軟體,而自己有建立好的類別,所以,先由類別圖直接來試用啦~

在建立完類別圖之後,有一些類別很多成員(attribute,function),會占滿整個版面,這個時候要拉關係,會很難拉耶~

所以,此軟體提供了一些功能,可以先讓類別的所有成員,先不顯示,那整個體積就變的很小啦~

suppress attributes:可以把所有的attribute都先隱藏
suppress functions:可以把所有的function都隱藏

Layout Diagram:可以排列所有的圖示
Auto Resize:可以依字體大小改變圖示的大小
Show Operation Signature:顯示所有的function的參數(包含輸入參數與return參數)
還有其它很好用的功能喔~都在同一列,可以去試試看~

原本這麼大~


變成這麼小~

StarUML - 建立一個類別圖

這裡有一個例子:

class DiagramItem:public QGraphicsPolygonItem {
public:
  enum {Type = UserType + 15}; // 匿名列舉
  enum DiagramType {Step,Conditional,StartEnd,Io}; // 列舉
  DiagramItem(DiagramType diagramType,QMenu *contextMenu,QGraphicsItem *parent=0,QGraphicsScene *scene=0); // 建構子
  inline int type() const; // const function且inline function且有回傳值
  QVariant itemChange(GraphicsItemChange change, const QVariant &value); // call by reference
private:
  int x;
};


前置作業:
先建立兩個類別:QGraphicsPolygonItem與其子類別DiagramItem
按左邊Generalization按紐,並由DiagramItem拉線到QGraphicsPolygonItem

一、建立第一個匿名列舉
1.對DiagramItem按右鍵Add→Enumeration,必需在右邊的Mode explorer作業,不建立名稱,並且再對它按右鍵,Add→Enumeration Literal加入Type = UserType + 15

二、建立一個名為DiagramType列舉
1.對DiagramItem按右鍵Add→Enumeration,必需在右邊的Mode explorer作業,建立的名稱為DiagramType,並且再對它按右鍵,Add→Enumeration Literal,加入四個Enumeration Literal,名稱分別為Step,Conditional,StartEnd,Io

三、建立建構子
1. 建立一個名為DiagramItem的function
2. 設定Stereotype為create:表示建構子
3. 設定參數
  (1). 對建構子按右鍵Add→Parameter, 新增一個Name為diagramType、Type為DiagramType
  (2). 對建構子按右鍵Add→Parameter, 新增一個Name為diagramType、Type為DiagramType
  (3). 對建構子按右鍵Add→Parameter, 新增一個Name為*parent、Type為QGraphicsItem、初始值為0
  (4). 對建構子按右鍵Add→Parameter, 新增一個Name為*scene、Type為QGraphicsScene、初始值為0

四、建立一個inline function且回傳值為int,又是const的function
1. 建立一個名為type的function
2. 對function按右鍵Add→Parameter, 新增一個Name為空字串、Type為int、DirectionKind為RETURN
3. 對function按右鍵Add→Tagged Values,CPP標籤下接CppConst勾選CppConst、CppMemberFunction的CppInline勾選

五、建立一個名為itemChange的function,回傳值為QVariable,參數有用到conference
1. 建立一個名為itemChange的function
2. 對function按右鍵Add→Parameter, 新增一個Name為空字串、Type為QVariable、DirectionKind為RETURN
3. 對function按右鍵Add→Parameter, 新增一個Name為change、Type為GraphicsItemChange
4. 對function按右鍵Add→Parameter, 新增一個Name為&value、Type為QVariant、對此參數按右鍵Add→Tagged Values,CPP標籤下接CppConst勾選CppConst

六、建立一個private的int型別的變數x
1. 建立一個名為x的Attribute
2. Type為int且Visiability為private

七、接下來要產生C++程式,對要產生圖型的class圖按右鍵:C++→Generate Code,然後,一直下一步,就可以產生沒有實作內容的原始碼啦~

StarUML - 套用C++ profile

經過這兩天的使用StarUML,覺得還不錯用~
但是,還是覺得畫UML圖很麻煩,但是,我深信,熟悉這個對了解架構與找出問題一定有很大的幫助~打算用這裡記錄我使用StarUML的過程~

因為,我是用C++/Qt4來寫程式,所以,要把C++ profile套用進來~

主要有兩個步驟:
一、加入C++ profile
Model→Profile
把C++ Profile加到右邊的框框

二、為了讓畫面更清爽,把Java與C#移掉
Tools→Add-In Manager
把Java與C#勾掉