(57)【要約】【課題】効率的な派生開発を支援する。【解決手段】開発支援システムは、(1)画面遷移を記述する第１の構造情報と各画面の種別を記述する第１の種別情報とで規定されるスケルトンを複数保持するスケルトン保持部と、(2)操作画面を通じ、画面遷移を記述する第２の構造情報と各画面の種別を記述する第２の種別情報とで規定される検索パターンを受け付ける入力部と、(3)前記第２の構造情報から１つ又は複数の構造候補を抽出し、それぞれに所定の重みを付与する処理と、１つ又は複数の前記構造候補と前記第１の構造情報とをマッチングする処理と、マッチングが確認された前記構造候補に付されている重みの最大値を、対応する前記スケルトンの第１の点数として設定する処理とを実行するマッチング部とを有する。【選択図】図１
2017117047.tif 000002
【特許請求の範囲】
【請求項１】
画面遷移を記述する第１の構造情報と各画面の種別を記述する第１の種別情報とで規定されるスケルトンを複数保持するスケルトン保持部と、
操作画面を通じ、画面遷移を記述する第２の構造情報と各画面の種別を記述する第２の種別情報とで規定される検索パターンを受け付ける入力部と、
前記第２の構造情報から１つ又は複数の構造候補を抽出し、それぞれに所定の重みを付与する処理と、１つ又は複数の前記構造候補と前記第１の構造情報とをマッチングする処理と、マッチングが確認された前記構造候補に付されている重みの最大値を、対応する前記スケルトンの第１の点数として設定する処理とを実行するマッチング部と
を有する開発支援システム。
【請求項２】
請求項１に記載の開発支援システムにおいて、
前記マッチング部は、
前記構造候補の各ノードに前記第２の種別情報の要素を割り当てて複数の組み合わせパターンを作成する処理と、前記スケルトンの前記第１の種別情報の要素と前記組み合わせパターンを構成する種別情報の要素とを比較して一致する要素の数を求める処理と、前記スケルトンを単位として一致する前記要素の数の合計値を計算し、第２の点数として設定する処理とを更に実行する
ことを特徴とする開発支援システム。
【請求項３】
請求項１に記載の開発支援システムにおいて、
前記マッチング部は、
検索結果画面に、前記スケルトンに前記第１の点数を付して表示する
ことを特徴とする開発支援システム。
【請求項４】
請求項２に記載の開発支援システムにおいて、
前記マッチング部は、
検索結果画面に、前記スケルトンに前記第１の点数と前記第２の点数を付して表示する
ことを特徴とする開発支援システム。
【請求項５】
請求項２に記載の開発支援システムにおいて、
前記マッチング部は、
検索結果画面に、前記第１の点数と前記第２の点数の合計値が大きい順番に前記スケルトンを表示する
ことを特徴とする開発支援システム。
【請求項６】
画面遷移を記述する第１の構造情報と各画面の種別を記述する第１の種別情報とで規定されるスケルトンを複数保持するスケルトン保持部と、コンピュータとを有する開発支援システムにおいて実行される開発支援方法において、
前記コンピュータは、
操作画面を通じ、画面遷移を記述する第２の構造情報と各画面の種別を記述する第２の種別情報とで規定される検索パターンを受け付ける処理と、
前記第２の構造情報から１つ又は複数の構造候補を抽出し、それぞれに所定の重みを付与する処理と、
１つ又は複数の前記構造候補と前記第１の構造情報とをマッチングする処理と、
マッチングが確認された前記構造候補に付されている重みの最大値を、対応する前記スケルトンの第１の点数として設定する処理と
を実行する開発支援方法。
【請求項７】
請求項６に記載の開発支援方法において、
前記コンピュータは、
前記構造候補の各ノードに前記第２の種別情報の要素を割り当てて複数の組み合わせパターンを作成する処理と、
前記スケルトンの前記第１の種別情報の要素と前記組み合わせパターンを構成する種別情報の要素とを比較して一致する要素の数を求める処理と、
前記スケルトンを単位として一致する前記要素の数の合計値を計算し、第２の点数として設定する処理と
を更に実行することを特徴とする開発支援方法。
【請求項８】
請求項６に記載の開発支援方法において、
前記コンピュータは、
検索結果画面に、前記スケルトンに前記第１の点数を付して表示する
ことを特徴とする開発支援方法。
【請求項９】
請求項７に記載の開発支援方法において、
前記コンピュータは、
検索結果画面に、前記スケルトンに前記第１の点数と前記第２の点数を付して表示する
ことを特徴とする開発支援方法。
【請求項１０】
請求項７に記載の開発支援方法において、
前記コンピュータは、
検索結果画面に、前記第１の点数と前記第２の点数の合計値が大きい順番に前記スケルトンを表示する
ことを特徴とする開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば派生開発を支援するシステム及び当該システム上で実行される方法に関する。
【背景技術】
【０００２】
現在、企業システムの規模は大きくなっている。一方、その導入期間の短縮が要請されている。このような状況にあっては、全てのシステムを一から作り込むのは、品質（Quality）、コスト（Cost）、納期（Delivery）（以下、「ＱＣＤ」という。）の全てにおいて好ましくない。この事態に対処すべく、世の中には、大小数多のフレームワークが存在している。また、規模の大きい業務システムでは、パッケージソフトや統合システムが用意されている。
【０００３】
前者は汎用性が高いものの、個別の機能については、やはり一から作り込む必要がある。このため、前者の採用は、品質の一部分にしか寄与しない。後者の採用は、パッケージされた仕様が自社業務に合致する限り、ＱＣＤの改善に劇的に寄与する。一方で、パッケージされた仕様が自社業務に合致しなければ、自社業務のやり方をパッケージソフトに合わせるか、自社業務に合わせてシステムを作り込む必要がある。しかし、自社業務の変更はリスクを増加させる。また、パッケージソフトを前提とした作り込みは、フレームワークの場合と同様、品質の一部分への寄与に留まる。そのため、より効率的な開発方法が求められている。
【０００４】
作り込みの品質確保については、企画及び要件定義からコーディングまでの全ての工程において様々なアプローチが存在する。直接的かつ分かり易いアプローチとして、実装工程におけるソースコードの自動生成がよく採られる。例えば特許文献１には、画面デザインとプログラム本体とが依存関係を持たないようにプログラムを自動生成する方法が記載されている。しかし、この方法は、画面表示（いわゆるプレゼンテーション層）の非依存性に焦点をあてたもので、システム全体の汎用性に寄与するものではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−６３８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
企業システムは、ＢｔｏＣシステムと異なり、一定程度、システム構成の共通化が図り易い。そこで、予め業務の「標準モデル」を策定してそのプログラムを作成し、個々の企業システムの開発に際しては、標準モデルに対する差分（ギャップ）だけを開発する手法が採られる。例えば、開発対象とする企業システムの機能が標準モデルに存在しても、当該機能に求められる処理内容と標準モデルの処理内容との間に差分（ギャップ）がある場合、派生開発（つまり、標準モデルに対する改修）を行う。この手法により、開発作業をある程度効率化できる。
【０００７】
一方で、開発対象とする企業システムの機能が標準モデルに存在しない場合（つまり、新規機能の場合）における差分（ギャップ）の開発は、完全な作り込みとなる。このため、標準モデルは、新規機能に関するＱＣＤの解とはならない。なお、開発対象とする企業システムの機能が標準モデルに存在しなくても、標準モデルに類似の機能があれば、当該類似の機能を改修する手法を用いることができる。すなわち、派生開発に類似する手法を採用できる。
【０００８】
しかし、派生開発に類似する手法を採用する場合でも、検討不足などに起因して、新規機能には本来的に存在してはならない類似の機能に独自の処理が、新規機能の処理に紛れ込む可能性があり、結果的に品質を低下させるリスクがある。本発明は、これらのリスクを低減し、従来に比して効率的な派生開発を支援する技術を提供する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、例えば特許請求の範囲に記載の構成を採用する。本明細書は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「(1)画面遷移を記述する第１の構造情報と各画面の種別を記述する第１の種別情報とで規定されるスケルトンを複数保持するスケルトン保持部と、(2)操作画面を通じ、画面遷移を記述する第２の構造情報と各画面の種別を記述する第２の種別情報とで規定される検索パターンを受け付ける入力部と、(3)前記第２の構造情報から１つ又は複数の構造候補を抽出し、それぞれに所定の重みを付与する処理と、１つ又は複数の前記構造候補と前記第１の構造情報とをマッチングする処理と、マッチングが確認された前記構造候補に付されている重みの最大値を、対応する前記スケルトンの第１の点数として設定する処理とを実行するマッチング部と、を有する開発支援システム。」を特徴とする。
【発明の効果】
【００１０】
本発明によれば、従来に比して派生開発を効率よく実施できる。前述した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例に係る開発支援システムの概略構成を示す図。
【図２】メタデータの記述例と記述内容のイメージを示す図。
【図３】画面遷移と画面種別で表されるスケルトンの例を示す図。
【図４】スケルトンの組み合わせ例を示す図。
【図５】開発支援動作の概略を示すフローチャート。
【図６】検索パターンの入力画面例を示す図。
【図７】構造マッチングの詳細動作を示すフローチャート。
【図８】構造候補に対する重みづけ処理及びマッチング例を説明する図。
【図９】種別マッチングの詳細動作を示すフローチャート。
【図１０】組み合わせパターンと重みの計算例を説明する図。
【図１１】マッチング結果を格納するデータテーブル例を示す図。
【図１２】検索結果の表示画面例を示す図。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、本発明の実施の態様は、後述する実施例に限定されるものではなく、その技術思想の範囲において、種々の変形が可能である。
【００１３】
（１）実施例１
（１−１）開発支援システムの全体構成
図１に、開発支援システム１の全体構成例を示す。開発支援システム１は、不図示のネットワークで接続された開発端末１００、アプリケーションサーバ１２０、設計端末１４０、スケルトン保持部１６０で構成される。図１に示す開発支援システム１は、開発端末１００、アプリケーションサーバ１２０、設計端末１４０、スケルトン保持部１６０がそれぞれ１つの場合を表しているが、いずれも複数あってもよい。
【００１４】
本実施例において、「スケルトン」は、「標準モデル」における機能部分を汎用的に表した情報を意味する。すなわち、スケルトンは、標準モデルのプログラムの中から詳細動作に関する記述を省き、大枠の処理動作に関する記述のみを残したものに相当する。スケルトンの詳細については後述する。
【００１５】
（１−１−１）開発端末
開発端末１００は、スケルトンの生成に用いられる端末であり、コンピュータを基本構成とする。開発端末１００は、入力装置１０２、表示装置１０３、メモリ１０４、ＣＰＵ１０５、通信装置１０６、記憶装置１０７を有する。開発端末１００は、Ｗｅｂブラウザ１１４を通じてアプリケーションサーバ１２０と通信する。
【００１６】
入力装置１０２は、入力ファイルの選択に使用されるデバイスであり、例えばマウス、キーボード、スタイラスペン等で構成される。表示装置１０３は、出力装置の一つであり、作業画面（例えばＷｅｂページ）や処理結果を表示する。メモリ１０４は、記憶装置１０７に格納されている各種プログラムをロードして実行する作業領域であり、例えばＲＡＭである。ＣＰＵ１０５は、メモリ１０４にロードしたプログラムを実行する演算装置である。通信装置１０６は、ネットワークを通じた通信を実現するネットワークインタフェースである。通信装置１０６には、例えばＬＡＮインタフェースを使用する。
【００１７】
記憶装置１０７は、ＣＰＵ１０５で実行される各種プログラムを格納するデバイスであり、例えばハードディスク装置である。記憶装置１０７には、ファイル読込処理部１０８、要素抜き出し処理部１０９、マッピング部１１０、ファイル生成部１１１、ＳＱＬ生成部１１２、プログラム生成部１１３が格納される。
【００１８】
ファイル読込処理部１０８は、入力装置１０２を通じて設定されたマッピング情報及び内部設計書の他、スケルトン保持部１６０に保持されているスケルトンをメモリ１０４に読み込む。要素抜き出し処理部１０９は、ファイル読込処理部１０８で読み込んだ内部設計書の中から処理対象とする情報を取得し、取得した情報の構造化処理及び保持処理を実行する。マッピング部１１０は、要素抜き出し処理部１０９が保持するデータとファイル読込処理部１０８で読み込んだマッピング情報との対応付けを行う。ファイル生成部１１１は、マッピング部１１０の対応付け結果（マッピング結果）と、ファイル読込処理部１０８で読み込んだ内部設計書に存在する作成タイプ（例えばＯ／Ｒマッピング、ＳＱＬ生成等）に基づいて、プログラムソースコードの一部を生成する。ＳＱＬ生成部１１２は、マッピング部１１０のマッピング結果に基づいてＳＱＬ文を生成する。ただし、ファイル読込処理部１０８で読み込んだ内部設計書に存在する作成タイプがＳＱＬ生成である場合に限る。プログラム生成部１１３は、ファイル読込処理部１０８で読み込んだスケルトンと、ファイル生成部１１１で生成したプログラムソースコードと、ＳＱＬ生成部１１２で生成したＳＱＬとに基づいて、実際に使用できるソースコード及びＳＱＬを生成する。
【００１９】
（１−１−２）アプリケーションサーバ
アプリケーションサーバ１２０は、派生開発を支援する機能を提供する端末であり、コンピュータを基本構成とする。アプリケーションサーバ１２０は、入力装置１０２、表示装置１０３、メモリ１０４、ＣＰＵ１０５、通信装置１０６、記憶装置１０７Ａを有する。記憶装置１０７Ａには、メタデータ入力部１２１、メタデータ登録部１２２、ＸＭＬ解読部１２３、メタデータ保持部１２４、メタデータマッチング部１２５が格納される。
【００２０】
メタデータ入力部１２１は、検索に使用するメタデータを受け付ける処理部である。メタデータの入力は、設計端末１４０のＷｅｂブラウザ１１４を通じて行われる。ここで、メタデータとは、企業システムの開発に際して新たに作成する機能（作成機能）と既存のスケルトンとの機械的なマッチングに際し、類似度を数値化するために用いられる。以下では、入力されたメタデータを検索パターンともいう。
【００２１】
本実施例のメタデータは、スケルトンの画面遷移と画面種別の組み合わせで規定される。本実施例の場合、メタデータの記述にはXMLが使用され、構造はXML Schemaで記述される。画面遷移は親子関係（ディレクトリ関係）で表し、画面種別は属性で表す。図２に、メタデータの記述例と記述内容のイメージを示す。図２では、「画面遷移」として、親画面Ａの下位に子画面Ｂ、Ｃ、Ｅが存在することが記述されている。なお、画面Ｄは子Ｃのポップアップである。従って、図中矢印で示す遷移は、画面遷移ではない。画面Ａ、Ｂ、Ｃ、Ｅの内容が画面種別である。
【００２２】
メタデータ登録部１２２は、入力されたメタデータをメタデータ保持部１２４に登録する処理部である。ＸＭＬ解読部１２３は、入力されたメタデータやスケルトンのメタデータを解析する処理部である。メタデータ保持部１２４は、入力されたメタデータやスケルトンのメタデータを保持する処理部である。メタデータマッチング部１２５は、検索画面から入力された検索用のメタデータと保持しているメタデータとをマッチングし、マッチング度合いを判定する処理部である。マッチングには、後述する構造マッチングと種別マッチングがある。
【００２３】
（１−１−３）設計端末
設計端末１４０は、ドキュメントの作成に用いられる端末であり、コンピュータを基本構成とする。設計端末１４０は、入力装置１０２、表示装置１０３、メモリ１０４、ＣＰＵ１０５、通信装置１０６を有する。設計端末１４０は、Ｗｅｂブラウザ１１４を通じてアプリケーションサーバ１２０と通信する。新たな機能を開発する作成者は設計端末１４０を操作し、新たな機能の開発に適したスケルトンの情報を得る。
【００２４】
（１−１−４）スケルトン保持部
スケルトン保持部１６０は、ネットワークに接続されたストレージ装置であり、各種のスケルトンをファイルとして保持する。スケルトン保持部１６０は、例えばハードディスク装置、光ディスク装置などで構成される。もっとも、スケルトン保持部１６０は、開発端末１００又はアプリケーションサーバ１２０に内蔵されていても良い。
【００２５】
（１−２）スケルトンの詳細
本実施例では、「標準モデル」の機能を汎用化又は単純化した部分の他に、前記機能以外（例えば画面の大まかな構造、画面遷移、前記機能に従属しない処理）であって予め動作可能な形で作成された部分が用意されているものとする。本明細書では、この「予め動作可能な形で作成された部分」を「スケルトン」と呼び、これを使った開発を「スケルトン開発」と呼ぶ。スケルトン開発は、「新規機能の派生開発」を無くし、ＱＣＤを確保することができる。
【００２６】
図３に、スケルトンの例を示す。図３は、数多くのデータの中から目的とするデータを選択し、そのデータに対して各種の処理を実行する機能に対応するスケルトンを表している。図３に示すスケルトンは、対象を選択する機能メニュー３０１と、選択された機能のうち目的データを選択する検索／結果一覧３０２と、各種処理３０３とで構成されている。各種処理３０３には、例えば登録３０４、編集３０５、削除３０６、参照３０７が存在する。
【００２７】
なお、スケルトンはそれ自体で動作可能であるので、スケルトンを作成するための外部設計書、内部設計書、作成されたスケルトンの単体テスト及び結合テストの準備が可能となる。なお、スケルトンとして稼働する部分と汎用化又は単純化された部分とをドキュメント上で明確に分離すれば、設計時又は開発時におけるスケルトン対応部分の品質を確保することができる。
【００２８】
一般的には、「ひな型」という単語を用い、業務内容を単純化したプログラムを自動生成する考えがある。しかし、「ひな型」は、設計と実装のズレを抑えることを主眼としたオールインワン（All in one）型の開発の一環として存在するものであり、開発工程自体の自由度が狭められ、結果として工数が膨らむ可能性が否定できない。
【００２９】
業務を汎用化しても、その種類が１つになるものではないため、スケルトンは複数存在する。スケルトンは開発母体として使用するので、様々なタイプのスケルトンが存在した方が、開発時のコーディング量が減り、むしろ開発効率が上がる。一方で、スケルトンの数が多すぎると、今度は、母体として最適なスケルトンが判りづらくなり、開発効率が上がらない懸念がある。従って、ある程度の共通点を持つスケルトンは１つにまとめる等の方策を採る。
【００３０】
また、スケルトンは、あくまでも「開発母体」であり「機能母体」ではない。よって、粒度としてのスケルトンは小機能に押さえ、それらを組み合わせて中機能を作成する開発手法を採用した方が、開発全体での作業効率を向上できる。図４を用いて、当該考え方を説明する。図４に示す機能は、「検索」、「印刷」及び「ダウンロード」が関係している。全ての機能（すなわち、「検索」、「印刷」及び「ダウンロード」）を丸ごと１つのスケルトンとして構成してしまうと、「印刷」のみの機能や「ダウンロード」のみの機能に対して使用できなくなる。図４では、データ検索に関する機能部分を検索スケルトン４０１とし、印刷に関する機能部分を印刷用スケルトン４０２とし、ダウンロードに関する機能部分をダウンロード用スケルトン４０３とする。このように小機能のスケルトンを用意することで、個別の機能にもそれらを組み合わせた機能にも容易に対応できる。
【００３１】
（１−３）開発支援動作
（１−３−１）概略動作
以下では、主に、設計端末１４０とアプリケーションサーバ１２０の連携により実現される開発支援動作について説明する。なお、前述したように、開発支援動作の前提として各種のスケルトンが事前に用意されてスケルトン保持部１６０に保持されているものとする。
【００３２】
システムの開発時においては、作成する機能に対して、どのスケルトンを母体として使用するかが問題となる。そこで、本実施例では、アプリケーションサーバ１２０が、作成する機能と既存のスケルトンとがどのくらい似ているかを機械的にマッチングし、その結果を作成者に提供する（作成者が提供された情報を基に判断する）ための仕組みについて説明する。機械的なマッチングの実行には、スケルトンのデータ化が必要である。そこで、メタデータを用意する。メタデータには、前述したように、スケルトンの画面遷移と画面種別をセットする。メタデータの記法にはXMLを使用し、構造はXML Schemaで記述する。また、画面遷移は親子関係で表し、画面種別などは属性で表す（図２）。
【００３３】
検索時には、開発端末１４０を操作する作成者が作成予定の機能の構造をメタデータ形式で記述し、アプリケーションサーバ１２０に与える。アプリケーションサーバ１２０は、検索パターンとして入力されたメタデータの情報に基づいて検索を実行する。ここでの検索機能は、メタデータマッチング部１２５が実行する。メタデータマッチング部１２５は、検索パターンとしてのメタデータと各スケルトンを解読したメタデータとのマッチングの結果、作成する機能に近いと判定されたスケルトンの候補を複数提示する。
【００３４】
図５に、アプリケーションサーバ１２０で実行される処理動作の概略を示す。なお、アプリケーションサーバ１２０では、不図示の予備動作として、ＸＭＬ解読部１２３がスケルトン保持部１６０に保持されているスケルトンのメタデータを解析する処理、メタデータ登録部１２２が解析結果をメタデータ保持部１２４に登録する処理が実行される。
【００３５】
まず、開発端末１４０のＷｅｂブラウザ１１４を操作する作成者が、作成予定の機能に求められる構造を入力する。入力された構造は、検索パターンとしてメタデータ入力部１２１に与えられる（ステップ５０１）。検索パターンとして入力されたメタデータは、ＸＭＬ解読部１２３により解析され、メタデータ保持部１２４に登録される。図６に、検索パターンの入力画面例を示す。初期画面６００には、第１階層に当たる画面の選択欄６０１と、第２階層に当たる画面の選択欄６０２が表示され、それぞれの右隣に子追加ボタン６０３及び６０４が表示されている。言うまでもなく、選択欄と子追加ボタンの組は３つ以上表示されてもよい。また、初期画面６００の下部には検索実行ボタン６０５とキャンセルボタン６０６も用意されている。
【００３６】
初期画面６００において子追加ボタン６０３がクリックされた場合、第２階層が新たに追加される。従って、矢印６０７に示すよう、初期画面６００は入力画面６１０に切り替わる。入力画面６１０では、既存の子「１−１」の他に新たな子「１−２」の選択欄が追加されている。一方、初期画面６００において子追加ボタン６０４がクリックされた場合、第３階層が新たに追加される。従って、矢印６０８に示すよう、初期画面６００は入力画面６２０に切り替わる。入力画面６２０では、既存の子「１−１」に対する新たな子「１−１−１」の選択欄が追加されている。
【００３７】
初期画面６００又は入力画面６１０、６２０において検索ボタン６０５がクリックされると検索パターンが確定する。メタデータマッチング部１２５は、確定した検索パターンを用いてマッチング処理を開始する。本実施例の場合、マッチング処理は、構造マッチング（ステップ５０２）と種別マッチング（ステップ５０３）の２段階で実行される。構造マッチングとは、画面遷移（＝呼び出し構造）についてのマッチングであり、種別マッチングとは、画面種別についてのマッチングである。構造マッチングを優先することで、改修を入れる場合の影響範囲を画面又は機能の範囲に収めることができる。メタデータマッチング部１２５は、この検索結果を開発端末１４０のＷｅｂブラウザ１１４を通じて作成者に提供する。
【００３８】
（１−３−２）構造マッチング
図７及び図８を用い、構造マッチングの詳細動作を説明する。構造マッチングの実行時、メタデータマッチング部１２５は、検索パターンとして入力されたメタデータの構造に着目し、幾つかの構造候補を抽出する（ステップ７０１）。例えば親子関係を維持したまま要素数を減らしたり（例えば図８のパターンＰ２）、親子関係の一部を抜き出したりする（例えば図８のパターンＰ３）。また、メタデータマッチング部１２５は、抽出された構造候補に対して、それぞれ固有の点数（重み）を付ける（ステップ７０１）。例えば完全なパターンＰ１には１０点を付与し、要素を減らしたパターンＰ２や一部を抜き出したパターンＰ３については抽出の程度に応じた点数を付与する。図８ではパターンＰ２に５点を付与し、パターンＰ３に１点を付与している。点数の付与ルールは事前に定められており、メタデータマッチング部１２５は、当該ルールに基づいて構造候補に点数を付与する。例えば階層深度、要素数（画面数、分岐数）が多いほど高い点数を付与する。
【００３９】
続いて、メタデータマッチング部１２５は、抽出された構造候補の全てとスケルトンとのマッチングを実行する（ステップ７０２〜７０７）。まず、メタデータマッチング部１２５は、未チェックのスケルトンが存在するか否か判定する（ステップ７０２）。マッチング対象のスケルトンが存在しない場合（Ｎの場合）、メタデータマッチング部１２５は、構造マッチングを終了する。これに対し、マッチング対象のスケルトンが残っている場合（Ｙの場合）、メタデータマッチング部１２５は、メタデータ保持部１２４に記憶されているスケルトンデータベース（ＤＢ）から未チェックのスケルトンを選択する（ステップ７０３）。
【００４０】
次に、メタデータマッチング部１２５は、未チェックの構造候補が存在するか否か判定する（ステップ７０４）。未チェックの構造候補が存在しない場合（Ｎの場合）、メタデータマッチング部１２５はステップ７０２に戻る。未チェックの構造候補が存在する場合（Ｙの場合）、メタデータマッチング部１２５は、それらの中で最も重みづけ点数が高い構造候補を選択する（ステップ７０５）。処理対象であるスケルトンの構造が処理対象とする構造候補と一致する場合又は構造候補を含む場合、メタデータマッチング部１２５は、処理対象であるスケルトンに構造候補の重みづけ点数を付与する（ステップ７０６）。ここで、処理対象であるスケルトンの構造が処理対象とする構造候補と一致しない場合及び構造候補を含まない場合、メタデータマッチング部１２５は、処理対象であるスケルトンに点数を付与しない。
【００４１】
次に、メタデータマッチング部１２５は、処理対象とするスケルトンに重みづけ点数が付与されたか否かを判定する（ステップ７０７）。重みづけ点数が付与されていた場合（Ｙの場合）、他の構造候補とのマッチングの必要がないため、メタデータマッチング部１２５は、ステップ７０２に戻る。一方、重みづけ点数が付与されていなかった場合（Ｎの場合）、メタデータマッチング部１２５はステップ７０４に戻る。この動作により、全てのスケルトンに対して何らかの点数（ゼロを含む）が付与される。図８の例では、スケルトンパターンＳ１に１０点が付与され、スケルトンパターンＳ２に５点が付与されている。
【００４２】
（１−３−３）種別マッチング
図９及び図１０を用い、種別マッチングの詳細動作を説明する。種別マッチングの実行時、メタデータマッチング部１２５は、まず、構造マッチングで非０（ゼロ）の点数が付与されている未チェックのスケルトンが存在するか否かを判定する（ステップ９０１）。この時点で、点数が０（ゼロ）のスケルトンは種別マッチングの対象から除外される。
【００４３】
次に、メタデータマッチング部１２５は、検索パターンのメタデータに基づいて、検索パターンの構造候補に画面種別の要素を割り当て、組み合わせパターンを作成する（ステップ９０２）。画面種別の要素の割り当ては、画面種別の全ての要素の組み合わせに基づいて行う。例えば図１０のように、検索パターンが遷移先として３つの画面（登録、更新、参照）を想定される場合、遷移先を２画面に減らした構造候補には、３画面のうちの２画面の組み合わせ数に当たる３種類（登録−更新、更新−参照、登録−参照）の組み合わせパターンを作成する。
【００４４】
次いで、メタデータマッチング部１２５は、検索対象となったスケルトンのタイプ情報（画面種別の要素）と組み合わせパターンのタイプ情報（画面種別の要素）を比較する（ステップ９０３）。ここで、メタデータマッチング部１２５は、一致するタイプ情報の数をスケルトン単位で集計し加算する（ステップ９０４）。ここでの加算は、タイプ情報の違いで差をつけない。例えばある組み合わせパターンとスケルトンとの間で一致したタイプ情報の数が２つであれば、タイプ情報が何であっても２点を付与する。同様に、一致したタイプ情報の数が１つであれば１点を付与する。図１０の場合、種別マッチングの結果、スケルトンパターンＳ１には１点が付与され、スケルトンパターンＳ２には４点が付与されている。
【００４５】
図１１に、メタデータマッチング部１２５がマッチング結果を格納するデータテーブルの例を示す。図１１に示すように、１つのスケルトンパターンに対して、(1)構造マッチング結果、(2)種別マッチング結果、(3)合計値の３つが格納される。ここでの合計値とは、構造マッチング結果の値と種別マッチング結果の値の合計値である。もっとも、データテーブルに格納するのは、(1)構造マッチング結果と(2)種別マッチング結果の２つだけでもよい。
【００４６】
（１−３−４）検索結果出力
図１２に、開発端末１４０のＷｅｂブラウザ１１４に表示される検索結果画面の例を示す。なお、検索結果画面は、メタデータマッチング部１２５が作成する。検索結果画面には、入力された検索パターンに類似すると判定されたスケルトンが１つ又は複数表示される。画面には、スケルトン（画面遷移と画面種別）が図示される他、スケルトンの識別番号、名称、構造マッチング結果（点数）、種別マッチング結果（点数）が表示される。構造マッチング結果（点数）と種別マッチング結果（点数）が画面上に併記されることにより、作成者は、構造の類似度合いと種別の類似度合いを別々に把握しながら使用するスケルトンを選択できる。開発に使用するスケルトンを選択した状態でダウンロードボタンがクリックされると、スケルトンがダウンロードされる。
【００４７】
なお、構造マッチング結果（点数）と種別マッチング結果（点数）に加え、これらの合計値を検索結果画面に表示してもよい。また、メタデータマッチング部１２５は、構造マッチング結果（点数）と種別マッチング結果（点数）の合計値の大きいスケルトンを検索結果画面の上位に表示してもよい。例えば図１２では、合計値が１１点のスケルトン（ＩＤ：０００１）が、合計値が９点のスケルトン（ＩＤ：００１２）より上位に表示されている。この場合、作成者は、上位から順番にスケルトンの選択を判断するように誘導され、スケルトンの選択時に現れやすい個人差を小さくできる。
【００４８】
ここでの合計値は、構造マッチング結果（点数）を重み付けした値と種別マッチング結果（点数）を重み付けした値の合計値でもよい。例えば構造マッチング結果（点数）を種別マッチング結果（点数）より重視する場合には、構造マッチング結果（点数）に付する重みを大きくする。種別マッチング結果（点数）を構造マッチング結果（点数）より重視する場合には、種別マッチング結果（点数）に付する重みを大きくする。これにより自動計算される合計値に作成者の意思を反映させることができる。なお、合計値の計算で使用する重みは、入力画面を通じて入力及び確認できるようにしてもよい。
【００４９】
（１−４）まとめ
本実施例によれば、検索パターンとの類似性が高いスケルトンを確実に検出することができる。また、検出されたスケルトンのそれぞれについて、検索パターンとの構造上の類似度合いと種類上の類似度合いを数値として表示できるため、作成する機能に応じた視点から使用するスケルトンを選択することができる。
【００５０】
（２）他の実施例
本発明は、上述した実施例に限定されるものでなく、様々な変形例を含んでいる。例えば、上述した実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備える必要はない。また、実施例の一部を既知の技術に置き換えることができる。また、実施例の構成に既知の技術を加えることもできる。また、実施例の一部を削除することもできる。
【００５１】
また、上述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより（すなわちソフトウェア的に）実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD（Solid State Drive）等の記憶装置、又は、ICカード、SDカード、DVD等の記憶媒体に格納することができる。また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。
【符号の説明】
【００５２】
１…開発支援システム、
１００…開発端末、
１０２…入力装置、
１０３…表示装置、
１０４…メモリ、
１０５…ＣＰＵ、
１０６…通信装置、
１０７…記憶装置、
１０８…ファイル読込処理部、
１０９…要素抜き出し処理部、
１１０…マッピング部、
１１１…ファイル生成部、
１１２…ＳＱＬ生成部、
１１３…プログラム生成部、
１１４…Ｗｅｂブラウザ、
１２０…アプリケーションサーバ、
１２１…メタデータ入力部、
１２２…メタデータ登録部、
１２３…ＸＭＬ解読部、
１２４…メタデータ保持部、
１２５…メタデータマッチング部、
１４０…設計端末、
１６０…スケルトン保持部。
【図１】
2017117047.tif 000003
【図２】
2017117047.tif 000004
【図３】
2017117047.tif 000005
【図４】
2017117047.tif 000006
【図５】
2017117047.tif 000007
【図６】
2017117047.tif 000008
【図７】
2017117047.tif 000009
【図８】
2017117047.tif 000010
【図９】
2017117047.tif 000011
【図１０】
2017117047.tif 000012
【図１１】
2017117047.tif 000013
【図１２】
2017117047.tif 000014