1、 本科毕业设计论文 设计题目Flex源码到类图转换工具的设计与实现 学 院 专 业 班 级 学 号 学生姓名
2、 指导教师 Flex源码到类图转换工具的设计与实现 摘要 本论文主要阐述了flex源码转换到类图显示工具的设计与开发。本系统是根据企业进行模型驱动开发提出的需求而开发的一款实用工具软件。本文主要讲述了flex语言的由来和特性;本转换工具的框架设计;四叉树应用在场景管理,包括处理图形重叠问题,类图信息提取等,以及论述了类图信息挖掘,类图布局等功能提取工程框架关键核心信息。本软件能有效地帮助对现有框架陌生的程序员迅速掌握框架概念,提高工作效率。 关键字 flex; 四
3、叉树; 类图特征;同构;回环 ABSTRACT This paper focuses on the conversion of flex source code to Diagrams, the designing and development of the view tool. Based on the needs of Model-driven development in Enterprise.This paper totally on several content as follows. Such as, the characteristics of flex;the de
4、sign about this system; Quardtree on scene manager,including deal about graphs overlap; imformation mining from diagrams. With providing mining the core information of whole project, this system will make programers quickly understand the frame of project,and increase developing productivity. KEY W
5、ORDS Flex Quardtree; Characteristics of diagrams; Isomorphic; Circle目录 1. 前 言 5 2. FLEX技术分析 7 2.1 ECMAScript 7 2.1.1 ECMAScript历史 7 2.2 Action script 7 2.2.1 Action script 定义 7 2.2.2 Action Script 语法 8 2.3 对象模型与模型驱动开发 8 2.3.1 对象模型 9 2.3.2 模型驱动开发(MDD) 9 3. 系统的设计与实现 9 3.1 系统框架设计 9 3.1.1
6、框架概念 9 3.1.2 框架设计 10 3.1.3 View模块设计 10 4. 系统详细设计 15 4.1 场景管理数据结构设计 15 4.1.1 四叉树设计 15 4.2 关系图的元素合并解决方案 17 4.2.1 图的同构处理 17 4.2.2 图的回环合并处理 20 4.3 类图中的特征挖掘 24 4.3.1 程序设计的思想----面向对象 24 4.3.2 继承与组合 25 4.3.3 关系特征提取 25 5. 系统测试 30 5.1 系统测试 30 5.2 存在问题 31 6. 软件实现 32 6.1 输入 32 6.1.1 AS工程代码 32
7、 6.2 输出 34 6.2.1 功能控件选项 34 6.2.2 类和接口实现关系 34 6.2.3 继承关系 34 6.2.4 组合关系 35 6.2.5 类或接口的使用者 35 6.2.6 整体 36 结论 37 致谢 39 Flex源码到类图转换工具设计 1. 前 言 随着软件工程不断发展,软件产品开发团队逐渐庞大,而又针对网络软件产品,其开发周期短,版本更换频率高,在要求快速开发的环境下,对于正常开发工作中出现的人员流动,开发交流,框架变更,等情况导致的投入回报失衡,此时,迫切需要一套调整提高开发速度的模型及工具。 我们常接触到的模型驱动开发,测试
8、驱动开发,文档驱动开发等开发模式无不都旨在提高代码质量,提高开发速率,UML类图是其中的一种常用的软件工程方法。一般的类图和文档在开发初期以稳定状态存在,但到开发中期,出现代码框架变更而文档类图均无同步更新,这里则需要多一份维护文档的工作代价付出。 而在软件开发过程中,对一个自己不熟悉的模块,通常采用断点调试,而对一块程序没有概念的调试往往浪费时间。能够清楚地获悉该模块的主要类,类与类之间的管理关系,引用关系对于调试,理解程序起了很好的帮助作用。而实际中的人工画出来的UML图并不能细致地描述整个工程。 一款好的源码到类图描述工具可以很好地提高开发人员理解代码速度,降低维护文档类图成本。很好
9、的支持了模型驱动开发。 本课题集中解决源码到类图工具的显示操作上的问题,例如:场景区域管理。 2. Flex技术分析 2.1 ECMAScript 2.1.1 ECMAScript历史 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。 1995年12月升阳公司与网景通讯公司一起引入了JavaScript。1996年3月,网景通讯公司发表了支持JavaScript的网景导航者2.0。由
10、于JavaScript作为网页的客户面脚本语言非常成功,微软于1996年8月引入了Internet Explorer3.0,这个软件支持一个“约”与JavaScript相容的JScript。 1996年11月网景通讯公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。 ECMAScript是由ECMA-262标准化的脚本语言的名称。JavaScript和JScript与ECMAScript相容,但包含超出ECMAScript的功能。 2.2 Action script 2.2.1 Action scri
11、pt 定义 ActionScript是 Macromedia(现已被Adobe收购)为其Flash产品开发的 ,最初是一种简单的脚本语言,现在最新版本3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA应用程序开发。 ActionScript 是一种基于ECMAScript的脚本语言,可用于编写Adobe Flash动画和应用程序。 由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从一种语言翻译到另一种。不过JavaScript的
12、文档对象模型(DOM)是以浏览器窗口,文档和表单为主的,ActionScript的文档对象模型(DOM)则以SWF格式动画为主,可包括动画,音频,文字和事件处理。 2.2.2 Action Script 语法 具有面向对象性质的AS3,举例其中的语法关键字: 表2-1 flex 关键字 2.3 对象模型与模型驱动开发 2.3.1 对象模型 UML的类图元素分为:类;接口;包; 2.3.2 模型驱动开发(MDD) 模型驱动开发(Model-driven development
13、MDD)是软件开发的一种样式,其中主要的软件工件是模型,根据最佳实践,可以从这些模型生成代码和其他工件。模型是从特定角度对系统进行的描述,它省略了相关的细节,因此可以更清楚地看到感兴趣的特性。例如,结构工程师会创建适合于确定建筑物承载特性的模型。 3. 系统的设计与实现 3.1 系统框架设计 3.1.1 框架概念 系统分为两个模块,分别为:parser(解析AS文件),view(显示元素)。 Parser部分主要使用Python解析AS文件,取出其类,接口信息到XML文件中。而View提供显示和操作功能。在View中所显示的类和接口信息统一标示为元素,下文将以元素称之。
14、 3.1.2 框架设计 图3-1 解析AS文件获取类,接口数据 3.1.3 View模块设计 逻辑模块主要有三个部分,分别为总控IUIControl IUIControl 逻辑模块操作的总入口,管理鼠标消息的流向。 ;单一操作IselectionUil;复合操作IlocalUil。 图3-6 逻辑层继承关系 IselectionUil分别由CciViewSelectionUil,CBViewSelectionUil,CLocatePlacemarkSelectionUil CI,Browser,locatePlacemarkSelection三个模块的鼠标move,down
15、up操作集合。 实现。 图3-7 IselectionUil 实现关系 4. 系统详细设计 4.1 场景管理数据结构设计 结论 随着软件工程规模的发展以及软件市场竞争日益激烈,开发商在投入生产时越来越要求生产周期短,生产效率高。因此作为生产线中的一员,开发者需要较强的生产力,此外,更现实的是,开发者需要一款强有力的辅助理解框架,提高开发效率的工具。 在理解和开发项目过程中,要求开发者能掌握住项目的核心模块,深入了解自己负责模块的同时,也要对其他模块有足够的认识,这样才能保证开发出有质量的代码。与以往不同的是,伴随着工程进度,文档,类图都要同步更新,在这过程中,会耗
16、费一定的人力以及资源,提高了生产成本。 使生产商能集中精力于产品问题上,能把资金运用到项目更关键的地方;使用开发人员提高生产效率。本系统提供的类图搜索以及类图特征提取能切实的解决用户的需求。使用户能更快地解决问题,提高生产力。 参考文献 [1] 刘超,李健,沈海华. 面向对象程序可视化类图的逆向自动生成 [2] 不详. Action Script 维基百科 [3] 不详. ECMAScript 维基百科 [4] 欧洲计算机制造商协会. ECMA-262 5th December 2009 [5] Mark de Beng等著. 《计算几何 算法与应用》第三版 清华大学出版社 20
17、08 [6] 谭云杰 著. 《大象:Thingking in UML》第一版 中国水利水电出版社 2009 [7] Erich Gamma 等著. 《设计模式》第一版 机械工业出版社 2007 [8] Douglas B.West 著. 《图论导引》第一版 机械工业出版社 2006 [9] Joshua Noble 著.《Flex3 Cookbook中文版》第一版 电子工业出版社 2009 [10] 严蔚敏 著. 《数据结构》第一版 清华大学出版社 2009 [11] Frederick P.Brooks 等著. 《人月神话》第一版 2007 [12] Steve McConne
18、ll 著. 《代码大全》第二版 2006 [13] Angeline, P.J. The Effects of Noise on Self-Adaptive Evolutionary Optimization. In[125],pp.433-439 1996 [14]Grefenstette,J.J. Incorporating Problem Specific Knowledge into Genetc Algorithm.In[68], pp.42-60 1987 [15]Greene, F. A Method for Utilizing Diploid and Dominance
19、in Genetic Search.In[185],pp.439-444 1994 致谢 在广州大学四年的大学学习很快就要结束了,非常怀念和同学们共同学习的时光。此次毕业设计的顺利完成,特别需要感谢 老师提供了这么好的一次机会,并且一直以来不辞辛劳的指导我们。在我们做设计过程中,给了我们很多建议和鼓励。 感谢大学里的各位老师,你们的辛勤教学,再一次充实了我。 感谢 项目组,提供了这个机会让我参与这个项目开发。在和前辈的交流中学习到有效地开发方法,同时也进一步锻炼了自己的算法设计能力。 最后,感谢我的家人在我漫漫求学之路上对我的理解和支持。谢谢所有关心、支持我的师长、亲友们。 第 - 11 - 页 共 11 页






