应该先创建 ER 图还是类图?
Posted
技术标签:
【中文标题】应该先创建 ER 图还是类图?【英文标题】:Which should be created first ER Diagram OR Class Diagram? 【发布时间】:2011-02-12 07:55:42 【问题描述】:我创建 DFD 的第一步。然后我继续创建一个类图。在这样做的同时,我觉得我应该首先创建 ER 图。因为有许多细节无法在类图中捕获。 那么,我的问题是我应该先创建 ERD 还是类图?
感谢您的宝贵意见!感谢阅读
【问题讨论】:
【参考方案1】:在建模时,我倾向于按照当时对我来说最有意义的顺序来绘制图表。有时首先是类图,有时是实体关系图,有时甚至是序列图。要记住的主要事情是,您正在尝试理解事物并将其写下来,以便其他人也能理解它们;担心什么是整理你的想法的最佳方式并不像只认真思考并写下你确实理解的那些部分那么有用。
[编辑]:FWIW,我也倾向于在纸上或白板上开始建模,并且只有在我越来越接近我所理解的情况时才切换到使用计算机。 (我想我只是不喜欢在计算机上画画。)关键是建模是关于理解,而不是(非常)关于计算机。
【讨论】:
是的,我同意您当时尽可能具体。如果您还没有充实属性,您可能会发现映射关系是合乎逻辑的第一步。【参考方案2】:OO 纯粹主义者倾向于先做类图。有数据库背景的人先做ER图,然后从中“派生”出类图(这种方法是OO纯粹主义者不赞成的)
我更喜欢混合方法。
首先识别实体。从数据库和应用程序(类)的角度来看,这应该是相同的。
一旦您在高层上就实体达成一致,请继续平行方向的类图和 ER 图 - 因为“关系”在每个方面都不同。 (如果你是唯一一个处理它们的人,那么首先从类图开始,然后是 ERD。但首先确定实体)。
在我看来,数据库和应用程序(Java/C#...)上的高级实体应该是相同的。使用通用基础非常容易 - 特别是如果有不同的人在不同的部分(类、数据库)上工作。
【讨论】:
【参考方案3】:我会说这真的取决于您的应用程序。 &我对 UML 有所了解,并且我知道您可以仅使用标准 UML 类图对关系多重性和主键进行建模,因此类图通常就足够了。我喜欢从类图开始,因为我喜欢使用面向对象的分析和设计、用例、用例实现和分析类。另一方面,良好的数据库设计要求规范化,有时需要非规范化,数据查询的不同优化......但为此,首先我需要知道我将查询什么以及可能如何查询。我个人认为大多数应用程序的关系部分只是一种存储机制,我从面向对象编程的角度来考虑系统。这对于例如 Ruby on Rails 尤其有用,这要归功于 Active Record 模式完全从关系模型中抽象出来,因此我不必进行两次建模。
【讨论】:
【参考方案4】:ER 图很烂——因为它们包含的信息比对象图少,对象图包含更多关于对象和继承树的方法的信息——ER 图都会错过这两个元素。
因此,您最好从对象层次结构(类图)开始,然后转到事物的映射方面;)
【讨论】:
为什么从较少(更一般)的信息开始不好?这是从更高级别开始并在您进行过程中提供更多详细信息的常用方法。您首先要做出设计决策,例如一个人是否应该与宠物相关,而不是我们是否应该在对象模型中包含一个人的名字和姓氏。 但无知是不值得的。忽略继承意味着您最终会得到愚蠢的设计,例如客户表中的对象“客户”,员工表中的对象“员工”等。以上是关于应该先创建 ER 图还是类图?的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse 答疑:Eclipse 使用 Amateras UML 创建类图点击 Finish 没反应解决方式汇总