アスペクトがコードに織り込まれた後でソース コードについて推論したい場合は、バイナリ コードではなく、ソース コードにアスペクトを織り込む必要があります。
多くのアスペクト ウィーバーは、コンパイラ フロント エンドによって生成される情報 (シンボル テーブル、名前、型、式の型など) にアクセスできないため、バイナリ コード ウィービングを行います。したがって、ハックは、コンパイラによって生成された仮想マシン コードを使用することです (このスタントは基本的に、.net IL や Java クラス コードなどの VM 命令セットに対してのみ機能します)。シンボル テーブル情報。
しかし、そのようなウィービング プロセスのバイナリ結果について推論できない場合は、織り込まれたプログラムにバグがないことを確認できません。これは、OP の最初の質問のポイントです。「SCA ツールを実行するにはどうすればよいですか? (有効な) 織られた情報源について?".
これは、次の 2 つの方法で修正できます。
- ソースではなくバイト コードを処理する SCA ツールをコミュニティに作成してもらいます。ソース コードにはコンパイル プロセスで失われた情報が含まれている可能性があるため、これは難しい場合があります。
- より良いアイデア:アスペクト コミュニティに、ソース コードを操作するアスペクト ウィーバーを作成してもらい、ソース コードを生成してもらいます。完全な言語フロント エンドを取得するのは難しいため、これは難しいかもしれません。
コミュニティに選択させることはできません。
コミュニティが 2 番目の方法であるDMS Software Reengineering Toolkitを選択するのを支援することを強くお勧めします。これは、「これを見たら、それで置き換えてください」という形式のディレクティブを実行するプログラム変換システムですが、完全な言語フロントによって生成されたコンパイラ データ構造にそのような変更を実際に適用することにより、言語の構文とセマンティクスを尊重します。終了します。(これは、数学における等式代入のソフトウェア工学バージョンです)。変更されたデータ構造は、コメント付きのコンパイル可能なソース テキストとして再エクスポートできます。
変換で一般的に何ができるかを理解していれば、アスペクト ウィーバーはプログラム変換システムの特殊なケースであることがわかります。したがって、DMS を使用してアスペクト ウィーバーを実装するのは簡単で、結果はソース コードです。つまり、ソース コード分析ツールを適用できます。
これが Roo によって生成されたコードを短期間で分析するという OP の問題を実際に解決するとは思えません :-{