2009年4月8日 星期三

free uml

※文章來源:http://jyhshin.pixnet.net/blog/post/26821136



最近在看「UML 精華第三版」這本書,所以就找了一些 free UML tools 來用,順便記錄一下使用心得。主要的 tools 都是從 http://en.wikipedia.org/wiki/List_of_UML_tools 找來。這個網址維護一系列的免費工具,經常有更新,裏面的各軟體版本相差沒多少。



  1. BOUML

    支援最新的 UML 2.0,不過是用 QT 寫的,所以安裝時,會順便安裝 QT。

  2. Frame UML

    支援最新的 UML 2.0 的 12 種圖,不包含 Object diagram,因為可以使用其它圖代替。 使用 Vistual C++ 寫的,只能在 windows 環境下使用。簡單,方便使用。 但是實際使用後才發現只有支援六種圖,Deployment Diagram,Component Diagram,Class Diagram,Composite Structure Diagram,Package Diagram,Usecase Diagram。

  3. StarUML

    UML 2.0 的支援不完全,而且已經很久都沒有更新了,最後的版本是在 Dec 30 2005 發行的。

  4. to be continue....


另一個 tools collections http://www.objectsbydesign.com/tools/umltools_byPrice.html

SOA架構與DNA架構之異同

 ※文章來源:http://kenming.blog.ithome.com.tw/archives/296/200712 



問題思考

Bill Gates 曾於 1999 年在「數位神經系統」一書中提出 DNA (Distributed Network Architecture) 架構,那麼,又與現今當紅 SOA (Service-Oriented Architecture)架構有何異同?


理念相同

 o 業務驅動 IT 技術,科技支援商業。

 o 企業間的協同合作,提供即時精確的服務。

簡言之,即為以服務為導向 (service-oriented) 的架構規劃與整合,讓 IT 與 企業合為一體。


作法不同

 o DNA 走自家的 COM/COM+ 分散式技術,是屬於 “緊密式耦合 (tight-coupling)” 的連結方式;SOA 則走 Web-Service 的寬鬆連結方式 (loose-coupling)。

 o DNA 偏以自家產品 (MS Solution)為中心的整合方式;SOA 則為異質平台的整合方式,依循標準的 HTTP/SOAP, XML 的整合方式。


SOA 的四大特質

 o 簡單

 o 異質

 o 彈性

 o 寬鬆連結



  • 不同的平台之間 (.NET, J2EE, PHP/Ruby … 等),均可以透過 HTTP/SOAP 協定傳遞 XML 資料 (純文字的格式)。

  • 利用 WSDL (Web-service description language) 描述 Web服務 的公佈介面 (interfaces)。這是一個基於 XML格式的標準,以描述如何與 Web服務 通訊和使用的服務。

  • 因為是寬鬆連結,最好不要期待 Web-service 可以處理交易機制的協調處理,取用一次,完成所需的服務即可。

  • Web-service 的本質就是屬於 “state-less (無狀態)” 的機制,若是應用在 UI 與 Middleware 的系統連結上 (如 .NET Form 透過 web-service 連結 J2EE),需注意用戶端與伺服端的狀態保存與維護。


SOA 的挑戰

 o 如何作整體性的架構規劃?

 o 如何快速部署 (deploy) Web-service based 的應用程式?

 o 如何讓設計比較有彈性,以快速應付外界的需求?


整體性的架構規劃

 o 可以利用 UML 使用案例圖 (use case diagram)呈現整體架構設計。

 o Use Case 本來就是以需求服務為導向的設計,與 SOA 的標的一致,故用其作為架構設計的呈現,最為適合。

 o 每一個由 web-service 所揭露的服務 (service),會對應至一到多個使用案例 (use case)。


快速部署 WebService

 o 這是屬於系統廠商的責任,包括 MS, IBM (WebSphere), BEA (Weblogic), TiBCO 等,均能提供快速部署 Web Service 的應用程式。

 o 先進的工具還能支援:

  o 資料物件與 XML 的格式轉換

   o Java Bean to XML (反之亦然)。

   o DataSet to XML (反之亦然)。

  o Support XML Schema 的設計與定義。


彈性的設計

 o 這是屬於 Developer 的責任。

 o 這是軟體設計最為嚴謹且為最大挑戰的領域。

 o “應變” 是軟體設計者應有的態度。

 o 可先以 “分層結構 (後述)” 作為系統開發的 “cook book”,先瞭解與熟悉 “委派(delegate)” 的設計手法。