CN117785132A - 基于生态方式的软件***构建方法、装置、设备及介质 - Google Patents
基于生态方式的软件***构建方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117785132A CN117785132A CN202311829429.7A CN202311829429A CN117785132A CN 117785132 A CN117785132 A CN 117785132A CN 202311829429 A CN202311829429 A CN 202311829429A CN 117785132 A CN117785132 A CN 117785132A
- Authority
- CN
- China
- Prior art keywords
- software
- service
- item
- business
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims description 17
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000006870 function Effects 0.000 claims description 116
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 230000018109 developmental process Effects 0.000 abstract description 21
- 230000033772 system development Effects 0.000 abstract description 4
- 238000011161 development Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008033 biological extinction Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000011087 paperboard Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 241001310793 Podium Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013550 semantic technology Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及一种基于生态方式的软件***构建方法、装置、设备及介质,属于软件开发的技术领域,其方法包括:获取用户的需求文档,其中,所述需求文档中至少包括一个业务需求;查询软件项目库中是否存在与所述业务需求相匹配的软件项目;若存在与所述业务需求相匹配的软件项目,则将所述与所述业务需求相匹配的软件项目确定为待组装项目;若不存在与所述业务需求相匹配的软件项目,则基于所述业务需求创建新的软件项目,将所述新的软件项目确定为待组装项目,并存储至所述软件项目库;将所有所述待组装项目进行组装,生成软件***。本申请具有提升软件***开发的扩展性的效果。
Description
技术领域
本申请涉及软件开发的技术领域,尤其是涉及一种基于生态方式的软件***构建方法、装置、设备及计算机可读存储介质。
背景技术
目前,在软件***的开发过程中,往往需要先根据业务需求来定义对应的模块、流程及接口,然后将多个模块、流程组合、协调并纳入到一个定义的框架和***中,来形成一个完整并可上线的产品***。
虽然上述软件***开发方式能够在初期满足开发的需求,但是,由于现有的软件***开发是在运行和上线前就将各个模块和流程相应地固定,因此在***完成并投入运行和上线后,如果需要根据业务需求的变化对软件***进行升级或扩展,会因增加的模块或删除的模块和流程与软件***中的原有架构、模块和流程之间的复杂交互,而导致需要修改大量代码,其软件***的扩展性较差。
发明内容
为了提升软件***开发的扩展性,本申请提供一种基于生态方式的软件***构建方法、装置、设备及计算机可读存储介质。
第一方面,本申请提供一种基于生态方式的软件***构建方法,采用如下的技术方案:
一种基于生态方式的软件***构建方法,包括:
获取用户的需求文档,其中,所述需求文档中至少包括一个业务需求;
查询软件项目库中是否存在与所述业务需求相匹配的软件项目;
若存在与所述业务需求相匹配的软件项目,则将所述与所述业务需求相匹配的软件项目确定为待组装项目;
若不存在与所述业务需求相匹配的软件项目,则基于所述业务需求创建新的软件项目,将所述新的软件项目确定为待组装项目,并存储至所述软件项目库;
将所有所述待组装项目进行组装,生成软件***。
通过采用上述技术方案,通过查询软件项目库,可以快速找到与业务需求相匹配的现有软件项目,避免重复开发,从而提高开发效率,由于软件***由多个可重用的组件组成,所以可以更容易地添加新功能或扩展现有功能,以满足不断变化的需求,进而提升了软件***开发的扩展性。
可选的,所述业务需求包括至少一个业务功能,与所述业务需求相匹配的软件项目包括至少一个功能模块,所述功能模块均与所述业务功能一一对应。
可选的,所述软件项目具有版本号,所述版本号对应业务描述信息,所述业务描述信息包括业务名称和功能描述信息;所述查询软件项目库中是否存在与所述业务需求相匹配的软件项目,包括:
查询所述软件项目库中是否存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目;
若存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则基于所述功能描述信息查询是否存在与所述业务需求所述包含的业务功能相匹配的软件项目;
若存在与所述业务需求所述包含的业务功能相匹配的软件项目,则判定存在与所述业务需求相匹配的软件项目,将所述与所述业务需求所述包含的业务功能相匹配的软件项目确定为所述与所述业务需求相匹配的软件项目;
若不存在与所述业务需求所述包含的业务功能相匹配的软件项目,则判定不存在与所述业务需求相匹配的软件项目。
通过采用上述技术方案,当查询软件项目库中是否存在与业务需求相匹配的软件项目时,通过考虑业务名称和功能描述信息,可以更准确地匹配符合业务需求的软件项目,有助于避免不必要的开发工作,进一步提高开发效率和降低成本。
可选的,所述基于所述业务需求创建新的软件项目,包括:
若存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则根据所述业务需求所包含的业务功能对所述符合所述业务需求的业务名称的软件项目进行处理,以构建新的软件项目;
若不存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则根据所述业务需求所包含的业务功能创建新的软件项目。
通过采用上述技术方案,创建的新软件项目可以更容易地与现有软件项目进行集成和组装,从而形成一个完整的软件***,这种集成和组装的能力可以提高软件***的可扩展性和灵活性,使其能够更好地适应不断变化的环境和需求。
可选的,所述根据所述业务需求所包含的业务功能对所述符合所述业务需求的业务名称的软件项目进行处理,包括:
创建一个第一空项目,将软件项目中所有与所述业务功能相匹配的功能模块平移至第一空项目中,得到一个新的软件项目;
其中,新的软件项目即为所述待组装项目,所述新的软件项目的业务名称与包含业务需求的软件项目的业务名称相同。
通过采用上述技术方案,在处理符合业务需求的软件项目时,通过创建第一空项目并平移与业务功能相匹配的功能模块,能够快速生成新的软件项目,提高开发效率,并保持软件***的可维护性和可扩展性。
可选的,在所述生成软件***之后,还包括:
当所述软件项目中不需要其中一个业务功能时,创建一个第二空项目,将不需要的业务功能平移至所述第二空项目中。
通过采用上述技术方案,通过创建一个第二空项目,将不需要的业务功能平移至第二空项目中,不仅可以优化现有软件项目的结构和代码质量,还可以为未来的开发工作和团队协作提供便利。
可选的,还包括:
统计所述软件项目库中每个所述软件项目的每个功能模块的创建时长;
若所述软件项目中的功能模块的创建时长达到对应的预设生命周期,则删除所述软件项目中的所述功能模块;
若所述软件项目中的所有功能模块的创建时长均达到对应的预设生命周期,则删除所述软件项目。
通过采用上述技术方案,能够自动地识别和处理过时和冗余的代码,从而降低维护成本,提高软件***的质量和稳定性。
第二方面,本申请提供一种基于生态方式的软件***构建装置,采用如下的技术方案:
一种基于生态方式的软件***构建装置,包括:
获取模块,用于获取用户的需求文档,其中,所述需求文档中至少包括一个业务需求;
查询模块,用于查询软件项目库中是否存在与所述业务需求相匹配的软件项目;若存在与所述业务需求相匹配的软件项目,则将所述与所述业务需求相匹配的软件项目确定为待组装项目;若不存在与所述业务需求相匹配的软件项目,则基于所述业务需求创建新的软件项目,将所述新的软件项目确定为待组装项目,并存储至所述软件项目库;
组装模块,用于将所有所述待组装项目进行组装,生成软件***。
通过查询软件项目库,可以快速找到与业务需求相匹配的现有软件项目,避免重复开发,从而提高开发效率,由于软件***由多个可重用的组件组成,所以可以更容易地添加新功能或扩展现有功能,以满足不断变化的需求,进而提升了软件***开发的扩展性。
第三方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,包括处理器和存储器,所述处理器与所述存储器耦合;
所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
附图说明
图1是本申请实施例中体现一种基于生态方式的软件***构建方法的流程示意图。
图2是本申请实施例中体现一种基于生态方式的软件***构建装置的结构框图。
图3是本申请实施例中体现一种电子设备的结构框图。
具体实施方式
以下结合附图对本申请作进一步详细说明。
本具体实施例仅仅是对本申请的解释,其并不是对本申请的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
本申请实施例提供一种基于生态方式的软件***构建方法,该基于生态方式的软件***构建方法可由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、台式计算机等,但并不局限于此。
如图1所示,一种基于生态方式的软件***构建方法,其方法的主要流程描述如下(步骤S101~S105):
步骤S101,获取用户的需求文档,其中,需求文档中至少包括一个业务需求;
在本实施例中,电子设备获取用户的需求文档,其中,需求文档可以是电子版的,还可是纸质版的,对此不做具体限定,当需求文档是纸质版时,需要工作人员通过电子设备的鼠标、键盘和触屏方式将需求文档录入至电子设备。
当电子设备获取需求文档时,确定需求文档中的业务需求,其中,确定需求文档中的业务需求可以采用nlp语义技术,还可以人工智能技术分析,还可以采用其他技术,对此不做具体限定。
步骤S102,查询软件项目库中是否存在与业务需求相匹配的软件项目,若是,执行步骤S103,否则执行步骤S104;
步骤S102具体的包括:查询软件项目库中是否存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目;若存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则基于功能描述信息查询是否存在与业务需求包含的业务功能相匹配的软件项目;若存在与业务需求包含的业务功能相匹配的软件项目,则判定存在与业务需求相匹配的软件项目,将与业务需求包含的业务功能相匹配的软件项目确定为与业务需求相匹配的软件项目;若不存在与业务需求包含的业务功能相匹配的软件项目,则判定不存在与业务需求相匹配的软件项目。
其中,业务需求包括至少一个业务功能,与业务需求相匹配的软件项目包括至少一个功能模块,功能模块均与业务功能一一对应。
在本实施例中,首先对软件项目库进行说明,软件项目库中用于存储已经开发完成的软件项目,每个软件项目至少包括一个功能模块,其中,软件项目的开发环境可以采用Gradle的集成开发环境,还可以采用其他开发环境,对此不做具体限定。
对于一个业务需求来说,随着业务升级、迭代,会产生多个版本,这些版本都对应一个业务名称和一个版本号;当需要该业务需求时,会从多个版本里选择一个版本进行结合,其中,每个版本均会对应一个版本号,并且每个版本的软件项目都会存储在软件项目库中,每个软件项目的版本号对应有业务描述信息,业务描述信息包括业务名称和功能描述信息。
例如,对于一个客户档案管理的软件项目,包括新客建档、变更、过户和销户等功能模块,其中,客户档案管理为业务名称,新客建档、变更、过户和销户为功能描述信息,在随着业务升级、迭代,会产生多个版本,例如,客户档案管理包括版本号A和版本号B,版本号B相对于版本号A来说,可能增加了新的功能模块,还可能是删除了其中某个功能模块。
在本实施例中,当电子设备获取业务需求时,提取业务需求对应的业务名称和业务描述信息,然后在软件项目库中查询是否存在与业务需求中的业务名称一致的软件项目。
其中,当与业务需求中的业务名称一致的软件项目存在多个版本号时,分别将每个版本号对应的软件项目中的功能模块与需求模块进行比较,当存在与需求模块相匹配的功能模块时,判定存在与业务需求相匹配的软件项目。
例如,业务需求的业务名称X,业务功能分别为a、b和c,在软件项目库中业务名称为X的软件项目包含A版本、B版本和C版本,其中A版本包含的功能模块为a和b,B版本包含的功能模块为c和e,C版本包含的功能模块为f,由于软件项目库中存在与业务需求相同的业务名称,且存在与业务功能相同的功能模块,所以判定存在与业务需求相匹配的软件项目;当软件项目库中不存在业务需求对应的业务名称或存在业务需求对应的业务名称但不存在与业务功能相同的功能模块时,判定不存在与业务需求相匹配的软件项目。
步骤S103,将与业务需求相匹配的软件项目确定为待组装项目;
对于存在与业务需求项目相匹配的软件项目分为两类,一类是某一软件项目与业务需求的业务名称相同,且该软件项目中的功能模块与业务需求完全相同,第二类是软件项目库中存在与业务需求的业务名称相同的软件项目,但业务功能分散在该业务名称下的多个版本号的软件项目中,其中,第一类可以直接作为待组装项目,第二类需要创建新的软件项目,结合项目文件。
步骤S104,基于业务需求创建新的软件项目,将新的软件项目确定为待组装项目,并存储至软件项目库;
具体的,若存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则根据业务需求所包含的业务功能对符合业务需求的业务名称的软件项目进行处理,以构建新的软件项目;若不存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则根据业务需求所包含的业务功能创建新的软件项目。
在本实施例中,需要创建软件项目的情况包括两类,第一类为不存在与业务需求项目相匹配的软件项目来说,第二类为存在业务需求的业务名称相同的软件项目,但业务功能分散在该业务名称下的多个版本号的软件项目中。
对于不存在与业务需求项目相匹配的软件项目来说,需要创生新的软件项目文件,创生项目文件即创建新的软件项目,其中,创生项目文件可以使用任何支持Gradle的集成开发环境。
对于存在业务需求的业务名称相同的软件项目,但业务功能分散在该业务名称下的多个版本号的软件项目来说,需要结合项目文件,结合项目文件即将所有与业务功能相匹配的功能模块结合在一个新的软件项目中。
具体的,创建一个第一空项目,将软件项目中所有与业务功能相匹配的功能模块平移至第一空项目中;得到一个新的软件项目;其中,新的软件项目即为待组装项目,新的软件项目的业务名称与包含业务需求的软件项目的业务名称相同。
例如,业务需求对应的业务功能为a、b和c,软件项目库中存在与业务需求的业务名称一致的版本号A和版本号B。
当版本号A包含的功能模块为a、b和f,版本号B包含的功能模块为c和e时,创建一个第一空项目,将版本A中的a和b功能模块、版本B中的c功能模块分别复制到第一空项目中,从而形成新的软件项目,新的即为待组装项目,且新的软件项目的业务名称与软件项目A和软件项目B一致。
需要说明的是,在本实施例中,软件项目就是一个java项目,每个功能模块在软件项目均对应于一个Bundle文件,Bundle文件是Bundle的入口代码,要求实现引擎的IBundle接口,IBundle接口不涉及业务,仅定义Bundle的ID,名称,安装和卸载。这是Bundle的后端代码,Bundle的前端代码放到public文件夹中,如a bundle的代码放到public\a文件夹下,约定入库代码放到main.js中,对其它HTML,CSS和JavaScript的组织没有任何限制,其中,Bundle是业务功能的最小集合。
当版本号A包含的功能模块为a,版本号B包含的功能模块b、h和e时,新的软件项目的创建方式为:创建一个第三空项目,将软件项目中所有与业务功能相匹配的功能模块平移至第三空项目中;创建一个第四空项目,其中,第四空项目用于开发软件项目中不包含的业务功能;当对第四空项目中的业务功能开发完成之后,将第四空项目中的功能模块平移至第三空项目中。
在本实施例中,电子设备创建一个第三空项目,将版本号A的a功能模块和版本号B的b功能模块复制至第三空项目中,创建一个新的第四空项目用于创建软件项目c功能模块,当c功能模块创建完成之后,将第四空项目中的c模块复制至第三空项目中,从而形成新的软件项目。
其中,将功能模块复制到新的软件项目中的方式即为将软件项目中的Bundle复制到一个新的软件项目中。
特别说明的是,软件项目中对原有的软件项目的不做改变,只是将软件项目的Bundle复制到一个新的软件项目中。
步骤S105,将所有待组装项目进行组装,生成软件***。
对待组装项目进行组装的作用只是装配项目,没有源代码,组装项目中只有部署相关的配置,如应用配置、Bundle配置和日志配置等。
对待组装项目进行组装还包括打包脚本,其中打包脚本支持三种情况:(1)在集成开发环境中运行组装项目;(2)以jar的形式部署项目;(3)以war的形式部署项目。第一种情况用于运维人员初始组装项目;第二种情况用于测试人员部署测试环境;第三种情况用于运维人员生产环境部署项目。
在对待组装项目进行组装时,还需要确定各个待组装项目的依赖关系,以确保在组装过程中不会出现循环依赖或冲突,根据依赖关系,可以确定各个待组装项目的组装顺序,确保软件***的正确运行。
在本实施例中,同一软件项目中采用编译依赖,不同软件项目采用运行依赖,其中,运行依赖可以通依赖声明语句实现。
例如,软件项目B依赖于软件项目A的0.10.0版本,此时,软件项目A为被依赖项目,软件项目B为依赖项目,采用依赖声明语句COMPILE('com.abc:ProjectA:0.10.0')实现软件项目A和软件项目B的依赖关系,其中,COMPILE是一个配置,表示这个依赖在编译时需要,并且在运行时也需要。com.abc:ProjectA:0.10.0是依赖的描述,com.abc是组织或组的ID。ProjectA是项目名称,0.10.0是该库的版本号。所以,这行代码的意思是:“我要在我的项目中添加一个依赖,它的组织ID是com.abc,项目名称是ProjectA,并且我要使用它的0.10.0版本”。
当一个软件项目中不需要或一个软件***中不需要某一功能模块时,需要***项目文件,即将不需要的功能模块在原有的软件项目中***出来。
具体的,当软件项目中不需要其中一个业务功能时,创建一个第二空项目,将不需要的业务功能平移至第二空项目中。
例如,软件***中包括银行卡支付和支付宝支付,随着时间的发展,大多数人可能摒弃了银行卡支付这一手段,而采用支付宝支付这一手段,此时需要创建一个第二空项目,将银行卡支付这一业务功能平移至第二空项目中,即将银行卡支付这一功能模块对应的Bundle平移到一个新的软件项目中平移至第二空项目中,从而优化现有软件项目的结构和代码质量。
在本实施例中,对于一些过时的功能模块还需要消亡项目文件,即将过时的功能模块的Bundle在软件项目中删除。
具体的,统计软件项目库中每个软件项目的每个功能模块的创建时长;若软件项目中的功能模块的创建时长达到对应的预设生命周期,则删除软件项目中的功能模块;若软件项目中的所有功能模块的创建时长均达到对应的预设生命周期,则删除软件项目。
在本实施例中,在电子设备存储有每个功能模块的预设生命周期,其中,每个功能模块的预设生命周期可以根据需要设定,不同的功能模块的生命周期可以相同,还可以不同,对此不做具体限定,电子设备实时统计软件项目库中每个软件项目中的功能模块的创建时长,其中,同一个软件项目的功能模块的创建时间也可能不同,当软件项目中部分功能模块到达对应的预设生命周期,删除对应的功能模块即可,当软件项目中的所有功能模块均到达对应的预设生命周期时,直接将整个软件项目删除即可。
特别说明的是,对于结合项目文件、***项目文件和消亡项目文件时,需要考虑软件项目之间的依赖关系,同一软件项目为编译依赖,不同软件项目之间为运行依赖。
在本申请的技术方案中,通过创生项目文件、***项目文件、结合项目文件、消亡项目文件和构建项目文件的依赖关系,可以以一种生态的方式构建软件***,当需要对软件***进行升级或修改的时候,无需对整个软件***进行更改,只要进行创生项目文件、***项目文件、结合项目文件、消亡项目文件以及更改依赖关系即可,不仅提升了软件***开发的扩展性,还提高了软件的开发效率。
图2为本申请提供的一种基于生态方式的软件***构建装置200的结构框图。如图2所示,该基于生态方式的软件***构建装置200主要包括:
获取模块201,用于获取用户的需求文档,其中,需求文档中至少包括一个业务需求;
查询模块202,用于查询软件项目库中是否存在与业务需求相匹配的软件项目;若存在与业务需求相匹配的软件项目,则将与业务需求相匹配的软件项目确定为待组装项目;若不存在与业务需求相匹配的软件项目,则基于业务需求创建新的软件项目,将新的软件项目确定为待组装项目,并存储至软件项目库;
组装模块203,用于将所有待组装项目进行组装,生成软件***。
作为本实施例的一种可选实施方式,查询模块202,包括:
查询子模块,用于查询软件项目库中是否存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目;若存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则基于功能描述信息查询是否存在与业务需求包含的业务功能相匹配的软件项目;若存在与业务需求包含的业务功能相匹配的软件项目,则判定存在与业务需求相匹配的软件项目,将与业务需求包含的业务功能相匹配的软件项目确定为与业务需求相匹配的软件项目;若不存在与业务需求包含的业务功能相匹配的软件项目,则判定不存在与业务需求相匹配的软件项目。
其中,业务需求包括至少一个业务功能,与业务需求相匹配的软件项目包括至少一个功能模块,功能模块均与业务功能一一对应。
在本可选实施例中,查询子模块,包括:
处理单元,用于若存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则根据业务需求所包含的业务功能对符合业务需求的业务名称的软件项目进行处理,以构建新的软件项目;
创建单元,用于若不存在业务描述信息中的业务名称与业务需求的业务名称一致的软件项目,则根据业务需求所包含的业务功能创建新的软件项目。
在本可选实施例中,处理单元具体用于:
创建一个第一空项目,将软件项目中所有与业务功能相匹配的功能模块平移至第一空项目中,,得到一个新的软件项目;其中,新的软件项目即为待组装项目,新的软件项目的业务名称与包含业务需求的软件项目的业务名称相同。
作为本实施例的一种可选实施方式,该基于生态方式的软件***构建装置200还包括:
平移模块,用于在生成软件***之后,当软件项目中不需要其中一个业务功能时,创建一个第二空项目,将不需要的业务功能平移至第二空项目中。
作为本实施例的一种可选实施方式,该基于生态方式的软件***构建装置200还包括:
统计模块,用于统计软件项目库中每个软件项目的每个功能模块的创建时长;
第一删除模块,用于若软件项目中的功能模块的创建时长达到对应的预设生命周期,则删除软件项目中的功能模块;
第二删除模块,用于若软件项目中的所有功能模块的创建时长均达到对应的预设生命周期,则删除软件项目。
本申请实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例的一种基于生态方式的软件***构建方法的全部或部分步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图3为本申请实施例提供的一种电子设备300的结构框图。如图3所示,电子设备300包括存储器301、处理器302和通信总线303;存储器301、处理器302通过通信总线303相连。存储器301上存储有能够被处理器302加载并执行如上述实施例提供的一种基于生态方式的软件***构建方法。
存储器301可用于存储指令、程序、代码、代码集或指令集。存储器301可以包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于至少一个功能的指令以及用于实现上述实施例提供的一种基于生态方式的软件***构建方法的指令等;存储数据区可存储上述实施例提供的一种基于生态方式的软件***构建方法中涉及到的数据等。
处理器302可以包括一个或者多个处理核心。处理器302通过运行或执行存储在存储器301内的指令、程序、代码集或指令集,调用存储在存储器301内的数据,执行本申请的各种功能和处理数据。处理器302可以为特定用途集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、数字信号处理器(DigitalSignalProcessor,DSP)、数字信号处理装置(DigitalSignalProcessingDevice,DSPD)、可编程逻辑装置(ProgrammableLogicDevice,PLD)、现场可编程门阵列(FieldProgrammableGateArray,FPGA)、中央处理器(CentralProcessingUnit,CPU)、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器302功能的电子器件还可以为其它,本申请实施例不作具体限定。
通信总线303可包括一通路,在上述组件之间传送信息。通信总线303可以是PCI(PeripheralComponentInterconnect,外设部件互连标准)总线或EISA(ExtendedIndustryStandardArchitecture,扩展工业标准结构)总线等。通信总线303可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双箭头表示,但并不表示仅有一根总线或一种类的总线。
本申请实施例提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上述实施例提供的一种基于生态方式的软件***构建方法的计算机程序。
本实施例中,计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。具体的,计算机可读存储介质可以是便携式计算机盘、硬盘、U盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、讲台随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、光盘、磁碟、机械编码设备以及上述任意组合。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种基于生态方式的软件***构建方法,其特征在于,包括:
获取用户的需求文档,其中,所述需求文档中至少包括一个业务需求;
查询软件项目库中是否存在与所述业务需求相匹配的软件项目;
若存在与所述业务需求相匹配的软件项目,则将所述与所述业务需求相匹配的软件项目确定为待组装项目;
若不存在与所述业务需求相匹配的软件项目,则基于所述业务需求创建新的软件项目,将所述新的软件项目确定为待组装项目,并存储至所述软件项目库;
将所有所述待组装项目进行组装,生成软件***。
2.根据权利要求1所述的方法,其特征在于,所述业务需求包括至少一个业务功能,与所述业务需求相匹配的软件项目包括至少一个功能模块,所述功能模块均与所述业务功能一一对应。
3.根据权利要求2所述的方法,其特征在于,所述软件项目具有版本号,所述版本号对应业务描述信息,所述业务描述信息包括业务名称和功能描述信息;所述查询软件项目库中是否存在与所述业务需求相匹配的软件项目,包括:
查询所述软件项目库中是否存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目;
若存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则基于所述功能描述信息查询是否存在与所述业务需求所述包含的业务功能相匹配的软件项目;
若存在与所述业务需求所述包含的业务功能相匹配的软件项目,则判定存在与所述业务需求相匹配的软件项目,将所述与所述业务需求所述包含的业务功能相匹配的软件项目确定为所述与所述业务需求相匹配的软件项目;
若不存在与所述业务需求所述包含的业务功能相匹配的软件项目,则判定不存在与所述业务需求相匹配的软件项目。
4.根据权利要求3所述的方法,其特征在于,所述基于所述业务需求创建新的软件项目,包括:
若存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则根据所述业务需求所包含的业务功能对所述符合所述业务需求的业务名称的软件项目进行处理,以构建新的软件项目;
若不存在所述业务描述信息中的业务名称与所述业务需求的业务名称一致的软件项目,则根据所述业务需求所包含的业务功能创建新的软件项目。
5.根据权利要求4所述的方法,其特征在于,所述根据所述业务需求所包含的业务功能对所述符合所述业务需求的业务名称的软件项目进行处理,包括:
创建一个第一空项目,将软件项目中所有与所述业务功能相匹配的功能模块平移至第一空项目中,得到一个新的软件项目;
其中,新的软件项目即为所述待组装项目,所述新的软件项目的业务名称与包含业务需求的软件项目的业务名称相同。
6.根据权利要求1或5所述的方法,其特征在于,在所述生成软件***之后,还包括:
当所述软件项目中不需要其中一个业务功能时,创建一个第二空项目,将不需要的业务功能平移至所述第二空项目中。
7.根据权利要求3所述的方法,其特征在于,还包括:
统计所述软件项目库中每个所述软件项目的每个功能模块的创建时长;
若所述软件项目中的功能模块的创建时长达到对应的预设生命周期,则删除所述软件项目中的所述功能模块;
若所述软件项目中的所有功能模块的创建时长均达到对应的预设生命周期,则删除所述软件项目。
8.一种基于生态方式的软件***构建装置,其特征在于,包括:
获取模块,用于获取用户的需求文档,其中,所述需求文档中至少包括一个业务需求;
查询模块,用于查询软件项目库中是否存在与所述业务需求相匹配的软件项目;若存在与所述业务需求相匹配的软件项目,则将所述与所述业务需求相匹配的软件项目确定为待组装项目;若不存在与所述业务需求相匹配的软件项目,则基于所述业务需求创建新的软件项目,将所述新的软件项目确定为待组装项目,并存储至所述软件项目库;
组装模块,用于将所有所述待组装项目进行组装,生成软件***。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合;
所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311829429.7A CN117785132A (zh) | 2023-12-27 | 2023-12-27 | 基于生态方式的软件***构建方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311829429.7A CN117785132A (zh) | 2023-12-27 | 2023-12-27 | 基于生态方式的软件***构建方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785132A true CN117785132A (zh) | 2024-03-29 |
Family
ID=90399852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311829429.7A Pending CN117785132A (zh) | 2023-12-27 | 2023-12-27 | 基于生态方式的软件***构建方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785132A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492028A (zh) * | 2018-03-21 | 2018-09-04 | 徐欣 | 数据需求标准化方法及标准化*** |
WO2021217911A1 (zh) * | 2020-04-27 | 2021-11-04 | 平安国际智慧城市科技股份有限公司 | 业务网站项目构建方法、装置、计算机设备和存储介质 |
CN114527974A (zh) * | 2022-02-28 | 2022-05-24 | 上海数禾信息科技有限公司 | 软件产品的业务功能实现方法、装置和计算机设备 |
CN116225522A (zh) * | 2023-03-03 | 2023-06-06 | 中国工商银行股份有限公司 | 软件原型的生成方法及其装置、电子设备及存储介质 |
-
2023
- 2023-12-27 CN CN202311829429.7A patent/CN117785132A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492028A (zh) * | 2018-03-21 | 2018-09-04 | 徐欣 | 数据需求标准化方法及标准化*** |
WO2021217911A1 (zh) * | 2020-04-27 | 2021-11-04 | 平安国际智慧城市科技股份有限公司 | 业务网站项目构建方法、装置、计算机设备和存储介质 |
CN114527974A (zh) * | 2022-02-28 | 2022-05-24 | 上海数禾信息科技有限公司 | 软件产品的业务功能实现方法、装置和计算机设备 |
CN116225522A (zh) * | 2023-03-03 | 2023-06-06 | 中国工商银行股份有限公司 | 软件原型的生成方法及其装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990367B2 (en) | Application development method, tool, and device, and storage medium | |
CN108319460B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
US20150363195A1 (en) | Software package management | |
CN105760168A (zh) | 一种代码文件自动生成方法及*** | |
CN112764753A (zh) | 一种项目的部署方法、装置、电子设备及存储介质 | |
CN107193607A (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
CN111881042A (zh) | 自动化测试脚本的生成方法、装置和电子设备 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN117693734A (zh) | 前端项目处理方法、装置、设备、管理***及存储介质 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN113094085A (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN116578282A (zh) | 代码生成方法、装置、电子设备及介质 | |
US20050268219A1 (en) | Method and system for embedding context information in a document | |
CN117785132A (zh) | 基于生态方式的软件***构建方法、装置、设备及介质 | |
Kano | Kachako: A Hybrid-Cloud Unstructured Information Platform for Full Automation of Service Composition, Scalable Deployment and Evaluation: Natural Language Processing as an Example | |
CN113806327A (zh) | 一种数据库设计方法、装置及相关设备 | |
US11775293B1 (en) | Deploying a static code analyzer based on program synthesis from input-output examples | |
Pinnecke | Product-lining the elinvar wealthtech microservice platform | |
CN111522627B (zh) | 一种Docker镜像管理方法、装置、设备及介质 | |
Ntentos et al. | Detecting and Resolving Coupling-Related Infrastructure as Code Based Architecture Smells in Microservice Deployments | |
CN117707985B (zh) | 软件兼容性信息获取方法、装置及存储介质 | |
JP2019179383A (ja) | Api処理方法、端末、api処理プログラム | |
US20230021412A1 (en) | Techniques for implementing container-based software services | |
CN116578281B (zh) | 基于代码包的网页开发方法、***、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |