UML(Unified Modeling Language)
PowerDesigner16.5建模工具提供了UML的如下12种图
一、Use Case Diagram(用例图)
用例图用于描述系统提供的系列功能,每个用例代表一个功能。在需求分析阶段使用。如上图,可以表示论坛网站上的几个基本功能,角色(Actor)与用例(Use Case)之间用实线连接,用例之间的依赖用虚线连接。
二、Class Diagram(类图)
这第二大点参考《设计模式》刘伟主编 胡志刚 郭克华 副主编
自动生成Java代码如下:
/***********************************************************************
* Module: Student.java
* Author: xxx
* Purpose: Defines the Class Student
***********************************************************************/
import java.util.*;
/** @pdOid 247978df-57d9-4449-b5f7-f0dbb351cff8 */
public class Student {
/** @pdOid ef5133ac-2705-4d82-a47d-e513e4191a03 */
private String id;
/** @pdOid 93fadbb4-1cff-434f-8250-d448e9079887 */
private String name = xxx;
/** @pdOid bade64a0-e2bf-42e5-9f08-27c7cc9df053 */
private int age;
/** @pdOid a04cff38-164f-4fed-9c9b-5dbdafbdd992 */
protected String province;
/** @pdOid 1a8ad619-b476-494e-a9c7-27267670313f */
String school;
/** @param name
* @pdOid 377f93a0-f03f-4da8-b25a-f3b422e5c451 */
public void setName(String name) {
// TODO: implement
}
/** @pdOid 242cd58f-f62e-4019-822f-548caa5bf49b */
public String getName() {
// TODO: implement
return null;
}
/** @param id
* @param name
* @pdOid 944656b3-d124-4c39-a5f6-95e2daff855d */
public void showInfo(String id, String name) {
// TODO: implement
}
}
符号的含义(更多可以参看PowerDesigner) | |
---|---|
- | private |
+ | public |
# | protected |
* | package |
1.类之间的关系之关联关系(Association)
(1)双向关联
public class Customer {
private Product[] products;
}
public class Product {
private Customer customer;
}
(2)单向关联
public class Customer {
private Address address;
}
public class Address {
}
(3)自关联
public class Node {
private Node subNode;
}
(4)多重关联
表示方式 | 该类对象个数 | 另一个类对象个数 |
---|---|---|
1…1 | 1 | 1 |
0…* | 0个或者多个 | 1 |
1…* | 1个或者多个 | 1 |
0…1 | 0个或者1个 | 1 |
m…n | 最少m个、最多n个 | 1 |
pulic class Form{
private Button[] buttons;
}
public class Button{
}
(5)聚合关系(Aggregation)
聚合关系表示整体与部分的关系,部分可以脱离整体独立存在。比如汽车和发动机的关系。
public class Car {
private Engine engine;
public car(Engine engine) {
}
public void setEngine(Engine engine) {
}
}
public class Engine {
}
(6)组合关系(Composition)
组合关系表示部分与整体的关系,部分依赖整体,不能脱离整体而存在。如人的头和嘴巴之间的关系。
public class Head{
private Mouth mouth;
public Head(){
mouth = new Mouth();
}
}
public class Mouth{
}
2.类之间的关系之依赖关系(Dependency)
public class Driver{
public void drive(Car car){
car.drive();
}
}
public class Car {
public void move() {
}
}
3.类之间的关系之继承关系(Generalization)
3.类之间的关系之接口实现关系(Realization)
上面仅仅完成了类图的基本绘制,其他图的学习待续。。。