(57)【要約】【課題】ソフトウェア開発支援ツールにおいて、オブジェクト指向言語により記述されたソフトウェア部品の再利用のためにソフトウェア部品の検索を容易に行える機能を実現する。【解決手段】オブジェクト検索の際に、パターンマッチング方式において、モデリングデータを一定の法則の元に特徴ベクトル空間上に位置付けるための特徴抽出を行うことにより、型や数を元にした形式的な構造、名称を元にした意味的な構造、複数クラス間の関連性から検索が行えることで、要求するソフトウェア部品の検索を容易にする。また、システムの学習機能により、使い込むほどより精度の高い検索結果を得ることができる、という特長を持つ。【選択図】        図１
2004287650.tif 000002
【特許請求の範囲】
【請求項１】
本発明は、計算機上でのソフトウェア開発における開発支援ツールのうち、オブジェクト指向言語により記述されたソフトウェア部品の再利用のために
パターンマッチング方式によりソフトウェア部品の検索が行えることを特徴とするソフトウェア開発支援ツール。
【請求項２】
請求項１記載のパターンマッチング方式において、モデリングデータを一定の法則の元に特徴ベクトル空間上に位置付けるための特徴抽出を行うことにより、
型や数を元にした形式的な構造、名称を元にした意味的な構造、複数クラス間の関連性から検索が行えることを特徴とするソフトウェア開発支援ツール。
【請求項３】
請求項１記載のオブジェクト指向言語により記述されたソフトウェア部品において、該ソフトウェア部品を開発するにあたり
記述された内容を自動的に解析し、世界標準の言語形式に変換することにより、容易に他のソフトウェア開発ツールでの利用、加工を可能にすることを特徴とするソフトウェア開発支援ツール。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、パターンマッチングによるオブジェクト検索が容易に行えることを特徴とするソフトウェア開発支援ツールに属するものである。
【０００２】
【従来の技術】
近年、ソフトウェア開発の主流となっているオブジェクト指向型設計に基づくシステム開発では、コンピュータを用いたソフトウェア設計開発支援ツール（ＣＡＳＥ）もそれに適したオブジェクト指向型設計を行うツールが一般になっている。
【０００３】
現在、市販されているオブジェクト指向型開発支援ツールは、分析や設計の結果（データ）をサーバのリポジトリ内に置き、複数のクライアントから利用できるようにすることで、「部品再利用」の実現を容易にしているが、こうして財産として蓄えられる部品が多くなればなるほど、再利用する部品をいかに簡単に取り出せるかより、再利用できる部品をいかに探し出すか、という点が重要になってくると考えられる。実際、開発済みの部品が再利用されるケースは、コンポーネントとしてきちんと整理され、ユーザーズマニュアルが整っているものだけ、という場合がほとんどである。
【０００４】
【発明が解決しようとする課題】
しかしながら、以上の従来技術では、過去の部品を再利用する手段は提供しているが、再利用可能な部品を検索する手段については、非常に単純な機能しか備えていない。そこで、この発明は、再利用可能なソフトウェア部品の検索を、パターンマッチングによって行うことを課題とする。
【０００５】
【課題を解決するための手段】
以上のことを解決するために、請求項１の発明は、パターンマッチング方式によりソフトウェア部品の検索が行えることを特徴とするソフトウェア開発ツールである。
【０００６】
また請求項２は、モデリングデータを一定の法則の元に特徴ベクトル空間上に位置付けるための特徴抽出を行うことにより、型や数を元にした形式的な構造、名称を元にした意味的な構造、複数クラス間の関連性から検索が行えることを特徴とするソフトウェア開発支援ツールである。
【０００７】
また請求項３は、オブジェクト指向言語により記述されたソフトウェア部品において、記述された内容を自動的に解析し、世界標準の言語形式に変換することにより、容易に他のソフトウェア開発ツールでの利用、加工を可能にすることを特徴とするソフトウェア開発支援ツールである。
【０００８】
【発明の実施の形態】
本発明は、例えば図１に示すような構成のシステムに適用される。
【０００９】
【実施例】
図１には、本発明の一実施形態に係るシステム構成が示されている。まず、開発者Ａ１１２は、オブジェクト指向言語で開発したソフトウェア部品１１１を、リバースエンジニアリングシステム１１３にてオブジェクトリポジトリ１１４に登録作業を行う。この時、リバースエンジニアリングシステム１１３は、登録されるオブジェクト指向言語で開発したソフトウェア部品１１１を自動的に解析することで簡易な登録作業を実現する。
また別の開発者Ｂ１１６が、設計ツール１１７により新たに開発しようとするオブジェクトの設計を行う際に、生成しようとするオブジェクトにもっとも近いオブジェクトを、設計ツール１１７がオブジェクト検索システム１１５に対して検索をし、該当するオブジェクトを開発者Ｂ１１６に提示する。開発者Ｂは、提示されたオブジェクトの内容を新たに開発しようとするオブジェクトとして再利用可能かどうか判断し、可能であれば、設計ツール１１７に対してコード生成を要求することにより、自動的にコード生成を行う。
【００１０】
図２には、図１でのオブジェクト検索システム１１５でのシステム構成が示されている。要件定義データ２１１は、図１での開発者Ｂ１１６により、設計段階で開発に必要とされるクラスの定義を入力する。この要件定義データ２１１を元にモデリング支援部２１２でモデリングデータ２１３を生成し、そのモデリングデータを元にオブジェクト検索機能部２１６にて、類似したオブジェクトの検索を行い、フィードバックを返す。返されたフィードバックを元に更にモデリングデータ２１３をコード生成に必要なデータとして構築し、最終的なコード生成をコードジェネレータ２１４にて行い、ソースコード２１５を出力する。
【００１１】
図３は、図２でのオブジェクト検索システムにおいて、オブジェクトの検索を行う際の類似度判別に必要な要素が示されている。まず、クラス３１１は本システムの最終的な検索ターゲットであり、以下に示す属性３２１および操作３３１の集合体となっている。属性３２１は、クラス３１１に設定された属性３２１（メンバ変数）を示し、変数型３２２と名称３２３を有し、また、クラス外部からの「可視性」（ビジビリティ）を性質として持つ。クラス３１１に定義された操作３３１（メソッド）を示し、属性３２１と同様、変数型３３２、名称３３３、「可視性」を有する他、引数３３４（パラメータ）の集合を持つ。変数型３２２及び３３２は、属性３２１または操作３３１の型を表すオブジェクトである。スカラー値やベクトル値などの型そのものと付属的な情報（定数、静的／動的、ポインタ、参照ｅｔｃ）を有する。名称型３１２、３２３、３３３は、クラス３１１、操作３３３、操作に対して割り当てられた名称を示す。名称は、以下に示す単語３２３の集合体であり、”ＬｉｎｋＯｂｊｅｃｔ”のような（一般に言われる）ハンガリアン記法や、”ｌｉｎｋ＿ｏｂｊｅｃｔ”のような、特殊記号により単語をつないで表記法が使われるのが通常である。単語３２３は、名称３１２、３２３、３３３を形成する各形態素に当たる要素を示す。二つの単語がマッチするかどうかについては、図４で示す類似語辞書が使われる。
【００１２】
図４は、図３での単語３２３の類似度を判別する類似語辞書の構造が示されている。類似語辞書はネットワーク型の構造になっており、各単語をノード４１１として定義し、各ノード間を結ぶリンク情報をブランチ４１２としてその類似度を定義している。二つの単語の間の類似度を求めるには、それぞれの単語に対応するノードを探し出し、二つのノードの間のブランチを探して、ブランチに設定された重みを取得する。図４で単語４１１と単語４１３はブランチ４１２に設定された類似度（例：８０％）として類似度判別を行う。
【００１３】
【発明の効果】
本発明は、もっと高度なオブジェクト検索機能を持つ開発支援ツールを作り上げることによって、開発全般の生産性を高めるとともに、経験の浅い開発者でも効率的なソフトウェア開発ができる環境を提供し、情報通信分野での新規事業立ち上げにネックとなりやすいソフトウェアの信頼性、生産性を高めることを目的とする。
【図面の簡単な説明】
【図１】本発明のシステムの一実施例を示す構成図である。
【図２】図１でのオブジェクト検索システム１１５でのシステム構成図である
【図３】図２でのオブジェクト検索システムにおいて、オブジェクトの検索を行う際の類似度判別に必要な要素である。
【図４】図３での単語３２３の類似度を判別する類似語辞書の構造図である。
【図１】
2004287650.tif 000003
【図２】
2004287650.tif 000004
【図３】
2004287650.tif 000005
【図４】
2004287650.tif 000006