买了本《程序员》。很久没有看过关于编程的杂志了,重新翻翻还是有种亲切感。
其中提到了MDA (Model Driven Architecture)。三四年前,还在做研发的时候,曾经对它颇感兴趣,感觉它有助于提高公司软件开发的效率。但研究一番之后,觉得还是一个太理论性的框架。原因之一,在于它的应用,需要协调主要行业厂商,定义和实现众多标准。对于软件开发工具商而言,MDA不是个现实的选择。当然MDD(模型驱动开发,Model Driven Development)还是很实用的概念,主流的软件工具开发商,如微软、Borland、IBM,最近几年里,都在自己的工具中增强了MDD的功能。
MDA的应用范围,很大部分在于企业应用软件领域。在这个领域里,客户需求的多样化和易变性,容易导致频繁的二次开发,以及比较低的系统复用性。MDA试图通过分层次的建模、模型间的自动转化(包括最后代码的生成)来提高软件开发效率。
然而,在企业应用软件领域,市场份额越来越集中在少数厂商手中。主要的厂商如SAP,以及新加入的微软,不断的扩展产品功能,强化产品的平台特性。这种情况下更多的客户采用了主流厂商产品+定制的方式。在以主流产品为主导,而非自行开发的市场上,更加缺乏MDA的潜在应用空间。