據說國外做架構一般用兩種工具,一個是大名鼎鼎的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可以把你的圖紙和設計文件生成程式的完整框架,編碼就成了一種給房子裝修的勞動了而已。
Enterprise Architect
相關文章
- Enterprise Architect 8.0 註冊碼
- Enterprise Architect是一個完全的UML分析和設計工具
- 使用Enterprise Architect 7 連線Oracle資料庫反向生成資料模型Oracle資料庫模型
- 使用Enterprise Architect生成word資料字典(包含表的結構和註釋)方法
- BI Solution Architect /Principal,Sr. Solution Architect - 高階DBA 職位
- From an architect to a programmer...
- [轉載] The role of the Software Architect
- Sencha Architect 2.1版釋出
- Logical DBA, DA Data Architect
- Oracle Doc list involved with architectOracle
- how to run demo city bars using sencha architect
- 簡單破解 Sencha Architect 2.2 (ExtJs Designer)JS
- 誠聘--Senior J2EE Architect--ShanghaiAI
- CG architect:2021年全球渲染引擎調查
- sencha architect/sencha touch , to prevent breakpoint lost when you debug
- An interview with Microsoft's new Visual C++ Architect Stanley Lippman (轉)ViewROSC++
- Rational Software Architect 和 Rational Application Developer 之間的 shell 共享APPDeveloper
- 使用IBM Rational Software Architect 在Java中處理XSDIBMJava
- SAP EPD - Enterprise Product Developmentdev
- Red Hat Enterprise LinuxLinux
- Enterprise Gateway Manager 是何物?Gateway
- Enterprise Integration Patterns with BizTalk ServerServer
- IBM Rational Software Architect 通過程式設計方式生成UML模型IBM程式設計模型
- 在 IBM Rational Software Architect 中建立一個部署拓撲圖IBM
- AWS Certified DevOps Engineer Professional vs AWS Certified Solutions Architect Professionaldev
- 從 Red Hat Enterprise Linux 2.1 AS升級到 Red Hat Enterprise Linux 3Linux
- EMQX Enterprise 4.4.11 釋出MQ
- Red Hat Enterprise Linux 7.4Linux
- 手工配置ORACLE Enterprise Manager(OEM)Oracle
- oracle enterprise manager配置簡介Oracle
- Oracle Enterprise Linux uek核心OracleLinux
- 轉享: Enterprise Java Cloud [VMforce]JavaCloud
- 破解XMLSpy Enterprise 2004XML
- Observer Pattern - An Enterprise JavaBean Implementation (轉)ServerJavaBean
- Enterprise Structure ConfigurationStruct
- PAUL ADAMS ARCHITECT:投資洛杉磯房產,潛利遠超你想象!
- HDU 3682To Be an Dream Architect(統計規律題目 三線相交bug)
- AWS 認證解決方案架構師 – 助理級 (AWS Certified Solutions Architect – Associate)架構