软件开发的历史就是源代码(也就是人脑需要编辑的介质)的形式一直在升级的历史,从最初的机器语言到汇编语言、过程式高级语言到现在流行的面向对象语言。“模型就是源代码”不是可不可能的问题,而是合不合算的问题。真实世界中,涉众对许多系统的质量要求并不高,电商网站、银行系统出个故障,人们习以为常,能够接受,反正出了故障再恢复呗。这样的系统,充分的建模没有必要性。同时,也没有可能性,因为类太多,工期不允许为每个类画状态机。这类系统,只需要对关键的类充分建模。如果做一个心脏起搏器,对质量要求非常高,通过充分的建模尽可能减少人工编码导致的偶发错误是必要的,而且也是可能的,因为类的个数少。但是,UML的最重要的意义不在于生成代码,而在于前面的工作流!
我从年开始专门从事研究和推广UML的工作,在为软件组织提供UML相关需求和设计技能服务时,经常会发现软件开发人员对UML建模存在种种误解。我归纳了最典型的八个误解加以剖析。
误解一:UML是开发团队用来和客户沟通的
UML模型是开发团队内部高效沟通的手段,但不是用来和涉众沟通的。拿音乐中的五线谱类比,五线谱是音乐专业人士交流的工具,作曲要懂、编曲要懂、乐手要懂、指挥要懂、歌手要懂(注意:是懂五线谱,不是人人都要用五线谱作曲),但听音乐的人不需要懂。UML只是在“软件开发人员”圈子里面的统一表示法,强迫开发人员思考,改善开发人员的交流,表达软件开发的模型。
另外,“和客户沟通”的说法本身就有问题,因为“客户”不是一个人,而是一个组织,里面有不同角色和岗位的“涉众”。他们的学历职位有高有低,年龄有大有小,北京看白癜风哪家医院专业四川白癜风