面向对象与数据流图的关系?

george2956 2002-10-16 04:21:41
采用面向对象的开发方法需要绘制数据流图吗?因为我知道DFD本身是结构化分析方法族中的一员。但是如果不去绘制数据流图而仅赁抽象出来的几个模型图想要完成一个软件的话,我想这又似乎不大可能。实在是搞不清楚它们之间的关系,请各位给我指条明路!我已经在这个十字路口徘徊好久了,就是走不出这片误区。谢谢!
...全文
1039 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
scalene 2002-10-22
  • 打赏
  • 举报
回复
To cjj800: "但是会扭曲部分OO的精髓"。我用OO方法的时间也不短了,你说的的确有道理。不过我的意思是:采用什么方法是根据实际项目的需求和情况而定的。OO还是OP,决不是检验设计是否成功的标准。
scalene 2002-10-22
  • 打赏
  • 举报
回复
To cjj800: "但是会扭曲部分OO的精髓"。我用OO方法的时间也不短了,你说的的确有道理。不过我的意思是:采用什么方法是根据实际项目的需求和情况而定的。OO还是OP,决不是检验设计是否成功的标准。
cjj800 2002-10-22
  • 打赏
  • 举报
回复
up
cjj800 2002-10-22
  • 打赏
  • 举报
回复
TO george2956(flyingfox):
不好意思,才收到你的短信.
我个人认为用UML的话,可以用VISIO,但是最好用RATIONAL ROSE.学习UML可以参考<<UML用户指南>>,学习ROSE可以参考<<UML WITH RATIONAL ROSE 从入门到精通>>.
TO scalene(南瓜汤)
从结构化分析方法过度到OOAD,DFD技术确实让人难以割舍.把DFD整合到OO方法中不是不可以,但是会扭曲OO的精要。譬如,OO的消息传递就比DFD的流动数据具有先进性,可以说明传递的原因和目的。


cjj800 2002-10-22
  • 打赏
  • 举报
回复
to george2956 (flyingfox)
不好意思,才收到你的短信。
如果说用UML的话,用VISIO可以,但是不如用Rational Rose。
我个人观点认为,既然是写论文,如果用结构化方法分析,你的导师对传统的分析方法很熟悉,很容易看出错误,并问出古怪的问题,不如用UML的分析方法,容易拿高分,只要下点功夫,没有你想的那么难。学习UML可以参考《UML用户指南》,学习ROSE可以参考《UML with Rational Rose从入门到精通》。
to scalene(南瓜汤)
实际上,我们在开始转向使用OOAD的时候,很可能会产生“黑猫白猫,抓住耗子就是好猫”的想法,主要是难以割舍对DFD的感情使之然也。把DFD整合到OO中不是不可以,但是会扭曲部分OO的精髓。毕竟消息传递比流动数据具有先进性,可以清晰的描述消息传递的原因和目的。
cjj800 2002-10-22
  • 打赏
  • 举报
回复
hehe,同意。
采用PO还是OO,主要与一下几点有关。
1。系统的大小及复杂度。
2。系统是否有进一步扩充功能的必要。
3。需求清晰明确与否。
4。语言的选择。
5。个人的喜好。
6。etc
但是看来,天平还是向OO倾斜一点。
george2956 2002-10-18
  • 打赏
  • 举报
回复
到目前为止,我的程序已经基本完成,下面的工作就是要做一份文档,也就是所谓的“论文”,因为我原来的专业并不是“计算机应用”,所为不大清楚应该用什么方法及用什么工具在论文中将系统的功能和框架描述清楚?如果说用UML的话,是不是用VISIO可以呢?因为弄不到rose也不会用。请各位再给我几点建议,谢谢!
tianxinet 2002-10-18
  • 打赏
  • 举报
回复
在面向对现的软件过程中,已经没有DFD了,DFD是典型的结构化软件分析方法。如果你希望表达流程的话,可以用UML的活动图(它在本质上是一种流程图)。
cjj800 2002-10-18
  • 打赏
  • 举报
回复
从结构化分析方法过渡到OOA,都会经历你所遇到的十字路口。如果用JAVA实现ERP“生产管理系统”最好用OOA方法进行分析,不需要绘制数据流图。因为结构化分析方法着重于功能分解的使用,关注点不是对象的内在性质,和面向对象的三个基本原则相违。OOA的方法有很多种,建议使用UML。
scalene 2002-10-18
  • 打赏
  • 举报
回复
实际工作的时候,不要太拘泥于面向对象或面向过程。面向对象比较能够方便地为系统获得形象、直观和整体的描述;面向过程则利于一些流程化的东西,没有人说OO以后就不可以使用面向过程的分析方法了,比方说,UML中的过程图功能就比较弱;还有比如描述实际应用时有时使用Case图感觉就有点太抽象,难以表述清楚的;另外细小到一个function的情况,难道你还要用UML去做吗?不方便,而且难以维护,用流程图就很好。具体到DFD的问题,我在Microsoft和IBM的项目管理方面的技术文档中都看到过,应该是进行需求分析,系统设计,数据库设计过程中不可分割的一部分。有了DFD以后,可以清楚地看到系统的性能瓶颈,需求和设计对应的是否合理,一些设计的问题也比较容易暴露出来。当然,不是所有的项目所有的方法都会用到,设计方法就是思考的方法,根据你自己的需求来决定吧,设计领域没有绝对的“原理”的。
george2956 2002-10-18
  • 打赏
  • 举报
回复
很想再和你讨论一下,因为我现在在做论文,用JAVA实现ERP“生产管理系统”中的一部分(计算物料需求),所以在这之中免不了要有一些算法在里面而且存在着大量与数据库进行数据交互的问题,也就是说既要用面向对象的开发方法(因为JAVA语言本身是面向对象的)又要十分清楚数据的流向。但是各种软件工程的书上都介绍说“DFD本身是结构化分析方法族中的一员”,所以我不知道同时采用这两种方法进行设计是否有矛盾?
scalene 2002-10-18
  • 打赏
  • 举报
回复
TO tianxinet(越来越胖的猴子) :我坚持自己的观点,因为它是被实践经验所证实的。软件工程中不存在所谓“纯”OO这种东西的,如果只是学术讨论,那无可厚非;如果想做点实际工作,还是实际一点比较好。不要拿什么OO的原理来压我,如果实践证明这种方法对你有用,为什么不用呢?
TO cjj800(风风火火): “...不需要绘制数据流图。因为结构化分析方法着重于...”难道用DFD就是结构化了吗?没有人说面向对象和结构化方法两者是水火不容的呀!
TO george2956(flyingfox): 写文档的话Visio基本够用了,不过还是推荐你学一下Rose(如果你有时间的话)。慢慢的你会觉得它对你很有帮助的。
Again, 我强调一下:设计领域没有绝对的“原理”,黑猫白猫,抓住耗子就是好猫。当你的经验逐渐丰富的时候,你会觉得那种初学者理想中那种"纯粹"的OO,实际要比纯粹的面向过程方法还要愚蠢。
scalene 2002-10-17
  • 打赏
  • 举报
回复
没有必然联系。如果你所开发的系统中信息管理和处理占了很大的比重,那么数据流图可能是必要的,否则未必。
传统的面向过程的(瀑布式)开发方式中也有数据流图,理论上的东西,随便找一本软件工程的教材就可以了。想要看稍微实际一点的,去找找Microsoft和IBM的开发体系中有关项目管理技术的部分,不过还是要有实际经验才能领会的了啊!

1,268

社区成员

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

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