提到Rational Rose,大家第一個想到的詞語應該是“建模”,建模的確是Rational Rose 的精髓之所在,通過可視化的建模手段,將抽象事物和客觀世界聯系了起來,這樣我們對問題的有了更加清晰的認識和了解,對問題的解決方法的設計有了更加明了的結構和思路,以及能對問題解決的研發過程中遇到的錯誤有了更好的定位、查找和解決的方法。當然其特點、優點不是一時半會能說的完,說的清的,而本文目的也不在此,故就不再說下去了,感興趣的話,可以找些相關的資料看看。
從字面上來看除了多了一個Realtime——實時,嵌入式這個或許更加普及一點,其他基本沒區別。那麼我們先看看它們的聯系:
說到建模,需要提及一下UML(Unified Modeling Language),我想很多初學者和我一樣,只知其名,不知其實。不過因為時間的關系,我們還是先任這個狀態繼續下去。因為UML並非是為一個專門的領域設計的,它所要面向的范圍很廣,比如說,建築領域如果有需要也是可以拿來用的,正是因為這個特點,當初設計的時候,就將它設計成了一個open-ended型(這個open-ended,我一時想不出來怎麼翻譯,歡迎指教)以便擴展。那麼Rational Rose就是在UML的基礎上,增加了軟件開發的一些術語、規則的一個建模軟件。了解了這個,應該就知道加上Realtime之後對Rational Rose所做的改變了——就是增加了Realtime system的術語、規則(Real-Time Modeling Library),當然這是在UML上做的一些改進,並不是全部。
為了支持Realtime System,Rational RoseRT 增加了很多重要的東西,兩個相當重要分別是:Capsule 和 Port.
Capsule 封裝體——新概念,這是模型的一個非常基礎單元,built-in light weight concurrent objects,這是其定義,內置輕量級的並發對象。按照我不成熟的理解,一個就是一個特殊的類,特殊在什麼地方,通過對Capsule中的 Statement Diagram 和 Structure Diagram 做定義,它封裝了系統中一些獨立的控制流,由若干個封裝體及其子封裝體就組成了一個Realtime System的整體活動。
Port,因為封裝體的方法和成員是私有的,對外交互就依靠Port了,這也是封裝體的特殊之處。
RoseRT也提供了很多Realtime System 開發的庫包、測試工具及部署工具,等等,這樣只要添加一個編譯器,那麼整個軟件的開發就可以只在RoseRT上運行了,極大的方便了團隊合作開發。
最先接觸Rose的時候,很抵觸,對我這種小手工作坊式的軟件開發,使用這個工具多數畫蛇添足,就想建築一樣,你想把某個牆面刷的平滑跟這棟樓的整體結構關系關系並不大。在進入公司之後,發現在大的項目上使用了ClearCase + RoseRT,可以非常很短的時間裡熟悉需求和系統的結構設計,這樣為團隊開發就提供了很好的平台。