CN107368321B - 一种软件版本演进方法及系统 - Google Patents
一种软件版本演进方法及系统 Download PDFInfo
- Publication number
- CN107368321B CN107368321B CN201710626046.8A CN201710626046A CN107368321B CN 107368321 B CN107368321 B CN 107368321B CN 201710626046 A CN201710626046 A CN 201710626046A CN 107368321 B CN107368321 B CN 107368321B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- functional unit
- newly added
- software
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000002452 interceptive effect Effects 0.000 claims abstract description 98
- 230000003993 interaction Effects 0.000 claims abstract description 95
- 230000008569 process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 7
- 230000008859 change Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种软件版本演进方法及系统,该方法预先设计软件中协作模块之间的数据交互接口,将该接口的数据结构设计为包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;以及预先制定能够通用于软件各协作模块的第一、第二及第三功能单元。当软件版本演进时,只需向所述数据结构中增加/扩展相应属性,并在协作模块中利用各功能单元分别进行扩展属性判断、数据赋值及获取等操作,即可应对协作模块间的交互信息变更需求。从而只需对所述数据结构进行变更(向数据结构中增加相应属性)即可完成演进,提高了软件版本的演进效率,缩短了软件产品的研发周期,且基于属性的自由设置/扩展及判断功能,本发明还能实现对之前版本的兼容。
Description
技术领域
本发明属于软件开发技术领域,尤其涉及一种软件版本演进方法及系统。
背景技术
随着软件工程的不断发展,在软件开发过程中,一个高效稳定的软件一般不是一次性交付的,而是需要通过多个版本的不断演进来产生,并最终交付到客户手中。
之所以会存在这样的现象,是因为客户的需求是多变的,从而导致软件相关模块之间的交互信息需要不断变更,而在这些信息不断变更产生新的软件版本过程中,需要同时兼容之前的版本(即现存软件的版本)。现有技术一般通过向现存软件的模块中加入较多的判断逻辑,实现在软件版本演进的同时又能够兼容之前的版本。
然而,此种方式需要对现存软件作出很多修改,从而会导致软件版本的演进效率较低,同时也加长了软件产品的研发周期。鉴于此,在进行软件版本演进时,如何既能兼容之前的版本,又仅通过对现存软件作较少的变更就能够满足演进需求,成为本领域目前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种软件版本演进方法及系统,旨在通过对现存软件作较少的变更就能够既满足演进需求,又能兼容之前的版本,进而提升软件版本的演进效率,缩短软件产品的研发周期。
为此,本发明公开如下技术方案:
一种软件版本演进方法,包括:
在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据;
若第一判断结果表示存在,则利用第二功能单元将所述新增交互数据赋值给所述目标属性;若第一判断结果表示不存在,则不执行利用第二功能单元进行赋值的操作;
在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果;
若第二判断结果表示存在,则利用第三功能单元获得所述目标属性对应的所述新增交互数据;若第二判断结果表示不存在,则不执行利用第三功能单元进行数据获取的操作;其中,所述第一功能单元、第二功能单元及第三功能单元为预先制定的能够通用于软件中各协作模块的功能单元。
上述方法,优选的,所述第一功能单元为在预先制定的通用模板中封装的判断函数,所述通用模板能够通用于软件中的各协作模块中;
则所述利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,包括:
调用所述通用模板中封装的所述判断函数,通过所述判断函数判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性。
上述方法,优选的,所述第二功能单元为在预先制定的通用模板中封装的设置函数,则所述利用第二功能单元将所述新增交互数据赋值给所述可选属性,包括:
调用所述通用模板中封装的所述设置函数,通过所述设置函数将所述新增交互数据赋值给所述目标属性。
上述方法,优选的,所述第三功能单元为在预先制定的通用模板中封装的获取函数,则所述利用第三功能单元获得所述目标可选属性对应的所述新增交互数据,包括:
调用所述通用模板中封装的所述获取函数,通过所述获取函数获得所述目标属性对应的所述新增交互数据。
上述方法,优选的,所述新增交互数据为一个数据,或者为多个数据的打包数据。
上述方法,优选的,还包括:
在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,
从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
一种软件版本演进系统,包括:
第一判断单元,用于在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据;;
赋值单元,用于在第一判断结果表示存在时,利用第二功能单元将所述新增交互数据赋值给所述目标属性;以及在第一判断结果表示不存在时,不执行利用第二功能单元进行赋值的操作;
第二判断单元,用于在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果;
获取单元,用于在第二判断结果表示存在时,利用第三功能单元获得所述目标可选属性对应的所述新增交互数据;以及在第二判断结果表示不存在时,不执行利用第三功能单元进行数据获取的操作;其中,所述第一功能单元、第二功能单元及第三功能单元为预先制定的能够通用于软件中各协作模块的功能单元。
上述系统,优选的,所述第一功能单元为在预先制定的通用模板中封装的判断函数,所述通用模板能够通用于软件中的各协作模块中;
则所述第一判断单元,具体用于:
调用所述通用模板中封装的所述判断函数,通过所述判断函数判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性。
上述系统,优选的,所述第二功能单元为在预先制定的通用模板中封装的设置函数;
则所述赋值单元,具体用于:
调用所述通用模板中封装的所述设置函数,通过所述设置函数将所述新增交互数据赋值给所述目标属性。
上述系统,优选的,所述第三功能单元为在预先制定的通用模板中封装的获取函数;
则所述获取单元,具体用于:
调用所述通用模板中封装的所述获取函数,通过所述获取函数获得所述目标属性对应的所述新增交互数据。
上述系统,优选的,还包括:
撤销处理单元,用于在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
由以上方案可知,本发明提供的软件版本演进方法及系统,预先设计软件中协作模块之间的数据交互接口,将该接口的数据结构设计为包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;以及,预先制定能够通用于软件中各协作模块的第一、第二及第三功能单元。当软件版本演进时,只需向所述数据结构中增加/扩展相应属性,并在协作模块中利用所述各功能单元分别进行扩展属性判断、数据赋值及获取等操作,即可应对协作模块之间的交互信息变更需求。从而只需对所述数据结构进行变更(向数据结构中增加/扩展相应属性)即可完成演进,无需对现存软件作较大修改,提高了软件版本的演进效率,缩短了软件产品的研发周期,且基于属性的自由设置/扩展及判断功能,本发明在实现版本演进的同时还能够实现对之前版本的兼容。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的软件版本演进方法的一种流程图;
图2是本发明实施例提供的软件版本演进的原理示意图;
图3是本发明实施例提供的软件版本演进方法的另一种流程图;
图4是本发明实施例提供的软件版本演进系统的一种结构示意图;
图5是本发明实施例提供的软件版本演进系统的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种软件版本演进方法,参考图1示出的软件版本演进方法的一种流程图,所述方法可以包括以下步骤:
步骤101、在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据。
为解决现有技术需对现存软件作出较大修改才能完成版本演进的问题,本发明预先设计软件中协作模块之间的数据交互接口的数据结构,并具体将数据交互接口的数据结构设计为包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能。也就是说,在针对协作模块的数据交互接口设计的数据结构中,对于所有数据共有两类标签,一种是必选的(Mandatory),一种是可选的(Optional)。其中的必选交互数据不可随意更改,而针对可选交互数据,则可依据需求在所述数据结构中自由设置、任意扩展其所对应的属性。针对此种设计,实际应用中,可将协作模块间所必需的且不存在变更需求的交互数据设置为必选交互数据,而对于其他类型数据,比如新增的交互数据等,则可将其设置为可选的,并为其在数据交互接口中设置相对应的属性。
除此之外,本发明还预先制定能够通用于软件中各协作模块的第一功能单元、第二功能单元及第三功能单元。其中,所述第一功能单元用于判断协作模块的数据交互接口的数据结构中,是否存在针对协作模块间需新增的交互数据所扩展的相应属性;所述第二功能单元用于对属性进行数据设置,即具体地,用于将新增交互数据赋值给所述数据结构中针对所述新增交互数据所扩展的相应属性,所述第三功能单元用于从所述数据结构中读取扩展的相应属性的取值(即属性对应的新增交互数据)。
本实施例具体以功能函数形式对所述各功能单元进行代码实现,其中,可分别通过判断函数、设置函数、获取函数来相应实现所述第一、第二及第三功能单元的功能,具体地,比如,可通过判断函数hasXXX()来实现第一功能单元的判断功能,通过设置函数setXXX()实现第二功能单元的赋值功能,通过获取函数getXXX()实现第三功能单元的数据获取功能等。
实际实施时,可将上述三个功能单元,如上述的三个函数封装在一个预先制定的通用模板中,该通用模板能够通用于软件中的各协作模块中。比如可将所述三个函数封装在自定义的具有通用性的代码生成脚本中,以使得为后续的版本演进提供通用的模板支持。
在此基础上,当进行版本演进,需要对软件中相应协作模块的交互数据进行变更时,只需简单地在协作模块(比如相互协作的第一模块、第二模块)数据交互接口的数据结构中增加针对新增交互数据的相应属性,并在所述协作模块中利用所述通用模板中封装的第一、第二、第三功能单元对所述数据结构执行相应的属性判断、数据赋值及数据获取操作,即可完成软件版本的演进。
其中,在版本演进过程中,针对具有协作关系的第一模块、第二模块,本步骤101首先利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果。具体地,本步骤可通过调用所述通用模板中的判断函数hasXXX(),来判断第一模块与第二模块的数据交互接口的数据结构中是否存在对应于新增交互数据的目标属性。
步骤102、若第一判断结果表示存在,则利用第二功能单元将所述新增交互数据赋值给所述目标属性;若第一判断结果表示不存在,则不执行利用第二功能单元进行赋值的操作。
若所述第一判断结果表示第一模块与第二模块的数据交互接口的数据结构中存在所述目标属性,则可利用第二功能单元将所述新增交互数据赋值给所述目标属性;否则,则不作赋值。
具体地,可通过调用所述通用模板中封装的设置函数setXXX()将所述新增交互数据赋值给所述目标属性。
步骤103、在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果。
当在软件的第二模块中,获取第一模块传递的所述新增数据之前,需首先利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果。
具体地,可通过调用所述通用模板中封装的判断函数hasXXX(),来判断第一模块与第二模块的数据交互接口中是否存在所述目标属性。
步骤104、若第二判断结果表示存在,则利用第三功能单元获得所述目标属性对应的所述新增交互数据;若第二判断结果表示不存在,则不执行利用第三功能单元进行数据获取的操作。
其中,若所述第二判断结果表示第一模块与第二模块的数据交互接口的数据结构中存在所述目标属性,则可利用第三功能单元从所述数据交互接口中获得所述目标属性的取值,即获得所述目标属性对应的所述新增交互数据;否则,则不获取。
具体地,可通过调用所述通用模板中封装的获取函数getXXX(),来实现从第一模块与第二模块的数据交互接口中获取所述目标属性对应的取值,从而满足了版本演进时需在第一模块与第二模块间新增交互数据、进行交互数据变更的需求。
实际实施时,可在自定义的代码生成脚本中封装所述判断函数hasXXX()、设置函数setXXX()及获取函数getXXX(),并将该脚本作为通用模板使用,在版本演进过程中,参考图2提供的软件版本演进的原理示意图,可针对任意新增交互数据对应的任意属性,调用该脚本,该脚本能够根据所述任意属性生成一个包含上述三个函数对应的方法和该属性的类,进而可通过所生成的类实现模块间交互数据的变更,满足版本演进过程中模块间的交互数据变更需求。
其中,在基于新增交互数据对应的扩展属性,进行类的生成时,可针对模块间新增的每一个交互数据,均按上述方法生成对应于该一个交互数据的类,以通过该类实现在模块间增加该交互数据;然而,该方式由于针对模块间新增的每个交互数据,均需按上述方式生成包含该一个交互数据的属性以及所述三个函数对应的方法的类,从而会导致版本演进效率相对低下,鉴于此,在实际应用中,针对模块间新增的多个交互数据,可将该多个交互数据进行打包,并针对打包数据按上述方式生成包含该打包数据对应的多个属性以及所述三个函数对应的方法的类,以此来进一步提升版本演进的效率,缩短软件产品的开发周期。
当本次版本演进结束后,如果需要继续在第一模块与第二模块间增加新的交互数据,只需按上述步骤在两者的数据交互接口的数据结构中追加新的optionnal属性,以及基于模板生成的has/get/set方法对追加的optionnal属性进行操作即可。这里,需要强调的是判断函数hasXXX()的功能,若没有hasXXX()的判断而直接去获取XXX属性,则由于在以前的版本中不存在XXX属性,将会造成系统崩溃,不能兼容以前的版本;而hasXXX()的存在就能够达到兼容以前的软件版本的目的。
由以上方案可知,本发明提供的软件版本演进方法及系统,预先设计软件中协作模块之间的数据交互接口,将该接口的数据结构设计为包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;以及,预先制定能够通用于软件中各协作模块的第一、第二及第三功能单元。当软件版本演进时,只需向所述数据结构中增加/扩展相应属性,并在协作模块中利用所述各功能单元分别进行扩展属性判断、数据赋值及获取等操作,即可应对协作模块之间的交互信息变更需求。从而只需对所述数据结构进行变更(向数据结构中增加/扩展相应属性)即可完成演进,无需对现存软件作较大修改,提高了软件版本的演进效率,缩短了软件产品的研发周期,且基于属性的自由设置/扩展及判断功能,本发明在实现版本演进的同时还能够实现对之前版本的兼容。
在本发明接下来的另一实施例中,参考图3示出的软件版本演进方法的另一种流程图,所述方法还包括包括:
步骤105、在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
具体地,在后续的版本演进过程中,若存在针对第一模块、第二模块间的所述新增交互数据的撤销需求,则可通过以下两种方式来实现:
其一,可通过不再利用所述新增交互数据,向第一模块与第二模块间的数据交互接口中的所述目标属性进行赋值,来实现撤销第一模块与第二模块间的所述新增交互数据;
其二,可从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性,来实现撤销第一模块、第二模块间的所述新增交互数据。
具体实施时,技术人员可基于实际需求选择上述两种方式中的任意一种,来满足撤销第一模块、第二模块间的所述新增交互数据的需求,本实施例对此不作限定。
在本发明接下来的又一实施例中,提供一种软件版本演进系统,参考图4示出的软件版本演进系统的一种结构示意图,该系统包括:
第一判断单元401,用于在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据;
赋值单元402,用于在第一判断结果表示存在时,利用第二功能单元将所述新增交互数据赋值给所述目标属性;以及在第一判断结果表示不存在时,不执行利用第二功能单元进行赋值的操作;
第二判断单元403,用于在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果;
获取单元404,用于在第二判断结果表示存在时,利用第三功能单元获得所述目标可选属性对应的所述新增交互数据;以及在第二判断结果表示不存在时,不执行利用第三功能单元进行数据获取的操作;其中,所述第一功能单元、第二功能单元及第三功能单元为预先制定的能够通用于软件中各协作模块的功能单元。
在本发明实施例的一种实施方式中,所述第一功能单元为在预先制定的通用模板中封装的判断函数,所述通用模板能够通用于软件中的各协作模块中;则所述第一判断单元,具体用于:
调用所述通用模板中封装的所述判断函数,通过所述判断函数判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性。
在本发明实施例的一种实施方式中,所述第二功能单元为在预先制定的通用模板中封装的设置函数;则所述赋值单元,具体用于:
调用所述通用模板中封装的所述设置函数,通过所述设置函数将所述新增交互数据赋值给所述目标属性。
在本发明实施例的一种实施方式中,所述第三功能单元为在预先制定的通用模板中封装的获取函数;则所述获取单元,具体用于:
调用所述通用模板中封装的所述获取函数,通过所述获取函数获得所述目标属性对应的所述新增交互数据。
在本发明实施例的一种实施方式中,参考图5示出的软件版本演进系统的另一种结构示意图,该系统还可以包括:
撤销处理单元405,用于在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
对于本发明实施例公开的软件版本演进系统而言,由于其与以上各实施例公开的软件版本演进方法相对应,所以描述的比较简单,相关相似之处请参见以上各实施例中软件版本演进方法部分的说明即可,此处不再详述。
综上所述,相比于现有技术,本发明的软件版本演进方式具有以下优点:
1)可扩展性,当交互数据发生变更时,只需简单的在交互数据中增加Optionnal属性,以及基于模板生成的has/get/set方法对追加的optionnal属性进行操作即可
2)灵活性强,在版本不断地演进过程中不必增加过多的版本控制逻辑,而只需变更交互数据以及少量业务逻辑即可。
3)封装性强,将变更的数据以及判断逻辑均封装在交互信息里,而不是在交互模块中增加判断逻辑,隔离了变更点。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种软件版本演进方法,其特征在于,包括:
在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据;
若第一判断结果表示存在,则利用第二功能单元将所述新增交互数据赋值给所述目标属性;若第一判断结果表示不存在,则不执行利用第二功能单元进行赋值的操作;
在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果;
若第二判断结果表示存在,则利用第三功能单元获得所述目标属性对应的所述新增交互数据;若第二判断结果表示不存在,则不执行利用第三功能单元进行数据获取的操作;其中,所述第一功能单元、第二功能单元及第三功能单元为预先制定的能够通用于软件中各协作模块的功能单元。
2.根据权利要求1所述的方法,其特征在于,所述第一功能单元为在预先制定的通用模板中封装的判断函数,所述通用模板能够通用于软件中的各协作模块中;
则所述利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,包括:
调用所述通用模板中封装的所述判断函数,通过所述判断函数判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性。
3.根据权利要求2所述的方法,其特征在于,所述第二功能单元为在预先制定的通用模板中封装的设置函数,则所述利用第二功能单元将所述新增交互数据赋值给所述可选属性,包括:
调用所述通用模板中封装的所述设置函数,通过所述设置函数将所述新增交互数据赋值给所述目标属性。
4.根据权利要求3所述的方法,其特征在于,所述第三功能单元为在预先制定的通用模板中封装的获取函数,则所述利用第三功能单元获得所述目标可选属性对应的所述新增交互数据,包括:
调用所述通用模板中封装的所述获取函数,通过所述获取函数获得所述目标属性对应的所述新增交互数据。
5.根据权利要求1所述的方法,其特征在于,所述新增交互数据为一个数据,或者为多个数据的打包数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,
从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
7.一种软件版本演进系统,其特征在于,包括:
第一判断单元,用于在软件的第一模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性,得到第一判断结果;其中,所述数据交互接口的数据结构包括至少一个必选交互数据,并提供针对可选交互数据的属性设置功能;所述新增交互数据属于可选交互数据;
赋值单元,用于在第一判断结果表示存在时,利用第二功能单元将所述新增交互数据赋值给所述目标属性;以及在第一判断结果表示不存在时,不执行利用第二功能单元进行赋值的操作;
第二判断单元,用于在软件的第二模块中,利用第一功能单元判断第一模块与第二模块的数据交互接口中是否存在所述目标属性,得到第二判断结果;
获取单元,用于在第二判断结果表示存在时,利用第三功能单元获得所述目标可选属性对应的所述新增交互数据;以及在第二判断结果表示不存在时,不执行利用第三功能单元进行数据获取的操作;其中,所述第一功能单元、第二功能单元及第三功能单元为预先制定的能够通用于软件中各协作模块的功能单元。
8.根据权利要求7所述的系统,其特征在于,所述第一功能单元为在预先制定的通用模板中封装的判断函数,所述通用模板能够通用于软件中的各协作模块中;
则所述第一判断单元,具体用于:
调用所述通用模板中封装的所述判断函数,通过所述判断函数判断第一模块与第二模块的数据交互接口中是否存在对应于新增交互数据的目标属性。
9.根据权利要求8所述的系统,其特征在于,所述第二功能单元为在预先制定的通用模板中封装的设置函数;
则所述赋值单元,具体用于:
调用所述通用模板中封装的所述设置函数,通过所述设置函数将所述新增交互数据赋值给所述目标属性。
10.根据权利要求9所述的系统,其特征在于,所述第三功能单元为在预先制定的通用模板中封装的获取函数;
则所述获取单元,具体用于:
调用所述通用模板中封装的所述获取函数,通过所述获取函数获得所述目标属性对应的所述新增交互数据。
11.根据权利要求7-10任一项所述的系统,其特征在于,还包括:
撤销处理单元,用于在后续的版本演进过程中,当存在针对第一模块、第二模块间的所述新增交互数据的撤销需求时,则不利用所述新增交互数据对所述目标属性进行赋值;或者,从所述第一模块与第二模块的数据交互接口中删除与所述新增交互数据相对应的所述目标属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626046.8A CN107368321B (zh) | 2017-07-27 | 2017-07-27 | 一种软件版本演进方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626046.8A CN107368321B (zh) | 2017-07-27 | 2017-07-27 | 一种软件版本演进方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368321A CN107368321A (zh) | 2017-11-21 |
CN107368321B true CN107368321B (zh) | 2020-09-18 |
Family
ID=60307795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710626046.8A Active CN107368321B (zh) | 2017-07-27 | 2017-07-27 | 一种软件版本演进方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368321B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762747B (zh) * | 2018-05-30 | 2022-02-18 | 郑州云海信息技术有限公司 | 数据处理方法以及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426518A (zh) * | 2011-04-20 | 2012-04-25 | 重庆新世杰电气股份有限公司 | 一种实现软件版本兼容的方法 |
CN102495739A (zh) * | 2011-11-03 | 2012-06-13 | 中兴通讯股份有限公司 | 一种数据的兼容方法、板间消息的兼容方法及相应系统 |
CN103984554A (zh) * | 2014-05-26 | 2014-08-13 | 中国工商银行股份有限公司 | 软件设计文档的生成方法及装置 |
CN105843614A (zh) * | 2016-03-22 | 2016-08-10 | 东南大学 | 一种面向软件演化的代码可兼容性评估方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7322025B2 (en) * | 2001-07-17 | 2008-01-22 | Tata Consultancy Services Limited | Method and apparatus for versioning and configuration management of object models |
-
2017
- 2017-07-27 CN CN201710626046.8A patent/CN107368321B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426518A (zh) * | 2011-04-20 | 2012-04-25 | 重庆新世杰电气股份有限公司 | 一种实现软件版本兼容的方法 |
CN102495739A (zh) * | 2011-11-03 | 2012-06-13 | 中兴通讯股份有限公司 | 一种数据的兼容方法、板间消息的兼容方法及相应系统 |
CN103984554A (zh) * | 2014-05-26 | 2014-08-13 | 中国工商银行股份有限公司 | 软件设计文档的生成方法及装置 |
CN105843614A (zh) * | 2016-03-22 | 2016-08-10 | 东南大学 | 一种面向软件演化的代码可兼容性评估方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107368321A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN108153670B (zh) | 一种接口测试方法、装置及电子设备 | |
CN103020089A (zh) | 一种将excel文件中的数据导入数据库的方法及装置 | |
CN104268241B (zh) | 一种配置数据库中属性显示方法 | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
CN105868196A (zh) | 一种服务器端工业数据报表生成方法 | |
CN104317604A (zh) | 一种程序代码生成方法及装置 | |
CN110990008B (zh) | 更新页面的方法、装置、存储介质以及电子设备 | |
CN111596927A (zh) | 服务部署方法、装置及电子设备 | |
CN107368321B (zh) | 一种软件版本演进方法及系统 | |
CN105653253A (zh) | 集中配置方法及装置 | |
CN111078319B (zh) | 配置数据管理方法、装置、存储介质和计算机可读介质 | |
CN111984293A (zh) | 一种信息处理方法、装置和存储介质 | |
CN104461509A (zh) | 一种信息交互架构及方法 | |
CN107864152B (zh) | 一种采用vba快速完成智慧建筑多协议适配工程模板的方法 | |
CN108170493B (zh) | 一种系统模块的加载方法、系统及装置 | |
CN105893445A (zh) | 数据处理的方法、服务器和终端设备 | |
CN112418796B (zh) | 子流程任务节点激活方法、装置、电子设备及存储介质 | |
CN114185557A (zh) | 软件产品部署方法、装置、介质及电子设备 | |
CN114661274A (zh) | 用于生成智能合约的方法和装置 | |
CN108958823A (zh) | 修改基本输入输出系统设定值的方法 | |
JP2019152947A (ja) | システム管理装置、システム管理方法、およびプログラム | |
JP4481037B2 (ja) | テスト支援装置 | |
CN117251173B (zh) | 微服务项目的配置方法、微服务项目的配置装置及介质 | |
JP2012150740A (ja) | プログラム生成装置及び方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200821 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |