北京尚学堂UML课程笔记
一、UML分类
序列图:描述实例在某个场景中动作执行的顺序。
序列图和协作图是同构图。
活动图可以简单理解为流程图就可以了。

二、UML实战


(工具用的是Rational Rose)
1、用例图
首先要识别跟系统打交道的人和模块。
Actor:课管员、学生、教授、独立计费系统。
Use Case:(Actor对于系统所做的操作)
课管员:建立和发布本学期课程表
学生:维护自己的课程表
教授:取得人员名单
独立计费系统:得到计费的信息

注意点:
维护课程包括选课、删课,是否需要画成两个用例?登录算不算一个用例?在软件工程不同的阶段,沟通的人不同,画出来的UML粒度大小不同。在后面的迭代版本可以进行细化。
接下来是需要说明每个用例的执行过程(包含不同的执行路径),比如学生维护课程表,需要用文档进行说明。用例是文档不是这个图。用例文档的编写这里省略。
2、活动图
可以用活动图分析特定的用例。比如,我们用活动图分析学生维护课程表这个用例:

3、类图
接下来,根据用例和用例文档(这里用活动图代替)抽象出类。
技巧:找名词。
画除了类之后,需要画类之间的关系。
对象图常常和类图画在一起。

类有了属性之后,还需要有方法,才能进入编码。接下来我们需要来找类的方法,通过序列图来找。根据类和用例的特定场景(也就是不同的路径)制作序列图。
4、序列图
代表完成一个用例路径过程中,actor和系统的类在时间上的交互关系。序列图可以帮助我们建模系统的行为。
我们来画学生添加课程路径的序列图。
界面类V、控制类C、课程类M MVC设计模式。

接下来可以根据序列图完善类的方法:
箭头指向的类是对这个方法负责。比如课程类对“课程是否已经开放”负责。可以看出,课程需要提供方法:课程是否已经开放,添加学生。可以完善我们的类图了,如下:

类有了属性有了方法就可以编码了。
5、协作图
Rational Rose可以将序列图直接转成协作图。按f5

接下来我们可以用状态图说明关键类的状态。
6、状态图
课程的状态图:

接下来是使用组件图说明程序的逻辑组织、使用部署图说明系统的部署。

网友评论