知識ベース

知識発見メタモデル

Knowledge Discovery MetamodelKDM )は、Object Management Group(OMG)から公開されている仕様です。 KDMは、既存のソフトウェアシステムとそのオペレーティング環境の共通の中間表現であり、アプリケーションライフサイクル管理ツールの深いセマンティック統合に必要な共通メタデータを定義します。 KDMは、ソフトウェアの近代化、ITポートフォリオ管理、ソフトウェア保証のためのOMGの基盤として設計されました。 KDMは、OMGのメタオブジェクト機能を使用して、既存のソフトウェアと連携するツール間のXMI交換フォーマットと、次世代の保証および近代化ツールの抽象インターフェース(API)を定義します。 KDMは、ソフトウェアマイニングとも呼ばれるソフトウェアエンジニアリングアーティファクトの知識発見に対する既存のアプローチを標準化します。

歴史

  • 2003年11月、OMGのアーキテクチャ主導の近代化タスクフォースは、知識発見メタモデル(KDM)RFPを推奨し、プラットフォーム技術委員会が発行しました。このRFPの目的は、 既存のソフトウェア資産とその運用環境に関する情報を表す共通のリポジトリ構造提供することでした KDMの目標は、既存のソフトウェア資産の変換に関する情報交換することと定義されました 。 RFPは、KDMが既存のシステムを文書化する機能、既存のソフトウェアの再利用可能なコンポーネントを発見する機能、他の言語およびMDAへの変換をサポートする機能、または他の潜在的な変換を可能にする機能を提供すると述べました。ナレッジディスカバリメタモデルにより、既存のソフトウェアアーティファクトに関する情報をさまざまなツール間で交換することもできます。これにより、特定の言語、プラットフォーム、または変換の種類に特化したベンダーは、他のベンダーと連携して顧客ソリューションを提供できます。
  • 元のKDM RFPは、OMGメンバーがダウンロードできます。
  • 2004年と2005年を通じて、12社が協力してKDM RFPへの共同対応を準備しました。 5か国の30以上の組織がKDM仕様の開発とレビューに貢献しています。
  • 2006年5月、チームの提出物であるKnowledge Discovery Metamodel(KDM)は、OMGの標準採用プロセスの最終段階に移行しました。 OMGが採用したKDMの仕様は、一般公開されました(OMG文書ptc / 06-06-07)。
  • 2007年3月、KDM Finalization Task Forceは、OMGの標準採用プロセスの最終段階を完了しました。正式なKDM仕様KDM 1.0はOMGから入手できます。
  • 仕様の最新バージョンは2011年7月に最終決定され、KDM 1.3が最新バージョンになりました。
  • KDM Analyticsは、KDMのニュース、リファレンス、および教育資料とツールのオープンポータルを維持します

概要

KDMの目標は、メンテナンス、進化、評価、および近代化のためのツール間の相互運用性を確保することです。 KDMは、エンタープライズソフトウェアのさまざまな側面に関連する知識の重要な側面を記述するためのオントロジーとしても表示できるメタモデルとして定義されています。 KDMサポートとは、KDMエコシステムへの投資を意味します。これは、ツールベンダー、サービスプロバイダー、および商用コンポーネントのオープンスタンダードベースのまとまりのあるコミュニティです。

KDMは、コードだけでなく、エンタープライズソフトウェアシステム全体を表します。 KDMは、既存のソフトウェアを説明するための広範囲のエンティティ関係表現です。 KDMは、既存のソフトウェアシステムの構造および動作要素を表します。 KDMの重要な概念は、 コンテナです。つまり、他のエンティティを所有するエンティティです。これにより、KDMは既存のシステムをさまざまな粒度で表現できます。

KDMは、動作を表すための正確なセマンティック基盤、いわゆるmicro- KDMを定義します。たとえば、既存のソフトウェアシステムの静的解析を実行するために使用できる、忠実度の高い中間表現を提供します。 micro-KDMは、KDMの仮想マシンと目的が似ていますが、KDMは実行可能なモデルまたは制約モデルではなく、分析のための既存のアーティファクトの表現です。

KDMは、既存のソフトウェアシステムのインクリメンタル分析を容易にします。最初のKDM表現が分析され、KDMテクノロジー空間内で完全に実行されるKDMからKDMへの変換として、より多くの知識が抽出され、明示されます。知識抽出プロセスのステップはツールによって実行でき、アナリストが関与する場合があります。

KDMは、言語およびプラットフォームに依存しない統一された表現です。その拡張メカニズムにより、ドメイン、アプリケーション、および実装固有の知識を追加できます。

建築

KDMパッケージは、次の4つの層に配置されます。

インフラストラクチャ層

KDMインフラストラクチャレイヤーは、他のすべてのパッケージに小さな共通コアを提供するCorekdm 、およびSourceパッケージ、既存システムのアーティファクトのインベントリモデル、およびソースに戻るリンクとしてのメタモデル要素間の完全なトレーサビリティで構成されます成果物のコード、および均一な拡張メカニズム。 Coreパッケージは、他のKDMパッケージで再利用されるパターンのいくつかを決定します。 KDMはメタオブジェクト機能を使用するメタモデルですが、KDMコアとリソース記述フレームワーク(RDF)には整合性があります。

プログラム要素レイヤー

Program Elements Layerは、コードパッケージとアクションパッケージで構成されています。

  • Codeパッケージは、データ型、プロシージャ、クラス、メソッド、変数などのプログラミング言語によって決定されるプログラミング要素を表します。このパッケージは、Enterpriseと呼ばれる別のOMG仕様のCommon Application Meta-model(CAM)と目的が似ていますアプリケーション統合(EAI)。 KDM Codeパッケージはより詳細なレベルを提供し、ソフトウェアシステムのアーキテクチャ的に重要なビューとシームレスに統合されます。 KDMでのデータ型の表現は、ISO標準ISO / IEC 11404に準拠しています(汎用データ型も参照)。
  • アクションパッケージは、ステートメント間の詳細な制御とデータフローを含む、アプリケーションの低レベルの動作要素をキャプチャします。コードとアクションのパッケージを組み合わせることにより、エンタープライズソフトウェアシステムの各コンポーネントの忠実度の高い中間表現が提供されます。

リソース層

リソース層は、既存のソフトウェアシステムの運用環境を表します。これは、エンタープライズアプリケーション統合(EAI)の分野に関連しています。

  • プラットフォームパッケージは、オペレーティングシステム、ミドルウェアなどに関連するソフトウェアの動作環境を表します 。これには、ランタイムプラットフォームによって決定されるコンポーネント間の制御フローが含まれます。
  • UIパッケージは、既存のソフトウェアシステムのユーザーインターフェイスに関する知識を表します
  • イベントパッケージは、既存のソフトウェアシステムのイベントおよび状態遷移動作に関連する知識を表します
  • データパッケージは、インデックスファイル、リレーショナルデータベース、その他の種類のデータストレージなどの永続データに関連するアーティファクトを表します。これらの資産は、エンタープライズメタデータを表すため、エンタープライズソフトウェアにとって重要です。 KDM Dataパッケージは、Common Warehouse Metamodel(CWM)と呼ばれる別のOMG仕様と連携しています

抽象化レイヤー

抽象化レイヤーは、ドメインおよびアプリケーションの抽象化を表します。

  • この情報が既存のアプリケーションからマイニングできる限り、 概念パッケージはビジネスドメインの知識とビジネスルールを表します。これらのパッケージは、Semantics of Business Vocabulary and Business Rules(SBVR)と呼ばれる別のOMG仕様と連携しています
  • 構造パッケージは、ソフトウェアシステムの論理的編成をサブシステム、レイヤー、およびコンポーネントに表すためのメタモデル要素を記述します
  • ビルドパッケージは、ソフトウェアシステムのエンジニアリングビューを表します