用例图
- 用例是相对独立完整的,一个用例一般不需要其他用例来完成和它进行交互。但是有时候为了体现功能之间的联系,用例之间也会存在两种关系(扩展:extend,包含:include)
- 用例的执行结果对于参与者来说是可见的,有意义的。
- 一个用例必须是由一个参与者发起,不存在没有角色的用例。用例也不该自动启动。
- 用例一定是动宾短语。
- 一个用例是一个需求单元,分析单元,设计单元,开发单元,测试单元。
类图
- 体现类的属性和方法以及类与其它类之间的关系的图
- 类与类之间的关系:依赖、关联、继承(泛化)、实现
- 类图的作用:是对代码的直接体现。
- 如何在实际中使用类图分析系统
对象图
- 表示在某一时刻一组对象以及它们之间的关系的图。对象图可以看作是在系统某一时刻的实例。
- 作用
- 论证类模型的设计:当设计了类模型时,你可以通过对象图来模拟出一个运行时的状态,这样就可以研究在运行时设计的合理性。同时,也可以作为开发人员讨论的一个基础。
- 分析和说明源代码:由于类图展示了程序的静态类结构,因此通过类图看懂代码的意图是很困难的。因此在分析源代码时,可以通过对象图来细化分析。而对于开发人员,对于逻辑较复杂的类交互时,可以考虑画出一些对象图来做补充说明。
- 阅读对象图
- 首先找出所有的类,即在“:”之后的名称
- 整理完之后,就可以通过对象的名字来了解其含义
- 按类来归纳属性,然后再通过关联来确定含义
状态图
- 描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。
- 状态图的元素
- States对象的生命周期中的某个条件或者状况
- Transitions是两个状态之间的一种关系
- Event引起状态转移的事件
- Actions是状态变化过程中执行的操作
- 作用是帮助开发者梳理一个业务中核心对象的发展状况
时序图
- 描述对象之间交互的时间顺序图,也叫序列图。
- 时序图的作用:从时间(方法执行先后)角度,描述一个角色完成一个功能所涉及的对象,调用的所有方法,以及方法调用的顺序,甚至方法调用的细节(方法名,参数,返回值等)。
- 时序图的元素:角色(Actor),对象(Object),生命线(Lifeline),激活期(Activation),消息(Message)。
协作图
- 表示在实现一个功能的过程中,一组对象以及这些对象间的消息传递。
- 它和时序图是相对应的,时序图侧重与时间顺序,协作图侧重对象之间的关系。
- 协作图的作用:显示对象及其交互关系的空间组织结构,而非交互的顺序。
- 协作图的三要素:
- 角色:功能的发起者
- 对象:类的实例
- 消息流:一个对象向另一个对象发起的操作
活动图
- 活动图是描述系统在执行某一用例时的具体的步骤,它主要表现的是系统的动作。
- 活动图的作用
- 从活动图中可以看出,系统是如何一步一步的完成用例的,主要用于业务建模阶段。
- 活动图描述的是整个系统的事情。可以说活动图是对用例图的一种细化,帮助开发者理解业务领域。
- 活动图的元素:活动节点(Activity),转移(Transition),判断节点(Decision),泳道(Swimlane)
- 和状态图的区别,状态图描绘一个对象的状态,重点描述结果,活动图描述状态转换的过程或者说原因。
组件图
- 组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间依赖关系。
- 组件图的主要作用:
- 显示系统组件的结构关系。
- 提供了将要建立的系统的高层次的架构视图,这将帮助项目管理者建立阶段目标,并决定开发的任务
- 组件图的核心元素:组件(Component),依赖关系(Dependency)。
配置图
- 配置图描述的是系统运行时的结构,展示了硬件的配置以及软件部署到网络结构中的方式。
- 配置图也叫部署图。
- 一个系统模型只有一个部署图,通常用来帮助理解分布式系统。
- 部署图的元素:
- 处理器(Processor):能够执行软件、具有计算能力的节点,服务器、工作站。
- 设备(Device):硬件设备,如打印机,路由器等。
- 配置图和组件图的区别:配置图有硬件,以一个服务器为单位;组件图全是软件结构,以一个程序模块为单位。