一种基于面向对象编程的软件自适应改造方法技术

技术编号:20915032 阅读:34 留言:0更新日期:2019-04-20 09:24
本发明专利技术公开了一种基于面向对象编程的软件自适应改造方法;本发明专利技术通过运用面向对象编程中策略模式,代理模式等设计模式以及面向切面编程AOP中提取业务逻辑的思想来对软件进行自适应改造。本发明专利技术改造得到的自适应软件,可以响应自身属性和复杂环境变化,并且由于改造基于面向对象的设计理念,为软件维护带来了极大的便利,同时本发明专利技术对原软件系统代码结构破坏小,改造后的软件系统代码逻辑清晰,可扩展性好。

A Software Adaptive Modification Method Based on Object-Oriented Programming

The invention discloses a software adaptive transformation method based on object-oriented programming, which adaptively modifies the software by utilizing design patterns such as strategy pattern, agent pattern, etc. in object-oriented programming and the idea of extracting business logic from AOP in aspect-oriented programming. The self-adapting software obtained by the invention can respond to the changes of its own attributes and complex environment, and it brings great convenience for software maintenance due to the transformation of the object-oriented design concept. At the same time, the invention has little damage to the original software system code structure, clear logic of the modified software system code and good expansibility.

【技术实现步骤摘要】
一种基于面向对象编程的软件自适应改造方法
本专利技术属于软件工程的软件设计方法领域,具体涉及一种基于面向对象编程的软件自适应改造技术。
技术介绍
软件自适应技术是为了降低软件维护压力、增强软件自身容错和应对变化的能力而提出的一种软件设计技术,运用软件自适应技术构造的软件拥有对环境和需求变化的自适应能力,这样的软件叫做自适应软件。自适应软件在运行过程中遵循“监测”-“分析”-“计划”-“执行”的自适应环路,具体表现为:自适应软件在运行过程中实时收集并分析上下文信息,参照知识库中相应的策略,执行自适应行为。上下文表示一种在对象激活时被创建的属性的有序序列,上下文信息包含上下文事件、上下文状态,上下文约束。知识库是多组策略的集合,为自适应软件进行决策提供依据,策略是一种基于ECA规则,用以表明自适应软件调整自身行为时机以及方式的语言,ECA规则是一种由事件触发、判断条件满足、执行动作的动作触发规则。自适应行为是指自适应软件通过动态重配置实现对自身参数、结构或行为的自发调整的过程,动态重配置即自适应软件在运行过程中更改自身代码结构或者属性的过程。运用软件自适应技术,针对现存软件进行自适应化改造时,主要的技术难题在于实现非自适应软件的动态重配置。传统的自适应技术在实现软件动态重配置时,主要有两种方式:第一种方式倾向于直接修改现存软件的源代码,使现存软件匹配中间件系统,这种方式需要开发人员对非自适应软件源代码有透彻的理解,完全把握代码的功能作用,并且需要花费较长时间。第二种方式倾向于修改中间件系统,让中间件系统匹配非自适应软件,这种思路依赖于开源的中间件系统,因此限制了应用范围,灵活性差。这两种方式都依赖于中间件系统,中间件系统种类繁多,配置复杂,使用时对整个系统的影响较大。中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议,高效、可靠、灵活的传输功能,优秀的事件代理机制等优点,采用中间件系统对现存软件的运行过程加以管理可以实现软件系统的自适应改造。目前行业中普遍使用的中间件系统有JBOSS、JMS等,JBOSS中间件系统拥有优秀的响应速度以及支持AOP扩展,运用JBOSS中间件系统进行自适应改造的软件具有高度模块化的和松耦合,但由于复杂的配置方式,需要开发人员投入大量时间和精力,使得JBOSS中间件在应对轻量级软件自适应改造时显得臃肿麻烦。JMS中间件系统通过提供标准的产生、发送、接收消息的接口来访问并管理消息的收发,运用JMS中间件系统进行自适应改造的软件具有松耦合,异步性特点,但JMS使用范围小,目前JMS未考虑出JAVA以外的开发环境。AOP即面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种规范,运用AOP技术可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于面向对象编程的软件自适应改造技术。本专利技术通过运用面向对象编程中策略模式,代理模式等设计模式以及面向切面编程AOP中提取业务逻辑的思想来对软件进行自适应改造。本专利技术一种基于面向对象编程的软件自适应改造方法,具体包括以下步骤:步骤一:构建知识库,提供多组策略的存储结构;多组策略的存储结构包括对应上下文事件的类,对应上下文状态的类,对应上下文约束的类,对应约束元素或逻辑关系的类,对应策略条件的类,对应自适应行为的类,对应策略的类,对应策略组的类;步骤二:梳理原软件系统的业务逻辑,根据需要组织相应的策略;梳理出待修改软件原有业务逻辑,明确自适应软件需求,将这些需求抽象表示为事件Ce,状态Cs,约束Cr,调整Ac,按照ECA规则形式描述的策略;步骤三:给出策略细节,并进行规范化,以xml文件形式进行存储;按照事件Ce对应上下文事件,状态Cs对应上下文状态,约束Cr对应上下文约束,调整Ac对应自适应行为的方式按照知识库存储所提供的属性,对策略进行细化和规范化,并将这些策略存储在xml文件中;步骤四:根据需要对原软件系统的业务逻辑进行分离提取,封装到目标对象中;运用面向对象编程中的代理模式将原软件系统的业务逻辑进行再封装,得到目标对象;步骤五:统一目标对象的接口,形成自适应构件;步骤六:设计连接子,初始化连接子属性指向,形成自适应模块;自适应模块包括一个连接子以及可供其连接的多个自适应构件;所述的连接子具有两个指向自适应构件的属性,其中一个用于协调属性所指向的自适应构件运行的方法,一个用于更改属性的指向的方法;步骤七:重复步骤四到步骤六得到多个自适应模块;步骤八:将得到的自适应模块和知识库用于扩展原软件,完成软件自适应改造。作为优选,步骤八中的自适应模块为将多个自适应模块整合得到的。本专利技术较传统技术来说有以下显著优点(1)对软件系统原有的代码改动较少,结构保存完好。(2)使用过程中开发人员只需集中精力于修改主要业务逻辑部分,减少开发人员工作量。(3)不依赖第三方中间件系统,使用更加灵活。本专利技术采用的具体实现方法是:(1)构建知识库,提供多组策略的存储结构。(2)梳理原软件系统的业务逻辑,根据需要组织相应的策略。(3)给出策略细节,并进行规范化,以xml文件形式进行存储。(4)根据需要对原软件系统的业务逻辑进行分离提取,封装到目标对象中。(5)将目标对象进行标准化,包括统一接口,加入事务逻辑等操作,形成自适应构件。(6)设计连接子,初始化连接子属性指向,形成自适应模块。(7)重复步骤(4)到步骤(6)完成多个自适应模块的设计,并根据需要整合相应的自适应模块。(8)将得到的自适应模块和知识库用扩展原软件,完成软件自适应改造。有益效果:由本专利技术改造得到的自适应软件,可以响应自身属性和复杂环境变化,并且由于改造基于面向对象的设计理念,为软件维护带来了极大的便利,同时本专利技术对原软件系统代码结构破坏小,改造后的软件系统代码逻辑清晰,可扩展性好。附图说明图1是本专利技术知识库UML类图;图2是本专利技术策略的上下文约束的xml存储描述语言;图3是本专利技术自适应模块示例图;图4是本专利技术多个连接子联立的示例图;图5是本专利技术改造后的软件系统示例图。具体实施方式下面结合实例附图进行进一步详细说明本专利技术的具体实现方法:(1)构建知识库,提供多组策略的存储结构。为原软件构建用以存储策略的知识库,此过程中需要构建多个类:用以存储上下文事件的ContextEvent类、用以存储上下文状态的ContextState类、用以存储上下文约束ContextRestriction类、用以存储约束元素或逻辑关系的Restriction类、用于存储条件的Condition类、用以存储自适应行为的Action类、用以存储策略的Strategy类、用以存储策略组并提供执行“监测”步骤、“分析”步骤、“计划”步骤、“执行”步骤方法的KnowledgeBase类等。由ContextEvent类存储的上下文事件是一个四元组ContextEvent:={Supe,Attre,Rele,Vale},其中Supe代表上下文提供者,Attre代表由Supe提供的上下文,Rele代表关系运算符,Vale代表临界值.由ContextState类存储的上下文状态本文档来自技高网
...

【技术保护点】
1.一种基于面向对象编程的软件自适应改造方法,其特征在于,包括以下步骤:步骤一:构建知识库,提供多组策略的存储结构;多组策略的存储结构包括对应上下文事件的类,对应上下文状态的类,对应上下文约束的类,对应约束元素或逻辑关系的类,对应策略条件的类,对应自适应行为的类,对应策略的类,对应策略组的类;步骤二:梳理原软件系统的业务逻辑,根据需要组织相应的策略;梳理出待修改软件原有业务逻辑,明确自适应软件需求,将这些需求抽象表示为事件Ce,状态Cs,约束Cr,调整Ac,按照ECA规则形式描述的策略;步骤三:给出策略细节,并进行规范化,以xml文件形式进行存储;按照事件Ce对应上下文事件,状态Cs对应上下文状态,约束Cr对应上下文约束,调整Ac对应自适应行为的方式按照知识库存储所提供的属性,对策略进行细化和规范化,并将这些策略存储在xml文件中;步骤四:根据需要对原软件系统的业务逻辑进行分离提取,封装到目标对象中;运用面向对象编程中的代理模式将原软件系统的业务逻辑进行再封装,得到目标对象;步骤五:统一目标对象的接口,形成自适应构件;步骤六:设计连接子,初始化连接子属性指向,形成自适应模块;自适应模块包括一个连接子以及可供其连接的多个自适应构件;所述的连接子具有两个指向自适应构件的属性,其中一个用于协调属性所指向的自适应构件运行的方法,一个用于更改属性的指向的方法;步骤七:重复步骤四到步骤六得到多个自适应模块;步骤八:将得到的自适应模块和知识库用于扩展原软件,完成软件自适应改造。...

【技术特征摘要】
1.一种基于面向对象编程的软件自适应改造方法,其特征在于,包括以下步骤:步骤一:构建知识库,提供多组策略的存储结构;多组策略的存储结构包括对应上下文事件的类,对应上下文状态的类,对应上下文约束的类,对应约束元素或逻辑关系的类,对应策略条件的类,对应自适应行为的类,对应策略的类,对应策略组的类;步骤二:梳理原软件系统的业务逻辑,根据需要组织相应的策略;梳理出待修改软件原有业务逻辑,明确自适应软件需求,将这些需求抽象表示为事件Ce,状态Cs,约束Cr,调整Ac,按照ECA规则形式描述的策略;步骤三:给出策略细节,并进行规范化,以xml文件形式进行存储;按照事件Ce对应上下文事件,状态Cs对应上下文状态,约束Cr对应上下文约束,调整Ac对应自适应行为的方式按照知识库存储所提供的属性,对策略进行细化和规范...

【专利技术属性】
技术研发人员:杜厚旺王兴起陈滨魏丹方景龙
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1