软件体系结构的多视图
kruchten提出了软件体系结构的4+1视图模型,其中用例图位于中心位置(4+1视图中的1)。
- 逻辑视图
一种静态建模视图
- 进程视图
一种并发进程或任务视图
- 开发视图
一种子系统和构件设计视图
- 物理视图
一种反应物理拓扑结构及连接关系的视图、
UML图
应用开发中,uml表示法支持以下图:
- 用例图
- 类图
- 对象图
- 通信图
- 顺序图
- 状态机图
- 活动图
- 组合结构图
- 部署图
用例图
一个参与者(actor)发起一个用例(use case)。用例之间的关系分为如下:
- 关联(communication association)
- 包含(include)
- 扩展(extend)
类和对象
表示类的方框总是包含类名,并且可选择性的列出类的属性和操作.
对象关名称需要带有下划线,为了区分类和对象。
1. class
2. 类和属性
3. 类和属性和操作
类图
类图中,类之间的永久关系被描述成连接方框之间的连线。UML表示法支持以下三种类之间的主要关系类型:
- 关联关系
- 整体/部分关系
- 泛化关系
- 依赖关系
1. 关联关系
关联是两个或多个类之间的结构化关系。每个连接类的关联线的末端表明关联的多重性。
多重性的是的一个类的多少个实例可能和另一个类的单个实例有关。
类的多重性可以是(1),可选(0..1),零或多个()
单向关联
public class user
{
private Address address;
}
public class Address
{
}
自关联
public class Question
{
public Question ParentUser;
}
2. 聚合关系
表示整体与部分的关系,在一个聚合里部分实例能添加到聚合整体中,也能从聚合整体删除.
public class user
{
private Role role;
public user(Role role)
{
this.role=role;
}
}
public class Role
{}
3. 组合关系
也是整体和部分的关系,但是组合是一旦整体对象不存在,那么部分对象也将不存在
public class user
{
private UserMenu usermenu;
public user()
{
usermenu=new UserMenu;
}
}
public class UserMenu
{
}
4. 泛化关系
user是adminuser和testUser的父类,这种关系就是泛化,也就是继承。
public class user
{
protected string name;
public bool AddUser()
{
...
}
}
public class AdminUser:user
{
}
public class TestUser:user
{
}
5. 依赖关系
某一个类依赖另一个类才能完成
public class user
{
private UserService userService;
public bool Adduser(userModel model)
{
....//todo
userService.AddUser(model);
}
}
public class UserService
{
public bool AddUser(usermodel model)
{
...
}
}