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