本文包含了对 GenMyModel 的架构、使用的技术和未来规划的采访。
GenMyModel 是一个能生成 Java、Spring 和 SQL 代码的在线实时协作 UML 建模工具。模型是基于 UML2 元数据模型,并能导出为 SVG、JPEG 和 UML/ XMI 格式。目前,该工具能生成类图和用例图,但其他的――如活动图、序列图将在今后添加。该工具能和 GitHub 整合。
GenMyModel 最近获得了对在线协作功能的支持,能让多用户同时在同一个模型上工作。我们期望了解更多关于该工具的架构、使用的技术和未来发展,其问题得到了首席技术官和创始人 Thomas Legrand 和 Chief Business 首席业务官和创始人 Stéphane Deveaux 的解答。
InfoQ:什么技术能让 GenMyModel 这么强大?
GenMyModel 主要是用 Java 和 Google Web Toolkit。前端使用包括 HTML 5 技术和 GWT 编写, 后端则是 J2EE 应用。对于核心的建模模块, 我们使用 GWT 开发了对 UML 建模型的实现。在服务端,我们特定的基于 SQL 的存储系统能将模型及历史保存起来。模型库是处于托管的并且在云端由若干服务器组成。 对于导出的功能而言,我们设计了一个可靠的框架以创建和运行模型,使的这些模型的转换能和基于模版的代码生成器结合。关于工具包,我们团队的所有成员都有各自的杀手锏!但 Eclipse 和在线 IDE 如 Codeny 是 80% 的时间都在使用。我们的缺陷跟踪系统和敏捷项目管理系统是基于神奇的 JIRA。而持续测试和交付管理过程是由 Jenkins 和 Sonar 去管理。
InfoQ:你们是如何协作的?要同步这些 UML 图的目的是什么?
多年以来,开发人员试图在一起设计软件架构,我们很高兴能为数百万人提供这个令人兴奋的体验。当输入你希望与之共享的人的 EMAIL 地址,将会发生如下的事情:你能在实时编辑、移动和删除同一个模型。所有的这些图形和模型的改变(你看到的)都是实时发生的。不同于协作绘图工具,GenMyModel 始终保证遵守 UML。在协同设计中的任何时候,你可以生成图片、报告和代码。对于终端用户是不需要解决冲突,也没有锁和解锁的限制。在模型中,有一个聊天框让团队成员了解各自的进度。幕后关键的一点是,无论是图形和模型都是在服务器端同步的。我们的机制可以确保你始终获得的是遵守 UML 模型的同步图形。因为一切都保存在我们的模型库中,我们将在短期内能够提取标签和注释的修订历史。
InfoQ:你们将来打算支持除了 Java 和 SQL 外的其他语言吗?
绝对是的,这是多么令人兴奋!PHP、Javascript、C#、C++ 和其他语言……深入其机制而言,我们已经准备好在支持一大批广泛而复杂的语言和框架。可以想像这能满足数百万目标群体的期望!当然这只是时间和优先级问题。这就是为什么我们会提出上传用户自己的生成器的原因。我们不相信旧式的 MDA 工具,它们中的大部分关注用户的需求而不是灵活的生成器。如果有人认为使用 GenMyModel 提供的生成器在 Java 中生成的代码丢失了构造函数,我保证这不是一个大问题:“这里有模版,用户可以自定义”。这就是我想说的。我们将在 2014 年达成这个目标并欢迎提供各样的贡献。
InfoQ:你们打算什么时候推出 beta 版本?
将在 2014 年第二季度发布,但还没最后准备好。数千 IT 工程师每周都参与使用 beta 版并提供宝贵的反馈意见。这就是从开始到目前所做的一切:告诉我们你所喜欢的功能,我们将尽力实现。这就是实时协作概念是如何提出的。我们跟用户接触的越紧密,则愈能彰显我们的价值。在不久的将来,我们的目标是扩大到整个 UML 范畴并且有其他的图(序列、活动,然后?), 并缓和跟逆向工程之间的跨度。我们需要大家的帮助以设计那些功能而现在定价的计划可能会造成一些障碍。 在另一方面,事实上越来越多的用户和公司在咨询专业版的授权。目前,我们在研究所有的问题并且我们逐一回答每一个案例。
InfoQ:目前你能提供任何的价格体系么?
很诚恳地说,目前还是太早所以还不是太准确。目前来说 beta 版本对公众和个人项目来说是免费的。个人项目的数量限制可以发邮件给我们通过即可。我们尝试根据得到的反馈去制订最佳的价格体系。 我要强调如下三点:
- 我们相信开源并且我们希望 GenMyModel 成为公开的项目。这也是个象征,软件建模进入新的纪元。公开的项目将永久免费
- 对那些需要个人项目的开发者降低门槛,每个授权将小于 10 美元
- 为企业提供额外的专业服务(每月 50-150 美元)
InfoQ:在发展路线图中有什么其他特性?
让我们总结下即将要实施的: - 更多的图:活动图、序列图
- 更多的代码生成器:用户能自己上传
- 版本控制管理
- 从 Git 中逆向工程,首先生成的是 Java
其他功能也将增加并且路线图也需要转向。任何人都可以通过 UserVoice 的通道 http://genmymodel.uservoice.com 提出想法或者功能的改善。
查看英文原文: GenMyModel: An Online Real-time Collaborative UML Designer
感谢张龙对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论