CN101673198A - 一种验证uml模型中动态行为与时序契约的一致性的方法 - Google Patents
一种验证uml模型中动态行为与时序契约的一致性的方法 Download PDFInfo
- Publication number
- CN101673198A CN101673198A CN200910047165A CN200910047165A CN101673198A CN 101673198 A CN101673198 A CN 101673198A CN 200910047165 A CN200910047165 A CN 200910047165A CN 200910047165 A CN200910047165 A CN 200910047165A CN 101673198 A CN101673198 A CN 101673198A
- Authority
- CN
- China
- Prior art keywords
- model
- uml
- time
- spin
- ltl
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种验证统一建模语言UML模型中动态行为与时序契约的一致性的方法,其特征在于,包括步骤:根据UML标准建模,包括生成UML状态图和UML顺序图,保存图形的元模型;对所建模型的动态行为,实现UML状态图到PROMELA代码的映射;构建所建模型时序契约,实现UML顺序图到LTL时态逻辑公式的映射;利用模型验证工具SPIN对所述PROMELA代码和所述LTL时态逻辑公式进行验证;分析返回的所述的SPIN验证结果。本发明的技术方案将统一建模语言UML同验证工具联系起来,解决了软件工程需求设计阶段所出现的模型不一致性的问题,为模型驱动式软件后续开发的有效进行奠定基础。
Description
技术领域
本发明属于软件开发技术领域,尤其涉及一种验证统一建模语言UML模型中动态行为与时序契约的一致性的方法。
背景技术
面向服务架构(SOA)是一种架构模型,它可以根据需求通过网络对松散耦合的粗颗粒应用组件进行分布式部署,组合和使用。服务层是SOA的基础,而SOA服务必须由契约,接口和实现组成。而契约是服务共享和重用得以实现的基础,契约式设计和SOA的结合为软件开发和重用带来了诸多益处。
统一建模语言(UML)是现今分析和设计软件***最为常用和有效的方法之一,通过动态模拟模型的行为,不但可以准确的描绘***需求,还可以通过验证方法在建模的初期发现模型中存在的问题,这也是模型驱动式(Model Driving)软件开发的目标所在。如何能够让UML模型满足某些特性而又不出现错误则是设计时应该考虑的一个重要问题,而模型检测是一种能够非常有效提高***可靠性的自动化技术。
模型检测主要分三部分的工作,其中包括:对***进行形式化建模,精确表达***约束以及验证模型是否满足给定约束。
状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应,状态图的创建通常是为了研究类,角色,子***或者组件之间的复杂关系。状态图用于显示状态机(状态机指定对象所在的状态序列),使对象达到这些状态的事件和条件,已经达到这些状态时所发生的操作。
顺序图(Sequence Diagram)同样是种动态建模方法,它表示对象间消息传递的顺序关系,它可以表达成对象动态行为的时间契约,很好的约束模型中对象间的动态行为。
研究状态图和顺序图之间的一致性关系可以很好的分析模型中对象的动态行为是否满足其定义的时间契约,从而有效分析UML动态模型间的关系,对于保证软件开发初期需求模型的正确性和可重用性有着很大的作用。
***属性的描述方法有很多种,其中时序逻辑被证明能够很有效地描述***属性,其中最为常用的是线性时序逻辑(LTL)。它能有效地描述模型中的时序和逻辑关系。模型检测工具SPIN能够有效地对并发***进行建模并检测,但由于其建模语言PROMELA是一种类C的代码语言,因此通过PROMELA来精确描述***并不是一件很容易的事情,而这是UML在模型描述上的优势所在,同时将UML图形转换为PROMELA代码也成为模型检测的有效手段之一。
然而,目前没有一种通用的办法将模型的动态行为和时间契约用模型验证工具有效联系起来,给基于UML模型中的动态行为与时序契约一致性检测带来了很大困难。
发明内容
本发明的目的是提供一种验证统一建模语言UML模型中动态行为与时序契约的一致性的方法,解决软件开发需求设计阶段所出现的模型不一致性的问题,为面向服务架构SOA和契约式设计的组合运用提供模型级的标准化技术解决方案。
本发明的技术方案是,一种验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,包括以下步骤:
A1,根据UML标准建模,包括生成UML状态图和UML顺序图,保存图形的元模型;
A2,对所建模型的动态行为,实现UML状态图到PROMELA代码的映射;
A3,构建所建模型时序契约,实现UML顺序图到LTL时态逻辑公式的映射;
A4,利用模型验证工具SPIN对所述PROMELA代码和所述LTL时态逻辑公式进行验证;
A5,分析返回的所述的SPIN验证结果。
所述步骤A1中生成的UML状态图具有的属性包括触发时间、迁移动作和状态图守卫条件,UML顺序图具有的属性包括顺序图守卫条件和到达状态。
所述步骤A2包括以下步骤:
B1,遍历所述UML状态图得到所述保存的状态图元模型;
B2,抽取所述的状态图元模型中的动态行为,转化为层次状态机;
B3,根据所述的层次状态机使用PROMELA语言建模,得到PROMELA代码。
所述步骤A3包括以下步骤:
C1,遍历所述UML顺序图得到所述保存的顺序图元模型。
C2,构建所建模型的时序契约,生成所述的LTL时态逻辑公式。
所述步骤A4包括以下步骤:
D1,将所述状态图转换得到的PROMELA代码保存在SPIN包下的pan in文件中;
D2,将顺序图装换得到的LTL时态逻辑公式进行处理,得到符合SPIN语法的Never Claim代码,并储存在SPIN包下的pan.ltl文件中;
D3,提取SPIN中的参数设置创建批处理文件来模拟SPIN工具的选择环境,选择相应的参数,执行批处理文件,用指定的参数调用SPIN进行验证。
所述步骤A5包括以下步骤:
E1,所述SPIN验证结果生成于SPIN目录下的pan.out文件中,将pan.out中的结果提取出来解析验证结果并输出;
E2,如果在所述的PROMELA所建的模型中找不到所述的LTL时态逻辑公式所描述可到达的路径,则表示所述模型的动态行为满足其时序契约,反之则表示所述模型的动态行为不满足该模型的时序契约。
本发明的有益效果是,将模型的动态行为和时序契约联系起来,并利用验证工具对两者一致性进行验证,保证了需求建模的准确性和可重用性,为模型驱动式软件后续开发的有效进行奠定基础,为SOA服务组合提供了模型级的一般解决方案。
附图说明
图1是本发明一实施例的方法的实现步骤示意图
图2是本发明一实施例的方法中对状态图动态行为建模的流程示意图
图3是本发明一实施例的方法中状态图元模型所保存成的状态机的示意图
图4是本发明一实施例的方法中由状态机所分解得到的层次状态机的示意图
图5是本发明一实施例的方法中对顺序图构建时序契约的流程示意图
图6示出本发明一实施例中用Trustable MDA构建的状态图模型示意图
图7示出本发明一实施例中用Trustable MDA构建的顺序图模型示意图
图8示出本发明一实施例中表示动态行为不满足时序契约时,返回模拟的状态示意图
具体实施方式
以下结合附图对本发明的具体实施方式作详细说明。
如图1所示,本发明的方法可以包括以下5个步骤:
步骤S101,根据UML标准建模,包括UML状态图和顺序图,并保存图形的元模型,这是为了后面的代码映射做准备;
步骤S102,构建模型动态行为,实现状态图映射到PROMELA代码的算法;
步骤S103,构建模型时序契约,实现顺序图映射到LTL时态逻辑公式的算法;
步骤S104,利用模型验证工具SPIN将2和3中得到的PROMELA代码和LTL时态逻辑公式进行检验;
步骤S105,收集返回的验证结果并判断模型动态行为是否满足其时序契约。其中,步骤S101中建模过程中定义元模型是采用UML建模语言制定,所建模型中迁移过程可具有以下属性:
1.状态图:event(触发时间),action(迁移动作),guard(守卫条件);
2.顺序图:guard(守卫条件),EnterState(到达状态,目的是将时序契约和动态行为联系起来),message(消息传递)。
根据建模者所建立的模型,以元模型的形式将图元保存下来方便后面的转换使用。如图6和图7可看到本发明建模的结果,即UML状态图和活动图,分别用来构建模型的动态行为和时序契约。
其中,如图2所示,步骤S102中构建模型动态行为,即状态图映射到PROMELA代码的算法和实现过程如下:
步骤S201,读取已保存的状态图图元,在本步骤中以Trustable MDA构建的状态图模型是以状态机的形式保存,如图3所示,表现模型的动态行为,包括状态和迁移,以及状态中和状态之间的触发,动作和条件。其中s1到s11表示状态,同时s1又是复合状态,包含s4,s5两个子状态,以此类推。图示箭头表示状态间的迁移。状态间的转换迁移action(动作),event(触发器)和guard(守卫条件)来约束。而本实施例是将状态,转换,动作,触发器,守卫条件分别保存,通过互相间的属性标识来保存它们之间的关联。本步骤是用类似逆向工程的方法将保存好的图元读取出来,拼接成语义无误差的状态行为模型供步骤2中的转换使用;
步骤S202,精化状态图的动态行为模型,转换层次状态机,将步骤S201中取出的图元保存为层次状态机形式,从而精化状态图动态语义模型,分解难以处理的复合状态。为后面步骤S203至步骤S208的具体转换算法提供入口。如图4所示,层次状态机将嵌套的状态剥离出来,将复杂的复合状态分开成了类似层次的状态机模型,可以很容易的使用迭代去遍历每个状态和转换;
步骤S203,声明变量并初始化,状态图行为模型中的公用变量定义为PROMELA中的全局变量如:int c1,c2,...,cn;bool b1,b2,...,bn,其中ci,bi从状态图中获取。状态图中的对象定义为一组顺序的int常量供通道使用,如:#defineSourceObject 0...#define EndObject 1。状态图中的状态转换为bit型变量来模拟状态间的转换,形如:s1,s2,s3,...,sn。状态图中的状态变化由si赋值来模拟,例如:当某状态到达时,对应的状态变量si赋值为1,当迁移发生后到达下一个状态,si赋值为0,si+1赋值为1,而整个s1,s2,...,sn的取值代表着模型在某一时刻的具体形态。状态图中的迁移上的动作Action转换为mtype类型如:{a1,a2,a3,...,an},ai表示迁移上的具体活动事件,用于表达状态图迁移的事件;
步骤S204,声明通道chan形如:event_queue[number_objects]=[queue_size]of{mtype},通过通道传递mtype中的变量来表示迁移的发送和接收。初始化操作是通过将初始状态所对应的bit变量赋值为1,形如:atomic{initialState=1;};如果只转换一个状态图将不牵涉到交互情况,如果同时对两个或者多个状态图进行转换,其交互行为表达为:源对象发送mtype变量表示的将要发生的活动消息(event_queue[SourceObject]!!Action),末对象接收源状态发送的活动消息(event_queue[EndObject]??Action),通过通道对消息的传递来表达多个状态图之间的状态迁移;
步骤S205,定义转换条件,转换条件定义为:#define Condition(i)(SourceStates&&Trigger&&Guard)。其中i=1,2,...,n,代表转换条件的编号;SourceStates表示迁移Transition的源状态,也就是层次自动机中的上一个状态(注:可能是包含父状态和子状态的复合状态);Trigger表示迁移的触发事件,即是迁移上的动作事件,也是通道中传递的mtype变量的发送接收情况;Guard表示状态图中迁移定义的守卫条件;
步骤S206,定义转换,算法每次从转换条件选择满足的条件,随后改变退出状态,进入状态的赋值,接收上面迁移发送的动作,并发送后面迁移的动作,形如如下伪代码:
if
::Condition(1)->event_queue[SourceObject]??Action(1);ExitStates(1)=0;EnterSta
tes(1)=1;event_queue[EndObject]!!Action(2);
...
::Condition(n)->event_queue[SourceObject]??Action(n);ExitStates(n)=0;EnterSta
tes(n)=1;event_queue[EndObj ect]!!Action(n+1);
fi
该算法是通过循环语句筛选满足的转换条件,如果有多个条件同时满足,则从所有if条件中随即选择。该转换算法的含义如下:当转换条件Condition(i)满足并选取时,接收进入迁移动作,退出状态集有1置为0,进入状态集由0置为1,发送退出迁移动作。同时需要使用assert(len(event_queue[]<=queue_size))语句实时判断用于表达迁移的通道的容量是否足够,以免引起死锁;
步骤S207,判断终止条件。算法需要在每一次迁移后判断模型是否到达了终止状态,如果到达程序退出,否则进入下一个迁移。其伪代码形如:
Check:
if
::FinalState 1->break;
...
::FinalStateN->break;
::else->skip;
fi
步骤S208,将以上步骤得到的PROMELA代码进行拼接,去除重复和无效部分,将其存入SPIN目录下的pan_in文件中,并利用函数SytaxCheck对其进行PROMELA语法检测,保证转换代码的语法正确性。
状态动态行为的获得首先是根据步骤S101中图形保存的元模型将其转化为层次自动机(采用层次自动机是为了去除状态图中嵌套的层次结构),然后通过读取层次自动机根据上述步骤所述的算法来生成对应的Promela模型,包括初始化,定义转换条件,定义所有转换,判断终止状态等。所得到的Promela模型将保存在Spin包下的pan_in文件中,作为步骤S104的入口参数使用。
其中所使用的主要函数描述如下表1:
表1
对于步骤S103中构建模型时序契约,如图5所示,即将顺序图映射到LTL时态逻辑公式的算法和实现过程如下:
首先,对顺序图到LTL的转换给出一些定义。
定义1:本实施方法是将契约式设计思想提升到模型级别,利用顺序图中的时序关系约束状态图中的动态行为,鉴于LTL线性时态逻辑公式能够有效地描述模型中的时序和逻辑关系,本实施方法将顺序图中的消息顺序抽象成契约式设计中的Pre/Post Condition。例:假设顺序图中有3条顺序的message(这里指异步消息),称作m1,m2,m3,称m1为行为m2的pre-condition,m3为行为m2的post-condition。
注1:这里定义的LTL时态逻辑公式是SPIN验证工具所支持的公式类型已经语法,与SPIN中所建的PROMELA模型在语法上是匹配的。
注2:这里已默认PROMELA模型已经由UML状态图映射得到。
定义2:假设顺序图中有两条message(这里指异步消息),称作m1,m2,其顺序是先发送消息m1后发送消息m2,这代表两条异步消息传递的先后顺序(这里不考虑可能出现的判断条件或者是循环等特殊情况),因此用LTL公式◇(m1&&◇m2)表示。
其中,◇代表时态中的存在,&&代表逻辑中的and,因此定义2中的LTL公式的含义是:存在一条比消息m2先发送的消息m1。根据定义1,m1便是限制行为m2的pre-condition。
引理1:对于顺序图中出现若干条message,m1,m2,m3,...,mn。假设其顺序是按照m1,m2,m3,...mn的顺序来发送的(这里不考虑可能出现的判断条件或者是循环等特殊情况),因此可以得到LTL公式:
◇(m1&&◇m2)&&◇(m2&&◇m3)&&...&&◇(m(n-1)&&◇mn)
此构建避免了可能出现的递归情况,大大提高了SPIN验证工具的执行效率。该引理可以得到所有消息也就是模型中行为的前置条件和后置条件。
定义3:考虑到诸如循环,条件等特殊情况。一般认为这两类特殊情况并不影响定义2给出的LTL公式。对于循环,只需要把循环体作为一个整体,将其看做一个普通的消息进行传递,对于条件选择,只需要进行一次判断读取模型的初始变量。因此LTL公式的算法不需要单独对这两种情况进行处理,只需要将其以特殊情况对待即可。
有了上述的定义,就可以通过顺序图得到相应的LTL时态逻辑公式。除此以外,还需要对LTL公式进行修饰,如前所述,一致性验证中使用的LTL公式至少要在在语法上要与状态图转化所得的PROMELA模型保持一致,这里要表达的是:PROMELA模型和LTL时态逻辑公式要一定采用相同的变量声明。
定义4:为了避免LTL公式的语法错误或者是逻辑混乱,并且能轻易的与状态图关联起来,为避免在LTL公式中使用具体的变量名称,取而代之的是虚拟遍历m1,m2,...。同时用变量声明将两者进行关联如下:#define m1 CardEntry。表达的是用虚拟变量m1定义CardEntry。这里要注意的是CardEntry指的是消息发送后对象进入的状态,也就是前面所述的EnterState,这样就将状态图和顺序图显示的联系起来,方便一致性检验的进行。
根据以上4个定义,便可根据顺序图模型抽取模型中的行为的时序契约,并用LTL时态逻辑公式(包括变量定义和公式本身)表示,为了提高步骤三的验证效率的验证,本发明还利用Never Claim批处理文件将得到的LTL时态逻辑公式(包括变量定义和公式本身)转换成Never Claim语句作为入口参数让步骤四使用。
在这里需要说明的是,将公式转化为Never Claim形式是使用了类似反证法的思想,从‘所有都对’到‘有一个错误’,大大提高了验证效率。以下是此步骤所用的主要函数或类的说明,具体如表2所示:
表2
注:以上方法所得到的本发明步骤四使用的入口参数最终保存在SPIN目录下的pan.ltl文件中。
归纳上述步骤S103的组成,包括以下步骤:
步骤S301,读取已保存的顺序图图元;
步骤S302,将取出的消息message保存进消息队列;
步骤S303,转换LTL公式;
步骤S304,处理LTL公式;
步骤S305,将LTL公式转化为NeverClaim形式;
步骤S306,保存组合完成的LTL公式。
对于步骤S104完成了对PROMELA模型和LTL时态逻辑公式(也就是动态行为和时序契约)之间的一致性验证。具体说明如下:
此时已得到的两个入口参数是pan_in中的PROMELA代码和pan.ltl中的LTL时态逻辑公式的NeverClaim形式,本发明利用批处理文件将SPIN接入自己开发的工具软件(Trustable MDA)中,完成了对验证功能的集成工作,为进一步实现其他验证方法奠定了基础。
下面重点介绍一下本发明如何利用批处理文件来完成对SPIN的集成。
第一步,根据一致性验证面板(也就是SPIN工具中LTL Verification Option面板)中的选择按钮来收集参数段,这些参段数是用来判定面板中组合按钮和单选按钮的选择情况,并能够对其选择状态进行有效记录和保存。根据得到的参数段特点和按钮分布情况进行分割和分类,确定基础参数和组合参数;
第二步,选择改变第一步中的6个基础参数,本发明具体实施时可以分别对对于不同的选择改变与否进行具体处理;
第三步,生成批处理文件,集成SPIN验证功能。这里利用上面所得的可变参数和不可变参数以及SPIN验证工具生成批处理文件,将SPIN的LTLVerification的验证功能集成进来。以下表3是参数说明。
表3
对于步骤S105,实现了对返回的验证结果并分析模型中状态的动态行为是否满足其时序契约,如果不满足将对产生错误情况提供返回模拟功能(如图8所示)帮助用户找出错误修改模型。用户可以选择单步模拟或者多步模拟来观察模型的状态,迁移以及图形间的关系,并判断模型模拟方向是否是建模者自己的原意,达到检查模型并进一步理解模型的作用,大大的方便了建模者对模型的理解和设计。
本发明的技术方案将模型检测工具SPIN作为验证引擎,根据UML2.0状态图的动态语义模型将状态图动态行为转换为SPIN的输入语言PROMELA,并将顺序图表达的时序契约转换为时序逻辑公式LTL。利用SPIN能够验证LTL公式的特性,实现模型检测UML模型中的动态行为是否满足其时序契约,从而确保***动态行为之间的一致性。
可见,本发明提供的技术方案将契约式设计的思想由代码级提升至模型级别,是模型驱动式开发初期模型检测中动态模型间一致性检测的基础,在本发明采取的方法基础上可进一步实现对模型内外部的一致性的检测,并广泛用于SOA服务层设计之中。
Claims (6)
1、一种验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,包括以下步骤:
A1,根据UML标准建模,包括生成UML状态图和UML顺序图,保存图形的元模型;
A2,对所建模型的动态行为,实现UML状态图到PROMELA代码的映射;
A3,构建所建模型时序契约,实现UML顺序图到LTL时态逻辑公式的映射;
A4,利用模型验证工具SPIN对所述PROMELA代码和所述LTL时态逻辑公式进行验证;
A5,分析返回的所述的SPIN验证结果。
2、如权利要求1所述的验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,所述步骤A1中生成的UML状态图具有的属性包括触发时间、迁移动作和状态图守卫条件,UML顺序图具有的属性包括顺序图守卫条件和到达状态。
3、如权利要求1所述的验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,所述步骤A2包括以下步骤:
B1,遍历所述UML状态图得到所述保存的状态图元模型;
B2,抽取所述的状态图元模型中的动态行为,转化为层次状态机;
B3,根据所述的层次状态机使用PROMELA语言建模,得到PROMELA代码。
4、如权利要求1所述的验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,所述步骤A3包括以下步骤:
C1,遍历所述UML顺序图得到所述保存的顺序图元模型。
C2,构建所建模型的时序契约,生成所述的LTL时态逻辑公式。
5、如权利要求1所述的验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,所述步骤A4包括以下步骤:
D1,将所述状态图转换得到的PROMELA代码保存在SPIN包下的pan_in文件中;
D2,将顺序图装换得到的LTL时态逻辑公式进行处理,得到符合SPIN语法的Never Claim代码,并储存在SPIN包下的pan.ltl文件中;
D3,提取SPIN中的参数设置创建批处理文件来模拟SPIN工具的选择环境,选择相应的参数,执行批处理文件,用指定的参数调用SPIN进行验证。
6、如权利要求1所述的验证UML模型中动态行为与时序契约的一致性的方法,其特征在于,所述步骤A5包括以下步骤:
E1,所述SPIN验证结果生成于SPIN目录下的pan.out文件中,将pan.out中的结果提取出来解析验证结果并输出;
E2,如果在所述的PROMELA所建的模型中找不到所述的LTL时态逻辑公式所描述可到达的路径,则表示所述模型的动态行为满足其时序契约,反之则表示所述模型的动态行为不满足该模型的时序契约。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910047165A CN101673198A (zh) | 2009-03-06 | 2009-03-06 | 一种验证uml模型中动态行为与时序契约的一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910047165A CN101673198A (zh) | 2009-03-06 | 2009-03-06 | 一种验证uml模型中动态行为与时序契约的一致性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101673198A true CN101673198A (zh) | 2010-03-17 |
Family
ID=42020433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910047165A Pending CN101673198A (zh) | 2009-03-06 | 2009-03-06 | 一种验证uml模型中动态行为与时序契约的一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101673198A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141911A (zh) * | 2010-06-03 | 2011-08-03 | 华为技术有限公司 | 利用uml时序图开发的方法和活动图生成工具 |
CN103065000A (zh) * | 2012-12-11 | 2013-04-24 | 南京大学 | 一种基于模型驱动工程进行SysML状态机图分析验证的方法 |
CN103164252A (zh) * | 2013-04-15 | 2013-06-19 | 西安电子科技大学 | 一种由序列图生成Java代码框架的方法 |
CN103281329A (zh) * | 2013-06-07 | 2013-09-04 | 东南大学 | 一种基于SoaML的云应用正确性验证方法 |
CN105426176A (zh) * | 2015-11-03 | 2016-03-23 | 南京航空航天大学 | 一种基于信息隐藏的图转换***模型检测方法 |
CN105678169A (zh) * | 2015-12-30 | 2016-06-15 | 西安胡门网络技术有限公司 | 一种二进制程序漏洞挖掘方法和*** |
CN105808265A (zh) * | 2016-03-15 | 2016-07-27 | 北京神舟智汇科技有限公司 | 一种行为模型生成方法及*** |
CN105955755A (zh) * | 2016-05-19 | 2016-09-21 | 上海大学 | 一种基于状态图的代码化验证方法 |
CN110276443A (zh) * | 2019-05-29 | 2019-09-24 | 平安科技(深圳)有限公司 | 模型转换一致性验证及分析方法、装置及存储介质 |
CN111176772A (zh) * | 2019-12-24 | 2020-05-19 | 安克创新科技股份有限公司 | 用于状态切换的方法、装置以及机器人 |
CN112214401A (zh) * | 2020-09-23 | 2021-01-12 | 华东师范大学 | 一种基于模型检测的标准模型分析方法 |
-
2009
- 2009-03-06 CN CN200910047165A patent/CN101673198A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141911B (zh) * | 2010-06-03 | 2013-12-18 | 华为技术有限公司 | 利用uml时序图开发的方法和活动图生成工具 |
CN102141911A (zh) * | 2010-06-03 | 2011-08-03 | 华为技术有限公司 | 利用uml时序图开发的方法和活动图生成工具 |
CN103065000A (zh) * | 2012-12-11 | 2013-04-24 | 南京大学 | 一种基于模型驱动工程进行SysML状态机图分析验证的方法 |
CN103065000B (zh) * | 2012-12-11 | 2016-02-10 | 南京大学 | 一种基于模型驱动工程进行SysML状态机图分析验证的方法 |
CN103164252B (zh) * | 2013-04-15 | 2016-08-31 | 西安电子科技大学 | 一种由序列图生成Java代码框架的方法 |
CN103164252A (zh) * | 2013-04-15 | 2013-06-19 | 西安电子科技大学 | 一种由序列图生成Java代码框架的方法 |
CN103281329A (zh) * | 2013-06-07 | 2013-09-04 | 东南大学 | 一种基于SoaML的云应用正确性验证方法 |
CN103281329B (zh) * | 2013-06-07 | 2016-05-25 | 东南大学 | 一种基于SoaML的云应用正确性验证方法 |
CN105426176B (zh) * | 2015-11-03 | 2018-05-18 | 南京航空航天大学 | 一种基于信息隐藏的图转换***模型检测方法 |
CN105426176A (zh) * | 2015-11-03 | 2016-03-23 | 南京航空航天大学 | 一种基于信息隐藏的图转换***模型检测方法 |
CN105678169A (zh) * | 2015-12-30 | 2016-06-15 | 西安胡门网络技术有限公司 | 一种二进制程序漏洞挖掘方法和*** |
CN105678169B (zh) * | 2015-12-30 | 2019-02-26 | 西安胡门网络技术有限公司 | 一种二进制程序漏洞挖掘方法和*** |
CN105808265A (zh) * | 2016-03-15 | 2016-07-27 | 北京神舟智汇科技有限公司 | 一种行为模型生成方法及*** |
CN105955755A (zh) * | 2016-05-19 | 2016-09-21 | 上海大学 | 一种基于状态图的代码化验证方法 |
CN110276443A (zh) * | 2019-05-29 | 2019-09-24 | 平安科技(深圳)有限公司 | 模型转换一致性验证及分析方法、装置及存储介质 |
CN111176772A (zh) * | 2019-12-24 | 2020-05-19 | 安克创新科技股份有限公司 | 用于状态切换的方法、装置以及机器人 |
CN111176772B (zh) * | 2019-12-24 | 2022-07-01 | 安克创新科技股份有限公司 | 用于状态切换的方法、装置以及机器人 |
CN112214401A (zh) * | 2020-09-23 | 2021-01-12 | 华东师范大学 | 一种基于模型检测的标准模型分析方法 |
CN112214401B (zh) * | 2020-09-23 | 2023-05-09 | 华东师范大学 | 一种基于模型检测的标准模型分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101673198A (zh) | 一种验证uml模型中动态行为与时序契约的一致性的方法 | |
CN103019742B (zh) | 一种多dsp平台上的自动代码生成方法 | |
CN112416337B (zh) | 一种面向航天嵌入式***的软件架构开发*** | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN109739740A (zh) | 一种aadl模型组合形式化验证方法 | |
CN108460199A (zh) | Cni建模*** | |
Biswal et al. | A novel approach for scenario-based test case generation | |
CN102722601B (zh) | 数控***的模型转换形式化语义集成框架的实现方法 | |
Pomante | System-level design space exploration for dedicated heterogeneous multi-processor systems | |
CN110109658A (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
Hu et al. | Multi-tenant Verification-as-a-Service (VaaS) in a cloud | |
Patil et al. | Formal modelling and verification of IEC61499 function blocks with abstract state machines and SMV-execution semantics | |
Nascimento et al. | A model-driven infrastructure for developing product line architectures using cvl | |
Pang et al. | Automatic model generation of IEC 61499 function block using net condition/event systems | |
Bunker et al. | Formal hardware specification languages for protocol compliance verification | |
CN102231132A (zh) | 一种基于SystemC的AADL软构件模型仿真测试实例生成方法 | |
do Nascimento et al. | A model-driven engineering framework for embedded systems design | |
Porter et al. | Towards model-based integration of tools and techniques for embedded control system design, verification, and implementation | |
Alshareef et al. | An an approach for activity-based DEVS model specification | |
Barbosa et al. | Checking semantics equivalence of mda transformations in concurrent systems. | |
Mehlhop et al. | Model-aware simulation of IEC 61499 designs | |
Gumzej | Embedded system architecture co-design and its validation | |
Issa | Utilising Refactoring To Restructure Use-Case Models. | |
Magureanu et al. | UML profile for Cyber-Physical System wireless communication specification | |
Szmuc et al. | Formal methods—support or scientific decoration in software development? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100317 |