在討論四色原型之前,我想先狗膽討論下什么是我所認識的“世界”?
我覺得世界由物質及其相互作用組成。“物質”是不以人的意識為轉移的客觀存在;而“相互作用”則是我們平時所理解的各種活動,比如人與人之間的交談,打架,等等。還有一點需要特別分析一下,那就是“何為客觀”?我覺得客觀是一個相對的概念,可以這樣簡單的理解:如果A沒有修改B的權利,也就是說B不以A的意識為轉移,則認為B是A的客觀存在;反之,則認為B不是A的客觀存在。
舉個例子,一家軟件公司為一家金融機構做一個金融領域的軟件。該金融軟件需要滿足一些和金融領域相關的一些業務規則。那么業務規則相對于這家軟件公司來說是否是一個客觀存在呢?回答是肯定的。為什么,因為這家軟件公司無法修改該業務規則,也就是說,金融行業的業務規則是不以軟件公司的意識為轉移的;那么金融行業的業務規則在任何情況下就一定是客觀存在了嗎?不是!因為金融行業的業務規則是由全人類想出來的,只要全人類說我們要修改這個業務規則,那它就可以被修改,也就是說金融行業的業務規則相對于全人類來說是主觀的,而不是客觀的。因為全人類可以修改該業務規則。
四色原型是什么?我覺得它是幫助我們分析物質世界中各種活動的一種科學的方法論。關于什么是物質世界我上面已經討論過了,下面看看我所理解的四色原型是什么樣子的:
舉個例子,有一個人叫張三,如果某個外星人問你張三是什么?你會怎么說?可能會說,張三是個人,但是外星人不知道“人”是什么。然后你會怎么辦?你就會說:張三是個由一個頭、兩只手、兩只腳,以及一個身體組成的客觀存在。雖然這時外星人仍然不知道人是什么,但我已經可以借用這個例子向大家說明什么是“Description”了。在這個例子中,張三就是一個PPT,而“由一個頭、兩只手、兩只腳,以及一個身體組成的客觀存在”就是對張三的Description,頭、手、腳、身體則是人的本質的不變的共性的屬性的集合。但我們人類比較聰明,很會抽象總結和命名,已經把這個Description用一個字來代替了,那就是“人”。所以就有所謂的張三是人的說法。
用一句話來概括四色原型就是:一個什么什么樣的人或組織或物品以某種角色在某個時刻或某段時間內參與某個活動。 其中“什么什么樣的”就是DESC,“人或組織或物品”就是PPT,“角色”就是Role,而”某個時刻或某段時間內的某個活動"就是MI。
我覺得世界由很多的物質及其相互作用組成,而我們平時所說的軟件則是一個由我們人類根據主觀意識設計出來的對一個客觀世界的一個虛擬映射。比如我們在做一個圖書管理系統時,會分析需求,需求來自于客觀世界。我們會將需求分析的結果用代碼來實現。所以,我覺得因為世界由物質及其相互作用(即活動)組成;那么需求就是由虛擬的物質(OO中的對象)和虛擬的物質之間的相互作用(OO中的對象之間的交互)組成。所以可以引導出:當我們要設計一個軟件時,主要的任務就是要弄清楚該軟件由哪些對象組成,以及由哪些活動組成,并且重點應該是要分析出有哪些活動,一切設計的最原始需求都應該以為了完成某個活動為目標。那么該如何來理解和分析這些活動呢?比如假設一個圖書管理系統中有100個活動,只要實現了這100個活動,那這個系統就自然完成了。那么如何用科學的方法來分析這些活動呢?答案之一就是我們可以用上面提到的四色原型的分析方法來分析。即我們總是可以用這樣的方法來分析每一個活動:一個什么什么樣的人或組織或物品以某種角色在某個時刻或某段時間內參與某個活動。
當我學習了四色原型后,雖然我不能確定它一定是科學的正確的認識世界的方法論,但至少可以讓我在分析軟件需求時有一種可選擇的方法可以參考。而這已經夠了,因為之前我根本沒有任何方法可以參考。 接下來我準備學習DCI架構,一旦學的差不多了之后,就會用這兩個新的武器來分析和設計一個論壇。分析論壇的業務邏輯用四色原型來做,而設計則用DCI架構來做。相信這會是我近期的一個正確的并且有意義的目標。
以下是關于四色原型的一些學習資料,僅供大家參考:
http://www.jdon.com/mda/archetypes.html
http://www.jdon.com/mda/archetypes2.html
http://www.rzrgm.cn/ego/articles/1384212.html
http://knol.google.com/k/object-modelling-in-colour#Class_Archetypes
浙公網安備 33010602011771號