要用好UML,你需要在平时多多培养下面的能力:
1. 书面表达能力。
2. 归纳总结能力。
3. “面向对象”的思维能力和抽象能力。
平时你可以利用各种机会来提升第1和第2种能力,如多写写项目文档、写写日记或博客等,多思考和总结平时自己的工作得失等。
第3种能力说起来有点虚,大家在大学中可能也学过相关知识。训练这种能力的最好方法就是多应用类图,我们将会在类图的章节再重点介绍,通过实例来体会什么才叫“面向对象”!
本书将会重点培养你的这三种能力,只要你有进步之心,多练习、多实践、多思考、多总结,一定会取得长足进步!
1.5 小结和练习
小结
本章的主要目标是让你不需要阅读全书的情况下,就可以了解到UML的全貌,大概知道UML各种图的用途,同时给你说明学习UML的难点,为最终活用UML做好准备。下面我们一起来复习一下本章的主要内容:
UML是Unified Modeling Language的简称,是软件开发界的一套标准,UML不仅可用于软件设计,也可以用于软件需求分析。但UML并不是强制标准,我们应该善用包括UML在内的各种标准来提高我们的水平。
UML可分为两类:结构型、行为型,结构性的UML有:类图、对象图、构件图、部署图、包图,行为型的图有活动图、状态机图、顺序图、通信图、用例图、时间图。
类图是业务概念模型分析的有利武器,也是面向对象分析能力的强有力训练工具。
对象图在需求分析工作中并不常用。
构件图、部署图是分析IT基础架构、软件架构等方面需求的有利分析工具,但需要你具备IT基础架构、软件设计方面的知识和经验。
包图可用来组织类图,在需求分析工作中应用的机会不是很大。
活动图、状态机图、顺序图是分析业务流程的强力武器。活动图的表达思路与流程图很类似,很容易掌握,而且大部分情况下都可以使用活动图来分析业务流程;某流程如果是围绕某个物品进行,该物品在流程中转换多种状态,那么使用状态机图来分析是首选;用顺序图来分析的好处是能清晰表达整个过程所参与的角色,角色与角色之间的关系,各角色是如何被卷入这个过程当中的。
通信图可以看作是顺序图的另外一种表达形式,顺序图更强调先后顺序,通信图更强调相互之间的关系。而从我的工作经验看,顺序图更加实用一点。
有人会将用例图称作“公仔图”,用例图表达的是什么角色通过软件系统能做什么事情,我们可以使用用例图系统地表达软件系统的绝大部分需求。
时间图是表示某东西的状态随时间变化而变化的一种图,我在实际工作中很少有机会能用到这种图。
学UML之难,不在于学习语法,避免陷入UML的认识误区,多练习、多实践,培养良好的“think in UML”思想,锻炼面向对象分析的能力,成为活用UML的需求分析高手不远矣!
练习
1. 请你根据自己的实际情况,填写“你的UML斤两”调查表,此表能帮助你认识自己的UML水平。
选择最接近你情况的选项填写下表:
A. 还没有听说过该UML图,就算听说过也不了解具体情况。
B. 了解该UML图,但还没有在实际工作中应用过。
C. 在实际工作中能看懂这种UML图。
D. 在实际工作中能画出该UML图。
E. 对该UML图非常熟悉,能在工作中熟练运用。
F. 对该UML图非常熟悉,能在工作中熟练运用,而且能指导别人在实际工作中活用此UML图。
表 1.2 你的UML斤两调查表
2. 根据上题的调查情况,请你为自己设定UML的学习目标。
3. 书面表达能力是很重要的一种能力,良好的书面表达能力能让你更好地学习和应用UML,此题目训练和测试你的书面表达能力。下面题目请至少选择一题完成:
a) 选择你最熟悉的一个项目,简明扼要地描述出该系统能做什么事情。
b) 总结你最近一个月的主要工作,简明扼要地表达出来。
c) 总结你最近一个月的学习情况,简明扼要地表达出来。
将你的总结给至少一位不了解你总结内容的朋友看,你不要加任何解释,看看你的朋友能不能读懂你写的内容。根据你朋友的反馈,思考如何改进你的书面表达能力。