国家863软件孵化器河南基地构件技术应用推广实践
河南省863软件孵化器有限公司 翟为唐
成立于2001年的河南863软件孵化器是科技部首批批准建立的国家级软件专业孵化器,由其开发运营的国家863中部软件园发展至今已成为河南省内最具规模和影响力的专业软件工业园区。目前,河南863软件孵化器建设有总建筑面积13万平方米的软件孵化基地,孵化企业74家,其中已培育毕业企业19家,在孵企业55家。
河南863软件孵化器积极为园区入孵企业以及河南地区软件企业提供专业的软件技术服务,目前已在863计划成果的支持下建立了软件技术开发公共服务平台,开发了软件构件库、可重用测试用例库等公共软件资源,能够为企业提供软件过程改进、软件测试、软件复用技术应用等技术服务,特别是在构件技术应用推广方面做了大量有益的探索工作。
针对河南地区软件企业普遍存在的软件复用技术利用不充分、软件生产规范化程度不高等问题,河南863软件孵化器通过举办构件技术培训、建立公共软件构件库平台、开发和共享软件构件资源、与企业合作开发特定领域(行业)构件化解决方案等一系列活动,有效地提高了河南地区软件企业软件开发的复用程度与工业化水平,进而有效降低了软件企业的运营成本,推动了河南本地软件企业做大做强,促进了河南软件产业的快速发展。
1 采取了“产学研”联动的应用推广模式
河南地区构件技术应用推广活动在全国863软件孵化器技术总体组的指导下,由河南863软件孵化器负责组织协调,联合本地大学的技术力量和本地骨干软件企业,组成“产、学、研”紧密结合的项目组;并通过地方科技计划支持,与本地软件产业与科技发展的意志相结合,使资源库与服务平台开发建设成为“政、产、学、研”的共识,聚集各方力量,确保构件技术应用推广活动的高标准、高质量运行。
郑州大学作为主要的技术依托单位,根据河南省863软件孵化器软件开发技术公共服务平台的现实情况,对河南构件技术应用推广活动的开展提出了总体实施方案;负责消化吸收以863成果为代表的国内外软件复用与构件技术领域的前沿技术;解决企业在相关领域构件技术应用过程中的关键技术问题,并对参与企业进行技术辅导。
河南863软件孵化器搭建区域性公共软件构件库作为软件构件资源交流与交易的网上平台,该平台是为推动软件复用与软件构件开发新技术的应用,实现软件构件交流与共享的公益性设施和平台。同时,该平台为构件开发者提供电子销售服务,开发商或个人可以通过该平台将其开发的可重用构件资源提交到平台上进行销售。另外,把构件库推广到区域内众多的软件企业,用于企业内部软件构件资源的存储、分类和检索,以及其他电子资产的管理与复用,有效提升了企业的软件开发和管理水平。
以河南863软件孵化器以及其他区域内骨干企业作为区域性构件技术应用示范单位,研究区域优势行业(如电力与铁路、现代物流与交通运输、电子商务、IPTV、电子政务、智能卡应用等)的领域构件开发技术,研发特定行业构件化解决方案和案例。并通过组织相关构件技术应用服务、示范宣传活动,在河南地区的企业内形成一定规模的构件技术应用。
2 构件技术应用推广活动
2.1 构件技术宣讲活动
2004年,河南863软件孵化器为了在河南地区宣传软件复用与构件技术,在河南省郑州市组织了“软件复用与构件技术”大型公开培训活动,并邀请了在软件工程领域有深入研究和实践的北京大学信息科学技术学院软件研究所的教授前来培训与指导。此次培训内容包括基于构件的软件开发(CBSD)、构件模型与开发方法、构件化软件开发过程与管理技术、软件构件/资源管理技术等方面。
此次培训介绍了软件复用的基本概念及关键技术,同时介绍了国内外在软件复用方面的研究成果和实践活动,并对企业如何加强相关构件技术研究和应用提出了一些建议。参加培训的人员来自河南地区软件企业、大专院校、研究机构,共有80多人。
2.2 构件技术研究活动
河南863软件孵化器联合郑州大学、区域优势领域(现代物流与交通运输、电子商务、IPTV、电子政务、智能卡应用等)骨干企业进行面向特定领域的构件开发规范、提取方法和技术、构件分类方法、构件测试技术的研究,并取得了丰硕的成果。
2.2.1 特定领域构件开发规范研究
联合相关领域的具有较为成熟的开发经验的企业,研究特定领域构件命名规范,确定各类领域构件的命名规则,保证构件标志的统一性,便于构件开发和交流;研究特定领域构件的描述规范,针对不同领域的构件其描述方式也存在不同的情况,通过分析特定领域构件描述的共性和通用信息,对领域构件的基本信息,如构件描述信息、构件类型、构件接口、依赖的环境等进行描述,以实现特定领域的构件描述信息的规范和管理;研究特定领域构件开发过程规范,研究分析特定领域应用系统的通用需求、开发过程及其关键环节,基于CMMI软件过程管理模型,对特定领域构件的分析提取、开发、测试、使用、升级改造等过程进行规范化描述。
2.2.2 特定领域构件的提取技术和方法研究
针对所选定的领域,与区域内具有一定行业应用成果的企业合作,形成一整套领域构件的提取技术和方法。首先,和领域专家一起分析该领域现有应用系统的功能和系统架构,提取到相对独立的程序功能模块,即领域构件原型;然后,对领域构件原型的可复用性进行检查,筛选出可复用性较高的构件原型;最后,按构件开发规范对这些领域构件原型进行适当的完善和规范,从而得到可复用性较好的领域构件。
2.2.3 形成特定领域的构件分类规范
研究在大规模构件库环境中,如何帮助构件库访问者简单、快捷、准确地发现所需要的构件资源等关键问题;研究面向特定领域的可定制的软件构件分类方法和检索机制,形成面向特定领域的构件分类规范,方便用户更好地浏览、理解和检索构件库中的各类软件构件。
通过领域构件本身实体及描述信息、使用信息及质量信息来实现领域构件的分类和整理,形成领域构件分类知识的描述方法;在领域共性需求的基础上,形成具有适用特定领域的构件分类描述模型,以支持领域特性要求;基于以上领域分类描述模型,和领域专家合作完成相关领域的构件分类规范。
2.2.4 构件测试技术研究情况
首先,针对许多构件不能直接运行的情况,建立构件可插拔、可快速生成构件测试代码和业务数据,以及可快速配置不同业务组合的构件测试环境,实现构件功能和性能的快速检测。然后,通过对相关领域知识、业务规则的掌握,研究领域构件的不同应用场景,最终形成特定领域构件的测试策略。最后,通过对构件认证标准和认证机制的研究,给构件库中每个通过测试的自主开发的构件发放构件测试结果认证,保证构件质量的可追踪性。
2.3 重点企业遴选、示范领域和项目的选取
河南地区构件技术应用示范单位主要选择区域优势领域的骨干企业,例如,IPTV领域的全国性领先企业郑州威科姆科技公司,在国内铁路(轨道交通自动化)行业中处于国内领先地位的河南思维科技和河南辉煌科技有限公司等企业,在智能卡领域全国市场占有率前三名的郑州新开普电子公司等本地软件企业。主要应用示范单位如下:
(1)IPTV领域示范单位:郑州威科姆科技公司。
(2)铁路领域示范单位:河南辉煌科技有限公司。
(3)智能卡应用领域示范单位:郑州新开普电子公司。
(4)电子商务领域示范单位:郑州大学。
(5)现代物流与交通运输领域示范单位:河南863软件孵化器、郑州玖和电子科技有限公司。
(6)电力信息化领域:郑州信源信息技术有限公司。
在开展面向领域的构件技术应用示范活动时,河南863软件孵化器首先针对自身开发的“第三方零担配送物流软件系统”和“中小企业ERP软件系统”两个项目进行构件化升级改造,为构件化技术应用推广活动的进一步开展做了宝贵的尝试,积累了丰富的经验。然后,选择区域优势领域骨干企业作为构件技术示范单位,充分利用这些企业在相关行业/领域的已有技术资源及业务模型,以及相关领域软件技术的研究成果,联合研发相关领域的领域构件和基于构件技术的行业应用解决方案。最后,通过这些企业形成的构件化技术应用成果,为本地其他企业起到了良好的示范作用。目前,这些示范单位都建立了企业级的软件构件库,用于构件资源的存储、分类和检索,以及其他电子资产的管理与复用,有效提升了企业的软件开发和管理水平。
2.4 研究技术总结和成果宣讲
河南863软件孵化器通过研究大规模构件库的可靠性和性能保障技术,建立了区域性构件库平台并能保障平台的正常使用。在河南地区优势领域(电力与铁路、现代物流与交通运输、电子商务、IPTV、电子政务、智能卡应用等),联合领域骨干企业完成了面向特定领域的构件开发规范、提取方法和技术、构件分类方法、构件测试技术,以及特定领域构件库开发应用支持环境的研究,并基于构件技术开发了相关领域的解决方案,使企业的软件开发和管理水平得到有效提高;采用收集整理、引进、自主开发、合作开发等多种方式聚集了一定数量的通用构件和领域构件资源。
目前,河南地区公共软件构件库已入库通用构件6000多个,领域构件1500多个,并全部通过公共构件库平台实现资源共享。其中,通用构件采用开发语言进行分类,包括Java、C#、C/C++等;领域构件包括电力与铁路、现代物流与交通运输、电子商务、IPTV、电子政务、智能卡应用等领域。
3 物流领域第三方零担配送物流软件系统构件技术应用案例
河南省863软件孵化器自主研发的第三方零担配送物流软件系统,是针对中国物流行业特点开发出的一套第三方物流软件,系统包括运单管理、运输配送、财务结算、报表管理、客服系统、车辆管理、网上运单查询、自动语音查询等功能,专门适用于不确定标的物、以各类零散中小企业和个体商户为客户主体的零担配送物流业态。这些零担配送物流企业虽然基本业务模式相同,但由于企业规模、管理模式、运单格式、客户管理、内外部运费结算模式、货款管理模式等方面的不同,当在不同物流公司实施软件系统时,零担配送软件在基本业务流程相同的情况下,需要进行大量个性化的二次定制开发。
在构件技术应用推广活动中,河南863软件孵化器把物流项目作为构件技术应用推广探索的试点。在该系统开发和实施过程中,充分利用软件构件技术,并在基础通用构件的基础上,设计和开发了一批行业通用性较强、实现某一特定物流业务逻辑的领域构件,并采用标准的XML配置来实现业务构件的定义;这样,在新项目开发时,这些业务构件可以通过配置直接使用,减少了重复开发的工作量。
首先,该系统在界面控制、算法、数据库处理、硬件接口等与业务无关的功能上使用大量通用构件,并基于通用构件建立包括系统管理(主要是用户角色权限的管理)、基础信息管理、工作流程管理等功能的可重用的系统底层框架。通用构件分类示意图如图1所示。
图1 通用构件分类示意图
然后,组织相关零担配送物流领域业务专家对现有应用系统的系统架构和功能进行分析,提取相对独立的功能模块作为领域(业务)构件的原型,并按照构件开发规范对构件原型进行适当的完善和规范,从而得到可重用性良好、能满足某一特定业务逻辑、并能够独立使用的领域构件,如运单管理、运输配送管理、财务管理、货款管理、客户关系管理等。在系统开发实施时,这些领域构件可以通过配置直接使用或替换,从而实现系统快速的二次开发与升级。基于领域构件的物流软件系统开发组装和部署如图2所示。
图2 基于领域构件的物流软件系统开发组装和部署图
河南863软件孵化器通过应用构件技术建立了零担配送物流系统解决方案,并形成了十几个应用案例。我们在应用该解决方案针对物流企业进行项目实施时,在保证软件质量的同时,提高了软件项目开发的效率,大大降低了软件系统开发和实施的工作量,缩短了工期,降低了项目成本。通过本项目的应用经验和成果展示,为河南地区构件技术进一步的应用推广起到了良好的示范和推动作用。
4 构件技术推广应用产生的效果
从2004年起,河南863软件孵化器就开始了构件技术的应用探索,并逐步在河南本地骨干软件企业进行构件技术应用示范试点工作,最后逐步在其他软件企业进行大范围的应用推广活动。此次活动中,企业应用推广均取得了良好的效果,企业通过应用构件技术在其业务领域开发基于构件技术的行业应用解决方案,使得系统开发速度、系统可用性和可靠性大幅度提高。据河南863软件孵化器物流软件项目统计,采用构件技术获得了以下效果,“软件项目开发成本降低大约40%,部分项目可降低60%;软件缺陷密度降低为原来的2/5~3/5;软件维护成本降低为原来的1/3~1/2;软件项目实施时间减少为原来的1/3~1/2”。
在构件技术推广活动中,以河南区域软件企业共性需求为导向,以行业应用为核心,选取在河南软件行业有代表性的领域,将这些领域作为推广构件技术应用、开展构件资源开发的重点。通过在骨干企业中推广中间件技术、构件技术等软件复用技术,并吸收这些企业参与构件开发,提高其对可重用构件资源的使用,提升其软件开发能力;并通过对相关行业特征、共性技术进行研究,形成有影响力的软件构件技术应用示范成果;在技术服务的同时,推动相关领域的产业集群发展。