什么是Cyclomatic Complexity(圈复杂度)? .

Campwood Software


SourceMonitor Version 3.5

The freeware program SourceMonitor lets you see inside your software source code to find out how much code you have and to identify the relative complexity of your modules. For example, you can use SourceMonitor to identify the code that is most likely to contain defects and thus warrants formal review. SourceMonitor, written in C++, runs through your code at high speed, typically more than 10,000 lines of code per second. SourceMonitor provides the following:

  • Collects metrics in a fast, single pass through source files.
  • Measures metrics for source code written in C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) or HTML.
  • Includes method and function level metrics for C++, C, C#, VB.NET, Java, and Delphi.
  • Offers Modified Complexity metric option.
  • Saves metrics in checkpoints for comparison during software development projects.
  • Displays and prints metrics in tables and charts, including Kiviat diagrams.
  • Operates within a standard Windows GUI or inside your scripts using XML command files.
  • Exports metrics to XML or CSV (comma-separated-value) files for further processing with other tools.

Enhancements added in Version 3.5 are described below. Like all previous versions, this version of SourceMonitor is free [view license]. The download is a fully functional installer contained in a single file, SMSetupV346.exe. Please download the installation file and give it a try:

Download SourceMonitor V3.5.0.306 (2.47 MBytes):   via HTTP. Run the downloaded file (SMSetupV350.exe) to install SourceMonitor.

http://www.campwoodsw.com/sourcemonitor.html

http://www.cnblogs.com/bangerlee/archive/2011/09/18/2178172.html

http://blog.csdn.net/lg707415323/article/details/7790660

时间: 2024-10-09 13:24:02

什么是Cyclomatic Complexity(圈复杂度)? .的相关文章

圈复杂度(Cyclomatic Complexity)

圈复杂度(Cyclomatic Complexity)是很常用的一种度量软件代码复杂程度的标准.这里所指的"代码复杂程度"并非软件内在业务逻辑的复杂程度,而是指代码的实现方式的 复杂程度.说起来有点绕是么?打个比方就是嘴笨的人可以把简单的事情说得很复杂.虽然"内在业务逻辑"与"实现方式"有紧密的联系,有很多研究统计指出, 圈复杂度高的代码中错误的可能性更大,维护的成本更高. 它的计算方法很简单,计算公式为:V(G)=e-n+2.其中,e表示控制流

圈复杂度(Cyclomatic Complexity)-转

圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准.它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数.圈复杂度大说明程序代码的判断逻辑复杂,可能质量低且难于测试和维护.程序的可能错误和高的圈复杂度有着很大关系. 下面这个实例中,单元测试的覆盖率可以达到100%,但是很容易发现这其中已经漏掉了一个NPE的测试用例.case1方法的圈复杂度为2,因此至少需要2个用例才能完全覆盖到其所有的可能情况.

cyclomatic complexity

tag: complexity, sourcemonitor, cyclomatic, refactor, 所谓圈复杂度是一种代码复杂度的衡量标准,中文名称叫做圈复杂度.在软件测试的概念里,圈复杂度“用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系”.它的计算方法很简单,计算公式为:V(G)=e-n+2.其中,e表示控制流图中边的数量,n表

圈复杂度和McCabe

[书名]:软件架构--Python语言实现 [主题]:圈复杂度 [摘要]:圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施.它根据程序从开始到结束的线性独立路径的数量计算得来的.在 Python 中可以使用 mccabe 包测量程序的圈复杂度. 1 圈复杂度 对于没有任何分支的代码,它的圈复杂度为 1 ,意味着代码只有一条路径.例如下面的函数: 1 2 3 def (a, b): return a + b 对于有一条分支的代码,它的圈复杂度为 2 ,比如下

前端代码质量-圈复杂度原理和实践

写程序时时刻记着,这个将来要维护你写的程序的人是一个有严重倾向,并且知道你住在哪里的精神变态者. 导读你们是否也有过下面的想法? 重构一个项目还不如新开发一个项目...这代码是谁写的,我真想...你们的项目中是否也存在下面的问题? 单个项目也越来越庞大,团队成员代码风格不一致,无法对整体的代码质量做全面的掌控没有一个准确的标准去衡量代码结构复杂的程度,无法量化一个项目的代码质量重构代码后无法立即量化重构后代码质量是否提升针对上面的问题,本文的主角 圈复杂度 重磅登场,本文将从圈复杂度原理出发,介

基于Table方法降低代码圈复杂度

描述: 在项目开发过程中,经常要求圈复杂度不能超过10,有时候写着写着圈复杂度就很大,我在项目代码中见过函数圈复杂度大于100的函数,由于历史的原因,代码越积越多,没人出去重构,导致后面很难懂和维护,所以在编码初期就应该在心中有个要求,就是圈复杂度不能超过10,如果超过10,肯定是代码逻辑写的过于复杂,要回过头来 想想怎么去分解功能,让流程简单易懂. 本文主要通过一些例子来介绍基于Table方式降低圈复杂度的过程. 例子1:一个简单的游戏控制函数 你可能会遇到如下类似的代码: if(strcmp

圈复杂度

一.现象 1. 代码设计不规范. 当项目规模达到一定的程度,比如达到十万行的代码量.那么项目肯定存在有些类特别大,方法特别多.特别长. 以上因素会导致什么后果呢? 一个类没有做到单一指责,后期对这个类改动会导致其他功能出现Bug. 代码阅读性较差,维护困难. 2. 没有一个准确的标准去衡量代码结构复杂的程度. 各个公司都会有自己的规范,但是开发中很少人能够去完全遵循规范.而且没有一个明确的标准去衡量代码的复杂程度,而且人工去检测代码的复杂程度是很繁琐的.因此我们急需一个标准去检测代码结构复杂的程

C语言switch/case圈复杂度优化重构

软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一. C语言开发的项目中,switch/case代码块是一个很容易造成圈复杂度超标的语言特性,所以本文主要介绍下降低switch代码段的重构手段(如下图).switch圈复杂度优化重构可分为两部分:程序块的重构和case的重构.程序块重构是对代码的局部优化,而case重构是对代码的整体设计,

【软件测试】圈复杂度

圈复杂度:在软件测试的概念里,它用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即 合理的预防错误所需测试的最少路径条数. 圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系. 圈复杂度的原理:(其实就是分支的个数) 圈复杂度为1,意味着代码只有一条路径. 对于有一条分支的代码,它的圈复杂度为2. 从1开始,一直往下经过程序. 一旦遇到以下关键字,或者其它同类的词,就 +1. 如 if.while.repeat.for.and