刚刚接触UML,不知道UML是不是JAVA的专利,没有找到其他语言的半点UML案例。
尝试用UML画了一下nodeclub-master,希望能助大家更方便的分析本社区的源码。
也是由于UML/JAVA的缘故,括号里注UML原在JAVA中的用法。
箭头标示依赖,(继承/实现)
实线表示依赖内部Module,(继承类)
虚线表示依赖系统Module/外部Module,(实现接口)
interface表示系统Module/外部Module,(接口)
Enumeration表示附加的数据类型,(枚举)
UML不是JAVA的专利,UML是一种更接近自然语言的计算机语言描述。通过UML的几种图,可以清楚的表达一个软件设计的思路。
如果你能再分模块画一下,应该就更清楚了。
真是惭愧,这jpg和SVG都是UML工具自动生成的
谢谢指点,分模块能说的更详细一些么?UML如何更适应Node.js呢?
这个nodeclub-master这么多文件,是一个人还是团队完成的呢?团队的话,如何安排任务,处理合作关系呢?也希望社区不要太专注于技术,多讨论一下node.js相关的软件工程吧。
- 你现在画的对应到UML是类图,类图是一种静态图,表示各个类之间的关系的。这个图很大,你可以分成多个部分画了来,而不是完全放到一个图里面。
比如:右下角的proxy/user和app.js没有什么关系,可以不用出现在一张图中。
-
另外,如果想继续用UML完善设计图,可以画顺序图和状态图,分别表示接口调用和数据流。
-
还可以画用例图,用来描述软件的设计需求是什么。
-
部署图,用来告诉我们这个软件图,如何单机部署,集群部署,如果实现多节点的通信。。。
-
UML定义中有9种图,是我们设计软件所常用的。一般中大型的项目(上千万投资的)都要求有完备的UML图。不过对于“个人网站”这种要求就变得不太现实了。
从学习的角度,当然整体做一遍,才能真正学会。
厄, 好强大