買了 Enterprise Architect Corporate Edition

前幾天 VP-UML 邁進了 6.4 版,
它在 Visual Modeling 的功能裡加入了對 design pattern 的支援,
不過限定 $299 的 Standard Edition 才能使用它,
$99 的 Modeler Edition 是無法使用的。

因為 VP-UML Modeler Edition 已經買了剛好十個月,
它一年份的 software maintenance 也即將到期了,
我也認真的考慮是否要順便支付 $240 把版本提升到 Standard Edition;
但是根據我的觀察發現,
Standard Edition 的確有很多我需要的功能,
像是 design pattern support、model transistor、CVS/SVN Repository 等等,
但是也多了一些我用不到的功能,
像是 code generation 和 reverse engineering,
之所以用不到是因為 VP-UML 在 Professional Edition 才支援跟 IDE 的整合,
才能做到 code/model synchronization,
對我來說不能做到 code/model synchronization 的 code generation 形同廢物,
所以我並不打算付 $299 買這種半殘功能,
而我相信這兩大項功能絕對佔據了這 $200 差價的 25% ~ 50% 的費用。

我向客服表達我認為 Modeler Edition 應該就是要提供完整的純 UML modeling 功能,
包含了 design pattern support 和 model transistor 等等的便利機制,
不然的話可以在 Standard 和 Modeler 之間加入新的 editions,
我可以用 $150 ~ $200 的價錢買到「純粹做 UML visual modeling」的 UML 工具,
但 Visual Paradigm 官方認為他們的 product line up 已經夠複雜了,
而且 $299 的 Standard Edition 已經是夠便宜的價位,
因此沒有必要在 Standard Edition 和 Modeler Edition 之間加入新的 editions;
其實我也知道他們應該是想要對客戶打心理戰來誘使客戶將軟體版本升級,
所以才會故意把 Modeler Edition 和 Standard Edition 都弄成半殘,
每個 edition 放進一些半殘的功能就能誘使客戶購買更完整的版本,
可以說是相當機車的奸商策略;
我不認同一個 UML 產品沒有提供「純粹做 UML visual modeling 完整功能」的版本,
將 Modeler Edition 的部分 visual modeling 功能放在有 code generation 的 Standard Edition 裡,
而 Standard Edition 雖然提供了完整的 visual modeling 功能,
但購買 Standard Edition 卻需要為那些半殘的 code generation 功能也一起支付費用,
這種把 code generation 和 visual modeling 混淆在一起,
無法完全獨立購買各自功能的商業策略事實上也誤導了很多 UML 的外行人,
讓他們以為 UML 總是試圖達成自動產生程式碼等方面的自動化目的,
進而在對 UML 用途不夠瞭解的狀況下做出負面的評論。

基於上述原因,
我又開始打開 browser 去看看 2008 年末的現在,
世界上是否存在著 VP-UML 外高度支援 UML 2.1 規格的相關工具,
於是我就找上了由 Sparx Systems 這家公司賣的 Enterprise Architect (簡稱 EA);
10 個月前我也曾經試用過這個產品,
但當時我認為它對 UML 2.1 的支援還是不如 VP-UML 來得好,
因此選擇了 VP-UML;
而10 個月後的現在我又再次決定試用這個產品,
發現 7.1 版對於 UML 2.1 的支援已經相當充足了,
而且功能完整的 Corporate Edition 單價只要 $239,
相較於 Visual Paradigm 只不過是 Standard Edition 就要價 $299,
Professional Edition 甚至要價高達 $699 而言,
Sparx 的 EA 真的是相當的超值。

EA 各 edition 的差異可以看這個連結的表格:http://www.sparxsystems.com.au/products/ea/editions.html
而表格內每大項功能的說明可以參考這個連結:http://www.sparxsystems.com.au/products/ea/features.html
此外 VP-UML 各 Edition 的差異可以參考這個連結:http://www.visual-paradigm.com/product/vpuml/editioncomparison.jsp

EA 的 Corporate 跟 Professional 版幾乎只差在 database 和 security 上的支援,
那麼為什麼我會選擇 $239 的 Corporate Edition 而不選擇只要 $199 的 Professional Edition 呢?
這當然是有原因的,
EA 跟 VP-UML 一樣提供了教育授權 (academic license):http://www.sparxsystems.com.au/products/academic_pricing.html
用教育授權的方式購買 Professional Edition 的話只要 $105,
而 Corporate Edition 只要 $119,
既然只要多花 $14 而不是 $40 就能使用功能最完整的版本,
那麼我當然是把這 $14 也順便花下去了,
就算當成是贊助這家公司其實也不錯;
EA 的教育授權認證比起 VP-UML 而言容易得多,
因為只要以個人的學生或教職員身份就能認證了,
方法是去填寫這個表格並將掃瞄檔案順便上傳:http://www.sparxsystems.com.au/products/academic_status_approval.html
這樣在他們做完簡單的人工驗證 (通常不會太認真查) 後會 e-mail 一個購買用的連結,
裡面的產品價格就是教育授權的價格了 (產品的版本要在之前填表的時候就先選好)。

VP-UML 的教育授權似乎是以系所為單位,
而且看起來是需要由有開班授課的教授或講師去申請,
方法是填寫這份表格申請成為他們的 academic partner:http://www.visual-paradigm.com/partner/academic/academicprogramrequestform.jsp
如果成為他們的 basic academic partner 就可以 VP-UML 和 SDE 的 Standard Edition,
相關的說明可以參考這個連結:http://www.visual-paradigm.com/partner/academic/academicpartnerstypes.jsp
不過要是他們真的是以系所為單位的話,
個別實驗室的申請恐怕是不一定會被受理的,
找個時間去試試看好了。

下面這張圖是 EA 的 UI (上面標題列左方可以看到 Academic 的字樣表示是教育授權):

圖形和框線的質感比 VP-UML 好上很多,
說實話 VP-UML 雖然花了很多工夫在 user-friendly 上,
但字跟線的鋸齒問題實在很嚴重,
而且存成圖檔的時候都會發生一定程度的失真,
EA 的某些存檔格式如 PNG 就不會失真那麼嚴重。

VP-UML 因為才剛開始提供 design pattern 的支援,
所以其實也沒有什麼現成的 pattern 可以直接套用,
EA 看起來是有一段時間了,
相關的 resources 都有 build 起來,
最起碼 GoF 的 design patterns 都已經內建支援了,
這對於從 Rational Software Architect (RSA) 移民過來的我而言是相當實用的:

除此之外官網也有一些公用的 profile 可以下載使用,
有蠻多東西其實都不用自己重新建立一遍,
不過似乎沒有 C++ STL 的 profile (其實目前為止也沒看過有其它產品提供過)。

還有一項相當吸引我的功能就是有提供各種 model template,
特別是有提供 Unified Process (UP) 相關的 templates,
這對於習慣用 UP 來做 modeling 的人來說可以是不可或缺的,
VP-UML 在這方面根本是慘敗 (什麼 template 都沒有):

那麼 EA 有哪些缺點呢?
UI 不夠親和可以說是缺點之一吧,
VP-UML 要設定每個 UML element 的屬性可以很簡單的用滑鼠右鍵選單完成,
EA 常常要找個半天才能調整一些常常需要更動的項目 (或許有一些便捷的做法我還沒發現);
還有就是沒有 auto-fit 的功能,
常常要輸入完 element 的名稱以後還要自己調大小,
不過會自動斷行和調整字型這點倒是 VP-UML 沒有的功能;
另外 VP-UML 的客服在官方的 forum 上回應的也是蠻勤的,
所以使用上有什麼問題常常很容易就能在他們 forum 上找到答案,
EA 的 forum 雖然我還沒在上面發問過,
但整體感覺比 VP-UML 的 forum 遜色不少。
在 UML 2.1 的支援上,
activity diagram 似乎不支援 parameter set (目前好像只有 VP-UML 辦得到),
component diagram 和 composite structure diagram 可用的 elements 有點怪怪的,
timinig diagram 的支援比 VP-UML 強了些,
目前發現到的大致上是這樣,
對於 $119 的軟體來說,
表現算是相當好了;
另外 EA 看起來並不是用 Java 寫成的,
開啟的速度跟執行時的速度都相當順暢,
用過很多 Java 寫成的 UML 工具都發現很多共通的缺點,
特別是字型跟鋸齒的問題。

至於 VP-UML 確實還是有它的長處,
雖然我對於它們的行銷策略不太欣賞,
不過客服的態度和軟體更新速度其實都算是相當好的,
要說對 UML 2.1 的支援度來說還是 VP-UML 比較強 (這方面我也會找機會跟 EA 的客服溝通看看是否能再加強),
所以我還是決定給予這家公司最基本的贊助,
版本還是維持在 Modeler Edition,
不過每年還是會支付它 20% 的價格購買延伸的 software maintenance,
也就是 $99 x 20% = $19.8 (約 NT$ 650 上下),
當然免錢的教育授權方案我也會考慮去拗來就是了。