幾種建模工具的比較

一家之言,如有異議或者錯誤請忽略

Matlab

優點

  • 面向算法,可以運行和仿真,能看到每個變量隨時間變化的曲線,因而可以進行早期驗證
  • 各種現成的組件
  • 各種現成的模板用於生成不同平臺的代碼

缺點

  • 不面向對象,沒有類的概念,也不能使用時序圖,活動圖等
  • 好像只能生成C/C++代碼
  • 可以引用外部代碼,但是不能增量式維護,只能改模型重新生成
  • 貴!

Matlab的強項在於實現功能,而不是架構設計

StarUML

優點

  • 簡單,易上手
  • 對象屬性很全面,可以直接對應C++的各種屬性,比如Virtual,Static,volatile等,
  • 免費

缺點

  • 只能從類圖生成代碼,所以只能進行框架設計,也不能在模型中插入實現代碼
  • 只能單向生成,不能增量式維護,因此如果模型有更改,只能生成新的代碼,然後手動和現有代碼進行比較更新
  • 不能運行,無法進行早期驗證

StartUML基本上只用於早期的概念階段和框架設計,在設計階段基本上就無法再用了

xtUML

優點

  • 可以執行,因而可以進行早期驗證
  • 即可以設計框架,也可以設計實現
  • 好像可以修改代碼生成模板
  • 據說兼容AUTOSAR
  • 免費

缺點

  • 好像只能生成C代碼,不能生成C++代碼?
  • 執行過程不太友好,有時候不知道發生了什麼,甚至不知道該如何發生
  • 需要學習一種自有的腳本語言,好在好像不是太複雜
  • 目標是生成代碼直接使用,因而也無法雙向維護,基本上更改只能從模型出發

OpenAmeos

優點

  • 可以增量式維護,在生成的代碼裏進行的修改重新生成後還會保留
  • 有語法檢查
  • 自動生成構造,析構函數,Get, Set, 拷貝構造函數
  • 可以在模型裏插入實現代碼,自動加入到生成的代碼裏面
  • Doxygen 風格的註釋
  • 適用於大型項目,有客戶端和服務器端,還有不同的參與者角色區分
  • 有版本管理功能,可以設置BaseLine,應該可以進行Baseline之間的比較
  • 程序很小,才20M+功能卻很強大
  • 免費

缺點

  • 類屬性沒有Static屬性?
  • 不能執行,所以也不能進行早期驗證
  • 有點複雜

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章