Design patterns 如何使用设计模式从UML图到类图

Design patterns 如何使用设计模式从UML图到类图,design-patterns,uml,class-diagram,sequence-diagram,Design Patterns,Uml,Class Diagram,Sequence Diagram,我和一个朋友在一个大学项目中工作,这个项目涉及一个软件产品来管理一个图书馆,主要是借书和购书。 我们已经制作了很多文档和图表:用例图、序列图和活动图、架构图 现在,从前面的图表开始,我们必须使用设计模式高效地生成类图:如何继续?从您编写的内容来看,您正在寻找的似乎是创建一个或多个域模型。域模型从业务域捕获概念和属性 通常,您可以从您的用例中轻松识别业务领域中的概念,例如,如果您有一个名为Register for Subscription的用例,那么您会发现一个名为Subscription的域对象

我和一个朋友在一个大学项目中工作,这个项目涉及一个软件产品来管理一个图书馆,主要是借书和购书。 我们已经制作了很多文档和图表:用例图、序列图和活动图、架构图


现在,从前面的图表开始,我们必须使用设计模式高效地生成类图:如何继续?

从您编写的内容来看,您正在寻找的似乎是创建一个或多个域模型。域模型从业务域捕获概念和属性

通常,您可以从您的用例中轻松识别业务领域中的概念,例如,如果您有一个名为Register for Subscription的用例,那么您会发现一个名为Subscription的域对象也就不足为奇了

我在前面写了几篇文章,这些文章可能会帮助您塑造域模型和用例:


基本上,UML不会告诉你如何做到这一点,UML是一个规范,你可以认为它是一个工具箱。使用它构建什么取决于您。

用例显示系统的用户需求。序列图根据细节显示对象如何交互或子系统如何交互。如果您的序列图处于更高的抽象级别,那么您必须提出您的类。我建议进行一次对象闪电战,列出你能想到的所有名词。。。图书、图书馆、图书管理员、目录、借阅人、日期、图书位置、罚款等。确保您的班级和班级之间的联系满足您的所有要求。在分析之后,丢弃任何没有责任的类。浏览所有序列图,看看是否可以将类分配给生命线。如果没有,你可能会错过一节课。最终,所有场景都必须由类图中的类来完成。

嗯……小心点?:P不确定问题是什么。不过,我要说的是,如果您的部分需求是使用设计模式,那么您就错了。@cHao,我们不知道如何继续。我们做错了什么?如何继续是一个非常模糊的问题。至于你做错了什么,如果你是指我的评论,听起来你太努力了,试图以任何必要的方式使用设计模式,而不是让项目告诉你它们是否/在哪里适合。@cHao我想我明白你的意思,但这是我们第一次做这样的事情。关于这个问题:1我们不知道如何从我们以前的图,特别是序列图中正确地推断出特定的设计模式;2如何将这些图转换为类图。理论问题属于程序员。SEWell,实际上我们已经使用用例图和类图生成了领域模型。现在我们必须进入设计阶段,在这个阶段中,我们必须生成其他工件,比如包含将要实现的所有实际类的类图为什么要这样做?看起来您将尝试创建类图,而不是更多的序列图来显示您的体系结构。除非你真的在记录你的架构,否则我不会这么做。价值是有限的,工作量是周到的。试着找出实现这些设计类图的目标是什么。实际上,我们从多个角度记录了我们的系统架构。事实上,我们已经在设计级别生成了序列图和活动图。我们在许多项目中所做的是为重复使用的模式创建序列图。这很有帮助。但要对体系结构中的每一个类以及框架进行建模,我不会这么做。这是一项大量的工作,其价值是有限的,因为每次发生变化时,您都需要重新建模。我会坚持一个概述,而不是一个精确的模型。当然,我们不会对我们架构的每一个类别进行建模,只对从需求分析和用例排名中确定的相关类别进行建模。因此,目前,我们有6个相关用例,分解成6个序列图和活动图。现在,我们从6中取2,然后进一步设计。