5

私はいくつかのレガシーコードを分析しています。これは約 80.000 行の古い plsql コードです。一見すると、ソースにはかなりの重複があり、削除する必要があります。diff のマニュアルを実行して各ファイルを確認する代わりに、ソース コードの重複行を検出するためのツール/コマンドライン confu が必要です。

私の目標は、ソースの書き換えの最小サイズと、このプログラムに取り込まれる実際の知識の量について、経験に基づいた推測を行うことです。各ファイル内の制御ステートメント IF ELSE FOR などと関数の量を見つけるために、いくつかの基本的な静的コード アナライザーを作成しました。しかし、重複したコードは統計から削除する必要があります。

4

4 に答える 4

3

Simian - Similarity Analyzerを見たことがありますか? (確認したところ無料ではなくなりましたが、評価目的で 15 日間利用できます。)

Simian (Similarity Analyser) は、Java、C#、C、C++、COBOL、Ruby、JSP、ASP、HTML、XML、Visual Basic、Groovy ソース コード、さらにはプレーン テキスト ファイルの重複を識別します。実際、simian は、ini ファイル、デプロイメント記述子など、人間が判読できる任意のファイルで使用できます。

私は実際にそれを使用しましたが、うまく機能します。

于 2011-01-18T13:58:36.670 に答える
0

Sonarには重複検出機能があり、PL / SQLをサポートしていると主張していますが、これを使用したことはありません。

于 2011-01-18T14:02:00.070 に答える
0

plsqlパーサーを頼む/借りる/盗む/書く必要があり、結果の抽象構文ツリーを比較する必要があります。あなたが持っているコードベースのサイズでは、それは価値があるかもしれません. 完了したら、パーサーには他の用途があります。

于 2011-01-18T14:08:15.720 に答える
0

これはどう:

http://sourceforge.net/projects/sddforeclipse/

オープンソースであり、商用ソフトウェアで使用されていると言われています。ちなみにEclipseのプラグインです。

于 2012-12-28T09:00:05.080 に答える