Latest evidence-based health information
Apps

プログラミングツール CppDepend はプロが C++ プロジェクトを理解するのに役立ちます

プログラミングツール CppDepend はプロが C++ プロジェクトを理解するのに役立ちます
プログラミングツール CppDepend はプロが C++ プロジェクトを理解するのに役立ちます

「10 PRINT 'HELLO WORLD'」を過ぎると、プログラムは複雑になってきます。オブジェクト指向言語の現代のプロジェクトは、数百ものコードファイルにまたがることがあり、プログラム全体の構造や、各部分が他の部分とどのように関連しているかを把握するのは困難、あるいは不可能になることがあります。https://[removed-link]/downloads/file/fid,83977-order,4/description.html(価格帯は様々、機能制限付きの無料版あり)は、C++プログラマーにとってこの問題の解決に役立つ強力なソース解析ツールです。

CppDepend スクリーンショット
CppDepend は複雑に見えますし、実際複雑ですが、数十のコード ファイルを手動で分析するのはさらに困難です。

CppDepend を使うには、起動してプロジェクトファイルを指定するだけです。CppDepend は、.build、.sln、.vcproj など、幅広いプロジェクト形式に対応しています。必要なデジタル環境が整ったら、「分析」ボタンを押して、あとは待つだけです。プロジェクトの規模にもよりますが、すぐに分析結果が表示されます。

CppDepend のデフォルトの分析機能には、私がこれまで考えたこともなかったような、膨大な数のメトリクスが含まれています。関数内のコード行数といった単純な項目に加え、CppDepend は、型、クラス、フィールドの遠心性結合と求心性結合(オブジェクトが依存している項目の数、あるいは依存している項目の数)や、循環的複雑度(関数内の決定点の数)といった項目も計算します。さらに、CppDepend には SQL の一種であるクエリ言語が付属しており、これを使って検索対象を定義できます。

CppDepend は膨大な量の情報を生成するため、タブ、ウィンドウ、レポートが多数存在し、インターフェースが非常に複雑になっているのも当然です。良い点は、何かを見つけるために10ものダイアログを掘り下げる必要がないことです。悪い点は、CppDepend が二つの罪を犯していることです。一つは金銭的な罪、もう一つは致命的な罪です。

第一の罪は、ユーザーを驚かせることです。「驚きを最小限に抑える道」はインターフェース設計の最良のモデルですが、CppDepend はそれに従っていません。多くの場合、メインインターフェースで項目や値をクリックすると、デフォルトの Web ブラウザが起動して結果が表示されます。これらのレポートに必要な単純なレンダリングを Firefox に頼る必要はありません。

2 つ目の罪、より深刻な罪は、試用版の振る舞いにあります。ボタンやオプションが有効になっているように見えるままにしておきながら、試用版ではこの機能は利用できないことを通知するポップアップを表示することで、試用版であることを常に思い出させます。これは予期しないときに発生することがあります。コード モジュール間の依存関係をドリルダウンして表示できる機能を使用していたのですが、7 回クリックした後、CppDepend が既定のビューにリセットされ、試用版ではグリッドの調整が 7 回連続でしかサポートされていないというメッセージが表示されました。試用版の目的がユーザーにアップグレードを促すことであることは理解しますが、時間制限付きの完全機能試用版は機能制限付きのデモ版よりもはるかに優れており、その制限で不意を突く機能制限付きのデモ版よりもはるかに優れています。

CppDepend は、単独のプログラマーや趣味のプログラマー市場をターゲットにしていません。その機能セットと価格は、複数の開発者が関わる大規模プロジェクトに最適です。もしあなたがそのようなプロジェクトの開発者またはマネージャーであり、使用できない機能を警告するダイアログが頻繁に表示されることに問題がなければ、デモ版をダウンロードして試してみる価値があります。

注:記載されている価格 679 ドルは 1 ライセンスあたりの価格です。ライセンス数が増えるにつれて、1 ライセンスあたりの価格は下がります。試用版/デモ版では、テスト条件を満たす上位 10 件の項目のみがリストされ、依存関係グラフのドリルダウン回数が制限されるなど、多くの制限があります。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.