コード品質を確認する

完了

コードの品質は、主観的に測定するべきではありません。 開発者が記述するコードでは、それらのコードの品質が高く評価されますが、それはコード品質を測定するための優れた方法ではありません。 異なるチームでは、コンテキストに基づいて異なる定義が使用される場合があります。

高品質と見なされるコードは、自動車の開発者にとっては 1 つのことを意味しているかもしれません。 また、Web アプリケーションの開発者にとっては、別のことを意味しているかもしれません。

コードの品質は、ソフトウェア全体の品質に影響するため、非常に重要です。

"ソフトウェアの不具合の原因と修正方法" に関する調査では、個々のプログラマーが自分のソフトウェアのバグを発見する効率は 50% 未満であることがわかりました。 また、ほとんどの形式のテストは、効率が 35% に過ぎません。 そのため、品質の判断が困難になります。

より高い品質を測定するための、5 つの主要な特徴があります。

[信頼性]

信頼性では、システムが特定の運用期間にわたって障害が発生することなく実行される確率が測定されます。 これは、ソフトウェアの欠陥の数と可用性に関連しています。 いくつかの欠陥は、スタティック分析ツールを実行することで測定できます。

ソフトウェアの可用性は、平均故障間隔 (MTBF) を使用して測定できます。

信頼性の高いコードベースを開発するには、欠陥数を少なくすることが重要です。

保守容易性

保守容易性では、ソフトウェアをどのくらい簡単に管理できるかが測定されます。 これには、コードベースのサイズ、一貫性、構造、および複雑さが関連しています。 また、保守が容易なソース コードになるかどうかは、テスト容易性、理解容易性のようないくつかの要因に依存しています。

1 つのメトリックを使用して、保守容易性を確保することはできません。

保守を容易にするために検討できるメトリックに、スタイルに関する警告の数と、Halstead 複雑さメジャーがあります。

保守が容易なコードベースの開発には、オートメーション レビューと人のレビュー担当者の両方が不可欠です。

Testability

テスト容易性では、テスト作業をソフトウェアがどれくらいうまくサポートしているかが測定されます。 これは、テストをどれくらいうまく制御、観察、分離、および自動化できるかなどの要因に依存します。

テスト容易性は、システム内の潜在的な障害を検出するために必要なテスト ケースの数に基づいて測定できます。

ソフトウェアのサイズと複雑さが、テスト容易性に影響する可能性があります。

そのため、コード レベルでメソッドを適用すると (サイクロマティック複雑度など)、コンポーネントのテスト容易性を向上させることができます。

移植性

移植性では、同じソフトウェアがさまざまな環境でどの程度使用できるかが測定されます。 これは、プラットフォームの独立性に関連しています。

移植性には、特定のメジャーはありません。 ただし、移植可能なコードであることを確認するには、いくつかの方法があります。

開発の終了まで待たずに、さまざまなプラットフォームでコードを定期的にテストすることが不可欠です。

また、コンパイラの警告レベルをできるだけ高く設定し、コンパイラを少なくとも 2 つ使用することをお勧めします。

コーディング標準を適用することも、移植性に役立ちます。

再利用性

再利用性では、コードなどの既存の資産を再び使用できるかどうかが測定されます。

資産は、モジュール性や疎結合の特性がある場合に再利用しやすくなります。

再利用できるかどうかを測るものに、相互依存関係の数があります。

静的アナライザーを実行すると、これらの相互依存を特定するために役立ちます。