《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于复用的多级资源库ARMS平台的应用
基于复用的多级资源库ARMS平台的应用
来源:微型机与应用2011年第10期
任玉双1, 程建平2, 高隆林2, 韩 锋2
(1. 山东师范大学 信息科学与工程学院,山东 济南 250014; 2. 中创软件工程股份有限公司
摘要: 运用了构建ARMS(Asset Repository Management System)平台的重要基础设施——多级资源库,为企业级资源的积累、复用、锤炼提供了基本的工具保障。介绍了软件复用技术,提出了一种能快速进行软件开发的新型解决方案。详细分析了多级资源库的体系结构、ARMS系统平台的功能及相关技术,从资源开发、版本发布、反馈处理等方面研究了ARMS系统平台的应用。实践表明,多级资源库ARMS平台的研究与开发,有效地解决了软件资产的复用和安全管理问题,提高软件复用率,加快软件开发速度。给出了实践项目中ARMS平台软件开发的流程图。
Abstract:
Key words :

摘  要: 运用了构建ARMS(Asset Repository Management System)平台的重要基础设施——多级资源库,为企业级资源的积累、复用、锤炼提供了基本的工具保障。介绍了软件复用技术,提出了一种能快速进行软件开发的新型解决方案。详细分析了多级资源库的体系结构、ARMS系统平台的功能及相关技术,从资源开发、版本发布、反馈处理等方面研究了ARMS系统平台的应用。实践表明,多级资源库ARMS平台的研究与开发,有效地解决了软件资产的复用和安全管理问题,提高软件复用率,加快软件开发速度。给出了实践项目中ARMS平台软件开发的流程图。
关键词: ARMS平台;多级资源库;复用;软件复用技术;资源开发

    ARMS(Asset Repository Management System)是一个资源库管理系统平台,通过这个平台对资源库中的资源进行有效地管理和使用,提高了企业开发人员的工作效率,改善了用户的使用效率。ARMS这一平台提供了软件开发的综合解决方案,能够提高开发效率,简化繁琐流程,保证产品的稳定性、可用性。新的软件开发过程模型的各个阶段都是围绕着可复用软件资源实施的,因此合理而有效地使用资源库是软件资产复用成功的关键。
    软件复用技术是软件工程领域的一个研究热点。复用概念的第一次引入是在1968年NATO软件工程会议上,Mcllroy的论文“大量生产的软件构件”中[1]。随着复用实践的深入,将会积累大量自主开发的资源、购买的商业资源和其他组织开发的资源,这些可复用资源构成了庞大的企业资产,而资源库作为分类和管理软件资产的基础设施就变得十分重要了。在资源库的支持下,直接使用已有的合格的资源开发应用系统,避免了对资源的重复开发,从而提高软件开发效率和软件质量。软件资源库作为管理软件资源及促进软件复用的核心机制,将基于复用的开发和面向复用的开发过程与工具集成在一个统一的框架中,当前软件界对可复用资源库及其相关问题进行了深入研究,并取得不少成果[2]。
    本文为了有效地解决软件资产的复用和安全管理问题,采用多级资源库,避免了独立库综合性差的缺陷,对于深层次的科学研究,它所提供的不是单一的信息,而是一个系统的立体资源、信息群。
1 软件复用
1.1 软件复用技术

    软件复用是指利用现有的软件资源来构造新的软件系统。该软件成分可能是已有的资源,也可能是专门开发设计的可复用的软件资源。其中,可复用的现有软件成分是软件复用技术的核心。复用成分的获取、管理和利用是构成软件复用技术的三个基本要素[3]。
1.2 软件复用的优点[4]
    实践证明,软件复用可以有效提高软件开发效率和软件质量,是解决“软件危机”的一条比较切实可行的途径。软件复用的优点可归纳为以下六个方面:
    (1)提高软件生产率:软件复用最明显的好处在于提高生产率,减少开发代价。生产率的提高不仅体现在代码开发阶段,同样适用于分析、设计及测试等其他阶段。
    (2)提高软件质量:使用高度优化、在实践中经受过检验的可复用构架、资源构造系统,可以提高系统的性能和可靠性。
    (3)减少系统维护量:使用优化、检验过的资源,避免了很多可能发生的错误;而多个系统间资源的重复使用,同时减少了系统维护量。
    (4)提高互操作性:软件复用的更为专业化的好处在于提高了系统间的互操作性。相同的构架、接口可以有效地实现系统间的互操作。
    (5)支持快速原型:利用可复用资源库可以快速有效地构造应用系统的原型,以获得用户对系统功能的反馈,缩短系统的开发周期。
    (6)减少培训开销:使用相同的构架、资源构造和实施不同的系统,可以使开发和维护人员减少对不同技术所需要的培训。
2 多级资源库及ARMS系统平台
2.1 多级资源库的体系结构 
   
    本文采用多级资源库,为方便对资源库中的资源进行管理和使用,必须采用合理的权限管理方案,即采用多级资源库的三级权限管理模式:对资源设置检索、使用(下载执行码和使用文档)、获取源码三级权限。通过使用合理的权限管理模式,更好地解决了软件资产复用的问题,保证了资源库中软件资产的安全管理。整个资源库体系分为公司级资源库和项目级资源库,公司级资源库满足企业整体资源共享管理的需要,项目级资源库满足项目团队共享资源的需要。多级资源库体系的基于角色的用户管理机制,使系统具有灵活的权限分配和安全的控制方式。对开源资源不控制访问权限,公司级资源库起到远程代理功能。多级资源库体系结构如图1所示。

 

 

2.2 ARMS系统平台的功能及相关技术
2.2.1 对资源存储、检索、升级、反馈的服务与管理

     资源库为资源的存储而开发,为了更好地让软件开发者发现和使用资源,ARMS系统平台提供了相应的资源分类组织、检索、升级以及反馈等功能。同时由于资源库系统的开放性,相应的权限管理和维护功能也是必不可少的[5]。
    (1)资源存储:新的资源经过测试审核合格后提交到资源库中供用户使用,资源库中存储的不仅仅是软件实体本身,还应该包括软件附带的相应属性取值和描述信息,资源的描述信息中包含有描述依赖关系和相关文档等。ARMS系统平台必须实现详细记录资源描述信息的存储方案,对新添加资源的描述信息进行整理和规范化,以方便资源库的存储管理。
    (2)资源检索:资源的检索是ARMS系统平台的核心功能,提供较好的基于分类的资源检索能力,实现合适的检索方案。采用用户最常使用的检索工具,尽量减轻用户的操作负担,并且能够对检索到的资源查看其相应的功能说明、描述信息及文档等,缩短检索时间,实现高效的查询。当检索资源时,首先检索本地资源,即项目级资源,如果资源不存在则进行公司级检索,最后检索外部资源库,达到资源归类及共享使用的效果。
    (3)资源升级:通过持续集成服务来完成版本升级功能,采用Hudson作为持续集成工具。Hudson根据配置文件的内容,定时从版本控制库中提取资源,一旦发现内容有变更,就调用持续构建文件执行构建工作。然后进行相应的初始化、编译、打包等工作,完成版本升级处理。
  (4)资源使用情况反馈:对资源进行存储以后需要对其进行使用和评价,考虑到资源在实际应用中可能出现不适应性的问题,增加了资源使用的反馈机制,使用者可以对资源的应用情况提交相应的反馈意见,对资源的正确性、可靠性、实时性等进行评价,从而为资源的升级和修改提供依据[5]。
2.2.2 相关技术
    本文ARMS系统平台主要采用Maven技术,Maven作为Apache的一个开源项目,旨在给项目管理提供更多的支持。
    Maven的基本原理很简单,采用远程资源库(Remote Repository)和本地资源库(Local Repository)以及一个类似build.xml 的pom.xml,将pom.xml中定义的jar文件从远程资源库下载到本地资源库,各个应用使用同一个本地资源库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。Maven基本原理框架结构如图2所示。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以Maven下载很小,在执行Maven任务时,才会自动下载需要的插件[6]。

    要创建远程资源库,只需将这个资源库的目录部署在网站中。Maven 建议使用远程资源库以便于集中维护,最大程度地实现项目之间资源的共享。为避免每次构建时都要下载文件,Maven 在首次下载必需的相关性资源时就自动地将其高速缓存在本地资源库中。
3 多级资源库ARMS平台的应用
    针对传统开发模式存在不停地更换程序中的JAR 包、需要了解各种依赖关系和版本号、明知重复开发的东西但却不知如何获得它的复用、涉足一个新行业领域后无从下手只能从零开始等问题,开发了ARMS系统平台。利用这个ARMS系统平台能够更好地复用已有的软件资源,开发出新的产品,有效地解决了当前开发中的棘手问题,加快了开发速度。
3.1 资源开发
    在对资源库系统中的资源进行开发组装时,总会涉及资源间的关系关联问题。例如,资源A的实现依赖于资源B,则在用A进行组装模块时,必然用到资源B。ARMS系统平台主要采用Maven构建工具开发软件资源,Maven技术能够实现资源批量导入导出,利用本地资源库中的资源进行开发,尽量避免使用依赖资源,保证依赖资源的自动获取和升级更新,减少代码库的积存。
3.2 版本发布
    开发拥有多个模块的应用程序时,在某些情况下每个模块的更新都很频繁,需要不断地获取最新子模块。构建系统需要以简单的方式来实时更新。Maven中快照是通过持续集成服务器来获得最新源代码生成的产品。定义一个快照版本意味着Maven将寻找最新的依赖。默认情况下Maven会按日生成一次快照。当定义了一个非快照的依赖,Maven将会下载依赖一次而不会再去获取它。
    ARMS平台的版本发布阶段,首先从源码库中提交代码到持续集成服务器中,通过持续构建,每日一次迭代形成小版本发布即为快照版本,然后通过测试人员的检测并汇总变更记录,进而快速迭代形成稳定发布版本,在此过程中采用双重迭代方法。版本发布流程如图3所示。

3.3 反馈处理
  随着资源库系统的不断发展和网上资源库的不断完善,可能在不同的地理位置存在着多个资源库,这些资源库可以是同构或异构, 相应的有各自对应的反馈信息,通过提取工具和转换、集成工具,可以将各个信息源中的数据方便地集成到中央的统一信息库中,用户只需访问该中央信息库即可[7]。新版本的发布是否可行需要得到用户的信息反馈,资源的后期度量是基于复用者的反馈信息。如何收集用户反馈数据,进行合理的组织,也是亟须解决的问题。首先应通过用户提交的反馈信息拟定新的需求;然后制定迭代计划,在哪个版本解决哪些缺陷,添加哪些新功能,制定相应的线路图;然后通过开发者开发的新版本,测试并发布。
4  ARMS平台支撑软件开发流程图
    ARMS平台支撑软件开发的流程图如图4所示。

    ARMS平台支撑软件开发的优越性:对于开发人员,ARMS系统平台提供的是一种更便捷、更高效、更轻松的研发解决方案,通过配置一个文件获得整个项目的管理:(1)约定优于配置的理念,在一个约定好的环境和规则下做游戏,ARMS提供的开发方案中就是基于Maven的这种概念;(2)开发过程中清楚版本的概念很重要,这是提升产品质量的基础,而基于构件的开发正是以此为出发点对项目中的依赖包进行依赖管理和配置;(3)配置好依赖,在这之后可以随需添加,剩下的事情只需交给ARMS去做,开发人员只专注于开发工作而不是被复杂混乱的依赖所累。 
    利用ARMS平台进行软件开发,充分使用了资源库中的资源,大大提高了软件资源的复用率。若采用传统的系统开发方法,同样规模的软件需要更大的工作量,而通过使用新的开发方法,使其开发更灵活,效率更高;减少了开发时间及成本,提高了软件开发效率和产品的质量,减少了系统的维护代价。
    论文研究的多级资源库给项目开发提供了一个切实的基础,基于这一工具开发的ARMS系统平台能够克服传统开发方法的不足,提高软件资源的复用率,加快软件开发的速度。通过公司项目实践,利用ARMS系统平台进行软件开发,基于软件复用验证了新的开发方法的可行性;由于软件资源开发设计范围广,本文利用ARMS系统平台支撑开发软件的开发模式还存在许多不足之处,希望能根据需求在以后的实践中完善。
参考文献
[1] HAFENDH M, FATMA M, ALI M. Reusing software:Issues and research directions[J].IEEE Transactions on Software  Engineering,1995, 21(6):528-562.
[2] 贾晓辉.可复用构件库及其检索技术的研究与应用[D].上海:东华大学,2005.
[3] 张秀爱.软件复用技术研究[J]. 电脑知识与技术,2008,3(6):1214-1215.
[4] 郭立峰,郭耀,常继传.NATO软件复用标准简介[M].北京:北京大学出版社,2005.
[5] 杜建伟,顾斌.基于流程的构件库管理系统及其实现[J].计算机系统应用,2007(8):16-19.
[6] 张清立.Maven的基本原理和Maven2的新特性[EB/OL].http://blog.csdn.net/zql2002/archive/2008/06/12/2537502.aspx,2008.
[7] 王希辰.数据仓库技术与可复用构件库系统研究[J].中国传煤大学学报(自然科学版), 2006,13(2):68-73.

此内容为AET网站原创,未经授权禁止转载。