一. UML图的总结
1. 基本概念
UML(Unified Modeling Language)即统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的**九种图+包图**的基本概念进行介绍以及各个图的使用场景。
UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。
2. 用例图
用例图用于从用户角度阐述**软件的各个功能和其功能的使用者**.主要使用于需求分析阶段,是非常符合用户思维的设计.
(1). 用例图所包含的元素
1). 参与者(Actor)
与软件进行交互的用户,组织或者其他外部系统.
2). 用例(Use Case)
用例就是外部可见的系统功能,不包含其内部逻辑实现.这里完全站在不懂技术的用户的角度思考问题.
3). 系统边界
用来分割用例,将用例分割为不同的子系统,子系统内部的功能联系紧密.当然也可以只存在一个完整的系统边界,例如下图.
(2). 用例图包含的关系
1). 关联
参与者和用例的关系,任何一方都可发送或接受消息.
画法:实线,无箭头.
2). 泛化
可以理解为继承关系.父用例通常是抽象的.
画法:实线,空心三角形箭头,由子用例指向父用例.
3). 包含
将复杂用例划分为较小的步骤,类似程序中的代码封装,主程序中调用子过程.
画法:虚线,线状箭头,标记<<includes>>,复杂用例指向子过程.
4). 扩展
指用例功能的延伸,相当于为基础用例提供一个附加功能.
画法:虚线,线状箭头,标记<<extends>>,拓展用例指向主用例.
3. 类图
根据用例图抽象出类,用于面向对象程序设计.描述类的内部结构和类与类之间的关系,是一种静态结构图.
(1). 类图基础属性
1). 类名
2). 属性域
访问级别 字段名 : 类型
3). 方法域
访问级别 方法名(参数) : 返回值类型
+表示public
-表示private
#表示protected
~表示default,也就是包权限
_下划线表示static
斜体表示抽象
(2). 类与类之间关系
1). 泛化(Generalization)
表示继承关系或者类对接口的实现关系.Java中即 extends 和 implements 两个关键字.
画法:空心三角形箭头,实线表示继承父类,虚线表示实现接口.箭头指向父类或者接口.
2). 依赖(Dependency)
一个类的实现需要另一个类的协助,如方法的参数,局部变量或者静态方法的调用.
画法:虚线,线状箭头