人生下来的时候不认识文字,但眼睛已经可以接受大量的图像信息。听说人眼得到的信息,占人得到总信息的40%以上。形象思惟是人的本能,它大量被运用于人的工做和生活过程当中,一样也贯穿于软件开发过程当中。用图交流是最有效的沟通手段之一,有时候你们争论半天,到白板前画几下就都清楚了。若是你想当一个好的传播者,软件设计师,用图来思惟和表达是必须具有的素质。 程序员
应该说,我通常主要以逻辑思惟为主,右脑形象思惟能力不好。这些图都是从我过去画的图中精选出来的,不是特别漂亮,但表达的目的性很强。下面,让我一一介绍给你们,但愿给你们启发。 架构
主要内容: app
1) 逻辑图 工具
目的: 表达高层概念之间的关系,通常是给客户看的。理解这种图形,通常不须要什么先验知识。 spa
表达:通常比较灵活,多以层次结构为主,画图能够尽情发挥想象力。 设计
重点:抽取主要元素,并描述他们之间的关系。 对象
用处:通常用在解决方案中,向客户演讲的第一张图可能就是这个。 blog
这幅图主要采用层次,立体的方式来表达。 继承
2) 功能模型图 生命周期
目的:描述软件系统的功能。
表达:通常以树形展开。
重点:重点是层次关系。
用处:解决方案和需求描述中。
3)系统用例图
目的:表达系统的参与者如何与系统进行交互,高层次。
表达:通常用用例框图,框图内能够是用例包或用例,角色能够继承,但不该太多,影响图的可读性。
重点:系统与干系人的交互,不必定全部功能都列在上面。
用处:通常用在解决方案和需求描述中。
4)架构图
目的:表达技术元素之间的关系,通常用在解决方案的技术架构中,也是比较高层的。
表达:方式不少,通常是层次模型。
重点:强调主要技术元素及其关系,突出使用的技术。
用处:解决方案,技术讲座,技术交流,技术培训。
这是我之前在公司设想的企业应用平台的架构图,主要是概念性的。
5)坐标图(这个名字是本身杜撰的)
目的:用于描述一个元素随另外一个元素变化的图。
表达:通常是两维的,表达方式为图表或坐标系。
重点:重点表达渐进关系。
用处:通常用于技术演讲,解决方案。
表示随时功能随多个迭代周期增长
表示随着阶段的进化,技术手段的变化。
6)UML包逻辑关系图
目的:表达开发设计阶段,高层的逻辑关系。
表达:排布要美观,线不要较差,散乱。
重点:简单,强调主要依赖关系,不重要的能够不画。
用处:设计文档,技术演讲和交流。
7)领域模型图,这个图是我认为最重要的,也是最有用的图。
目的:表达领域概念和概念之间的关系,和类图相似,但要高一个层次。
表达:UML元素来表达,注意和类图相比,这里通常不会有方法,概念通常用天然语言描述。表达要简洁。
重点:强调对领域的抽象。
用处:用于团队内部维持对业务领域的一致的理解,还能够和客户交流。
这是我整理的关于权限的领域模型。
稍微有点复杂,关于集装箱管理的。
8)UML类图
目的:用于描述设计时,类的关系。
表达:能够将类分组,提升可理解性。
用处:团队内部交流,高级程序员给初级程序员指导和设计时。
重点:强调类之间的关系,带上主要方法和属性。
9)泳道图(UML活动图)
目的:用于表达业务流程,比流程图更清晰。
表达:泳道之间最好用颜色标识,若是复杂,能够把相近操做用区域标识。
重点:表达流程的清晰性,可读性。
用处:描述业务流程,可用于需求,解决方案等。
10)UML序列图(时序图)
目的:描述步骤比较多的设计。
表达:步骤尽可能少,多了能够考虑拆分。
用处:详细设计。
评注:之前以为这个图挺好,如今感受太复杂,通常用不到。
这是一个伪单点登陆的步骤。
这个是有点像协做图,但比协做图生动,不少地方都在用这种方式。序列图和协做图是等价的。
11)UML部署图
目的:描述部署架构
用处:系统架构文档等。
12)状态图
目的:描述单个对象生命周期的变化状况。
用处:对象状态不少,变换复杂的状况。
13)脑图,之前同事推荐的,越用越顺手,整理思想太好了,我每次写文章都用它。
目的:整理零散的思想,造成条理。
用处:写文章,团队头脑风暴,我的也能风暴。
14)鱼骨图,主要用于根本缘由分析的。
其实还有不少图,好比tuti博客介绍的的影响分析图 ,也挺有意思的。
下面说说画图工具:
a) Visio. 我用的最多的就是它了,几乎图都是它画的,用起来简单方便,画UML图,比通常的专业UML画图的都好看(之前主要是跟Rose比)。也看到过不少漂亮的UML图,不知道用什么画的,你们知道的,分享一下啊。
b) MindManager和MindMapper。主要用于画思惟脑图的。
c) 另外之前用Together逆向生成不少uml图,也挺好看的。
d) 联想的best4c在线绘图工具 也不错,有空能够试一试。
e)前面那些工具都有,你也不必定画出比较好看并且表达简单明了的图。最强大的工具出场了,那就是google图像搜索,你能够输入“架构”,“struts2”,"osgi"等等关键字,一幅幅漂亮的图就出如今你的面前,让你灵感倍增啊。我平时作技术讲座,不少图都是这里搜的。
有些图可能看不太清楚,能够到个人相册里看,那里图更多更全。
但愿和你们一块儿交流用图思考和沟通的经验。