軟件名稱(chēng)
功能
ArgoUML
一種基于Java的開(kāi)源UML OO建模工具,Argo是古希臘英雄Jason的戰船。ArgoUML支持軟件設計者的認知需求,廣泛地支持開(kāi)放標準,如UML、XMI、SVG、OCL等。
Batik 1.1 SVG Toolkit
Apache Batik工具包提供JAVA組件創(chuàng )建(SVGGraphics2D)、瀏覽(JSVGCanvas)和轉換(Transcoder)SVG。
CatWalk
SchemaSoft的軟件工具,用于快速實(shí)時(shí)創(chuàng )建SVG Web應用。在向網(wǎng)站請求數據時(shí),每次都會(huì )重新發(fā)布數據變化??梢杂脕?lái)實(shí)時(shí)更新UML圖。
Dia
一種基于GTK+的制圖工具,很像Visio。有一些特殊對象可以幫助繪制實(shí)體關(guān)系圖、UML圖、流程圖、網(wǎng)絡(luò )圖,等等,可以將圖以EPS和SVG格式輸出。
DoME(Domain Modelling Environment)
一種元case系統,用于構建面向對象軟件模型(CY OOA和UML),有自已的后端圖形語(yǔ)言。
Gill
即Gnome Illustration app,是基于Gnome的一種通用矢量繪圖工具,本身并沒(méi)有對UML提供過(guò)多的支持,最終會(huì )支持所有的SVG特性。
Gmodeler
一個(gè)免費在線(xiàn)UML繪圖和文檔工具,使用FlashMX開(kāi)發(fā),并不支持輸出SVG格式,但可作為SVG UML建模軟件的原型參考。
Graphviz
ATT出版的開(kāi)源繪圖軟件,有Linux和Windows版本,包括一個(gè)名為Webdot的web服務(wù)接口。
JSeq
可以自動(dòng)創(chuàng )建UML序列圖的工具,可輸出格式Zargo和SVG??瑟毩⑹褂没蚺cJUnit一起使用。
MagicDraw UML
非常強大的建模工具,基于JAVA開(kāi)發(fā),可以輸出SVG格式文件。
OptimalJ
用于NetBeans的一種UML類(lèi)圖編輯器,使用Batik輸出SVG。
Poseidon for UML
基于A(yíng)rgoUML,與其界面基本相同,完全由Java實(shí)現,非開(kāi)源的UML建模工具。與ArgoUML相比,功能要更豐富,更穩定。
SVG Maker
一個(gè)獨立的軟件組件,可以作為系統的一部分進(jìn)行布署。
SVG Slide Toolkit
它可以把XML文件轉化為SVG幻燈格式,不過(guò)用起來(lái)似乎有些慢。
Together Control Center 5.5
經(jīng)常使用的一種集成化開(kāi)發(fā)平臺,使用Batik輸出SVG格式的UML圖。
Visual Paradigm for UML Community Edition
支持所有UML圖,可作為圖形輸出SVG、JPG和PNG等格式,執行復雜圖的打印。支持從事件流生成序列圖,從序列圖生成組合圖的功能。
WebDraw
JASC,也就是開(kāi)發(fā)Paint Shop Pro的那家公司,提供的一個(gè)商業(yè)SVG可視編輯器。
表一 支持SVG格式的UML建模工具及可制作UML的SVG編輯工具
六、結論
今天,絕大多數Web圖像仍然采用JPG、GIF或PNG等位圖文件格式,盡管應用了各種壓縮算法,文件尺寸還是不能大大降低。加 之缺乏足夠的多媒體信息和交互手段,為進(jìn)一步應用造成了障礙?;谑噶康膱D形,如SVG、Flash、VML等可以很好的解決Web圖形文件尺寸較大的問(wèn)題。在這個(gè)領(lǐng)域中Flash文件已經(jīng)得到了較好的應用,VML逐漸被SVG和Flash所淘汰,競爭的焦點(diǎn)集中在SVG和Flash上。未經(jīng)壓縮的SVG 文件尺寸較大,同樣的圖形使用SWF格式存儲要小很多。經(jīng)過(guò)節壓縮的SVGZ格式與SWF格式尺寸相近,大小僅相差5%-10%左右。SVGZ可以直接由瀏覽器來(lái)瀏覽。因為W3C的大力推廣,SVG/SVGZ還是具有相當競爭力的。
利用SVG在線(xiàn)發(fā)布UML圖,并不是一項全新的應用,現有的一些大型建模軟件都提供了輸出SVG文件的功能,但是這些系統卻過(guò)于龐大,不利于快速敏捷地進(jìn)行建模。因此,現有的敏捷建模方法甚至推薦僅使用紙筆來(lái)繪制一些不太正式的UML圖,事實(shí)上,這種方法在實(shí)際使用過(guò)程中常常也會(huì )獲得一定程度地成 功。但這種方法繪制出的UML圖并不總是能夠正確地捕捉,而且代碼更新所帶來(lái)的變化也不能持續地反映出來(lái)。由此可以看出,這些方法都有不足之處,最好是利用輕量級UML建模工具敏捷快速地建模,然后存儲為SVG格式,直接將其在網(wǎng)絡(luò )上發(fā)布。當然了,基于SVG的建模工具是應當能夠比較充分地支持SVG標 準,除了支持基本的繪圖功能之外,還要支持SVG圖形的交互功能和動(dòng)畫(huà)特性,這一點(diǎn)很多通用建模工具是不可能完成的。另外,一些開(kāi)源項目也在研究基于 SVG的組件庫。整體上來(lái)說(shuō),SVG的功能絕不僅僅限于繪制各種各樣的UML圖,但是,SVG的流行肯定與UML圖形是分不開(kāi)的,如果可以更好地對UML 圖進(jìn)行支持,例如開(kāi)發(fā)基于SVG格式的UML組件庫,構建基于SVG格式的UML建模工具,那么SVG格式或許也能因此而更加流行。在這一領(lǐng)域,還有許多工作需要完成。
聯(lián)系客服