UML是一种画图的方法。它用来描述软件的样子。软件设计需要沟通。UML就是沟通的工具。它像建筑图纸。盖房子需要图纸。做软件也需要图纸。UML就是软件的图纸。
UML有很多图。每种图用处不同。类图表示系统结构。它画出不同的类。类之间有连线。连线表示关系。关系有继承有关联。类图很重要。程序员直接看类图。他们就知道怎么写代码。
顺序图表示交互过程。它画出对象之间传递消息。时间从上往下走。顺序图看行为。它展示一个操作的具体步骤。测试人员喜欢顺序图。他们根据顺序图设计测试用例。
用例图表示系统功能。它画出用户和系统的互动。用户叫做参与者。功能叫做用例。用例图很简单。它让人一眼看懂系统能做什么。项目经理和客户看用例图。他们讨论系统范围。
活动图像流程图。它表示工作步骤。动作用圆角矩形表示。判断用菱形表示。活动图描述业务流程。它也可以描述算法。业务人员能看懂活动图。技术人员也能看懂活动图。
状态图表示对象状态变化。一个对象有不同状态。事件引发状态改变。状态图描述这种变化。它适合复杂对象。订单就有状态图。订单有新建状态、支付状态、发货状态、完成状态。状态图清晰展示状态流转。
组件图表示软件部件。它展示物理代码结构。包、库、文件都是组件。组件图描述它们的关系。部署图表示硬件结构。它展示服务器、设备、节点。组件图和部署图用于系统部署。运维人员需要这些图。
UML有历史。上世纪九十年代出现。当时方法很多。三个人统一了方法。他们是布奇、雅各布森、朗博。他们提出统一建模语言。这就是UML。对象管理组织采纳UML。UML成为标准。很多工具支持UML。比如RationalRose、EnterpriseArchitect、Visio。现在有更多工具。甚至在线工具也能画UML。
学习UML需要参考书。有很多好书。格拉迪·布奇写书。他写了《UML用户指南》。这本书很详细。它解释每个概念。它有很多例子。初学者可以看这本书。这本书是经典。
马丁·福勒写书。他写了《UML精粹》。这本书很薄。它讲UML核心内容。它不面面俱到。它讲最常用的部分。很多人喜欢这本书。它适合快速学习。它已经出到第三版。
克雷格·拉尔曼写书。他写了《UML和模式应用》。这本书很厚。它讲面向对象分析设计。它用UML表达设计。它结合设计模式。它是一本全面的书。学生和工程师都读这本书。
还有一本《UML参考手册》。这本书像字典。它完整定义UML元素。它不是入门书。它是工具书。你遇到不明白的符号。你可以查这本书。它由UML创始人编写。内容很权威。
有些书讲实践。比如《UML风格》。它讲画图的好习惯。它建议线条怎么画。它建议文字怎么写。它让图纸更整洁。它让图纸更好懂。这本书很实用。
有些书结合具体语言。比如《UML与Java》。它展示如何用UML设计Java程序。程序员觉得这种书有帮助。他们看到UML如何变成代码。这加深他们的理解。
UML图用工具画。工具能生成代码。工具能反向生成图。你写代码。工具读代码。工具画出UML图。这很有用。你修改代码。图自动更新。这节省时间。工具也能检查错误。工具保证图符合规范。
画UML图有原则。不要画太多图。只画需要的图。图要简单。图要清晰。图要有目的。每张图解决一个问题。复杂的图分几张画。图附上文字说明。文字解释图中难点。
团队需要统一标准。大家用同样的符号。大家用同样的风格。这样沟通顺利。一个人画的图另一个人能看懂。标准很重要。团队定好标准。大家遵守标准。
UML不是万能。它只是工具。它帮助思考。它帮助表达。它不能代替思考。设计在设计师脑中。UML把设计画出来。画图过程可能发现问题。画图促使设计师想得更仔细。
有人批评UML。他们说UML太复杂。他们说很多功能没用。他们说敏捷开发不用UML。这些说法有道理。UML确实复杂。但是你可以只用一部分。你用你觉得有用的部分。你不用全部UML。敏捷开发也画图。他们画简单的图。他们画在白板上。他们讨论完就擦掉。他们不追求完美图纸。他们追求快速沟通。UML可以简单用。
学习UML要动手。你找一个小项目。你为它画图。你先画用例图。你列出系统功能。你再画类图。你设计类结构。你画顺序图。你描述重要操作。你多画几次。你就熟悉了。
画图时思考用户。谁看这张图?开发人员看类图。他们需要技术细节。客户看用例图。他们需要业务功能。图的内容因读者而变。给开发人员的图可以复杂。给客户的图必须简单。
UML在变化。UML有版本。现在常用UML2.5。新版本增加新元素。新版本改进旧元素。你要关注变化。你学习新版本。你使用新功能。
UML与其它方法结合。比如敏捷方法。比如DevOps。UML在持续集成中起作用。设计图纸指导开发。自动化工具利用UML模型。这提高开发效率。
学校教UML。软件工程课程有UML。学生做课程设计。他们用UML画设计文档。他们学习建模思想。这培养他们的设计能力。工作面试可能问UML。公司考察设计能力。UML是常见的考察点。
画图有常见错误。一个错误是画得太细。图包含太多细节。图变得混乱。另一个错误是画得太粗。图缺少重要信息。别人看不懂图。你要找到平衡点。你提供足够信息。你不提供多余信息。
团队评审图纸。大家坐在一起。大家看同一张图。大家提出问题。大家修改设计。评审提高设计质量。评审统一团队认识。评审是重要活动。
文档包含UML图。设计文档有UML图。需求文档有UML图。维护文档有UML图。图纸传递知识。新成员阅读文档。他们看图纸快速理解系统。图纸降低沟通成本。
UML未来会发展。软件开发在变化。UML也会变化。它可能更简单。它可能集成新概念。但核心思想不变。核心思想是可视化建模。这个思想一直有用。
参考书是学习的重要途径。你读一本好书。你少走弯路。你建立正确概念。你掌握有效方法。前面提到的书都是好书。你可以选择一本开始。你坚持读下去。你一边读一边画。你就能学会UML。
记住UML是工具。工具为人服务。你用UML表达想法。你用UML与人交流。图纸清晰,想法就清晰。想法清晰,软件就做得好。这就是UML的价值。
上一篇:翻译专业论文答辩开场白