CN108762749B - 基于代码分析的系统对象图自动生成方法 - Google Patents
基于代码分析的系统对象图自动生成方法 Download PDFInfo
- Publication number
- CN108762749B CN108762749B CN201810510539.XA CN201810510539A CN108762749B CN 108762749 B CN108762749 B CN 108762749B CN 201810510539 A CN201810510539 A CN 201810510539A CN 108762749 B CN108762749 B CN 108762749B
- Authority
- CN
- China
- Prior art keywords
- class
- statement
- obj
- name
- calling
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于代码分析的系统对象图自动生成方法,其特征在于:包括以下步骤:步骤S1:通过soot分析获取类名、方法名和语句集;步骤S2:处理对象创建语句并生成对象集,处理对象声明语句并生成属性‑值对应集,采用符号执行的思想获取方法调用语句和调用过程并生成对象调用关系集;步骤S3:运用plantuml语言规则将上述集合转化为对象图生成语句,从而得到了自动生成的uml对象图。本发明基于代码分析的系统对象图自动生成技术可以直观反映运行时软件体系结构的特点,用户不必查看繁琐的代码就能通过该技术获取对象信息(类属性、对象属性)以及对象关系(对象调用链),加强代码的可读性和可维护性。
Description
技术领域
本发明涉及一种基于代码分析的系统对象图自动生成方法。
背景技术
近年来,面向对象的软件开发技术发展迅速并获得了广泛应用,在面向对象的分析、设计技术及面向对象的程序设计语言方面均获得了丰富的研究成果,面向对象的方法占据着主导地位。统一建模语言UML是面向对象软件开发中的一种通用、统一的图形模型语言,是用于软件系统规约化、可视化构造和建模的有效工具。所以,在软件工程中,工程师通常使用uml设计方法(即类图、时序图、对象图)进行系统的详细设计,从而按照详细设计来进行代码编写和软件开发,通过uml图生成代码,这个属于正向工程生成代码。然而在实际开发中,很可能是先完成了代码开发,再补充详细设计文档,或者希望从复杂的源代码中快捷地提取系统的架构信息,这就需要通过代码来自动生成uml图。该逆向工程能通过uml对象图直观地反映系统中对象的状态信息、关系等抽象结构,让工程师从架构角度看系统源代码或者方便获取系统uml对象图。
目前,一些编程语言和编程环境已有从代码生成uml图这一逆向工程,其中类图是最常见的,时序图较少,而生成对象图的技术更是处于不成熟的状态。这些UML生成工具的问题是,当以代码逆向构建uml类及序列图时,可能无法自动地产生有用的uml图,或者产生多余的图表信息。因此,基于代码分析是生成uml对象图的前提,它可以改善源代码的输出产物,从中间代码中识别其组成部分作为对象图生成工具的输入。
发明内容
本发明的目的是提供一种基于代码分析的系统对象图自动生成方法。
本发明采用以下技术方案:一种基于代码分析的系统对象图自动生成方法,其包括以下步骤:步骤S1:通过soot分析获取类名、方法名和语句集;其中类的集合为C={C0,C1,C2,…Ci}其中Ci表示类名:方法的集合为Mi={Mi0,Mi1,Mi2,…Mij}其中Mij表示Ci的第j个方法;语句的集合为Uij={Uij0,Uij1,Uij2…Uijk}其中Uijk表示Mij的第k个语句;对象的集合为OBJ={obj0,obj1,obj2,…obji}其中obji表示第i个对象步骤S2:处理对象创建语句并生成对象集,处理对象声明语句并生成属性-值对应集,采用符号执行的思想获取方法调用语句和调用过程并生成对象调用关系集;步骤S3:运用plantuml语言规则将上述集合转化为对象图生成语句,从而得到了自动生成的uml对象图。
在本发明一实施例中,步骤S1中soot的jtp阶段分析产物的语句格式:
声明语句:定义形参pName:=@pId:pType
赋值语句:普通赋值<Ci:Type Name>=Value
调用式赋值$i=invoke invoker.Mpq
对象声明赋值obji=new Cr
调用语句:形如invoke user.invoker.Mpq
返回语句:形如return result;
以上语句是在分析Ci的第j个方法,即Mij时产生的,其中,当第p个类的第q个方法Mpq为创建对象的方法时,格式为<Cr:void<init>(oValue0,oValue1,oValue2…)>
pName为参数名,pId为参数号,pType为参数类型,invoker为被调用对象,user为调用对象,
Cr为对象所属类的类名;result为返回值,oValue0,oValue1,oValue2…为对象实参值;
形参表为param<Mij,pId,pName>;其中Mij为方法名,pId为参数号,pName为参数名;每个obji=<Mij,Cr,objectId>,Cr为对象所属类的类名,objectId是该对象唯一的标识符;
属性-值表为param2<Mij,Name,Value>
形参表param更新为对象参数表objparam<obji,pNamej,oValuej>;其中obji为对象名,pNamej为参数名,oValuej为对象实参值。
在本发明一实施例中,步骤S2中对象之间调用关系为invokeij=<obji,objj,Mip,Mjq,invokeTime,invokeId>;其中,Mip为obji调用方法集Mi中第p个方法,Mjq为objj调用方法集Mj中第q个方法,invokeTime表示方法调用的次数,invokeId表示调用的唯一标识符。
在本发明一实施例中,步骤S1包括以下步骤:
步骤S11:使用soot.options.Options下的配置函数进行输入输出配置,主要有包括设置输出格式为jimple、处理path下所有的类;步骤S12:使用soot.Scene加载基本类,Scene是包含全部SootClass的容器,Scene.v()得到一个单例模式的Scene,设定分析发生的场景;步骤S13:加载所有类,得到class链表,以Iterator方式遍历获得所有类,判断该类是否为被分析系统下的类、是否为接口类、获得类名,以ArrayList<String>方式将类名保存;步骤S14:运行soot的jtp阶段,在bodytransformer注册自定义的过程间分析;生成被分析的java文件路径下所有的类名Ci、每个类下所有的方法Mij、每个方法体中所有的语句Uijk;步骤S15:处理输出的Uij,保存有效的分析产物;生成每个方法的形参表param、对象表obji、属性-值表param2。
与现有技术相比,本发明基于代码分析的系统对象图自动生成技术可以直观反映软件体系结构的特点,用户不必查看繁琐的代码就能通过该技术获取对象信息(类属性、对象属性)以及对象关系(对象调用链),加强代码的可读性和可维护性。
附图说明
图1本发明为从java代码到uml图的分析、转换过程示意图。
图2本发明为从java代码到对象图具体过程示意图。
图3本发明一实施例的对象图中的链示例示意图。
图4为本发明一实施例的用户执行uml生成工具流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步解释说明。
一种基于代码分析的系统对象图自动生成方法,其包括以下步骤:步骤S1:通过soot分析获取类名、方法名和语句集;其中类的集合为C={C0,C1,C2,…Ci}其中Ci表示类名:方法的集合为Mi={Mi0,Mi1,Mi2,…Mij}其中Mij表示Ci的第j个方法;语句的集合为Uij={Uij0,Uij1,Uij2…Uijk}其中Uijk表示Mij的第k个语句;对象的集合为OBJ={obj0,obj1,obj2,…obji}其中obji表示第i个对象步骤S2:处理对象创建语句并生成对象集,处理对象声明语句并生成属性-值对应集,采用符号执行的思想获取方法调用语句和调用过程并生成对象调用关系集;步骤S3:运用plantuml语言规则将上述集合转化为对象图生成语句,从而得到了自动生成的uml对象图。
在本发明一实施例中,步骤S1中soot的jtp阶段分析产物的语句格式:
声明语句:定义形参pName:=@pId:pType
赋值语句:普通赋值<Ci:Type Name>=Value
调用式赋值$i=invoke invoker.Mpq
对象声明赋值obji=new Cr
调用语句:形如invoke user.invoker.Mpq
返回语句:形如return result;
以上语句是在分析Ci的第j个方法,即Mij时产生的,其中,当第p个类的第q个方法Mpq为创建对象的方法时,格式为<Cr:void<init>(oValue0,oValue1,oValue2…)>
pName为参数名,pId为参数号,pType为参数类型,invoker为被调用对象,user为调用对象,
Cr为对象所属类的类名;result为返回值,oValue0,oValue1,oValue2…为对象实参值;
形参表为param<Mij,pId,pName>;其中Mij为方法名,pId为参数号,pName为参数名;每个obji=<Mij,Cr,objectId>,Cr为对象所属类的类名,objectId是该对象唯一的标识符;
属性-值表为param2<Mij,Name,Value>
形参表param更新为对象参数表objparam<obji,pNamej,oValuej>;其中obji为对象名,pNamej为参数名,oValuej为对象实参值。
在本发明一实施例中,步骤S2中对象之间调用关系为invokeij=<obji,objj,Mip,Mjq,invokeTime,invokeId>;其中,Mip为obji调用方法集Mi中第p个方法,Mjq为objj调用方法集Mj中第q个方法,invokeTime表示方法调用的次数,invokeId表示调用的唯一标识符。
在本发明一实施例中,步骤S1包括以下步骤:
步骤S11:使用soot.options.Options下的配置函数进行输入输出配置,主要有包括设置输出格式为jimple、处理path下所有的类;步骤S12:使用soot.Scene加载基本类,Scene是包含全部SootClass的容器,Scene.v()得到一个单例模式的Scene,设定分析发生的场景;步骤S13:加载所有类,得到class链表,以Iterator方式遍历获得所有类,判断该类是否为被分析系统下的类、是否为接口类、获得类名,以ArrayList<String>方式将类名保存;步骤S14:运行soot的jtp阶段,在bodytransformer注册自定义的过程间分析;生成被分析的java文件路径下所有的类名Ci、每个类下所有的方法Mij、每个方法体中所有的语句Uijk;步骤S15:处理输出的Uij,保存有效的分析产物;生成每个方法的形参表param、对象表obji、属性-值表param2。
本发明的定义如下:
定义1:类的集合为C={C0,C1,C2,…Ci}其中Ci表示类名;
定义2:方法的集合为Mi={Mi0,Mi1,Mi2,…Mij}其中Mij表示Ci的第j个方法;
定义3:语句的集合为Uij={Uij0,Uij1,Uij2…Uijk}其中Uijk表示Mij的第k个语句;
定义4:对象的集合为OBJ={obj0,obj1,obj2,…obji}其中obji表示第i个对象。
定义5:soot的jtp阶段分析产物的语句格式:
声明语句:定义形参pName:=@pId:pType
赋值语句:普通赋值<Ci:Type Name>=Value
调用式赋值$i=invoke invoker.Mpq
对象声明赋值obji=new Cr
调用语句:形如invoke user.invoker.Mpq
返回语句:形如return result
(其中,当第p个类的第q个方法Mpq为创建对象的方法时,
格式为<Cr:void<init>(oValue0,oValue1,oValue2…)>
pName为参数名,pId为参数号,pType为参数类型,
invoker为被调用对象,user为调用对象,
result为返回值,oValue0,oValue1,oValue2…为对象实参值)
定义6:形参表为param<Mij,pId,pName>
其中Mij为方法名,pId为参数号,pName为参数名
定义7:每个obji=<Mij,Cr,objectId>,
其中Mij为创建该对象的方法,Cr为对象所属类的类名,objectId是该对象唯一的标识符
定义8:属性-值表为param2<Mij,Name,Value>
定义9:形参表param更新为对象参数表objparam<obji,pNamej,oValuej>
其中obji为对象名,pNamej为参数名,oValuej为对象实参值
定义10:对象之间调用关系为invokeij=<obji,objj,Mip,Mjq,invokeTime,invokeId>;其中,Mip为obji调用方法集Mi中第p个方法,Mjq为objj调用方法集Mj中第q个方法,invokeTime表示方法调用的次数,invokeId表示调用的唯一标识符。
A.对象与属性:如表1所示
表1
对象名:类名组成对象的名称
属性名:属性值为属性列表
对象由对象信息和属性信息组成。
B.链:如图3
链表示对象之间的关系,一般为调用关系,是类关系的实例化。
2.3 plantuml示例
@startuml
object objectname:classname as objectId 创建对象
objectId:fieldname=”fieldvalue” 添加属性
object01——object02 建立对象链
@enduml
本发明具体实施例中形式化过程描述如下:
step 1:参数配置
Options是全局的参数设置,并且是个单例。使用soot.options.Options下的配置函数进行输入输出配置,主要有:设置输出格式为jimple、处理path下所有的类。使用soot.Scene加载基本类,Scene是包含全部SootClass的容器,Scene.v()得到一个单例模式的Scene,设定分析发生的场景。
step 2:类加载
类名:加载所有类,得到class链表,以Iterator方式遍历获得所有类,判断该类是否为被分析系统下的类(该类是否在某个包下)、是否为接口类、获得类名,以ArrayList<String>方式将类名保存。
Step 3:运行soot的jtp阶段,在bodytransformer注册自定义的过程间分析
Output of Step3
路径下所有的类名Ci、每个类下所有的方法Mij、每个方法体中所有的语句Uijk
Step 4:处理输出的Uij,保存有效的分析产物
Output of Step4
每个方法的形参表param、对象表obji、属性-值表param2
Step 5:动态模拟执行
Output of Step5
对象参数表objparam、对象之间调用关系表invokeij
Step 6:生成对象图的plantuml语言
本发明是基于java语言和Eclipse平台开发的,使用时将技术源代码导入工作区间,并将系统源代码导入同一src路径下,执行Execute.java,根据提示进行操作。
找到Analysis_Step_One.java的第140行输入系统的包名(可以是多个包或者根目录的包名),然后运行java文件进入代码分析阶段,待控制台输出完成后,执行next选择步骤3进行对象图生成,生成结果将保存在工作区间下以.png格式的图片显示出来。
用户执行uml生成工具流程示意图如图4所示。
为了验证本文提出技术的有效性,本发明使用Java语言在Eclipse平台上导入一个汽车租聘管理系统的源码。
该系统由租借界面类、操作类、租金计算类、交通工具类、小车类、汽车类、司机类组成。在操作类中创建对象:8个Driver类型的object、4个SmallCar类型的object、4个Bus类型的object。在租借界面类中创建对象:1个MotoVehicle类型的object。
我们希望生成的对象图中能体现以下对象信息:包括对象的类型、对象中的属性,并且直观看出操作类的对象motoOpr调用了SmallCar和Bus类型的对象,而SmallCar和Bus类型的对象又分别调用了Driver类型的对象。按使用模式执行对象图生成技术,在工作区间下找到object_diagram.png。程序显示生成若干个对象,符合系统源代码。每个对象中的属性都能在图中显示,且调用关系以对象链的形式呈现。需要注意的是,在motoOpr对象创建时,虽然创建语句中没有对象属性,但是motoOpr的类属性有motos、a=3、b=”sdfs”,因此在添加motoOpr的属性时,应该把这三个属性也添加进去。
当系统的程序中出现递归代码段或是循环代码段时,动态模拟执行可能陷入死循环或者栈溢出的情况。本技术针对这两种情况,采取以下两个策略:当遇到循环时,将循环以loop和end的形式标注出来并且只执行一次;通过判断下一个调用的方法是否为自身来识别递归代码段,并且截断不再继续进入自身,从而确保该技术能完整地生成系统的对象图。
soot在分析代码的jtp阶段,有些属性名和系统源代码有所区别,例如有一个Driver类型的对象,在源代码中对象名为d4,然而在soot分析后,d4对象名无法获取,通过$r17表示该对象保存在栈中的位置,即栈指针。因此在描述对象图时,使用栈指针来命名对象名,但其本质不变,仍然代表对象名为d4的对象,因此不影响添加类属性和对象属性以及对象链的生成。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (4)
1.一种基于代码分析的系统对象图自动生成方法,其特征在于:包括以下步骤:
步骤S1:通过soot分析获取类名、方法名和语句集;其中类的集合为C={C0,C1,C2,...Ci}其中Ci表示类名:方法的集合为Mi={Mi0,Mi1,Mi2,...Mij}其中Mij表示Ci的第j个方法;语句的集合为Uij={Uij0,Uij1,Uij2...Uijk}其中Uijk表示Mij的第k个语句;对象的集合为OBJ={obi0,obj1,obj2,...obji}其中obji表示第i个对象
步骤S2:处理对象创建语句并生成对象集,处理对象声明语句并生成属性值对应集,采用符号执行的思想获取方法调用语句和调用过程并生成对象调用关系集;
步骤S3:运用plantuml语言规则将上述语句集、对象集、属性-值对应集、对象调用关系集转化为对象图生成语句,从而得到了自动生成的uml对象图。
2.根据权利要求1所述的基于代码分析的系统对象图自动生成方法,其特征在于:步骤S1中soot的jtp阶段分析产物的语句格式:
声明语句:定义形参pName:=@pId:pType
赋值语句:普通赋值<Ci:Type Name>=Value
对象声明赋值obji=new Cr
调用语句:形如invoke user.invoker.Mpq
返回语句:形如return result;
以上语句是在分析Ci的第j个方法,即Mij时产生的,其中,当第p个类的第q个方法Mpq为创建对象的方法时,格式为<Cr:void<init>(oValue0,oValue1,oValue2...)>pName为参数名,pld为参数号,pType为参数类型,invoker为被调用对象,user为调用对象,Cr为对象所属类的类名;result为返回值,oValue0,oValue1,oValue2...为对象实参值;
形参表为param<Mij,pld,pName>;pld为参数号,pName为参数名;每个obji=<Mij,Cr,objectld>,Cr为对象所属类的类名,objectld是该对象唯一的标识符;
属性-值表为param2<Mij,Name,Value>
形参表param更新为对象参数表objparam<obji,pNamej,oValuej>;其中obji为对象名,pNamej为参数名,oValuej为对象实参值。
3.根据权利要求1所述的基于代码分析的系统对象图自动生成方法,其特征在于:步骤S2中对象之间调用关系为invokeij=<obji,objj,Mip,Mjq,invokeTime,invokeId>;其中,Mip为obji调用方法集Mi中第p个方法,Mjq为objj调用方法集Mj中第q个方法,invokeTime表示方法调用的次数,invokeld表示调用的唯一标识符。
4.根据权利要求1所述的基于代码分析的系统对象图自动生成方法,其特征在于:步骤S1包括以下步骤:
步骤S11:使用soot.options.Options下的配置函数进行输入输出配置,主要有包括设置输出格式为jimple、处理path下所有的类;
步骤S12:使用soot.Scene加载基本类,Scene足包含全部SootClass的容器,Scene.v()得到一个单例模式的Scene,设定分析发生的场景;
步骤S13:加载所有类,得到class链表,以Iterator方式遍历获得所有类,判断该类是否为被分析系统下的类、是否为接口类、获得类名,以ArrayList<String>方式将类名保存;
步骤S14:运行soot的jtp阶段,在bodytransformer注册自定义的过程间分析;生成被分析的java文件路径下所有的类名Ci、每个类下所有的方法Mij、每个方法体中所有的语句Uijk;
步骤S15:处理输出的Uij,保存有效的分析产物;生成每个方法的形参表param、对象表obji、属性-值表param2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810510539.XA CN108762749B (zh) | 2018-05-24 | 2018-05-24 | 基于代码分析的系统对象图自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810510539.XA CN108762749B (zh) | 2018-05-24 | 2018-05-24 | 基于代码分析的系统对象图自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108762749A CN108762749A (zh) | 2018-11-06 |
CN108762749B true CN108762749B (zh) | 2021-12-21 |
Family
ID=64005797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810510539.XA Active CN108762749B (zh) | 2018-05-24 | 2018-05-24 | 基于代码分析的系统对象图自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762749B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857654A (zh) * | 2019-01-17 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种自动生成测试用例的时序流程图的方法、装置及系统 |
US11334326B2 (en) * | 2019-02-27 | 2022-05-17 | Adrian Andres Rodriguez-Velasquez | Systems, devices, and methods of developing or modifying software using physical blocks |
CN110109702B (zh) * | 2019-05-16 | 2021-07-13 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN111338618B (zh) * | 2020-02-17 | 2021-09-24 | 福州大学 | 应用场景驱动的Android应用微服务自动生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354759A (zh) * | 2007-07-23 | 2009-01-28 | 兰雨晴 | 一种基于元模型的工作流流程定义转换的方法及系统 |
CN104536895A (zh) * | 2015-01-12 | 2015-04-22 | 牟永敏 | 一种面向Java函数调用路径的测试过程跟踪方法及系统 |
CN104461883B (zh) * | 2014-12-03 | 2017-11-14 | 中国矿业大学 | 基于程序执行轨迹的过程间动态程序切片系统 |
CN107885607A (zh) * | 2017-10-20 | 2018-04-06 | 北京航空航天大学 | 一种基于嵌入式系统软件多视图事故模型及其建模方法 |
CN107957866A (zh) * | 2016-10-17 | 2018-04-24 | 松下知识产权经营株式会社 | 程序生成方法、程序生成装置以及控制程序 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685394A (zh) * | 2008-09-26 | 2010-03-31 | 国际商业机器公司 | 用于提供版本间文档兼容性的方法和装置 |
US20100131918A1 (en) * | 2008-11-26 | 2010-05-27 | International Business Machines Corporation | Method for generating a uml object diagram of an object-oriented application |
CN102629229B (zh) * | 2012-03-02 | 2014-09-10 | 南京大学 | 一种联合差异性随机测试方法 |
US10460112B2 (en) * | 2014-02-07 | 2019-10-29 | Northwestern University | System and method for privacy leakage detection and prevention system without operating system modification |
US9575736B2 (en) * | 2015-07-22 | 2017-02-21 | Oracle International Corporation | Advanced interactive command-line front-end for graph analysis systems |
CN105824758B (zh) * | 2016-03-21 | 2018-09-21 | 南京大学 | 一种基于执行索引和访问路径的堆区对象比较方法 |
CN107704235A (zh) * | 2017-09-22 | 2018-02-16 | 深圳航天科技创新研究院 | 图形化建模中数据流程图的解析方法、系统及存储介质 |
-
2018
- 2018-05-24 CN CN201810510539.XA patent/CN108762749B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354759A (zh) * | 2007-07-23 | 2009-01-28 | 兰雨晴 | 一种基于元模型的工作流流程定义转换的方法及系统 |
CN104461883B (zh) * | 2014-12-03 | 2017-11-14 | 中国矿业大学 | 基于程序执行轨迹的过程间动态程序切片系统 |
CN104536895A (zh) * | 2015-01-12 | 2015-04-22 | 牟永敏 | 一种面向Java函数调用路径的测试过程跟踪方法及系统 |
CN107957866A (zh) * | 2016-10-17 | 2018-04-24 | 松下知识产权经营株式会社 | 程序生成方法、程序生成装置以及控制程序 |
CN107885607A (zh) * | 2017-10-20 | 2018-04-06 | 北京航空航天大学 | 一种基于嵌入式系统软件多视图事故模型及其建模方法 |
Non-Patent Citations (3)
Title |
---|
"A Model-Based Fault Tolerance Configuration Framework for Component-Based Systems";Chen Xing;《2017 International Conference on Green Informatics (ICGI)》;20171123;第252-第262页 * |
"Soot生成控制流图";lzt-software;《https://www.cnblogs.com/clownice/p/5515775.html》;20160521;第1-11页 * |
"基于运行时模型的混合云管理方法";陈星;《软件学报》;20161011;第28卷(第7期);第1881-第1897页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108762749A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108762749B (zh) | 基于代码分析的系统对象图自动生成方法 | |
EP2513785B1 (en) | Method and system of adapting a data model to a user interface component | |
US8615729B2 (en) | Extending existing model-to-model transformations | |
WO2024060725A1 (zh) | 一种飞机工装变更方法、装置、设备及存储介质 | |
CN110673842A (zh) | 一种可视化编程方法及系统、存储介质、设备 | |
US8935657B2 (en) | Model-to-model transformation by kind | |
CN111026670A (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
US11188307B2 (en) | Modelizing resources and external data of a program for procedural language coding | |
US9026985B2 (en) | Dynamically configurable model-to-model transformation engine | |
CN113220664B (zh) | Lua脚本规则快速生成的卫星遥测智能判读系统及方法 | |
Rodríguez-Echeverría et al. | Generation of WebML hypertext models from legacy web applications | |
CN115033212A (zh) | 航电系统图元模型一体化构建方法、装置、计算机设备 | |
Derezinska et al. | Tracing of state machine execution in the model-driven development framework | |
Rodríguez-Echeverría et al. | Model driven extraction of the navigational concern of legacy web applications | |
Johannsen et al. | Supporting knowledge elicitation and analysis for business process improvement through a modeling tool | |
US8510342B1 (en) | Automatic conversion of build processes to use streaming input | |
Goel et al. | An executional framework for BPMN using Orc | |
Rodríguez-Echeverría et al. | Extracting navigational models from struts-based web applications | |
Rahimi et al. | Architecture conformance checking of multi-language applications | |
Martinez et al. | Recovering activity diagrams from object oriented code: an mda-based approach | |
CN117170629A (zh) | 应用的集成方法及装置、电子设备和存储介质 | |
Kuznik et al. | Systematic Application of UCIS to Improve the Automation on Verification Closure | |
CN117609103A (zh) | 基于viatra的大规模低代码系统模型验证的自动映射方法 | |
CN115858374A (zh) | 针对大规模静态缺陷检测的指针分析方法 | |
CN118296903A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |