一、一种基于Java程序分层模型的方法内切片生成算法(论文文献综述)
孙芸[1](2020)在《基于Web的多孔结构3D打印路径规划》文中提出随着大数据时代的到来,越来越多的应用都朝着数据化的方向发展,用户对不同应用的使用需求正发生变化,逐渐从操作复杂的后端环境转移到简便的Web前端浏览器中。与此同时,3D打印技术作为当今的研究热点之一,其在Web端的应用也成为了众多学者的重要议题。随着3D打印技术的不断发展,人们对相应产品的制造方式以及制造需求发生变化,而轻量化的多孔结构模型因具有优良的物理特性能满足用户日益变化的产品需求。为了实现3D打印应用的简化,同时满足产品高效高质量的打印,本文对Web端的3D打印技术中多孔结构模型的分层和填充处理过程展开了深入研究。主要研究内容及相关成果如下:(1)以谷歌浏览器为实验平台,利用WebGL实现了多孔结构模型的在线可视化绘制及显示。(2)采用一种基于Web环境的直接切片算法。该方法首先建立由Web浏览器导入的模型的几何拓扑关系,经过分层切片确定每一切片层的截面轮廓。该方法不仅能快速处理Web端数据量大的几何模型,还能避免构成错误的截面轮廓关系。(3)基于Web环境进行截面轮廓填充处理时,提出一种判断扫描轨迹环偏置极限的质心分割法。该方法将轨迹环质心作为分割基点,拆分轨迹环并单独进行偏置极限判断。该方法能够准确地判断不同类型轨迹环的偏置极限。(4)提出偏置线与费马螺旋线混合填充的方法。该方法将可螺旋的偏置线归类为轨迹簇,通过费马螺旋连接形成费马螺旋线,由此实现偏置线与费马螺旋线的混合填充。该方法充分利用了偏置线与费马螺旋线的优点,实现多孔结构模型的在线填充处理操作。(5)为实现填充路径的整体连续性,构建费马螺旋轨迹环树,并连接各树节点对应轨迹线,同时,提出逐点偏移法处理连接过程中的非传统自相交。该方法通过微调起止点进行再连接,方法具有较高的算法稳定性。(6)结合本文方法,设计搭建了一个基于Web浏览器页面的3D打印路径规划应用平台。该平台不仅能在浏览器中实时显示3D模型,还允许用户按照自身需求选择不同的扫描线用于该模型的3D打印填充,此外,该平台还集成了一些常用的模型变换功能以及人机交互功能,主要包括:贴图、材质替换、旋转、缩放、菜单栏交互。
王桐[2](2019)在《软件架构可持续演进性评估技术研究》文中指出为了保障软件的生命力和竞争力,软件架构演进贯穿着软件的整个生命周期。开发人员通过软件架构演进实现新功能增加、故障修复、性能提高等目的。但随着软件规模的增加和软件架构复杂度的上升,软件架构的演进难度逐步增加。为了顺利达成架构演进需求,如何保障软件架构具有可持续演进性成为了一个至关重要的问题。软件架构可演进性评估是有效判断当前软件架构是否具备可持续演进性的一种方法。为了有效的实施软件架构可演进性评估,通常需要完成如下三个步骤:1)获得有效的软件架构作为评估过程的输入;2)建立软件架构可演进性评估模型和评估方法;3)实施评估并检验评估结果的有效性。为此,评估者需要关注软件架构如何获取、软件架构可持续演进性如何评估、基于评估结果如何定位架构腐蚀原因、以及基于可持续演进性和架构腐蚀评估结果如何重构软件架构四个方面的研究,这样可以实现从初始架构开始,通过演进性评估和架构重构,以及再评估、再重构的软件架构持续演进过程。但现实情况是,这四个方面的研究还存在以下几个问题:(1)在获取有效软件架构方面,现有方法主要基于源代码恢复软件架构,但单一数据源难以保障获得的软件架构的精确性;并且当恢复大型系统的软件架构时,恢复效率较低。(2)在架构可演进性评估方面,现有方法主要采用的是定性的评估方法,这种评估方法取决于评估者是否有丰富经验,并且评估过程需要人工干涉,无法做到实时、自动化、客观的评估;另外,现有的可演进性评估主要是评估软件架构的演进能力,无法对软件架构演进效果进行评估。(3)在架构腐蚀评估方面,一方面,现有的细粒度变更检测方法不能很好地支持版本间的变更检测,所以也不能很好地分析版本间的变更对架构腐蚀的影响;另一方面,架构腐蚀的根本原因在于代码腐蚀,而目前软件架构腐蚀评估方法的研究对象是软件较高层次的抽象,没能很好地把高层次抽象和代码关联起来,导致提供的架构腐蚀原因的分析结果只能是粗粒度的。(4)在架构重构方面,现有的软件架构重构方法没有考虑架构重构前后的一致性问题,导致的结果是:虽然重构过程不错,但重构效果难以保障。为了解决上述问题,本文从架构恢复、架构可演进性评估、架构腐蚀评估和架构重构四个方面对软件架构可持续演进性评估技术展开研究。主要内容与贡献如下:(1)针对所恢复的架构准确性低的问题,本文从源代码和目录中提取信息,获取更多的架构信息,实验结果表明,本文方法提高了所恢复的架构的准确性;针对大规模程序的架构恢复效率低的问题,本文基于依赖结构和依赖类型对文件依赖图预处理,降低所需要聚类的对象的数量,实验结果表明,本文方法提高了架构恢复效率。(2)针对定性评估方无法保障评估结果客观性的问题,本文提出了基于架构内部属性评估架构可演进性,并实现自动化评估;针对缺少架构演进效果评估的问题,本文提出基于架构演进原则达成性度量架构的演进效果评估方法,并基于评估结果和演进日志对架构持续演进提出具有针对性的演进建议。(3)针对当前方法不支持版本间变更检测的问题,本文提出了基于多层次程序分析树的版本间变更检测方法,实验结果表明,该检测方法具有较高的查全率和查准率;针对目前架构腐蚀评估方法的评估结果粒度较粗的问题,本文采用多层次变更检测方法,逐层定位架构腐蚀原因,实现基于语句变更分析架构腐蚀;针对大型程序变更条目较多不具有全部修复的可行性问题,本文构建架构腐蚀修复的成本效益模型,并提供各个腐蚀点的修复优先级。(4)针对源代码和架构间一致性难以保障的问题,本文提出了基于源代码变更的架构协同演进方法和基于架构变更的源代码协同演进方法,实验结果表明,这两个方法能有效的保障源代码和架构之间的一致性。
刘吉[3](2019)在《自动化增材制造路径规划与算法研究》文中研究表明机器人丝材电弧增材制造(WAAM)是指通过增加材料层而不是常规减材制造技术,通过3D CAD模型沉积材料层来构建零件。但现在机器人电弧增材制造软件多依赖于在现有软件二次开发,本研究通过java语言直接开发一种丝材电弧焊接增材制造软件,实现通过从STL(stereolithography,光固化立体造型术)模型输入到直接生成部件的自动化电弧增材制造。机器人自动化增材制造的工艺规划中的主要步骤包括stl模型切片生成2.5D层,为这些层生成沉积路径,确定与沉积路径相关的焊接参数(送丝速度、行走速度和干伸长等)和对工件进行后处理加工。具体步骤如下:通过CAD软件建立三维实体模型,选择合适的角度和步长输出STL模型,通过切片程序沿着增材方向被切成一组2.5D层。现有切片算法主要包括等厚切片、自适应切片和多方向切片算法,切片完成后通过路径规划程序计算每层沉积路径,由于基于电弧焊接的丝材增材制造系统比基于粉末的增材制造系统产生大得多的沉积物,因此沉积路径显着地受构件几何复杂性和所选择的材料的影响。开发的基于Voronoi图的中轴转换策略可以产生无空隙沉积路径,解决了复杂构件沉积问题。通过人工神经网络模型建立了焊接模型数据库,为焊接控制提供数据,根据期望路径高度和宽度选择相关联的焊接参数,确保路径无缝隙沉积。本研究采用不锈钢等材料的电弧焊接工艺建立了人工神经网络单道模型,并通过实验确定了一个最佳的焊接参数用于通用的增材制造过程。将人工神经网络模型和多焊道重叠模型都集成到路径规划方法中,允许对应于所生成的偏移路径自动匹配最佳焊接参数。最后,通过机器人进行一系列后处理加工操作加工沉积构件以产生具有所需尺寸公差的成品部件。加工路径可以通过将沉积路径偏移来确定并可以在沉积一定高度同时进行后处理加工,避免了构件重新固定,简化了后处理加工过程。
陈霁辰[4](2017)在《Java程序切片及其在代码结构恢复中的应用》文中认为随着计算机软件复杂性的增加,出现了大量结构复杂的遗产软件。开发和维护人员意识到理解软件的总体架构设计与相关规格说明正变得日益重要。在此背景下,深入研究和理解软件代码结构将会成为提高软件生产率、解决软件后期维护等一系列问题最为有效的途径之一。通过对软件代码结构进行恢复,可以从复杂的大规模或遗留系统中抽取出相关构件,帮助开发及维护人员高效的理解和维护软件系统。程序切片技术作为逆向工程的一项重要技术,通过对源代码的分析,抽取系统的主要部分,隐藏系统细节,提取程序的体系结构信息,从比源码更高的抽象层次上对系统进行描述。切片技术能够将程序进行分解,在恢复过程中根据不同的关注点制定切片准则,运行切片算法得到源程序的子集,从而能够更好的理解大规模系统,十分适合作为实现代码结构恢复的途径。本文针对Java语言研究了面向对象程序切片的相关理论与实践,对已有的面向对象系统依赖图进行了改进和扩充,提出了一种基于统一对象扩展结构的系统依赖图改进构造方法;通过解析源程序获得构造过程所需的信息,在已有的构造方法基础上对对象实现统一的扩展,并利用该扩展结构细化了节点间的数据依赖关系;同时结合JDK1.7,在统一的对象扩展结构的基础上,为一些新的Java语法特性提供了表示方案,改善了依赖图和切片的准确性。在对基于程序切片的代码结构恢复技术进行研究时,本文利用最小切片集覆盖特定功能模块的方法来恢复对应模块的代码结构,同时提出了一种基于聚类成本的层次聚类方法优化基于切片的聚类结果,从而获得更好的代码结构恢复效果。基于开源程序的实验结果表明,本文的依赖图构造方法能够得到更小更精确的切片,并能够适应较大规模的Java程序;同时,基于切片的代码结构恢复结果也能够实现对某一功能点关键方法的聚类,恢复出对应的设计框架,为开发和维护人员理解和维护代码提供帮助。
黄毅[5](2009)在《自动故障受理软件的设计与实现》文中研究指明企业信息化建设的推广和普及使软件的重要性在企业生产中越来越突出,一旦系统发生故障且缺少有效的保障措施,将会引发企业运行瘫痪,造成不可估量的损失。因此,软件故障维护已成为软件生存期中费用最高、难度最大的一个阶段。现有的运维系统虽然有技术专家的支持,但是在故障受理和分析时仍然需要完全依靠人力资源,费时费力且准确性不高。为了改善这一情况,本文引入了自动故障受理的概念,提出用计算机自动受理故障分析故障的解决方案。自动故障受理是相对于现有的人工受理方式而言的。当前不论是通过何种形式申告故障用户都需要与客服人员即时交流,然后由维护人员承担分析故障与排除故障的工作。而故障自动受理则可以给用户提供一个完全自助的平台代替客服的工作,此外,该平台还能通过智能地分析故障涉及的具体程序来对故障进行诊断,为维护人员排除故障大规模缩小范围,节省时间,提高准确性。软件故障诊断需要首先对程序有充分的理解,程序依赖性分析就是分析程序的一种重要方法。它通过构造系统依赖图分析程序语句之间的数据依赖关系与控制依赖关系,从而可以使得维护人员可以从一个更高的角度来观察整个软件系统,更好的把握系统的特性与行为。同时,程序切片技术可以在程序依赖性分析的基础上找出对程序某个语句的某个变量有影响的所有语句,这样就能缩小故障查找范围,帮助定位故障。本文首先介绍了IT服务管理(ITSM)理论以及当前国内的主要客户服务系统中故障受理部分的运作情况和存在的问题,结合ITSM的思想提出一种帮助台实施策略,这是本文的研究背景和研究对象。然后介绍了财务稽核系统的相关背景、结构、功能、运维流程以及常见故障的分类总结,这是本文研究成果的应用场景。接着介绍了程序理解领域的相关理论和当前的研究情况,包括程序依赖图以及各种程序切片算法的研究比较,这是本文研究成果的理论基础。然后结合Web应用的特点以及面向对象程序的结构特征从不同粒度上提出了独特的web软件分析策略和实施步骤。在粗粒度上进行页面部署分析,细粒度上则设计代码定位算法从已有的相关可疑文件中分析故障最终来源。这是本文的重点论述内容和理论研究成果。最后本文针对财务稽核系统这一应用场景进行具体设计和实施,这是本文研究成果的应用。自动故障受理软件以某运营商内部的财务稽核系统的使用者为目标用户群,针对该系统的常见故障提供故障受理平台并对故障进行诊断分析和定位。经试验验证,自动受理的故障与人工受理的故障生成的工单内容完全一致,派发机制和结果也相同,它可以完全替代坐席和工单分派员的工作,大大减少了人力成本。对于故障诊断结果进行验证证明,数据类错误、手机与卡类错误、流程类错误、填报类错误能完全定位。用户误操作类错误和系统类错误由于都需要预先根据经验总结出可能的问题,准确率取决于个人经验,本文测试的故障诊断结果完全准确,但诊断范围有所扩大。以上类别故障根据维护经验,基本就是平时能够遇到的所有问题,对于其它不属于以上范畴的故障,本软件能保证在粗诊断粒度上准确定位相关文件。试验结果表明,该软件可以完全替代坐席和工单分派员的工作,根据用户的申告信息准确地进行故障诊断并给出可疑代码集,具有先进性和可用性,是一种行之有效的解决方法。
战晓娟[6](2008)在《基于混淆和水印的Java字节码安全技术的研究》文中指出Java程序由于平台无关性得以在Internet上迅速发布,但同时Java程序也面临着两个严重的安全问题:第一,侵权使用。Java编译器将每一个类编译成一个单独的class文件,这一特点让侵权使用Java class文件变的容易;第二,逆向工程。目前Java字节码的反编译技术已经很成熟,出现了许多Java反编译工具,这些工具能很好的把Java字节码反编译成Java源代码。为了保护Java字节码的安全,本文提出了一种新的保护模型:利用代码混淆和软件水印技术对Java字节码实施双重保护,从而保护了Java程序的知识产权。混淆Java字节码是在保持程序语义的前提下隐藏程序的内部信息,使得Java程序员很难读懂反编译后的Java源代码甚至于不能被正确的重新编译更甚者不能反编译。在Java字节码中嵌入水印就是将含有标识意义的信息嵌入到Java class文件中。也就是说利用混淆技术来阻止Java字节码的逆向工程,利用软件水印为Java class文件提供版权保护。研究了现有的代码混淆技术,在此基础上设计了词法转换算法、类的假重构算法,改进和完善了类拆分算法,总结了类型隐藏混淆的本质和与接口回调技术的区别,分析、细节化了三种能使反编译失败的控制流混淆算法,并针对程序切片严重威胁控制流混淆的问题找出了两种抵抗程序切片的混淆策略。研究了现有的一种针对Java字节码的水印算法。通过对水印算法的改进,提高了水印算法的鲁棒性、透明性。利用研究成果,设计并实现了名为JOCOW(Java Tool which combines obfuscation and Watermark technology)的系统,用户可使用该系统对Java class文件进行双重保护。保证Java字节码的绝对安全是不可能的,但是本文的研究可以给Java字节码提供版权保护和使Java字节码逆向工程价值减小。
许帅[7](2007)在《面向对象软件的特征定位技术研究》文中认为随着信息社会对软件的依赖与日俱增,软件系统的维护工作越来越重要。程序理解是软件维护过程中的关键活动,维护人员通过分析和理解目标系统的程序获取所需的信息和知识,从而完成相应的维护任务。然而,程序理解活动具有较高难度,特别是对于大型复杂系统,常常由于无法迅速准确地理解目标系统的程序而导致维护的低效甚至失败。根据需要维护的具体软件任务或功能(软件特征)进行有针对性的理解能够有效提高程序理解的效率。面向特征的程序理解需要进行特征定位,找到实现具体特征的代码。本文针对面向对象软件系统,提出了一个较为系统、全面的特征定位框架,并对其中的关键技术进行了深入研究。主要研究内容包括:对现有的特征定位方法进行研究,主要包括基于程序静态结构的特征定位方法和基于程序动态剖面的特征定位方法这两大类型。为了更为准确地获取特征与代码实体间的追踪关系,针对面向对象软件,本文提出一种综合的特征定位方法(Integrated Approach to Feature Location in Object-Oriented program,IAFLO)。该方法利用软件搜索技术为与特征相关的代码类建立初始追踪关系;然后以这些类作为种子构造面向对象程序的关注图,建立类、属性、方法之间的调用、读、写、创建等关系,根据关注图可以更加准确有效的获取与特征相关的属性和方法。关注图只能够定位到类中的方法和属性层次,这时如果还需要继续追踪方法中的具体代码,IAFLO方法采用面向对象的切片方法,以关注图中找到的属性和相关语句作为切片准则,计算程序切片得到最终对特征实现具有直接影响的语句代码。该方法能够快速、准确地从面向对象软件的外部特征追踪到具体的相关代码实现,并且具有较高的自动化程度,从而提高软件维护中程序理解的效率。基于提出的IAFLO方法,设计实现了综合特征定位支持工具原型IFLST(Integrated Feature Location Supporting Tool),对面向对象程序的特征定位和程序理解提供有效的支持。
余斌[8](2006)在《Java程序分层及概率依赖性分析》文中指出程序依赖性分析是软件工程领域中一项重要而基础的活动,它是对已有程序分析与理解的基础,并在程序切片、逆向工程、软件测试以及软件重构等软件工程各个领域都有着重要的意义。Java语言由于其优越的跨平台性,在异构网络系统中使用愈加频繁。随着软件产品的急剧增多,越来越多的遗产代码需要进行分析、理解、复用,对Java程序进行依赖性分析的必要性也与日俱增。由于Java程序设计语言完全面向对象的特性,现有的依赖性方法已不能完全满足其分析要求。本文在回顾传统依赖性分析方法基础之上,详细阐述了一种分层次的粗粒度依赖性分析方法,按照自顶向下,逐步求精的原则依次分析Java程序在包级别、类级别以及方法级别上的依赖关系,并在语句级别的分析中,按照按需细化的原则,只对所关心的语句进行依赖性分析,降低了系统依赖性分析的代价。在语句级别的依赖性分析中,本文还进一步讨论了程序执行期间语句执行的概率信息,并提出了考虑语句执行概率的依赖性分析方法。分别分析程序中不同的控制结构与方法调用方式,对其后续程序语句的执行概率的影响,从而更加准确地描述程序在执行期间的依赖关系。本文介绍了分层次及概率依赖性分析在软件重构、软件度量以及软件测试等方面的一些应用。通过应用依赖性分析技术于软件重构中,对软件重构的指标进行量化度量,并提出了基于模糊聚类技术的软件重构方法,可以对软件重构活动进行相对客观的指导;基于对类中方法数目与它们之间的概率依赖信息综合考虑,本文对类内聚度缺乏度量提出一种改进,进一步提高类内聚度缺乏度量的准确性。最后,在进行理论分析的基础上,本文给出了实现以上研究内容的原型系统的实现细节,并展望了未来的工作方向。
缪力[9](2006)在《依赖性分析及其在软件测试中的应用》文中研究说明依赖性分析和程序切片,是一种程序分解技术,在软件工程的诸多领域都有广泛应用。现代软件规模的巨大和复杂使得设计和测试这些软件极其困难,其中软件测试通常要占到开发成本的50%甚至更多,提高软件测试效率,对于降低软件开发成本,加快软件开发周期有直接的作用。由于现代软件系统的巨大规模,真正的实用的测试方法总是根据情况和要求,有侧重点的进行,这就使得依赖性分析在软件测试过程中有着重要意义。平衡软件测试的效率和效果是当前软件测试具有理论意义和实际价值的热点问题。程序切片和依赖性分析是重要的程序分解技术,将依赖性分析应用于软件测试可以使得软件测试更有目的性和针对性,在有条件的保证软件测试效果的前提下,有效地提高软件测试效率。基于对依赖性分析在软件测试中的应用能力分析,本文进行了以下一些研究工作:软件测试数据自动生成是软件测试的一个重要研究领域,其中数组变量和指针变量导致的变量不确定问题是测试数据自动生成中的一个困难问题,本文通过理论分析得出非定态路径约束解空间可进一步划分为多个子空间的结论。基于分析结论,利用一种特殊的程序切片技术,本文给出一个将非定态路径的测试转换为定态路径测试的算法。通过分析EFSM不同测试序列的依赖关系模式(切片),可以有效的约减测试集,提高测试效率。由于EFSM依赖关系的特殊性,对于EFSM依赖图,现有的基于标志已访问节点的遍历算法不适于解决该问题。本文对EFSM的依赖关系的传递性进行了分析,并给出一个基于变迁的EFSM后向切片算法。修改影响分析本质上也属于约减测试用例的范畴,通过分析修改的软件部分与软件其他部分的依赖性关系,确定需要重新测试的部分,从而避免了对整个软件的完全重新测试,提高了测试效率。本文针对面向对象程序,提出类成员后向切片方法以找出所有被修改所影响的类成员。该方法比类防火墙技术的精度要高,复杂度低于语句级粒度分析方法。现代软件中,并发程序设计得到越来越普遍的应用。然而,并发程序的依赖性分析有着其特殊的复杂性,在这方面,本文进行的研究工作有:为了使程序切片技术能应用于更广泛的并发程序,我们在现有算法的基础上,并进一步考虑到互斥体间可能存在的同时有定义和引用关系的情况,将现有的并发程序切片算法推广到可以计算有互斥机制的并发程序的程序切片,得到了更为精确的切片算法。
王鹏飞[10](2005)在《包含异常处理的Java程序切片研究》文中研究指明程序切片是一种分析和理解程序的技术,通过分析程序语句之间的依赖性关系自动分解源程序。程序切片技术在软件工程领域有广泛的应用,例如程序理解、调试、维护、测试以及反向工程等。Java系统依赖图(JSDG)可以用来表示Java程序,在Java系统依赖图中,结点表示语句或者谓词,边表示控制和数据依赖关系。利用Java系统依赖图,我们可以有效地计算程序切片。 Exception是一类用于错误处理的特殊对象,它在Java方法出错时被创建,并利用try/catch/finally机制抛出、检测和处理异常。当前的程序切片算法都不能正确有效地处理异常结构,因为它们没有或不能正确的考虑异常引入的附加数据和控制依赖关系。 在本文中讨论了异常结构对程序控制依赖和数据依赖的影响,采用了一种新的策略来处理异常结构。新策略将try、catch、finally块视为方法,并将可能抛出异常的调用点视为谓词结点,这样可以表示异常对象附加的数据和控制依赖关系,构造出包含异常处理结构的Java系统依赖图。本文还提出了另外一种方法,为每个调用点增加正常返回结点,对于可能抛出异常的调用点增加异常返回结点;为每个方法增加正常退出结点,对于可能抛出异常的方法增加异常退出结点,并将异常调用的返回结点视为谓词结点,用这种方法构造的系统依赖图更加精确。文章还给出了适合这种系统依赖图构造的一些相关算法。 本文还给出了一种源程序分析框架,利用JavaCC和JTB生成语法分析器和访问器,实现对源程序信息的提取,并定义了一系列层次化的类结构保存源程序信息。这些类结构能够保存源程序的结构信息,包括类之间关系,类与方法之间关系,类与语句之间关系等。 最后,本文还实现了一个Java程序切片原型系统,为Java程序提供了软件分析平台。通过这个平台,我们可以得到类层次图、方法调用图、方法控制流图、方法控制依赖图、方法数据依赖图和程序切片。
二、一种基于Java程序分层模型的方法内切片生成算法(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、一种基于Java程序分层模型的方法内切片生成算法(论文提纲范文)
(1)基于Web的多孔结构3D打印路径规划(论文提纲范文)
摘要 |
abstract |
第1章 绪论 |
1.1 引言 |
1.2 3D打印技术概述 |
1.2.1 3D打印技术成型原理 |
1.2.2 3D打印技术制造工艺 |
1.2.3 3D打印技术相关应用 |
1.3 相关技术的研究现状 |
1.3.1 在线3D模型可视化技术研究现状 |
1.3.2 分层处理技术研究现状 |
1.3.3 填充路径生成技术研究现状 |
1.3.4 多孔结构模型的研究现状 |
1.4 论文选题背景 |
1.5 研究内容及安排 |
第2章 在线3D模型可视化的实现 |
2.1 引言 |
2.2 基于Web GL的在线3D模型可视化 |
2.2.1 WebGL概述 |
2.2.2 WebGL基本工作流程 |
2.3 3D模型的绘制及显示 |
2.3.1 光照处理 |
2.3.2 绘制实体模型 |
2.4 本章小结 |
第3章 多孔结构模型的在线分层算法研究 |
3.1 引言 |
3.2 模型在线分层算法研究 |
3.2.1 在线分层算法的基本过程 |
3.2.2 模型分层的现有算法概述 |
3.3 多孔结构模型在线分层算法实现 |
3.3.1 切平面与三角面片交点求取 |
3.3.2 切平面与对应高度三角面片的求交 |
3.3.3 切片轮廓环方向的判断 |
3.3.4 切片轮廓拓扑关系的建立 |
3.4 在线分层结果的可视化 |
3.5 本章小结 |
第4章 切片层轮廓在线填充算法的研究 |
4.1 引言 |
4.2 在线多孔结构模型扫描路径规划原则 |
4.3 填充扫描方式分类及概述 |
4.3.1 直线扫描法 |
4.3.2 偏置扫描法 |
4.3.3 螺旋扫描法 |
4.3.4 费马螺旋扫描法 |
4.4 基于费马螺线的在线混合填充扫描算法研究 |
4.4.1 在线轮廓偏置算法的实现 |
4.4.2 在线轨迹螺旋算法的实现 |
4.4.3 在线轨迹费马螺旋算法的实现 |
4.5 本章小结 |
第5章 在线3D打印连续路径规划与应用 |
5.1 引言 |
5.2 3D打印连续路径的在线规划 |
5.2.1 费马螺旋轨迹树的构建 |
5.2.2 在线轨迹线间的连续连接 |
5.3 在线路径规划平台的设计与开发 |
5.3.1 设计要求 |
5.3.2 开发环境及工具 |
5.3.3 平台模块功能 |
5.4 本章小结 |
第6章 总结与展望 |
6.1 工作总结 |
6.2 研究展望 |
参考文献 |
致谢 |
个人简历、在学期间发表的学术论文与研究成果 |
(2)软件架构可持续演进性评估技术研究(论文提纲范文)
摘要 |
Abstract |
缩略词表 |
第1章 绪论 |
1.1 研究背景与意义 |
1.2 研究现状 |
1.2.1 研究进展 |
1.2.2 当前研究的不足 |
1.3 研究内容 |
1.4 论文结构 |
第2章 基本知识 |
2.1 软件架构的定义及其组成 |
2.2 软件架构的变更操作 |
2.3 软件架构的内部属性与外部属性 |
2.3.1 软件架构的内部属性 |
2.3.2 软件架构的外部属性 |
第3章 基于多层次信息的软件架构恢复方法 |
3.1 引言 |
3.2 ARMI方法 |
3.2.1 方法流程概述 |
3.2.2 软件内部属性的提取 |
3.2.3 基于依赖的预处理 |
3.2.4 基于距离的聚类 |
3.2.5 软件架构的优化 |
3.3 实验设计与结果分析 |
3.3.1 实验设计 |
3.3.2 实验结果与分析 |
3.4 有效性威胁 |
3.5 相关工作对比 |
3.6 本章小结 |
第4章 基于多种质量属性的架构可持续演进性评估方法 |
4.1 引言 |
4.2 SEMA方法 |
4.2.1 方法流程概述 |
4.2.2 软件架构可演进性评估 |
4.2.3 软件架构演进原则达成性评估 |
4.3 实验设计与结果分析 |
4.3.1 基于架构可演进性的实验设计与结果分析 |
4.3.2 基于架构演进原则达成性的实验设计与结果分析 |
4.4 有效性威胁 |
4.5 相关工作对比 |
4.6 本章小结 |
第5章 基于多层次变更的架构腐蚀评估方法 |
5.1 引言 |
5.2 AESE方法 |
5.2.1 方法流程概述 |
5.2.2 多层次的软件架构变更检测 |
5.2.3 架构腐蚀原因定位 |
5.2.4 架构腐蚀的修复成本收益模型 |
5.3 实验设计与结果分析 |
5.3.1 实验设计 |
5.3.2 实验结果与分析 |
5.4 有效性威胁 |
5.5 相关工作对比 |
5.6 本章小结 |
第6章 基于架构可演进性和架构腐蚀评估的重构方法 |
6.1 引言 |
6.2 AREE方法 |
6.2.1 方法流程概述 |
6.2.2 基于软件架构可持续演进性的重构需求 |
6.2.3 基于架构腐蚀评估的重构方案的制定 |
6.2.4 重构方案的实施 |
6.2.5 源代码与架构一致性驱动的协同演进 |
6.3 实验设计与结果分析 |
6.3.1 实验设计 |
6.3.2 实验结果与分析 |
6.4 有效性威胁 |
6.5 相关工作对比 |
6.6 本章小结 |
第7章 总结与展望 |
7.1 总结 |
7.2 展望 |
致谢 |
参考文献 |
作者简介 |
(3)自动化增材制造路径规划与算法研究(论文提纲范文)
摘要 |
abstract |
第1章 绪论 |
1.1 课题研究背景 |
1.2 电弧增材制造技术研究与应用 |
1.2.1 国内外研究历程 |
1.2.2 丝材电弧增材制造工艺优势 |
1.2.3 丝材电弧增材制造材料优势 |
1.2.4 丝材电弧增材制造能量优势 |
1.3 课题研究内容及意义 |
1.4 自动化增材制造现有挑战 |
1.5 论文研究内容介绍 |
第2章 自动化增材制造总体设计 |
2.1 自动化丝材电弧增材制造要求 |
2.2 自动化丝材电弧增材制造过程 |
2.3 自动化增材制造流程规划 |
2.4 自动化丝材增材制造硬件平台 |
2.5 自动化丝材增材制造软件设计 |
2.6 本章小结 |
第3章 人工神经网络焊道建模 |
3.1 焊道模型回顾 |
3.2 实验装置 |
3.3 实验设计 |
3.3.1 材料选择 |
3.3.2 焊接参数选择 |
3.3.3 焊道测量数据 |
3.4 BP神经网络建立焊道模型 |
3.4.1 BP神经网络简介 |
3.4.2 BP神经网络学习 |
3.4.3 BP神经网络预测 |
3.4.4 BP神经网络参数 |
3.5 BP神经网络的JAVA实现 |
3.5.1 样本数据获取 |
3.5.2 java实现 |
3.5.3 结果分析 |
3.6 仿真结果分析 |
3.6.1 焊接电流对焊道宽度和高度的影响 |
3.6.2 喷嘴高度对焊道宽度和高度的影响 |
3.6.3 焊接速度对焊道宽度和高度的影响 |
3.7 本章小结 |
第4章 CAD模型切片 |
4.1 STL文件格式及读取 |
4.2 等厚模型切片 |
4.3 自适应模型切片 |
4.3.1 等厚切片阶梯效应 |
4.3.2 多边形面积计算 |
4.3.3 切片截面面积计算 |
4.3.4 基于面积差比率的自适应切片 |
4.4 模型切片结果 |
4.5 本章小结 |
第5章 沉积路径规划与后处理加工 |
5.1 现有路径规划方法 |
5.2 丝材电弧增材制造路径规划挑战 |
5.3 中轴路径开发 |
5.3.1 中轴定义 |
5.3.2 中轴计算 |
5.3.3 基于中轴偏移的路径生成 |
5.4 后处理加工 |
5.4.1 顶部区域加工 |
5.4.2 侧面区域加工 |
5.4.3 底部区域加工 |
5.5 机器人代码生成 |
5.6 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的论文和取得的科研成果 |
致谢 |
(4)Java程序切片及其在代码结构恢复中的应用(论文提纲范文)
摘要 |
Abstract |
缩略词表 |
第一章 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 面向对象系统逆向工程 |
1.2.2 切片技术 |
1.2.3 面向对象系统依赖关系分析 |
1.2.4 代码结构恢复技术 |
1.2.5 研究现状分析 |
1.3 论文主要工作 |
1.4 论文章节安排 |
第二章 面向对象Java程序切片 |
2.1 面向对象程序切片相关概念 |
2.1.1 切片准则与切片分类 |
2.1.2 切片计算方法 |
2.2 面向对象Java系统依赖图的构造过程及相关改进 |
2.2.1 过程内依赖分析与过程内依赖图构造 |
2.2.2 过程间依赖分析与方法级依赖图构造 |
2.2.3 系统依赖图构造 |
2.3 基于改进系统依赖图的切片算法 |
2.3.1 后向切片 |
2.3.2 前向切片 |
2.4 本章小结 |
第三章 基于切片结果的代码结构恢复 |
3.1 代码结构恢复背景与理论基础 |
3.1.1 恢复技术背景 |
3.1.2 代码结构恢复策略与流程 |
3.2 基于程序切片的代码结构恢复方法 |
3.2.1 聚类粒度选取 |
3.2.2 切片准则选取与切片集筛选 |
3.2.3 基于聚类成本的聚类计算方法 |
3.3 本章小结 |
第四章 工具设计与实现 |
4.1 JavaSlicer设计与实现 |
4.1.1 功能需求与概要设计 |
4.1.2 功能模块详细设计与实现 |
4.2 CSRTool设计与实现 |
4.2.1 功能需求与概要设计 |
4.2.2 功能模块详细设计与实现 |
4.3 本章小结 |
第五章 实验与分析 |
5.1 实验目的与实验环境 |
5.2 实验案例 |
5.3 实验内容 |
5.3.1 实验一: SDG构造与切片准确性实验 |
5.3.2 实验二: 大规模Java程序SDG构造与切片实验 |
5.3.3 实验三: 代码结构恢复实验与结果评估 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
致谢 |
参考文献 |
作者简介 |
(5)自动故障受理软件的设计与实现(论文提纲范文)
摘要 |
ABSTRACTS |
目录 |
图目录 |
第一章 绪论 |
1.1 课题的研究背景及目的 |
1.2 课题的主要研究工作 |
1.3 论文结构 |
第二章 针对客服体系的ITSM帮助台实施策略 |
2.1 ITIL相关介绍 |
2.2 当前主流客服流程 |
2.2.1 电话呼叫中心 |
2.2.2 在线客服 |
2.3 改进的IT服务管理实施策略 |
2.4 小结 |
第三章 财务稽核系统概述 |
3.1 财务稽核系统背景 |
3.2 财务稽核系统模块结构 |
3.3 财务稽核系统主要功能介绍 |
3.4 财务稽核系统运维流程及常见故障总结 |
2.4.1 系统维护内容 |
2.4.2 系统故障总结 |
3.5 小结 |
第四章 Web软件的自动理解与分析 |
4.1 依赖性分析 |
4.1.1 程序流图 |
4.1.2 控制依赖 |
4.1.3 数据依赖 |
4.1.4 程序依赖图 |
4.1.5 系统依赖图 |
4.2 程序切片 |
4.2.1 切片技术的分类 |
4.2.2 现有切片的不足 |
4.3 WEB软件的程序分析策略 |
4.3.1 Web应用的特点 |
4.3.2 Web应用的粗粒度分析策略 |
4.3.3 Web应用的细粒度分析策略 |
4.4 小结 |
第五章 故障诊断设计 |
5.1 粗诊断过程 |
5.1.1 全局系统依赖图展示 |
5.2 细诊断过程 |
5.2.1 类级依赖图展示 |
5.3 可疑代码定位 |
5.4 故障诊断的结构设计 |
5.4.1 映射分析器 |
5.4.2 文本分析器 |
5.4.3 依赖图产生器 |
5.4.4 路径分析器 |
5.4.5 诊断跟踪器 |
5.5 小结 |
第六章 自动故障受理软件的设计与实现 |
6.1 软件概述 |
6.1.1 软件建设目标与特点 |
6.1.2 软件使用范围及运行环境 |
6.2 软件总体架构及模块结构 |
6.3 详细功能设计 |
6.3.1 具体功能分析 |
6.3.2 主要流程逻辑 |
6.3.3 关键技术与实现难点 |
6.4 数据库设计 |
6.5 实验结果分析与验证 |
6.5.1 数据类故障实验 |
6.5.2 流程类故障实验 |
6.5.3 填报类故障实验 |
6.5.4 实验结果总结 |
6.6 小结 |
第七章 结束语 |
7.1 总结 |
7.2 下一步工作 |
参考文献 |
致谢 |
研究生阶段发表的论文 |
(6)基于混淆和水印的Java字节码安全技术的研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究的背景 |
1.2 混淆技术的研究现状 |
1.3 软件水印技术的研究现状 |
1.4 Java 字节码安全技术的研究现状 |
1.5 研究的设想和预期结果 |
1.6 本文结构及章节安排 |
第二章 Java 字节码 |
2.1 Java 字节码指令 |
2.2 Java 字节码的验证 |
2.3 Java 字节码的反编译 |
2.4 Java class 文件的盗版 |
2.5 一种新的 Java 保护模型 |
本章小结 |
第三章 代码混淆技术 |
3.1 混淆变换的定义 |
3.2 混淆变换的分类 |
3.3 混淆变换的评价 |
3.3.1 力度 |
3.3.2 抵抗力 |
3.3.3 执行代价 |
3.3.4 质量 |
3.4 布局混淆 |
3.5 数据混淆 |
3.5.1 抽象数据类型的混淆 |
3.5.2 简单数据类型的混淆 |
3.6 控制流混淆 |
3.6.1 摧毁基本块混淆 |
3.6.2 取代goto 混淆 |
3.6.3 交叉loop 循换 |
3.7 预防性混淆 |
本章小结 |
第四章 逆向工程技术-程序切片 |
4.1 程序切片的概念 |
4.2 程序切片的分类 |
4.3 Java 程序的依赖 |
4.4 Java 程序切片 |
4.4.1 分层切片 |
4.4.2 方法内切片 |
4.5 程序切片构成的威胁 |
4.6 抵抗程序切片的混淆策略 |
本章小结 |
第五章 水印算法 |
5.1 水印的概述 |
5.1.1 水印的类别 |
5.1.2 水印需要满足的要求 |
5.1.3 静态代码水印遭受的攻击 |
5.2 水印算法描述 |
5.2.1 水印的嵌入 |
5.2.2 水印的提取 |
5.3 水印算法的缺点 |
本章小结 |
第六章 系统设计与实现 |
6.1 JOCOW 的设计 |
6.1.1 JOCOW 用户接口 |
6.1.2 JOCOW 的系统结构 |
6.2 类文件的解析 |
6.2.1 classFile 结构 |
6.2.2 读取类文件 |
6.3 算法实现 |
6.3.1 词法转换算法 |
6.3.2 类拆分算法 |
6.3.3 类型隐藏算法 |
6.3.4 类的假重构算法 |
6.3.5 控制破坏混淆算法 |
6.3.6 嵌入水印算法 |
6.3.7 JOCOW 的实现算法 |
6.4 保护策略的制定 |
本章小结 |
第七章 评价与比较 |
7.1 混淆转换的正确性评价 |
7.2 嵌入水印的正确性评价 |
7.3 混淆转换的质量评价 |
7.4 水印算法的质量评价 |
7.5 Java 保护工具的比较 |
本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的学术论文 |
致谢 |
(7)面向对象软件的特征定位技术研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 课题研究的背景和意义 |
1.2 研究内容和成果 |
1.3 论文结构 |
第二章 软件特征定位技术研究现状 |
2.1 程序理解技术的发展过程 |
2.2 特征定位技术 |
2.3 基于程序静态结构的特征定位技术 |
2.3.1 基于抽象系统依赖图的方法 |
2.3.2 借鉴地图信息可视化技术的方法 |
2.3.3 关注图方法 |
2.3.4 概念分配方法 |
2.4 基于程序动态结构的特征定位技术 |
2.4.1 软件搜索方法 |
2.4.2 基于动态执行切片的方法 |
2.4.3 基于形式化概念分析的方法 |
第三章 面向对象软件的综合特征定位方法IAFLO |
3.1 IAFLO方法的提出 |
3.2 IAFLO方法概要介绍 |
3.3 IAFLO方法的实施过程 |
3.3.1 特征获取阶段 |
3.3.2 类级别定位阶段 |
3.3.3 类级别精化阶段 |
3.3.4 语句级定位阶段 |
3.4 IAFLO方法的小结 |
第四章 IAFLO方法中的关键技术研究 |
4.1 基于软件搜索的类级特征定位 |
4.2 基于关注图理解的方法级特征定位 |
4.2.1 关注图理解技术概述 |
4.2.2 关注图的表示 |
4.2.3 关注图中的方法模型 |
4.2.4 寻找分层切片的准则 |
4.3 基于分层切片的语句级特征定位 |
4.3.1 面向对象分层切片方法 |
4.3.2 分层切片方法思想 |
4.3.3 逐步求精算法 |
4.3.4 分层切片方法模型 |
第五章 面向对象软件特征定位支持工具原型的设计实现 |
5.1 引言 |
5.2 功能需求 |
5.3 体系结构 |
5.4 开发环境介绍 |
5.4.1 Java语言介绍 |
5.4.2 Eclipse与插件开发技术 |
5.5 核心模块介绍 |
5.5.1 软件搜索模块 |
5.5.2 关注图模块 |
5.5.3 分层切片模块 |
5.6 应用实例 |
第六章 结束语 |
6.1 本文工作总结 |
6.2 进一步工作设想 |
致谢 |
参考文献 |
作者在攻读硕士学位期间论文发表情况 |
附录A 应用实例代码 |
(8)Java程序分层及概率依赖性分析(论文提纲范文)
摘要 |
Abstract |
第一章 引言 |
1.1 选题依据 |
1.2 研究历程与现状 |
1.3 研究内容 |
1.4 论文结构 |
第二章 依赖性分析的基础理论 |
2.1 依赖性分析的基本概念 |
2.1.1 程序流图 |
2.1.2 控制依赖 |
2.1.3 数据依赖 |
2.1.4 程序依赖图 |
2.1.5 系统依赖图 |
2.2 程序切片 |
2.2.1 切片技术的分类 |
2.2.2 现有切片的不足 |
2.3 本章小结 |
第三章 Java 分层及概率依赖性分析 |
3.1 面向对象程序依赖性分析 |
3.1.1 程序开发技术发展简介 |
3.1.2 面向对象程序的特点 |
3.1.3 面向对象程序依赖性分析策略 |
3.2 Java 分层依赖性分析 |
3.2.1 层次模型 |
3.2.2 包间依赖性分析 |
3.2.3 类间依赖性分析 |
3.2.4 方法间依赖性分析 |
3.2.5 语句间依赖性分析 |
3.3 Java 概率依赖性分析 |
3.3.1 方法内概率依赖分析 |
3.3.2 方法间概率依赖分析 |
3.3.3 引入依赖 |
3.4 本章小结 |
第四章 分层及概率依赖性分析的应用 |
4.1 软件重构 |
4.2 类内聚度缺乏度量 |
4.3 软件测试与程序理解 |
4.4 本章小结 |
第五章 系统设计与实现 |
5.1 系统设计思想 |
5.2 系统总体结构 |
5.3 系统详细设计 |
5.3.1 主要数据结构 |
5.3.2 依赖性分析算法 |
5.4 本章小结 |
第六章 总结 |
致谢 |
参考文献 |
(9)依赖性分析及其在软件测试中的应用(论文提纲范文)
摘要 |
ABSTRACT |
插图索引 |
第1章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.3 本文的研究内容 |
第2章 依赖性分析和程序切片 |
2.1 引言 |
2.2 数据依赖和控制依赖 |
2.3 流分析和程序切片 |
2.4 依赖图和程序切片 |
2.5 小结 |
第3章 基于依赖性分析对非定态路径的变换 |
3.1 引言 |
3.2 基本概念 |
3.3 非定态路径测试问题的研究 |
3.4 转换算法 |
3.5 举例 |
3.6 小结 |
第4章 基于依赖性分析的回归测试 |
4.1 引言 |
4.2 基本概念 |
4.3 调用点分离类型分析(STA) |
4.4 构造面向对象程序的调用关系 |
4.5 回归测试策略与程序修改分析 |
4.6 回归测试策略 |
4.7 小结 |
第5章 扩展有限状态机的依赖性分析 |
5.1 引言 |
5.2 背景知识和现有算法的问题 |
5.3 EFSM 中的依赖关系的传递性 |
5.4 依赖传递函数 |
5.5 EFSM 的后向切片算法 |
5.6 小结 |
第6章 考虑互斥机制的并发程序切片 |
6.1 引言 |
6.2 基本概念 |
6.3 互斥机制对切片的影响 |
6.4 切片算法 |
6.5 小结 |
第7章 并发过程间程序分析的不可判定问题 |
7.1 引言 |
7.2 过程间并发程序模型 |
7.3 利用反射的思想构造并发过程间程序分析的PCP 问题实例 |
7.4 导致不可判定的因素 |
7.5 小结 |
第8章 JAVA 程序分析平台的设计与实现 |
8.1 引言 |
8.2 8.2 JAVACC 和JTB 工具简介 |
8.3 系统框架 |
8.4 系统的实现 |
8.5 程序界面及执行效果示意图 |
8.6 小结 |
结论 |
参考文献 |
致谢 |
附录 A 攻读学位期间发表的论文和参加的项目 |
攻读学位期间发表的论文 |
攻读学位期间参加的项目 |
(10)包含异常处理的Java程序切片研究(论文提纲范文)
摘要 |
ABSTACT |
插图索引 |
第1章 绪论 |
1.1 研究背景 |
1.1.1 程序切片 |
1.1.2 程序切片技术发展史 |
1.1.3 包含异常处理的 Java程序切片 |
1.2 程序切片技术的研究现状 |
1.2.1 当前研究中的问题 |
1.2.2 国内的研究 |
1.2.3 国外项目 |
1.3 本课题的研究内容 |
第2章 Java系统依赖图 |
2.1 Java语言的面向对象特性 |
2.1.1 封装性 |
2.1.2 继承性 |
2.1.3 多态性和动态绑定 |
2.2 Java系统依赖图的基本组成模型 |
2.3 Java系统依赖图的基本语法语义 |
2.3.1 结点 |
2.3.2 边 |
2.4 基本问题的解决策略 |
2.4.1 程序预处理 |
2.4.2 结点 |
2.4.3 方法依赖图 |
2.4.4 类依赖图 |
第3章 视为方法策略处理异常结构 |
3.1 Java的异常处理机制 |
3.1.1 使用try/catch/finally |
3.1.2 抛出异常 |
3.1.3 异常的类型 |
3.1.4 处理多个异常 |
3.2 异常处理结构对系统依赖图的的影响 |
3.2.1 自然数程序 |
3.2.2 异常对控制流分析的影响 |
3.2.3 异常对数据流的影响 |
3.2.4 异常对控制依赖的影响 |
3.3 异常结构的处理策略 |
3.3.1 数据流的处理 |
3.3.2 控制流的处理 |
3.4 小结 |
第4章 增加结点策略及主要算法 |
4.1 TTAM策略中的问题 |
4.2 AREN方法处理异常结构 |
4.2.1 抛出异常方法的处理 |
4.2.2 抛出异常调用点的处理 |
4.2.3 抛出异常的调用方法的处理 |
4.3 系统依赖图的构造及主要算法 |
4.3.1 系统依赖图的构造步骤 |
4.3.2 方法内语句结点信息的存储关系 |
4.3.3 方法依赖图(MDG)的构造 |
4.4 切片算法 |
4.5 相关工作 |
4.6 小结 |
第5章 Java程序切片系统设计与实现 |
5.1 JTB工具简介 |
5.1.1 关于 JTB |
5.1.2 产生的文件 |
5.1.3 自动产生的类 |
5.2 系统的设计 |
5.2.1 系统框架 |
5.2.2 功能模块 |
5.3 系统的实现 |
5.3.1 文件管理模块的实现 |
5.3.2 词法语法分析模块实现 |
5.3.3 信息存储模块实现 |
5.3.4 类层次模块图构造模块的实现 |
5.3.5 方法调用图构造模块的实现 |
5.3.6 方法控制流图构造模块的实现 |
5.3.7 方法控制依赖图构造的实现 |
5.3.8 方法内数据流图构造模块 |
5.3.9 方法间数据流图的构造 |
5.3.10 程序切片的实现 |
结论 |
参考文献 |
致谢 |
附录A攻读学位期间发表的论文和参加的项目 |
附录B Java源程序 |
附录C 类层次图 |
附录D 方法调用图 |
附录E 方法控制流图 |
附录F 方法控制依赖图 |
附录G 方法依赖图 |
四、一种基于Java程序分层模型的方法内切片生成算法(论文参考文献)
- [1]基于Web的多孔结构3D打印路径规划[D]. 孙芸. 华侨大学, 2020(01)
- [2]软件架构可持续演进性评估技术研究[D]. 王桐. 东南大学, 2019(01)
- [3]自动化增材制造路径规划与算法研究[D]. 刘吉. 哈尔滨工程大学, 2019(01)
- [4]Java程序切片及其在代码结构恢复中的应用[D]. 陈霁辰. 东南大学, 2017(04)
- [5]自动故障受理软件的设计与实现[D]. 黄毅. 北京邮电大学, 2009(04)
- [6]基于混淆和水印的Java字节码安全技术的研究[D]. 战晓娟. 大连交通大学, 2008(06)
- [7]面向对象软件的特征定位技术研究[D]. 许帅. 国防科学技术大学, 2007(07)
- [8]Java程序分层及概率依赖性分析[D]. 余斌. 东南大学, 2006(04)
- [9]依赖性分析及其在软件测试中的应用[D]. 缪力. 湖南大学, 2006(12)
- [10]包含异常处理的Java程序切片研究[D]. 王鹏飞. 湖南大学, 2005(07)