問題タブ [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.
java - これの循環的複雑さをどのように減らすことができますか?
オブジェクトを受け取り、検出したオブジェクトのタイプに基づいて何かを行うメソッドがあります。
循環的複雑度を減らすにはどうすればよいですか? 私は周りを検索しましたが、あまりにも有用なものを見つけることができませんでした.
linq - LINQ クエリを拡張メソッドに抽象化しますか
現在のプロジェクトでは、コード メトリクスの「保守性インデックス」と「サイクロメティック複雑度」の目標を設定しました。保守性指数は 60 以上で、循環的複雑度は 25 以下である必要があります。保守性指数 60 以上はかなり高い値であることがわかっています。
また、エンティティをフィルタリング/グループ化/選択するために多くの linq を使用します。これらの linq クエリは、Maintainability Index でそれほど高く評価されていないことがわかりました。このクエリを拡張メソッドに抽象化することで、より高い保守性インデックスが得られます。これは良いことです。しかし、ほとんどの場合、拡張メソッドはもはやジェネリックではありません。これは、ジェネリック型の代わりに自分の型で拡張メソッドを使用するためです。
たとえば、次の linq-query と拡張メソッドの比較:
Linq クエリ
延長方法:
拡張メソッドにより、Maintainability Index が 6 ポイント向上し、流暢な構文が得られます。一方、静的クラスを追加する必要がありますが、それは一般的ではありません。
どのようなアプローチが有利になるかについてのアイデアはありますか? または、linq クエリをリファクタリングして保守性インデックスを改善する方法について、別のアイデアをお持ちですか?
pseudocode - 循環的複雑度の計算 [疑似コード]
以下の疑似コードの Cyclomatic Complexity は「4」です。
どのように数えますか?条件数+1って聞いたけど?それらのelseステートメントを数えますか?よくわかりません。
編集: ケース 2: 次の場合:
循環的複雑度はどうなりますか? 2? または3?
r - R関数の循環的複雑度をどのように計算しますか?
循環的複雑度は、関数を介して取得できる分岐の数を測定します。R関数について計算するための既存の関数/ツールはありますか?そうでない場合は、それを書くための最良の方法についての提案を歓迎します。
これに向けた安価なスタートは、、または関数内でのすべての発生をカウントするif
ことifelse
ですswitch
。ただし、実際の答えを得るには、ブランチがいつ開始および終了するかを理解する必要がありますが、これははるかに困難です。たぶん、いくつかのR解析ツールが私たちを始めさせるでしょうか?
objective-c - Objective-Cでコードの複雑さを視覚化したりメソッド呼び出しをグラフ化したりするためのツールはありますか?
過度に複雑で絡み合っている領域を表示できるコードベースの視覚化を表示したいと思っています。
clangが何であるかは知っていますが、この場合に必要なものが得られるかどうかはわかりません。
c# - 循環的複雑度が58であるため、なぜこのコードをリファクタリングするのでしょうか。
CC 10以下のコードは、保守性の高いコードになると読みました。しかし、私が書いたメソッドにはCC58があります。VS2010コード分析ツールに感謝します。私が書いた方法は、私の理解している限り、非常に単純で、読みやすく、保守しやすいと思います。したがって、コードをリファクタリングすることは好みません。しかし、CCは許容範囲を超えているため、なぜこのメソッドをリファクタリングするのでしょうか。私は自分のコードを改善するためのことを学んでいます。間違いがある場合は、訂正してください。これがコードです。
c# - 循環的複雑度を +1 する C# コードの式の完全なリスト
循環的複雑度をグラフで計算する方法を示すために、C# プロジェクトの各メソッドの制御フロー図 (ノードとエッジを含む単純なフロー グラフ) を作成する必要があります。
最初に VS 2010 を使用して循環的複雑度をカウントし、次にグラフを作成して、結果の値が VS からカウントされた値と同じであることを確認しました。ただし、循環的複雑度の+1と実際に見なされる式がわからないため、ここでいくつかの問題に遭遇しました。
ここで一例を見てみましょう:
この方法では、VS は循環的複雑度を 10 と計算しました。ただし、case ステートメントは 7 つしかないため、他のどの式が複雑さに寄与しているのかわかりません。
多くのソースを検索しましたが、カウントされるすべての式の完全なリストを取得できませんでした。
誰でもこれについて助けることができますか?または、C# コードから制御フロー図を生成できるツールはありますか?
前もって感謝します...
c# - C#用のN'SIQはどこで入手できますか?
N'SIQ Code Metric Collectorの最新の公式リリース(2010-03-31で構築された2.1.4)は、C#をサポートしていません。しかし、インターネットには、誰かがC#やObjective Cなどのサポートされていない言語でHudsonとJenkins用のNSIQコレクタープラグインを使用しているという証拠があります。非公式のビルドであっても、C#をサポートするN'SIQビルドはどこにありますか?
java - 完全修飾クラス名を使用するためのJava循環的複雑度ツール
ほとんどのjavancssツールは、ソースコードで指定されているメソッド引数を使用します。変数名は削除されますが、クラス名はFQNではありません。
たとえば、次のクラスが与えられます。
Javancssは出力を生成します
show2には、java.io.FileではなくFileのみが付属していることに注意してください。処理には、完全修飾名が必要です。レポートにFQNを出力できるncssツールはありますか?(coberturaに組み込まれているjavacssとcheckstyleを試しました。すべて同じように動作します)
編集(背景)メソッドごとにcobertutaカバレッジレポートを作成します。複雑度が高く、カバレッジが低いメソッドについてレポートが必要です。メソッドのCCNをマッピングしようとすると、上記の場合に問題が発生しました。これは、FQNではなくクラス名のみを比較することで(部分的に)解決されました。
cyclomatic-complexity - 循環的複雑度の計算
私は循環的複雑度(CC)の学習段階にあります。練習のために、私は2つの例の循環的複雑度を計算しており、私の答えが正しいかどうかを確認したい...
ウィキペディアを参照すると、CC は次のように指定されM = E − N + 2P
ます。
- E = グラフのエッジの数
- N = グラフのノード数
- P = 連結成分の数
助けてください。
ここで、E = 8、N = 9、P = 1 です。したがって、M = 8 - 9 + (2x1) = 1 です。
例 2:
ここで、E = 11、N = 10、P = 1 です。したがって、M = 10 - 11 + (2x1) = 1 です。
したがって、両方の例で CC は 1 です。私の計算が正しいかどうか教えてください。