毕业设计之感悟 —— UML 与 ER 图

摘要:
今天,虽然我是第一个参加毕业设计答辩的人,但我并没有特别紧张,因为我写了整个系统。我认为我是完美的,可以处理所有老师的问题。事实上,我是受老师教育的。老师说我的毕业论文没有课。起初我很困惑。什么没有课?然后我把我写的东西告诉了老师。老师说没有UML类图。事实上,我一开始是抗拒的。UML类图,有什么用?它不是面向对象的类图吗?我不能直接绘制E-R图吗?老师告诉我面向对象

    今天毕业设计答辩,虽然我第一个上场,但是不是特别紧张,因为整个系统都是我写的。我以为自己天衣无缝,能应付所有老师的所有问题。事实上,我被老师教育了一番。

    老师说我,毕业论文中没有一个类。我一开始比较懵,什么没有类?然后我和老师说我写了什么什么类。老师说,没有 UML 类图之类的东西。

    其实我一开始是抗拒的。UML 类图,有什么用?不就是面向对象的类图嘛?直接画 E-R 图不行吗?老师和我说了面向对象的软件工程方法,首先需求分析,然后画 UML 图,UML 设计好了,再具体实现 E-R 图等等。

    虽然被说得很懵,但是回去我整理了一下思路。我记得很多企业现在并不会把 UML 图放在设计里,大多数情况下都是架构师自己画一画,并不写在设计里。不过这不是主要的,我在想,为什么我们需要 UML 图,具体而言,E-R 图难道不够替代 UML 图吗?

    其实,仔细想想,E-R 图的确不能替代 UML 图。起码 UML 图是面向对象的,E-R 图不能使纯粹的面向对象的,或者说,E-R 图并不能完全面向对象的思考。

    就比如,我现在有个测试的实体,包括测试信息(题号,题名,内容等)和多组测试用例。一定要注意多组测试用例。假如我们用 E-R 图进行思考的话,最终很容易提前走向纠结:多组测试用例到底是一张表还是和测试信息合成一张表?如果是一张表,总觉得对应现实中的实体很变扭;如果合并成一张表,那么多组测试用例要么分开保存,要么合并保存:分开保存必定有冗余性的问题;合并保存,那每组测试用例以什么作为分隔符怎么保存呢?似乎也不好,测试用例可能有多组分隔符。E-R 图非纯面向对象(至少我是这么认为的),所以不应该以 E-R 图作为需求分析阶段的图,还没有到达这种细化的地步。

    老师说的还是比较正确的,我也虚心接受批评。以后我要多认真学习一下软件工程了。

    前路漫漫,唯码作伴。

免责声明:文章转载自《毕业设计之感悟 —— UML 与 ER 图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用反射机制调用属性和私有成员与代理模式的介绍websocket实时监控画面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OO系统分析员之路用例分析系列(8)如何编写一份完整的UML需求规格说明书[整理重发]

 终于到了快结束的时候了,这将是用例分析系列的最后一篇,结果是得到需求规格说明书,以结束需求分析的过程。经过前面七篇的工作,我们从最初的业务用例获取入手,获得了业务用例模型,这是我们的业务范围;经过分析得到了业务场景,这是我们的业务蓝图;经过规划,得出用例实现视图,这是我们的系统范围;经过再次分析,得到了用例实现以及领域模型,包括用例规约,业务规则和业务数...

EA使用教程

一、Enterprise Architect简介 Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持...

UML绘图工具——PlantUML

1 简介 PlantUML是一个开源项目,支持通过简单直观的语言来定义以下UML图。 时序图 用例图 类图 活动图 组件图 状态图 对象图 部署图 定时图 支持生成图片格式有: PNG SVG LaTeX ASCII艺术图 (只针对时序图) 2 应用场景 在线使用。在图床网站上,使用文本语言生成图片链接。 离线使用 在IDE或者在线仓储中集...

YY博客园UML类图之博客模块

  UML建模YY系列:     YY博客园UML类图之博客模块     YY博客园UML时序图之博客模块     YY博客园UML用例图-活动图-状态图之博客模块   UML几年前就接触过了,那是的学习也可为不求甚解。只知道UML是个建模的,画画图;类图、用例图、时序图和活动图神马的;学了也就学了,一直没怎么用。最近又温习了一遍UML建模方面的知识,总感...

[转]软件工程七大原理

软件工程七大原理: 一、按软件生存周期分阶段制定计划并认真实施; 二、逐阶段进行确认; 三、坚持严格地产品确认; 四、使用现代程序设计技术; 五、明确责任; 六、用人少而精; 七、不断改进开发过程。          这是美国TRW公司的B.W.Boechm在1983年总结了该公司在12年内、总共花了15000人年、先后开发五代指挥控制软件的经验,得出了以...

《实时控制软件设计》之Automation Studio开发环境

Automation Studio是贝加莱公司的控制软件开发平台,软件可运行在贝加莱的基于PC的控制器上,基于Automation Studio我们可构建一个完整的控制软件构建、测试和仿真运行平台。本文以一个简单的例子介绍用Automation Studio进行基于C++的控制软件开发环境搭建和仿真运行。 我们的目标: 1)用C++写一个用户程序,该程序被...