コードを調べてアーキテクチャを分析するLattixに出会いました。C/C++、Java、.Net などをサポートします。定義されたアーキテクチャを維持するための特定のルールを定義できます。このツールは、ビルド時に違反にフラグを立てることができます。
誰かがこれまたは他の同様のツールを使用しましたか? 開発中にこのツールの利点が見られますが、この種のツールが必要かどうかはわかりませんか?
コードを調べてアーキテクチャを分析するLattixに出会いました。C/C++、Java、.Net などをサポートします。定義されたアーキテクチャを維持するための特定のルールを定義できます。このツールは、ビルド時に違反にフラグを立てることができます。
誰かがこれまたは他の同様のツールを使用しましたか? 開発中にこのツールの利点が見られますが、この種のツールが必要かどうかはわかりませんか?
アセンブリの依存関係を追跡するために、Lattix と NDepends の両方を使用します。
どちらのツールも、依存関係構造マトリックス (DSM) を使用して、アセンブリとクラスの間の依存関係を静的に視覚化することをサポートしています。DSM を使用すると、アプリケーションのアーキテクチャを表示できます。たとえば、レイヤリングを使用する場合、これは DSM で表示されるはずです。周期的な依存関係も DSM に表示されます。
OOPSLA05-dsm.pdfに実用的な紹介があります。
NDepends は特に .Net を対象としており、Visual Studio と統合されています。Lattix は、他の言語用の DSM を作成することもできます。どちらもビルド統合をサポートしており、ビルドにルールを作成して、誤った依存関係を防ぐことができます。
両方のツールを試して、生成された DSM が期待どおりかどうかを確認してください。循環依存関係を確認し、無効な依存関係がないかどうかを確認します。たとえば、ビジネス レイヤーを使用する代わりに、データ アクセス レイヤーを直接使用するユーザー インターフェイス。
私は主に C++、.NET、Java、および Fortran コードを分析するために Lattix を使用しました。新しいアプリケーションの開発と既存のソフトウェアのアーキテクチャの改善の両方に役立ちます。このツールは、.NET dll、Java クラスまたは jar ファイルの直接インポート、および SQL 接続をサポートしています。C++ や Fortran を検討している場合は、Klockwork、Understand、Clang などのパーサーが必要になります。すべてのソフトウェア ビルドで Lattix プロジェクトの継続的な更新を設定することができます。これにより、ソフトウェアのアーキテクチャを継続的に監視するための更新された DSM が確実に得られます。これにより、ソフトウェアが時間の経過とともにどのように変化しているか、設計の最初に設定したルールにコードが違反しているかどうか、またはルールを変更する必要があるかどうかなどを知ることができます。既存のソフトウェアを調べるには、このツールは、システムをすばやく分解し、循環的な依存関係がある場所を特定できます。他のサブシステム (クラスなど) への近さに基づいてシステムを分割したり、依存関係のパターンに基づいてサブシステムをグループ化するためのアルゴリズムがあります。これは、既存のソフトウェアのアーキテクチャを改善してモジュール化することを検討している場合に役立ちます。
kb.lattix.com には豊富な情報があります。登録して記事を読んでください。また、ツールが役立つかどうかを確認できる評価版も提供されていると思います。
まあ、ツールはうねりがあり、見栄えがよく、提示されたときにかなり機能しました.
その後、C++ からリバース エンジニアリングを行うすべてのツール (Rational Rose、StarUML、Sparx (より優れたもの)、Understand のいくつかのバージョンでの私の経験では) は問題に陥ります。
その理由はわかります。C++ のコードは、C# よりも複雑で順序が低く、ライブラリ、モジュール、COM などへのリンクがあります。
私たちの実際のプロジェクトでは、(Understand データベースに基づいて) リバース エンジニアリングが即座に完全に凍結されました (ハード リセット フリーズという意味です)。
WS またはサーバーで実行する必要があるかもしれません。
それは了解のせいだったのかもしれません。
リセット後、マトリックスが 200 以下のモジュールを開いたときに非常に遅くなりました。ええと、私たちのプロジェクトがうまく開発されているとは決して言いませんでした。私たちはそれをより良くするためにそれを研究したいと思っていました. 長期的には非常に役立つと思いますが(会社が継続的な再作業に小切手を支払うことに同意した場合)、これらすべてのツールと同様に、ゼロから始めて常に継続的に使用することをお勧めします. 注: bsc (Microsoft データベース) で使用しようとしましたが、これも失敗しました。
NDependは、.Net プログラムのソフトウェア アーキテクチャを分析するための非常に完全なツールです。この種のツールは、依存関係を追跡し、さまざまなコード メトリックを測定するのに非常に便利です。