我目前面临这样一种情况:作为测试驱动开发的拥护者,我必须与模型驱动软件开发(MDSD)/模型驱动架构(MDA)的拥护者竞争。
在我看来,代码生成是我工具箱中有价值的工具,需要时我会大量使用模板和自动化。当我认为这有助于理解内部工作或讨论架构时,我也会在UML中创建图表。然而,我强烈怀疑通过UML创建软件(创建状态图和序列图以创建工作代码而不仅仅是代码框架)对于多层应用(数据库层、业务/领域层和Gui,甚至分布式应用)来说是否更有效。 在我看来,当涉及到MDSD时,CASE工具不再只是一个工具,而是满足需求的关键。从一方面看,MDS开发人员受益于UML提供的更高抽象级别,但同时他们也在努力修改代码生成器/模板/引擎来满足他们的需求,如果使用其他工具(如VisualStudio、Eclipse等),这些需求可能很容易实现(并进行测试)。
所有这些都使我想知道是否有一个真实的应用程序成功案例(成功意味着产品按时推出、在预算内完成,且只有少量缺陷,并且软件的某些部分后来被重用)是通过严格的模型驱动方法开发的:
在我看来,代码生成是我工具箱中有价值的工具,需要时我会大量使用模板和自动化。当我认为这有助于理解内部工作或讨论架构时,我也会在UML中创建图表。然而,我强烈怀疑通过UML创建软件(创建状态图和序列图以创建工作代码而不仅仅是代码框架)对于多层应用(数据库层、业务/领域层和Gui,甚至分布式应用)来说是否更有效。 在我看来,当涉及到MDSD时,CASE工具不再只是一个工具,而是满足需求的关键。从一方面看,MDS开发人员受益于UML提供的更高抽象级别,但同时他们也在努力修改代码生成器/模板/引擎来满足他们的需求,如果使用其他工具(如VisualStudio、Eclipse等),这些需求可能很容易实现(并进行测试)。
所有这些都使我想知道是否有一个真实的应用程序成功案例(成功意味着产品按时推出、在预算内完成,且只有少量缺陷,并且软件的某些部分后来被重用)是通过严格的模型驱动方法开发的:
- 它与对象管理组(OMG)或与MDSD/MDA/SOA相关的顾问无关
- 该应用程序与业务过程建模无关,也不是CASE工具本身
- 该应用程序由最终用户主动使用
- 它至少有三个层,包括超出显示原始表值的用户界面,而不是常见的MDA/MDSD示例(“如何对咖啡机、红绿灯、洗碗机进行建模”)。