序列图中的所有对象都应该在类图中设计吗?

时间:2016-12-10 21:58:20

标签: uml class-diagram

我正在处理序列&教育网站的类图,序列图中的所有对象都应该是类图中的类吗?

例如,在注册过程的序列图中,我需要一个名为" Data Base"这需要保存用户的信息,应该"日期基数"是类图中的一个类?它的功能是什么?它只是加载&保存?

2 个答案:

答案 0 :(得分:3)

我认为这取决于您的UML模型的形式,抽象和目的的级别。

Martin Fowler将UML称为Sketch,将UML称为Blueprint,将UML称为编程语言。

术语得到了很好的用法;我认为' UML是Sketch'特别是已经成为一种流行的模式,其目标是人与人之间关于系统设计的沟通;不一定是正式的工程规范(即蓝图),也不适合作为代码生成器(即编程语言)的输入。

如果要在草图模式下使用UML,这是完全有效的,那么序列图不要求只使用类图中定义的类。实际上,序列图中的一些对象/生命线根本就不是类实例:

  • 他们可能是"演员"在用例图中定义(或不​​定义)。演员通常是人,因此被表示为简笔画。 "最终用户"是包含在序列图中的常见参与者。很多examples here
  • 它们可能是外部系统,如数据库,未在类模型中定义。您的系统可能有一个类或一组类来抽象数据库,即数据访问层"或DAL。但话说回来,你的系统可能没有DAL;即使它确实如此,您可能仍希望序列图显示跨越边界,DAL和实际数据库之间的交互。

使用UML作为草图,由外部参与者或系统组件实现的方法实际上取决于您。您可以将数据库查询显示为execute query,或更具体的内容,如实际的SQL语句。 "正确性"您的图表能够以适当的细节和形式与您的受众进行有效沟通。

答案 1 :(得分:2)

是的,数据库将是Class Diagram中的一个类,它的函数可以是validation(),generateErrorMessage()等。