C++コーディング標準は、開発するソフトウェアが高品質で安全かつ堅牢であることを保証したいソフトウェアエンジニアにとって不可欠です。ソフトウェア開発のための貴重なガイドラインを提供するため、それらに精通していることが重要です。このブログ記事では、 CppDependがサポートする4つの主要なC++コーディング標準を探求します。
CERT(Computer Emergency Response Team)は、組織や開発者が安全で高品質なソフトウェアを作成するのを支援するために設計されたガイドラインのセットです。エラー処理、セキュリティの問題、コーディングスタイルなど、安全なC++コードを開発するためのベストプラクティスに関するガイダンスを提供します。
例えば、CERTは、すべてのソフトウェアが安全なコーディングスタイルで開発されるべきであり、すべてのコードは本番環境に投入される前にテストされるべきであると推奨しています。
CppDependでプロジェクトを解析した後、「Queries and Rules Explorer」セクションに移動し、左側のメニューからCERT C++ルールを選択します(下の画像で赤く強調表示されています)。これにより、関連するすべてのCERT C++ルールが右側に表示されます。ルールをクリックすると、対応するCQLinqクエリと関連するソースコードが自動的に生成されます。さらに、「Metrics View」セクションでは、問題の場所と重要度の可視化が提供されます。

MISRA(Motor Industry Software Reliability Association)は、自動車業界向けに特別に設計されたコーディング標準のセットです。安全性が重要なソフトウェアに焦点を当て、バッファオーバーフローや整数オーバーフローなどの潜在的なセキュリティ欠陥を軽減するためのガイダンスを提供します。
例えば、MISRAは、すべての変数がその型とともに宣言されるべきであり、すべてのコードは既知のコーディング標準に対してテストされるべきであると推奨しています。
CppDependでプロジェクトを解析した後、「Queries and Rules Explorer」セクションに移動し、左側のメニューからMISRAルールを選択します(下の画像で赤く強調表示されています)。これにより、関連するすべてのMISRAルールが右側に表示されます。ルールをクリックすると、対応するCQLinqクエリと関連するソースコードが自動的に生成されます。さらに、「Metrics View」セクションでは、問題の場所と重要度の可視化が提供されます。

AUTOSAR(Automotive Open System Architecture)は、車載アプリケーションを開発するためのオープンソースフレームワークです。アプリケーションに安全でセキュアな動作環境を提供することに焦点を当て、セキュアなソフトウェアを設計するためのガイドラインのセットを含んでいます。
例えば、AUTOSARは、すべてのコードが潜在的なセキュリティ脆弱性についてテストされるべきであり、開発者はそれらの脆弱性を軽減するためにセキュアなコーディング手法を使用すべきであると推奨しています。
CppDependでプロジェクトを解析した後、「Queries and Rules Explorer」セクションに移動し、左側のメニューからAUTOSAR C++ 2014ルールを選択します(下の画像で赤く強調表示されています)。これにより、関連するすべてのAUTOSAR C++ 2014ルールが右側に表示されます。ルールをクリックすると、対応するCQLinqクエリと関連するソースコードが自動的に生成されます。さらに、「Metrics View」セクションでは、問題の場所と重要度の可視化が提供されます。

CWE (Common Weakness Enumeration)は、セキュリティの問題を特定し対処するために使用できるソフトウェアの弱点のカタログです。弱点とその関連リスクの説明を提供し、それらを修正する方法に関するガイダンスを提供します。
例えば、CWEは、すべてのコードが潜在的なセキュリティ欠陥についてテストされるべきであり、開発者はそれらを修正するためにセキュアなコーディング手法を使用すべきであると提案しています。
CppDependでプロジェクトを解析した後、「Queries and Rules Explorer」セクションに移動し、左側のメニューからCWEルールを選択します(下の画像で赤く強調表示されています)。これにより、関連するすべてのCWEルールが右側に表示されます。ルールをクリックすると、対応するCQLinqクエリと関連するソースコードが自動的に生成されます。さらに、「Metrics View」セクションでは、問題の場所と重要度の可視化が提供されます。

ユースケース
例えば、データベースを使用するソフトウェアアプリケーションを考えてみましょう。これらのコーディング標準は、次のように組み合わせて適用できます。
- CERTガイドラインは、コードが潜在的なセキュリティ欠陥についてテストされるべきであり、それらを軽減するためにコーディング手法が使用されるべきであると推奨します。
- MISRAは、すべての変数がその型とともに宣言されるべきであり、すべてのコードが既知のコーディング標準に対してテストされるべきであると推奨します。
- AUTOSARは、ソフトウェアが潜在的なセキュリティ脆弱性についてテストされるべきであり、それらを修正するためにセキュアなコーディング手法が使用されるべきであると推奨します。
- 最後に、CWEは、すべてのコードが潜在的なセキュリティ欠陥についてテストされるべきであり、それらを修正するためにセキュアなコーディング手法が使用されるべきであると提案します。
これらのC++コーディング標準に従うことで、組織や開発者は、開発するソフトウェアが安全で高品質かつ堅牢であることを保証するのに役立ちます。これらの各標準と、ソフトウェアをできる限り安全で信頼できるものにするためにそれらをどのように組み合わせて使用できるかを理解することが重要です。
Consider CppDependをダウンロード して、プロジェクトが確立されたコーディング標準に準拠していることを確認することを検討してください。
