私たちは、Cコードの品質メトリクスを計算するソフトウェア品質分析ツールを使用します。ネスティング、複雑さ、静的パスなどのレベルを計算します。計算されるメトリックの1つは、関数内の「結び目」の数です。この指標はどういう意味ですか?結び目が少ない方が望ましいですか?結び目はソフトウェアメトリックとはどういう意味ですか?
答えて
ノットは、ソフトウェアメトリクスの世界でかなりの時間(1979年、Woodward、Hennell、Hedley)でした。 ノットのコンセプトは、基本的にループ、決定点、ジャンプなどのソフトウェアのフローチャートで描かなければならない結び目(またはパターン/分岐...)の数に分解できます。
コードは、同じものを実行する他のコードよりも結び目が少ない場合には、より簡単である(したがって速くなる)と考えられます。したがって、ソフトウェアのノットの量を減らすことを目指しますが、機能は同じに保ちます。
私はグラフ理論からより多くのexpextの言葉を出したいと思う:エッジとno ** des **。 – Olaf
@Olaf、私は "結び目"が昔のスパゲッティコードをよりよく表していると感じています。スパゲッティを防止してスパゲッティの "結び目"を防ぐべきです。 –
@PaulOgilvie:あなたはスパゲッティをどのように調理しているのか分かりませんが、もしそうでなければならないように調理されていれば、彼らは本当に "ノット"ではありません(いいえ、私はイタリア語ではありません、しかし良いパスタのように;-)。真剣に:私はそれを理解する。グラフはスパゲッティの一般化された形です。しかし、コードメトリックツールの経験はあまりありません。私にとって、彼らは測定不能な(それは賃金に値するプログラマーです)を測定するマネージャーの動物園の一部です。プロジェクトタイムラインのクリスタルボールに近く、来年の天気はどうですか? – Olaf
ノットは、構造化されていないFortranタイプのコードには、実際にはあまり現代的な言語には当てはまりません。それらは、制御フローがどの程度複雑であるかの尺度を与える。私たちが見たいくつかのプログラムは純粋なスパゲティでした!
「コードはより簡単であると考えられます(したがって高速です)」というフレーズは間違っています。ノットの少ないコードは、より単純で維持しやすいと考えられます。スピードとは関係ありません。
David Hedley(最初に数えた人)から
- 1. 「自己完結型」とはどういう意味ですか?
- 2. 目的Cの^はどういう意味ですか?
- 3. %%はどういう意味ですか?
- 4. ディレクトリ名とは何ですか? 'と '..'という意味で、faDirectoryはどういう意味ですか?
- 5. linuxの意味はどういう意味ですか?
- 6. "javascript://"とはどういう意味ですか?そのコードには意味:
- 7. データクラスという用語はどういう意味ですか?
- 8. defmethodでは ":before:after:around"とはどういう意味ですか?
- 9. 「URLはローカル」とはどういう意味ですか?
- 10. "ビットマップロック"とは実際にはどういう意味ですか?
- 11. 結果はどういう意味がありませんか?
- 12. マネージコードとアンマネージコードとはどういう意味ですか?
- 13. BackboneJs:elとtagNameの違いはどういう意味ですか?
- 14. 「いつも水平」とはどういう意味ですか?
- 15. シェルスクリプトで 'exit 0'とはどういう意味ですか?
- 16. nHibernateで永続性とはどういう意味ですか?
- 17. x^2とはどういう意味ですか? Pythonで
- 18. httpstransportでrequireClientCertificateとはどういう意味ですか?
- 19. 「暗号で安全」とはどういう意味ですか?
- 20. prometheusで "instrument"とはどういう意味ですか
- 21. jqgridで "forceFit:true"とはどういう意味ですか?
- 22. 関数で - =と+ =はどういう意味ですか?
- 23. regex preg phpで[^>]とはどういう意味ですか?
- 24. vimスクリプトで "。="とはどういう意味ですか?
- 25. 静的メソッドでステートレスとはどういう意味ですか?
- 26. Javascriptテストで「スペック」とはどういう意味ですか?
- 27. 「ストリームを流す」とはどういう意味ですか?
- 28. onsubmit = "return false"とはどういう意味ですか? (JavaScript、jQuery)
- 29. 「a [href^=」/「]」とはどういう意味ですか?
- 30. iOSクラッシュレポート「ハードウェアモデル」とはどういう意味ですか?
ツールに関するドキュメントは何を表していますか?またはベンダーですか?あなたはツールでサポートを受けていませんでしたか? – Olaf
Cプログラミングでこの用語を聞いたことがありません。私は航空機の速度がノットで測定できることを知っています。それはすべてです... – ForceBru
https://en.wikipedia.org/wiki/Knot_theory –