已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文)中期报告论文题目:UML 活动图模型中错误的定位工具专 业:本 科 生:学 号:指导教师:北京航空航天大学计算机学院2013 年 4 月 18 日学士学位论文中期报告北京航空航天大学计算机学院 目录1 题目背景与意义 .11.1 课题来源 .11.2 选题的背景与意义 .12 研究内容与解决方案 .22.1 研究目标 .22.2 研究内容 .22.2.1UML 活动图的处理 .22.2.2 错误定位的算法 .33 工作进展 .33.1 解析 XMI 文件的工作进展 .33.2 解析活动图元素的工作进展 .43.3 语义错误定位算法的工作进展 .54 下一步计划 .65 参考文献 .6学士学位论文中期报告北京航空航天大学计算机学院 01 题目背景与意义1.1 课题来源课题来源于实验室在软件的自动化调试方面的科学研究。1.2 选题的背景与意义众所周知,软件工程主要包括了需求获取、项目策划、建模分析设计、编码、测试以及部署交付等过程。研究成果表明,70%的错误是在软件工程生命周期中的早期被引入(即在模型设计中引入);而错误中的80%只有到了系统开发后期的测试阶段之后才被发现,而错误的修改成本大大增加。惠普、IBM、以及其他组织的研究人员发现,在构建软件模型阶段清除一个错误,其成本仅仅是在开发过程的最后阶段做同样事情的十分之一到百分之一12。因此针对于设计模型的错误检查研究,有着非常重要的意义,可以大大降低错误检查的成本,有效保障软件质量。随着各种系统和软件的规模与复杂度增加,模型驱动技术被广泛的应用于系统的构建、静态和动态行为刻画与分析等方面,模型作为对系统行为的刻画发挥着越来越重要的作用。统一建模语言(UML)作为一种描述能力强大、涵义直观且被工业界广泛使用的可视化建模语言,提供了多种图形元素,从静态结构和动态行为等多角度及不同层次刻画系统特征和运行环境3。活动图是UML2.0中动态行为建模中的重要模型之一,可以对系统功能过程实现进行刻画,是一种流程刻画的图形建模语言,它结合了Jim Odell 的事件图、SDL(规约和描述语言)状态建模技术、工作流建模以及Petri网等。活动图的应用领域广泛,且可以对于不同层次的过程模型进行刻画,包括对于工作流建模、执行算法建模以及代码层次模型等4。学士学位论文中期报告北京航空航天大学计算机学院 1随着活动图在系统建模中的应用越来越多,活动图模型的正确性检测与错误定位也为复杂系统的错误检查和定位提供了一种方式,即利用活动图作为系统功能的过程模型,结合实际观测或者需求期望来判定该模型是否存在错误,如果存在错误,并进一步自动化进行错误定位。选题具有一定的意义。如果能在建模阶段就自动化的查找包括语法和语义的错误,那么我们就可以大量的减少在后期编程阶段或者测试阶段再次发现错误所需要的工作量并减轻修改这些 bug 所需要的精力财力物力。2 研究内容与解决方案2.1 研究目标众所周知,现在有很多的错误自动检测系统,但是对于错误的定位方面仍然不是很好。我们的主要研究目标是在软件工程的建模阶段能够自动化的发现并定位出模型中所存在的错误,这样我们就能更多的减少测试阶段发现的错误数量,并进一步减少改正错误时所需要花费的代价。而随着面向对象编程的越来越广泛的应用和推广,UML 建模语言也在众多领域有广泛的使用,而这门语言本身也是一种描述能力强、涵义直观的可视化建模语言。因此我们的选题主要是针对于 UML 活动图,通过对活动图的解析、对其中元素和对象的处理,能够自动的检测并定位其中的语义错误以及产生错误的原因,从而在建模阶段就能发现更多的错误,减少后期测试时发现并改正错误的代价。2.2 研究内容2.2.1UML 活动图的处理UML 活动图中有许多的元素和对象包括了:活动、状态、转移(动作流) 、分支与合并、分叉与汇合以及泳道等等。在这里我们主要讨论的是比较简单的学士学位论文中期报告北京航空航天大学计算机学院 2活动图(只含有活动、状态、转移、分支与合并) 。接下来需要研究的是怎样读入一个 UML 文件,并怎么样对这个文件进行操作,读取出其中的元素和对象,供下一步的使用。2.2.2 错误定位的算法如果我们要在一个 UML 活动图中进行错误的定位,那么就必须要有一个高效的错误定位算法。目前我们已经有了一个形式化错误定位算法,但是这个算法的提出是针对于所 C-kernel 语言,它是 C 语言的一个子集,这一语言所有变量和常量都是整型的。而我们的研究的对象是 UML 活动图,这其中有很多不同之处,那么我们就需要对读取出来的 UML 活动图元素对象以及错误定位算法进行进一步的修改和转化,从而能够使我们的研究对象适应这个成型的算法。3 工作进展3.1 解析 XMI 文件的工作进展对于 UML 活动图的读取,我们可以使用 starUML 的 export 功能将活动图导出成 XMI 格式。然而 XMI 的优点是使用扩展标记语言(XML) ,为程序员和其它用户提供元数据信息交换的标准方法。XMI 的目的在于帮助使用 UML以及不同语言和开发工具的程序员彼此交换数据模型。XMI 也可用于交换数据仓库信息。正如我们都知道的,XML 格式的文件中,定义了很有规律的标签,我们可以用高级程序语言(如 C+)对 XML 文件进行操作。目前,已经完成了 XMI 文件的解析工作。这一部分的工作我们主要是使用了网络上开源的基于 C+语言的 XML 文件解析器 tinyXML。调用其中的API,我完成了 XMI 文件的解析,对于 UML 活动图生成的 XMI 文件,然后将读取出来的数据存入我们自定义的数据结构 Graph 之中。虽然整个 UML 活动学士学位论文中期报告北京航空航天大学计算机学院 3图是一个顺序执行的过程,但是我们把它抽象成一个图,我们利用这个图的邻接矩阵来对它进行解析,判断是否存在环路也就是 while 循环等等,并为下一步对它进行解析生成一棵抽象语法树做准备工作。它的解析过程大概是:首先得到操作 XML 文件的句柄,然后获取第一个 element 节点,循环调用FirstChildElement()函数来获得子节点,调用 Attribute()来获取属性的值,接着保存到我们的自定义结构当中。我们解析 XMI 文件的顺序如下:图表 3- 1 XMI 文件标签的解析顺序学士学位论文中期报告北京航空航天大学计算机学院 43.2 解析活动图元素的工作进展一张 UML 活动图类似于一个顺序执行的程序,其中也有各种的声明语句、赋值语句等等,它们的各种结构也可以理解为高级程序设计语言程序中的 if 语句和 while 语句。因为其中包含了循环语句,因此我把它理解为一张图,对这个图的近似的邻接矩阵进行操作,从而解析出其中存在的各种结构。图中的每一个节点使用我们定义的类 GraphPoint,其中包含了当前节点的名字、操作、种类、ID 等等,它的一个二维数组 Graph 就是我们操作对象。我们用 Graphij的out 属性来判断当前 i 节点到 j 节点是否有边,也就是是否可以从 i 节点执行到j 节点。每个节点的属性 type 就是用来表示当前的节点的种类,它包括了:活动、选择、转移、起始节点、终结节点,方便我们的操作。首先,我们先用深度优先搜索来遍历整个图,判断当前的活动图中是否存在一个“环路”也就是我们说的 while 循环语句,接着我们从初始节点(initial )一步步执行到终结节点(final ) ,将整个活动图解析一遍。这个解析的过程类似于我们的普通的编译程序,其实我们也可以把它看成是一个编译解析的过程,只不过我们最后不需要执行这个程序,只需要将它生成为一个链表形式的中间结构 FlowNode 作为我们的错误定位算法的输入。整个解析的过程也包括了词法分析、语法分析和语义分析,语义分析的时候生成中间形式,接着把这个中间结构输入到错误定位算法之中,进行下一步的错误定位。3.3 语义错误定位算法的工作进展选题的错误定位选择函数内调试形式化的错误定位算法56,它在 UML活动图中应用的基本思路是:当活动图测试出现了一个失败的测试用例时,根据用户预期的程序输入和输出,从活动图中找出与用户预期矛盾的极小片段,比如:几个活动和转移流组成的一个片段。若此片段仍然较大,则通过不断的与用户交互,让用户标记其中正确的活动、转移,或者让用户进一步给出片段中变量在某些状态下的预期值,利用这些新的信息缩小片段的范围,直到最终学士学位论文中期报告北京航空航天大学计算机学院 5定位到活动图中的一个错误。这一部分的工作基本上已经接近了尾声。目前,实验室已经完成了相关部分的一定的工作,我在已有的部分上进行了修改和进一步的改进,可以说已经基本上实现了基于 UML 活动图的函数内调试形式化的错误定位算法。4 下一步计划日期 计划安排4.25 5.7 进行系统初步的整合5.8 5.12 进行系统的界面的设计和编码5.13 5.20 系统的测试和各个部分的优化5.21 5.31 撰写毕业论文,准备毕设答辩5 参考文献1 Roger S.Pressman. Software Engineering A Practitioners Approach. China Machine Press, 2007.2 D Galin. Software Quality Assurance: From Theory to Implementation. Pearson/ Addson-Wesley, 2004.3 C Lange, M Chaudron, J Muskens. In practice: UML software architecture and design description.Sof
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目赶工费用申请报告模板及范例
- 高校课堂互动教学技术应用指南
- 创业企业市场推广方案与预算编制
- 江淮十校2026届高三语文第二次联考作文题目解析及范文:普通人的温暖与力量
- 小学生美术课程活动方案设计
- 预制活动板房设计与搭建方案
- 2025年煤矿特种作业人员安全培训试卷及答案:防窒息安全技能
- 2025年矿井应急疏散与撤离培训试卷及答案
- 2025年煤矿班组长安全培训试卷及答案(安全操作规程)
- 2025年煤矿新员工三级安全入门培训试卷及答案
- 2026年建设工程造价案例分析(交通运输工程)综合考试题
- 主题班会活动方案设计与实施步骤
- 2025年南昌市消防救援支队水上大队招聘勤务及宣传勤务文员3人笔试考试参考试题及答案解析
- 2025年中国新能源公交车发展现状与市场前景分析
- 2025云南大理州建设投资(集团)有限公司招聘专业技术人员19人笔试历年典型考点题库附带答案详解试卷2套
- 2025年“一带一路”人工智能应用场景案例集-上海人工智能研究院
- AxureRP9互联网产品原型设计课件全套第1-12章了解互联网产品原型设计-设计制App原型
- 2026莱商银行校园招聘笔试考试参考题库附答案解析
- 2025辽宁大连庄河市招录社区工作人员62人考试笔试备考试题及答案解析
- 煤矿重大灾害治理顶层设计方案
- 内蒙古乌兰察布市基层诊所医疗机构卫生院社区卫生服务中心村卫生室地址信息
评论
0/150
提交评论