CN113986207A - 一种软件架构生成、调用方法及装置 - Google Patents
一种软件架构生成、调用方法及装置 Download PDFInfo
- Publication number
- CN113986207A CN113986207A CN202111351531.1A CN202111351531A CN113986207A CN 113986207 A CN113986207 A CN 113986207A CN 202111351531 A CN202111351531 A CN 202111351531A CN 113986207 A CN113986207 A CN 113986207A
- Authority
- CN
- China
- Prior art keywords
- component
- component library
- code
- calling
- architecture
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种软件架构生成、调用方法及装置,涉及计算机技术领域,提供了一种基于swift平台开发软件架构的方式。该方法包括:获取用于表示多个组件库与多个组件库各自包含的组件之间的第一调用关系的第一调用信息,配置一个组件库的代码片段与一个组件库包含的组件的代码片段之间的调用关系,获得一个组件库的代码文件,并基于用于表示多个组件库之间的第二调用关系的第二调用信息,配置多个组件库各自的代码文件之间的调用关系,从而获得软件架构的架构代码文件包,以提供一种基于swift平台开发软件架构的方式。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件架构生成、调用方法及装置。
背景技术
苹果公司在2014年开发者大会上发布了swift平台,并开放了swift源码,具体包括编译器和标准库。swift是一种支持多编程范式和编译式的开源编程语言,主要用于开发IOS、Mac OSX和watch OS等系统下的应用程序(application)。
由于swift平台开放的时间较短,目前swift平台上的可供调用的库较少,且swift平台可供使用的库也较为分散。如果应用程序开发者需要基于swift平台进行应用程序开发,则需要基于swift平台创建大量能够支持应用程序的底层库,才能支持应用程序的运行。由此可见,亟需一种基于swift平台开发的软件架构。
发明内容
本申请实施例提供一种软件架构生成、调用方法及装置,用于提供一种基于swift平台开发软件架构的方式。
第一方面,提供了一种软件架构生成方法,包括:获取创建软件架构所需的架构信息,所述架构信息包括第一调用信息和第二调用信息,所述第一调用信息用于表示多个组件库与所述多个组件库各自包含的组件之间的第一调用关系,所述第二调用信息用于表示多个组件库之间的第二调用关系,所述组件用于表示创建所述软件架构所需的功能模块;分别针对所述多个组件库,执行以下操作:基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,其中一个组件库的代码片段和一个组件的代码片段均是基于swift平台生成的;基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包。
在本申请实施例中,可基于软件架构包含的组件库与组件库包含的组件之间的调用关系,配置组件库的代码片段与其包含的组件的代码片段之间的调用关系,基于软件架构对应的多个组件库之间的调用关系,配置多个组件库之间的代码文件之间的调用关系,从而创建软件架构对应的架构代码文件包,如此一来,提供了一种创建基于swift平台的软件架构,为后续开发基于swift平台的应用提供了架构基础,简化了后续开发应用的过程。
在一种可能的实施方式中,所述第一调用信息包括所述多个组件库的名称和每个组件库所包含的组件的名称;基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,包括:基于所述一个组件库包含的组件的名称,获取所述一个组件库包含的组件的代码片段,以及基于所述一个组件库的名称,获取所述一个组件库的代码片段;对所述一个组件库包含的组件的代码片段进行封装,其中,封装后的所述一个组件库包含的组件的代码片段对外部提供同一个子接口;配置所述一个组件库的代码片段与所述子接口之间的调用关系,获得配置后的所述一个组件库的代码片段;对所述配置后的所述一个组件库的代码片段进行封装,获得所述一个组件库的代码文件,其中,所述一个组件库的代码文件对外部提供一个接口。
在本实施方式中,可基于组件库的名称获取组件库对应的代码片段,以及可基于组件库包含的组件对应的代码片段,对属于同一个组件库下的多个组件的代码片段进行封装,使得该组件库只需调用一个子接口,相当于调用了各个组件,简化了组件库与各个组件之间的调用方式。并且,后续基于软件架构开发应用时,无需关注组件的代码片段,减少了应用开发的工作量。
在一种可能的实施方式中,所述一个组件库包含的组件的代码片段包含所述组件对应的数据模型名称,所述数据模型名称用于索引所述组件对应的数据模型。
在本实施方式中,由于swift平台支持反射,因此后续运行软件架构的架构代码文件包时,可直接基于数据模型名称索引具体的数据模型,一方面可简化组件的代码片段的开发,另一方面不在组件的代码片段中引入过于具体的数据模型,这样避免后续开发应用时修改代码的情况。
在一种可能的实施方式中,基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包,包括:基于所述第二调用信息,配置所述多个组件库各自的代码文件对外提供的接口之间的调用关系,获得所述软件架构的架构代码文件包。
在本实施方式中,可以对一个组件库的代码文件进行封装,使得其他组件可直接调用该组件库的接口,而无需关注该组件库的底层代码,简化软件架构的开发过程。
在一种可能的实施方式中,所述多个组件库包括基础组件库、公共组件库和主工程私有整合组件库,其中:所述基础组件库,包括用于实现业务对应的基础功能的组件;所述公共组件库,包括用于实现业务对应的通用功能的组件;所述主工程私有整合组件库,包括用于业务对应的复合功能的组件。
在本实施方式中,提供了多种组件库包含的几种组件库,具体包括基础组件库、公共组件库和主工程私有整合组件库,为后续开发应用提供了具有各自功能的组件,以降低后续开发应用的难度。
第二方面,本申请实施例提供一种软件架构调用方法,包括:获取软件架构的架构代码文件包,其中,所述架构代码文件包是通过如第一方面中任一所述的软件架构生成方法生成的;根据输入操作,获取待开发应用的业务代码文件包;将所述架构代码文件包和所述业务代码文件包加载到设定目录中,获得所述应用的应用开发包。
在本申请实施例中,可以直接基于已开发出的软件架构,加载相应的业务代码文件包,从而生成应用的代码开发包,提供了一种基于swift平台的软件架构开发应用的方式,简化了开发基于swift平台的应用的过程。
第三方面,提供一种软件架构生成装置,包括:获取模块,用于获取创建软件架构所需的架构信息,所述架构信息包括第一调用信息和第二调用信息,所述第一调用信息用于表示多个组件库与所述多个组件库各自包含的组件之间的第一调用关系,所述第二调用信息用于表示多个组件库之间的第二调用关系,所述组件用于表示创建所述软件架构所需的功能模块;第一配置模块,用于分别针对所述多个组件库,执行以下操作:基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,其中一个组件库的代码片段和一个组件的代码片段均是基于swift平台生成的;第二配置模块,用于基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包。
在一种可能的实施方式中,所述第一调用信息包括所述多个组件库的名称和每个组件库所包含的组件的名称;第一配置模块具体用于:基于所述一个组件库包含的组件的名称,获取所述一个组件库包含的组件的代码片段,以及基于所述一个组件库的名称,获取所述一个组件库的代码片段;对所述一个组件库包含的组件的代码片段进行封装,其中,封装后的所述一个组件库包含的组件的代码片段对外部提供同一个子接口;配置所述一个组件库的代码片段与所述子接口之间的调用关系,获得配置后的所述一个组件库的代码片段;对所述配置后的所述一个组件库的代码片段进行封装,获得所述一个组件库的代码文件,其中,所述一个组件库的代码文件对外部提供一个接口。
在一种可能的实施方式中,所述一个组件库包含的组件的代码片段包含所述组件对应的数据模型名称,所述数据模型名称用于索引所述组件对应的数据模型。
在一种可能的实施方式中,第二配置模块具体用于:基于所述第二调用信息,配置所述多个组件库各自的代码文件对外提供的接口之间的调用关系,获得所述软件架构的架构代码文件包。
在一种可能的实施方式中,所述多个组件库包括基础组件库、公共组件库和主工程私有整合组件库,其中:所述基础组件库,包括用于实现业务对应的基础功能的组件;所述公共组件库,包括用于实现业务对应的通用功能的组件;所述主工程私有整合组件库,包括用于业务对应的复合功能的组件。
第四方面,提供一种软件架构调用装置,包括:获取模块,用于获取软件架构的架构代码文件包,其中,所述架构代码文件包是通过如第一方面中任一所述的方法生成的,以及根据输入操作,获取待开发应用的业务代码文件包;加载模块,用于将所述架构代码文件包和所述业务代码文件包加载到设定目录中,获得所述应用的应用开发包。
第五方面,一种计算机设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面或第二方面中任一项所述的方法。
第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面或第二方面中任一项所述的方法。
关于第二方面至第六方面的有益效果可参照第一方面及任一可能的实施方式中的有益效果,此处不再罗列。
附图说明
图1为本申请实施例适用的一种应用场景示意图;
图2为本申请实施例提供的一种软件架构生成方法的流程图;
图3为本申请实施例提供的一种架构信息的一种示意图;
图4为本申请实施例提供的一种生成组件的过程示意图;
图5为本申请实施例提供的一种软件架构调用方法的流程图;
图6为本申请实施例提供的一种软件架构生成装置的结构示意图;
图7为本申请实施例提供的一种软件架构调用装置的结构示意图;
图8为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
本申请实施例提供了一种软件架构生成方法,用于生成基于swift平台的软件架构。在该方法中,可利用组件库与其包含的组件之间的调用关系,配置组件库的代码片段与组件库包含的组件的代码片段之间的调用关系,以及利用多个组件库之间的调用关系,配置各个组件库的代码片段之间的调用关系,以生成软件架构的架构代码文件包,从而提供了一种生成基于swift平台的软件架构。并且,可直接基于组件库与其包含的组件之间的调用关系,以及多个组件库之间的调用关系,直接生成软件架构的架构代码文件包,提供了一种可简单生成软件架构的方式。
本申请实施例中的软件架构生成方法可由软件架构生成设备执行,软件架构生成设备可通过具有计算功能的设备实现,包括但不限于个人计算机或服务器等。服务器可为虚拟服务器或实体服务器,本申请实施例对此不做限定。
下面结合图1所示的计算机设备的部署示意图,对计算机设备的部署进行示例介绍。图1也可以理解为本申请实施例中的软件架构生成方法的应用场景示意图。如图1所示,该应用场景示意图包括软件架构生成设备110、存储设备120和软件架构调用设备130。软件架构生成设备110的实现方式可参照前文。存储设备120可通过具有存储功能和传输功能的设备实现,例如服务器。软件架构调用设备130的实现方式可参照软件架构生成设备110的实现方式,此处不再罗列。在图1中,是以个人计算机实现软件架构生成设备110和软件架构调用设备130为例,以服务器实现存储设备120为例,但实际不限制软件架构生成设备110、存储设备120和软件架构调用设备130的具体实现方式。
软件架构生成设备110用于生成软件架构对应的架构代码文件包。其中,生成架构代码文件包的方式将在下文中介绍。在生成架构代码文件包之后,软件架构生成设备110可将架构代码文件包存储到存储设备120中。存储设备120对架构代码文件包进行存储。后续,软件架构调用设备130可从存储设备120或者软件架构生成设备110获取架构代码文件包,并基于架构代码文件包生成应用开发包,其中生成应用开发包的过程在下文中介绍。
下面结合附图,对本申请实施例中的软件架构生成方法进行介绍。
请参照图2,为本申请实施例提供的一种软件架构生成方法的流程示意图。下面以图1所示的个人计算机执行软件架构生成方法为例进行介绍。
步骤21,获取创建软件架构所需的架构信息。
软件架构可理解为开发应用所需的功能框架,软件架构实际可由多个组件实现。组件用于表示创建软件架构所需的功能模块,或者可以理解为功能单元。因此,在创建软件架构时,个人计算机设备需要先获取该软件架构对应的架构信息。其中,该架构信息用于描述该软件架构的整体架构。其中,架构信息的形式可以有多种,例如文字、表格或图片等。
示例性的,架构信息包括第一调用信息和第二调用信息。该第一调用信息用于表示多个组件库与多个组件库各自包含的组件之间的第一调用关系。第二调用信息用于表示多个组件库之间的第二调用关系。作为一个示例,第一调用信息包括多个组件库的名称和每个组件库所包含的组件的名称。第二调用信息包括多个组件库之间的调用关系。
作为一个示例,多个组件库包括(1)基础(basic)组件库(library)、(2)公共组件库和(3)主工程私有整合组件库。基础组件库包括用于实现业务对应的基础功能的组件。公共组件库包括用于实现业务对应的通用功能的组件。主工程私有整合组件库包括用于业务对应的复合功能的组件,例如,该主工程私有整合组件库中的各个组件是对基础组件库中的组件和/或者公共组件库中的组件的功能进行组合得到的。
进一步地,多个组件库还可以包括(4)主工程和(5)业务组件中的一项或两项。其中,主工程组件库包括用于实现业务的主要业务功能的组件。业务组件用于实现业务的基础业务功能的组件。
为了更清楚地示例多个组件库,下面结合图3所示的架构信息的一种示意图进行介绍。
(1)基础组件库包括用户界面(user interface,UI)组件、网络组件、图片加载组件和工具类组件(如包括封装和/或解析数据(date)、字符串(string)、Json等系统类)中的一种或多种。
例如,UI组件可以是将常用的UI控件封装成组件,可提供参数自定义配置,提高易用性和扩展性。网络组件用于实现网络请求功能,采用统一的网络组件,可降低后续维护软件架构的难度。图片加载组件可实现图片的异步加载或缓存图片等功能。
(2)公共组件库,又可以称为常用功能组件库,公共组件库中的组件根据组件的大小又可划分为中间件和大型组件等。公共组件库例如包括数据库组件、分享组件、即时通信(instant messaging,IM)组件、推送组件中的一种或多种。数据库组件用于实现数据库的各种操作,各种操作例如增加、删除或改变、查询或更新数据库等。另外,公共组件库还可以包括第三方功能组件,其中,第三方功能组件用于对第三方提供的服务进行处理,例如,对第三方提供的服务封装处理,便于及时更新第三方提供的服务。
(3)主工程私有整合组件库,例如包括整合基础组件和非组件公共使用部分。
(4)业务组件库例如包括用户组件、发票管理组件、登录注册组件和设置组件中的一种或多种。
(5)主工程组件,例如包括首页组件、开票组件、发票查询组件和账号管理组件中的一种或多种。
在一种可能的实施例中,多个组件库从上到下的调用关系依次为:主工程组件、业务组件库、主工程私有整合组件库、公共组件库和基础组件库。在图3中以箭头示例多个组件库之间的调用关系,其中箭头所指的组件库表示被调用的组件库。
上述对架构信息进行了介绍,下面对个人计算机获取架构信息的方式进行示例介绍。
方式一:根据用户的输入操作,获取该架构信息。
具体的,用户可在个人计算机上进行输入操作,个人计算机根据该输入操作,获取该架构信息。
方式二:个人计算机从其他设备获取该架构信息。其他设备是指除了个人计算机设备之外的设备。其他设备获取架构信息的方式可参照个人计算机获取架构信息的方式,此处不再赘述。
步骤22,分别针对多个组件库,执行以下操作:基于第一调用信息,配置一个组件库的代码片段与一个组件库包含的组件的代码片段之间的调用关系,获得一个组件库的代码文件。
个人计算机需要先获取多个组件库各自对应的代码片段,以及每个组件库包含的组件对应的代码文件,进而才能配置组件库的代码片段与组件库包含的组件的代码片段之间的调用关系,下面对个人计算机获取多个组件库各自对应的代码片段,以及每个组件库包含的组件对应的代码文件的方式进行示例介绍。
示例一,个人计算机中可预配置有多个组件库各自对应的代码片段,以及每个组件库包含的组件对应的代码文件。其中,组件库的代码片段以及组件的代码片段都是基于swift平台开发的,这样也就使得后续基于这些组件开发出的软件架构可与swift平台兼容。
在一种可能的实施例中,一个组件库包含的组件的代码片段包含组件对应的数据模型(model)名称,数据模型名称用于索引该组件对应的数据模型。
后续,个人计算机可以根据数据模型名称,索引该组件对应的数据模型,例如,在软件架构对应的代码文件包运行之后,计算机设备可以在自身的在内存中进行搜索该数据模型名称对应的数据模型,并获取和存储搜索到的数据模型。这样可以简化组件的代码片段的生成。
可选的,组件库对应的代码片段和组件的代码片段可以是个人计算机根据用户的输入操作获得的。
例如,请参照图4所示的生成组件的过程示例图。在图4中展示了数据库组件的生成示意图。该数据库组件的代码片段包括创建数据库管理器(如图4中所示的SQLiteManager)、数据库工具(如图4中所示的SQLitetool)和数据库数据模型(如图4中所示的SQLiteModel)。
示例性的,组件的代码文件可以为实现组件的完整功能,或者可以用于申明组件的方法(或者大类),本申请实施例对此不做限定。例如,对于所有业务可直接复用的组件,那么该组件的代码文件可用于实现组件的全部功能。对于所有业务无法直接复用的组件,那么该组件的代码文件可用于申明该组件的方法(或者大类)即可。
示例二,个人计算机可基于第一调用信息,从存储设备获取多个组件库各自对应的代码片段,以及每个组件库包含的组件对应的代码文件。例如,个人计算机可基于组件库的名称,从存储设备获取多个组件库各自对应的代码片段,以及基于组件的名称,从存储设备获取组件库包含的组件对应的代码文件。
示例三,个人计算机可基于第一调用信息,从网络数据中获取组件库以及每个组件对应的代码片段。
个人计算机配置多个组件库中每个组件库的代码片段与该组件库包含的组件的代码片段之间的调用关系的方式相同,下面以介绍配置一个组件库的代码片段与该组件库包含的组件的代码片段之间的调用关系为例,进行介绍。
步骤1.1,个人计算机可对该组件库包含的组件的代码片段进行封装,使封装后的该组件库包含的组件的代码片段对外部提供同一个子接口。
具体的,个人计算机相当于将属于同一个组件库的组件对应的代码片段进行封装,使得这些组件对外部仅提供一个子接口。
例如,组件包括数据库组件,该数据库组件具体示例为“SQLiteManager.manager.insertModel”,SQLite属于移动端的数据存储中心。个人计算机可为该数据库组件配置子接口“test”。
步骤1.2,个人计算机配置该组件库的代码片段与子接口之间的调用关系,获得配置后的该组件库的代码片段。
组件库的代码片段和各个组件的代码片段原本之间没有调用关系,在本申请实施例中对组件的代码片段进行封装,封装之后,可以利用组件库的代码片段调用这些组件的子接口,从而建立了组件库的代码片段与其所属的组件的代码片段之间的调用关系。
步骤1.3,个人计算机对配置后的该组件库的代码片段进行封装,获得该组件库的代码文件。其中,该组件库的代码文件对外部提供一个接口。
同理,个人计算机对配置后的该组件库的代码片段进行封装,使封装后的组件库的代码文件对外提供一个接口,以便于其他组件库调用该组件库对应的代码文件。
例如,下面对封装一个组件库进行示例介绍。
///创建数据库
func createDB(key:String){}
///插入数据
func insertModel(tableName:String,model:SQLiteModel){}
///批量插入数据
func insertList(tableName:String,modelList:[SQLiteModel]){}
///更新数据
func updateModel(tableName:String,model:SQLiteModel){}
///批量更新数据
func updateList(tableName:String,modelList:[SQLiteModel]){}
///查询某张表下相应类的数据
func select<T:SQLiteModel>(tableName:String,modelType:T.Type)->[[String:AnyObject]]{}。
下面对公共组件库查询数据的接口代码实现进行具体说明。
其中,select_wrapper为接口名称,将数据库表名称tableName传入接口中,利用SQLiteModel中的对象内容,进行查询,最终返回结果(results)。
步骤23,基于第二调用信息,配置多个组件库各自的代码文件之间的调用关系,获得软件架构的架构代码文件包。
同理,个人计算机可基于第二调用信息,配置多个组件库各自的代码文件对外提供的接口之间的调用关系,从而获得该软件架构的架构代码文件包。该架构代码文件包以代码形式描述该软件架构。后续,应用开发者可基于该架构代码文件包,从而开发应用。
例如,主工程私有整合组件库的代码片段可调用公共组件库的代码文件对应的接口。
为了更清楚地说明生成软件架构对应的架构代码文件包的生成过程,下面进行示例说明。
步骤2.1,封装基础组件库和公共组件库中的各个组件,对业务组件露统一接口。如此,业务方调用时无需关注具体实现细节。
例如,以实现支付管理业务为例,下面对组件的封装过程进行示例。
步骤2.2,在主工程组件和业务组件库对应的根目录下创建容器文件(Podfile),并按照需求添加业务组件库、基础组件库和公共组件库中一项或多项中的组件,例如,根据用户输入的组件库的名称,将相应的组件库添加到文件中。然后执行pod install命令,即可完成组件库引入配置。
在上述实施例的基础上,下面结合图5所示的本申请实施例提供的软件架构调用方法的流程示意图,以软件架构调用设备为个人计算机为例,对本申请实施例中的软件架构调用方法的流程进行介绍。
步骤51,获取软件架构的架构代码文件包。
个人计算机获取架构代码文件包的方式可参照前文实施例论述的内容,此处不再赘述。获取架构代码文件时,可根据指令,读取该架构代码文件包。
下面对构建脚本主要命令进行示例介绍。
步骤52,根据输入操作,获取待开发应用的业务代码文件包。
具体的,如果该架构代码文件包包括业务组件库对应的代码片段和主工程组件库对应的代码片段,那么应用开发者可直接在业务组件库对应的代码片段和主工程组件库对应的代码片段中输入相应的代码,个人计算机从而获得业务代码文件包。或者,如果该架构代码文件包不包括业务组件库对应的代码片段和主工程组件库对应的代码片段,那么应用开发者可单独开发业务组件库对应的代码片段以及主工程组件库对应的代码片段,从而获得业务文件包。
步骤53,将架构代码文件包和业务代码文件包加载到设定目录中,获得应用的应用开发包。
个人计算机可以将架构代码文件包和业务代码文件包配置在设定目录中,从而获得应用开发包。
基于相同的发明构思,本申请实施例提供一种软件架构生成装置,该装置用于实现前文论述的软件架构生成设备的功能。请参照图6所示的软件架构生成装置的结构示意图,该装置包括:获取模块601,用于获取创建软件架构所需的架构信息,架构信息包括第一调用信息和第二调用信息,第一调用信息用于表示多个组件库与多个组件库各自包含的组件之间的第一调用关系,第二调用信息用于表示多个组件库之间的第二调用关系,组件用于表示创建软件架构所需的功能模块;第一配置模块602,用于分别针对多个组件库,执行以下操作:基于第一调用信息,配置一个组件库的代码片段与一个组件库包含的组件的代码片段之间的调用关系,获得一个组件库的代码文件,其中一个组件库的代码片段和一个组件的代码片段均是基于swift平台生成的;第二配置模块603,用于基于第二调用信息,配置多个组件库各自的代码文件之间的调用关系,获得软件架构的架构代码文件包。
在一种可能的实施方式中,第一调用信息包括多个组件库的名称和每个组件库所包含的组件的名称;第一配置模块602具体用于:基于一个组件库包含的组件的名称,获取一个组件库包含的组件的代码片段,以及基于一个组件库的名称,获取一个组件库的代码片段;对一个组件库包含的组件的代码片段进行封装,其中,封装后的一个组件库包含的组件的代码片段对外部提供同一个子接口;配置一个组件库的代码片段与子接口之间的调用关系,获得配置后的一个组件库的代码片段;对配置后的一个组件库的代码片段进行封装,获得一个组件库的代码文件,其中,一个组件库的代码文件对外部提供一个接口。
在一种可能的实施方式中,一个组件库包含的组件的代码片段包含组件对应的数据模型名称,数据模型名称用于索引组件对应的数据模型。
在一种可能的实施方式中,第二配置模块603具体用于:基于第二调用信息,配置多个组件库各自的代码文件对外提供的接口之间的调用关系,获得软件架构的架构代码文件包。
在一种可能的实施方式中,多个组件库包括基础组件库、公共组件库和主工程私有整合组件库,其中:基础组件库,包括用于实现业务对应的基础功能的组件;公共组件库,包括用于实现业务对应的通用功能的组件;主工程私有整合组件库,包括用于业务对应的复合功能的组件。
基于相同的发明构思,本申请实施例提供一种软件架构调用装置,该装置用于实现前文论述的软件架构调用设备的功能。请参照图7所示的软件架构调用装置的结构示意图,该装置包括:获取模块701,用于获取软件架构的架构代码文件包,其中,所述架构代码文件包是通过如前文任一所述的软件架构生成方法生成的,以及根据输入操作,获取待开发应用的业务代码文件包;加载模块702,用于将所述架构代码文件包和所述业务代码文件包加载到设定目录中,获得所述应用的应用开发包。
基于相同的发明构思,本申请实施例提供一种计算机设备,该计算机设备可实现前文软件架构生成设备或软件架构调用设备的功能。请参照图8所示的计算机设备的结构示意图,该计算机设备包括:至少一个处理器801,以及与所述至少一个处理器801通信连接的存储器802;其中,所述存储器802存储有可被所述至少一个处理器801执行的指令,所述至少一个处理器801通过执行所述存储器802存储的指令实现如前文论述的任一的软件架构生成方法或前文论述的任一的软件架构调用方法。
可选的,该处理器801和存储器802可耦合设置,或相对独立设置。
可选的,处理器801可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器802和处理器801之间的具体连接介质。本申请实施例在图8中以存储器802和处理器801之间通过总线(在图8中未单独示意)连接,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线可以分为地址总线、数据总线、控制总线等。
存储器802可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器802也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器802可以是上述存储器的组合。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如前文论述的任一的软件架构生成方法或软件架构调用方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种软件架构生成方法,其特征在于,包括:
获取创建软件架构所需的架构信息,所述架构信息包括第一调用信息和第二调用信息,所述第一调用信息用于表示多个组件库与所述多个组件库各自包含的组件之间的第一调用关系,所述第二调用信息用于表示多个组件库之间的第二调用关系,所述组件用于表示创建所述软件架构所需的功能模块;
分别针对所述多个组件库,执行以下操作:基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,其中一个组件库的代码片段和一个组件的代码片段均是基于swift平台生成的;
基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包。
2.如权利要求1所述的方法,其特征在于,所述第一调用信息包括所述多个组件库的名称和每个组件库所包含的组件的名称;基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,包括:
基于所述一个组件库包含的组件的名称,获取所述一个组件库包含的组件的代码片段,以及基于所述一个组件库的名称,获取所述一个组件库的代码片段;
对所述一个组件库包含的组件的代码片段进行封装,其中,封装后的所述一个组件库包含的组件的代码片段对外部提供同一个子接口;
配置所述一个组件库的代码片段与所述子接口之间的调用关系,获得配置后的所述一个组件库的代码片段;
对所述配置后的所述一个组件库的代码片段进行封装,获得所述一个组件库的代码文件,其中,所述一个组件库的代码文件对外部提供一个接口。
3.如权利要求2所述的方法,其特征在于,所述一个组件库包含的组件的代码片段包含所述组件对应的数据模型名称,所述数据模型名称用于索引所述组件对应的数据模型。
4.如权利要求2所述的方法,其特征在于,基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包,包括:
基于所述第二调用信息,配置所述多个组件库各自的代码文件对外提供的接口之间的调用关系,获得所述软件架构的架构代码文件包。
5.如权利要求1~4任一项所述的方法,其特征在于,所述多个组件库包括基础组件库、公共组件库和主工程私有整合组件库,其中:
所述基础组件库,包括用于实现业务对应的基础功能的组件;
所述公共组件库,包括用于实现业务对应的通用功能的组件;
所述主工程私有整合组件库,包括用于业务对应的复合功能的组件。
6.一种软件架构调用方法,其特征在于,包括:
获取软件架构的架构代码文件包,其中,所述架构代码文件包是通过如权利要求1~5中任一所述的方法生成的;
根据输入操作,获取待开发应用的业务代码文件包;
将所述架构代码文件包和所述业务代码文件包加载到设定目录中,获得所述应用的应用开发包。
7.一种软件架构生成装置,其特征在于,包括:
获取模块,用于获取创建软件架构所需的架构信息,所述架构信息包括第一调用信息和第二调用信息,所述第一调用信息用于表示多个组件库与所述多个组件库各自包含的组件之间的第一调用关系,所述第二调用信息用于表示多个组件库之间的第二调用关系,所述组件用于表示创建所述软件架构所需的功能模块;
第一配置模块,用于分别针对所述多个组件库,执行以下操作:基于所述第一调用信息,配置一个组件库的代码片段与所述一个组件库包含的组件的代码片段之间的调用关系,获得所述一个组件库的代码文件,其中一个组件库的代码片段和一个组件的代码片段均是基于swift平台生成的;
第二配置模块,用于基于所述第二调用信息,配置所述多个组件库各自的代码文件之间的调用关系,获得所述软件架构的架构代码文件包。
8.一种软件架构调用装置,其特征在于,包括:
获取模块,用于获取软件架构的架构代码文件包,其中,所述架构代码文件包是通过如权利要求1~5中任一所述的方法生成的,以及根据输入操作,获取待开发应用的业务代码文件包;
加载模块,用于将所述架构代码文件包和所述业务代码文件包加载到设定目录中,获得所述应用的应用开发包。
9.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1~5或6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~5或6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111351531.1A CN113986207A (zh) | 2021-11-16 | 2021-11-16 | 一种软件架构生成、调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111351531.1A CN113986207A (zh) | 2021-11-16 | 2021-11-16 | 一种软件架构生成、调用方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986207A true CN113986207A (zh) | 2022-01-28 |
Family
ID=79748606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111351531.1A Pending CN113986207A (zh) | 2021-11-16 | 2021-11-16 | 一种软件架构生成、调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986207A (zh) |
-
2021
- 2021-11-16 CN CN202111351531.1A patent/CN113986207A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912724B (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
CN107147704B (zh) | 一种面向区块链的通用服务中间件系统 | |
CN107066242B (zh) | 确定软件容器中软件的标识的方法和系统 | |
US9047160B2 (en) | Designing and building virtual images using semantically rich composable software image bundles | |
US9223568B2 (en) | Designing and cross-configuring software | |
CN108964968B (zh) | 一种容器云环境下的服务接入管理方法和系统 | |
WO2015055074A1 (zh) | 动态加载和调用程序的方法及装置 | |
US10594800B2 (en) | Platform runtime abstraction | |
US9912759B2 (en) | Dynamically generating solution stacks | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
WO2019029451A1 (zh) | 发布移动应用的方法和电子设备 | |
CN110083366B (zh) | 应用运行环境的生成方法、装置、计算设备及存储介质 | |
CN109857374B (zh) | 移动应用的开发方法及装置 | |
CN106778270B (zh) | 一种恶意应用程序的检测方法及系统 | |
CN113986207A (zh) | 一种软件架构生成、调用方法及装置 | |
CN115344275A (zh) | 操作系统的镜像文件生成方法、装置和计算机设备 | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
CN109697076A (zh) | 一种应用软件资源的动态更新方法、装置及设备 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN113835827A (zh) | 基于容器Docker的应用部署方法、装置及电子设备 | |
Srinivasmurthy et al. | Web2exchange: A model-based service transformation and integration environment | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 |
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 |