- 热门文章:
- · 软件工程师的年终总结
- · 企业品牌营销秘诀
- · 企业信息化不仅仅是“无纸化办公”
- · 无网不胜的中小企业网站建设
- · 我国企业电子商务经营战略的探析
- · 企业信息化的基础
- · 智慧型企业的必由之路
- · 五类信用不良企业上网公示
- · 企业信用上网公示
- · 乌鲁木齐市首家公司制孵化器诞生
- · 网上工行装上安全门
- · 张五常为微软说几句话
《程序员》高展专栏——…
|
UML三大“硬伤” 编者:此文在《程序员》发表后,引发了UML支持者的激烈讨论 讨论文章见:UML 谁的硬伤 http://www.csdn.net/develop/Article/13/13680.shtm 这种热烈的技术争论其实越多越好,但很重要的一点讨论者需要"独立思考并勇敢丢出论点。"
|
|
撰文/高展 本文从UML建模连贯性方面存在的问题,以管理软件开发为例,针对与UML模型衔接的上游、下游、模型内部关系三个方面,分析了采用UML建模造成的三大隔阂,希望与众多建模爱好者共同探讨。
一、UML上不着天——与用户/领域专家无法沟通获得真正的需求 对企业用户来讲,他们关心的是如何在其组织结构、业务流程、业务信息的描述基础上,定位企业的宏观管理水平的需求和微观管理操作的需求。 1 UML难以完整全面地描述企业的分工结构图 2是采用全程建模方法组成结构树描述的企业分工组成,它以直观、彻底、一目了然的方式将一个企业按层次地展现为部门、岗位、职责、步骤、直至原子步骤,如“核对数量、核对规格、签字、填写入库日期”等。 图 2 采用全程建模方法描述的分工组成结构可以细化到原子级工作步骤 图 3是采用UML的Use Case 图来描述组织结构,它只能描述到岗位职责,对岗位职责中的工作步骤无法描述。对业务的描述粗枝大叶,结果需求也是粗枝大叶,但用户往往不知道需要特别重视这一点,更不知道这种粗枝大叶会给项目带来灾难。这是纠缠不清的胡子工程问题点之一。
2 UML难以从宏观把控业务流程的完整与准确
图 5与图 6分别用UML顺序图和活动图描述的业务协作流程——“采购”,问题其一是用户需要左一眼、右一眼、上一眼、下一眼地对照两张图,费时费力,检查两种图时在所难免地会出现遗漏、不一致;问题其二是UML顺序图缺少条件分支的表达方法,表达内容不完整;问题其三是UML顺序图和活动图从形式上到内容上不存在等价关系。 3 UML无法从微观把控业务信息的操作过程
UML根本无法从微观上描述业务信息的操作过程,只能等到编程时再由有经验、责任心强的程序员去了解,这无疑于边盖楼边考虑在哪里开窗户,最后各种问题盘根错节,摁倒葫芦起了瓢。软件公司练就了不少救火高手,但不容否认的是充满了救火队员项目常常意味着灭顶之灾。这是纠缠不清的胡子工程问题点之三。 4 UML无法彻底全面描述用户的需求
采用UML无法对这种功能需求直观地定位,结果是开发人员好心好意地实现了电子签名,而客户却毫不领情,应为中国用户不相信计算机的签名,去掉这个功能也是一件麻烦事。 5 UML是造成信息不对称的“功臣” 二、UML下不着地——无法提供直接到位的素材指导程序员编程
另外,UML没有对系统级、模块级接口的考虑,这在大型复杂系统开发重视不可想象的,图 10采用全程建模方法中数据汇总图自动描述的系统之间的接口。
三、UML一盘散沙——没有在细微之处建立建模图形之间的联系 虽然UML有这样那样的问题,不过UML也是从版本0.9发展到现在的1.4版,我们期待UML的升级,但在将要发布的2.0版中却没有“改过”的迹象。 |
- · 华为的冬天(任正非)
- · 软件项目管理(CMM)经验…
- · 也许我就是那个“微软的…
- · 软件公司创业完全手册[一…
- · Project2000如何帮您管理…
- · J2ME编程最佳实践之屏幕导航
- · J2ME编程最佳实践之灵活的RMS应用
- · J2ME程序开发新手入门九大要点
- · 在J2ME程序中实现字符串分割
- · 在J2ME程序中实现声音播放
- · J2ME编程中时间处理全攻略
- · J2ME程序开发中随机数字处理全攻略
- · 在J2ME手机编程中使用字体和颜色
- · 用J2ME编写手机短消息发送程序
- · 用简单的J2ME程序测试MIDlet生命周期
- · 微软.NET手持设备开发工具包…
- · 初识 Smart Device Extensi…
- · Smart Device Extensions 入…
- · .NET手持设备开发工具包实战…
- · WindowsCE.net 4.1仿真环境…
- · Win32开发中最易踏上的地雷
- · Windows编程中的映射模式和坐标转换
- · Win32程序函数调用时堆栈变化情况分析
- · WINDOWS数据类型
- · 注册ActiveX控件的几种方法
- · 托盘编程
- · 串行通信与重叠I/O
- · WINDOWS下的低级音频函数介绍
- · 用键盘钩子在Windows平台捕获键盘动作
- · 开发AS/400应用系统
- · 加强客户端约束增强数据库完…
- · DIRECTX 5游戏强力制作
- · 用DirectDraw编写动画程序
- · 几种MAIL SERVER的功能应用…
- · 改变思路,从另一个角度使用…
- · 数据库的发展和现状
- · 移动Agent体系结构及迁移实…
- · Internet上的图像检索技术
