CN109871208A - 软件系统生成方法、装置、计算机可读存储介质及服务器 - Google Patents
软件系统生成方法、装置、计算机可读存储介质及服务器 Download PDFInfo
- Publication number
- CN109871208A CN109871208A CN201910007975.XA CN201910007975A CN109871208A CN 109871208 A CN109871208 A CN 109871208A CN 201910007975 A CN201910007975 A CN 201910007975A CN 109871208 A CN109871208 A CN 109871208A
- Authority
- CN
- China
- Prior art keywords
- functional unit
- software systems
- logo collection
- attribute
- preset
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于计算机技术领域,尤其涉及一种软件系统生成方法、装置、计算机可读存储介质及服务器。所述方法接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。无需开发人员重复编写相同功能的代码,大大提高了软件系统的开发效率。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种软件系统生成方法、装置、计算机可读存储介质及服务器。
背景技术
目前,开发人员在进行软件系统开发时,针对不同的软件系统,需要编写不同的代码。而在不同的软件系统中,可能具有相同的功能,因此开发人员针对不同的软件系统编写代码时,会重复编写相同功能的代码。由于每个功能往往涉及大量的代码,因此重复编写这些代码将极大降低开发效率。
发明内容
有鉴于此,本发明实施例提供了一种软件系统生成方法、装置、计算机可读存储介质及服务器,以解决现有的软件系统开发过程中重复编写相同功能的代码,导致开发效率低下的问题。
本发明实施例的第一方面提供了一种软件系统生成方法,可以包括:
接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
本发明实施例的第二方面提供了一种软件系统生成装置,可以包括:
生成指令接收模块,用于接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
标识集合提取模块,用于从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
功能组件获取模块,用于从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
软件系统生成模块,用于按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:
接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
本发明实施例的第四方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例预先构建了包括各个功能组件的功能组件库,当接收软件系统生成指令时,首先从中提取目标软件系统的功能组件配置文件,并从所述功能组件配置文件中提取功能组件标识集合,然后从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,最后按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。通过本发明实施例,将软件系统所要实现的各个功能进行模块化的划分,以功能组件的形式提供给开发人员,且在预先构建的功能组件库中包括大量的功能组件供开发人员选择,当需要生成某一软件系统时,开发人员仅需提供组成该软件系统所需的各个功能组件的标识,服务器即可自动从该功能组件库中获取这些功能组件,并按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成该软件系统。无需开发人员重复编写相同功能的代码,大大提高了软件系统的开发效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中一种软件系统生成方法的一个实施例流程图;
图2为功能组件配置文件的设置过程的示意流程图;
图3为功能组件关联规则的示意图;
图4为按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成目标软件系统的示意流程图;
图5为本发明实施例中一种软件系统生成装置的一个实施例结构图;
图6为本发明实施例中一种服务器的示意框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种软件系统生成方法的一个实施例可以包括:
步骤S101、接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件。
开发人员在需要生成某一软件系统时,可以通过终端设备向服务器发送软件系统生成指令,在所述软件系统生成指令中携带着目标软件系统的功能组件配置文件,所述目标软件系统即为待生成的软件系统。服务器在接收所述软件系统生成指令之后,即可从中提取出所述功能组件配置文件。
步骤S102、从所述功能组件配置文件中提取功能组件标识集合。
所述功能组件标识集合中包括一个以上的功能组件标识,在本实施例中,将所述功能组件标识集合中功能组件标识的数目记为SN。
如图2所示,所述功能组件配置文件的设置过程具体可以包括:
步骤S201、获取所述目标软件系统的生成模式。
在本实施例中,所述目标软件系统的生成模式可以包括选择生成模式和默认生成模式,其具体取值可以由用户预先进行设置。
步骤S202、判断所述目标软件系统的生成模式是否为选择生成模式。
若所述目标软件系统的生成模式为选择生成模式,则执行步骤S203及其后续步骤,若所述目标软件系统的生成模式为默认生成模式,则执行步骤S206及其后续步骤。
步骤S203、将预设的全局功能组件标识集合中的各个功能组件标识在预设的显示区域进行显示。
所述全局功能组件标识集合为功能组件标识的全集,即包含了预设的功能组件库中的每个功能组件的功能组件标识。其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件。所述功能组件库中的功能组件包括但不限于:注册组件、登录组件、首页组件、商城组件、商品组件、购物车组件、订座组件、支付组件等等功能组件。为了保证该功能组件库的通用性,应尽量保证该功能组件库库中的功能组件覆盖到尽可能多的软件系统功能。
在本实施例中,服务器会将所述全局功能组件标识集合中的各个功能组件标识在预设的显示区域进行显示,以供用户根据实际情况从中进行选择。
步骤S204、接收用户通过预设的用户交互界面对所述全局功能组件标识集合中的各个功能组件标识的选择。
用户可以根据所述目标软件系统所要实现的功能对所述全局功能组件标识集合中的各个功能组件标识进行选择。例如,若用户需要开发一套影院订座系统,则可以从中勾选出注册组件、登录组件、首页组件、订座组件、支付组件等。在另一种具体实现方式中,用户还可以通过在指定的输入框中输入功能组件的关键字来实现对所述全局功能组件标识集合中的各个功能组件标识的选择。
步骤S205、将被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
上述步骤S203至步骤S205针对的是选择生成模式的情况,而对于默认模式的情况,则需通过下述步骤S206至步骤S207来完成所述功能组件配置文件的设置过程。
步骤S206、从预设的历史行为记录中获取所述用户对所述全局功能组件标识集合中的各个功能组件标识的选择。
步骤S207、将所述历史行为记录中被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
在所述历史行为记录中记录了所述用户历次对所述全局功能组件标识集合中的各个功能组件标识的选择,在本实施例中,可以将这些历史记录作为推断用户本次选择的依据,为了简化起见,可以直接采用所述用户上一次对所述全局功能组件标识集合中的各个功能组件标识的选择,将上一次被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
步骤S103、从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件。
由于各个功能组件标识与各个功能组件之间存在一一对应的关系,在提取出所述功能组件标识集合中的各个功能组件标识之后,服务器即可从所述功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件。
步骤S104、按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
所述功能组件关联规则记录了各个功能组件之间的耦合依赖关系,如图3所示,即为所述功能组件关联规则的示意图。需要注意的是,该图仅为一种所述功能组件关联规则的一种具体示例,在实际应用中,还可以根据具体情况设置其它的功能组件关联规则。
如图4所示,步骤S104具体可以包括如下过程:
步骤S1041、从所述功能组件关联规则中获取各个功能组件之间的耦合依赖关系,并根据各个功能组件之间的耦合依赖关系构造功能组件关系图。
其中,将各个功能组件作为所述功能组件关系图中的顶点,将各个功能组件之间的耦合依赖关系作为所述功能组件关系图中的边。
步骤S1042、检测所述功能组件关系图是否为连通图。
连通图是图论中的一个概念,指的是任意两个顶点之间均有路径相通(可以直接相通,也可以借由其它顶点相通)。
若所述功能组件关系图为连通图,则执行步骤S1043,若所述功能组件关系图不是连通图,则执行步骤S1044及步骤S1045。
步骤S1043、按照所述功能组件关联规则将所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统。
步骤S1044、从所述功能组件库中选取所述功能组件关系图缺失的功能组件。
步骤S1045、按照所述功能组件关联规则将所述功能组件关系图缺失的功能组件和所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统。
特别需要注意的是,用户在进行功能组件的选择时,可能会遗漏掉某些关键的功能组件,例如,用户可能只选择了注册组件、首页组件、订座组件、支付组件这些功能组件,但是遗忘了必要的登录组件,而缺少登录组件,其它功能组件根本无法构成一个完整的软件系统。
为了避免这一情况,服务器在接收到用户对于功能组件的选择后,需要首先根据所述功能组件关联规则判断这些功能组件是否可以构成一个连通图,若这些功能组件之间可以构成一个连通图,则说明用户的选择并不缺少必要的功能组件,若这些功能组件之间无法构成一个连通图,则说明用户的选择缺少必要的功能组件,在这种情况下,服务器会自动将缺失的功能组件添补上,例如,用户若只选择了注册组件、首页组件、订座组件、支付组件这些功能组件,服务器在寻找路径时发现从注册组件到首页组件是必须经过登陆组件的,因此服务器会自动把登陆组件补上。
进一步地,考虑到即使是对于同一个功能组件而已,不同的用户可能会有不同的细节需求,在本实施例中,每个功能组件均有多个属性维度,这些属性维度包括但不限于应用场景、主题颜色风格、排版布局样式等等。每个属性维度上均有多个候选值可供选择,例如,应用场景这一属性维度上可以包括电影院场景、商城场景、餐厅场景等等候选值,主题颜色风格这一属性维度上可以包括黑色样式、蓝色样式、红色样式等等候选值。在本实施例中,将属性维度的总数记为P,且P≥1。具体的属性维度可以根据实际情况进行设置,需要注意的是,属性维度越多,则提供给用户的选择也会越精细,可以最大限度的满足用户的各种需求,但是,也会使整个系统变得更加庞大复杂,反之,属性维度越少,则提供给用户的选择也会越粗略,只能满足用户大致的需求,但是,整个系统会变得更加精简,在实际应用中,需要对这两者进行权衡。
优选地,在所述功能组件配置文件的设置过程中,用户还可以对各个功能组件的这些属性维度进行设置,形成各个功能组件的属性集合。
例如,用户可以在人机交互界面中通过多级下拉菜单的方式进行各个属性维度的设置,以登录组件为例,用户可以先选择登录组件的选项,此时在人机交互界面上显示出应用场景的下拉菜单,其中包括电影院场景、商城场景、餐厅场景等等,用户从中选择餐厅场景的选项,此时在人机交互界面上显示出主题颜色风格的下拉菜单,其中包括黑色样式、蓝色样式、红色样式等等,按照这种方式用户不断地进行选择,直至完成所有属性维度的设置。则最终形成的登录组件的属性集合为:{餐厅场景、黑色样式、……}。在另一种具体实现方式中,用户还可以通过在指定的输入框中依次输入功能组件各个属性维度的关键字来实现对各个属性维度的设置,例如,用户可以输入:登录、餐厅、黑色样式、……,以完成对登录组件所有属性维度的设置。
在步骤S104之前,服务器会从所述功能组件配置文件中分别提取与所述功能组件标识集合中的各个功能组件标识对应的功能组件属性集合,其中,每个功能组件属性集合中包括P个属性维度上的属性值。然后,服务器会按照所述功能组件属性集合中各个属性维度上的属性值对对应的功能组件进行属性配置。
例如,若在登录组件的功能组件属性集合中,应用场景这一属性维度上的属性值为电影院,主题颜色风格这一属性维度上的属性值为黑色样式,则服务器会将登录组件配置为电影院场景黑色样式的登录组件。
上述过程中,是用户对功能组件的各个属性维度逐个进行设置的情况,但在实际使用中,用户可能只进行了一部分的属性维度设置,甚至可能只进行了功能组件的选择,而根本没有进行属性维度的设置,在这种情况下,服务器会自动为用户进行剩余属性维度的设置。
在一种具体实现方式中,服务器可以随机地为用户进行剩余属性维度的设置。在另一种具体实现方式中,服务器还可以基于大数据分析智能地为用户进行剩余属性维度的设置。
具体地,若与第s个功能组件标识(其中,1≤s≤SN)对应的功能组件属性集合中的第p个属性维度上的属性值为空(即用户未进行该属性维度的设置),服务器则会获取所述用户的历史行为记录,根据所述用户的习惯偏好为其进行该属性维度的设置。
例如,在历史行为记录中,所述用户共对登录组件的主题颜色风格这一属性维度进行了30次设置,其中,2次设置的是黑色样式,28次设置的是蓝色样式,则服务器可以推断出所述用户的习惯偏好为设置蓝色样式,此时自动为其设置蓝色样式。
进一步地,为了更精确地衡量用户的习惯偏好,还可以将所述历史行为记录按照时间先后顺序依次划分为T个记录子段,T≥1,T的取值可以根据实际情况设置,例如,可以将其设置为5、10、20等等。需要注意地是,T取值越大,则计算量也越大,但计算精度越高;T取值越小,则计算量也越大,但计算精度越低,需要根据实际情况进行权衡。然后分别统计在各个记录子段中所述用户将目标属性维度设置为各个候选值的次数,所述目标属性维度为与第s个功能组件标识对应的功能组件属性集合中的第p个属性维度,服务器则可以根据下式计算所述用户对各个候选值的偏好度:
其中,n为各个候选值的序号,1≤n≤Ns,p,Ns,p为所述目标属性维度上的候选值的数目,SelNums,p,n,t为在第t个记录子段中所述用户将所述目标属性维度设置为第n个候选值的次数,FavIdxs,p,n为所述用户对所述目标属性维度上的第n个候选值的偏好度。从该式中可以看出,距离当前时刻越接近的记录子段,其对最终结果的影响越大,距离当前时刻越远的记录子段,其对最终结果的影响越小。最后,服务器可以将所述目标属性维度上的属性值设置为所述偏好度最高的候选值。
特殊地,若所述用户并未有任何历史行为记录,则可以根据其他用户的总体选择结果来对该用户的选择进行估计,在这种情况下,上式仍然适用,只是需要将SelNums,p,n,t替换为在第t个记录子段中其它用户将所述目标属性维度设置为第n个候选值的次数。
进一步地,考虑到开发场景的多样性、功能组件的属性维度的多样性、功能组件的组合的多样性等等因素会使整个数据库的结构非常复杂,若使用传统的关系型数据库、键值型nosql数据库等进行处理效率会十分低下,所以基于这个背景,本实施例中以关系型更强的图数据库作为存储解决此应用场景的问题。图数据库是可存储数十亿个关系并能以毫秒级延迟进行图形查询及存储的数据库服务。可轻松构建和运行处理高度互连的数据集,支持对大图形数据的实时更新,同时支持查询。
图数据库还具有灵活的schema修改,用户可以不断添加或删除新的顶点、边和属性,扩展或缩小数据模型,这对管理不断变化的对象类型特别方便,大多数图数据库可以在线修改schema,同时继续提供查询,节点能独立且实时更新,避免影响系统的总体运转。比如用户有独立对某功能组件的个性化需求,能够针对需求去添加或者更新顶点或属性。此外,还提供了固有的索引数据结构,因此它不需要为给定条件的查询加载或接触不相关的数据,这样就能够避免遍历其他无关紧要的功能组件。
综上所述,本发明实施例预先构建了包括各个功能组件的功能组件库,当接收软件系统生成指令时,首先从中提取目标软件系统的功能组件配置文件,并从所述功能组件配置文件中提取功能组件标识集合,然后从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,最后按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。通过本发明实施例,将软件系统所要实现的各个功能进行模块化的划分,以功能组件的形式提供给开发人员,且在预先构建的功能组件库中包括大量的功能组件供开发人员选择,当需要生成某一软件系统时,开发人员仅需提供组成该软件系统所需的各个功能组件的标识,服务器即可自动从该功能组件库中获取这些功能组件,并按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成该软件系统。无需开发人员重复编写相同功能的代码,大大提高了软件系统的开发效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的一种软件系统生成方法,图5示出了本发明实施例提供的一种软件系统生成装置的一个实施例结构图。
本实施例中,一种软件系统生成装置可以包括:
生成指令接收模块501,用于接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
标识集合提取模块502,用于从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
功能组件获取模块503,用于从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
软件系统生成模块504,用于按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
进一步地,所述软件系统生成模块可以包括:
关系图构造单元,用于从所述功能组件关联规则中获取各个功能组件之间的耦合依赖关系,并根据各个功能组件之间的耦合依赖关系构造功能组件关系图,其中,将各个功能组件作为所述功能组件关系图中的顶点,将各个功能组件之间的耦合依赖关系作为所述功能组件关系图中的边;
连通图检测单元,用于检测所述功能组件关系图是否为连通图,即是否任意两个顶点之间均有路径相连;
第一生成单元,用于若所述功能组件关系图为连通图,则按照所述功能组件关联规则将所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统;
缺失组件选取单元,用于若所述功能组件关系图不是连通图,则从所述功能组件库中选取所述功能组件关系图缺失的功能组件;
第二生成单元,用于按照所述功能组件关联规则将所述功能组件关系图缺失的功能组件和所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统。
进一步地,所述软件系统生成装置还可以包括:
生成模式获取模块,用于获取所述目标软件系统的生成模式;
组件显示模块,用于若所述目标软件系统的生成模式为选择生成模式,则将预设的全局功能组件标识集合中的各个功能组件标识在预设的显示区域进行显示,所述全局功能组件标识集合为功能组件标识的全集;
选择接收模块,用于接收用户通过预设的用户交互界面对所述全局功能组件标识集合中的各个功能组件标识的选择;
第一组合模块,用于将被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中;
历史选择获取模块,用于若所述目标软件系统的生成模式为默认生成模式,则从预设的历史行为记录中获取所述用户对所述全局功能组件标识集合中的各个功能组件标识的选择;
第二组合模块,用于将所述历史行为记录中被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
进一步地,所述软件系统生成装置还可以包括:
属性集合提取模块,用于从所述功能组件配置文件中分别提取与所述功能组件标识集合中的各个功能组件标识对应的功能组件属性集合,每个功能组件属性集合中包括P个属性维度上的属性值,P≥1;
属性配置模块,用于按照所述功能组件属性集合中各个属性维度上的属性值对对应的功能组件进行属性配置。
进一步地,所述软件系统生成装置还可以包括:
历史行为记录获取模块,用于若与第s个功能组件标识对应的功能组件属性集合中的第p个属性维度上的属性值为空,则获取所述用户的历史行为记录,1≤s≤SN,SN为所述功能组件标识集合中功能组件标识的数目;
子段划分模块,用于将所述历史行为记录按照时间先后顺序依次划分为T个记录子段,T≥1;
候选值统计模块,用于分别统计在各个记录子段中所述用户将目标属性维度设置为各个候选值的次数,所述目标属性维度为与第s个功能组件标识对应的功能组件属性集合中的第p个属性维度;
偏好度计算模块,用于根据下式计算所述用户对各个候选值的偏好度:
其中,n为各个候选值的序号,1≤n≤Ns,p,Ns,p为所述目标属性维度上的候选值的数目,SelNums,p,n,t为在第t个记录子段中所述用户将所述目标属性维度设置为第n个候选值的次数,FavIdxs,p,n为所述用户对所述目标属性维度上的第n个候选值的偏好度;
属性值设置模块,用于将所述目标属性维度上的属性值设置为所述偏好度最高的候选值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图6示出了本发明实施例提供的一种服务器的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本实施例中,所述服务器6可以包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机可读指令62,例如执行上述的软件系统生成方法的计算机可读指令。所述处理器60执行所述计算机可读指令62时实现上述各个软件系统生成方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器60执行所述计算机可读指令62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至504的功能。
示例性的,所述计算机可读指令62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令62在所述服务器6中的执行过程。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述服务器6的内部存储单元,例如服务器6的硬盘或内存。所述存储器61也可以是所述服务器6的外部存储设备,例如所述服务器6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述服务器6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机可读指令以及所述服务器6所需的其它指令和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种软件系统生成方法,其特征在于,包括:
接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
2.根据权利要求1所述的软件系统生成方法,其特征在于,所述按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统包括:
从所述功能组件关联规则中获取各个功能组件之间的耦合依赖关系,并根据各个功能组件之间的耦合依赖关系构造功能组件关系图,其中,将各个功能组件作为所述功能组件关系图中的顶点,将各个功能组件之间的耦合依赖关系作为所述功能组件关系图中的边;
检测所述功能组件关系图是否为连通图,即是否任意两个顶点之间均有路径相连;
若所述功能组件关系图为连通图,则按照所述功能组件关联规则将所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统;
若所述功能组件关系图不是连通图,则从所述功能组件库中选取所述功能组件关系图缺失的功能组件;
按照所述功能组件关联规则将所述功能组件关系图缺失的功能组件和所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统。
3.根据权利要求1所述的软件系统生成方法,其特征在于,所述功能组件配置文件的设置过程包括:
获取所述目标软件系统的生成模式;
若所述目标软件系统的生成模式为选择生成模式,则将预设的全局功能组件标识集合中的各个功能组件标识在预设的显示区域进行显示,所述全局功能组件标识集合为功能组件标识的全集;
接收用户通过预设的用户交互界面对所述全局功能组件标识集合中的各个功能组件标识的选择;
将被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中;
若所述目标软件系统的生成模式为默认生成模式,则从预设的历史行为记录中获取所述用户对所述全局功能组件标识集合中的各个功能组件标识的选择;
将所述历史行为记录中被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
4.根据权利要求1至3中任一项所述的软件系统生成方法,其特征在于,在按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统之前,还包括:
从所述功能组件配置文件中分别提取与所述功能组件标识集合中的各个功能组件标识对应的功能组件属性集合,每个功能组件属性集合中包括P个属性维度上的属性值,P≥1;
按照所述功能组件属性集合中各个属性维度上的属性值对对应的功能组件进行属性配置。
5.根据权利要求4所述的软件系统生成方法,其特征在于,还包括:
若与第s个功能组件标识对应的功能组件属性集合中的第p个属性维度上的属性值为空,则获取所述用户的历史行为记录,1≤s≤SN,SN为所述功能组件标识集合中功能组件标识的数目;
将所述历史行为记录按照时间先后顺序依次划分为T个记录子段,T≥1;
分别统计在各个记录子段中所述用户将目标属性维度设置为各个候选值的次数,所述目标属性维度为与第s个功能组件标识对应的功能组件属性集合中的第p个属性维度;
根据下式计算所述用户对各个候选值的偏好度:
其中,n为各个候选值的序号,1≤n≤Ns,p,Ns,p为所述目标属性维度上的候选值的数目,SelNums,p,n,t为在第t个记录子段中所述用户将所述目标属性维度设置为第n个候选值的次数,FavIdxs,p,n为所述用户对所述目标属性维度上的第n个候选值的偏好度;
将所述目标属性维度上的属性值设置为所述偏好度最高的候选值。
6.一种软件系统生成装置,其特征在于,包括:
生成指令接收模块,用于接收软件系统生成指令,并从所述软件系统生成指令中提取目标软件系统的功能组件配置文件;
标识集合提取模块,用于从所述功能组件配置文件中提取功能组件标识集合,所述功能组件标识集合中包括一个以上的功能组件标识;
功能组件获取模块,用于从预设的功能组件库中分别获取与所述功能组件标识集合中的各个功能组件标识对应的各个功能组件,其中,对于任意一个功能组件标识,均有且仅有一个对应的功能组件;
软件系统生成模块,用于按照预设的功能组件关联规则将获取的各个功能组件进行组合部署,生成所述目标软件系统。
7.根据权利要求6所述的软件系统生成装置,其特征在于,所述软件系统生成模块包括:
关系图构造单元,用于从所述功能组件关联规则中获取各个功能组件之间的耦合依赖关系,并根据各个功能组件之间的耦合依赖关系构造功能组件关系图,其中,将各个功能组件作为所述功能组件关系图中的顶点,将各个功能组件之间的耦合依赖关系作为所述功能组件关系图中的边;
连通图检测单元,用于检测所述功能组件关系图是否为连通图,即是否任意两个顶点之间均有路径相连;
第一生成单元,用于若所述功能组件关系图为连通图,则按照所述功能组件关联规则将所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统;
缺失组件选取单元,用于若所述功能组件关系图不是连通图,则从所述功能组件库中选取所述功能组件关系图缺失的功能组件;
第二生成单元,用于按照所述功能组件关联规则将所述功能组件关系图缺失的功能组件和所述功能组件关系图中的各个功能组件进行组合部署,生成所述目标软件系统。
8.根据权利要求6所述的软件系统生成装置,其特征在于,还包括:
生成模式获取模块,用于获取所述目标软件系统的生成模式;
组件显示模块,用于若所述目标软件系统的生成模式为选择生成模式,则将预设的全局功能组件标识集合中的各个功能组件标识在预设的显示区域进行显示,所述全局功能组件标识集合为功能组件标识的全集;
选择接收模块,用于接收用户通过预设的用户交互界面对所述全局功能组件标识集合中的各个功能组件标识的选择;
第一组合模块,用于将被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中;
历史选择获取模块,用于若所述目标软件系统的生成模式为默认生成模式,则从预设的历史行为记录中获取所述用户对所述全局功能组件标识集合中的各个功能组件标识的选择;
第二组合模块,用于将所述历史行为记录中被选中的功能组件标识组合为所述功能组件标识集合,并将所述功能组件标识集合添加入所述功能组件配置文件中。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的软件系统生成方法的步骤。
10.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至5中任一项所述的软件系统生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007975.XA CN109871208B (zh) | 2019-01-04 | 2019-01-04 | 软件系统生成方法、装置、计算机可读存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007975.XA CN109871208B (zh) | 2019-01-04 | 2019-01-04 | 软件系统生成方法、装置、计算机可读存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871208A true CN109871208A (zh) | 2019-06-11 |
CN109871208B CN109871208B (zh) | 2023-10-17 |
Family
ID=66917472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007975.XA Active CN109871208B (zh) | 2019-01-04 | 2019-01-04 | 软件系统生成方法、装置、计算机可读存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871208B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647454A (zh) * | 2019-09-20 | 2020-01-03 | 中国银行股份有限公司 | 确定系统用户访问信息的方法及装置 |
CN111338608A (zh) * | 2020-02-28 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
CN111736836A (zh) * | 2020-07-22 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 基于关系图的组件配置方法、装置及计算机可读存储介质 |
CN112698839A (zh) * | 2020-12-30 | 2021-04-23 | 深圳前海微众银行股份有限公司 | 数据中心节点部署方法、装置、系统及计算机存储介质 |
WO2021082785A1 (zh) * | 2019-10-28 | 2021-05-06 | 厦门雅基软件有限公司 | 游戏开发方法、游戏运行方法、装置和电子设备 |
CN113110830A (zh) * | 2020-01-13 | 2021-07-13 | 奇安信科技集团股份有限公司 | 基于组件的移动应用程序生成方法与装置 |
CN113535221A (zh) * | 2020-04-16 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | 应用版本管理的方法和装置 |
CN113703753A (zh) * | 2021-07-19 | 2021-11-26 | 青岛海尔科技有限公司 | 用于产品开发的方法、装置和产品开发系统 |
CN114489844A (zh) * | 2022-01-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 基于组件实现的云通信方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646040A (zh) * | 2012-04-19 | 2012-08-22 | 贾志东 | 基于功件和功件树的软件生成方法及装置 |
CN105718261A (zh) * | 2015-01-16 | 2016-06-29 | 贾志东 | 一种基于功件和功件树的目标产品生成方法和系统 |
CN106533929A (zh) * | 2016-12-30 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种微服务开发平台、生成方法以及部署方法和装置 |
CN108376091A (zh) * | 2018-02-23 | 2018-08-07 | 中国平安人寿保险股份有限公司 | 组件运行方法、装置、设备及计算机存储介质 |
CN108769234A (zh) * | 2018-06-07 | 2018-11-06 | Oppo广东移动通信有限公司 | 应用下载方法、装置、存储介质及电子设备 |
CN108984160A (zh) * | 2018-06-21 | 2018-12-11 | 中国石油集团安全环保技术研究院有限公司 | 基于组件化的信息化快速开发框架及方法 |
CN109062638A (zh) * | 2018-06-15 | 2018-12-21 | 平安科技(深圳)有限公司 | 一种系统组件显示方法、计算机可读存储介质及终端设备 |
CN109086051A (zh) * | 2018-06-29 | 2018-12-25 | 平安科技(深圳)有限公司 | 应用组件部署方法、装置及计算机存储介质 |
-
2019
- 2019-01-04 CN CN201910007975.XA patent/CN109871208B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646040A (zh) * | 2012-04-19 | 2012-08-22 | 贾志东 | 基于功件和功件树的软件生成方法及装置 |
CN105718261A (zh) * | 2015-01-16 | 2016-06-29 | 贾志东 | 一种基于功件和功件树的目标产品生成方法和系统 |
CN106533929A (zh) * | 2016-12-30 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种微服务开发平台、生成方法以及部署方法和装置 |
CN108376091A (zh) * | 2018-02-23 | 2018-08-07 | 中国平安人寿保险股份有限公司 | 组件运行方法、装置、设备及计算机存储介质 |
CN108769234A (zh) * | 2018-06-07 | 2018-11-06 | Oppo广东移动通信有限公司 | 应用下载方法、装置、存储介质及电子设备 |
CN109062638A (zh) * | 2018-06-15 | 2018-12-21 | 平安科技(深圳)有限公司 | 一种系统组件显示方法、计算机可读存储介质及终端设备 |
CN108984160A (zh) * | 2018-06-21 | 2018-12-11 | 中国石油集团安全环保技术研究院有限公司 | 基于组件化的信息化快速开发框架及方法 |
CN109086051A (zh) * | 2018-06-29 | 2018-12-25 | 平安科技(深圳)有限公司 | 应用组件部署方法、装置及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
孙万里;王丽芳;蒋泽军;: "基于XML的"零编码"组件框架的设计与实现", 航空计算技术, no. 02 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647454A (zh) * | 2019-09-20 | 2020-01-03 | 中国银行股份有限公司 | 确定系统用户访问信息的方法及装置 |
US11738268B2 (en) | 2019-10-28 | 2023-08-29 | Xiamen Yaji Software Co., Ltd | Game development method and apparatus, game running method and apparatus, and electronic device |
WO2021082785A1 (zh) * | 2019-10-28 | 2021-05-06 | 厦门雅基软件有限公司 | 游戏开发方法、游戏运行方法、装置和电子设备 |
CN113110830A (zh) * | 2020-01-13 | 2021-07-13 | 奇安信科技集团股份有限公司 | 基于组件的移动应用程序生成方法与装置 |
CN111338608A (zh) * | 2020-02-28 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
CN113535221A (zh) * | 2020-04-16 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | 应用版本管理的方法和装置 |
CN111736836B (zh) * | 2020-07-22 | 2020-11-17 | 平安国际智慧城市科技股份有限公司 | 基于关系图的组件配置方法、装置及计算机可读存储介质 |
CN111736836A (zh) * | 2020-07-22 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 基于关系图的组件配置方法、装置及计算机可读存储介质 |
CN112698839A (zh) * | 2020-12-30 | 2021-04-23 | 深圳前海微众银行股份有限公司 | 数据中心节点部署方法、装置、系统及计算机存储介质 |
CN112698839B (zh) * | 2020-12-30 | 2024-04-12 | 深圳前海微众银行股份有限公司 | 数据中心节点部署方法、装置、系统及计算机存储介质 |
CN113703753A (zh) * | 2021-07-19 | 2021-11-26 | 青岛海尔科技有限公司 | 用于产品开发的方法、装置和产品开发系统 |
CN113703753B (zh) * | 2021-07-19 | 2023-06-09 | 青岛海尔科技有限公司 | 用于产品开发的方法、装置和产品开发系统 |
CN114489844A (zh) * | 2022-01-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 基于组件实现的云通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109871208B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871208A (zh) | 软件系统生成方法、装置、计算机可读存储介质及服务器 | |
Geman et al. | Visual turing test for computer vision systems | |
CN109858390A (zh) | 基于端到端时空图学习神经网络的人体骨架的行为识别方法 | |
CN106656536A (zh) | 一种用于处理服务调用信息的方法与设备 | |
CN109993627B (zh) | 推荐方法、推荐模型的训练方法、装置和存储介质 | |
WO2016134580A1 (zh) | 一种数据查询方法及装置 | |
CN105488366A (zh) | 一种数据权限的控制方法和系统 | |
CN104598557A (zh) | 数据栅格化、用户行为分析的方法和装置 | |
CN109388674A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN113761359B (zh) | 数据包推荐方法、装置、电子设备和存储介质 | |
CN109284326A (zh) | 一种数据库访问方法和装置 | |
CN110347724A (zh) | 异常行为识别方法、装置、电子设备及介质 | |
CN109951846A (zh) | 无线网络识别方法、装置、存储介质及计算机设备 | |
CN111047426A (zh) | 一种基于资金交易的可疑账户分析方法、系统及存储介质 | |
CN110349013A (zh) | 风险控制方法及装置 | |
CN108052670A (zh) | 一种相机特效的推荐方法及装置 | |
CN111625638B (zh) | 一种问句处理方法、装置、设备及可读存储介质 | |
CN116401379A (zh) | 金融产品数据推送方法、装置、设备及存储介质 | |
CN107368500A (zh) | 数据抽取方法及系统 | |
CN108985352A (zh) | 一种基于大数据的聚类方法、装置及电子设备 | |
CN117709968A (zh) | 人员分配方法、装置、计算机设备和存储介质 | |
CN111353001B (zh) | 对用户进行分类的方法和装置 | |
CN107563402A (zh) | 一种社交关系推断方法及系统 | |
CN108805290B (zh) | 一种实体类别的确定方法及装置 | |
CN113592529B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |