我写这个连载的初衷,不过是想向大家介绍介绍ICONIX建模技术而已,但鄙人有个毛病,念头一起就会像射线进入威尔逊云室那样,四散开了去,以至于主线是什么不太容易辨认。好在都是cndev的老朋友,也不是正经八百的写作出书,大家包涵着点就好,呵呵,哈哈。。。
像今天我要说的,其实根ICONIX没什么关系,我是想用这一段写写自己设计、建模的泛体会(泛者,一般也,广泛也,抽象也,反正不大容易说清楚)。
ICONIX也好,RUP也好,都是一套规则,诸位如果看过有关RUP的书,大多都讲到软件生命周期、开发周期什么什么周期的,然后讲述步骤,先怎么怎么样,然后怎么怎么样,似乎一切井井有条,未免窃窃心喜:也没什么难的,只要照着做,俺也能成功。等到动手来干点什么,猛然间发现千头万绪,无法下手,根本无法照着书里介绍的一步一步往下做。
这是为何?答案恐怕翻遍整个书店也找不到,原因其实很简单:它们都只告诉了你做法,却没有告诉你想法。
做和想,是两个不同的行为,通常来说什么样的想法决定什么样的做法,但是什么样的做法却不一定要有什么样的想法。愚夫愚妇,见人念佛,学而时习之,表面上看上去像模像样,实际效果大大不同,得道的通常都是高僧,大部分职业和尚除了能混碗饭吃以外没什么大用。
现在我们抛开ICONIX、RUP中和建模无关的东西,单论建模设计,可以明确地说:这两者在做法上没有任何不同,不同的只是想法,即所谓哲学思想不同。用个武侠小说的说法,ICONIX是自外而内,乃是降龙十八掌,RUP则自内而外,乃是一阳指。ICONIX一开始就是以用户界面为导向来驱动整个工程,这和RUP有很大不同(抱歉,这里我说不出RUP的设计思想,因为我对RUP没多大研究,只是泛泛看了看而已,只能肯定RUP不是UI驱动的)。鉴于这个特色,ICONIX特别适合RAD开发者,你用Delphi、VB什么的搞个UI驱动多容易,要让C++搞UI驱动那不是强人所难嘛。
回到建模和UML来说,ICONIX和RUP两者其实根本是一样的,ICONIX用到的Use Case、Class Diagram之类的东西不会和RUP有什么不同,设计方法也没有差异。所以这方面的内容我基本不会讲,上街随便买本书大堆大堆都是。我以后的部分,大多数都是ICONIX特有的想法和做法。
让我再稍微跑一下题,谈谈UML的问题。很多书籍资料都介绍了如何使用UML,什么步骤什么规则之类的,我要提醒一下:设计没有规则,建模没有步骤。噢,千万不要误会我的意思,我不是要天马行空的胡乱设计,而是说不要受制于那些条条框框。比如说画画,来画一株梅花,没人规定要先画什么再画什么,先画枝干可以,先画花瓣也可以,只要最后画出来别人看得出来是一株梅花就行。UML也一样,先设计Class Diagram也可以,先设计Activity Diagram也可以。
不管是画画还是UML,都有一个前提,就是胸有成竹(这里用这个成语的本意)。画梅花的心里早就有了梅花的形象,而一个方案到需要进行UML设计的时候大致是个什么样子,设计者心中也早就有数。所以别指望着UML能无中生有,如果在准备做UML之前还没有成型的思路,那还是先放一放的好。
好了,今天的胡扯到此告一段落了,接下来我会逐步讲述ICONIX建模的过程,请注意,这些过程除去自然形成的次序外,所有的过程都是并行的。请大家牢记设计的完整性,软件设计和编程是完全不同的,它既不是自顶向下,也不是自底向上,而是一个逐步求精的过程,一开始它就应该是全面的,就好像IE显示GIF图片一样,从模糊到清晰,但从一开始你就能看到全貌,切记切记,不可偏颇。
最后,这些都是我个人见解,如有雷同实属巧合,欢迎持不同见解者加入讨论。
最最后,下章预告:域建模和发现类。

一沙一世界 一花一天堂 掌中握無……

网络编程技术、多媒体技术、PC应用技术

| 我爱研发网 | 中电华信 | 阿里西西 | JAVA爱好者 | 北京英才网 | 全球大学查询网 |
| 中国人的网站导航 | 中国电脑论坛 | 信息产业部 | 新浪科技 | 搜狐IT | 信息产业部电子教育与考试中心 |
| IT世界网 | 软件项目交易网 | 中国软件交易网 | 国信培训网 | 亚远景科技 | ....[更多] |