请教:如何从数据流图得出 E-R 图?

lkjhgf 2003-06-18 11:24:24

请教:如何从数据流图得出 E-R 图?




...全文
1618 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkjhgf 2003-06-29
  • 打赏
  • 举报
回复
补充上贴:我们仅用功能分解图做项目 (见笑)

比如做医院门诊管理系统,其功能分解图为:

收费子系统
划价子系统
西药房管理子系统
中药房管理子系统
。。。


再下一步就是根据医院提供的实际表单和业务介绍,以及结合经验设计和建立数据库,然后就开始编程。也完成了。----期间并没有用数据流图(数据字典)。

见笑!


lkjhgf 2003-06-29
  • 打赏
  • 举报
回复

看来 yangzhenhai(叉子)兄 做过很多结构化分析设计的大项目,再请教:


功能分解图和数据流图的关系怎样?做项目仅用功能分解图,不用数据流图是否也可行?

(因为我们以前做项目就光画系统的功能分解图,数据库则是凭经验凑出来的,从来就没用过数据流图-----见笑了)





















yangzhenhai 2003-06-28
  • 打赏
  • 举报
回复
呵呵,我的做法是很不正规的。因为我做的项目都比较小,另外我也是跟着别人学的另类系统分析,不是通常正规的路子。参考一下算了。
如果画user case图,一般都项目比较大,人要比较多才行。我这里不适用啊!看来不用是也行的。

我做系统分析,是按照三级对象来找,客观对象,映射对象,支撑对象。
客观对象指对应的现实世界对象,这个要用到些技巧,一般根据客户提的要求去找,名词,动词,关系,用户,功能,单据,处理方式,统一的都按对象去看。面向对象提供了一些策略来做这些事情。
映射对象,是指在计算机内部这些对象的存在方式。根据对象的性质,永久保存的看做是数据库对象,临时存在的看做是内存对象,放在服务器上的是远程对象。又可以另外划分为实体对象,关系对象,服务对象。分别表示实体,联系,功能。
支撑对象,是指靠它才能在计算机环境里正常运行的与功能无关的一些对象。包括界面对象,通讯对象,数据库存取对象。等等。
全部把这个工作做一遍下来,就差不多可以了,而且分析完了,设计也出来了,直接就可以开工了。usercase可发现不了映射对象和支撑对象啊!:)

怎样寻找全部对象而不遗漏。我一般是构造好模型以后,在脑子里推算各种可能的输入,用法,将来扩充的功能。看看是不是很清晰,很流畅,如果是,就说明系统是对的。
对象的划分有很多种,没有正确答案,也谈不上什么全找到无遗漏。一般拿所有的数据流检验,如果输入输出都正确的,就认为是合格了。

关键还是模块划分,这个划好了,好改,好做,好查错,好维护,好扩充,真是样样好。
山野江湖郎中 2003-06-27
  • 打赏
  • 举报
回复
如果你是做信息管理的,那么数据流图中应该有数据字典描述,应该说是E-R主要的来源参照就是这些内容。
比如发票的字典描述:
1{商品编号+商品名称+购买人+数量+单价+总金额}5
总金额:=数量*单价
总 计: =Sum(总金额:总金额>0)

意思是每张发票有1到5条信息,每条信息的 总金额等于数量乘单价
总 计是总金额大于零的求和,这些也可以用一些通用的标准,没有的,也可以自己定义,只要整套的文档保持一致就行,但文档前边必须有符号定义说明
lkjhgf 2003-06-27
  • 打赏
  • 举报
回复

yangzhenhai(叉子)兄也用ooa ?

按正理来说,应该从 use case 中寻找问题域的对象,但有人认为从 use case 不可能发现全部对象,所以 use case 的作用有限。

yangzhenhai(叉子)兄对此有何看法?如果用ooa,你怎样寻找全部对象而不遗漏?




















yangzhenhai 2003-06-27
  • 打赏
  • 举报
回复
我是先用数据字典找实体,再找联系,用数据流做检验,又可以发现更多的实体,联系。循环以上步骤只到最终。
关键在于是用数据流做检验。如果能通过所有检验,证明我已经找完了。
数据流可能不一定能画的全,所以我用他做检验。

为什么不试试omt,ooa呢?
lkjhgf 2003-06-26
  • 打赏
  • 举报
回复
那么yangzhenhai(叉子)兄在实际设计数据库时是如何寻找全部实体的? 从数据流图和数据字典中寻找,还是另有更好的方法?
lkjhgf 2003-06-26
  • 打赏
  • 举报
回复

那么yangzhenhai(叉子)兄在实际设计数据库时是如何寻找全部实体的? 从数据流图和数据字典中寻找,还是有更好的方法?
yangzhenhai 2003-06-25
  • 打赏
  • 举报
回复
关于第二点,我的理解是这样的。
从数据处理的角度来看待系统,归结为输入,输出,处理三部分,把系统看作是数据流联系起来的功能的总和。数据流描绘数据,信息的流向,描述了系统的全貌,数据字典是对数据流各组成部分的进一步描述。

从这两个方面,无疑可以完整的描述系统。能够找出所有系统所有的实体。
但是如何找到实体,又要有一些方法。主要是如何对数据流进行分解和抽象。
为这两个目的,又有五花八门的解法,
有面向数据流的sd,要把数据流转化为变化流和事务流,再处理。
有面向数据结构的jaskson法。是先找出数据结构,再找对应关系的。
还有let wiz,paramn什么的,这两个我名字记不得了,前面那个至顶向下,逐步求精的,后面的那个强调信息隐藏。

即使你把数据流图做的很好,但是后面的这些详细设计技术,仍然也要熟悉才行。否则还是会漏掉实体。
lkjhgf 2003-06-25
  • 打赏
  • 举报
回复
yangzhenhai(叉子)兄:

(1)你说的对应现实系统的实体应该就是“问题域”的实体吧。

(2)另外,你说可以从数据流图和数据字典中找出全部“问题域实体”,是否还有其他的严格证明 ?比如经典的书或理论论述过。


关于第(2)点,我不是在吹毛求疵。因为真的可以,就不必考虑另外从其他途径来补充寻找“实体”了。只要切实做好数据流图和数据字典就够也。这可大大节省人力物力和时间。



















yangzhenhai 2003-06-24
  • 打赏
  • 举报
回复
可以。不过这些实体对应的是现实系统。至于数据库设计还要考虑具体实现。
flysharker 2003-06-24
  • 打赏
  • 举报
回复
你说的是omt建模吧?
中国红001 2003-06-23
  • 打赏
  • 举报
回复
数据流图和er图难免有相互的参考,但绝对不是由谁得出谁。
lkjhgf 2003-06-23
  • 打赏
  • 举报
回复
诸位大虾:

现在我把问题降低一点,不谈 E-R 图.

现在的问题是------ 能否从数据流图和数据字典中没有遗漏的找出全部“实体” ?


yangzhenhai 2003-06-23
  • 打赏
  • 举报
回复

经过功能分解,精化分析后,才可以从数据流图和数据字典得出详细的er图。
否则er图,从何而来呢?
lx141068 2003-06-23
  • 打赏
  • 举报
回复
可以有办法,但需要借助CASE工具,例如ERWIN (CA公司产品)。
具体如下:
在BPWIN中,定义数据流图的数据字典DD,其结构为数据结构名称(数据元素名1,数据元素名2,....)
然后通过一个转换工具,系统会自动将数据字典转换为ER图(在BPWIN中,需要用户定义好一个DD,然后将其分配给数据流,数据流的数据结构是数据字典的一种用户模式)
在ERWIN中就可以使用ER图了,当然,这个ER图还太不规范,应进行3NF,而且包括其它很多定义过程,例如完整性定义等。
lkjhgf 2003-06-22
  • 打赏
  • 举报
回复


但是有一本软件工程的书中就说应该从数据流图和数据字典中寻找实体来画E-R图。(还清华大学出版社出版的)

这种说法究竟对不对?如果不对,那这样的书不是在误人子弟吗?




julise 2003-06-22
  • 打赏
  • 举报
回复
这两种图差不太多,有图的话会更好说一点
中国红001 2003-06-22
  • 打赏
  • 举报
回复
数据流图是功能模型
er图是数据模型
这两者是一个事物的两个方面,怎来的数据流图得出er图。

^_^
w_rose 2003-06-22
  • 打赏
  • 举报
回复
数据流图通常描述实体的单个属性。

因此,需要总结,才能得到实体的完整的属性描述。
加载更多回复(7)

1,268

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧