分析设计中用例图、类图与时序图关系
一、时序图与类图
时序图(Sequence Diagram),又名序列图、循序图、顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。
二、时序图和类图的关系
类图和时序图是在软件系统设计中直接和程序代码相关联的图,准确地说,程序代码是由类图直接产生,而时序图可以定义类图的方法。用例图用来描述系统功能,和类图与时序图没有直接关系。
类图在UML中由三个部分组成,如下图所示,分别表示类的名字、类的属性、类的方法。在定义一个类时可需要给出类的名字、属性和方法,其中方法也可以在时序图中定义,在方法中定义了一个消息,则会在相应类图中自动增加一个方法,但在修改或删除时序图中已经定义的消息时,相应类图中的方法不会自动修改、删除。
例如; 学生注册的业务可以用以下的类图和时序图来描述。
1、用例图
2、类图
Register类有一个方法inputStudents(),Student类有两个方法addNewStudent()和modifyRegisterDate(),每个方法都和时序图的消息相对应。
3、时序图
消息传递箭头指向对象的类会自动生成一个相同的方法,Register有一个箭头指向它,则再Register类图中自动生成一个inputStudents()方法,Student有两个箭头指向它,则在Student类中自动生成modifyRegisterDate()和addNewStudent()方法。
三、总结
综上所述,三个图可以有以下一些经验的归纳:
1、 用例图的每一个用例(这里是指系统用例而非业务用例)应有一张时序图来表述;
2、 时序图要将所有类图中类的连线表示出来,如做得好,每一个连线用一个时序图表述;
3、 时序图中的每一个消息,要和类图中各个类的方法一一对应。