[发明专利]一种由序列图生成Java代码框架的方法有效

专利信息
申请号: 201310132277.5 申请日: 2013-04-15
公开(公告)号: CN103164252A 公开(公告)日: 2013-06-19
发明(设计)人: 段振华;张超;田聪;张南;王小兵;罗玲 申请(专利权)人: 西安电子科技大学
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 北京科亿知识产权代理事务所(普通合伙) 11350 代理人: 汤东凤
地址: 710071 陕西省*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 序列 生成 java 代码 框架 方法
【权利要求书】:

1.一种由序列图生成Java代码框架的方法,包括根据目标系统的功能需求,绘制出该系统的UML序列图,其特征在于,通过所述序列图自动转换得到与其相应的类图与状态图,并由所述的类图生成静态代码框架,以及由所述的状态图生成动态代码信息,将所述静态代码框架与所述动态代码信息结合得到完整的Java代码框架,所述方法包括以下步骤:

(1)将序列图转换为类图,其中,对所述序列图对象的分析,将每个序列图中的全部对象换得到对象序列,将所述对象序列转换到一个类图中,将每一个对象转换为一个类,如果两个对象彼此有交互关系,则为它们对应的类建立关联,将每个对象上的动作、事件作为操作加入对应类中;

(2)将序列图转换为状态图,其中,分析对象在所述序列图中的消息序列,将每个序列图中消息序列转换为对序列,将所述对序列转换为单个子状态图,将所有的子状态图合成生成一个对象的完整状态图;

由序列图中的对象信息自动转换得到类图;由序列图中的动作、事件信息自动转换得到状态图;

(3)制定类图和状态图到Java代码的映射关系,从所述类图中获取代码静态结构信息,从所述状态图获取类中方法的动态信息,并分别制定所述类图和所述状态图到代码的映射关系;

(4)合并类图和状态图信息选择自动生成代码。

2.根据权利要求1所述的方法,其特征在于,所述类图中的模型包括实体模型和关联模型,其中,实体模型对应到java代码的映射为:

包(Package)—生成与包同名的文件夹,包中所含的类对应的源文件存于该文件夹中;

类(Class)—为每个类生成相应的文件,目标代码为Java,映射为java文件;

属性(Attribute)—为模型中的类的属性,包括可见性、数据类型和缺省值等信息,在生成代码时映射为类的成员变量的说明;

操作(Operation)—包括操作名及其参数、参数数据类型和返回值等信息,在生成代码时映射为类的成员函数。

数据类型(Data Type)—根据相应的设置生成Enum,Array等类型定义。

关联模型对应到java代码的映射为:

关联(Association)—对应到两端类中的属性;

聚集(Aggregation)—对应到目标类中的属性,以参数的形式传入对象引用;

组成(Composition)—对应到目标类中的属性,在目标类中实例化;

依赖(Dependence)—对应到目标类中的属性;

继承(Generalization)—对应目标类的子类;

实现(Realization)—对应目标类的实现类。

3.根据权利要求1所述的方法,其特征在于,所述状态图到Java代码的映射关系:所述状态图中的图元主要包括状态、事件、变迁;其中,状态映射为Java代码中的类,每一个状态用类来表示,状态中若含有事件,则将该事件作为方法加入到对应类中,而每一个状态图也会生成一个上下文类,负责控释状态的变迁,而变迁就作为这个上下文类中的函数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310132277.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top