本发明专利技术公开了一种软件产品构建方法,涉及一种软件制作方法。该方法的特点是在软件产品制作过程中融入版本化管理方法,将软件产品版本化管理细化到每个构件,与其对应的源代码也做相应的版本化管理,有益于软件产品及构建的升级和维护。在软件产品的集成和构建过程中,借助分布式管理和云计算技术的资源共享和水平扩展能力,解决了在细化软件产品的版本化管理带来的资源消耗问题,有效的降低因环境问题导致构建失败的概率。
【技术实现步骤摘要】
本专利技术涉及一种软件制作方法,具体地说是。
技术介绍
软件的构建、集成在软件工程的整个过程中占有很大的比重,贯穿软件开发、测试、发布、部署、升级的整个过程;一个良好的软件构建、集成方法将有助于提高这些过程的效率和软件产品的质量。现代软件具有规模大、功能数量多、组成结构复杂等特点,并且需要和各种系统通信,这样的软件开发、构建和调试的过程都极为复杂。改动一个极细小的地方,可能会影响到很多其他功能,可谓牵一发而动全身,这样每次改动都需要测试可能影响到的地方,工作量巨大,且往往不能保证质量。由此,出现了很多功能丰富的软件构建和软件集成工具,包 括版本控制工具、持续集成工具、软件构建工具、项目管理工具,但是这些工具只是能够解决某一个领域的局部问题,它们对软件产品及其构件如何管理,发布以后如何有效的升级、维护,并没有给出明确的可行性方案。
技术实现思路
本专利技术的技术任务是针对上述现有技术的不足,提供一种准确、高效地软件产品构建方法。该方法从软件产品的模块划分,到模块的构建产出一个原子构件,再到由这些原子构件自由组合产出最终可交付使用的产品,在此过程中融入版本化管理方法。本专利技术的技术任务是按以下方式实现的,其特点是在软件产品制作过程中融入版本化管理方法,具体包括以下步骤 (1)建立构件仓库和源代码仓库,用于管理所有版本的构件及其源代码; (2)识别软件模块,将软件产品按业务逻辑进行模块划分,每个模块在物理结构上独立存放; (3)规划统一的模块的目录结构,在每个模块中创建构建器; (4)规划软件产品和软件模块的版本,内容包括软件产品和软件模块的功能模块、性能指标、要修复的问题,以及此版本的软件产品是由哪些版本的哪些软件模块产生的构件组成; (5)开发软件产品的功能模块,或者修改软件产品及其功能模块中存在的问题;在开发过程中,可以随时执行构建,把功能模块构建为相应版本的构件,并发布快照版本,用于调试、测试;发布的内容为构件,及构件和其他构件之间的依赖关系; (6)功能模块的代码提交后,自动触发该模块和该模块影响的模块(依赖此模块的模块)的构建,被影响的模块的构建还会继续触发这些模块影响的模块的构建,直至最终产品完成构建; (7)构件开发完成并测试通过后,可构建并发布正式版本,其过程为 若软件的功能模块依赖的其它构件的版本发生变化,修改构建器对应的文件,提交到代码仓库;标记当前代码仓库中的源代码为待发布的版本,同时构建器也被标记为相应的版本;执行构建,并上传构件到构件仓库;正式版本发布后,仓库中对应的版本的构件将不允许再修改; (8)根据项目的需要,选择不同构件的不同版本,进行组合构建,产出可交付的产品版本。由于f中所述的构建过程,在产品规模较大、功能模块较多时,引发的构建任务数量巨大,在单服务器上构建耗时会很长,所以步骤f中引入了持续集成服务集群,由一个中心节点分配构建任务到各个子节点,各子节点完成任务后,通知中心节点; 为方便集群扩展,引入了虚拟云计算环境,可克隆服务节点,并添加到集群中。步骤h的构建过程中,要检查构件的依赖关系是否正确、构件的动态测试结果是 否符合要求、构件的静态测试结果是否符合要求。进一步的,步骤c中所述构建器由多个文件组成,定义该模块与其他模块间的依赖关系,包括编译时、运行时、测试时的依赖关系。步骤f中,功能模块的构建也可以由定时任务触发,其后的构建过程与代码提交触发的构建一致。本专利技术的软件产品构建方法与现有技术相比具有以下突出的有益效果 (一)产品以及组成产品的每个构件的版本化,使发布的产品有明确的版本,有利于产品的升级和恢复; (二)将代码和资源文件、构件、应用软件都存放到云端,屏蔽了软件产品构建、集成、发布产品过程中对物理资源的要求,能够有效的避免本地物理文件存储的弊端; (三)通过每个模块中的构建器,能够达到随时随地构建的效果; (四)产品模块间的依赖关系固化到构件中,使得在构建产品过程中选择构件时,只关心顶层的构件及版本,而不用去关心每一个构件及版本,有效的减小产品构建的复杂度,降低产品构建的出错概率; (五)构建的快照版本与正式版本共存的方案,解决了主版本因日常化开发导致不稳定因素问题,能够随时获取最新的稳定版本或者其他稳定版本; (六)构建过程的版本化实现,能够不依赖于已构建出的物理文件,还原产品的任一版本,提闻构建系统的容灾能力。附图说明附图I是利用本专利技术方法构建应用软件版本I的示意 附图2是利用本专利技术方法构建应用软件版本2的示意 附图3为图I、图2中应用软件版本I与应用软件版本2的对比说明。具体实施例方式参照说明书附图以具体实施例对本专利技术的软件产品构建方法作以下详细地说明。实施例一(利用本专利技术方法构建应用软件版本I) 如附图I所示,构建方法具体为 I、搭建出构件仓库系统和源代码版本仓库系统;2、应用软件按照业务划分为模块a、模块b、模块C、模块d、模块e五个模块,每个模块在源代码仓库中独立存放; 3、为五个模块在源代码仓库中分别创建目录结构,包含源代码、相关的资源文件;为应用软件以及每个模块创建构建器; 4、在应用软件的构建器中描述应用软件(版本I)由构件I(版本I)、构件2 (版本I)、构件3 (版本I)、构件4 (版本I)、构件5 (版本I)组成。在每个模块的构建器中描述版本构件之间的依赖关系和性能指标、要修复的问题,构件(版本I)依赖构件2 (版本I)和构件4 (版本I);构件4 (版本I)依赖构件5 (版本I) 5、完成模块源代码的开发并提交至源代码仓库。在此过程中可能产生若干个快照版本; 6、测试通过后,在2012-07-0508:54:22时刻,从源代码仓库检出稳定版本,依次构建出构件5 (版本I)、构件2 (版本I)、构件3 (版本I)、构件4 (版本I)、构件I (版本I)。最终构建出应用软件(版本I)。实施例二 (利用本专利技术方法构建应用软件版本2) 实施例一所得软件在应用了一段时间之后,应用软件需求发生变更,需要去除模块c(构件3),并且构件I、构件4、构件5需要升级。如附图2所示,构建方法具体为 1、修改应用软件的构建器模块的构建器,在应用软件的构建器中描述应用软件(版本2)由构件I (版本2)、构件2 (版本I)、构件4 (版本2)、构件5 (版本2)组成;修改构件I的构建器,依赖构件2 (版本I)、构件4 (版本2);修改构件4的构建器,依赖构件5 (版本2); 2、完成构件1、4、5对应模块源代码的开发并提交至源代码仓库。在此过程中可能产生若干个快照版本; 3、待构件I、4、5对应的模块代码测试通过后,在2012-07-1311:30:43时刻,从源代码仓库检出稳定版本,依次构建出构件5 (版本2)、构件2 (版本I)、构件4 (版本2)、构件I(版本2)。最终构建出应用软件(版本2)。应用软件版本I与应用软件版本2的代码版本及依赖模块、构件的比对如附图3所示。权利要求1.,其特征在于在软件产品制作过程中融入版本化管理方法,对软件产品做模块识别、模块的构建职责下发、产品的构件仓库化管理、产品及构件的版本化管理、构件仓库的分布式管理以及软件产品云端构建方法,具体包括以下步骤 1)建立构件本文档来自技高网...
【技术保护点】
一种软件产品构建方法,其特征在于:在软件产品制作过程中融入版本化管理方法,对软件产品做模块识别、模块的构建职责下发、产品的构件仓库化管理、产品及构件的版本化管理、构件仓库的分布式管理以及软件产品云端构建方法,具体包括以下步骤:1)建立构件仓库和源代码仓库,用于管理所有版本的构件及其源代码;2)识别软件模块,将软件产品按业务逻辑进行模块划分,每个模块在物理结构上独立存放;3)规划统一的模块的目录结构,在每个模块中创建构建器;?4)规划软件产品和软件模块的版本,内容包括软件产品和软件模块的功能模块、性能指标、要修复的问题,以及此版本的软件产品是由哪些版本的哪些软件模块产生的构件组成;5)开发软件产品的功能模块,或者修改软件产品及其功能模块中存在的问题;在开发过程中,可以随时执行构建,把功能模块构建为相应版本的构件,并发布快照版本,用于调试、测试;发布的内容为构件,及构件和其他构件之间的依赖关系;6)功能模块的代码提交后,自动触发该模块和该模块影响的模块的构建,被影响的模块的构建还会继续触发这些模块影响的模块的构建,直至最终产品完成构建;7)构件开发完成并测试通过后,可构建并发布正式版本,其过程为:若软件的功能模块依赖的其它构件的版本发生变化,修改构建器对应的文件,提交到代码仓库;标记当前代码仓库中的源代码为待发布的版本,同时构建器也被标记为相应的版本;执行构建,并上传构件到构件仓库;正式版本发布后,仓库中对应的版本的构件将不允许再修改;8)根据项目的需要,选择不同构件的不同版本,进行组合构建,产出可交付的产品版本。...
【技术特征摘要】
【专利技术属性】
技术研发人员:蔡卫卫,王刚,崔其振,
申请(专利权)人:山东浪潮齐鲁软件产业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。