問題タブ [cyclomatic-complexity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Pro*C++ ソースでサイクロマティックを実行できるツールはありますか?
Pro*C++ ソースでコード メトリクスを実行できるツールはありますか?
Google経由で特定のものを見つけることができませんでした。
誰もこれについて経験がありますか?
refactoring - 循環的複雑度は有用な尺度だと思いますか?
私は、大きなコード ベースの循環的複雑度を測定して遊んでいます。
循環的複雑度は、プログラムのソース コードを通過する線形に独立したパスの数であり、選択した言語用の無料ツールが多数あります。
結果は興味深いものですが、驚くべきことではありません。つまり、私が最も毛深いとわかっている部分は、実際には最も複雑でした (評価が 50 を超えていました)。しかし、私が便利だと思っているのは、リファクタリングを開始する場所を決定する際に参照できるものとして、具体的な「悪い」番号が各メソッドに割り当てられていることです。
循環的複雑度を使用していますか? あなたが見つけた最も複雑なコードは何ですか?
c# - コードブロックのコード複雑度を計算するための既存のライブラリ
任意の量のコードを含む文字列が与えられます。その文字列のコードの複雑さを表す数値を計算したいと思います。何かのようなもの:
私はあなたのためにこれを行うツールがたくさんあることを理解しています。 プログラムで実行したいので、これらのツールは機能しません。 ライブラリをC#にしたいと思いますが、この時点では何でも機能します。
前もって感謝します!
c# - コードの循環的複雑度を判断するための最適なツール
C#winformsコードベースで循環複雑度を判断するための最良のツールを提案できますか。
language-agnostic - 循環的複雑度とは何ですか?
私が時々目にする用語は「循環的複雑度」です。ここで、「言語XのCCを計算する方法」または「最小量のCCでYを実行する方法」についていくつか質問がありましたが、それが何であるかがよくわかりません。
NDependのWebサイトで、基本的に「メソッド内の決定の数。if、for、&&などのそれぞれがCCの「スコア」に+1を追加する)という説明を見ました。それは本当ですか?はいの場合、なぜですか?これは悪いですか?コードを理解しやすくするために、ifステートメントの数をかなり少なくしたいと思うかもしれませんが、これは本当にすべてですか?
それとも、それにもっと深い概念がありますか?
refactoring - 維持している機能の中で最も循環的複雑度はどれくらいですか?そして、どのようにリファクタリングを行いますか?
先日、NDepend (すばらしいツールでチェックしてください)を使用して、維持しているレガシーシステムを少し調べていました。私の発見はほとんど私が私のスクリーン全体に一口のコーヒーをスプレーするようにさせました。循環的複雑度の降順でランク付けされたこのシステムの上位3つの関数は次のとおりです。
- SomeAspNetGridControl.CreateChildControls(CC of 171 !!!)
- SomeFormControl.AddForm(94のCC)
- SomeSearchControl.SplitCriteria(85のCC)
私は171を意味します、すごい!!! 20以下でいいのではないですか?だから、これは私に不思議に思いました。あなたが維持している、またはリファクタリングした最も複雑な機能は何ですか?そして、そのようなメソッドをどのようにリファクタリングしますか?
注:私が測定したCCは、ILではなくコード上にあります。
c# - Visual Studio でのコード メトリクスの計算
次のコード メトリクスの計算に適したスコア範囲は?
- 保守性指標
- 循環的複雑度
- 継承の深さ
- クラスカップリング
java - jar ファイルを使用した循環的複雑度
私は、Apache ant (バージョン 1.1 から 1.6) の循環的複雑度を見つける必要があるプロジェクトに取り組んでいます。この目的で jar ファイルを使用するように依頼されました。いくつかのツール (Xdepend 試用版と Cyvis ) を使用して、結果を確認しました。次に、Ant Ver1.6 のソース コードからの結果で結果を検証しようとしました。ソースを分析するために、Netbeans プラグインを使用し、いくつかのメソッドの CC を手動で見つけました。
私が見つけたのは、多くの場合、jar ファイルからの CC はほぼ同じであるということでしたが、いくつかの場合は大きな相違がありました。そのようなメソッドの 1 つを調べたところ、try および catch ブロックがほとんど含まれていないことがわかりました。私の質問は次のとおりです。
- Java コンパイラは、CC 値に大きな影響を与える可能性のある最適化 (ループの巻き戻しなど) を実行しますか? このような分析に jar ファイルを使用することをお勧めしますか?
- try および catch ブロックに特定の問題がありますか?その場合、他の分析方法を検討できますか?
- そのような分析のためのより良い (より正確な) ツールはありますか?
このトピックに関するあなたの経験を親切に共有してください。前もって感謝します。
乾杯
cyclomatic-complexity - 複数の出口点を持つコードの循環的複雑度
複数の出口点を持つ関数の循環的複雑度を見つける方法は? wiki ページには p-s+2 と記載されています。ここで、p は決定点の数、s は終了点の数です。
しかし、より独立したパスにつながる可能性があるため、より多くの出口点が循環的複雑性を高めるべきではないでしょうか?
乾杯、
男
cyclomatic-complexity - 循環的複雑性の一般的な原因とその解決策
職場では、高度な循環的複雑性につながる一般的な問題を調査しています。たとえば、if-else ステートメントが大きいと循環的複雑度が高くなる可能性がありますが、条件をポリモーフィズムに置き換えることで解決できます。他にどのような例を見つけましたか?