其實類別圖不應該是第一個建立的,不過,因為現在為了熟悉這一個軟體,而自己有建立好的類別,所以,先由類別圖直接來試用啦~
在建立完類別圖之後,有一些類別很多成員(attribute,function),會占滿整個版面,這個時候要拉關係,會很難拉耶~
所以,此軟體提供了一些功能,可以先讓類別的所有成員,先不顯示,那整個體積就變的很小啦~
suppress attributes:可以把所有的attribute都先隱藏
suppress functions:可以把所有的function都隱藏
Layout Diagram:可以排列所有的圖示
Auto Resize:可以依字體大小改變圖示的大小
Show Operation Signature:顯示所有的function的參數(包含輸入參數與return參數)
還有其它很好用的功能喔~都在同一列,可以去試試看~
原本這麼大~
變成這麼小~
2009年1月11日 星期日
StarUML - 配置版面
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#勾掉