專家指導 如何選擇合適的UML建模工具
本節繼續向大家介紹UML建模工具選擇的標準,掌握了標準你就會選擇出比較合適的UML建模工具,從而更好的完成工作,希望本節的介紹對你的學習有所幫助。下面我們一起來看一下UML建模工具選擇標準吧。
健壯性(Robustness)
你的UML工具需要象巖石般堅固可靠,以防止設計期間工具崩潰而使用戶的時間和生產率在不知不覺中損失,或者在模型沒有備份的情況下崩潰。我們曾親眼見過許多領先的工具因為崩潰或文件損壞而引起數小時的工作成果丟失。如果你是一位開發人員,你知道那種因“生產率高的軟件”反而比粗糙的代碼工具生產率要低而產生的蔑視感覺。如果你是一位經理,你會看到被要求使用一種不可靠的工具時開發人員的憤恨。
今天,健壯性常被發現于用Java實現的應用程序(JVM運行時保護)或開放源碼的項目(在web范圍內并行調試)。發現某種特定的UML工具是否健壯的最快方法是在comp.object等新聞組四處詢問,你一定會聽到許多抱怨的!
可用于此處的另一個策略可以借鑒有效率的辦公應用程序,我們也推薦工具開發商采用這種策略。該策略就是讓UML建模工具每隔一定時間間隔就在背后自動保存模型。
平臺
為了使你在建模工具上的投資得到最大回報,請慎重地考慮工具將運行在哪種平臺上。你需要為Windows還是Unix開發軟件?還是二者都要?將在哪種平臺上開發?
最近的各種事件一起推翻了這個神話:一流的跨平臺圖形用戶界面還不能實現或者擁有一個"最少共同支配者"的視感。很長時間以來,這是不可能的(除了基于HTML的應用程序之外),直到最近Java的Swing用戶界面的出現。但是,跨平臺工具需要在Linux等常用平臺得到支持,以大規模地被程序員們采用。
Sun最初幾乎沒有做什么事情來促進Java在Linux上的應用。但最近工業界元老們,主要是IBM,IBM保證在他們所有的硬件平臺上為Linux提供無限廣泛的支持,并支持Apache/Jakarta項目,IBM現正快速地在Linux上推廣Java。也許因為IBM已經開始為主要的Linux廠商發放它的JDK1.1.8版本,Sun被迫支持在Linux上的全功能JDK1.2(帶Swing的Java2)的發放。通過Blackdown小組的努力,這個Linux上的Java端口大部分已被完成。
迄今為止我們已經測試了一種Linux平臺上基于Swing的領先Linux工具,結果優秀。但要告誡的是:128M內存是必需的。
版本更新
你需要選擇一種將會不斷通過修正錯誤、改進性能、添加新特性來進行改進的UML建模工具,畢竟你在時間和金錢上進行了一項大的投資,而且改換到另一種建模工具并不容易。
小心那些已經被大公司擁有的產品。在兌現所有期權之后,最初的開發者常常會離開公司,尋找下一次大的機會。尋找有才能的、能讀懂和維護最初并非由其編碼的軟件復雜模塊的程序員并不容易。這種場景也會出現在開放源碼項目上。
如何能知道一種產品是否在改進?向銷售代表詢問下一版本發放的詳細時間表以及該產品將來的藍圖。密切觀察產品改進和添加新特性的速度。產品計劃什么時候支持UML1.3?圖形界面是否支持最新的流行樣式?你也可以看看該公司的網站:如果產品發布和外界評論是舊的,就是可疑的。#p#
未來...
現在我們來看看對未來有什么希望。建模工具的當前成熟程度表明,工具廠商準備通過添加高級特性來使產品達到新的高度。我們希望在下一代產品中看到以下特性的出現。
集成編輯器
在模型的迭代開發過程中,將UML圖表和相鄰窗口的源代碼匹配,是非常有效率的。支持這種視圖協調的產品可以給模型設計者的工具箱添加一個額外的功能選項,以直接給建模工具添加強大的源代碼編輯特性。當UML建模工具不必作為設計者的首選編輯器時,能夠在代碼里直接更改方法的名字或原型,并立即反映到模型中。
最想要的特性是類似emacs等流行編輯器的鍵盤仿真,另一個熱門特性是通過改變顏色來突出語言關鍵字,注釋等等,提高了代碼的易讀性。一個重要特性是在類圖中選擇一個類、屬性或方法時跳轉到匹配代碼行的能力。最重要的是,編輯器應該是快速易用的。
作為變通的方法,另一種解決方案是允許建模工具和開發者喜愛的編輯器通信。例如,通過一個熱鍵,允許建模工具從當前活動窗口跳轉到伴隨編輯器的匹配代碼行。
自動生成
我們真正想在不久的將來看到的一個特性是,UML建模工具幫助產生交互圖和狀態圖的能力。
工作方式是:在一個已有的程序的執行過程中,建模工具應容易生成一個追蹤文件,目的是獲取對象間互相傳遞信息時的交互。產生追蹤文件后,建模工具將被用于分析該追蹤文件,以發現對象交互的模式。建模工具應允許用戶從一組類中選擇一個來分析,然后展示被追蹤文件記錄的每個類唯一的一套交互,允許用戶為模型選擇交互。最后,工具應能夠產生一張基于真實記錄對象交互的順序或協作圖。
很酷嗎?它并不象聽起來的那樣太過前衛。因為追蹤技術已經十分成功地應用在幫助開發人員追捕他們的程序中性能瓶頸的工具中。這類產品一個很好的例子就是KLGroup的JProbe,用于分析Java程序的性能。
使用同樣的技術自動產生狀態圖也是可能的。對以前描述過的順序的修改將允許用戶為狀態機里的狀態指定基類的名稱。建模工具將追蹤基類的衍生類之間的交互。從這種追蹤,建模工具能夠通過描繪每次被記錄的狀態遷移來創建狀態圖。
管理工具
如果你是項目經理中的一員,你最有可能想要能夠估量你的O-O項目進展如何。一個應被集成到建模工具中的很好的特性是能夠輸出模型信息到允許你追蹤項目設計和實現進程的工具中。由于它的通用性和可塑性,電子表格是實施這個解決方案的理想工具。項目管理工具也是理想的候選。
這個特性如何工作呢?在高層次,通常你想追蹤的是模型中的類和負責在這些類上工作的的人。你想知道什么時候有人開始在該類上工作,完成任務到了哪種水平。在下一層次的細節上,你想要知道每個類的方法。在這一層次,你可能想要知道哪種方法已經包括在交互圖中,或在實施階段,每種方法完成了多少代碼量。
要使這個特性起作用,你需要“敏捷”地更新你的項目管理信息。不象報表工具那樣總是從頭產生一個新報表,你只需要在第一次輸出所有東西。產生初始報表后,你的建模工具應該只被要求用新信息來修改你的管理工具。根據用戶需要控制的級別,UML建模工具能在輸出之前展現給用戶一個修改的清單。
建立一個項目管理鏈接的一個美妙的好處是,提供把分析和設計階段的完成日期作為目標的能力。具體方法是通過計算進展速度,并基于完成模型所需的剩余的工作,使用這個速度來計算預期的完成日期。
度量(Metrics)
當你的項目開始成熟時,你可能需要知道你的模型的度量。度量能在一個特殊的模型的生存質量上給面向對象分析員一些即時的反饋。一些感興趣的度量包括:類層次中的超類數量,每個類中方法的數量,每個類中屬性的數量,get/set的數量,方法重載的數量,每個方法的代碼行數,public、private和protected方法的百分比,每個類的耦合度(該類知道另外的類的數量),以及被注釋方法的百分數。
度量可以通過一個報表界面提供,或者,更好的是,通過一個到電子表格的鏈接,類似于前面描述的項目管理鏈接。#p#
SVG:矢量圖形
為達到真正的、標準化的矢量圖形輸出/輸入功能,UML建模工具廠商即將有一種選擇。W3C的可縮放矢量圖形(ScalableVectorGraphics,SVG)建議是可格式化圖形的一種XML語法,成熟的1.0版本規范已經進展到“最后預覽”階段(3/3/2000)。一旦被完全認可,你可以留意HTML瀏覽器廠商什么時候在他們的下一代瀏覽器中提供支持。
為什么是SVG?因為一套用這種矢量圖形格式輸出的UML圖表可以被鏈接到網頁上。“overtheweb”的UML設計文檔的讀者將能夠使用這種圖形瀏覽技術,如在瀏覽器內縮放和平移,來更輕松地瀏覽一張大的UML圖表。還有,和GIF格式圖形相比,這種格式將戲劇性地提高通過web加載大圖形的速度。請看今天MacromediaFlash的展示在瀏覽器中加載是如何之快,就可以證明這一點!
為了強調GIF圖形和可縮放圖形在出版環境中的強烈差別,我們準備了一個模擬,通過創建包括兩個類圖實例的AdobePDF文件,其中一張是輸入的GIF圖形,另一張是矢量圖形。你可以下載這個PDF文檔并在AdobeAcrobat中觀看。嘗試放大到很高的水平如800%或1600%,然后比較GIF圖形和矢量圖形的結果。這個實驗并非不切實際:你可能需要準備一張被縮放到一個可讀性提高的水平的演示圖。
下載GIF和矢量圖形對比的PDF例子文件.
為了展望UML和SVG的未來,我們也準備了一個使用SVG在瀏覽器中顯示類圖的演示。為了觀看這個演示,你必須首先為你的瀏覽器下載一個SVG察看器。我們推薦來自優秀的AdobeSVG站點的插件。這樣你就可以觀看用SVG顯示的圖形模型演示。
XMI:把所有東西捆綁在一起
對UML開發團體來說,對象管理組織(OMG)的XMI標準是最近最令人振奮的進展。XMI是一種有潛力最終允許在領先的開發工具之間無縫共享模型的交換格式。例如,與其在UML建模工具中書寫腳本來創建報表,不如讓用戶簡單地在開發時使用XMI輸出該模型,然后引入到一種特定的報表書寫工具中。事實上,這個范例將平等地、很好地應用到前面討論過的特性:O-O度量追蹤和項目管理。此外,自從XMI使用XML來表示模型信息,一批XML解決方案很快會出籠,例如為基于瀏覽器表示提供的XSL格式表和為搜索兼容性提供的XQL查詢工具。
XMI標準是復雜的,在被廣泛使用之前,它將需要時間來適應許多不可避免的兼容性問題(誰說標準經不起解釋?)。但是,既然XMI是由IBM和Unisys等領先的工業巨頭開發的,可以預期產品很快會出現。一直到用戶團體不斷要求廠商來驅動在UML工具中的XMI支持的需求。關于XMI的進一步信息,請看優秀的IBM網頁。
作為XMI如何投入使用的例子,請看我們的項目,轉換XMI到HTML.這個項目展示了XSL格式表如何能被用來產生UML模型的HTML翻譯。本節關于如何選擇UML建模工具介紹到這里。
【編輯推薦】