4 UML无法彻底全面描述用户的需求
图 8是采用全程建模方法组成结构树进行功能定义,它可以细致到原子工作步骤级,比如“签字入库”仍然需要手工进行。
图 8 采用全程建模方法组成结构树进行功能定义
采用UML无法对这种功能需求直观地定位,结果是开发人员好心好意地实现了电子签名,而客户却毫不领情,应为中国用户不相信计算机的签名,去掉这个功能也是一件麻烦事。
另外常常发生的情况是开发软件遗漏了大量用户需要的功能,如用户需要计算机自动核对“采购计划”中的“计划采购数量”与“入库单”中的“计划采购数量”,如果需求定位没有细致到这种程度,程序员如果没有经验或责任心不强,自然会忘记这些,那么在测试阶段或者系统上线运行后用户肯定会发现要求修改,改来改去的麻烦又会特别多,反反复复修改的工作量极大地加大了软件公司的开发成本。这是纠缠不清的胡子工程问题点之三。
5 UML是造成信息不对称的“功臣”
可以说UML为用户(甲方)与开发方(乙方)的信息不对称提供了“有力的手段”,双方都互占“便宜”,因为这种信息不对称不但表现在有关信息产品和信息技术的知识上,还表现在乙方对甲方的业务理解上。由于乙方对甲方的业务术语理解不一定全面和准确,有可能在乙方看来含义非常简单的一个业务功能在甲方的经典著作或国家标准中含义非常丰富,需要做大量的工作。这样在使用UML的情况下,乙方按照自己的理解与甲方签了协议,但真正实施时却必须按甲方的国家标准去实施,这种扯皮的事在项目实施过程中大量存在。在信息项目的对策模型中,很难说乙方就一定能在合同中处于优势。
由于信息化热潮的影响,许多公司纷纷进入IT项目建设市场,这些公司中难免有不少是属于鱼目混珠一类的,他们可以在报价中拚命地压低价格赢得标书,但在实际建设中却以各种手段欺骗用户,使用户蒙受巨大损失。还有一些很有名气的院校和公司承接IT项目建设业务之后,由于各种业务量太大,对其中一些中小项目投入精力不够,雇请一些新手作项目,囫囵吞枣,出了问题要么说用户当时没有说清楚,要么说用户水平太低不会用。
即使乙方很勤奋,将方案做得很先进、很完美,充分考虑各模块的设置,也重视信息安全等问题,在使用UML的情况下,因为UML存在的种种问题,仍有可能因为乙方对甲方业务信息的理解能力不够,而使得乙方的方案和产品偏离甲方的真实需求。
二、UML下不着地——无法提供直接到位的素材指导程序员编程
所谓“下不着地”是指费尽心力地使用UML建模后,很难让处于软件开发下游的程序员直接接受去编程,因为UML的表达方式不直接支持详细设计,程序员还得费尽周折地琢磨如何把建模结果转换成程序代码,这种情况造成了软件开中的第二个隔阂,是UML的第二大硬伤。
与现代编译器对接的是结构化程序设计,如伪代码、PAD(问题分析图),前者为80%的美国公司使用,后者为80%的日本公司使用。伪代码的优点是从语法结构上与通常的高级语言非常接近,PAD由于可视化的特点十分便于人的理解,在图 9中,全程建模方法建立了这两种详细设计的联系,可以轻松地将PAD转换成伪代码。
图 9 采用全程建模方法PAD图描述的模块级流程与伪代码
文章来源于领测软件测试网 https://www.ltesting.net/