一种软件组件系统组件间协作行为分析方法

文档序号:6525171阅读:217来源:国知局
一种软件组件系统组件间协作行为分析方法
【专利摘要】本发明涉及一种软件组件系统组件间协作行为分析方法,包括:分析组件行为,建立组件的行为模型;对各组件进行基于Pi演算的行为描述;生成协作路径集合;分析协作路径上的时间约束,生成带时间约束的协作路径集。本发明适用于软件组件系统,关注的不是组件顺序的线性行为,而是组件间的交互行为。将UML与Pi演算理论相结合,提出软件组件协作路径分析方法,在较高的抽象层次上描述各组件间的协作。使用带时间约束的协作路径集作为组件间的协作行为,对行为的描述更加准确。将本发明应用于软件系统的开发过程中,对于提高软件组件协作行为的可信性以及增强整个软件系统的可信性具有重要作用。
【专利说明】一种软件组件系统组件间协作行为分析方法
【技术领域】
[0001]本发明属于计算机软件领域,涉及一种软件组件系统组件间协作行为分析方法。【背景技术】
[0002]近年来,随着计算机和软件技术的迅速发展与广泛应用,社会的信息化程度不断提高,计算机软件已经广泛应用于诸如航空航天、核反应堆、国防建设以及与国民经济相关的重要领域。如果计算机软件系统的安全受到危害,将会危及国家安全,引起社会混乱,造成重大损失。因此,确保计算机软件系统的安全成为世人关注的社会问题,并成为信息科学【技术领域】中的研究热点。随着人们对软件系统功能要求的不断提高,软件系统的规模也越来越大,导致软件的开发、集成和维护工作也越来越复杂,软件在被使用时遇到广泛的软件信任问题。增强软件系统的可信性得到了广泛的关注。软件系统的可信是指软件系统的行为及其结果总是符合人们的,在受到干扰时仍能提供连续的服务。然而,由于目前尚严重缺乏相关的可信软件构造技术,导致软件产品在推出时总会含有一些已知或未知的缺陷,这些缺陷对软件系统的运行构成了严重的威胁。因此,构造可信软件已经成为现代软件技术发展和应用的重要趋势和必然选择。
[0003]目前,对于可信软件的开发方法以及运行支撑平台的研究仍然处于起步阶段。对于生产可信软件产品来说,仍然缺少科学的理论基础和严格的技术手段。因此,如何构造可信软件的相关问题,已经成为当前软件行业所面临的一个挑战,并且已成为软件工程领域的热点问题之一,该领域的研究具有重要的理论意义和应用价值。
[0004]现有的软件行为分析方法多是通过静态分析或动态分析,获取软件自身的状态序列从而进一步获取行为序列,其缺点是只能关注软件本身顺序执行的行为,而对软件系统中各组件的协作行为关注不够。申请号为201210303587.4的专利公开了一种基于状态层的软件行为建模方法,该方法通过截获软件执行时的调用序列,转化并建立状态转移图,抽取敏感状态序列,导出软件行为。该方法虽使用了状态转移图,但无法适用于基于组件的软件系统,无法描述各组件的交互行为,其算法的复杂度也较高。

【发明内容】

[0005]针对软件各组件间协作行为中存在的问题,本发明提出一种软件组件系统组件间协作行为分析方法,不仅能够分析组件间的协作路径,而且还能够同时分析这些路径上的时间约束,从而使所获取的协作行为模型既可以用与时间无关的领域,也可以用与时间相关的领域,具有较好的适用性。
[0006]为达到以上目的,本发明采用如下方案。
[0007]组件协作行为的分析方法包括:基于UML与Pi演算理论的软件组件协作路径分析方法,基于时序图构造的软件组件协作路径上的时间约束分析方法。
[0008]组件间的协作路径是指人们所期望的组件间的协作路径。组件间的协作是通过相互收发消息完成的,所以在获取组件间的协作路径时只需考虑人们所期望的组件间的消息传递序列即可,这种消息传递序列反映了组件间的协作路径。
[0009]时间约束是指组件协作路径上关于消息传递的一种时间限制。一方面,需要分析协作路径上消息传递所花费时间的约束;另一方面,还需要分析协作路径上相邻消息传递之间的时间间隔约束。
[0010]一种软件组件系统组件间协作行为分析方法,包括以下步骤:
[0011]步骤1:分析组件行为,建立组件的行为模型。
[0012]分析组件与其它组件的外部交互,确定组件与指定组件交互所接收和发送的消息,建立组件的UML状态图,通过状态图进一步了解了组件的行为。
[0013]步骤2:对各组件进行基于Pi演算的行为描述。
[0014]针对组件行为分析结果,以组件与其它组件协作情况下的UML状态图为主,并将组件收发的消息作为附加信息,按所定义的抽取规则对组件状态图进行Pi演算语义的抽取,得到各组件基于Pi演算的行为描述。
[0015]本发明设计的抽取规则如下:
[0016]规则1.一个组件可以作为Pi演算中的一个进程。
[0017]规则2.—个组件可以通过消息的接收与发送与其它组件交互,当一个消息被传递时,假定存在一个传递该消息的通道与Pi演算中的传递该消息的通道相对应。
[0018]规则3.在状态图中,状态的迁移是由事件的触发引起的,事件的触发由消息的收发引起,因此一个状态迁移可以由基本进程表达式表达。例如:从SI状态迁移到S2状态是由通道a接收消息X完成的,这一迁移可以表示为a〈x>。
[0019]规则4.在状态图中,没有通过接收或发送消息而被触发的事件所造成的状态变迁不进行Pi演算语义抽取。
[0020]规则5.在状态图中,互斥的条件分支借助Pi演算中的和式表达式表示。
[0021]规则6.在状态图中,由一系列状态迁移构成的可行流程用Pi演算的进程表达式来表达。
[0022]步骤3:生成协作路径集合。
[0023]利用Pi演算操作语义推演组件间的协作路径,生成协作路径集合,将该集合作为组件间协作行为的一部分。
[0024]协作路径是各组件协作完成某项任务的过程中进行消息传递形成的协作消息链。组件间的协作路径可以表示为PiMmillIiy mij>,其中Hiij是所传递的消息,可以用一个三元组表示为sender, name, receiver),其中,i>0, j>0 ;sender为消息发送者的标识;name为所传递消息的标识receiver为消息接收者的标识。
[0025]协作路径集合可以表示为集合P= {pk},其中Pk为组件间的协作路径,k>0。
[0026]步骤4:分析协作路径上的时间约束,生成带时间约束的协作路径集。
[0027]构造系统的时序图,根据所生成的协作路径从所构造的时序图中抽取所需的时间约束,生成带时间约束的协作路径集。
[0028]时序图用于显示系统内各个实体处于某种特定状态的时间,以及触发这些状态发生变化的消息。其主要元素包括参与者、状态、状态线、事件与消息以及时间约束。其中,
[0029]参与者:参与者是交互所涉及的所有实体。
[0030]状态:状态是实体在交互过程中自身的所有状态。[0031]状态线:是用来显示系统中的实体在任何特定时间下所处的状态,系统中实体的状态线与系统中实体的某个状态是一致的。
[0032]事件与消息:将事件与消息显示在时序图上,用于表示触发实体的状态改变。
[0033]协作路径上的时间约束包括消息时间约束和相邻消息间隔时间约束。消息时间约束可以表示为一个二元组STnm=(UU),相邻消息间隔时间约束可以表示为一个二元组ITnm=(L,U),其中,L表示时间下限,U表示时间上限,n>0,m>0。带时间约束的协作路径可以表示为 Ipti=^tilITnmti2ITi2...ITij^mtij), Hitij= (sender, name, receiver, STij),其中,Intij 表不所传递的消息,用一个四元组表示;stu为消息时间约束;ιι\μ为相邻消息间隔时间约束。带时间约束的协作路径集可以表示为PT={ptlPV"Ptk},其中,Ptk为带时间约束的协作路径,k>0。
[0034]抽取时间约束的步骤如下:
[0035]步骤4.1:从协作路径集P中选取一条协作路径Pi, i>0。
[0036]步骤4.2:对于Pi消息链中的每一个消息,在系统的时序图中进行定位,抽取其时间约束,形成消息时间约束二元组STu,生成表示所传递消息的四元组Hltijt5
[0037]步骤4.3:对于Pi消息链中的任意两个相邻消息和mu+1,在系统的时序图中进行定位,通过时序图给出的相关时间约束计算Hlij和Hlij+1之间的间隔时间约束,形成相邻消息间隔时间约束二元组ITijt5
[0038]步骤4.4:生成带时间约束的协作路径ITij^mtij)0
[0039]步骤4.5:重复执行步骤4.1~4.4,直到处理完P中的所有路径,生成带时间约束的协作路径集 PT= (Pt1Pt2-^PtJ,k>0。
[0040]与现有技术相比,本发明具有以下优点:
[0041]本发明适用于软件组件系统,关注的不是组件顺序的线性行为,而是组件间的交互行为。将UML与Pi演算理论相结合,提出软件组件协作路径分析方法,在较高的抽象层次上描述各组件间的协作。使用带时间约束的协作路径集作为组件间的协作行为,对行为的描述更加准确。本发明为提高软件组件协作行为的可信性提供了有效方法。将本发明应用于软件系统的开发过程中,对于提高软件组件协作行为的可信性以及增强整个软件系统的可信性具有重要作用。
【专利附图】

【附图说明】
[0042]图1为本发明所涉及的软件组件系统组件间协作行为分析方法流程图;
[0043]图2为本发明实施例中的组件状态图:(a)为A组件状态图,(b)为B组件状态图,(C)为C组件状态图;
[0044]图3为本发明实施例中A、B、C组件时序图。
【具体实施方式】
[0045]下面结合附图和实施例对本发明做进一步的说明。
[0046]为简便起见,本实施例只选取A、B、C三个简单组件。为了便于理解,这些组件的协作也以简单方式体现。对这些组件的说明信息进行分析后,能够分别得到这些组件接收消息集合RM和发送消 息集合SM。A组件的接收消息集合RM= {xr, yr},发送消息集合SM= {x, y};B组件的接收消息集合RM= {x},发送消息集合SM= IxJ ;C组件的接收消息集合RM= {y},发送消息集合SM=Iy1J。
[0047]软件组件系统协作行为分析方法的流程图如图1所示,包括以下步骤:
[0048]步骤1:分析组件行为,建立组件的行为模型。
[0049]根据A、B、C组件各自的说明信息分别对它们的状态变化进行分析,可以得到各组件在与其它组件交互情况下其自身的状态变化,相应的UML状态图如图2 (a)、(b)、(c)所示 ο
[0050]图2 (a)为A组件的状态图。首先A组件由初始状态进入Al状态,等待互斥事件x、y的触发。当X事件触发时A组件由Al状态进入A2状态,之后当xr事件触发时A组件由A2状态进入结束状态;当I事件触发时A组件由Al状态进入A3状态,之后当yr事件触发时A组件由A3状态进入结束状态。图2 (b)为B组件的状态图,当X事件触发时B组件由初始状态进入BI状态,之后当xr事件触发时B组件由BI状态进入结束状态。图2 (c)为C组件的状态图,当y事件触发时C组件由初始状态进入Cl状态,当yr事件触发时C组件由Cl状态进入结束状态。
[0051]步骤2:对各组件进行基于Pi演算的行为描述。
[0052]对A、B、C组件进行行为分析之后,综合考虑每个组件的外部交互分析结果和状态变化分析结果,按抽取规则进行Pi演算语义的抽取。对于A组件来说,X事件和y事件是两个互斥的事件。在图2 (a)中,若X事件触发时,A组件发送X消息,由Al状态迁移到A2
状态,用Pi演算可以表示为G <x>,其中X为消息,a为传递消息X的通道;之后若xr事
件触发时,A组件接收消息xr,由A2状态迁移到结束状态,用Pi演算可以表示为aKxr〉,其中xr为消息,ar为传递消息xr的通道;若y事件触发时,A组件发送y消息,由Al状态
迁移到A3状态,用Pi演算可以表示为石< >,其中y为消息,b为传递消息I的通道;之
后若yr事件触发时,A组件接收消息yr,由A3状态迁移到结束状态,用Pi演算可以表示为br〈yr>,其中yr为消息,br为传递消息yr的通道。因此,在以上Pi演算语义抽取的基础上,并根据状态迁移构成的可行流程,可以用Pi演算的进程表达式Pa来描述A组件的行
为,
【权利要求】
1.一种软件组件系统组件间协作行为分析方法,其特征在于包括以下步骤: 步骤1:分析组件行为,建立组件的行为模型; 分析组件与其它组件的外部交互,确定组件与指定组件交互所接收和发送的消息,建立组件的UML状态图,通过状态图进一步了解了组件的行为; 步骤2:对各组件进行基于Pi演算的行为描述; 针对组件行为分析结果,以组件与其它组件协作情况下的UML状态图为主,并将组件收发的消息作为附加信息,按所定义的抽取规则对组件状态图进行Pi演算语义的抽取,得到各组件基于Pi演算的行为描述; 步骤3:生成协作路径集合; 利用Pi演算操作语义推演组件间的协作路径,生成协作路径集合,将该集合作为组件间协作行为的一部分; 步骤4:分析协作路径上的时间约束,生成带时间约束的协作路径集; 构造系统的时序图,根据所生成的协作路径从所构造的时序图中抽取所需的时间约束,生成带时间约束的协作路径集。
2.根据权利要求1所述的一种软件组件系统组件间协作行为分析方法,其特征在于,步骤2所述的抽取规则包括以下内容: 规则1.一个组件可以作为Pi演算中的一个进程; 规则2.—个组件可以通过消息的接收与发送与其它组件交互,当一个消息被传递时,假定存在一个传递该消息的通道与Pi演算中的传递该消息的通道相对应; 规则3.在状态图中,状态的迁移是由事件的触发引起的,事件的触发由消息的收发引起,因此一个状态迁移可以由基本进程表达式表达;从SI状态迁移到S2状态,由通道a接收消息X,这一迁移可以表示为a〈x> ; 规则4.在状态图中,没有通过接收或发送消息而被触发的事件所造成的状态变迁不进行Pi演算语义抽取; 规则5.在状态图中,互斥的条件分支借助Pi演算中的和式表达式表示; 规则6.在状态图中,由一系列状态迁移构成的可行流程用Pi演算的进程表达式来表达。
3.根据权利要求1所述的一种软件组件系统组件间协作行为分析方法,其特征在于,步骤3所述的协作路径是各组件协作完成某项任务的过程中进行消息传递形成的协作消息链;组件间的协作路径可以表示为,其中Hiij是所传递的消息,可以用一个三元组表示为Hiij= (sender, name, receiver),其中,i>0, j>0 ;sender为消息发送者的标识;name为所传递消息的标识Receiver为消息接收者的标识;所述协作路径集合可以表示为集合P={pk},其中Pk为组件间的协作路径,k>0。
4.根据权利要求1所述的一种软件组件系统组件间协作行为分析方法,其特征在于,步骤4所述的时序图用于显示系统内各个实体处于某种特定状态的时间,以及触发这些状态发生变化的消息;其主要元素包括参与者、状态、状态线、事件与消息以及时间约束;其中, 参与者:参与者是交互所涉及的所有实体; 状态:状态是实体在交互过程中自身的所有状态;状态线:是用来显示系统中的实体在任何特定时间下所处的状态,系统中实体的状态线与系统中实体的某个状态是一致的; 事件与消息:将事件与消息显示在时序图上,用于表示触发实体的状态改变; 时间约束:描述交互中的特定部分应该花费多长时间;通常应用于特定状态的时间量,或者应该花费多长时间调用及接收事件。
5.根据权利要求1所述的一种软件组件系统组件间协作行为分析方法,其特征在于,步骤4所述的协作路径上的时间约束包括消息时间约束和相邻消息间隔时间约束;消息时间约束可以表示为一个二元组STnm= (L,U),相邻消息间隔时间约束可以表示为一个二元组ITnm= (L,U),其中,L表示时间下限,U表示时间上限,n>0, m>0 ;带时间约束的协作路径可以表不为:ρ--=<πι?ηΙΤηπι--2ΙΤ?2...ITij^mtij), Hitij= (sender, name, receiver, STij),其中,Hitij表示所传递的消息,用一个四元组表示;STU为消息时间约束JTf1为相邻消息间隔时间约束;带时间约束的协作路径集可以表示为PT={ptlPt2"?ptk},其中,ptk为带时间约束的协作路径,k>0。
6.根据权利要求1所述的一种软件组件系统组件间协作行为分析方法,其特征在于,步骤4所述抽取时间约束的步骤如下: (1)从协作路径集P中选取一条协作路径Pi,i>0 ; (2)对于Pi消息链中的每一个消息mu,在系统的时序图中进行定位,抽取其时间约束,形成消息时间约束二元组STij,生成表示所传递消息的四元组Hltij ; (3)对于Pi消息链中的任意两个相邻消息和mu+1,在系统的时序图中进行定位,通过时序图给出的相关时间约束计算Hiij和mij+1之间的间隔时间约束,形成相邻消息间隔时间约束二元组ITij ; (4)生成带时间约束的协作路径ITij^mtij); (5)重复执行步骤(1)~(4),直到处理完P中的所有路径,生成带时间约束的协作路径集 PT= (Pt1Pt2…ptj,k>0。
【文档编号】G06F11/36GK103714001SQ201310717410
【公开日】2014年4月9日 申请日期:2013年12月23日 优先权日:2013年12月23日
【发明者】王丹, 王晓曦, 杜金莲, 苏航, 庞俊彪, 赵文兵 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1