不知名小厂,老程序员来回答。
先说观点:像RUP那样繁文缛节的UML已经死了;但UML作为一种优秀的建模语言,仍然是程序员们沟通思考的利器。
UML的各种图当时被设计用于RUP的各个阶段。而RUP因为太重被业界抛弃,被敏捷过程所代替了。敏捷过程中的很多阶段不强调文档,注重的是代码、沟通、快速迭代;所以图也不那么正规,以草图居多。
但这不意味着UML也被完全抛弃了。
软件设计就是建模的过程。这个过程中使用一种建模语言来描述一种模型是常见的事。更别提UML是最完善的建模语言了。拿它一个子集来描述软件设计的模型并不是不恰当的。
就算是敏捷过程里,程序员之间用简化的UML交流可以降低沟通成本。
表现对象关系时,用UML类图来画(主要突出类的层级关系,公共成员。比如讨论设计模式时)。
多对象协作,异步调用,多方通讯等复杂的设计,用顺序图和协作图比较好。(比如,OAuth的文档)
多个系统之间有通讯,描述系统边界和接口,用组件图]是很好的选择。(比如表述RESTful的web构架)
RUP需求分析阶段,用UML的用例图来分析需求。尽管敏捷时代不再要求这样,但我一般在初期分析时,仍然经常拿用例图来帮助自己想清楚很多问题。(用户角色,系统边界,输入输出和副作用,核心业务的数据等。往往这些是比较稳定,在迭代中并不常常变化。)
最后,推荐两个极其轻便的UML工具:
http://www.ckwnc.com/ 顺序图DSL工具
http://yuml.me/ 用例图/类图/活动图DSL工具
敏捷讲究“活的文档”,我厂用wiki管理文档版本,而上面两个DSL工具正好是纯文本,适合帖到wiki里面。















网友评论