在线工博会

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


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站