我目前面临的情况是,作为测试驱动开发的倡导者,我必须与模型驱动软件开发(MDSD)/模型驱动架构(MDA)的倡导者竞争。
在我看来,代码生成是我工具箱中的一个有价值的工具,我会在需要时大量使用模板和自动化。当我认为这有助于理解内部工作或在白板上讨论架构时,我也会在 UML 中创建图表。但是,我强烈怀疑通过 UML 创建软件(创建状态图和序列图来创建工作代码,而不仅仅是代码骨架)对于多层应用程序(数据库层、业务/域层和 GUI,甚至可能是分布式的)更有效。在我看来,当谈到 MDSD 时,CASE 工具突然不再只是一个工具,而是满足的东西:在我看来,一方面,
所有这一切让我想知道是否有一个成功的故事(成功是该产品及时推出,在预算范围内,只有很少的错误,软件的部分内容后来被重用)用于满足现实世界的应用程序该标准是使用严格的模型驱动方法开发的:
- 它与对象管理组 (OMG) 或与 MDSD/MDA/SOA/ 相关的顾问无关
- 该应用程序与业务流程建模无关,并且本身不是 CASE 工具
- 该应用程序被最终用户积极使用
- 它至少有三层,包括一个用户界面,它超越了显示原始表值,并且不是常见的 MDA/MDSD 示例之一(“如何为咖啡机、交通灯、洗碗机建模”)。