一、浅析McCabe度量法的意义及应用(论文文献综述)
杨阳[1](2021)在《基于机器学习的程序路径可达性判定方法研究与实现》文中研究表明结构测试中,不可达路径会浪费大量测试成本,极大降低测试用例的生成效率。若能提前确定路径可达性,则能将有限测试资源充分用于可达路径用例求解。传统的不可达路径判定方法有静态法、动态法和混合法。静态法与编程语言耦合,路径求解代价昂贵;动态法依赖测试数据生成,执行效率低;混合法虽然提高了求解效率,但仍受传统方法的限制。当前没有一种高效且通用的不可达路径判定方法。尤其对大规模程序而言,路径可达性求解难度极大。针对上述问题,本文提出了一种基于机器学习的程序路径可达性判定方法。该方法将路径求解问题转化为路径可达性分类问题,利用机器学习提高判定效率,具有一定通用性。围绕该方法,本文主要做了以下研究:(1)提出一种基于路径约束的程序路径特征提取方法。首先基于符号执行提取路径约束,并采取约束原子化、无效约束删减等方式对约束进行简化,然后进行约束编码,编码约束与关键词词频共同组成特征空间。(2)提出一种基于机器学习的程序路径可达性判定解决方法。首先在预处理阶段生成程序路径,通过区间运算、动态执行、人工确认的方式标注路径可达性。然后进行特征提取及向量化。最后,基于特征进行分类模型训练,获取不同模型的判定效果。通过机器学习的方法判定路径可达性,能够适用于过程内路径与过程间路径,且扩展性相对较好。本文基于上述方法,构建了逻辑回归模型、支持向量机模型、随机森林模型以及三种集成分类模型,选取了 10个开源C语言工程生成程序路径,对路径可达性进行了判定与交叉验证。实验结果表明,上述方法能为上万行的程序提供路径可达性判定,且所有模型判定结果精确率均能达80%以上。
刘正[2](2020)在《积木式python编程系统的研究与实现》文中研究指明伴随着互联网时代的到来和教育理念的不断更新,少儿编程教育在全球范围内成为研究热点,越来越多国家的机构和学者开始探索对青少年、尤其是K12人群的编程教育。基于教育目的的少儿编程软件如雨后春笋,图形化编程技术逐渐普及,开始被越来越多的学校纳入到教学课程当中。而在图形化编程与计算机语言编程之间,还是存在着一道鸿沟。针对这个问题,本文设计开发了一个基于Scratch开源框架的积木式Python编程系统,该系统不仅提供积木-文本对照模式的编程环境以及调试环境,同时提供代码测评分析功能,为学习者提供更加全面、系统的积木式Python学习环境。本文在深入分析积木式编程理念及代码测评技术的基础上,首先设计了积木式Python编程系统的总体架构,系统包括编程子系统和测评子系统,分别提供积木式编程和测评功能。进而,针对积木式Python编程作品评测的关键问题,从代码体现的计算思维(CT)能力和代码可读性两个方面展开研究:1)提出了基于计算思维的积木式Python作品测评方案,通过重构CT测评要素和计算规则,将程序的容量复杂度、结构复杂度等统一考虑,并使测评方案更加符合Python代码特点;2)提出了一种联合多类特征的Python代码可读性评价模型,提出涵盖三种类型的特征集,并设计了基于XGBoost的迭代训练,自动筛选最佳特征集、并训练分类模型,提升了分类准确率。最后,介绍了系统的设计与实现方法和测试结果。本课题完成的系统高效易用,功能完善。一方面,编程子系统能让初学者以图形化编程方式进行Python编程学习,并通过积木式编程到语言编程的自动转换,逐步培养语言编程能力;另一方面,测评子系统实现了更符合Python教学的测评算法,不仅能更准确评价用户作品中体现的计算思维能力,还能挖掘用户编程习惯,给出准确的代码可读性评价。经过测试,该系统的各项功能运行良好,满足设计预期,具有一定的稳定性和鲁棒性,是一个完整、高效的积木式Python语言学习系统。
常重[3](2019)在《Scratch作品评测系统的研究与实现》文中进行了进一步梳理随着国家对大力发展人工智能教育的提倡和号召,计算机编程作为其内容重要的一环,已经开始逐步走进中小学信息技术课程中,目前我国中小学生学习编程的首选编程语言就是可视化Scratch语言。针对Scratch作品进行分析和评测具有良好的应用价值和发展前景,通过评测不仅能够帮助学生发现自己作品中的错误和潜在问题,提高学生的编程能力,而且能够帮助老师发现学生学习和使用过程中的易错知识点,对学生进行有针对性的教学和辅导,还可以有效的为不同的学生定制不同的学习方案和学习路线。因此,如何选取合适的解析方法、评判标准和评分准则,如何更为有效、更为准确的对Scratch作品进行分析和评测值得进行深入的研究和探索。针对上述问题,本文首先在对已有Scratch作品评测方法和原理研究的基础上,基于工具ANTLR,结合Scratch作品的格式,提出并实现了一种全新的Scratch作品解析器。然后,在该解析器的基础上,结合目前学术界广泛认可和使用的方法,从计算思维、程序复杂度和Lint思想三个不同的角度对Scratch作品进行了综合评测和分析。最后,本文在实现Scratch作品评测工具的基础上,利用软件工程理论方法,进一步设计并实现了B/S架构的Scratch作品在线评测系统。经过测试,本文设计实现的相关Scratch作品评测工具和系统,能够根据设计准确的得出评测结果,系统鲁棒性和性能都具有较高的水准,结果符合设计预期,能够为广大师生的使用提供保证。
周铭男[4](2019)在《高效的分布式缺陷检测方法及应用》文中提出在软件和IT业飞速发展的今天,越来越多的业务需求需要依靠相应的代码来实现,高质量的代码不仅可以提供良好的用户体验,更可以提升系统架构的安全性与可靠性。而随着代码量越来越大、代码文件变得越来越复杂,传统单机代码缺陷检测工具的测试效率正面临着越来越多的挑战,如测试时间较长、对系统硬件资源需求过大等情况。为了解决传统单机测试系统的测试效率问题,本文设计和实现了一种分布式缺陷检测方法,通过将大型代码工程测试任务拆分为若干部分并分配至集群中的各个节点同时进行测试,来提高对大型代码工程的缺陷检测效率。在进行测试任务的拆分时,本文考虑了文件间多种依赖性带来的问题;在进行测试任务分配方案的设计时,本文考虑了系统可用资源管理、测试任务量化、系统负载均衡等问题。为了解决以上问题,本文设计并实现了基于“基础功能层级”、“业务支持层级”、“核心业务层级”这三个层级的六个模块。“基础功能”层级中“通讯模块”及“数据库模块”分别用来提供系统的通讯、文件传输、相关数据记录等功能;“业务支持层级”中“节点资源管理模块”主要负责管理分布式系统中各节点可用资源;“核心业务层级”中“依赖性处理模块”、“任务量评估模块”、“任务分配模块”分别负责对代码工程进行依赖性处理、对测试任务进行量化、对系统整体进行负载均衡设计。通过六个模块的相互配合,分布式缺陷检测方法得以实现并正常运行。由于不同缺陷检测工具的实现原理与运行环境差别较大,本文在论述一般情况的同时结合某种代码缺陷检测工具展开具体的研究分析。通过该工具进行相关实验,实验结果表明本文提出的分布式缺陷检测方法与传统单机检测方法相比,检测效率有了明显的提高。
郝学良,朱小冬,刘丽[5](2015)在《基于分形原理的软件维护性评估》文中研究说明针对软件维护性评估难题,从软件结构复杂度和软件开发维护过程两方面着手,分别对软件维护性进行了定性和定量评估。分析了软件模块结构的空间域自相似性及软件生命周期内的时间域自相似性,提出了基于分形维数的软件维护性定性评估,实现软件维护性评估的定性要求和控制。以维护工作量作为软件维护性核心参数,结合自顶向下评估方法,提出了时间域内软件维护性定量评估。通过虚拟维修训练系统软件美腾2.0到3.0版本升级维护实例,对方法的有效性进行了验证。
朱云娜[6](2013)在《Java程序度量工具的实现及案例探讨》文中提出在IEEE软件工程的术语标准中,对于度量一词的理解主要是指对一个系统、构件或者是具有某个给定属性的度所进行的一种定量测量。Java程序度量工具是针对Java程序为辅助IEEE软件工程中的定量测量所设计实现的一种度量工具。本文将在对于度量算法以及度量标准分析的基础上,从Java程序度量工具的设计实现出发,结合实际案例进行Java程序度量工具的具体应用分析。
韩海玲[7](2013)在《全电子计算机联锁软件质量度量分析与研究》文中指出铁路信号设备或系统的可靠性与安全性对保障列车的正常运行具有重要意义,在系统设计时必须遵循“故障—安全”原则。在铁路信号系统中,计算机联锁已经得到了广泛的应用。安全是整个联锁系统设计的核心主题,铁路标准要求联锁软件的安全性等级必须达到SIL4。在联锁软件开发过程中,对软件的可靠性、可维护性等方面也不能忽略,从而保证整个软件的质量。因此,对全电子计算机联锁软件质量度量的研究至关重要。本文以全电子计算机联锁软件为研究对象,首先分析了系统的结构以及功能特点。联锁系统属于安全相关系统,其软件要求保证其可靠性与安全性;论文同时提出了软件质量的概念以及软件质量度量模型,并说明了软件测试、软件度量、代码重构等软件质量保证手段。其次,论文介绍了几种最具代表性的软件度量方法:源代码行度量方法、从程序结构角度提出的McCabe圈复杂性度量方法、从程序文本角度提出的Halstead软件科学度量方法和基于信息流的Henry&Kafura方法。最后,通过分析这几种典型的软件度量方法,发现这些方法并不能全面的度量整个软件的质量。为了解决度量的片面性问题,结合现有的软件度量方法,本文提出了一种全面的软件度量方法,其核心思想是对代码长度、圈复杂度、软件科学度量值以及信息流度量值进行综合处理。该方法能够实现从软件的长度、结构、信息流等角度来综合评价软件质量。本文利用该方法对联锁软件进行质量度量,以量化的形式表征软件内部质量水平。首先参照软件内部质量度量标准,选择清晰性、可维护性、易测试性三个质量特性作为联锁软件质量评价标准。接着计算出每个质量特性相关度量元的值,建立了联锁软件内部质量评价的静态度量模型。最后通过实例计算出了联锁软件度量结果。通过以上度量分析,发现有些度量值低于指标的最小值,有些却超过最大值,软件的综合质量比较低。为了提高计算机联锁软件质量水平,本文提出了一种质量度量引导优化(Quality Metrics-Directed Optimization,简称QMDO)的方法。QMDO方法的基本思想是:运用全面度量方法对联锁软件进行质量度量,对照度量结果,采用代码优化技术对联锁软件进行修改并重新度量,对比之前的度量结果,优化后各度量项能够达到联锁软件的要求范围。QMDO方法明显改善了代码的清晰性、可维护性、易测试性,极大地提高了代码质量,为利用软件度量提高软件质量找到了一条有效的途径。
尹晋[8](2012)在《基于Testbed和Polyspace的装备软件静态测试研究》文中研究说明现代软件测试研究发现:对于任何一个软件或者系统所进行的测试都应当是结合了静态测试和动态测试来进行的,只做其中任何一项测试工作都会因为完整性的缺失而无法得到准确的测评结论。在其它条件不变的情况下,如果能够越早的发现软件中的错误,所造成损失的就会越少。静态测试是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查,因此,能够较早地发现软件的缺陷。为了进一步提高软件测试结果可信度和优化成本,必须做到在软件测试项目中包含静态测试。本文分析了静态质量度量,提出了对软件特性进行评价的方法;探索了如何互补性的组合测试工具Testbed和PolySpace应用到实际测试流程中,并在某舰载气象雷达通信软件的静态测试中取得了验证;编制了静态质量分析报告规程。具体包括以下几个方面:首先,从软件测试的定义、目的和分类着手引入了软件测试的整体概念,描述了软件测试的重要性;剖析了不同测试类型中从是否执行程序的角度划分出来的静态测试,了解了静态测试技术的关键点在于代码、界面和文档的测试。其次,分析了软件质量度量,继而从软件的静态质量度量基本概念和功能出发,研究了Halstead软件科学度量法和McCabe程序环路复杂度度量法两种软件静态度量方法,重点研究了静态质量模型及结合静态质量模型对软件特性进行评价的方法。再次,探索如何互补性的组合应用测试工具Testbed和PolySpace到实际测试流程中,研究了如何完整的实现对使用Linux平台和VC++语言开发的某舰载气象雷达通信软件的静态测试,并在实践中了验证了工具使用的可行性。最后,通过对本文研究内容的总结,探索了如何在软件静态测试的静态分析过程中找到相对完整全面的规则集,从而使静态分析在模型构造、路径选择等方面能够选择更好的策略,以此得到提高静态分析的准确度的效果。并结合软件质量度量的研究和舰载气象雷达通信软件静态测试过程及结果的分析,探索了对于目前整个业界都没有统一成熟的静态测试流程和标准;在静态测试流程中,还没有具备广泛代表性的作为最终测试结果的静态质量分析报告;静态测试结果不能够以简洁明了的形式作为内部质量结果,从而可以有力的支撑项目测评结论的完整性等问题的解决办法,初步拟定了静态质量分析报告的编制规程第一稿。经多个实际测试项目和委托方反馈,该规程质量因素关键点覆盖度高,在装备软件静态质量分析方面具备很强广泛性和代表性。
张文,刘刚,朱一凡[9](2011)在《信息系统体系结构复杂性度量方法研究》文中研究说明体系结构技术是进行信息系统设计的重要技术,其复杂性直接决定着建设信息系统的复杂性。研究了程序复杂性的度量方法,在复杂性概念研究的基础上,提出了将体系结构复杂性分为动态复杂性和结构复杂性分开进行度量的方法,并提出基于熵的动态复杂性和结构复杂性评估方法。通过对体系结构复杂性度量方法的研究,可以有效地度量体系结构的复杂性,为项目开发与决策提供有力的依据。
姜林[10](2011)在《软件分形复杂度》文中研究表明近些年来,新兴的分形几何学在不断地发展,并且在一些研究领域中得到了广泛的应用,如计算机、地理、交通等等。分形几何的最基本特征是自相似性,即每个局部按照一定的比例放大后和整体相同,同时整体按一定比例缩小后又和局部是相同的。对于一段分为若干个模块的计算机程序,每个模块又可能被分为若干个更小的模块。由于每个模块放大后都是一段程序,因此,整个软件体在某种程度上具有一定的自相似性,可以将分形的理论应用到软件复杂度的研究当中。本文结合分形的本质及程序结构的特征,将分形理论应用到软件复杂度的研究当中,并结合实例说明软件分形复杂度的意义。主要工作如下:1.结合分形及程序的结构特征,给出盒子及盒图的定义,进而经过严格的数学推导提出软件分形复杂度的定义,给出算法思想和计算方法,并通过实例说明被测程序具有分形特征------标度不变性。2.根据软件分形复杂度的定义,设计并实现了一个能够度量程序分形复杂度的仿真工具,并编写了大量的测试用例以确保系统的正确性。3.对大量开源程序的分形复杂度进行计算,通过进一步的分析表明所得数值在某种情况下可以反映出程序在结构上的复杂程度,其度量结果是比较有效的,同时在某种程度上对传统软件复杂度度量法做出了一定的改进。4.对Linux内核中核心部分、内存管理部分、文件管理部分,Wireshark中的wIretap模块,以及《Windows程序设计(第五版)》中的经典源码进行了分形复杂度分析,根据计算统计结果说明各部分代码复杂性的高低。同时还发现了一类并不具有明显分形特征的代码段,它们具有相似的结构特征。5.对学生作业进行了分形复杂度分析,发现他们的编码风格不同,程序复杂性也各不相同。分形复杂度偏高,一是由于程序逻辑结构过于复杂,分支过多,造成可读性的下降;二是频繁出现函数调用会造成系统的开销。可以通过对编码风格的改进降低程序的复杂性。
二、浅析McCabe度量法的意义及应用(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、浅析McCabe度量法的意义及应用(论文提纲范文)
(1)基于机器学习的程序路径可达性判定方法研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 研究内容 |
1.3 本文创新点 |
1.4 本文工作 |
1.5 论文结构 |
第二章 相关概念和技术 |
2.1 引言 |
2.2 结构测试技术 |
2.3 路径生成相关概念和技术 |
2.3.1 基本路径生成 |
2.3.2 过程间路径生成 |
2.4 不可达路径检测相关概念和技术 |
2.4.1 静态检测法 |
2.4.2 动态检测法 |
2.4.3 混合检测法 |
2.5 分类学习相关概念及技术 |
2.5.1 逻辑回归 |
2.5.2 支持向量机 |
2.5.3 决策树与随机森林 |
2.6 本章小结 |
第三章 基于约束的程序路径特征提取方法 |
3.1 引言 |
3.2 相关定义 |
3.3 约束提取 |
3.3.1 基于符号执行的约束提取 |
3.3.2 约束原子化 |
3.3.3 约束化简 |
3.3.4 约束编码方式 |
3.4 其他特征提取 |
3.4.1 特征选择 |
3.4.2 特征真值化 |
3.5 本章小结 |
第四章 程序路径可达性判定模型 |
4.1 引言 |
4.2 数据预处理 |
4.2.1 程序路径生成 |
4.2.2 路径可达性标注 |
4.3 特征提取及向量化 |
4.3.1 特征选取 |
4.3.2 特征编码 |
4.4 模型构建与集成 |
4.4.1 模型构建 |
4.4.2 模型集成 |
4.5 本章小结 |
第五章 原型系统的设计与实现 |
5.1 引言 |
5.2 需求分析 |
5.2.1 功能性需求 |
5.2.2 非功能性需求 |
5.3 系统架构 |
5.4 模块设计与实现 |
5.4.1 数据集处理模块 |
5.4.2 特征处理模块 |
5.4.3 模型训练模块 |
5.4.4 模型评估与展示模块 |
5.5 界面展示 |
5.6 本章小结 |
第六章 实验结果及分析 |
6.1 实验环境 |
6.2 评价指标 |
6.3 小规模程序可达性实验 |
6.3.1 数据集 |
6.3.2 结果及分析 |
6.4 大规模程序可达性实验 |
6.4.1 数据集 |
6.4.2 结果及分析 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 研究工作总结 |
7.2 进一步研究工作 |
参考文献 |
致谢 |
(2)积木式python编程系统的研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景和研究意义 |
1.2 国内外研究现状 |
1.3 论文研究内容 |
1.3.1 论文研究内容 |
1.3.2 主要创新点 |
1.4 论文内容安排 |
第二章 相关技术综述 |
2.1 科技强化学习(TEL)技术 |
2.2 程序静态分析技术 |
2.2.1 计算思维测评技术 |
2.2.2 代码可读性测评技术 |
2.2.3 代码气味检测技术 |
2.3 系统开发相关技术 |
第三章 系统需求分析与总体设计 |
3.1 系统需求分析 |
3.1.1 系统功能需求分析 |
3.1.2 系统非功能需求分析 |
3.2 功能架构与设计 |
3.2.1 编程子系统功能设计 |
3.2.2 测评子系统的功能设计 |
3.3 研究思路 |
第四章 SCRATCH-PYTHON作品测评技术的研究 |
4.1 计算思维能力测评方案 |
4.1.1 面向Scratch的CT测评方案分析 |
4.1.2 Scratch-Python计算思维测评表设计 |
4.1.3 计算思维能力值计算方法 |
4.1.4 方案有效性验证 |
4.2 代码可读性测评模型 |
4.2.1 联合多类特征的Python代码可读性评测评型 |
4.2.2 数据集准备 |
4.2.3 初始特征集设计 |
4.2.4 基于XGBoost的模型迭代训练 |
4.2.5 模型效果验证 |
4.3 本章小结 |
第五章 积木式PYTHON编程系统的设计与实现 |
5.1 系统架构设计 |
5.2 编程子系统的设计与实现 |
5.2.1 编程子系统架构 |
5.2.2 Scratch-Python编程工具的设计与实现 |
5.2.3 在线调试系统设计与实现 |
5.3 测评子系统的设计与实现 |
5.3.1 测评子系统架构: |
5.3.2 计算思维测评模块设计与实现 |
5.3.3 可读性测评模块的设计与实现 |
5.4 本章小结 |
第六章 积木式PYTHON编程系统的测试 |
6.1 系统测试环境 |
6.2 编程子系统功能测试 |
6.2.1 Scratch-Python编程工具的测试 |
6.2.2 在线调试系统测试 |
6.3 测评子系统功能测试 |
6.3.1 计算思维测评模块测试 |
6.3.2 代码可读性测评模块测试 |
6.4 系统性能测试 |
6.4.1 Scratch-Python工具性能测试 |
6.4.2 在线调试系统性能测试 |
6.4.3 测评子系统性能测试 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 论文工作总结 |
7.2 展望 |
参考文献 |
附录 |
致谢 |
攻读学位期间发表的学术论文 |
(3)Scratch作品评测系统的研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景和研究意义 |
1.2 国内外研究现状 |
1.3 论文研究内容 |
1.4 论文内容安排 |
第二章 相关技术综述 |
2.1 语言识别解析技术介绍 |
2.1.1 语言解析技术 |
2.1.2 Scratch语言的解析 |
2.2 程序分析评测技术介绍 |
2.2.1 程序评测技术 |
2.2.2 程序静态分析技术 |
2.3 相关开发技术介绍 |
第三章 Scratch作品解析的研究与实现 |
3.1 Scratch作品格式 |
3.2 基于ANTLR的Scratch语言解析程序的生成 |
3.2.1 ANTLR生成分析器的过程 |
3.2.2 词法规则和语法规则的制定 |
3.2.3 Scratch作品解析流程 |
3.3 符号表的设计 |
3.3.1 符号表结构 |
3.3.2 符号表的接口 |
3.4 本章小结 |
第四章 Scratch作品评测的研究与实现 |
4.1 基于计算思维的Scratch作品评测 |
4.1.1 计算思维评价表的设计 |
4.1.2 计算思维评价相关算法 |
4.2 基于程序复杂度的Scratch作品分析 |
4.2.1 Halstead度量法 |
4.2.2 McCabe度量法 |
4.3 基于Lint思想的Scratch作品静态分析 |
4.3.1 潜在错误的代码 |
4.3.2 未完成的代码 |
4.3.3 可简化的代码 |
4.4 本章小结 |
第五章 Scratch作品在线评测系统的设计与实现 |
5.1 系统的需求分析 |
5.1.1 系统用户角色分析 |
5.1.2 系统功能需求分析 |
5.1.3 系统非功能需求分析 |
5.2 系统的设计 |
5.2.1 系统架构设计 |
5.2.2 系统的模块设计 |
5.2.3 系统的数据库设计 |
5.2.4 系统的界面设计 |
5.3 系统的实现 |
5.3.1 注册模块的实现 |
5.3.2 管理模块的实现 |
5.3.3 上传与评测模块的实现 |
5.3.4 班级管理与学生管理模块的实现 |
5.3.5 评测结果展示模块的实现 |
5.4 本章小结 |
第六章 系统验证与性能测试 |
6.1 测试环境与测试集 |
6.1.1 测试环境 |
6.1.2 测试集 |
6.2 Scratch作品分析与评测测试 |
6.2.1 功能测试 |
6.2.2 性能测试 |
6.3 Scratch作品在线分析评测系统测试 |
6.3.1 功能测试 |
6.3.2 性能测试 |
6.4 对比实验 |
6.4.1 Scratch分析评测工具对比 |
6.4.2 计算思维评测得分与人类专家打分比较 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 论文工作总结 |
7.2 展望 |
参考文献 |
附录A 计算最大公约数Scratch作品的project.json文件 |
致谢 |
攻读硕士期间发表的学术论文和专利 |
(4)高效的分布式缺陷检测方法及应用(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景 |
1.2 研究内容 |
1.3 论文章节安排 |
第二章 相关技术 |
2.1 代码缺陷检测技术 |
2.2 虚拟化技术 |
2.3 代码复杂度 |
2.4 CAP理论 |
2.5 多进程测试技术、多线程并行测试技术与相关云测试技术 |
第三章 相关问题研究 |
3.1 分布式缺陷检测系统的基础架构问题 |
3.1.1 分布式缺陷检测方法的基本业务逻辑 |
3.1.2 分布式缺陷检测系统的基本功能 |
3.2 节点资源管理问题 |
3.2.1 节点基本信息的管理 |
3.2.2 节点工作状态的管理 |
3.3 代码文件间的依赖关系问题 |
3.3.1 预处理依赖 |
3.3.2 函数依赖 |
3.4 代码文件在分布式缺陷检测中任务量评估问题 |
3.4.1 被测代码文件复杂度与其对系统资源占用的问题 |
3.4.2 代码复杂度的度量方法以及测试任务量的评估 |
3.5 分布式缺陷检测系统的任务分配及调度问题 |
3.5.1 代码文件重复测试问题 |
3.5.2 分布式缺陷检测系统的负载均衡 |
第四章 分布式缺陷检测方法的设计与实现 |
4.1 分布式缺陷检测系统基础架构的设计与实现 |
4.1.1 分布式测试系统的整体架构 |
4.1.2 分布式缺陷检测系统功能模块的整体设计 |
4.1.3 节点间通讯模块的设计与实现 |
4.1.4 数据库模块的设计与实现 |
4.2 系统资源管理模块的设计与实现 |
4.2.1 节点基础信息管理的设计与实现 |
4.2.2 节点系统资源监控策略 |
4.2.3 节点系统状态管理策略 |
4.3 依赖性处理模块的设计与实现 |
4.3.1 预处理的设计与实现 |
4.3.2 依赖整合的设计与实现 |
4.4 任务量评估模块的设计与实现 |
4.4.1 分布式缺陷检测方法中代码复杂度度量方法的相关研究 |
4.4.2 复杂系数的计算方法 |
4.5 任务分配模块的设计与实现 |
4.5.1 对标签聚类的设计与实现 |
4.5.2 任务分发策略的设计与实现 |
4.5.3 任务分发的调整策略 |
第五章 实验结果及分析 |
5.1 实验环境 |
5.2 分布式缺陷检测方法实验结果 |
5.2.1 Hadoop测试分析 |
5.2.2 Spark测试分析 |
5.2.3 Hbase测试分析 |
5.3 分布式缺陷检测方法与单机缺陷检测方法实验结果分析 |
5.3.1 测试时长对比分析 |
5.3.2 测试效果对比分析 |
5.4 分布式缺陷检测方法与云平台缺陷检测方法实验结果分析 |
5.4.1 测试时长对比分析 |
5.4.2 测试效果对比分析 |
第六章 总结与展望 |
6.1 研究工作总结 |
6.2 进一步研究工作 |
6.2.1 分布式系统的完善 |
6.2.2 进一步完善依赖问题的解决 |
6.2.3 进一步完善系统负载均衡的设计 |
6.2.4 对分布式缺陷检测系统拓展性能的管理 |
参考文献 |
致谢 |
作者攻读学位期间发表的学术论文 |
(7)全电子计算机联锁软件质量度量分析与研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景 |
1.2 研究目的及意义 |
1.3 国内外研究现状 |
1.4 论文组织结构 |
2 全电子计算机联锁系统 |
2.1 全电子计算机联锁系统的发展 |
2.2 全电子计算机联锁系统的结构及功能 |
2.3 全电子计算机联锁系统的特点 |
2.4 全电子计算机联锁软件 |
2.4.1 软件的总体结构 |
2.4.2 软件的功能 |
2.4.3 软件的特点 |
3 软件质量度量研究 |
3.1 软件质量 |
3.1.1 软件质量度量模型 |
3.1.2 软件质量保证手段 |
3.2 软件度量 |
3.2.1 软件度量分析 |
3.2.2 软件度量的实施 |
3.3 软件度量的方法 |
3.3.1 代码行度量 |
3.3.2 McCabe 圈复杂性度量 |
3.3.3 Halstead 软件科学度量 |
3.3.4 数据流信息的程序复杂性度量 |
3.4 全面的软件度量方法 |
4 计算机联锁软件质量度量研究 |
4.1 联锁软件质量特性 |
4.2 联锁软件质量度量模型 |
4.3 联锁软件分析 |
4.4 联锁软件质量度量 |
4.4.1 清晰性度量 |
4.4.2 可维护性度量 |
4.4.3 易测试性度量 |
5 软件质量度量的应用 |
5.1 代码优化技术 |
5.2 质量度量引导优化 |
5.3 优化后的质量度量 |
5.4 度量结果对比分析 |
结论 |
致谢 |
参考文献 |
攻读学位期间的研究成果 |
(8)基于Testbed和Polyspace的装备软件静态测试研究(论文提纲范文)
摘要 |
ABSTRACT |
第1章 绪论 |
1.1 课题研究背景及意义 |
1.2 课题的国内外研究现状 |
1.2.1 软件静态测试研究现状 |
1.2.2 软件静态测试技术研究现状 |
1.3 课题的研究内容及章节 |
第2章 静态测试理论及方法研究 |
2.1 软件测试的基础理论 |
2.1.1 软件测试的定义 |
2.1.2 软件测试的目的 |
2.1.3 软件测试的分类 |
2.2 静态测试的定义和作用 |
2.2.1 静态测试的定义 |
2.2.2 静态测试的作用 |
2.3 静态测试技术 |
2.3.1 代码检查 |
2.3.2 静态结构分析 |
2.3.3 评审 |
2.4 软件质量度量研究 |
2.4.1 软件质量度量的基本概念、目的、对象和使用者 |
2.4.2 质量模型和评价目标(评价准则)的确定 |
2.4.3 软件度量的误区和提高软件质量的途径 |
2.4.4 软件静态质量度量及评估办法 |
2.5 本章小结 |
第3章 静态测试工具 Testbed 和 Polyspace 的研究 |
3.1 LDRA Testbed |
3.1.1 LDRA Testbed 的功能模块 |
3.1.2 LDRA Testbed 的使用 |
3.2 Polyspace |
3.2.1 Polyspace 的功能模块 |
3.2.2 Polyspace 的使用 |
3.3 LDRA Testbed 和 Polyspace 的比较 |
3.4 本章小结 |
第4章 舰载气象雷达通信软件静态测试分析 |
4.1 测试实践概述与背景 |
4.2 测试策略及目标 |
4.3 测试流程 |
4.3.1 文档评审 |
4.3.2 Testbed 测试 |
4.3.3 Ployspace 测试 |
4.4 测试结果 |
4.5 测试总结 |
4.6 本章小结 |
第5章 静态测试关键技术研究 |
5.1 静态分析方法研究 |
5.1.1 代码问题的发现 |
5.1.2 代码问题表示 |
5.1.3 因素规则集的应用 |
5.2 静态质量分析报告的编制规程设计 |
5.3 静态质量分析报告的编制规程介绍 |
5.4 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的论文和取得的科研成果 |
致谢 |
附录 |
(9)信息系统体系结构复杂性度量方法研究(论文提纲范文)
1 信息系统体系结构设计方法 |
1.1 体系结构的一般概念 |
1.2 系统接口描述与系统通信描述抽象数学定义 |
1.3 系统复杂性度量方法 |
1) Halstead复杂性度量[1] |
2) McCabe度量法 |
2 体系结构复杂性评价方法 |
2.1 体系结构复杂性影响因素分析 |
2.2 体系结构复杂性的分类 |
2.2.1 动态复杂性 |
2.2.2 结构复杂性 |
3 案例分析 |
4 结束语 |
(10)软件分形复杂度(论文提纲范文)
摘要 |
ABSTRACT |
第一章.绪论 |
1.1.分形及其应用 |
1.1.1.不规则图形 |
1.1.2.分形的本质 |
1.1.3.软件体的自相似性 |
1.2.软件复杂度 |
1.3.研究目标和研究内容 |
1.4.论文组织结构 |
第二章.分形复杂度度量法 |
2.1.盒子和盒图 |
2.2.软件分形复杂度的定义 |
2.2.1.直观定义 |
2.2.2.推导后的定义 |
2.2.3.分形复杂度计算过程 |
2.3.程序的标度不变性 |
2.3.1.最小二乘计算 |
2.3.2.实例验证 |
2.4.软件分形复杂度的意义 |
第三章.软件分形复杂度计算系统的设计与实现 |
3.1.系统的概要设计 |
3.2.源程序加载 |
3.2.1.去掉注释 |
3.2.2.控制语句的处理方法 |
3.2.3.函数定义的处理方法 |
3.2.4.加载源文件处理方法汇总 |
3.3.关键字及盒子的识别 |
3.3.1.盒子的识别过程 |
3.3.2.函数调用的处理方法 |
3.3.3.盒子识别的处理方法 |
3.4.复杂度的计算 |
3.5.进一步处理 |
3.6.系统测试 |
3.6.1.测试概述 |
3.6.2.测试用例的编写 |
3.7.本章小结 |
第四章.实例及应用 |
4.1.实例 |
4.2.进一步分析 |
4.2.1.程序结构的分析 |
4.2.2.与McCabe度量法的区别及联系 |
4.3.软件分形复杂度的应用 |
4.3.1.开源项目的分析 |
4.3.2.一类特殊代码段 |
4.3.3.学生作业的分析 |
4.4.进一步推广 |
第五章.结束语 |
参考文献 |
致谢 |
作者攻读学位期间发表的学术论文目录 |
四、浅析McCabe度量法的意义及应用(论文参考文献)
- [1]基于机器学习的程序路径可达性判定方法研究与实现[D]. 杨阳. 北京邮电大学, 2021(01)
- [2]积木式python编程系统的研究与实现[D]. 刘正. 北京邮电大学, 2020(05)
- [3]Scratch作品评测系统的研究与实现[D]. 常重. 北京邮电大学, 2019(08)
- [4]高效的分布式缺陷检测方法及应用[D]. 周铭男. 北京邮电大学, 2019(08)
- [5]基于分形原理的软件维护性评估[J]. 郝学良,朱小冬,刘丽. 计算机科学, 2015(S2)
- [6]Java程序度量工具的实现及案例探讨[J]. 朱云娜. 电子测试, 2013(17)
- [7]全电子计算机联锁软件质量度量分析与研究[D]. 韩海玲. 兰州交通大学, 2013(02)
- [8]基于Testbed和Polyspace的装备软件静态测试研究[D]. 尹晋. 哈尔滨工程大学, 2012(02)
- [9]信息系统体系结构复杂性度量方法研究[J]. 张文,刘刚,朱一凡. 计算机应用研究, 2011(11)
- [10]软件分形复杂度[D]. 姜林. 北京邮电大学, 2011(09)