模型驱动软件开发与自动 BPEL 生成技术解析
1. 模型驱动软件工厂的实践与优势
在软件开发领域,模型驱动的方法正逐渐展现出强大的优势。以一个模型驱动的软件工厂为例,它采用了特定领域语言(DSL)来进行开发。
1.1 业务实体 DSL 的选择
业务实体 DSL 中不包含操作或方法。将操作和方法放入模型中的附加值有限,因为我们最多只能生成方法模板,而直接用 C# 编写方法模板的工作量与在模型中处理相当。为了遵循模型应节省工作量的目标,我们选择通过部分类用 C# 为业务类编写方法。
1.2 项目经验
该模型驱动软件工厂的首个版本于 2006 年 9 月投入生产。第一个项目是一个固定价格、固定日期的客户项目,于 2006 年 12 月按时且在预算内完成。项目完成后,测量显示 73% 的代码是自动生成的。参与项目的开发人员对底层架构并无经验,但模型驱动的方法确保他们能在计划时间内开发出完全符合架构的应用程序,项目中使用了超过 50 种不同的特定领域模型。
目前,还有几个使用该工厂的项目正在进行中,但现在展示相关数据还为时尚早。首个项目的成功促使决定将 SMART - Microsoft 软件工厂作为所有项目的默认开发环境。在不久的将来,我们预计会用额外的 DSL 扩展该软件工厂,使其适用于更多种类的应用程序。
1.3 经验总结
通过开发和使用这个软件工厂,我们得出以下主要结论:
- DSL 对比传统 MDA 方法 :在开发 SMART - Microsoft 之前,我们在使用 UML 和单独建模工具作为建模语言的传统 MDA 方