我的设计习惯:UML设计之包设计

       我开始使用UML来辅助软件设计,记得是2005年4月开始的,因为当时的公司使用rational rose。后来摸过JBuilder里的UML功能,太慢;做Java开发时,使用Elicpse,也摸过里面的UML功能,也太慢;后来使用EA,这个专门做UML设计的工具,安装很小而速度是很快的,界面风格类似微软的VS,我用很长一段时间,可以说基本上一直在使用,但有一点让我不爽的是字体不好调整。现在在公司我使用的是Sysbase公司的PowerDesiger来做设计,一个原因是很多同事会PowerDesiger,而不会我熟悉的EA----顾全大局,不能因为我是主管就要求大家使用我自己最熟悉的EA;另一个原因是PowerDesiger做数据库设计很好,而它的UML部分功能也不弱,UML设计和数据库设计能使用同一个工具来设计,当然最好了,不用安装那么多东西。而我现在在家里使用的,是JUDE的免费版,好像是日本鬼子的,Java开发出来的,速度还不错,不是那么慢。
       由于UML语法比较复杂,刚开始使用两年多,根本不习惯使用,不知道怎么用UML表达我的设计,也不知道什么时候用UML的某个功能点。不习惯和不知道怎么用,我想是很多使用UML来做设计的人的感受吧,动不动就想回到微软那个工具去。好在我一直坚持下来,记得使用到三个半年头的时候,发现自己慢慢喜欢上了UML,也知道什么时候用什么UML功能点来表达自己的设计了。
       我感觉对怎么正确使用UML来表达设计,不必死死遵守书本上的教条,主要看是否能表达你的设计思想。比如UML的包图,我买的几本书上都说,包图表达包,特别是拿java里的包来说明,在这个方面比较强调。我是Java和C++都开发,就从来不用包图来设计java的包,没必要那么细。我一般会用包图来设计系统的总体架构,感觉把包图用来表达子系统或层或模块,比较适合。
        包图用来设计系统架构,包表达三个部件:子系统、层、模块,很好的表达了系统的各个点。
        包之间的依赖关系,是我们找到各个包之后,要分析清楚的,一个注意的是包之间不要出现循环依赖,一个例外是如果是同一层的包,也可以容许循环依赖。
        下面是一个简单的包图,我使用JUDE来画的,你可以看到包和包的依赖。其实设计过程中,刚开始就是这么简单,慢慢随着我们对系统理解深刻而丰富起来的。



 

你可能感兴趣的:(UML,JBuilder)