Modelio 是一套 Open Source 的建模工具。除了可用於繪製 UML 或 BPMN 圖表外,也具備產生不同程式語言程式碼及文件的能力。
它本身看起來應該是由 Eclipse 延伸開發出來的,我試用的版本是 v3.1.0,需要 Java 7 以上版本才能運作。在等級不差、近年購置的 Mac Book Pro 上運作的感覺是…還算順暢,但是有時切換 view 的時候還是會「多一拍」的感覺。
功能挺多、介面也算是不錯看,對筆者而言,比較可惜的是它不符自己的使用習慣。而且我相信,可能也不符合很多人的習慣。關鍵的其中一點是:每個元件 (element) 之間的關係 (它統稱為 link),必須在既有元件之間拉線來建立。反過來說,和直接從某一既有元件拉出一條線後自動產生新元件的方式不同。
換句話說,在繪圖者當下的思維邏輯為:(以下假設使用類別圖描述書店的 model)
.邏輯1:有兩個 entity,一者為 Book,另一者為 Author;兩者之間有多對多的關係。
而不是:
.邏輯2:有 Book 這個 entity,首先它有一個關係連向 Author 這個 entity,兩者之間為多對多。
若是以一般人可能使用的陳述方式來說的話,可能是:
.每本書有它的作者,作者可能不只一位;每位作者也可能撰寫不只一本書。
由於人的思考比較習於演譯,所以在心智圖 (Mind Map)的繪製習慣中,也是從一個觀點延伸(拉線)出其它觀點。從這個角度來看,邏輯2可能比較接近人的思考習慣。
反過來說,如果在需求文件中已經歷經多次討論、收斂過字彙後產出 model 了,應該也不需要以帶動思考的方式進行繪圖了吧?從這個說法來看,可能就會覺得邏輯1和邏輯2應該只是在習慣上有所有差異。筆者覺得:這樣的模式最好有些個美麗的前提是「需求不會再變」,或是「不需要於製作文件時再進行一次審視」。
嗯…這個部分…大概做過的人比較有感覺。
--
回到 Modelio ,筆者會想試用的原因是它有支援 HTML 匯出。不過筆者還有一個想法:我希望能透過在高層次的圖表中的元素連結到次一級圖表。若是以 HTML 方式匯出時,就必須能在高層次圖表中提供連結,然後使用者點擊後可以看到次一級圖表的頁面。
使用心得是:Modelio 中沒有複合/複雜元件的概念,它提供了 Releated diagram link 這個 common 元素來將元素與其他圖表連結。嗯…畫面上會醜一點,不過還可以用。不過等到一匯出成 HTML 後,該連結的功能就消失了。(而且那個 Releated diagram link 元素還看得到,但是不能點擊)只能說遺憾…。
--
此外,每個元素的編輯要透過 Element view 的表示來設定,不能以 in-line 或 pop 視窗的方式進行,所以使用者的手得用滑鼠或觸碰板多多在畫面中旅行了…這樣也會降低繪圖的速度。
除此之外,像要在類別上加上 attribute/operation 也得從元件庫裡拖點、元素庫沒辦法搜尋、元件沒有 alias 的設定、attribute 沒有 property 的選項…這些都是很可惜的點…。不論是單純繪圖或是產生程式碼,用這套工具的速度我想和 Sparx 的 EA 還是很有差。
不論如何,既然標榜是商業等級的解決方案,我想 Modelio 的產品還可以再為使用者加些油。