文章目录
UML
定义
- UML:
- 作用:
概念模型
构成
用例图
基本组成元素
- 参与者(Actor) :位于系统外部,使用系统或与系统交互中所扮演的角色
- 用例(Use Case): 位于系统内部,系统提供给参与者的功能
- 系统边界(Boundary) :表示正在建模系统的边界,边界内表示系统的组成部分,边界外表示系统外部
- 关系(Relationship) :
- 参与者与用例之间:关联关系
- 参与者与参与者之间 :泛化关系
- 用例与用例之间:依赖关系、泛化关系
用例规约
用例图建模
- 用例图的一般建模流程:确定参与者→确定用例→确定用例之间的关系→绘制用例图→描述用例规约
类图
基本组成元素
类的其他概念:
- 抽象类(Abstract Class)
- 缺乏实现的操作称为抽象操作,包含抽象操作的类是抽象类
- 抽象类是不完整的,不能被直接实例化。不能创建一个属于抽象类的对象
- 关联类(Association Class)
- 在应用当中,如果发现两个类之间具有多对多的关系,并且有些属性不属于关联两端任何一个类
- 实际上关联类既是关联又是类,它不仅象关联那样连接两个类,而且可以定义一组属于关联本身的特性
- 模板类(Parameterized Class)
- 在编译时把模版参数绑定到不同的数据类型,从而产生不同的类
- 模板可以根据占位符或者参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型
- 通过实际值代替占位符即可创建新类
- 主动类(Active Class)
- 主动类的实例称为主动对象
- 一个主动对象拥有一个控制线程并且能够控制线程的活动,具有独立的控制权
- 例如,命令处理程序就是一个主动类的例子,它从外面接受命令对象,然后在自身的控制线程内执行命令
- 嵌套类(nested Class)
- 在一个类内部定义另一个类
- 嵌套类存在于外层类的名字空间中,因此只有外层类或外层类的对象才能访问它或它的实例
- 分析类
- 分析类是一个主要用于开发过程中的概念,用来获取系统中主要的“职责簇”
- 分析类在从业需求向系统设计的转化过程中起到重要作用,在高层次抽象出系统实现业务需求的原型
- 分析包括:边界类、实体类、控制类
- 边界(Boundary)类:
- 边界类位于系统与外界的交界处,承担系统与外界的信息交互功能
- 如窗体、对话框、报表、与外部设备或系统交互的类等
- 边界类可以通过用例确定,因为参与者必须通过边界类参与用例
- 实体(Entity)类
- 实体类描述要保存到持久存储体中的信息
- 类及其属性最终可能映射成数据库中的表以及字段
- 实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现
- 控制(Control)类
- 控制类负责协调其他类工作和控制总体逻辑流程
- 以委托责任的形式向其他类发出消息
关系
- 依赖(Dependency)关系
- 泛化关系
- 用来描述类的一般和具体之间的关系
- 一般描述的类被称作父类,具体描述的类被称作子类
- 泛化关系描述的是“is a kind of”的关系
- 关联(Association)关系
- 多重性
- 在关联关系中,一个类的多个实例与另一个类的一个实例相关
- 多重性表示形式:minimum…maximum
- 导航性
- 描述一个对象通过链进行导航访问到另一个对象
- 根据方向不同分为单向关联和双向关联
- 关联类:通过关联类可以进一步描述关联的属性、操作,以及其它信息
- 限定符:
- 多重性
对象图
类图建模
- 对系统词汇建模
- 对简单协作建模
- 对逻辑数据库模式建模
包图
基本组成元素
- 包的名称:简单名称、路径名称
- 包中拥有的元素:类、接口、构件、结点、用例、图以及其他包等
- 包的可见性:
- 包之间的关系:依赖关系、泛化关系
包图建模
- 包图创建步骤:
- 寻找包
- 通过把具有很强语义联系的建模元素分组,找出分析包
- 分析包必须反映元素的真实的语义分组
- 良好包结构:包内高内聚,包间低耦合,应尽可能避免嵌套包
- 确定包之间的依赖关系
- 尽量避免包模型中的循环依赖
- 寻找包
构建图
构件、接口的表示
- 构件:
- 间
- 构件的表示
- 接口:
- 接口
- 接口的表示