掌桥专利:专业的专利平台
掌桥专利
首页

一种模组软件的增量开发方法及系统

文献发布时间:2023-06-29 06:30:04



技术领域

本发明涉及计算机软件开发技术领域,特别涉及了一种模组软件的增量开发方法及系统。

背景技术

通信模组是物联终端的核心部件,负责接入网络与数据传输,下游覆盖多领域物联网场景,是物联网时代最关键的基础通信单;通信模组一般由两部分组成,硬件PCBA板和包含协议栈嵌入式软件,嵌入式软件包含运行的软件环境以及协议栈。随着通信模组软件复杂程度日益提高、需求量与日俱增,企业和开发者更加关注的是更加高效便捷的软件工程管理和代码重用。因此,需要一款高效的便于维护管理和代码重用的开发结构体系。

现有的通信模组软件开发模式,都是基于原厂基线框架来进行开发。这种方式,在开发过程中,特别是针对不同客户进行定制开发,代码维护工作量大,在内部代码维护和客户定制的管理上,存在很大的维护风险及很高的维护成本。

发明内容

本发明的目的是克服现有技术中模组软件开发代码维护工作量大,客户定制项目维护成本高,且基线升级工作量巨大的问题,提供了一种模组软件的增量开发方法及系统,使用区别于原厂的一套代码管理,对代码开发进行增量管理,极大限度的提高了代码复用度和开发效率,降低企业的各方面维护成本,实现了多客户的同步维护管理,降低了芯片原厂基线升级时的巨大工作量。

为了实现上述目的,本发明采用以下技术方案:

S1:基于新的芯片平台(Platform),创建增量开发代码仓库、原厂基线代码仓库;

S2:从芯片原厂获取原厂基线代码,并将获取的原厂基线代码上传至原厂基线仓库中;

S3:在增量开发仓库中,增加编译管理脚本和宏控管理文件,并进行平台和衍生项目的目录划分;

S4:通过编译管理脚本,自动将增量开发的代码,拷贝至原厂基线代码下,并进行编译,生成最终目标版本文件。

原厂基线(原厂基线代码)是芯片原厂提供给模组厂商进行二次开发的SDK代码包。新项目立项后,将会首先进行代码仓库(代码管理系统用于管理存放代码的仓库)的创建,本发明主要采用Git(GIT是代码版本控制系统,用于管理代码)代码仓库;本发明所涉及到的平台衍生项目的开发流程,均是在平台基础上,进行增量的定制开发,极大限度地提高了代码重用和开发效率。在原厂的基线进行迭代后,根据项目需要,结合原厂的变更记录进行评估,确定要升级的,会将新的基线代码,直接全部推送至存放原厂基线代码的仓库中,无需进行手动合并,并对增量开发仓库下的代码,进行增量代码合并,极大程度提高了基线升级效率。本发明所涉及的软件开发方式,是用于嵌入式的交叉编译,因此需对代码进行交叉编译,才可转变为设备可识别运行的可执行程序。本发明针对种类繁多的客户定制,实现了代码的高度复用,且极大降低了企业和开发者的代码维护成本。并极大程度降低了芯片原厂基线升级时的巨大工作量。通过本发明,可以将不同的客户定制代码进行归一管理维护,并通过宏控管理模块进行控制,从而降低开发和维护的工作量。

作为优选,所述步骤S1的具体步骤为:

S1.1:新项目立项;

S1.2:在增量开发仓库中创建平台通用功能目录进行功能开发;

S1.3:判断子功能是否修改原厂基线代码,根据判断结果创建目录,并增加宏控代码。

其中增量开发仓库用于开发,原厂基线仓库不会改动。两个代码仓库单独管理,实现代码开发的增量管理;并通过宏控,对繁多的客户定制进行统一的便捷管理。宏控是嵌入式软件开发用于管理代码的一种方式。S1.3中的子功能是指模组内部的软件功能,并不特指某一个功能,可能是模组的任何一种软件功能。

作为优选,所述步骤S1.3进一步表示为:

A:若子功能修改原厂基线代码,创建与原厂基线代码一样的目录,将要修改的原厂基线代码拷贝至与原厂基线代码路径一致的目录,对原厂基线代码进行增量修改,在增量开发仓库中增加宏控代码,开发完成;

B:若子功能未修改原厂基线代码,创建对应功能模块目录,进行全新的功能开发,并对新的功能增加宏控代码,开发完成。

根据是否修改原厂基线代码,创建不同的目录,并增加宏控,对繁多的客户定制进行统一的便捷管理。因为增量开发代码和原厂基线代码是两个不同的代码管理仓库,因此为了方便通过脚本一键拷贝和编译,保证两边的路径一致。在增量开发仓库中,平台或衍生项目所对应的目录下,分别增加项目对应的宏控文件,并在对应的定制代码中,使用代码宏。这里的子功能,就是平台或衍生项目中所涉及的软件功能,不涉及修改原厂基线代码,则在对应的项目目录下,创建功能模块目录。

作为优选,所述步骤S2的具体步骤为:

S2.1:平台衍生定制项目立项;

S2.2:分析项目需求,罗列增量开发的定制内容;

S2.3:判断是否需要拉取项目定制,若否,使用平台通用代码,开发结束;

S2.4:若需要拉取项目定制,则创建定制目录,并以项目名称命名,进行定制功能开发以及定制配置修改,非定制功能采用平台通用功能目录,开发结束。

新项目衍生的定制项目,均是在平台基础上进行增量的定制开发,极大限度的提高了代码重用和开发效率。如果不需要拉取定制项目,则直接实使用平台通用的代码,如果需要拉取定制项目,则需要根据定制功能编写新的代码。

作为优选,所述步骤S4的具体步骤为:

S4.1:编译管理脚本,选择要编译的目标项目;

S4.2:拷贝平台通用功能目录所有代码到原厂基线代码目录下,拷贝选择的项目目录所有内容到原厂基线代码目录下,得到新的基线代码;

S4.3:将新的基线代码进行宏展开,并使用原厂的编译框架对新的基线代码进行编译,生成最终目标版本文件。

通过一键编译管理脚本,触发可视化界面的呈现,进行项目的选择,随后后台脚本会自动选择对应项目,进行宏控管理的展开,并拷贝增量开发或修改的代码到原厂的基线代码中,然后使用原厂的编译框架,进行编译,并最终生成目标版本文件。通过编译,才能将生成的代码转变为设备可以识别运行的可执行程序。

一种模组软件的增量开发系统,包括:

Git代码托管模块,对软件代码进行维护管理;

编译管理模块,对可视化插件模块进行调用,进行项目选择以及代码编译,生成最终目标版本文件;

可视化插件模块,根据编译管理模块的命令,显示相应的操作界面;

平台模块,存储平台通用的所有代码以及文件;

最小系统模块,实现基线版本在项目硬件上的正常运行;

项目定制模块,存储平台项目衍生的定制项目。

最小系统模块其中包含了针对基线代码,所作的最小化适配,是为了使基线版本能在项目硬件上正常运行。最小系统模块,便于进行原始功能和开发功能的对比验证。项目定制模块是基于平台项目,衍生出来的客户定制项目(模组软件的定制项目,往往是在平台的基础上进行增量定制。本申请采用区别于原厂的一套代码管理,对代码开发进行增量管理,并通过宏控,对繁多的客户定制进行统一的便捷管理,同时提供了一种可视化操作编译界面,提高了代码复用度,降低了企业的各方面维护成本。

作为优选,所述Git代码托管模块包括:

增量开发仓库,用于进行增量开发;

原厂基线仓库,用于存放原厂无任何修改的基线代码。

模组软件在开发中,通常使用Git作为代码管理方式,本发明中,为了实现增量开发,且便于维护,使用2个Git仓库,对软件代码进行维护管理。

作为优选,所述编译管理模块包括:

可视化管理模块,用于进行可视化插件模块的调用,并进行项目选择;

增量代码拷贝模块,用于根据选择的项目,对相应项目的宏控和功能代码进行拷贝,并将拷贝的代码送入原厂基线仓库中;

宏控管理模块,对基线代码进行编译,生成最终目标版本文件。

编译管理模块负责了可视化插件的调用,以可视化的界面呈现,进行项目的选择,并在选择项目后,对相应项目的宏控和功能代码,进行拷贝操作,最终进入原厂基线中,进行相关基线代码的编译,并生成目标版本文件。

作为优选,所述平台内存储的代码包括功能模块代码、内核开发代码以及基线增量修改代码,存储的文件包括功能模块宏控文件以及平台项目通用配置文件;所述项目定制模块存储的代码包括针对客户定制开发的功能模块代码,存储的文件包括项目定制宏控管理文件以及项目定制配置文件。

定制项目模块中存储的内容并不包含平台性的通用配置和功能,定制项目未修改部分会以平台中为准。

因此,本发明具有如下有益效果:针对种类繁多的客户定制,通过一套宏控管理机制,实现了代码的高度复用,可以将不同的客户定制代码进行归一管理维护,并通过宏控管理模块进行控制,从而降低开发和维护的工作量,极大地降低了企业和开发者的代码维护成本,并极大程度降低了芯片原厂基线升级时的巨大工作量。

附图说明

图1是本发明中增量开发方法的步骤流程图。

图2是本发明中新项目开发的步骤流程图。

图3是本发明中衍生项目开发的步骤流程图。

图4是本发明中代码编译的步骤流程图图。

图5是本发明中原厂基线升级的步骤流程。

图6是本发明中增量开发系统的结构示意图。

图中:1、编译管理模块;2、可视化插件模块;3、平台模块;4、最小系统模块;5、项目定制模块;6、可视化管理模块;7、增量代码拷贝模块;8、宏控管理模块;9、开发系统体系。

具体实施方式

下面结合附图与具体实施方式对本发明作进一步详细描述:

实施例一:

本实施例为一种模组软件的增量开发方法,如图1所示,包括以下步骤:第一步,基于新的芯片平台,创建增量开发代码仓库、原厂基线代码仓库;第二步,从芯片原厂获取原厂基线代码,并将获取的原厂基线代码上传至原厂基线仓库中;第三步,在增量开发仓库中,增加编译管理脚本和宏控管理文件,并进行平台和衍生项目的目录划分;第四步,通过编译管理脚本,自动将增量开发的代码,拷贝至原厂基线代码下,并进行编译,生成最终目标版本文件。

新项目立项后,将会首先进行代码仓库的创建,本发明主要采用Git代码仓库;本发明所涉及到的平台衍生项目的开发流程,均是在平台基础上,进行增量的定制开发,极大限度地提高了代码重用和开发效率。在原厂的基线进行迭代后,根据项目需要,结合原厂的变更记录进行评估,确定要升级的,会将新的基线代码,直接全部推送至存放原厂基线代码的仓库中,无需进行手动合并。本发明所涉及的软件开发方式,是用于嵌入式的交叉编译,因此需对代码进行交叉编译,才可转变为设备可识别运行的可执行程序。本发明针对种类繁多的客户定制,实现了代码的高度复用,可以将不同的客户定制代码进行归一管理维护,并通过宏控管理模块进行控制,从而降低开发和维护的工作量,极大降低了企业和开发者的代码维护成本;并极大程度降低了芯片原厂基线升级时的巨大工作量。

下面对本申请的增量开发方法做进一步说明:

第一步:基于新的芯片平台,创建增量开发代码仓库、原厂基线代码仓库。

本实施例中,新项目立项后,将会首先进行Git代码仓库的创建,其中增量开发仓库用于开发,原厂基线仓库不会改动。

具体步骤如图2所示,首先进行新平台项目立项,创建两个代码仓库,一个为增量开发仓库一个为原厂基线仓库。

在增量开发仓库里进行新平台项目的增量开发:

创建平台通用功能目录进行功能开发(根据功能编写代码,包括多个功能),判断子功能是否修改了原厂基线代码,若没有,创建对应功能模块的目录,进行全新的功能开发,并对新的功能增加宏控代码;若修改了,则创建与原厂基线代码完全一样的目录,将要修改的原厂代码文件拷贝至与路径一致的目录,对原厂文件进行增量修改,并根据需要增加宏控代码。

至此,新平台项目的增量开发结束。

第二步:从芯片原厂获取原厂基线代码,并将获取的原厂基线代码上传至原厂基线仓库中。

第三步:在增量开发仓库中,增加编译管理脚本和宏控管理文件,并进行平台和衍生项目的目录划分,同时分别在各自目录下,增加对应的配置项、宏控管理文件等文件。

本发明方法所涉及的平台衍生项目的开发流程,衍生的定制项目,均是在创建的平台的基础上,进行增量的定制开发,极大限度的提高了代码重用和开发效率。

具体步骤如图3所示,新平台衍生项目立项,分析项目需求,罗列增量开发的定制内容;判断是否需要拉取项目定制,若不需要,使用平台通用代码,开发结束;若需要,则创建定制目录,并以项目名称命名,进行定制功能开发以及定制配置修改,非定制功能以平台通用功能目录为准,开发结束。

第四步:通过编译管理脚本,自动将增量开发的代码,拷贝至原厂基线代码下,并进行编译,生成最终目标版本文件。

本发明所涉及的软件开发方式,是用于嵌入式的交叉编译,因此需对代码进行交叉编译,才可转变为设备可识别运行的可执行程序。

编译管理脚本,选择要编译的目标项目;拷贝平台通用功能目录所有代码到原厂基线代码目录下,拷贝选择的项目目录所有内容到原厂基线代码目录下,得到新的基线代码;将新的基线代码进行宏展开,并使用原厂的编译框架对新的基线代码进行编译,生成最终目标版本文件。

具体如图4所示:

1、在增量代码仓库里编译管理脚本,进行可视化界面呈现,选择要编译的目标项目,本实施例中选择项目A。

2、先将增量管理的代码,进行拷贝,拷贝的时候,先对平台目录进行拷贝,因为该目录包含了平台所支持的所有功能。

3、紧接着对选择的项目A目录进行拷贝,此时项目A的定制功能和配置会被拷贝到基线代码目录下,并且会对平台的配置进行覆盖,从而使基线代码目录下的配置,是以项目定制为准的,同时基线目录下包含了平台支持的所有增量开发功能,从而得到新的基线代码。

4、在原厂基线目录下,对项目A的配置进行翻译展开,主要是针对宏进行展开,使用原厂的编译框架,通过shell和python脚本,将配置文件,翻译为代码可识别的头文件和编译可识别的文件,得到最终目标文件版本。

此时,原厂基线代码目录下,包含了平台的所有功能,和项目A的所有定制功能和配置,并且项目A未定制修改的,也会以平台为准。

本发明方法进行原厂基线升级的流程,在原厂的基线进行迭代后,根据项目需要,结合原厂的变更记录进行评估,确定要升级的,会将新的基线代码,直接全部推送至存放原厂基线代码的仓库中,无需进行手动合并;随后再将新基线和增量开发的代码仓库,进行对比,并对修改点进行合并。这里可以看到,对比出来的,只有增量修改过的部分,因此合并效率得到极大的提升。

具体步骤如图5所示:

1、判断是否需要升级基线代码,若否,结束基线升级流程;

2、若需要升级基线代码,将新的基线代码推送至原厂基线仓库中,将原厂基线仓库和增量开发仓库进行对比;

3、判断原厂修改点是否合并,若是,将原厂改动增量合并,若否,继续下一步;

4、判断原厂修改点是否合并完成,若是,结束基线升级流程,若否,回到第3步,重复步骤3、4,直到原厂修改点合并完成。

即本发明的增量开发方法,是可以减少基线升级时的工作量。

通过本发明的方法,提高了代码复用度,降低企业的各方面维护成本,通过宏控,对繁多的客户定制进行统一的便捷管理。

本实施例还提供了一种模组软件的增量开发系统,在代码管理方式上,提供了Git代码托管模块,模组软件在开发中,通常使用Git作为代码管理方式,本发明中,为了实现增量开发,且便于维护,使用2个Git仓库,对软件代码进行维护管理。

即本发明中Git代码托管模块包括两个单独管理的代码仓库:增量开发仓库和原厂基线仓库,其中增量开发仓库用于进行增量开发,原厂基线仓库用于存放原厂无任何修改的代码基线。

如图6所示,本增量开发系统体系9还包括:

编译管理模块1,包括可视化管理模块6、增量代码拷贝模块7以及宏控管理模块8,其中可视化管理模块负责了可视化插件的调用,以可视化的界面呈现,进行项目的选择;增量代码拷贝模块在选择项目后,对相应项目的宏控和功能代码,进行拷贝操作,并将拷贝的代码送入原厂基线仓库中;宏控管理模块进行相关基线代码的编译,并生成目标版本文件。

可视化插件模块2,用于根据编译管理模块的命令,显示相应的操作界面。

平台模块3,其中包含了平台通用的所有功能模块代码、内核开发代码、基线增量修改代码、功能模块宏控文件、平台项目通用配置文件等。

最小系统模块4,其中包含了针对基线代码,所作的最小化适配(包括平台适配开发代码、宏控制文件以及项目定制配置文件),是为了使基线版本能在项目硬件上正常运行;此最小系统版本,便于进行原始功能和开发功能的对比验证。

项目定制模块5,是基于平台项目,衍生出来的客户定制项目(模组软件的定制项目,往往是在平台的基础上进行增量定制),其中包含了针对客户定制开发的功能模块代码、项目定制宏控管理文件、项目定制配置文件等。此模块并不包含平台性的通用配置和功能,定制项目未修改部分会以平台中为准。

本申请针对通信模组软件开发模式提出的增量开发方法及系统架构,带来了如下几点有益效果:

1、可极大提高代码复用率,通过一套代码,实现了多客户的同步维护管理;面对多客户定制项目,至少提高50%的管理维护成本。

2、通过可视化的编译,降低了手动操作的失误率;面对多客户定制项目,至少降低30%的人工操作失误率。

3、降低了芯片原厂基线升级时的巨大工作量;在升级基线时,至少提高80%的工作效率,降低70%以上的代码风险。

以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

相关技术
  • 一种软件开发辅助系统、方法及软件开发系统
  • 一种HpaPaaS的低代码软件开发系统及软件开发方法
技术分类

06120116026519