一、安裝starUML,自行下載
二、創建新項目.
1. 左上角File–New Project File By Approach
2. 選擇 空項目 Empty Project
三、創建模型
1 .左上角 Model – Add–Model
同樣也可以找到你新建的項目,右鍵–Add-- Model
四、在新建的Model(NewModel)裏添加類圖(相當於畫布)
1. NewModel – 右鍵 – Add Diagram–Class Diagram.
2.你就可以看到主要的視圖出現了
五、如何畫類圖??(這裏用一個例子來做舉例)
1.新建一個Circle類。
左側點擊Class,然後再主畫圖區單擊創建新的類圖,改名爲Circle。
右鍵–Add–Attribute新建變量,輸入如
-_radius: int
- (-)減號表示,私有類型
- (_radius)是變量名
- (: ) 冒號加空格後接數據類型int
你也可在右下方單獨設置。
2. 使用和1 同樣的方法新建一個Rectangel類,矩形,並定義一個變量_width 寬和 _height 高
3. 新建一個接口 Shape
1.點擊左邊工具欄的 interface 接口,然後再畫圖中心單擊(或者拉動) 然後改名爲 Shape
2. 點擊左邊的選擇,選擇新建的接口Shape然後,再視圖區設置它的形狀stereotype Display 爲 null ,並去掉隱藏變量 suppress attribute 和 隱藏方法 suppress Opreation.
4. 給接口新建一個getArea()抽象方法。返回值爲int
- 選擇接口,右鍵-- Add —Opreation
- 設置方法
+getArea(): double
- 右側的Genneral框中勾 IsAbstract抽象方法,這時 方法會變爲斜體,
- 選擇單擊 Shape ,把Genneral的 IsAbstract 勾上,這樣接口也是抽象的了。
5. 添加 類Circle 和 Rectangle實現 Shape接口的線
- 左側選擇實現接口,Realization 的線,點擊Circle類,拖拽到 Shape類上面實現接口,
- 用同樣的方法Rectangle類實現接口。
- 如果覺得不夠美觀,選擇,框選所有的類和接口,右鍵–fomart–LineStyle–RectLineer設置爲方形的線。
5. 實現接口的方法,
1.複製接口的方法,Model Explore 區,找到 getArea() 右鍵單擊,copy 然後到合適的 類的目錄下,粘貼。
2. 此時的方法依舊是抽象斜體的,我們點擊剛複製來的方法,看到右下方的General框,把IsAbstract 抽象去掉,
你的最終圖形應該爲
目前你已經完成了基本的實現接口的類圖,繼承和這個類似,下面介紹如何添加聚合關係
六、如何添加關係?1.先了解幾種基本的 關係
-
依賴Dependency: 耦合最弱的關係,臨時的關聯,在代碼中,某個類的方法通過局部變量(new Students())、方法的參數student.getAge()或者對靜態方法Student.name的調用來訪問另一個類(被依賴類)中的某些方法來完成一些職責。
虛線
-
關聯Association:
實線
-
聚合Aggregation: 是關聯的一種,強關聯,has-a關係,比如 大學有一個老師University has-a Teacher,
has-a關係
菱形指向整體
- 組合Composition: 關聯的一種,更強的聚合,頭包含一個嘴Head contains-a Mouth,
contains-a 關係
黑色菱形指向整體
- 泛化繼承Generalization: 耦合度最大學生是一個人Student is-a Person
is-a 關係
子類實線三角指向父類**
6. 實現 Realization,實現接口,
虛線三角指向接口
七、實現一個聚合 has-a 的關係實例
1. 左邊找到 聚合白色菱形 Aggregation 單擊,由於(菱形指向整體)所以重 Shape 接口 拖拽到 Pizza 類,
2. Pizza has-a Shape,因此,點擊選擇,點擊聚合Aggregation線條,雙擊把線條的名字該爲 has-a
3.點擊線條,把General區域的 ,代表Pizza的General(End 2) 的name 改爲 新增爲 pizza
4. 點擊線條,把General區域的 ,代表Shape的General(End 1) 的name 改爲 新增爲 shape
效果圖:
八、最後給3類添加都一個構造函數
1.比如Circle的構造函數:
public Circle(int radius){}
類圖裏的寫法爲.
+ Circle(radius: int)
2。同理寫出 Rectangle 和 Pizza的構造方法
最終結果如圖
九、將類圖轉化爲Java代碼
1.打開 java 的解析器
點擊Model模型–Profiles解析器–Java移動到右邊即可(如圖成功)
(點擊左邊的Java,再點擊include,就可以了)
3。保存
ctrl+s保存到合適的目錄
. 生成Java代碼
- 點擊菜單工具Tool–Java–Generate Code生成代碼
- 選擇你想要生成代碼的的UML類圖,
效果:
Circle.java
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : Circle.java
// @ Date : 2020/5/7
// @ Author :
//
//
public class Circle implements Shape {
private int _radius;
public void Circle(int radius) {
}
public double getArea() {
}
public double getArea();
}
Rectangle.java
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : Rectangle.java
// @ Date : 2020/5/7
// @ Author :
//
//
public class Rectangle implements Shape {
private int _width;
private int _height;
public void Rectangle(int width, int height) {
}
public double getArea() {
}
public double getArea();
}
Shape.java
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : Shape.java
// @ Date : 2020/5/7
// @ Author :
//
//
public interface Shape {
public Pizza pizza;
public abstract double getArea();
}
Pizza.java
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : Pizza.java
// @ Date : 2020/5/7
// @ Author :
//
//
public class Pizza {
private double _price;
public Shape shape;
public double getPrice() {
}
public void Pizza(Object price double, Object shape Shape) {
}
}