几种建模工具的比较

一家之言,如有异议或者错误请忽略

Matlab

优点

  • 面向算法,可以运行和仿真,能看到每个变量随时间变化的曲线,因而可以进行早期验证
  • 各种现成的组件
  • 各种现成的模板用于生成不同平台的代码

缺点

  • 不面向对象,没有类的概念,也不能使用时序图,活动图等
  • 好像只能生成C/C++代码
  • 可以引用外部代码,但是不能增量式维护,只能改模型重新生成
  • 贵!

Matlab的强项在于实现功能,而不是架构设计

StarUML

优点

  • 简单,易上手
  • 对象属性很全面,可以直接对应C++的各种属性,比如Virtual,Static,volatile等,
  • 免费

缺点

  • 只能从类图生成代码,所以只能进行框架设计,也不能在模型中插入实现代码
  • 只能单向生成,不能增量式维护,因此如果模型有更改,只能生成新的代码,然后手动和现有代码进行比较更新
  • 不能运行,无法进行早期验证

StartUML基本上只用于早期的概念阶段和框架设计,在设计阶段基本上就无法再用了

xtUML

优点

  • 可以执行,因而可以进行早期验证
  • 即可以设计框架,也可以设计实现
  • 好像可以修改代码生成模板
  • 据说兼容AUTOSAR
  • 免费

缺点

  • 好像只能生成C代码,不能生成C++代码?
  • 执行过程不太友好,有时候不知道发生了什么,甚至不知道该如何发生
  • 需要学习一种自有的脚本语言,好在好像不是太复杂
  • 目标是生成代码直接使用,因而也无法双向维护,基本上更改只能从模型出发

OpenAmeos

优点

  • 可以增量式维护,在生成的代码里进行的修改重新生成后还会保留
  • 有语法检查
  • 自动生成构造,析构函数,Get, Set, 拷贝构造函数
  • 可以在模型里插入实现代码,自动加入到生成的代码里面
  • Doxygen 风格的注释
  • 适用于大型项目,有客户端和服务器端,还有不同的参与者角色区分
  • 有版本管理功能,可以设置BaseLine,应该可以进行Baseline之间的比较
  • 程序很小,才20M+功能却很强大
  • 免费

缺点

  • 类属性没有Static属性?
  • 不能执行,所以也不能进行早期验证
  • 有点复杂

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