CN111258550A - 一种软件架构及软件架构开发方法 - Google Patents

一种软件架构及软件架构开发方法 Download PDF

Info

Publication number
CN111258550A
CN111258550A CN202010048495.0A CN202010048495A CN111258550A CN 111258550 A CN111258550 A CN 111258550A CN 202010048495 A CN202010048495 A CN 202010048495A CN 111258550 A CN111258550 A CN 111258550A
Authority
CN
China
Prior art keywords
function
layer
driving
application
interface
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
Application number
CN202010048495.0A
Other languages
English (en)
Inventor
刘均
沈孟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN202010048495.0A priority Critical patent/CN111258550A/zh
Publication of CN111258550A publication Critical patent/CN111258550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种软件架构及软件架构开发方法,其中软件架构应用于终端设备,软件架构包括:驱动层、应用层及耦合于应用层和驱动层之间的函数库层;其中,驱动层包括多个独立封装的芯片驱动数据包,多个芯片驱动数据包形成驱动函数库,每个芯片驱动数据包封装有对应芯片的通信协议并设置有对应的接口调用函数;函数库层是基于驱动层的芯片驱动数据包建立并可根据芯片驱动数据包的变更而更新的函数库层,用于将驱动层反馈的接口调用函数进行重新封装以形成对应的编程接口函数;应用层用于接收指令信息,并将指令信息反馈给函数库层,以使函数库层识别指令信息,并通过对应的编程接口函数调用对应的接口调用函数来处理指令信息。

Description

一种软件架构及软件架构开发方法
技术领域
本申请涉及计算机系统技术领域,尤其涉及一种软件架构及软件架构开发方法。
背景技术
通常终端设备,是一种具有通讯功能,并且可以完成信息交互的设备,如,定位终端可以接收到定位程序的定位请求,并根据定位请求控制设置于定位装置的定位模组完成定位,从而获取到对应的定位信息。
现有技术中,由于定位终端的生成厂家不同,其所采用的定位模组不相同,从而造成与定位模组适配的控制芯片不相同,由于针对同一业务不同厂商研发的控制芯片,进而不同厂商向定位终端的应用层提供的API(Application Programming Interface,应用程序编程接口)函数也各不相同,从而造成各厂商提供的各类型定位终端执行同一种业务功能的应用层软件代码各异,使得应用层软件代码不通用,造成对应的软件开发的周期长、漏洞多、研发成本高等缺陷。
因此,如何调整软件架构,节省软件开发的成本是本领域技术人员正在研究的热门课题。
发明内容
本申请的主要目的在于提供一种软件架构及软件架构开发方法。
为实现上述目的,第一方面,本申请提供了一种软件架构,应用终端设备,所述软件架构包括:
驱动层、应用层及耦合于所述应用层和所述驱动层之间的函数库层;
其中,所述驱动层包括多个独立封装的芯片驱动数据包,多个所述芯片驱动数据包形成驱动函数库,每个所述芯片驱动数据包封装有对应芯片的通信协议并设置有对应的接口调用函数;
所述函数库层是基于所述驱动层的所述芯片驱动数据包建立并可根据所述芯片驱动数据包的变更而更新的函数库层,用于将所述驱动层反馈的所述接口调用函数进行重新封装以形成对应的编程接口函数;
所述应用层用于接收指令信息,并将所述指令信息反馈给所述函数库层,以使所述函数库层识别所述指令信息,并通过对应的所述编程接口函数调用对应的所述接口调用函数来处理所述指令信息。
优选地,所述函数库层设置有与对应芯片适配的硬件接口通信协议及硬件驱动协议,所述函数库层将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数。
优选地,所述编程接口函数包括系统类应用程序编程接口函数、显示类应用程序编程接口函数、打印类应用程序编程接口函数、工具类应用程序编程接口函数、通讯类应用程序编程接口函数、IC卡类应用程序编程接口函数、金融卡类应用程序编程接口函数中至少一者;
所述函数库层根据所述驱动层反馈的所述接口调用函数识别出对应芯片需要适配的硬件接口类型,并将对应的所述硬件接口通信协议、所述硬件驱动协议及所述接口调用函数重新封装为各自硬件接口类型对应的统一的编程接口函数。
优选地,所述函数库层还用于向所述应用层提供所述编程接口函数的函数信息,其中,所述函数信息包括函数名称、函数参数及函数返回值。
优选地,所述函数库层还设置有指令查询文件,所述指令查询文件记录有所述指令信息、所述编程接口函数及所述接口调用函数的关联关系,当所述函数库层接收到所述应用层用反馈的所述指令信息后,根据所述接口调用函数获取到对应的编程接口函数,并根据所述编程接口函数查询到所述接口调用函数从而处理所述指令信息。
优选地,所述应用层安装有若干个应用程序,当所述应用程序被触发时可以生成对应的所述指令信息。
优选地,当所述应用层安装的所述应用程序变更时,所述函数库层可基于应用程序的变更而更新。
为实现上述目的,第二方面,本申请还提供一种软件架构开发方法,应用于前述的软件架构,所述方法包括:
接收开发需求;
根据所述开发需求对应用层进行调整;
根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;
输出所述软件架构。
优选地,所述根据所述开发需求对应用层进行调整,包括:
解析所述开发需求;
根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
优选地,所述根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构,包括:
根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;
根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
为实现上述目的,第三方面,本申请还提供一种软件架构开发装置,包括:
接收模块,用于接收开发需求;
调整模块,用于根据所述开发需求对应用层进行调整;
架构生成模块,用于根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;
架构输出模块,用于输出所述软件架构。
优选地,所述调整模块,具体包括:
解析子模块,用于解析所述开发需求;
第一调整子模块,用于根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
优选地,所述架构生成模块,具体包括:
第二调整子模块,用于根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;
调用封装子模块,用于根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;
输出子模块,用于根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
为实现上述目的,第四方面,本申请还提供一种终端设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述第一方面所述的数据库平台访问方法。
为实现上述目的,第五方面,本申请还提供一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如上述第一方面所述的数据库平台访问方法。与现有技术相比,本申请所提供的软件架构中,函数库层可以将不同驱动层反馈的接口调用函数封装为统一的接口调用函数,因此应用层可以针对该统一的接口调用函数进行同一种业务功能的应用层软件代码开发,从而不同终端设备开发厂商生成的各种类型的终端设备时可以使用同一个应用层软件代码执行同一种业务功能,使得应用层软件代码可以通用。
进一步,由于驱动层包括多个独立封装的芯片驱动数据包,多个所述芯片驱动数据包形成驱动函数库并设置有对应该驱动函数库的接口调用函数,同时,函数库层是基于所述驱动层的芯片驱动数据包建立并可根据所述芯片驱动数据包的变更而更新,函数库层可以将不同驱动层反馈的接口调用函数封装为统一的接口调用函数,当应用层对应的软件代码更新时,应用程序开发人员只需要更改一次应用层的软件代码,提高应用程序更新效率并节约成本。
或者当驱动层变更某些功能的硬件时,函数库层只需对应变更对应的接口调用函数即可,从而使得应用层对应的软件代码可以不用更新或只需更新对应的接口调用函数即可。
附图说明
图1为本申请提供的一种软件架构的结构示意图;
图2为图1的细节框图结构示意图;
图3为软件架构所应用于的终端设备的结构示意图;
图4为本申请提供的软件架构开发方法的步骤流程图;
图5为图4中步骤S2的细节流程图;
图6为图4中步骤S3的细节流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,如下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1-3,一种软件架构,应用于终端设备100,所述终端设备100可以是个人电脑(PC)、移动终端、个人数字助理PDA或具有某些特殊功能的电子终端设备100,如定位终端,在此不做限定。其中,终端设备100所搭载的操作系统包括但不限于搭载iOS@Android@Windows Phone@者其它操作系统的终端设备100。
如图1所示,本申请所提供的软件架构包括驱动层10、应用层30及耦合于应用层30和驱动层10之间的函数库层20。
其中,驱动层10包括多个独立封装的芯片驱动数据包101,多个芯片驱动数据包101形成驱动函数库,每个芯片驱动数据包101封装有对应芯片的通信协议并设置有对应的接口调用函数。
函数库层20是基于驱动层10的芯片驱动数据包101建立并可根据芯片驱动数据包101的变更而更新的函数库层20,用于将驱动层10反馈的接口调用函数进行重新封装以形成对应的编程接口函数201。
应用层30用于接收指令信息,并将指令信息反馈给函数库层20,以使函数库层20识别指令信息,并通过对应的编程接口函数201调用对应的接口调用函数来处理指令信息。
如图2所示,终端设备100的开发厂商在进行产品设计时所采用的硬件不相同,从而造成在该终端设备100上所以驱动层10向应用层30提供的接口调用函数也各不相同,进而需要各自开发厂商的研发人员针对自身提供的接口调用函数进行应用层30软件代码开发。
如,A开发厂商在进终端设备100开发时在终端设备100的软件架构的驱动层10中在使用A类硬件,如A类芯片以及与A类芯片适配硬件接口和硬件驱动,则对应的向应用层30提供的是与A类硬件适配的A类接口调用函数,也即应用层30对应应用的开发人员需要根据A开发厂商提供的A类接口调用函数进行应用程序的开发。
B开发厂商在进终端设备100开发时在终端设备100的软件架构的驱动层10中在使用B类硬件,如B类芯片以及与B类芯片适配硬件接口和硬件驱动,则对应的向应用层30提供的是与B类硬件适配的B类接口调用函数,也即应用层30对应应用的开发人员需要根据B开发厂商提供的B类接口调用函数进行应用程序的开发。
C开发厂商在进终端设备100开发时在终端设备100的软件架构的驱动层10中在使用C类硬件,如C类芯片以及与C类芯片适配硬件接口和硬件驱动,则对应的向应用层30提供的是与C类硬件适配的C类接口调用函数,也即应用层30对应应用的开发人员需要根据C开发厂商提供的C类接口调用函数进行应用程序的开发。
由于不同终端设备100开发厂商的驱动层10由各自研发人员进行研发,所以驱动层10向应用层30提供的接口调用函数也各不相同。
请参阅图2-3,具体地,终端设备100的应用层30安装有若干个应用程序301,当应用程序301被触发时可以生成对应的指令信息,应用层30接收应用程序301所产生的指令信息并将指令信息发送给函数库层20,以使函数库层20执行相应的操作。
其中,应用程序301可以是诸如以下中的一种或多种:系统类应用程序、显示类应用程序、打印类应用程序、工具类应用程序、通讯类应用程序、IC卡类应用程序及金融卡类应用程序编程。
其中,工具类应用程序可以是画图应用程序、文字处理应用程序、网页创建应用程序、盘编辑应用程序、电子表格应用程序、相片管理应用程序、导航程序等可以辅助用户进行文件或信息管理的程序。
通讯类应用程序可以是电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序等可以便于用户进行沟通交流的程序。
显示类应用程序可以是数字相机应用程序、数字视频摄像机应用程序、数字视频播放器应用程序等便于文件播放的应用程序。
打印类应用程序是可以辅助用户进行文件打印的程序,如惠普打印机的打印应用程序。
金融卡类应用程序编程是各金融机构发行的可以进行金融交易的程序,如,交通银行储蓄卡应用程序、工商银行信用卡应用程序等。该应用程序301被触发对应的触发操作通常由用户执行,其可以是操作指令,也可以是语音指令,本申请实施例对此不作限定。
为了实现产品的某项功能,在终端设备100需要对应的芯片,与芯片适配的硬件、硬件接口以及对应的应用程序。在终端设备100的软件架构的驱动层10封装有对应芯片的芯片驱动数据包以及对应芯片驱动数据包的调用函数,以在需要执行某项功能时,可以通过对应的调用函数来控制对应芯片和适配硬件完成该项功能,如,定位软件要实现定位时,需要定位模组和对应的硬件接口,要实现打印软件要实现打印时需要打印机和对应的硬件接口。
也即驱动层10内对应芯片所需实现的功能不同,对应的所需要适配的硬件及对应的接口类型不相同,从而为应用层30所提供的接口调用函数也不相同。
函数库层20设置有与对应芯片适配的硬件接口通信协议及硬件驱动协议,函数库层20将接口调用函数以及硬件接口通信协议及硬件驱动协议重新封装以形成编程接口函数201。
其中,编程接口函数201根据接口调用函数类型对应设置,编程接口函数201包括系统类应用程序编程接口(API)函数、显示类应用程序编程接口(API)函数、打印类应用程序编程接口(API)函数、工具类应用程序编程接口(API)函数、通讯类应用程序编程接口(API)函数、IC(Integrated Circuit)卡类应用程序编程接口(API)函数、金融卡类应用程序编程接口(API)函数及文件类应用程序编程接口(API)函数中至少一者。
函数库层20根据驱动层10反馈的接口调用函数识别出对应芯片需要适配的硬件接口类型,并将对应的硬件接口通信协议、硬件驱动协议及接口调用函数重新封装为各自硬件接口类型对应的统一的编程接口函数201。
进一步,函数库层20还用于向应用层30提供编程接口函数201的函数信息,其中,函数信息包括函数名称、函数参数及函数返回值。
例如,函数库层20将与驱动层10中芯片所需适配的不同接口类型的接口调用函数分别进行封装,并且封装后不同接口类型对应的编程接口函数也可以不同,即可以对不同接口类型的编程接口函数设定不同的函数名称、数据类型和函数参数,同一接口类型的编程接口函数设定相同的函数名称、数据类型和函数参数。
当函数库层20接收到驱动层10反馈的接口调用函数时,首先识别驱动层10反馈的接口调用函数对应的接口类型,然后再将接口调用函数封装为接口类型对应的编程接口函数,从而不同具有相同接口类型的驱动层10反馈的接口调用函数可以封装为同一类型的编程接口函数,进而由应用层30对于该种类型的编程接口函数进行应用层软件代码的开发。
在部分实施例中,函数库层20还设置有指令查询文件,指令查询文件记录有指令信息、编程接口函数201及接口调用函数的关联关系,当函数库层20接收到应用层30用反馈的指令信息后,根据接口调用函数获取到对应的编程接口函数201,并根据编程接口函数201查询到接口调用函数从而处理指令信息。
其中,查询文件可以是文件表格或记录文档。该指令信息、编程接口函数201及接口调用函数的关联关系可采用下表形式记录。
关联关系 应用层 函数库层 驱动层
关联关系1 指令信息1 编程接口函数1 接口调用函数1
关联关系2 指令信息2 编程接口函数2 接口调用函数2
关联关系3 指令信息3 编程接口函数3 接口调用函数3
在部分实施例中,当所述应用层30安装的所述应用程序301变更时,所述函数库层20可基于应用程序301的变更而更新。
示例性地,当应用呈30所安装的应用程序301新增时,函数库层20为了支持该应用程序301所要实现的功能,则需要为该应用程序301分配对应的编程接口函数,以在该应用程序301接收到对应的指令信息时,可以调用对应的硬件执行该指令。
本实施例中,以应用程序301为导航应用,指令信息为定位指令为例进行说明,在一个示例中,导航应用的主界面上提供有用于启动定位功能的操作控件,当用户触发该操作控件时,终端设备100接收到用于启动定位功能的触发指令。在另一个示例中,当用户对终端设备100说出“开始定位”时,终端设备100接收到用于启动定位功能的触发指令。在又一个示例中,当用户对终端设备100执行“摇一摇”操作时,终端设备100接收到用于启动定位功能的触发指令,其中,“摇一摇”操作是指用户摇动终端设备100的操作。
应用层30用于接收指令信息接收到应用程序301发出的定位指令信息后,将该定位指令信息发送给函数库层20,函数库层20在接收到定位指令信息后,解析该定位指令信息并通过与定位指令信息对应的编程接口函数调用对应的驱动层10的编程接口函数,从而可以控制对应的定位模组执行定位操作。
本申请实施例所提供的软件架构中,函数库层20可以将不同驱动层10反馈的接口调用函数封装为统一的接口调用函数,因此应用层30可以针对该统一的接口调用函数进行同一种业务功能的应用层软件代码开发,从而不同终端设备100开发厂商生成的各种类型的终端设备100时可以使用同一个应用层软件代码执行同一种业务功能,使得应用层软件代码可以通用。
进一步,由于驱动层30包括多个独立封装的芯片驱动数据包,多个所述芯片驱动数据包形成驱动函数库并设置有对应该驱动函数库的接口调用函数,同时,函数库层20是基于所述驱动层30的芯片驱动数据包建立并可根据所述芯片驱动数据包的变更而更新,函数库层20可以将不同驱动层10反馈的接口调用函数封装为统一的接口调用函数,当应用层30对应的软件代码更新时,应用程序开发人员只需要更改一次应用层30的软件代码,提高应用程序更新效率并节约成本。
或者当驱动层30变更某些功能的硬件时,函数库层20只需对应变更对应的接口调用函数即可,从而使得应用层30对应的软件代码可以不用更新或只需更新对应的接口调用函数即可。
请参阅图4,本申请还提供一种软件架构开发方法,用于开发前述的软件架构,所述方法可以运行于人电脑(PC)、移动终端、个人数字助理PDA或具有某些特殊功能的电子设备等终端设备,所述方法包括:
步骤S1:接收开发需求。
示例性地,获知用户的需求并根据用户要求建造设计软件系统的对应的各个功能模块、各个功能模块之间的关联关系、各个功能模块之间的数据接口、各个功能模块所需要适配的硬件接口及硬件驱动,以形成终端设备可识别的开发需求信息并将开发需求信息录入终端设备。
本实施例中,以开发需求为开发一款用于实现导航的软件系统进行说明。
根据用户开发需求导航系统后,将整个软件系统对应的软件架构分为驱动层、应用层及耦合于应用层和驱动层之间的函数库层。
其中,驱动层包括多个独立封装的芯片驱动数据包,多个芯片驱动数据包形成驱动函数库,每个芯片驱动数据包封装有对应芯片的通信协议并设置有对应的接口调用函数;
函数库层是基于驱动层的芯片驱动数据包建立并可根据芯片驱动数据包的变更而更新的函数库层,用于将驱动层反馈的接口调用函数进行重新封装以形成对应的编程接口函数;
应用层用于接收指令信息,并将指令信息反馈给函数库层,以使函数库层识别指令信息,并通过对应的编程接口函数调用对应的接口调用函数来处理指令信息。步骤S2:根据所述开发需求对应用层进行调整。
请参阅图5,在部分实施例中,所述根据所述开发需求对应用层进行调整,包括:
步骤S21:解析所述开发需求;
步骤S22:根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
示例性地,终端设备设置有对应开发需求、开发需求对应的指令信息、以及指令信息对应的指令接收端口的关联关系。
终端设备在接收到开发需求信息后,解析开发需求并根据解析后的开发需求分配应用层接收的指令信息对应的指令接收端口以及指令向函数库层输出的指令输出端口以调整应用层。
开发需求为开发一款用于实现导航的软件系统,则在应用层需要一款用于接收导航指令或定位指令的应用程序,并设置该应用程序对应的导航指令或定位指令的接收端口,以及导航指令或定位指令向函数库层输出的指令输出端口。
步骤S3:根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构。
请参阅图6,在部分实施例中,所述根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构,包括:
步骤S31:根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;
步骤S32:根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;
步骤S33:根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
示例性,根据应用层的指令输出端口,调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数,即设置从指令输出端口输出指令需要适配的驱动函数库及对应的接口调用函数,并从重新封装对应的接口调用函数以及所述硬件接口通信协议及硬件驱动协议以形成统一地编程接口函数,并更新函数库层,从而获取对应开发需求的软件架构。
步骤S4:输出所述软件架构。
示例性地,将调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构进行打包输出,以获取完整软件架构。
本申请还提供一种软件架构开发装置,包括:
接收模块,用于接收开发需求;
调整模块,用于根据所述开发需求对应用层进行调整;
架构生成模块,用于根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;
架构输出模块,用于输出所述软件架构。
优选地,所述调整模块,具体包括:
解析子模块,用于解析所述开发需求;
第一调整子模块,用于根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
优选地,所述架构生成模块,具体包括:
第二调整子模块,用于根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;
调用封装子模块,用于根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;
输出子模块,用于根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
本申请还提供一种终端设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以实现以下步骤:接收开发需求;根据所述开发需求对应用层进行调整;根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;输出所述软件架构。
优选地,所述根据所述开发需求对应用层进行调整,包括:解析所述开发需求;根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
优选地,所述根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构,包括:根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
本申请还提供一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:接收开发需求;根据所述开发需求对应用层进行调整;根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;输出所述软件架构。
优选地,所述根据所述开发需求对应用层进行调整,包括:解析所述开发需求;根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
优选地,所述根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构,包括:根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
以上仅为本申请的优选实施例,并非因此限制本申请的保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的保护范围内。

Claims (10)

1.一种软件架构,应用于终端设备,其特征在于,所述软件架构包括:驱动层、应用层及耦合于所述应用层和所述驱动层之间的函数库层;
其中,所述驱动层包括多个独立封装的芯片驱动数据包,多个所述芯片驱动数据包形成驱动函数库,每个所述芯片驱动数据包封装有对应芯片的通信协议并设置有对应的接口调用函数;
所述函数库层是基于所述驱动层的所述芯片驱动数据包建立并可根据所述芯片驱动数据包的变更而更新的函数库层,用于将所述驱动层反馈的所述接口调用函数进行重新封装以形成对应的编程接口函数;
所述应用层用于接收指令信息,并将所述指令信息反馈给所述函数库层,以使所述函数库层识别所述指令信息,并通过对应的所述编程接口函数调用对应的所述接口调用函数来处理所述指令信息。
2.如权利要求1所述的软件架构,其特征在于,所述函数库层设置有与对应芯片适配的硬件接口通信协议及硬件驱动协议,所述函数库层将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数。
3.如权利要求2所述的软件架构,其特征在于,所述编程接口函数包括系统类应用程序编程接口函数、显示类应用程序编程接口函数、打印类应用程序编程接口函数、工具类应用程序编程接口函数、通讯类应用程序编程接口函数、IC卡类应用程序编程接口函数、金融卡类应用程序编程接口函数中至少一者;
所述函数库层根据所述驱动层反馈的所述接口调用函数识别出对应芯片需要适配的硬件接口类型,并将对应的所述硬件接口通信协议、所述硬件驱动协议及所述接口调用函数重新封装为各自硬件接口类型对应的统一的编程接口函数。
4.如权利要求3所述的软件架构,其特征在于,所述函数库层还用于向所述应用层提供所述编程接口函数的函数信息,其中,所述函数信息包括函数名称、函数参数及函数返回值。
5.如权利要求1所述的软件架构,其特征在于,所述函数库层还设置有指令查询文件,所述指令查询文件记录有所述指令信息、所述编程接口函数及所述接口调用函数的关联关系,当所述函数库层接收到所述应用层用反馈的所述指令信息后,根据所述接口调用函数获取到对应的编程接口函数,并根据所述编程接口函数查询到所述接口调用函数从而处理所述指令信息。
6.如权利要求1所述的软件架构,其特征在于,所述应用层安装有若干个应用程序,当所述应用程序被触发时可以生成对应的所述指令信息。
7.如权利要求6所述的软件架构,其特征在于,当所述应用层安装的所述应用程序变更时,所述函数库层可基于应用程序的变更而更新。
8.一种软件架构开发方法,其特征在于,应用于如权利要求1~7任一项所述的软件架构,所述方法包括:
接收开发需求;
根据所述开发需求对应用层进行调整;
根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构;
输出所述软件架构。
9.如权利要求8所述的方法,其特征在于,所述根据所述开发需求对应用层进行调整,包括:
解析所述开发需求;
根据解析后的开发需求分配所述应用层接收的指令信息对应的指令接收端口及指令输出端口以调整所述应用层。
10.如权利要求9所述的方法,其特征在于,所述根据所述应用层的调整实现函数库层和驱动层的变更以获取基于所述开发需求设计的软件架构,包括:
根据所述应用层的指令输出端口调整所述驱动层对应的驱动函数库以及所述驱动函数库对应的接口调用函数;
根据所述驱动函数库获取与所述驱动函数库适配的硬件接口通信协议及硬件驱动协议,并将所述接口调用函数以及所述硬件接口通信协议及硬件驱动协议重新封装以形成所述编程接口函数以调整所述函数库层;
根据调整后的所述应用层、所述函数库层以及所述驱动层获取对应的所述软件架构。
CN202010048495.0A 2020-01-16 2020-01-16 一种软件架构及软件架构开发方法 Pending CN111258550A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010048495.0A CN111258550A (zh) 2020-01-16 2020-01-16 一种软件架构及软件架构开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010048495.0A CN111258550A (zh) 2020-01-16 2020-01-16 一种软件架构及软件架构开发方法

Publications (1)

Publication Number Publication Date
CN111258550A true CN111258550A (zh) 2020-06-09

Family

ID=70945190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010048495.0A Pending CN111258550A (zh) 2020-01-16 2020-01-16 一种软件架构及软件架构开发方法

Country Status (1)

Country Link
CN (1) CN111258550A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984232A (zh) * 2020-07-31 2020-11-24 中国航空工业集团公司济南特种结构研究所 一种基于信号流的雷达罩测试软件设计方法
CN112416308A (zh) * 2020-11-30 2021-02-26 上海汽车集团股份有限公司 一种软件优化方法、装置及软件架构
CN112650512A (zh) * 2020-12-11 2021-04-13 展讯通信(天津)有限公司 硬件驱动方法及装置、终端、存储介质
CN114416076A (zh) * 2022-01-30 2022-04-29 重庆长安汽车股份有限公司 一种基于服务的车辆热管理软件架构
WO2022241589A1 (zh) * 2021-05-16 2022-11-24 华为技术有限公司 控制器软件架构、控制器软件升级方法、控制器和装置
CN117472440A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 芯片控制方法和装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399753A (zh) * 2013-08-19 2013-11-20 银联商务有限公司 软件架构
CN104536746A (zh) * 2014-12-23 2015-04-22 惠州市亿能电子有限公司 一种基于dll的软件架构
WO2016127495A1 (zh) * 2015-02-12 2016-08-18 无锡识凌科技有限公司 一种智能终端中的设备驱动架构开发方法
CN110457840A (zh) * 2019-08-16 2019-11-15 三一重能有限公司 风力发电机控制软件架构方法、装置和电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399753A (zh) * 2013-08-19 2013-11-20 银联商务有限公司 软件架构
CN104536746A (zh) * 2014-12-23 2015-04-22 惠州市亿能电子有限公司 一种基于dll的软件架构
WO2016127495A1 (zh) * 2015-02-12 2016-08-18 无锡识凌科技有限公司 一种智能终端中的设备驱动架构开发方法
CN110457840A (zh) * 2019-08-16 2019-11-15 三一重能有限公司 风力发电机控制软件架构方法、装置和电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张馨元: "军工企业人力资源移动管理系统设计开发", 《电子世界》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984232A (zh) * 2020-07-31 2020-11-24 中国航空工业集团公司济南特种结构研究所 一种基于信号流的雷达罩测试软件设计方法
CN112416308A (zh) * 2020-11-30 2021-02-26 上海汽车集团股份有限公司 一种软件优化方法、装置及软件架构
CN112650512A (zh) * 2020-12-11 2021-04-13 展讯通信(天津)有限公司 硬件驱动方法及装置、终端、存储介质
WO2022241589A1 (zh) * 2021-05-16 2022-11-24 华为技术有限公司 控制器软件架构、控制器软件升级方法、控制器和装置
CN114416076A (zh) * 2022-01-30 2022-04-29 重庆长安汽车股份有限公司 一种基于服务的车辆热管理软件架构
CN117472440A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 芯片控制方法和装置、存储介质及电子设备
CN117472440B (zh) * 2023-12-27 2024-03-29 苏州元脑智能科技有限公司 芯片控制方法和装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN111258550A (zh) 一种软件架构及软件架构开发方法
CN111221630B (zh) 业务流程处理方法、装置、设备、可读存储介质及系统
WO2020199594A1 (zh) 业务组件加载方法、装置、计算机设备和存储介质
CN108108239A (zh) 一种业务功能的提供方法、装置及计算机可读存储介质
CN109144487B (zh) 进件业务开发方法、装置、计算机设备和存储介质
CN110727581B (zh) 崩溃定位方法与电子设备
CN111506579B (zh) 一种智能合约代码的生成方法、程序及设备
CN108845800B (zh) 一种组件扩展功能的实现方法、装置、设备及存储介质
CN107977260B (zh) 任务提交方法及装置
CN117035619B (zh) 基于用户自定义的物流供应链场景协同方法、系统及设备
CN112738181B (zh) 集群外部ip接入的方法、装置及服务器
CN112733510A (zh) 一种财务凭证生成方法、装置、设备及计算机可读存储介质
CN114675982A (zh) 一种业务集成系统的数据获取通用方法及系统
CN115269040B (zh) 一种租户业务应用的拓展方法、装置及系统
CN116303622A (zh) 一种数据库查询方法、装置、设备及存储介质
CN111443903A (zh) 软件开发文件获取方法及装置、电子设备、存储介质
CN108804236B (zh) 一种aidl文件的共享方法及系统
CN110968471A (zh) 一种程序崩溃问题上报方法、存储介质、电子设备及系统
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置
CN111597240A (zh) 数据导出方法、装置、计算机设备和存储介质
CN111652580A (zh) 一种对节点的数据处理方法及装置
CN106570143B (zh) 一种发送响应对象的方法和装置
CN114185604B (zh) 金融服务舱系统及其运用方法、装置、电子设备和介质
CN113032010B (zh) 命令的传输控制方法、终端及计算机可读存储介质
CN114518844B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200609