构件产业化也受制约
布鲁克斯认为,提高软件生产率不能由一种技术或管理的进步达到,也就是不能用一颗“银弹”解决问题,他也许是对的。但是否会有某些技术或管理对提高软件生产率产生重要的、甚至是决定的作用呢?也就是说,如果不能用一颗“银弹”,那么是否能用一些“银弹”解决问题呢?
构件技术显然有可能成为这样的“银弹”。在集成电路领域,构件技术取得了极大的成功,硬件的构件小至“标准单元”,大到“IP核”,都可以在集成电路设计中复用,大大提高了硬件的生产率。
可是软件的构件概念提出了多年,却很难实现产业化,看来至少有两方面的原因。
一方面原因是,将软件构件技术产业化需要有一个高效、实用的构件平台。例如普元公司开发的EOS中间件平台,便是一个以构件为核心的生态系统,包括了构件运行环境、开发环境、应用管理环境、基础性的公共构件库、以及面向构件的方法学和经验论。有了这样的平台,很多用户就容易采纳构件技术,并容易取得成效。
另一方面原因是缺乏标准。虽然从软件本身来看,一个成熟的软件,其中有60~70%的功能是可以被复用的。但现实情况是,当我们淘汰一个软件的时候,往往是把它完全抛弃掉,重新设计一个拥有诸多类似功能和少量新鲜功能的软件。这是由软件程序本身的编写规则决定的,拥有数百万行源代码的程序几乎没有人能完全看懂,也极难维护和更新。
长期以来,软件行业缺乏一个标准,每个企业的标准都不一样,难以形成足够的标准化的构件。好在这个问题现在可以解决了,服务导向架构SOA已经成为行业标准,符合服务构件架构SCA标准的构件将可在一切遵循这一标准的系统中复用,从而使多年以来软件界所追求的“软件工业化生产”、“软件工厂”等等理念得到实践的机会。