2011-12-21 10 views
2

プログラミング言語(.NET、Java、PHPなど)に関係なくOOPコードをAOPに変換できるオープンソースツールはありますか?OOPコードをAOPに変換するためのツール

+2

AOPはクロスカットの問題をコードに適用します。おそらく、OOPアプリケーション全体で共通のコードを見つけることができ、それをアスペクトに引き出すツールを意味するでしょうか?私はあなたが共通のコードを見つけるためにクローン検出器を使うことを期待していますが、私が知っているクローンを抽出するツールはありません。 –

+1

について「おそらく、OOPアプリケーション全体で共通のコードを見つけることができ、それをアスペクトに引き出すツールを意味する」と、OOPコードをAOPに変換した後の統計分析も表示しています。 –

+2

私はこれを行うことができるツールを知っていますが、オープンソースではありません。 –

答えて

1

"AOPizer"が必要です。潜在的にその言語の側面にコード

1)最初のタスクを抽出し、既存のアプリケーション

  • における横断的なコードを見つける

    • :あなたが解決したいように見える問題は2つの部分があります本質的にクローン検出器を必要とする。多くのクローン検出器のみ 同一のテキストを検索します。 には、コードから取得する必要のあるパラメータがある可能性があるため、これらはあまり役に立ちません。 ( 関数の引数を記録する場合は、それらの引数によって何らかの形でパラメータ化する必要があります)。 したがって、パラメータ化されたクローンを検出できる検出器が必要です。また、 これらのクローンをのコードから抽出可能なにする必要がありますので、見つかったものは というプログラミング言語の明確な概念に相当します(式、 ステートメント、ブロックなど)。多くのトークンベースのクローン検出器はパラメータ化されたコードクローンを見つけることができますが、言語構造を理解していないため、 はこの作業には有効ではありません。

      CloneDRは、ターゲット言語の抽象構文 を使用してクローンを検出します。正確な言語パーサが必要です。それはPHP、Java、VB.net、C#のようなパーサーを持っています。そのクローンは、上記で定義した言語構造に常に対応しています。単一の識別子であるパラメータ、またはクローン間で一貫して変化するより大きな言語構造(式、文など)を見つけることができます。これは、クローンセットとそれらのインスタンスの正確な位置、および正確なパラメータ値の人間が読めるレポートを生成します。また、同じ情報を機械可読なレポートとして生成し、別のツールで検出プロセスを利用できるようにします。 CloneDRは過去にこのようなクロスカッティング技術を捜し求めていました:From goals to aspects: discovering aspects from requirements goal models(私はCloneDRの著者です)。

      2)クローンデータを使用して、クローンを複数の側面に抽出できるツールが必要になります。まず、アスペクト言語を定義する必要があります。次に、その言語を解析し、クローンを指し示し、そのようなアスペクトに抽象化/変換できるツールが必要です。私はこれを直接行う既成のツールがないことを知っているので、必要なすべての機械を備えたカスタムツールが必要です。私たちのDMS Software Reengineering Toolkitは、そのようなカスタムツールを念頭に置いて設計されています。 (これは私の発言の「できる」部分を満たしています;あなたが望むものを得るために追加作業があります)。実際、DMSは、現在持っていない言語用のアスペクトツールを構築するために使用されています。 A technique for constructing aspect weavers using a program transformation engineを参照してください。 [CloneDRが実際にDMSの上に構築されていることは驚くことではないかもしれませんし、さらにより良いエンジニアリングパスがCloneDR機構を実行し、その結果を中間のエクスポート/インポートを経由するのではなくカスタムAOP抽出コードに直接渡しますクローンデータロケーションの数)。

      あなたはまた、オープンソースを望んでいました(私はこれを見るたびに、これを「無料」のコードワードとして読んでいます)。悲しいかな、これらのツールは無料ではありません。彼らは何十年ものPhDレベルのエンジニアリングを構築して磨くことが必要でした(私の個人的な何十年にもわたる私はDMSのアーキテクトです)。彼らは商用ライセンスを持っており、提供された価値の中程度の価格だと思うところで入手できます(価値の大部分は、これらのツールを一般的な方法で構築することを可能にする視点です)。研究ライセンス。詳細については、オフラインでお問い合わせください。私のバイオを見てください。

  • +0

    博士バクスター、ありがとうございます。まもなく私はあなたに連絡します。 –

    関連する問題