Enterprise Architect

weixin_34015860發表於2012-06-20

據說國外做架構一般用兩種工具,一個是大名鼎鼎的IBM Rational Rose,還有一個就是Enterprise Architect。雖然第三方也有很多建模工具很好的支援了UML規範,並且提供了全面的架構功能,但考慮到產品更新換代和IDE契合度上,第三方開源產品缺乏的是專業定期的維護,所以我們最終還是選擇相對比較適中的EA來做架構。 



首先我們找到EA的破解碼,這個還是比較容易做到的。畢竟EA只是一個建模工具,我簡單閱讀了一下Help文件就自己操作了起來。很直接的想到去Create a new Project,EA提供了很多成型的Model可以選擇,例如Business Process、User Case、Domain、Class、Testing、Deployment等等。不過我還是喜歡白手起家,什麼都沒選,建立一個空的Project之後自己新增Package;我先試著新增了Client和Server兩個Package,然後分別對它們建了Domain Model,畫了一些Class Diagram,發現EA的設定還是挺死板的,給Class和Interface新增Attributes和Operations比較繁瑣,如果要在引數列表中用一些第三方的類或者介面簽名,匯入的時候居然只支援class和java字尾名,連JAR包都不支援。也就是說要晚上這個Class Model,我不得不把第三方引用的JAR包中的class提取出來,兩個字,惡劣! 



接著,我試用了一下關聯關係的設定,這個EA還是做的相當不錯的,很全面!選擇Realize的話會自動把Interface的方法新增到實現它的Class中,各種標識static、protected、final、abstract等的設定也很方便,在Class圖上也表意很明確。針對Domain Model中的所有Class/Interface,還可以新增其他的Model和Diagram,參考了UML2.1的一些新語法,之後我主要完善了一個Sequence Diagram,它生成的Lifeline很奇怪,在中間沒有通訊和呼叫發生的時候都是空的,難道屬於無生命週期狀態?還是我的理解有錯誤?不解! 



按照之前對專案的需求分析,我就沒有再建User Case Model了,其實正規的開發流程應該是從User Case開去驅動下去。模型建立最終還是要跟IDE契合才能發揮作用,否則做的架構就完成只是一張設計圖紙而已。EA提供了跟各種IDE進行契合的工具,這些個工具才真EA真正賺錢的地方,在網上找了N久,跟Eclipse契合的外掛叫MDG Link for Eclipse,死活搜尋不到有可用的License,全部都是.Net的License。難道.Net開發架構人員也經常用EA麼? 



沒有辦法只好在Try Version的情況下用了起來,最重要的當然就是把剛才架構的Model按照包結構和約束定義生成在Eclipse的Project裡面去。EA支援雙向匯入,由於本人比較熟悉Eclipse的檢視於是就在Eclipse檢視下連線EA的建模eap檔案,link之後嘗試著Generate Package/Code,結果開始是生成的package總是以folder的圖示出現,接著除錯好不容易整成package圖示之後發現EA Project的頂層package(例如是com),會按照規範生成com.**.**包,但是包裡面的class和interface居然都是紅色的報錯狀態,所有import語句都把com給丟失了。不斷的unlink,再link,偶爾發現在EA關聯Eclipse不同步的情況下能生成正確的import語句,但同步之後再生成的還是錯誤的。 



無奈之下回頭再研究官方文件,清清楚楚的寫著從EA裡Merge Eclipse的過程,這回到EA的檢視下面進行Merge,Guess what?一切順利,包名和import語句都準確無誤,生成的註釋也非常規範,基本上可以用於直接產生JavaDoc。慚愧自己沒有按官方推薦的流程操作,同時也感嘆EA能很好的契合Eclipse,但從Eclipse的角度未必能完美的配合EA的建模。 



初次試用EA做架構,談不上用得怎麼樣,只是覺得EA還是一款不錯的UML建模工具,能夠很好的跟各種語言的IDE契合,生成專案的大致框架和文件,剩下的事情就是按照註釋的說明把方法實現而已。我能夠看到這樣在二次開發的時候會節約大量的人力物力,畢竟靠人的腦子不可能記住所有的細節,但圖紙和設計文件可以,而EA可以把你的圖紙和設計文件生成程式的完整框架,編碼就成了一種給房子裝修的勞動了而已。 

相關文章