摘要
Day2 主要任务是画出系统用例图,状态图,时序图,类图,活动图。
主要训练对模块的划分以,对OOD的理解。
用例图
用例图为了表现系统能够为某个用户提供什么样的服务。让SDE能够理解需要开发哪些服务以及这些服务之间的关系。
用例图包括的元素:
-
参与者;
-
用例;
-
关系;
参与者
参与者是系统外的一个实体,它以某种方式参与到用例的执行过程中。参与者分为以下几类:
-
真实的人:系统用户
-
其它系统
-
一些运行的进程(比如说时间,到了某个时间会触发系统中的某个事件时,时间久成了参与者。
用例
外部可见的系统功能单元。
用例间的关系
-
关联
关联描述参与者和用例之间的通信、
-
包含
一个用例包含其他用例具有的行为。
-
扩展
一个用例作为基础被另外的用例所扩展。
-
泛化关系
表示一个用例可以被特别列举为一个或多个用例。成为被泛化。
状态图
状态图用来表示某个特定对象的所有可能状态以及引起状态转移的事件。
表示有哪些状态。状态之间的转变是由什么行为引起的。
状态图的图例如下:
时序图
时序图用来表示对象之间相互协作的时间顺序。用来描述对象之间的协作。
时序图的组成元素:
-
角色:人或者机器
-
对象:人或者机器动作的操作对象
-
生命线:一条竖直的线
-
消息:同步消息,异步消息,返回消息
活动图
活动图是用于描述系统行为的模型视图。活动图用来描述满足用例要求所要进行的活动以及活动间的约束关系。
类图
类图用来表示类之间的关系。是写码时的参考依据。
类之间的关系有如下:
-
依赖关系
依赖关系是一种使用关系,是对象之间耦合度最弱的一种关联方式,是临时性的关联。依赖关系的四种情况:
-
A类是B类中的(某种方法的)局部变量;
-
A类是B类方法当中的一个参数;
-
A类向B类发送消息,从而影响B类发生变化
-
静态方法调用
在 UML 中使用虚线箭头表示:
-
关联关系
关联关系表示对象之间的一种引用关系。用来表示一个对象中包含另外的对象。
例如:
-
聚合关系
聚合关系表示某个类是一个类中的一部分。但是成员可脱离整体而存在。
例如:
-
组合关系
组合关系表示某个类是一个类中的一部分。但是成员不能脱离整体而存在。
例如:
-
泛化关系
泛化表示继承。
比如
-
实现
实现表示接口与实现类之间的关系。
例如:
结论
经过需求分析之后,需要产生以上五种图,作为写码时候的参考依据。除了类图之外,其它的图都是在反复澄清业务逻辑。对于类图来说,需要考虑 OOD 设计原则。
在设计类图时,遇到的一个问题:
-
思考方式是面向过程。但是实际设计需要面向对象。因此如何将思维进行转换,是个重要的问题。
-
类与类之间一定是有关联的。所以某个类中含有另外的类,是一个正常的情况。关于这方面,还需要熟悉一个 OOD 的设计原则。
Referrence
用例图
https://www.cnblogs.com/xiuzhublog/p/13179061.html#:~:text=%E7%94%A8%E4%BE%8B%E5%9B%BE%20%28Use,Case%20Diagram%29%20%E6%98%AF%E7%94%B1%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90%E5%88%B0%E6%9C%80%E7%BB%88%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%AC%AC%E4%B8%80%E6%AD%A5%EF%BC%8C%E5%AE%83%E6%8F%8F%E8%BF%B0%E4%BA%BA%E4%BB%AC%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F%E3%80%82
状态图
https://www.jianshu.com/p/3aed9a5ac363
时序图
活动图