Getting started
http://www-128.ibm.com/developerworks/webservices/library/ws-oo-design1/index.html
A rabbi boarded a train, one on which he often rode and one whose conductor, therefore, recognized him. The rabbi reached into his coat pocket for his ticket. Not finding it, he began a search of his belongings. The conductor stopped him: "Rabbi, I know you must have the ticket somewhere. Don't bother searching now. You can send it later, when you do find it." But the rabbi kept searching. When approached by the conductor yet again, the rabbi replied: "You do not understand. I know you trust me for the ticket, but -- where am I going?
这是作者其中引用的一个例子,说一个学者经常乘坐一列火车,车上的售票员也认识他,一次学者怎么也找不到票,因为售票员也认识他,就跟他说不用找,没事的。那个学者还是在那里不停的找,售票员说我都不介意你干嘛还要急着找呢?学者说:"你不明白的.我知道你相信我。但是--没票我不知道自己要去哪?"。大汗!
其实挺牵强的,不知道怎么不问conductor?!
其实作者想说的是很多人都在那里乐此不疲的用derivation,class hierarchies,UML,JAVA。但他们不知道为什么要去用?说到底就是缺少OO理论的基础。很多人都是在那里跟风。
First, at its core, object orientation is not at all about derivation, class hierarchies, UML, Java technology, and so forth. These are tools that the OO designer puts to use in order to structure the analysis, the design, and the implementation, but they aren't central to what makes an OO program object-oriented.
All too many projects fail because they begin without a clear idea of where they're going. The OO process tries to solve this dilemma by defining the problem to be solved as its first step; it will take me a few columns to do that in sufficient detail so that the actual analysis and design phase can proceed. That is, before you can analyze, you have to have something to analyze.
Beginning to design software
http://www-106.ibm.com/developerworks/webservices/library/ws-oo-design2/index.html
Refining the problem definition
http://www-128.ibm.com/developerworks/webservices/library/ws-oo-design3.html
Verifying the analysis
http://www-106.ibm.com/developerworks/webservices/library/co-design4.html
Use cases, an introduction
http://www-128.ibm.com/developerworks/webservices/library/co-design5.html
Use cases applied, Part 1
http://www-128.ibm.com/developerworks/webservices/library/co-design7.html
Use cases applied, Part 2
http://www-128.ibm.com/developerworks/webservices/library/co-design8/index.html