首页> 中国专利> 一种用于解决软件潜通路的软件体系结构系统及设计方法

一种用于解决软件潜通路的软件体系结构系统及设计方法

摘要

本发明提供了一种用于解决软件潜通路的软件体系结构系统及设计方法,所描述的体系结构设计模式将一个软件系统分为主调函数构件、被调函数构件、控制器构件、事件构件和数据构件五个模块。在程序的所有数据交互之间增加控制器构件,实现对事件及模块之间数据交互的全局管理。控制器构件内部包括计时器组件、函数处理组件和函数注册组件,用于控制模块之间数据交互的时间。若在规定时间内数据未正常返回,则由函数处理组件强制返回一个错误数据并结束故障函数调用进程。本发明的优点包括构件复用、循序渐进的原型设计、构件可以并行开发且互不影响,最重要的是解决了潜通路问题,提高了软件的稳定性和健壮性。

著录项

  • 公开/公告号CN104182235A

    专利类型发明专利

  • 公开/公告日2014-12-03

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201410424481.9

  • 发明设计人 康一梅;姚赟政;

    申请日2014-08-26

  • 分类号G06F9/44;

  • 代理机构北京科迪生专利代理有限责任公司;

  • 代理人成金玉

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-17 03:04:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2014-12-31

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140826

    实质审查的生效

  • 2014-12-03

    公开

    公开

说明书

技术领域

本发明涉及一种DEPC(数据Data、事件Event、加工Process、控制器Controller四 个英文单词的缩写)体系结构管理系统及实现方法,具体来讲是一种对程序各模块之间的 数据交互进行全局管理的软件体系结构系统及设计方法,该软件体系结构独立于硬件单 元功能的实际实现进行控制;属于计算机技术领域。

背景技术

起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越 来越大,越来越复杂,整个系统的结构和规格说明显得越来越重要。对于大规模的复杂 软件系统来说,总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已 经明显变得重要得多。自从软件系统首次被分成许多模块,模块之间又相互作用,组合 起来有整体的属性,就具有了体系结构。

20世纪70年代之前,软件开发以汇编程序设计为主。由于当时的系统规模较小, 所以基本上没有软件系统结构的概念。20世纪80年代至90年代中期,面向对象的开发 方法开始兴起且逐步成熟。20世纪90年代以后,则进入到基于构件的软件开发阶段, 该阶段以过程为中心,强调软件开发采用构件化技术和体系结构技术,要求开发出的软 件具备很强的自适应性、互操作性、可拓展性和可重用性。软件体系结构的出现,使得 软件各个层次分工明确,互不干涉。某个层次的需求发生了变化,就只需要更改相应层 中的代码,不会影响到其它层中代码。

然而实时软件常用的体系结构模式主要有传统的轮询体系结构、函数队列体系结 构、前后台(中断)体系结构以及基于操作系统的分层体系结构。目前在个人计算机及 服务器上运行的应用软件所采用的MVC、SOA等体系结构不适合实时软件。大多数实 时软件只有较少的人机交互,甚至没有人机交互,可以将人机交互看作是事件。实时软 件中有大量的事件,这些事件不一定是人机交互产生的事件,所有这些事件会控制程序 的流转,比如中断,而许多事件往往是随机发生的,这种事件很容易造成程序潜通路。

早在20世纪80年代,人们已经开始着手对软件潜通路的分析研究。潜通路指的是 在软件系统中某些潜在的路径,它们属于不在计划中的路径,是人们不希望出现的。潜 通路总是存在,因为子系统设计人员缺乏整体系统的全局观念或者是某些疏忽的行为, 有一些则是软件设计时的逻辑问题,还有一些数据交互很难被提前预测,甚至还有一些 潜通路是由于电磁干扰或者其它因素造成的。

造成软件潜通路的因素有很多,这里可以举一个可能会产生软件潜通路的例子。目 前在实时软件设计中,对中断的处理通常是依据其优先级,优先级高的中断可以抢占系 统资源,这是应该对被抢占的处理过程的状态进行保存,在中断处理完成后继续完成被 挂起的处理过程。但是,这些都需要开发人员一个个去处理,很多时候可能出现未保存 被抢占处理过程的状态或保存不完整。如图1所示是一个由于中断产生的潜通路,如果 设计时未考虑到这种情况,很可能程序调用没有返回。潜通路问题的出现会给程序执行 带来诸多不可预见和不可控制的因素。若在程序运行中不对潜通路做必要的处理,将会 给整体的软件项目工程带来巨大的风险。

如果在所有可能产生数据交互的构件之间添加一层控制构件层,进行全局监管,用 来避免上述情况的发生,则能够有效的对程序执行中出现的潜通路问题进行处理,同时 在控制器构件中添加计时器功能,则能够避免程序执行出现无限等待的情况,也能在实 时软件中约束程序执行的时间。

目前国内外尚未有解决程序运行过程中出现的潜通路问题的相关文献报道。

发明内容

本发明技术解决方案:克服现有技术的不足,提供一种DEPC体系结构管理系统及 实现方法,解决程序运行过程中出现的潜通路问题;可以应用在实时软件和非实时软件 中;不受限于开发程序时所使用的编程语言;能够展现系统公共的高层次的抽象;有助 于循序渐进的原型设计;支持构件并行开发,且互不影响。

本发明技术解决方案:1、一种用于解决软件潜通路的软件体系结构系统,其特征 在于在软件开发时,将软件分为主调函数构件、被调函数构件、事件构件、数据构件和 控制器构件五部分;其中:

主调函数构件,实现调用用户定义的功能函数,将需要调用的函数信息交给控制器 构件进行处理;

被调函数构件,实现处理对应系统具体的数据加工和处理,被控制器构件所调用, 然后将结果返回给控制器构件;

事件构件,实现处理对应系统中可能出现的所有事件,如中断或连接网络等,被控 制器构件所调用,然后将结果返回给控制器构件;

控制器构件,实现对程序中可能出现的数据交互进行管理和控制,主调函数将要调 用的组件信息交给控制器构件,控制器构件在调用具体的被调函数时,利用计时器对被 调函数的执行过程进行计时,如果程序在预期的时间内没有正常返回,则强制切断执行 进程,返回一个异常数据;控制器构件的另外一个功能是将需要控制器进行控制的函数 注册入函数信息列表;

数据构件,提供访问数据结构、文件、数据库定义和存储数据接口的构件。

将一个软件系统划分为数据(Data)、事件(Event)、加工(Process)、控制器(Controller) 四个部分,其中加工分为主调加工和被调加工两种情况。

潜通路指的是在软件系统中某些潜在的路径,它们属于不在计划中的路径,是不希 望出现的。潜通路问题的出现会给程序执行带来诸多不可预见和不可控制的因素。若在 程序运行中不对潜通路做必要的处理,将会给整体的软件项目工程带来巨大的风险。

由于多方面的原因,潜通路总是存在于软件系统数据交互中。添加一层控制器构件 层,进行全局监管,用来避免上述情况的发生,则能够有效的对程序执行中出现的潜通 路问题进行处理,同时在控制器构件中添加计时器功能,则能够有效避免程序执行中出 现无限等待的情况,也能在实时软件中约束程序执行的时间。

控制器构件是DEPC体系结构模式中的核心构件,它对当前事件、状态、数据进行 监听,提供相应机制协调事件相应、状态挂起、数据保存,保存正确通路执行,并阻断 潜通路的执行。

所述的主调函数构件需要包含程序主函数,也就是程序的入口函数,以及其它用户 自己定义的功能函数。

所述的控制器构件需要包含函数处理组件、计时器组件和注册组件。其中注册组件 用于存放需要函数处理组件进行处理的函数信息(包括函数名称、函数参数列表、函数 返回类型);计时器组件根据程序所应用系统平台的时钟,对某个线程运行的时间进行 计时;函数处理组件将根据主调函数传入的函数信息,从函数列表中寻找被调函数信息, 然后建立两个线程,一个线程用于执行被调函数,另一个线程用于对执行的被调函数运 行时间进行计时。

一种用于解决软件潜通路的软件体系结构设计方法,实现步骤如下:

(1)程序开发人员在建立项目工程时,项目目录下建立控制器(Controller)、数 据处理(DataProcessing)、事件处理(DataProcessing)、功能函数(Functions)四个 文件夹或包;

(2)在功能函数包中编写主函数以及其他的主被调函数;

(3)在数据处理包中编写用于访问数据库、对数据库数据进行操作的相关函数;

(4)事件处理包中编写用于实现中断操作、网络数据通信操作等一切程序中可能 出现的事件函数;

(5)在控制器包中,需要编写计时器函数、函数处理函数和函数注册函数,编写 计时器函数时需要根据所应用系统的时钟模块进行编写,当计时器开始工作时首先读取 系统当前的时间,程序运行时不停获取最新的系统时间,与开始时间进行相减即可得到 程序已经运行的时间,若超出预定时间将强制结束被调函数进程,并返回错误数值;函 数注册函数需要构造一个用于存放函数信息的存储空间,可以是一个文件、一个数据结 构或一个表等,存放的函数信息包括函数名、函数返回值、函数参数列表;函数处理函 数需要实现从函数列表中查找被调函数的功能,查到函数信息后,能够建立两个进程, 一个进程用于执行被调函数,一个进程用于执行计时器对被调函数运行的时间进行计 时;

(6)可以在控制器、事件处理、数据处理、功能函数同一级目录下,建立资源和 头文件目录,用于存放图片、音视频资源和函数的头文件信息。

本发明与现有技术相比的优点在于:

(1)本发明提供一种最基本的DEPC体系结构框架,用于程序员对其进行更好的 理解和应用,更重要的是程序员在开发软件时,能够运用DEPC体系结构的整体设计思 想。对于不同的应用场景,DEPC体系结构可以进行适当的拓展和调整。

(2)本发明的应用范围较广,不受限于开发程序时所使用的编程语言,且可以应 用在实时软件和非实时软件中。控制器构件主要有两个作用,一是对构件之间的数据进 行全局管理,二是对程序的运行时间进行有效控制。本发明还提供一种基本的控制器构 件实现方式。由于在不同的应用场景中,软件对控制器的具体要求也不尽相同。比如不 同的软件工程对其各个任务进程可容忍的运行时间和运行要求是不同的;在非实时软件 中,不是每个任务都需要通过控制器构件进行处理,只要注册需要控制的任务函数即可 等等。所以,控制器构件也是需要根据不同的情况进行相对修改和调整的。

(3)本发明能够有效的解决软件运行过程中出现的潜通路问题。在目前的软件开 发中,还没有一种针对软件潜通路的有效解决方案,DEPC的设计可以说是弥补了这项 空白。运用DEPC软件体系结构来设计软件能够有效对软件运行过程中出现的潜通路进 行处理,这样能够极大的提高软件整体的安全性和可靠性。

(4)本发明提供一种有助于循序渐进原型设计的软件体系结构。在软件开发时, 分层设计可以对项目进行分析,并将项目按可执行模型来构造原型。从两个方面有助于 开发活动的顺利进行,一是可以在软件生命周期的早期阶段明确潜在的系统性能问题; 二是在软件生命周期的早期阶段就能得到一个可执行的系统。这两个方面都将减少项目 开发的潜在风险。

(5)本发明能够展现系统公共的高层次的抽象。系统的大部分相关人员能够把它 作为建立一个互相理解的基础,形成统一认识,相互交流。DEPC软件体系结构明确了 对系统实现的约束条件,将符合体系结构所描述的结构性设计决策分割成规定的构件, 按规定方式交互。这样一来DEPC软件结构的设计者不需要是算法设计者或者精通编程 语言,只需要重点考虑系统的总体权衡问题;而构件的开发人员在体系结构给定的约束 下进行开发。这样的设计,使得主调构件、被调构件、控制构件、事件构件和数据构件 在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能够提高系统和软件 的可维护性和可拓展性。

附图说明

图1为中断产生潜通路的情况;

图2为本发明的DEPC体系结构管理系统结构图,反映了各个构件之间进行数据交 互的方式;

图3为本发明中控制器构件中的计时器组件、处理函数组件、注册函数组件与主调 函数组件和被调用函数组件之间的关系。箭头方向表示可能存在的数据交互方向,函数 注册列表则表示储存函数信息的文件或者数据结构;

图4为本发明中控制器构件中的注册组件工作流程,当一个函数实现后,如果需要 对其进行全局的控制,则需要利用注册函数对其进行注册,然后注册函数将注册的函数 信息(函数名称、函数参数、函数返回值)存入函数列表中;

图5为本发明中控制器构件中的处理组件工作流程,当主调函数调用被调用函数 时,处理组件会从注册函数列表中查找函数,然后创建两个进程,一个用于执行被调函 数,而另一个用于调用计时器计时,判断被调用函数的执行是否超出预期时间,最终将 结果返回;

图6示出了控制器构件中的计时器组件工作流程。计时组件收到函数处理组件计时 的命令后开始计时,同时判断程序运行时间是否超出了预先规定时间,如果超出时间, 将强制返回一个错误数据;

图7示出了在基于3G网络的人脸识别系统中图像采集子系统的工作流程图;

图8示出了在基于3G网络的人脸识别系统中识别子系统的工作流程图。

具体实施方式

以下包括术语、首字母缩写词和缩写的简单词汇,将有助于理解下面的实施例的详 细描述,但是这些细节并不是为了限制本发明。本领域的技术人员显然可以在偏离这些 具体细节的其它实施方案中实践本发明。例如,尽管是以基于3G网络的人脸识别系统 的实施方案来描述本发明,但本发明也可以应用在任意包括实时软件和非实时软件中。

术语“包含”和“包括”及其派生词表示非限制性包括;术语“或”是包含性的,意味着 和/或;短语“与……相关联”和“与之相关联”及其派生词可表示包括、被包括、与之互连、 包含、被包含、与之连接、与之耦合、可与之通信、与之协作、交织、并列、接近、限 于、具有、具有其性质等;“构件”是面向软件体系架构的可复用软件模块。构件 (component)是可复用的软件组成成份,可被用来构造其他软件,在本发明中构件通 常指的是被封装的对象类、类树和一些功能模块;“组件”指的是对数据和方法的简单封 装;“DEPC”指的是数据(Data)、事件(Event)、加工(Process)、控制器(Controller) 四个英文单词的缩写。“3G网络”是指使用支持高速数据传输的蜂窝移动通讯技术的第三 代移动通信技术的线路和设备铺设而成的通信网络。

为了验证DEPC体系结构设计模式的有效性,我们采用了运用本发明和不用本发明 两种方式来实现一款基于3G网络的人脸识别系统。如图7和图8所示,从上至下反映 了基于3G网络的人脸识别系统的主要流程,该系统由图像采集系统和识别系统两个子 系统构成。图像采集系统只负责采集人脸数据,然后将采集到的人脸数据通过3G网络 传输给识别系统。识别系统接收到原始图像信息后,对图像信息进行分析处理,提取出 人的脸、眼睛、鼻子、嘴、眉毛等特征后,跟数据库中的图像进行比对,判断是否存在 对应的人脸信息,最后将结果信息再次通过3G网络发送回图像采集端。图像采集端接 收到返回信息后通过显示屏将结果显示出来。

在这个系统中,一共有四个关键节点。分别是图像采集系统中的判断是否开始图像 采集和等待接收反馈信息,人脸识别系统中的等待接收采集到的图像数据和从人脸数据 库中匹配人脸特征数据。

当用户开始进行图像采集时,需要手动触发中断(如按按钮),告诉图像采集系统 开始采集图像数据。数据采集完毕后,通过移动互联网将信息传递给人脸识别系统。人 脸识别系统需要不停的等待接收图像数据。当有新的图像数据需要识别系统接收时,也 是通过触发中断的方式,告诉识别系统开始接收数据。我们可以看到,在这个系统中存 在着很多的不稳定因素。用普通的非DEPC软件体系结构实现这个系统后,当用户快速 连续的触发采集图像中断时,程序有时会出现死机的情况,表明程序进入了潜通路。当 3G信号不稳定时,也会造成系统等待时间过长的问题。

采用DEPC体系结构来设计这个系统时,我们将用户触发中断的事件划分为事件构 件,将要访问的人脸数据库划分为数据构件,其他函数调用依次为主调构件和被调构件, 最后还在这些构件之间增添了控制构件用于全局控制。这样,用户每次触发中断,都会 由控制构件来进行处理,这样的设计有效避免了潜通路的发生。访问人脸数据库时,需 要调用数据构件,避免其他用户直接对数据库进行访问,安全性有了很高的提升。当图 像采集系统与人脸识别系统通过3G网络进行通讯时,控制构件会进行计时管理,如果 网络通讯超出了规定的时间要求,控制构件会强制返回信息提示数据发送超时或者数据 发送失败。

图7所示为视频采集子系统的流程图。在实现采集子系统时,将整体的代码分布在 控制器、功能函数、事件三个包中。控制器包中存放有处理函数、计时器函数、注册函 数和函数信息表;功能函数包中存放有主函数、图像采集函数;事件包中存放有按钮中 断处理函数、网络通信函数。

系统运行前需要对图像采集函数、按钮中断处理函数和网络通信函数进行注册,如 图4所示,实现图像采集函数、按钮中断处理函数和网络通信函数后,需要将它们的函 数名称、参数列表和返回值类型信息存放在函数信息表中。当用户想要采集图像时,通 过按物理按钮触发中断处理函数,如图3所示中断处理函数通知控制器需要调用图像采 集函数,控制器从函数信息列表中查找到被调函数信息,接着如图5所示控制器中的函 数处理函数调用图像采集函数,同时启动计时器对被调函数的运行时间进行计时。采集 好图像之后,通过网络通信函数将获取到的图像信息传送给人脸识别子系统。函数调用 的过程中都需要通过控制器构件中的处理函数进行处理,处理函数会调用计时器函数对 函数的执行时间进行计算和控制,如图6所示超出时间的话将强制返回错误数据。

图8所示为人脸识别子系统的流程图。在实现人脸识别子系统时,将整体的代码分 布在控制器、功能函数、事件和数据四个包中。控制器包中存放有处理函数、计时器函 数、注册函数;功能函数包中存放有主函数、特征提取函数、特征比对函数、结果反馈 函数;事件包中存放有网络通信函数;数据包中存放有访问数据库函数。

系统运行前需要对特征提取函数、特征比对函数、结果反馈函数、网络通信函数、 访问数据库函数进行注册,如图4所示,实现特征提取函数、特征比对函数、结果反馈 函数、网络通信函数、访问数据库函数后,需要将它们的函数名称、参数列表和返回值 类型信息存放在函数信息表中。当人脸识别子系统接收到新的采集数据后,如图3所示 通知控制器需要调用特征提取函数,控制器从函数信息列表中查找到被调函数信息,接 着如图5所示控制器中的函数处理函数调用特征提取函数将对采集到的数据进行人脸特 征提取和计算,同时启动计时器对被调函数的运行时间进行计时。然后调用特征比对函 数,访问数据库中的所有人脸数据,判断是否有匹配数据,接着将比对后的数据返回给 采集子系统。函数调用的过程中都需要通过控制器构件中的处理函数进行处理,处理函 数会如图6所示调用计时器函数对函数的执行时间进行计算和控制,比如访问数据库执 行的时间和网络通信持续的时间如果超出预期时间的话将强制返回错误数据,没有超出 预期时间,将返回正确的数据。

通过实际项目的验证,发现采用DEPC软件体系结构编写程序时,程序的运行速度 会稍微有所下降,但是系统整体的稳定性和可靠性却有着巨大的提升。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号