构件技术是影响整个软件产业的关键技术之一。1998年在日本召开的国际软件工程会议上,基于构件的软件开发模式成为当时会议研讨的一个热点。美国总统信息顾问委员会也在1998年美国国家白皮书上,提出了解决美国软件产业脆弱问题的五大技术,其中之一就是建立国家级的软件构件库。
美国之所以重视建立国家级的软件构件库,是因为美国已经开发了许多基于构件技术的软件系统,并形成了多个不同领域的构件库,但有相当一部分构件库互不相容,所以要研究构件库的互操作性,以便把这些构件库组合成一个大库,形成国家的基础资源。目前,美国已有不少软件企业采用构件技术生产软件。
我国在构件技术的应用上也是走在国际前沿的。早在1997年,由北京大学主持的国家重大科技攻关项目“青鸟工程”中,采用软件构件技术开发的“青鸟III型系统”通过了技术鉴定。至今,“青鸟工程”一直在研究开发软件构件库体系,继续推进基于构件的软件开发技术。
随着我国软件产业的发展,联想、神州数码等软件企业得到了长足的发展,已从求生存阶段走向求发展阶段,迫切需要改变原来手工作坊式的软件开发方式,从根本上提高软件产品质量,从而改善企业的生产过程,提升软件生产效率,使企业迈上一个新台阶。
早在2000年,Gartner Group①就预测到2003年至少70%的新应用将主要建立在软件构件之上。随着Web Services等技术的发展,将会进一步地推动构件技术的发展,而基于构件的软件开发方式也成为软件开发的主流技术。①http://www.garther.com
什么是软件构件?
工业化革命的伟大创新在于,功能再复杂的产品也可以由大量标准的零部件组装而成,分工越细、专业生产程度越高,总体生产效率就越高。构件技术就是一种类似于“零部件组装”的集成组装式软件生产方式,它把零件、生产线和装配运行的概念运用在软件产业中,彻底打破了手工作坊式的软件开发模式。
构件是软件的构成元素,具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口对外提供服务。一般而言,构件是软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体。广义上讲,构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用例等。
关键是建立国家级构件库
软件构件库作为一种支持软件复用的基础设施和软件资产的管理设施,它提供对软件构件的描述、分类、存储和检索等功能,它为基于构件的软件开发提供了有效的支持,提高了软件开发效率和软件产品质量。
建立具有丰富构件资源且统一的软件构件库,是当前国内推行构件技术要解决的关键问题,也是北京大学软件工程国家工程研究中心现在正在做的事情。该中心目前正在申请建设构件库体系,该体系包括技术体系、管理体系、法律法规体系。该体系还包含了省市级的构件库、地区级的构件库、不同软件企业的构件库,并且不同构件库之间具有统一的标准规范,可以互连、互操作。
软件生产方式的变革
构件技术的出现是对传统软件开发过程的一次变革。构筑在“构件组装”模式之上的构件技术,使软件技术人员摆脱了“一行行写代码”的低效编程方式,直接进入“集成组装构件”的更高阶段。
基于构件的软件开发,不仅使软件产品在客户需求吻合度、上市时间、软件质量上领先于同类产品,提高了项目的成功率,而且对软件的开发和维护变得简单易行,用户可以随时随地应应对商业环境变化和IT技术变化,实现“敏捷定制”。
从最终用户的角度来看,采用基于构件技术开发的系统,在遇到业务流程变化或系统升级等问题时,不再需要对系统进行大规模改造或推倒重来,只要通过增加新的构件或改造原来的构件来实现。
据已采用构件技术进行软件开发的我国某著名软件企业的相关统计显示,构件技术可以使软件的投放市场时间减少为原来的1/2到1/5,使软件的缺陷密度降低为原来的1/5到1/10,使软件的维护成本降低为原来的1/5到1/10,使整体软件的开发成本降低大约15%,长期项目可降低高达75%的成本。
当前我国软件企业面临着日益激烈的国际市场竞争,如果仅仅依靠软件技术人员,采用手工作坊式的生产模式,当需求稍有变动,就得重新开发系统。基于构件的软件开发技术是当前软件生产的世界潮流,只有掌握这样的技术,才能造就具有竞争力的国际软件企业。
在这种新的软件开发方式下,有些软件公司可以以开发构件为主要业务,提供符合标准的构件。系统集成企业则可将核心技术构件化,并汇总所需构件,集成组装为系统。正是这两者之间的明确分工,将软件工业化生产逐步推进。
可以想像,未来的软件产业将划分为三种业态:
一是构件业。类似于传统产业的零部件业,这些构件是商品,有专门的构件库储存和管理,软件工程国家工程研究中心研发的构件库现已经具备这样的功能。
二是集成组装业。它犹如汽车业的汽车工厂,根据市场的需求先设计汽车的款型,然后到市场上采购通用零部件,对特别需要,还可委托专门生产零部件的企业去设计生产,最后把这些零部件在组装车间按设计框架集成组装成汽车。我们就是要形成这样一批龙头企业,和一批具有创新能力的中小企业,组成专业化的软件企业集团,面向领域生产大型软件系统产品。
三是服务业。基于互联网平台上的软件服务,已经是当前正在推行的一种软件应用模式,未来这种应用将更加普遍。
以上是软件产业发展需求,而且不很遥远,也许几年之内就可能逐步实现。
2004年3月,由北京软件产业促进中心、软件工程国家工程研究中心启动了“软件构件库系统应用示范”项目。同年5月,北京软件行业协会、北京软件产业促进中心、软件工程国家工程研究中心和北京软件产品质量检测检验中心,共同组织开展了“北京第一届优秀软件构件评选活动”,进一步推行基于构件的软件开发方法,丰富了公共构件库系统的资源,并取得了显著的成效。
构件化已成为软件企业的需求,软件构件市场已现端倪,软件工业化生产模式正在推进软件产业的规模化发展。
2/25/2005
|