ソフトウェア マイニングは、既存のソフトウェア成果物の理解を含むソフトウェア近代化の分野における知識発見の応用です。このプロセスは、リバース エンジニアリングの概念に関連しています。通常、既存のソフトウェアから得られた知識は、必要に応じて特定のクエリを実行できるモデルの形式で提示されます。エンティティ リレーションシップは、既存のソフトウェアから得られた知識を表す一般的な形式です。Object Management Group (OMG)は、既存のコードの知識発見を実行する目的でソフトウェア資産とその関係の オントロジーを定義するKnowledge Discovery Metamodel (KDM)仕様を開発しました。
ソフトウェアマイニングとデータマイニング
ソフトウェア マイニングはデータ マイニングと密接に関係しています。既存のソフトウェア成果物には、ソフトウェア システムの進化の鍵となる膨大なビジネス価値が含まれているからです。ソフトウェア システムからの知識発見では、ソフトウェア システムによって処理されるデータだけでなく、構造、動作も対象とします。個々のデータ セットをマイニングするのではなく、ソフトウェア マイニングでは、データベース スキーマなどのメタデータに焦点を当てます。OMG知識発見メタモデルは、総合的な既存システム メタモデルの一部として、アプリケーションメタデータをキャプチャするための統合表現を提供します。別の OMG 仕様であるCommon Warehouse メタモデルは、エンタープライズメタデータのマイニングに完全に焦点を当てています。
テキストマイニングソフトウェアツール
テキストマイニングソフトウェアツールを使用すると、自動モデル生成とドキュメント分類、ドキュメントクラスタリング、ドキュメント視覚化、Webドキュメントの処理、Webのクロールなどのデータ分析を目的としたテキストドキュメントの容易な処理が可能になります。
ソフトウェアマイニングのレベル
ソフトウェアにおける知識の発見は、リバース エンジニアリングの概念に関連しています。ソフトウェア マイニングは、ソフトウェア システムによって処理されるデータだけでなく、構造、動作も対象とします。
マイニング ソフトウェア システムはさまざまなレベルで発生する可能性があります。
- プログラムレベル(個々のステートメントと変数)
- デザインパターンレベル
- コールグラフレベル(個々の手順とそれらの関係)
- アーキテクチャレベル(サブシステムとそのインターフェース)
- データ レベル (データ ストアの個々の列と属性)
- アプリケーション レベル (主要なデータ項目とアプリケーションを介したフロー)
- ビジネスレベル(ドメイン概念、ビジネスルール、コードでの実装)
ソフトウェアマイニングの結果を表現する形式
- データモデル
- メタデータ
- メタモデル
- オントロジー
- 知識表現
- ビジネスルール
- 知識発見メタモデル(KDM)
- ビジネスプロセスモデリング表記法(BPMN)
- 中間表現
- リソース記述フレームワーク(RDF)
- 抽象構文木(AST)
- ソフトウェアメトリクス
- グラフィカルユーザーインターフェース
