(57)【要約】【課題】検索結果が良好となるタグを生成すること。【解決手段】サーバ１は、モジュールが適用された適用事例から追加要素および変更要素を特定する。サーバ１は、追加要素および変更要素から単語を抽出する。サーバ１は、適用事例に出現する単語の回数の多さを示すとともに、他の適用事例に出現する単語の回数の少なさを示す度合いを算出する。サーバ１は、度合いに基づいて、適用事例に出現する回数が第１の所定値以上であり、かつ、他の適用事例に出現する回数が第２の所定値以下となる単語を含むタグを生成する。【選択図】図１２
2014041485.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一部にワイルドカードが記述された条件、および、前記条件を満たすモデルに対してモジュールが適用された場合のモデルであって前記ワイルドカードに対応する前記条件を満たすモデルの文字列が格納される変数を有するモデルである第１のモデルが記述されたモジュールが、前記条件を満たす第２のモデルに適用された場合の第３のモデルであって、変数に、前記ワイルドカードに対応する前記第２のモデルの文字列が格納された第３のモデルと、前記第２のモデルとに基づいて、該モジュールの適用によって前記第２のモデルに追加された要素である追加要素、および、前記第３のモデルの変更された要素である変更要素を特定する特定部と、
前記追加要素および前記変更要素から単語を抽出する抽出部と、
前記条件および前記第１のモデルが記述された前記モジュールとは異なるモジュールが適用された第４のモデルに出現する単語、および、前記抽出部により抽出された単語に基づいて、前記第３のモデルに出現する前記単語の回数の多さを示すとともに、前記第４のモデルに出現する単語の回数の少なさを示す度合いを算出する算出部と、
前記度合いに基づいて、前記第３のモデルに出現する回数が第１の所定値以上であり、かつ、前記第４のモデルに出現する回数が第２の所定値以下となる単語を含む、前記条件および前記第１のモデルが記述された前記モジュールに対応するタグを生成する生成部と、
を有する生成装置。
【請求項２】
検索するモデル、および、検索する単語を受け付ける受付部と、
前記検索するモデルが前記条件を満たすときには、該条件が記述されたモジュールに対応する前記タグに含まれる単語の中から、前記検索する単語と一致する単語の数を算出する数算出部と、
前記数算出部により算出された単語の数が多いモジュールから順番に、該モジュールに関する情報を並べた情報が表示されるように制御する表示制御部と、
をさらに有することを特徴とする請求項１に記載の生成装置。
【請求項３】
前記タグは、該タグに対応するモジュールに含まれる要素に係る情報を有し、
前記受付部は、さらに、前記要素に係る情報の指定を受け付け、
前記数算出部は、さらに、前記指定が示す要素に係る情報と一致する前記モジュールに含まれる要素に係る情報の数を算出し、
前記表示制御部は、前記数算出部により算出された単語の数と算出された要素に係る情報の数との和の値が大きいモジュールから順番に、該モジュールに関する情報を並べた情報が表示されるように制御する
ことを特徴とする請求項２に記載の生成装置。
【請求項４】
前記表示制御部は、さらに、前記検索するモデルが前記条件を満たす場合には、該条件が記述されたモジュールが前記検索するモデルに適用された場合の第５のモデルが表示されるように制御する
ことを特徴とする請求項２または３に記載の生成装置。
【請求項５】
コンピュータに、
少なくとも一部にワイルドカードが記述された条件、および、前記条件を満たすモデルに対してモジュールが適用された場合のモデルであって前記ワイルドカードに対応する前記条件を満たすモデルの文字列が格納される変数を有するモデルである第１のモデルが記述されたモジュールが、前記条件を満たす第２のモデルに適用された場合の第３のモデルであって、変数に、前記ワイルドカードに対応する前記第２のモデルの文字列が格納された第３のモデルと、前記第２のモデルとに基づいて、該モジュールの適用によって前記第２のモデルに追加された要素である追加要素、および、前記第３のモデルの変更された要素である変更要素を特定し、
前記追加要素および前記変更要素から単語を抽出し、
前記条件および前記第１のモデルが記述された前記モジュールとは異なるモジュールが適用された第４のモデルに出現する単語、および、抽出された単語に基づいて、前記第３のモデルに出現する前記単語の回数の多さを示すとともに、前記第４のモデルに出現する単語の回数の少なさを示す度合いを算出し、
前記度合いに基づいて、前記第３のモデルに出現する回数が第１の所定値以上であり、かつ、前記第４のモデルに出現する回数が第２の所定値以下となる単語を含む、前記条件および前記第１のモデルが記述された前記モジュールに対応するタグを生成する、
各処理を実行させることを特徴とする生成プログラム。
【請求項６】
コンピュータが、
少なくとも一部にワイルドカードが記述された条件、および、前記条件を満たすモデルに対してモジュールが適用された場合のモデルであって前記ワイルドカードに対応する前記条件を満たすモデルの文字列が格納される変数を有するモデルである第１のモデルが記述されたモジュールが、前記条件を満たす第２のモデルに適用された場合の第３のモデルであって、変数に、前記ワイルドカードに対応する前記第２のモデルの文字列が格納された第３のモデルと、前記第２のモデルとに基づいて、該モジュールの適用によって前記第２のモデルに追加された要素である追加要素、および、前記第３のモデルの変更された要素である変更要素を特定し、
前記追加要素および前記変更要素から単語を抽出し、
前記条件および前記第１のモデルが記述された前記モジュールとは異なるモジュールが適用された第４のモデルに出現する単語、および、抽出された単語に基づいて、前記第３のモデルに出現する前記単語の回数の多さを示すとともに、前記第４のモデルに出現する単語の回数の少なさを示す度合いを算出し、
前記度合いに基づいて、前記第３のモデルに出現する回数が第１の所定値以上であり、かつ、前記第４のモデルに出現する回数が第２の所定値以下となる単語を含む、前記条件および前記第１のモデルが記述された前記モジュールに対応するタグを生成する、
各処理を実行することを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成プログラムおよび生成方法に関する。
【背景技術】
【０００２】
近年、業務アプリケーションを開発する様々な技術が生み出されている。例えば、開発者によって定義された業務データモデルおよび業務フローモデルを用いて、業務アプリケーションを生成する技術がある。
【０００３】
図３０、図３１、図３２は、従来の業務アプリケーションを生成する技術の一例を説明するための図である。図３０は、開発者によって定義された業務データモデルの一例を示す。また、図３１は、開発者によって定義された業務フローモデルの一例を示す。
【０００４】
図３０の例が示す業務データモデルにおける「貸出」エンティティは、図書館における本を貸し出す業務において、本を貸し出す貸出人が、端末に入力するデータの集合を示す。「貸出」エンティティには、本の貸出日、本を貸し出す貸出人の氏名、および、貸した本のタイトルの各種のデータが含まれる。また、「会員」エンティティは、本を借りた会員に関するデータの集合を示す。「会員」エンティティは、本を借りた会員の会員ＩＤ、会員の名前、および、会員の住所の各種のデータが含まれる。
【０００５】
図３１に示す業務フローモデルは、例えば、図書館における本の貸出人の業務フローを示す。図３１の業務フローモデルは、本を会員に貸し出す場合に、「貸出」エンティティが示すデータの集合（「貸出」情報）を貸出人が端末に入力することを示す。また、図３１の業務フローモデルは、「貸出」情報を貸出人が端末に入力した後に、端末が、「貸出」情報が不正な情報であるか否かを検証することを示す。ここで、図３１の業務フローモデルは、「貸出」情報が不正な情報である場合には、再び、貸出人が、「貸出」情報を端末に入力することを示す。また、図３１の業務フローモデルは、「貸出」情報が不正な情報でない場合には、業務フローを終了することを示す。
【０００６】
従来の業務アプリケーションを生成する技術は、業務データモデル、および、業務フローモデルを用いて、業務アプリケーションを生成する。例えば、従来の業務アプリケーションを生成する技術は、図３０に示す業務データモデルおよび図３１に示す業務フローモデルを用いて、業務アプリケーションを生成する。生成された業務アプリケーションは、端末によって実行される。端末により実行された業務アプリケーションは、図３２の例に示すように、「貸出」情報を入力するための画面を生成し、表示装置に表示する。そして、業務アプリケーションは、表示した画面の「貸出日」、「貸出人」および「タイトル」の項目のそれぞれに、貸出日、貸出人、タイトルが入力された上で、「追加」ボタンが押下されると、次の処理を行う。すなわち、業務アプリケーションは、入力された貸出日、貸出人、タイトルの情報が不正な情報であるか否かを検証する。そして、入力された貸出日、貸出人、タイトルの情報が不正な情報である場合には、業務アプリケーションは、「貸出日」、「貸出人」および「タイトル」の項目の登録内容を破棄して、再度の入力を貸出人に促す。
【０００７】
また、業務フローモデルに、差分モジュールを適用して、新たな業務フローモデルを生成する技術がある。ここで、差分モジュールの一例について説明する。差分モジュールは、差分モジュールを適用する業務フローモデルの要素の条件が記述された適用条件と、差分モジュールを適用した場合の業務フローモデルの要素が記述された適用効果とを有する。図３３は、差分モジュールを模式的に表した場合の一例を示す図である。図３３の例の差分モジュールには、業務フローモデルの「○○（任意の文字列、ワイルドカード）を入力する」タスクが、「Ｅｎｄ」端子に接続されているという条件が、適用条件として記述されている場合を示す。そして、図３３の例の差分モジュールには、業務フローモデルの要素が適用条件を満たす場合、「○○を入力する」タスクと、「Ｅｎｄ」端子との間に、次のようなタスクを挿入するという適用効果が記述されている。すなわち、図３３の例の差分モジュールには、「○○（任意の文字列、ワイルドカード）が不正？」という分岐のタスクを挿入するという適用効果が記述されている。また、図３３の例の差分モジュールには、分岐のタスクの肯定時の分岐先を「○○を入力する」タスクにし、否定時の分岐先を「Ｅｎｄ」端子にするという適用効果が記述されている。
【０００８】
図３４は、業務フローモデルの一例を示す図である。ここで、図３４の例に示す業務フローモデルに対して、図３３の例の差分モジュールを適用させる場合について説明する。図３４の例に示す業務フローモデルは、「貸出情報を入力する」タスクが、「Ｅｎｄ」端子に接続されている。そのため、図３４の例に示す業務フローモデルの要素は、図３３の例の差分モジュールに記述された適用条件を満たす。適用条件を満たすので、図３３の例の差分モジュールは、図３４の例に示す業務フローモデルに適用されることとなる。図３５は、差分モジュールが適用された後の業務フローモデルの一例を示す図である。図３５の例に示すように、図３４の例に示す業務フローモデルに対して図３３の例の差分モジュールが適用された場合には、「貸出情報を入力する」タスクと、「Ｅｎｄ」端子との間に、「貸出情報が不正？」という分岐のタスクが挿入される。また、図３５の例に示すように、分岐のタスクの肯定時の分岐先が「貸出情報を入力する」タスクに設定され、否定時の分岐先が「Ｅｎｄ」端子に設定される。
【０００９】
従来の業務フローモデルを生成する技術は、上述したような方法で、業務フローモデルに、差分モジュールを適用して、新たな業務フローモデルを生成する。
【００１０】
また、開発の担当者が、ドキュメントおよびプログラムの成果物に、設計情報の関連を示すタグ情報を付加してデータベースに登録して、ドキュメントおよびプログラムの資産を管理する技術がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１２３４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ところで、業務フローモデルに適用する差分モジュールを再利用して、他の業務フローモデルに適用することが考えられる。例えば、複数の差分モジュールを記憶装置に記憶させ、業務フローモデルの開発者が記憶装置から所望の差分モジュールを取得し、取得した差分モジュールを他の業務フローモデルに適用することが考えられる。この場合、開発者が、効率よく差分モジュールを取得するために、差分モジュールのそれぞれに対して検索用のタグを付けることが考えられる。しかしながら、少数の業務フローモデルに対して再利用される多数の差分モジュールが存在する傾向がある。そのため、開発者が多数の差分モジュールのそれぞれにタグを付けることは困難であるという問題がある。
【００１３】
また、差分モジュールに記述された文字列を用いて、差分モジュールの検索用のタグを自動的に生成する方法も考えられる。しかしながら、差分モジュールには、例えば、図３３の例に示すように、ワイルドカードなどの記述があり、ワイルドカードを用いてタグを生成した場合には、タグの文字列が任意であるため、生成したタグが、多数の検索文字列にヒットしてしまう。そのため、差分モジュールに記述された文字列を用いて、差分モジュールの検索用のタグを生成した場合には、生成したタグを用いて、開発者の所望の差分モジュールの検索を行うことが困難である。
【００１４】
なお、かかる問題は、差分モジュールの検索用のタグを生成する場合に限られず、様々なソフトウェアやドキュメントの検索用のタグを生成する場合においても同様に存在する。
【００１５】
１つの側面では、開示の技術は、検索結果が良好となるタグを生成することを目的とする。
【課題を解決するための手段】
【００１６】
一態様の生成装置は、特定部と、抽出部と、算出部と、生成部とを有する。特定部は、モジュールが、条件を満たす第２のモデルに適用された場合の第３のモデルであって、変数に、ワイルドカードに対応する第２のモデルの文字列が格納された第３のモデルと、第２のモデルとに基づいて、次の処理を行う。すなわち、特定部は、モジュールの適用によって第２のモデルに追加された要素である追加要素、および、第３のモデルの変更された要素である変更要素を特定する。ここで、モジュールは、条件および第１のモデルが記述されたものである。条件は、少なくとも一部にワイルドカードが記述されたものである。第１のモデルは、条件を満たすモデルに対してモジュールが適用された場合のモデルであってワイルドカードに対応する条件を満たすモデルの文字列が格納される変数を有するモデルである。抽出部は、追加要素および変更要素から単語を抽出する。算出部は、条件および第１のモデルが記述されたモジュールとは異なるモジュールが適用された第４のモデルに出現する単語、および、抽出部により抽出された単語に基づいて、次の処理を行う。すなわち、算出部は、第３のモデルに出現する単語の回数の多さを示すとともに、第４のモデルに出現する単語の回数の少なさを示す度合いを算出する。生成部は、度合いに基づいて、第３のモデルに出現する回数が第１の所定値以上であり、かつ、第４のモデルに出現する回数が第２の所定値以下となる単語を含む、条件および第１のモデルが記述されたモジュールに対応するタグを生成する。
【発明の効果】
【００１７】
一態様によれば、検索結果が良好となるタグを生成することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係るシステムを示す図である。
【図２】図２は、第１の端末の機能構成の一例を示す図である。
【図３】図３は、差分モジュールを生成するための画面の一例を示す図である。
【図４】図４は、差分モジュールを生成するための画面の表示領域に、変数に文字列が格納された要素を含む適用効果が表示された場合の一例を示す図である。
【図５】図５は、サーバへ送信する差分モジュールの一例を示す図である。
【図６】図６は、第２の端末の機能構成の一例を示す図である。
【図７】図７は、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面の一例を示す図である。
【図８】図８は、第２の端末がサーバへ送信する検索条件のデータ構造の一例を示す図である。
【図９】図９は、検索の結果得られた差分モジュールの名前が順位とともに表示された場合の一例を示す図である。
【図１０】図１０は、適用事例が表示された場合の一例を示す図である。
【図１１】図１１は、第２の端末がサーバに送信する各種のデータの一例を示す図である。
【図１２】図１２は、サーバの機能構成の一例を示す図である。
【図１３】図１３は、差分モジュールＤＢのデータ構造の一例を示す図である。
【図１４】図１４は、タグＤＢのデータ構造の一例を示す図である。
【図１５】図１５は、適用事例ＤＢのデータ構造の一例を示す図である。
【図１６】図１６は、本実施例に係るタグ登録部により実行される処理の一例を説明するための図である。
【図１７】図１７は、タグＤＢの登録内容の一例を示す図である。
【図１８】図１８は、本実施例に係る特定部により実行される処理の一例を説明するための図である。
【図１９】図１９は、タグＩＤと、抽出された単語との対応関係の一例を示す図である。
【図２０】図２０は、本実施例に係る生成部によって登録内容が追加されたタグＤＢの一例を示す図である。
【図２１】図２１は、差分モジュールの名前が順位とともに表示された場合の一例を示す図である。
【図２２】図２２は、実施例に係る差分モジュール生成処理の手順を示すフローチャートである。
【図２３】図２３は、実施例に係るタグ生成処理の手順を示すフローチャートである。
【図２４】図２４は、実施例に係る差分モジュール適用処理の手順を示すフローチャートである。
【図２５】図２５は、実施例に係る検索処理の手順を示すフローチャートである。
【図２６】図２６は、実施例に係るタグ追加処理の手順を示すフローチャートである。
【図２７】図２７は、変形例に係る第２の端末に表示される画面の一例を示す図である。
【図２８】図２８は、変形例に係る検索処理の手順を示すフローチャートである。
【図２９】図２９は、生成プログラムを実行するコンピュータを示す図である。
【図３０】図３０は、従来の業務アプリケーションを生成する技術の一例を説明するための図である。
【図３１】図３１は、従来の業務アプリケーションを生成する技術の一例を説明するための図である。
【図３２】図３２は、従来の業務アプリケーションを生成する技術の一例を説明するための図である。
【図３３】図３３は、差分モジュールを模式的に表した場合の一例を示す図である。
【図３４】図３４は、業務フローモデルの一例を示す図である。
【図３５】図３５は、差分モジュールが適用された後の業務フローモデルの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下に、本願の開示する生成装置、生成プログラムおよび生成方法の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００２０】
［システム１０の構成の一例］
実施例１に係るサーバが適用されたシステムについて説明する。図１は、実施例１に係るシステムを示す図である。図１に示すように、システム１０は、サーバ１、第１の端末１１および第２の端末１２を有する。サーバ１、第１の端末１１および第２の端末１２は、互いに、ネットワーク１３を介して接続されている。すなわち、サーバ１、第１の端末１１および第２の端末１２は、互いに通信可能である。
【００２１】
第１の端末１１には、差分モジュールを生成する機能を有するプログラムがインストールされている。第１の端末１１は、インストールされたプログラムを実行することにより、差分モジュールを生成する。そして、第１の端末１１は、生成した差分モジュールをネットワーク１３を介して、サーバ１に送信する。
【００２２】
図２は、第１の端末の機能構成の一例を示す図である。図２に示すように、第１の端末１１は、入力部１１ａ、表示部１１ｂおよび制御部１１ｃを有する。
【００２３】
入力部１１ａは、ユーザによる操作を受け付け、受け付けた操作の内容を制御部１１ｃに送信する。入力部１１ａは、例えば、マウスやキーボードなどのデバイスである。
【００２４】
表示部１１ｂは、各種の情報を表示する。例えば、表示部１１ｂは、制御部１１ｃの制御によって、差分モジュールを生成するための画面を表示する。
【００２５】
図３は、差分モジュールを生成するための画面の一例を示す図である。図３の例に示す差分モジュールを生成するための画面１４の名称は、「差分モジュールエディター」である。図３の例に示すように、画面１４は、項目１４ａ〜１４ｅ、表示領域１４ｆ、「イメージ生成」ボタン１４ｇ、「送信」ボタン１４ｈを有する。項目１４ａには、新たに生成する差分モジュールの名前（名称）が登録される。図３の例は、項目１４ａに、新たに生成する差分モジュールの名前として、「入力情報検証」が、第１の端末１１のユーザによって入力部１１ａを介して登録された場合を示す。
【００２６】
項目１４ｂには、新たに生成する差分モジュールの作用および効果が登録される。図３の例は、新たに生成する差分モジュールの作用および効果として、「タスク終了前に必ず入力情報を検証する」が、ユーザによって入力部１１ａを介して登録された場合を示す。
【００２７】
項目１４ｃには、新たに生成する差分モジュールの適用条件が登録される。適用条件とは、例えば、新たに生成する差分モジュールが適用される、業務フローモデルの要素の構成、および、各要素に記載された文字列を指す。すなわち、新たに生成する差分モジュールは、次に説明する２つの条件を満たす業務フローモデルに適用される。１つ目の条件は、業務フローモデルが、項目１４ｃに登録された要素の構成と一致する要素の構成を有するという条件である。２つ目の条件は、１つ目の条件を満たす業務フローモデルの各要素のうち、項目１４ｃに登録された要素に対応する要素に記載された文字列が、項目１４ｃに登録された要素に記載された文字列と一致するという条件である。ここで、項目１４ｃに登録される業務フローモデルの要素に記載された文字列の一部には、ワイルドカードが用いられる場合がある。この場合には、要素に記載された文字列の一部が異なるが、要素の構成が同一である複数の業務フローモデルに対して、新たに生成する差分モジュールを適用することができる。
【００２８】
図３の例は、業務フローモデルの複数の要素が登録されたパレット（図示しない）から、ユーザが入力部１１ａを介して、項目１４ｃに登録する要素１５ａ、１５ｂを選択し、選択した要素１５ａ、１５ｂを項目１４ｃまで移動させた場合を示す。そして、図３の例は、ユーザが入力部１１ａを介して、要素１５ａに「（・＋）情報を入力する」と記載した場合を示す。なお、「（・＋）」は、ワイルドカードを示す。なお、要素１５ｂについては、パレットに登録された時点で、予め「エンド」と記載されている。また、図３の例は、ユーザが入力部１１ａを介して、要素１５ａから要素１５ｂに向かう矢印を引いた場合を示す。
【００２９】
項目１４ｄには、新たに生成する差分モジュールの適用効果が登録される。適用効果とは、例えば、適用条件を満たす業務フローモデルの要素に対して差分モジュールが適用された後の業務フローモデルの要素を指す。ここで、項目１４ｄに登録される業務フローの要素に記載された文字列の一部には、変数が用いられる場合がある。この変数には、差分モジュールが適用された適用条件を満たす業務フローモデルの要素の文字列のうち、ワイルドカードに対応する部分の文字列が格納される。
【００３０】
図３の例は、上述したパレットから、ユーザが入力部１１ａを介して、項目１４ｄに登録する要素１５ｃ、１５ｄ、１５ｅを選択し、選択した要素１５ｃ、１５ｄ、１５ｅを項目１４ｄまで移動させた場合を示す。そして、図３の例は、ユーザが入力部１１ａを介して、要素１５ｃに「＄１情報を入力する」と記載した場合を示す。なお、「＄１」は、上述したワイルドカード「（．＋）」に対応する文字列が格納される変数を示す。また、図３の例は、ユーザが入力部１１ａを介して、分岐を示す要素１５ｄに「＄１情報が不正？」と記載した場合を示す。なお、要素１５ｅについては、パレットに登録された時点で、予め「エンド」と記載されている。また、図３の例は、ユーザが入力部１１ａを介して、要素１５ｃから要素１５ｄに向かう矢印を引いた場合を示す。また、図３の例は、ユーザが入力部１１ａを介して、要素１５ｄの肯定の分岐先が要素１５ｃであることを示す矢印を要素１５ｄから要素１５ｃに引いた場合を示す。また、図３の例は、ユーザが入力部１１ａを介して、要素１５ｄの否定の分岐先が要素１５ｅであることを示す矢印を要素１５ｄから要素１５ｅに引いた場合を示す。
【００３１】
項目１４ｅには、新たに生成する差分モジュールが適用される業務フローモデルの要素の一例が登録される。図３の例は、上述したパレットから、ユーザが入力部１１ａを介して、項目１４ｅに登録する要素１５ｆ、１５ｇを選択し、選択した要素１５ｆ、１５ｇを項目１４ｅまで移動させた場合を示す。そして、図３の例は、ユーザが入力部１１ａを介して、要素１５ｆに「貸出情報を入力する」というように具体的に記載した場合を示す。なお、要素１５ｇについては、パレットに登録された時点で、予め「エンド」と記載されている。また、図３の例は、ユーザが入力部１１ａを介して、要素１５ｆから要素１５ｇに向かう矢印を引いた場合を示す。
【００３２】
表示領域１４ｆには、制御部１１ｃの制御により、新たに生成する差分モジュールが適用された、項目１４ｅに登録された業務フローモデルの要素を表示する。
【００３３】
制御部１１ｃは、第１の端末１１の動作を制御する。例えば、制御部１１ｃは、インストールされたプログラムを実行して、差分モジュールを生成するための画面を表示するように、表示部１１ｂを制御する。ここでは、制御部１１ｃが、差分モジュールを生成するための画面として、上述した画面１４を表示部１１ｂに表示させる場合について説明する。項目１４ａ〜１４ｅの項目のそれぞれに情報が登録され、ユーザによって入力部１１ａが操作されて「イメージ生成」ボタン１４ｇが押下された場合には、制御部１１ｃは、次の処理を行う。すなわち、制御部１１ｃは、項目１４ｅに登録された要素が、項目１４ｃに登録された適用条件を満たすか否かを判定する。適用条件を満たさない場合には、制御部１１ｃは、表示領域１４ｆに、項目１４ｅへの再登録を促す旨のエラー表示が行われるように、表示部１１ｂの表示を制御する。
【００３４】
一方、適用条件を満たす場合には、制御部１１ｃは、項目１４ｅに登録された要素に記載された文字列のうち、項目１４ｃに登録された要素に記載されたワイルドカードに対応する文字列を取得する。また、制御部１１ｃは、項目１４ｄに登録された適用効果を取得する。そして、制御部１１ｃは、取得した文字列を、取得した適用効果の要素に記載された変数に格納する。続いて、制御部１１ｃは、表示領域１４ｆに、変数に文字列が格納された要素を含む適用効果が表示されるように、表示部１１ｂの表示を制御する。
【００３５】
図３および図４を参照して、制御部１１ｃが実行する処理の一例を説明する。図４は、差分モジュールを生成するための画面の表示領域に、変数に文字列が格納された要素を含む適用効果が表示された場合の一例を示す図である。図３の例に示すように、項目１４ａ〜１４ｅに各種の情報が登録され、ユーザによって入力部１１ａが操作されて「イメージ生成」ボタン１４ｇが押下された場合には、制御部１１ｃは、次の処理を行う。すなわち、制御部１１ｃは、項目１４ｅに登録された要素が、項目１４ｃに登録された適用条件を満たすと判定する。そして、制御部１１ｃは、項目１４ｅに登録された要素１５ｆ、１５ｇに記載された文字列のうち、項目１４ｃに登録された要素に記載されたワイルドカードに対応する文字列「貸出」を取得する。また、制御部１１ｃは、項目１４ｄに登録された適用効果を取得する。そして、制御部１１ｃは、取得した文字列「貸出」を、取得した適用効果の要素に記載された変数「＄１」に格納する。続いて、図４の例に示すように、制御部１１ｃは、表示領域１４ｆに、変数「＄１」に文字列「貸出」が格納された要素を含む適用効果１５ｈが表示されるように、表示部１１ｂの表示を制御する。これにより、制御部１１ｃは、新たに生成する差分モジュールが適用された業務フローモデルの一例をユーザに提示することができる。
【００３６】
その後、「送信」ボタン１４ｈが押下された場合には、制御部１１ｃは、項目１４ａ〜１４ｄの各項目の登録内容を含む差分モジュールをネットワーク１３を介してサーバ１へ送信する。図５は、サーバへ送信する差分モジュールの一例を示す図である。図５の例に示すように、差分モジュールは、例えば、ＸＭＬ（eXtensible  Markup  Language）の形式のデータであり、項目１４ａ〜１４ｄの各項目の登録内容を含む。図５の例は、図３に示す項目１４ａの登録内容「入力情報検証」が、「DeltaModule（差分モジュール）」の「name（名前）」の項目に設定された場合を示す。また、図５の例は、図３に示す項目１４ｂの登録内容「タスク終了前に必ず入力情報を検証する」が、「DeltaModule」の「desc（記述）」の項目に設定された場合を示す。
【００３７】
また、図５の例は、図３に示す項目１４ｃに登録された適用条件が、「DeltaModule」の適用条件１６ａとしてＸＭＬの形式で記述された場合を示す。図５の例の適用条件１６ａに含まれる「ＩＤ」が「１」の要素は、図３に示す要素１５ａに対応する。また、適用条件１６ａに含まれる「ＩＤ」が「２」の要素は、図３に示す要素１５ａから要素１５ｂに向けて引かれた矢印に対応する。また、適用条件１６ａに含まれる「ＩＤ」が「３」の要素は、図３に示す要素１５ｂに対応する。
【００３８】
また、図５の例は、図３に示す項目１４ｄに登録された適用効果が、「DeltaModule」の適用効果１６ｂとしてＸＭＬの形式で記述された場合を示す。図５の例の適用効果１６ｂに含まれる「ＩＤ」が「１」の要素は、図３に示す要素１５ｃに対応する。また、適用効果１６ｂに含まれる「ＩＤ」が「２」の要素は、図３に示す要素１５ｃから要素１５ｄに向けて引かれた矢印に対応する。また、適用効果１６ｂに含まれる「ＩＤ」が「３」の要素は、図３に示す要素１５ｅに対応する。適用効果１６ｂに含まれる「ＩＤ」が「４」の要素は、図３に示す要素１５ｄに対応する。また、適用効果１６ｂに含まれる「ＩＤ」が「５」の要素は、図３に示す要素１５ｄの肯定の分岐先として、要素１５ｄから要素１５ｃに向けて引かれた矢印に対応する。また、適用効果１６ｂに含まれる「ＩＤ」が「６」の要素は、図３に示す要素１５ｄの否定の分岐先として、要素１５ｄから要素１５ｅに向けて引かれた矢印に対応する。上述したように、制御部１１ｃは、図５の例に示すような差分モジュールをネットワーク１３を介してサーバ１へ送信する。
【００３９】
第２の端末１２は、差分モジュールを業務フローモデルに適用する機能を有するプログラムがインストールされている。第２の端末１２は、インストールされたプログラムを実行することにより、差分モジュールを業務フローモデルに適用する。そして、第２の端末１２は、差分モジュールが適用される前の業務フローモデルを示す情報、および、差分モジュールが適用された後の業務フローモデルを示す情報をネットワーク１３を介して、サーバ１に送信する。
【００４０】
図６は、第２の端末の機能構成の一例を示す図である。図６に示すように、第２の端末１２は、入力部１２ａ、表示部１２ｂおよび制御部１２ｃを有する。
【００４１】
入力部１２ａは、ユーザによる操作を受け付け、受け付けた操作の内容を制御部１２ｃに送信する。入力部１２ａは、例えば、マウスやキーボードなどのデバイスである。
【００４２】
表示部１２ｂは、各種の情報を表示する。例えば、表示部１２ｂは、制御部１２ｃの制御によって、次の画面を表示する。すなわち、表示部１２ｂは、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面を表示する。
【００４３】
図７は、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面の一例を示す図である。図７の例に示す画面１７の名称は、「業務モデルエディター」である。図７の例に示すように、画面１７は、項目１７ａ、表示領域１７ｂ〜１７ｅ、「差分モジュール検索」ボタン１７ｆ、「適用」ボタン１７ｇを有する。項目１７ａには、差分モジュールを検索する場合の検索用のキーワードが入力される。図７の例は、項目１７ａに、検索用のキーワードとして、「貸出」および「確認」が、第２の端末１２のユーザによって入力部１２ａを介して入力された場合を示す。
【００４４】
表示領域１７ｂには、制御部１２ｃの制御により、差分モジュールを適用させる業務フローモデルの名前が表示される。また、表示領域１７ｃには、制御部１２ｃの制御により、差分モジュールを適用させる業務フローモデルが表示される。ここで、第２の端末１２には、ユーザによって生成された複数の業務フローモデルが記憶部（図示せず）に記憶されている。ユーザが、入力部１２ａを介して、記憶部に記憶された業務フローモデルの中から、差分モジュールを適用させる業務フローモデルを選択した場合には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択した業務フローモデルの名前を表示領域１７ｂに表示させるとともに、選択した業務フローモデルを表示領域１７ｃに表示させる。図７の例は、ユーザによって選択された、差分モジュールを適用させる業務フローモデル１８ａの名前「図書貸出受付業務」が表示領域１７ｂに表示された場合を示す。また、図７の例は、名前が「図書貸出受付業務」である業務フローモデル１８ａが表示領域１７ｃに表示された場合を示す。また、業務フローモデル１８ａは、要素１８ｂ〜１８ｉを有する。
【００４５】
ここで、ユーザは、入力部１２ａを介して、表示領域１７ｃに表示された業務フローモデルの要素の中から、差分モジュールを適用させる要素を選択することができる。例えば、ユーザは、入力部１２ａを介して、要素１８ｂ〜１８ｉの中から、差分モジュールを適用させる要素として要素１８ｈを選択することができる。
【００４６】
表示領域１７ｄには、制御部１２ｃの制御により、サーバ１から送信された、検索の結果得られた差分モジュールの名前が順位とともに表示される。ここで、ユーザは、入力部１２ａを介して、表示領域１７ｄに表示された差分モジュールの名前のうち、表示領域１７ｃに表示され選択された要素に適用する差分モジュールの名前を選択することができる。また、表示領域１７ｅには、表示領域１７ｄに表示された差分モジュールの名前が選択された場合に、制御部１２ｃの制御により、選択された名前の差分モジュールが適用された要素であって表示領域１７ｃに表示され選択された要素が表示される。
【００４７】
制御部１２ｃは、第２の端末１２の動作を制御する。例えば、制御部１２ｃは、インストールされたプログラムを実行して、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面を表示するように、表示部１２ｂを制御する。ここでは、制御部１２ｃが、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面として、上述した画面１７を表示部１２ｂに表示させる場合について説明する。
【００４８】
まず、上述したように、ユーザが、入力部１２ａを介して、記憶部に記憶された業務フローモデルの中から、差分モジュールを適用させる業務フローモデルを選択した場合には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択した業務フローモデルの名前を表示領域１７ｂに表示させるとともに、選択した業務フローモデルを表示領域１７ｃに表示させる。例えば、図７の例に示すように、制御部１２ｃは、選択した業務フローモデル１８ａの名前「図書貸出受付業務」を表示領域１７ｂに表示させるとともに、選択した業務フローモデル１８ａを表示領域１７ｃに表示させる。
【００４９】
そして、「差分モジュール検索」ボタン１７ｆが押下された場合には、制御部１２ｃは、表示領域１７ｃに表示され選択された要素のＩＤを取得する。また、制御部１２ｃは、表示領域１７ｃに表示された業務フローモデルをＸＭＬの形式のデータに変換する。そして、制御部１２ｃは、変換の結果得られたＸＭＬの形式のデータと、項目１７ａに入力された検索用のキーワードと、取得したＩＤとを１つのファイルに設定し、ファイルを検索条件としてネットワーク１３を介してサーバ１に送信する。図８は、第２の端末がサーバへ送信する検索条件のデータ構造の一例を示す図である。図８の例に示す検索条件は、「検索キーワード」、「選択要素ＩＤ」、「適用対象モデル」の各項目を有する。「検索キーワード」の項目には、項目１７ａに入力された検索用のキーワードが設定される。図８の例は、「検索キーワード」の項目に、「貸出」、「確認」の検索用のキーワードが設定された場合を示す。また、「選択要素ＩＤ」の項目には、表示領域１７ｃに表示され選択された要素のＩＤが設定される。図８の例は、「選択要素ＩＤ」の項目に、ユーザによって選択された要素１８ｈのＩＤ「１」が設定された場合を示す。また、「適用対象モデル」の項目には、表示領域１７ｃに表示された業務フローモデルのＸＭＬの形式のデータが設定される。図８の例は、「適用対象モデル」の項目に、図７の例に示す業務フローモデル１８ａのＸＭＬの形式のデータが設定された場合を示す。
【００５０】
また、制御部１２ｃは、サーバ１から送信された、検索の結果得られた差分モジュールのＸＭＬの形式のデータ、および、かかる差分モジュールのＩＤである差分ＩＤ、並びに、差分ＩＤが示す差分モジュールの順位を受信した場合には、次のような処理を行う。すなわち、制御部１２ｃは、表示領域１７ｄに、受信した差分モジュールの名前を順位にとともに表示するように、表示部１２ｂを制御する。図９は、検索の結果得られた差分モジュールの名前が順位とともに表示された場合の一例を示す図である。図９の例では、制御部１２ｃは、差分モジュールの名前「入力値の確認」を順位「１位」と対応付けて表示領域１７ｄに表示させる。また、図９の例では、制御部１２ｃは、差分モジュールの名前「入力情報検証」を順位「２位」と対応付けて表示領域１７ｄに表示させる。
【００５１】
そして、制御部１２ｃは、表示領域１７ｄに表示された差分モジュールの名前がユーザによって選択されるたびに、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択された名前の差分モジュールを、表示領域１７ｃに表示され選択された要素を含む業務フローモデルに適用し、差分モジュールが適用された業務フローモデルを適用事例として生成する。そして、制御部１２ｃは、生成した適用事例が表示領域１７ｅに表示されるように、表示部１２ｂを制御する。図１０は、適用事例が表示された場合の一例を示す図である。例えば、図９の例において、ユーザによって「２位」の「入力情報検証」が選択された場合には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択された名前「入力情報検証」の差分モジュールを、表示領域１７ｃに表示され選択された要素１８ｈに適用し、差分モジュールが適用された要素１８ｈを含む業務フローモデル１９を生成する。そして、図１０の例に示すように、制御部１２ｃは、業務フローモデル１９を適用事例１９として表示領域１７ｅに表示させる。これにより、制御部１２ｃは、差分モジュールが適用された業務フローモデルの一例をユーザに提示することができる。
【００５２】
そして、ユーザによって入力部１２ａを介して、「適用」ボタン１７ｇが押下された場合には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択された差分モジュールが適用された回数Ｎを算出する。そして、制御部１２ｃは、適用された差分モジュールの差分ＩＤの末尾に、記号「＃」を追加し、さらに、算出した回数Ｎを追加して、適用事例ＩＤを生成する。適用事例ＩＤは、適用事例を識別するためのＩＤである。例えば、制御部１２ｃによって差分ＩＤ「２０１１１２２０」が示す差分モジュールが新たに適用され、差分ＩＤ「２０１１１２２０」が示す差分モジュールが適用された回数が「１」である場合には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、適用事例ＩＤ「２０１１１２２０＃１」を生成する。
【００５３】
続いて、制御部１２ｃは、適用された差分モジュールの差分ＩＤと、生成した適用事例ＩＤと、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータと、生成した適用事例のＸＭＬの形式のデータと、をサーバ１に送信する。なお、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータは、表示領域１７ｃに表示された業務フローモデルのＸＭＬの形式のデータである。図１１は、第２の端末がサーバに送信する各種のデータの一例を示す図である。図１１の例は、制御部１２ｃが、適用された差分モジュールの差分ＩＤ「２０１１１２２０」をサーバ１に送信する場合を示す。また、図１１の例は、制御部１２ｃが、適用事例ＩＤ「２０１１１２２０＃１」をサーバ１に送信する場合を示す。また、図１１の例は、制御部１２ｃが、差分ＩＤ「２０１１１２２０」が示す差分モジュールが適用される前の業務フローモデル１８ａのＸＭＬの形式のデータをサーバ１に送信する場合を示す。また、図１１の例は、制御部１２ｃが、差分ＩＤ「２０１１１２２０」が示す差分モジュールが業務フローモデル１８ａに適用された適用事例のＸＭＬの形式のデータをサーバ１に送信する場合を示す。
【００５４】
図１の説明に戻り、サーバ１は、第１の端末１１から送信された差分モジュールを受信した場合には、受信した差分モジュールを記憶する。また、サーバ１は、第２の端末１２から送信された検索条件を受信した場合には、受信した検索条件に合致する差分モジュールを検索し、検索の結果得られた差分モジュールに係る情報を第２の端末１２に送信する。サーバ１は、生成装置の一例である。
【００５５】
図１２は、サーバの機能構成の一例を示す図である。図１２に示すように、サーバ１は、入力部２、出力部３、通信部４、記憶部５、制御部６を有する。
【００５６】
入力部２は、制御部６に各種の情報を入力する。例えば、入力部２は、サーバ１の管理者などから各種の操作を受け付けて、受け付けた操作の内容を制御部６に入力する。入力部２は、例えば、キーボードやマウスなどのデバイスである。
【００５７】
出力部３は、各種の情報を出力する。例えば、出力部３は、サーバ１の稼働状態を示す画像を表示する。出力部３は、例えば、ディスプレイなどの表示装置である。
【００５８】
通信部４は、第１の端末１１および第２の端末１２との通信を行うためのインターフェースである。例えば、通信部４は、第１の端末１１から送信された、図５の例に示すような、差分モジュールを受信した場合には、受信した差分モジュールを制御部６に送信する。また、通信部４は、第２の端末１２から送信された、図８の例に示すような検索条件を受信した場合には、受信した検索条件を制御部６に送信する。また、通信部４は、制御部６から送信された、後述する差分ＩＤ、順位および差分モジュールのＸＭＬの形式のデータが対応付けられたデータを受信した場合には、受信したデータを第２の端末１２に送信する。また、通信部４は、制御部６から送信された、図１１の例に示すような、各種のデータを受信した場合には、受信した各種のデータを第２の端末１２に送信する。
【００５９】
記憶部５は、各種の情報を記憶する。例えば、記憶部５は、差分モジュールＤＢ（Data  Base）５ａ、タグＤＢ５ｂ、適用事例ＤＢ５ｃを記憶する。
【００６０】
差分モジュールＤＢ５ａは、差分モジュールが登録されるデータベースである。差分モジュールＤＢ５ａには、後述するタグ登録部６ｂにより、第１の端末１１において生成された差分モジュールに関する各種の情報が登録される。
【００６１】
図１３は、差分モジュールＤＢのデータ構造の一例を示す図である。例えば、図１３に示す差分モジュールＤＢ５ａは、「差分ＩＤ」の項目５ａ＿１と、「名前」の項目５ａ＿２と、「ＸＭＬ表現」の項目５ａ＿３とを有する。
【００６２】
「差分ＩＤ」の項目５ａ＿１には、差分モジュールを識別するためのＩＤである差分ＩＤが登録される。図１３の例は、「差分ＩＤ」の項目５ａ＿１に、名前が「権限委譲」である差分モジュールの差分ＩＤ「１９８５０５２７」が登録された場合を示す。また、図１３の例は、「差分ＩＤ」の項目５ａ＿１に、名前が「入力値の確認」である差分モジュールの差分ＩＤ「２００９０１０１」が登録された場合を示す。また、図１３の例は、「差分ＩＤ」の項目５ａ＿１に、名前が「入力情報検証」である差分モジュールの差分ＩＤ「２０１１１２２０」が登録された場合を示す。
【００６３】
「名前」の項目５ａ＿２には、差分モジュールの名前が登録される。図１３の例は、「名前」の項目５ａ＿２に、名前「権限委譲」が登録された場合を示す。また、図１３の例は、「名前」の項目５ａ＿２に、名前「入力値の確認」が登録された場合を示す。また、図１３の例は、「名前」の項目５ａ＿２に、名前「入力情報検証」が登録された場合を示す。
【００６４】
「ＸＭＬ表現」の項目５ａ＿３には、差分モジュールのＸＭＬの形式のデータが登録される。図１３の例は、「ＸＭＬ表現」の項目５ａ＿３に、名前が「権限委譲」である差分モジュールのＸＭＬの形式のデータが登録された場合を示す。また、図１３の例は、「ＸＭＬ表現」の項目５ａ＿３に、名前が「入力値の確認」である差分モジュールのＸＭＬの形式のデータが登録された場合を示す。また、図１３の例は、「ＸＭＬ表現」の項目５ａ＿３に、名前が「入力情報検証」である差分モジュールのＸＭＬの形式のデータが登録された場合を示す。
【００６５】
図１２の説明に戻り、タグＤＢ５ｂは、タグが登録されるデータベースである。タグＤＢ５ｂには、後述のタグ登録部６ｂおよび生成部７ｄによってタグが登録される。
【００６６】
図１４は、タグＤＢのデータ構造の一例を示す図である。例えば、図１４に示すタグＤＢ５ｂは、「差分ＩＤ」の項目５ｂ＿１と、「タグＩＤ」の項目５ｂ＿２と、「追加／変更」の項目５ｂ＿３と、「要素」の項目５ｂ＿４と、「詳細」の項目５ｂ＿５と、「単語」の項目５ｂ＿６とを有する。
【００６７】
「差分ＩＤ」の項目５ｂ＿１には、差分ＩＤが登録される。図１４の例は、「差分ＩＤ」の項目５ｂ＿１に、名前が「入力情報検証」である差分モジュールの差分ＩＤ「２０１１１２２０」が登録された場合を示す。
【００６８】
「タグＩＤ」の項目５ｂ＿２には、タグを識別するためのＩＤであるタグＩＤが登録される。図１４の例は、「タグＩＤ」の項目５ｂ＿２に、４つのレコードのうち１番上のレコードが示すタグのタグＩＤ「２０１１１２２０−１」が登録された場合を示す。また、図１４の例は、「タグＩＤ」の項目５ｂ＿２に、４つのレコードのうち上から２番目のレコードが示すタグのタグＩＤ「２０１１１２２０−２」が登録された場合を示す。また、図１４の例は、「タグＩＤ」の項目５ｂ＿２に、４つのレコードのうち上から３番目のレコードが示すタグのタグＩＤ「２０１１１２２０−３」が登録された場合を示す。また、図１４の例は、「タグＩＤ」の項目５ｂ＿２に、４つのレコードのうち１番下のレコードが示すタグのタグＩＤ「２０１１１２２０−４」が登録された場合を示す。
【００６９】
「追加／変更」の項目５ｂ＿３には、追加される要素または変更される要素のいずれであるのかを示す情報が登録される。図１４の例は、４つのレコードのうち１番上のレコードの「追加／変更」の項目５ｂ＿３に、追加される要素であることを示す「追加」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から２番目のレコードの「追加／変更」の項目５ｂ＿３に、「追加」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から３番目のレコードの「追加／変更」の項目５ｂ＿３に、「追加」が登録された場合を示す。また、図１４の例は、４つのレコードのうち１番下のレコードの「追加／変更」の項目５ｂ＿３に、変更される要素であることを示す「変更」が登録された場合を示す。
【００７０】
「要素」の項目５ｂ＿４には、要素の種類および要素のＩＤが登録される。図１４の例は、４つのレコードのうち１番上のレコードの「要素」の項目５ｂ＿４に、要素の種類「分岐」および要素のＩＤ「４」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から２番目のレコードの「要素」の項目５ｂ＿４に、要素の種類「条件フロー」および要素のＩＤ「５」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から３番目のレコードの「要素」の項目５ｂ＿４に、要素の種類「条件フロー」および要素のＩＤ「６」が登録された場合を示す。また、図１４の例は、４つのレコードのうち１番下のレコードの「要素」の項目５ｂ＿４に、要素の種類「フロー」および要素のＩＤ「２」が登録された場合を示す。
【００７１】
「詳細」の項目５ｂ＿５には、要素に記載された文字列が登録される。図１４の例は、４つのレコードのうち１番上のレコードの「詳細」の項目５ｂ＿５に、要素に記載された文字列「＄１情報が不正？」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から２番目のレコードの「詳細」の項目５ｂ＿５に、要素に記載された文字列「「＄１情報が不正？」→「＄１情報を入力する」」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から３番目のレコードの「詳細」の項目５ｂ＿５に、要素に記載された文字列「「＄１情報が不正？」→「エンド」」が登録された場合を示す。また、図１４の例は、４つのレコードのうち１番下のレコードの「詳細」の項目５ｂ＿５に、要素に記載された文字列「「＄１情報を入力する」→「＄１情報が不正？」」が登録された場合を示す。
【００７２】
「単語」の項目５ｂ＿６には、単語が登録される。図１４の例は、４つのレコードのうち１番上のレコードの「単語」の項目５ｂ＿６に、単語「情報」および「不正」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から２番目のレコードの「単語」の項目５ｂ＿６に、単語「情報」、「不正」および「入力」が登録された場合を示す。また、図１４の例は、４つのレコードのうち上から３番目のレコードの「単語」の項目５ｂ＿６に、単語「情報」および「不正」が登録された場合を示す。また、図１４の例は、４つのレコードのうち１番下のレコードの「単語」の項目５ｂ＿６に、単語「情報」、「不正」および「入力」が登録された場合を示す。
【００７３】
図１２の説明に戻り、適用事例ＤＢ５ｃは、適用事例が登録されるデータベースである。適用事例ＤＢ５ｃには、後述の適用事例解析部６ｅによって適用事例が登録される。
【００７４】
図１５は、適用事例ＤＢのデータ構造の一例を示す図である。例えば、図１５に示す適用事例ＤＢ５ｃは、「差分ＩＤ」の項目５ｃ＿１と、「適用事例ＩＤ」の項目５ｃ＿２と、「差分モジュールが適用される前の業務フローモデル」の項目５ｃ＿３と、「適用事例」の項目５ｃ＿４とを有する。
【００７５】
「差分ＩＤ」の項目５ｃ＿１には、差分ＩＤが登録される。図１５の例は、１番目のレコードの「差分ＩＤ」の項目５ｃ＿１に、名前が「入力情報検証」である差分モジュールの差分ＩＤ「２０１１１２２０」が登録された場合を示す。また、図１５の例は、２番目のレコードの「差分ＩＤ」の項目５ｃ＿１に、名前が「入力値の確認」である差分モジュールの差分ＩＤ「２００９０１０１」が登録された場合を示す。
【００７６】
「適用事例ＩＤ」の項目５ｃ＿２には、適用事例ＩＤが登録される。図１５の例は、１番目のレコードの「適用事例ＩＤ」の項目５ｃ＿２に、差分ＩＤ「２０１１１２２０」が示す差分モジュールが「１」回目に適用された結果得られた適用事例であることを示す適用事例ＩＤ「２０１１１２２０＃１」が登録された場合を示す。また、図１５の例は、２番目のレコードの「適用事例ＩＤ」の項目５ｃ＿２に、差分ＩＤ「２００９０１０１」が示す差分モジュールが「１」回目に適用された結果得られた適用事例であることを示す適用事例ＩＤ「２００９０１０１＃１」が登録された場合を示す。
【００７７】
「差分モジュールが適用される前の業務フローモデル」の項目５ｃ＿３には、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータが登録される。図１５の例は、１番目のレコードの「差分モジュールが適用される前の業務フローモデル」の項目５ｃ＿３に、差分ＩＤ「２０１１１２２０」が示す差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータが登録された場合を示す。また、図１５の例は、２番目のレコードの「差分モジュールが適用される前の業務フローモデル」の項目５ｃ＿３に、差分ＩＤ「２００９０１０１」が示す差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータが登録された場合を示す。
【００７８】
「適用事例」の項目５ｃ＿４には、差分モジュールが適用された業務フローモデルである適用事例のＸＭＬの形式のデータが登録される。図１５の例は、１番目のレコードの「適用事例」の項目５ｃ＿４に、差分ＩＤ「２０１１１２２０」が示す差分モジュールが適用された業務フローモデルのＸＭＬの形式のデータが登録された場合を示す。図１５の例は、２番目のレコードの「適用事例」の項目５ｃ＿４に、差分ＩＤ「２００９０１０１」が示す差分モジュールが適用された業務フローモデルのＸＭＬの形式のデータが登録された場合を示す。
【００７９】
図１２の説明に戻り、記憶部５は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部５は、上記の種類の記憶装置に限定されるものではなく、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）であってもよい。
【００８０】
制御部６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図１２に示すように、制御部６は、受付部６ａと、タグ登録部６ｂと、検索部６ｃと、表示制御部６ｄと、適用事例解析部６ｅとを有する。
【００８１】
受付部６ａは、各種の情報を受け付ける。例えば、受付部６ａは、通信部４を介して、第１の端末１１から送信された差分モジュールを受け付ける。また、受付部６ａは、通信部４を介して、第２の端末１２から送信された検索条件を受け付ける。また、受付部６ａは、通信部４を介して、第２の端末１２から送信された、図１１の例に示すような各種のデータを受け付ける。
【００８２】
タグ登録部６ｂは、タグをタグＤＢ５ｂに登録する。一態様としては、タグ登録部６ｂは、受付部６ａにより差分モジュールが受け付けられた場合には、受け付けられた差分モジュールを識別するための差分ＩＤを生成する。例えば、タグ登録部６ｂは、図５の例に示すような差分モジュールが受け付けられた場合には、差分ＩＤ「２０１１１２２０」を生成する。
【００８３】
続いて、タグ登録部６ｂは、受け付けられた差分モジュールの「name」に設定された差分モジュールの名前を抽出する。例えば、タグ登録部６ｂは、図５の例に示すような差分モジュールが受け付けられた場合には、「name」に設定された差分モジュールの名前「入力情報検証」を抽出する。
【００８４】
そして、タグ登録部６ｂは、生成した差分ＩＤ、抽出した差分モジュールの名前、および、受け付けられた差分モジュールのＸＭＬの形式のデータを対応付けて、差分モジュールＤＢ５ａに登録する。例えば、タグ登録部６ｂは、差分ＩＤ「２０１１１２２０」、名前「入力情報検証」、および、名前が「入力情報検証」である差分モジュールのＸＭＬの形式のデータを対応付けて、図１３の例に示す差分モジュールＤＢ５ａに登録する。
【００８５】
次に、タグ登録部６ｂは、差分モジュールＤＢ５ａに新たに登録した差分モジュールのＸＭＬの形式のデータに基づいて、次の処理を行う。すなわち、タグ登録部６ｂは、新たに登録した差分モジュールが適用されたことによって業務フローモデルに追加される要素の種類およびＩＤ、並びに、追加される要素に記載された文字列を追加要素として特定する。図１６は、本実施例に係るタグ登録部により実行される処理の一例を説明するための図である。例えば、タグ登録部６ｂは、図５に示す差分モジュールのＸＭＬの形式のデータに基づいて、図１６に示すように、追加される要素の種類「分岐」およびＩＤ「４」、並びに、追加される要素に記載された文字列「＄１情報が不正？」を追加要素として特定する。また、タグ登録部６ｂは、図１６に示すように、追加される要素の種類「条件フロー」およびＩＤ「５」、並びに、追加される要素に記載された文字列「「＄１情報が不正？」→「＄１情報を入力する」」を追加要素として特定する。また、タグ登録部６ｂは、図１６に示すように、追加される要素の種類「条件フロー」およびＩＤ「６」、並びに、追加される要素に記載された文字列「「＄１情報が不正？」→「エンド」」を追加要素として特定する。
【００８６】
続いて、タグ登録部６ｂは、新たに登録した差分モジュールのＸＭＬの形式のデータに基づいて、次の処理を行う。すなわち、タグ登録部６ｂは、新たに登録した差分モジュールが適用されたことによって変更される業務フローモデルの要素の種類およびＩＤ、並びに、変更される要素に記載される文字列を変更要素として特定する。例えば、タグ登録部６ｂは、図５に示す差分モジュールのＸＭＬの形式のデータに基づいて、次の処理を行う。すなわち、タグ登録部６ｂは、図１６に示すように、変更される要素の種類「フロー」およびＩＤ「２」、並びに、変更される要素に記載される文字列「「＄１情報を入力する」→「＄１情報が不正？」」を変更要素として特定する。
【００８７】
そして、タグ登録部６ｂは、追加される要素に記載された文字列、および、変更される要素に記載される文字列から、単語を抽出する。例えば、タグ登録部６ｂは、追加される要素に記載された文字列「＄１情報が不正？」から、単語「情報」、「不正」を抽出する。また、タグ登録部６ｂは、追加される要素に記載された文字列「「＄１情報が不正？」→「＄１情報を入力する」」から、単語「情報」、「不正」、「入力」を抽出する。また、タグ登録部６ｂは、追加される要素に記載された文字列「「＄１情報が不正？」→「エンド」」から、単語「情報」、「不正」を抽出する。また、タグ登録部６ｂは、変更される要素に記載される文字列「「＄１情報を入力する」→「＄１情報が不正？」」から、単語「情報」、「不正」、「入力」を抽出する。
【００８８】
続いて、タグ登録部６ｂは、追加される要素、および、変更される要素ごとに、タグＩＤを生成する。タグ登録部６ｂは、新たに登録した差分モジュールの差分ＩＤの末尾に記号「−」を追加し、記号「−」に数値を追加することで、タグＩＤを生成することができる。例えば、タグ登録部６ｂは、種類が「分岐」でありＩＤが「４」である追加される要素について、タグＩＤ「２０１１１２２０−１」を生成する。また、タグ登録部６ｂは、種類が「条件フロー」でありＩＤが「５」である追加される要素について、タグＩＤ「２０１１１２２０−２」を生成する。タグ登録部６ｂは、種類が「条件フロー」でありＩＤが「６」である追加される要素について、タグＩＤ「２０１１１２２０−３」を生成する。また、タグ登録部６ｂは、種類が「フロー」でありＩＤが「２」である変更される要素について、タグＩＤ「２０１１１２２０−４」を生成する。
【００８９】
その後、タグ登録部６ｂは、生成した差分ＩＤをタグＤＢ５ｂに登録する。これに加えて、タグ登録部６ｂは、生成したタグＩＤ、追加される要素または変更される要素のいずれであるのかを示す情報、要素の種類およびＩＤ、要素に記載された文字列、および、単語を対応付けてタグＤＢ５ｂに登録する。これにより、差分ＩＤが示す差分モジュールに対応するタグが生成される。例えば、タグ登録部６ｂは、図１４に示すように、タグＤＢ５ｂの「差分ＩＤ」の項目５ｂ＿１に、差分ＩＤ「２０１１１２２０」を登録する。これに加えて、タグ登録部６ｂは、「タグＩＤ」の項目５ｂ＿２に、タグＩＤ「２０１１１２２０−１」を、「追加／変更」の項目５ｂ＿３に、追加される要素を示す情報「追加」を、「要素」の項目５ｂ＿４に、要素の種類「分岐」およびＩＤ「４」を登録する。さらに、タグ登録部６ｂは、「詳細」の項目５ｂ＿４に、要素に記載された文字列「＄１情報が不正？」を、「単語」の項目５ｂ＿５に、単語「情報」、「不正」を登録する。
【００９０】
図１２の説明に戻り、検索部６ｃは、各種の情報を検索する。一態様としては、検索部６ｃは、受付部６ａにより検索条件が受け付けられた場合には、検索条件の「選択要素ＩＤ」の項目に登録された要素のＩＤ、および、「適用対象モデル」の項目に登録された業務フローモデルのＸＭＬの形式のデータを取得する。例えば、図８の例に示す検索条件が受け付けられた場合には、検索部６ｃは、「選択要素ＩＤ」の項目に登録された要素１８ｈのＩＤ「１」、および、「適用対象モデル」の項目に登録された業務フローモデル１８ａのＸＭＬの形式のデータを取得する。
【００９１】
続いて、検索部６ｃは、差分モジュールＤＢ５ａの「ＸＭＬ表現」の項目５ａ＿３に登録された全ての差分モジュールのＸＭＬの形式のデータを取得する。例えば、差分モジュールＤＢ５ａの登録内容が図１３の例に示すような登録内容である場合には、検索部６ｃは、次のような処理を行う。すなわち、検索部６ｃは、名前が「権限委譲」の差分モジュール、名前が「入力値の確認」の差分モジュール、および、名前が「入力情報検証」の差分モジュールのＸＭＬの形式のデータを取得する。
【００９２】
続いて、検索部６ｃは、差分モジュールＤＢ５ａから取得した全てのＸＭＬの形式のデータのうち、未選択のデータを１つ選択する。例えば、検索部６ｃは、名前が「権限委譲」、名前が「入力値の確認」、および、名前が「入力情報検証」の各差分モジュールのＸＭＬの形式のデータを取得した場合には、次の処理を行う。すなわち、検索部６ｃは、名前が「権限委譲」、または、「入力値の確認」、もしくは、「入力情報検証」である未選択のデータを１つ選択する。
【００９３】
そして、検索部６ｃは、検索条件から取得したＸＭＬの形式のデータが示す業務フローモデルの一部分のモデルであって、取得した要素のＩＤが示す要素を含むモデルが、次のような条件を満たすか否かを判定する。すなわち、検索部６ｃは、かかるモデルが、選択したデータが示す差分モジュールに含まれる適用条件を満たすか否かを判定する。ここで、選択したデータが、名前が「権限委譲」の差分モジュールのＸＭＬの形式のデータであり、検索条件から取得した要素のＩＤが「１」であり、検索条件から取得したＸＭＬの形式のデータが、業務フローモデル１８ａのデータである場合について説明する。この場合、取得したデータが示す業務フローモデル１８ａの一部分のモデルであって、取得したＩＤ「１」が示す要素１８ｈを含むモデルが、名前が「権限委譲」の差分モジュールに含まれる適用条件を満たさないため、検索部６ｃは、次の処理を行う。すなわち、検索部６ｃは、業務フローモデル１８ａの一部分のモデルであって、要素１８ｈを含むモデルが、名前が「権限委譲」の差分モジュールに含まれる適用条件を満たさないと判定する。
【００９４】
また、選択したデータが、名前が「入力値の確認」の差分モジュールのＸＭＬの形式のデータであり、検索条件から取得した要素のＩＤが「１」であり、検索条件から取得したＸＭＬの形式のデータが業務フローモデル１８ａのデータである場合について説明する。この場合、取得したデータが示す業務フローモデル１８ａの一部分のモデルであって、取得したＩＤ「１」が示す要素１８ｈを含むモデルが、名前が「入力値の確認」の差分モジュールに含まれる適用条件を満たすため、検索部６ｃは、次の処理を行う。すなわち、検索部６ｃは、業務フローモデル１８ａの一部分のモデルであって、要素１８ｈを含むモデルが、名前が「入力値の確認」の差分モジュールに含まれる適用条件を満たすと判定する。
【００９５】
また、選択したデータが、名前が「入力情報検証」の差分モジュールのＸＭＬの形式のデータであり、検索条件から取得した要素のＩＤが「１」であり、検索条件から取得したＸＭＬの形式のデータが業務フローモデル１８ａのデータである場合について説明する。この場合、取得したデータが示す業務フローモデル１８ａの一部分のモデルであって、取得したＩＤ「１」が示す要素１８ｈを含むモデルが、名前が「入力情報検証」の差分モジュールに含まれる適用条件を満たすため、検索部６ｃは、次の処理を行う。すなわち、検索部６ｃは、業務フローモデル１８ａの一部分のモデルであって、要素１８ｈを含むモデルが、名前が「入力情報検証」の差分モジュールに含まれる適用条件を満たすと判定する。
【００９６】
次に、検索部６ｃは、満たすと判定された適用条件を含む差分モジュールの差分ＩＤを差分モジュールＤＢ５ａから取得する。例えば、検索部６ｃは、満たすと判定された適用条件を含む、「入力値の確認」の差分モジュールの差分ＩＤ「２００９０１０１」を差分モジュールＤＢ５ａから取得する。また、検索部６ｃは、満たすと判定された適用条件を含む、「入力情報検証」の差分モジュールの差分ＩＤ「２０１１１２２０」を差分モジュールＤＢ５ａから取得する。
【００９７】
そして、検索部６ｃは、差分モジュールＤＢ５ａから取得した全てのＸＭＬの形式のデータのうち、未選択のデータがあるか否かを判定する。未選択のデータがある場合には、検索部６ｃは、上述した、未選択のデータを１つ選択する処理を行い、未選択のデータを１つ選択する処理以降の各処理を行う。これにより、検索部６ｃは、差分モジュールＤＢ５ａから取得した全てのＸＭＬの形式のデータについて、上述した判定を行うことができる。
【００９８】
続いて、検索部６ｃは、少なくとも１つの差分ＩＤを取得したか否かを判定する。取得した場合には、検索部６ｃは、取得した全ての差分ＩＤのうち、未選択の差分ＩＤを１つ選択する。例えば、差分ＩＤ「２００９０１０１」および差分ＩＤ「２０１１１２２０」を取得した場合には、未選択である差分ＩＤ「２００９０１０１」または差分ＩＤ「２０１１１２２０」を１つ選択する。
【００９９】
そして、検索部６ｃは、タグＤＢ５ｂのレコードの中から、選択した差分ＩＤが「差分ＩＤ」の項目に登録されたレコードを特定する。図１７は、タグＤＢの登録内容の一例を示す図である。ここで、タグＤＢ５ｂの登録内容が、図１７に示すような登録内容である場合について説明する。この場合、検索部６ｃは、選択した差分ＩＤが「２０１１１２２０」であるときには、差分ＩＤ「２０１１１２２０」が、「差分ＩＤ」の項目５ｂ＿１に登録されたレコードを特定する。また、検索部６ｃは、選択した差分ＩＤが「２００９０１０１」であるときには、差分ＩＤ「２００９０１０１」が、「差分ＩＤ」の項目５ｂ＿１に登録されたレコードを特定する。
【０１００】
続いて、検索部６ｃは、検索条件の「検索キーワード」の項目に登録された検索用のキーワードを取得する。例えば、図８の例に示す検索条件が受け付けられた場合には、検索部６ｃは、「検索キーワード」の項目に登録された検索用のキーワード「貸出」および「確認」を取得する。
【０１０１】
そして、検索部６ｃは、取得したキーワードのうち、未選択のキーワードを１つ選択する。例えば、キーワード「貸出」および「確認」を取得した場合には、検索部６ｃは、未選択であるキーワード「貸出」または「確認」を選択する。
【０１０２】
続いて、検索部６ｃは、選択したキーワードと一致する、特定したレコードの「単語」の項目に登録された単語の数を算出する。例えば、選択したキーワードが「貸出」であり、特定したレコードが、図１７に示す差分ＩＤ「２０１１１２２０」を含むレコードである場合について説明する。この場合、差分ＩＤ「２０１１１２２０」を含むレコードの「単語」の項目５ｂ＿６には、単語「貸出」が登録されていないため、検索部６ｃは、次のような処理を行う。すなわち、検索部６ｃは、選択したキーワード「貸出」と一致する、特定したレコードの「単語」の項目５ｂ＿６に登録された単語「貸出」の数「０」を算出する。
【０１０３】
また、選択したキーワードが「確認」であり、特定したレコードが、図１７に示す差分ＩＤ「２０１１１２２０」を含むレコードである場合について説明する。この場合、差分ＩＤ「２０１１１２２０」を含むレコードの「単語」の項目５ｂ＿６には、単語「確認」が登録されていないため、検索部６ｃは、次のような処理を行う。すなわち、検索部６ｃは、選択したキーワード「確認」と一致する、特定したレコードの「単語」の項目５ｂ＿６に登録された単語「確認」の数「０」を算出する。
【０１０４】
また、選択したキーワードが「貸出」であり、特定したレコードが、図１７に示す差分ＩＤ「２００９０１０１」を含むレコードである場合について説明する。この場合、差分ＩＤ「２００９０１０１」を含むレコードの「単語」の項目５ｂ＿６には、単語「貸出」が登録されていないため、検索部６ｃは、次のような処理を行う。すなわち、検索部６ｃは、選択したキーワード「貸出」と一致する、特定したレコードの「単語」の項目５ｂ＿６に登録された単語「貸出」の数「０」を算出する。
【０１０５】
さらに、選択したキーワードが「確認」であり、特定したレコードが、図１７に示す差分ＩＤ「２００９０１０１」を含むレコードである場合について説明する。この場合、差分ＩＤ「２００９０１０１」を含むレコードの「単語」の項目５ｂ＿６には、単語「確認」が１つ登録されているため、検索部６ｃは、次のような処理を行う。すなわち、検索部６ｃは、選択したキーワード「確認」と一致する、特定したレコードの「単語」の項目５ｂ＿６に登録された単語「確認」の数「１」を算出する。
【０１０６】
そして、検索部６ｃは、取得したキーワードの中に、未選択のキーワードがあるか否かを判定する。未選択のキーワードがある場合には、検索部６ｃは、上述した、未選択のキーワードを１つ選択する処理を行い、未選択のキーワードを１つ選択する処理以降の各処理を行う。また、未選択のキーワードがない場合には、検索部６ｃは、取得した差分ＩＤの中に、未選択の差分ＩＤがあるか否かを判定する。未選択の差分ＩＤがある場合には、検索部６ｃは、上述した、未選択の差分ＩＤを１つ選択する処理を行い、未選択の差分ＩＤを１つ選択する処理以降の各処理を行う。これにより、検索部６ｃは、取得した全ての検索用のキーワードについて、特定した全てのレコードごとに、単語の数を算出することができる。
【０１０７】
未選択の差分ＩＤがない場合には、検索部６ｃは、特定したレコードごとに、算出された単語の数の和を算出する。例えば、特定したレコードが、図１７に示す差分ＩＤ「２００９０１０１」を含むレコードであり、算出した単語「貸出」の数が「０」であり、算出した単語「確認」の数が「１」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２００９０１０１」を含むレコードについて、単語の数の和「１」（０＋１）を算出する。
【０１０８】
また、特定したレコードが、図１７に示す差分ＩＤ「２０１１１２２０」を含むレコードであり、算出した単語「貸出」の数が「０」であり、算出した単語「確認」の数が「０」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２０１１１２２０」を含むレコードについて、単語の数の和「０」（０＋０）を算出する。
【０１０９】
そして、検索部６ｃは、算出した単語の数の和の値が大きいレコードから、昇順で順位を設定する。例えば、差分ＩＤ「２００９０１０１」を含むレコードについて、算出した単語の数の和が「１」であり、差分ＩＤ「２０１１１２２０」を含むレコードについて、算出した単語の数の和が「０」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２００９０１０１」を含むレコードに順位「１位」を設定し、差分ＩＤ「２０１１１２２０」を含むレコードに順位「２位」を設定する。なお、レコードに設定された順位は、レコードに含まれる差分ＩＤが示す差分モジュールの順位とも言える。
【０１１０】
図１２の説明に戻り、表示制御部６ｄは、各種の情報が表示されるように制御する。例えば、表示制御部６ｄは、レコードに設定された順位、レコードの「差分ＩＤ」の項目５ｂ＿１に登録された差分ＩＤ、および、差分ＩＤが示す差分モジュールのＸＭＬの形式のデータを対応付けて、ネットワーク１３を介して第２の端末１２に送信する。このようにして、表示制御部６ｄは、検索の結果得られた差分モジュールのＸＭＬの形式のデータ、および、かかる差分モジュールのＩＤである差分ＩＤ、並びに、差分ＩＤが示す差分モジュールの順位を第２の端末１２に送信する。例えば、表示制御部６ｄは、レコードに設定された順位「１位」、差分ＩＤ「２００９０１０１」、および、差分ＩＤ「２００９０１０１」が示す差分モジュールのＸＭＬの形式のデータを対応付けたデータを、第２の端末１２に送信する。これに加えて、表示制御部６ｄは、レコードに設定された順位「２位」、差分ＩＤ「２０１１１２２０」、および、差分ＩＤ「２０１１１２２０」が示す差分モジュールのＸＭＬの形式のデータを対応付けたデータを、第２の端末１２に送信する。
【０１１１】
適用事例解析部６ｅは、第１の端末１１から送信された差分ＩＤ、適用事例ＩＤ、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータ、および、適用事例のＸＭＬの形式のデータに基づいて、タグＤＢ５ｂを更新する。適用事例解析部６ｅは、図１２の例に示すように、特定部７ａと、抽出部７ｂと、算出部７ｃと、生成部７ｄとを有する。
【０１１２】
特定部７ａの一態様を説明する。第１の端末１１から送信された差分ＩＤ、適用事例ＩＤ、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータ、および、適用事例のＸＭＬの形式のデータが受付部６ａにより受け付けられると、特定部７ａは、次の処理を行う。すなわち、特定部７ａは、差分ＩＤ、適用事例ＩＤ、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータ、および、適用事例のＸＭＬの形式のデータを適用事例ＤＢ５ｃに登録する。
【０１１３】
続いて、特定部７ａは、適用事例ＤＢ５ｃの全ての登録内容を取得する。例えば、適用事例ＤＢ５ｃの登録内容が、図１５に示すような登録内容である場合には、特定部７ａは、図１５に示す全ての登録内容を取得する。
【０１１４】
そして、特定部７ａは、取得した適用事例ＤＢ５ｃの登録内容に基づいて、次の処理を行う。すなわち、特定部７ａは、適用事例ＩＤごとに、差分モジュールが適用されたことによって業務フローモデルに追加される要素の種類およびＩＤ、並びに、追加される要素に記載された文字列を追加要素として特定する。図１８は、本実施例に係る特定部により実行される処理の一例を説明するための図である。例えば、特定部７ａは、図１５に示す適用事例ＤＢ５ｃの登録内容に基づいて、次のような処理を行う。すなわち、特定部７ａは、図１８に示すように、適用事例ＩＤ「２０１１１２２０＃１」について、追加される要素の種類「分岐」およびＩＤ「４」、並びに、追加される要素に記載された文字列「貸出情報が不正？」を追加要素として特定する。また、特定部７ａは、図１８に示すように、追加される要素の種類「条件フロー」およびＩＤ「５」、並びに、追加される要素に記載された文字列「「貸出情報が不正？」→「貸出情報を入力する」」を追加要素として特定する。また、特定部７ａは、図１８に示すように、追加される要素の種類「条件フロー」およびＩＤ「６」、並びに、追加される要素に記載された文字列「「貸出情報が不正？」→「エンド」」を追加要素として特定する。
【０１１５】
また、特定部７ａは、図１８に示すように、適用事例ＩＤ「２００９０１０１＃１」について、追加される要素の種類「活動」およびＩＤ「４」、並びに、追加される要素に記載された文字列「分析試料を遠心分離器にかける」を追加要素として特定する。また、特定部７ａは、図１８に示すように、追加される要素の種類「フロー」およびＩＤ「５」、並びに、追加される要素に記載された文字列「「分析試料を遠心分離器にかける」→「分析試料を確認する」」を追加要素として特定する。
【０１１６】
続いて、特定部７ａは、取得した適用事例ＤＢ５ｃの登録内容に基づいて、次の処理を行う。すなわち、特定部７ａは、適用事例ＩＤごとに、差分モジュールが適用されたことによって変更される業務フローモデルの要素の種類およびＩＤ、並びに、変更される要素に記載される文字列を変更要素として特定する。例えば、特定部７ａは、図１５に示す適用事例ＤＢ５ｃの登録内容に基づいて、次のような処理を行う。すなわち、特定部７ａは、図１８に示すように、適用事例ＩＤ「２０１１１２２０＃１」について、変更される要素の種類「フロー」およびＩＤ「２」を変更要素として特定する。これに加えて、特定部７ａは、変更される要素に記載される文字列「「貸出情報を入力する」→「貸出情報が不正？」」をも変更要素として特定する。
【０１１７】
また、特定部７ａは、図１８に示すように、適用事例ＩＤ「２００９０１０１＃１」について、変更される要素の種類「フロー」およびＩＤ「２」を変更要素として特定する。これに加えて、特定部７ａは、変更される要素に記載される文字列「「分析試料を入力する」→「分析試料を遠心分離器にかける」」をも変更要素として特定する。
【０１１８】
図１２の説明に戻り、抽出部７ｂの一態様について説明する。抽出部７ｂは、適用事例ＩＤごとに、追加される要素に記載された文字列、および、変更される要素に記載される文字列から、単語を抽出する。例えば、抽出部７ｂは、適用事例ＩＤ「２０１１１２２０＃１」について、追加される要素に記載された文字列「貸出情報が不正？」から、単語「貸出情報」、「不正」を抽出する。また、抽出部７ｂは、追加される要素に記載された文字列「「貸出情報が不正？」→「貸出情報を入力する」」から、単語「貸出情報」、「不正」、「入力」を抽出する。また、抽出部７ｂは、追加される要素に記載された文字列「「貸出情報が不正？」→「エンド」」から、単語「貸出情報」、「不正」を抽出する。また、抽出部７ｂは、変更される要素に記載される文字列「「貸出情報を入力する」→「貸出情報が不正？」」から、単語「貸出情報」、「不正」、「入力」を抽出する。
【０１１９】
また、抽出部７ｂは、適用事例ＩＤ「２００９０１０１＃１」について、追加される要素に記載された文字列「分析試料を遠心分離器にかける」から、単語「分析試料」、「遠心分離器」を抽出する。また、抽出部７ｂは、追加される要素に記載された文字列「「分析試料を遠心分離器にかける」→「分析試料を確認する」」から、単語「分析試料」、「遠心分離器」、「確認」を抽出する。また、抽出部７ｂは、変更される要素に記載される文字列「「分析試料を入力する」→「分析試料を遠心分離器にかける」」から、単語「入力」、「分析試料」、「遠心分離器」を抽出する。
【０１２０】
算出部７ｃの一態様について説明する。算出部７ｃは、追加される要素、および、変更される要素ごとに、タグＩＤを生成する。算出部７ｃは、適用事例ＩＤの末尾に記号「−」を追加し、記号「−」に数値を追加することで、タグＩＤを生成することができる。例えば、算出部７ｃは、図１８の例に示す種類が「分岐」でありＩＤが「４」である追加される要素について、タグＩＤ「２０１１１２２０＃１−１」を生成する。また、算出部７ｃは、種類が「条件フロー」でありＩＤが「５」である追加される要素について、タグＩＤ「２０１１１２２０＃１−２」を生成する。また、算出部７ｃは、種類が「条件フロー」でありＩＤが「６」である追加される要素について、タグＩＤ「２０１１１２２０＃１−３」を生成する。また、算出部７ｃは、種類が「フロー」でありＩＤが「２」である変更される要素について、タグＩＤ「２０１１１２２０＃１−４」を生成する。
【０１２１】
また、算出部７ｃは、図１８の例に示す種類が「活動」でありＩＤが「４」である追加される要素について、タグＩＤ「２００９０１０１＃１−１」を生成する。また、算出部７ｃは、種類が「フロー」でありＩＤが「５」である追加される要素について、タグＩＤ「２００９０１０１＃１−２」を生成する。また、算出部７ｃは、種類が「フロー」でありＩＤが「２」である変更される要素について、タグＩＤ「２００９０１０１＃１−３」を生成する。
【０１２２】
ここで、タグＩＤと、抽出された単語との対応関係について説明する。図１９は、タグＩＤと、抽出された単語との対応関係の一例を示す図である。図１９の例に示すように、適用事例ＩＤ「２０１１１２２０＃１」には、タグＩＤ「２０１１１２２０＃１−１」〜「２０１１１２２０＃１−４」が対応する。また、タグＩＤ「２０１１１２２０＃１−１」には、単語「貸出情報」、「不正」が対応する。タグＩＤ「２０１１１２２０＃１−２」には、単語「貸出情報」、「不正」、「入力」が対応する。また、タグＩＤ「２０１１１２２０＃１−３」には、単語「貸出情報」、「不正」が対応する。また、タグＩＤ「２０１１１２２０＃１−４」には、単語「貸出情報」、「不正」、「入力」が対応する。
【０１２３】
また、図１９の例に示すように、適用事例ＩＤ「２００９０１０１＃１」には、タグＩＤ「２００９０１０１＃１−１」〜「２００９０１０１＃１−３」が対応する。また、タグＩＤ「２００９０１０１＃１−１」には、単語「分析試料」、「遠心分離器」が対応する。タグＩＤ「２００９０１０１＃１−２」には、単語「分析試料」、「遠心分離器」、「確認」が対応する。また、タグＩＤ「２００９０１０１＃１−３」には、単語「入力」、「分析試料」、「遠心分離器」が対応する。
【０１２４】
そして、算出部７ｃは、適用事例ＩＤごとに、抽出した単語の集合を特定する。例えば、算出部７ｃは、適用事例ＩＤ「２０１１１２２０＃１」について、単語の集合「貸出情報」、「不正」、「入力」を特定する。また、算出部７ｃは、適用事例ＩＤ「２００９０１０１＃１」について、単語の集合「分析試料」、「遠心分離器」、「入力」、「確認」を特定する。
【０１２５】
続いて、算出部７ｃは、取得された適用事例ＤＢ５ｃの登録内容に含まれる適用事例ＩＤのうち、未選択の適用事例ＩＤを１つ選択する。例えば、図１５に示す適用事例ＤＢ５ｃの登録内容が取得された場合には、算出部７ｃは、未選択の適用事例ＩＤ「２０１１１２２０＃１」または適用事例ＩＤ「２００９０１０１＃１」を選択する。
【０１２６】
次に、算出部７ｃは、選択した適用事例ＩＤに対応する単語の集合の中から、未選択の単語を１つ選択する。例えば、選択した適用事例ＩＤが「２０１１１２２０＃１」である場合には、算出部７ｃは、適用事例ＩＤ「２０１１１２２０＃１」に対応する単語の集合「貸出情報」、「不正」、「入力」の中から、未選択の単語を１つ選択する。また、選択した適用事例ＩＤが「２００９０１０１＃１」である場合には、算出部７ｃは、適用事例ＩＤ「２００９０１０１＃１」に対応する単語の集合「分析試料」、「遠心分離器」、「入力」、「確認」の中から、未選択の単語を１つ選択する。
【０１２７】
続いて、算出部７ｃは、以下の式（１）にしたがって、適用事例ＩＤごとに、選択した単語の重みｗを算出する。
ｗ＝（（選択した適用事例ＩＤにおける選択した単語の個数）／（選択した適用事例Ｉ      Ｄにおける単語の総数））×ｌｏｇ（（取得された適用事例ＤＢ５ｃの登録内容に      含まれる適用事例ＩＤの総数）／（選択した単語に対応する適用事例ＩＤの数））
式（１）  
ここで、式（１）におけるｌｏｇの底は「２」である。
【０１２８】
例えば、選択した適用事例ＩＤが「２０１１１２２０＃１」であり、選択した単語が「貸出情報」である場合には、算出部７ｃは、選択した単語「貸出情報」の重みｗ「０．４」（（４）／（１０））×ｌｏｇ（（２）／（１））を算出する。また、選択した適用事例ＩＤが「２０１１１２２０＃１」であり、選択した単語が「不正」である場合には、算出部７ｃは、選択した単語「不正」の重みｗ「０．４」（（４）／（１０））×ｌｏｇ（（２）／（１））を算出する。また、選択した適用事例ＩＤが「２０１１１２２０＃１」であり、選択した単語が「入力」である場合には、算出部７ｃは、選択した単語「入力」の重みｗ「０」（（２）／（１０））×ｌｏｇ（（２）／（２））を算出する。
【０１２９】
また、選択した適用事例ＩＤが「２００９０１０１＃１」であり、選択した単語が「分析試料」である場合には、算出部７ｃは、選択した単語「分析試料」の重みｗ「０．３７５」（（３）／（８））×ｌｏｇ（（２）／（１））を算出する。また、選択した適用事例ＩＤが「２００９０１０１＃１」であり、選択した単語が「遠心分離器」である場合には、算出部７ｃは、選択した単語「遠心分離器」の重みｗ「０．３７５」（（３）／（８））×ｌｏｇ（（２）／（１））を算出する。また、選択した適用事例ＩＤが「２００９０１０１＃１」であり、選択した単語が「入力」である場合には、算出部７ｃは、選択した単語「入力」の重みｗ「０」（（１）／（８））×ｌｏｇ（（２）／（２））を算出する。また、選択した適用事例ＩＤが「２００９０１０１＃１」であり、選択した単語が「確認」である場合には、算出部７ｃは、選択した単語「確認」の重みｗ「０．１２５」（（１）／（８））×ｌｏｇ（（２）／（１））を算出する。
【０１３０】
ここで、算出した重みｗは、選択した適用事例ＩＤに対応する適用事例に、選択した単語が出現する回数が多くなるほど大きくなる値である。これに加えて、重みｗは、選択した適用事例ＩＤに対応する適用事例以外の適用事例に、選択した単語が出現する回数が少なくなるほど大きくなる値でもある。すなわち、重みｗは、選択した適用事例ＩＤに対応する適用事例に出現する選択した単語の回数の多さを示すとともに、選択した適用事例ＩＤに対応する適用事例以外の適用事例に出現する単語の回数の少なさを示す度合いと言える。
【０１３１】
続いて、算出部７ｃは、選択した適用事例ＩＤに対応する単語の集合の中に、未選択の単語があるか否かを判定する。未選択の単語がある場合には、算出部７ｃは、上述した、未選択の単語を１つ選択する処理を行い、未選択の単語を１つ選択する処理以降の各処理を行う。また、未選択の単語がない場合には、算出部７ｃは、取得された適用事例ＤＢ５ｃの登録内容に含まれる適用事例ＩＤの中に、未選択の適用事例ＩＤがあるか否かを判定する。未選択の適用事例ＩＤがある場合には、算出部７ｃは、上述した、未選択の適用事例ＩＤを１つ選択する処理を行い、未選択の適用事例ＩＤを１つ選択する処理以降の各処理を行う。これにより、算出部７ｃは、特定した単語の集合に含まれる単語について、選択した適用事例ＩＤごとに、重みｗを算出することができる。
【０１３２】
図１２の説明に戻り、生成部７ｄの一態様について説明する。生成部７ｄは、算出部７ｃにより未選択の適用事例ＩＤがないと判定された場合に、重みｗの値が所定値、例えば、「０．３」以上となる場合の適用事例ＩＤおよび単語を特定する。ここで、重みｗの値が所定値以上となる場合の単語は、ある適用事例に出現する回数が、所定値の大きさに対応する第１の所定値以上であり、かつ、他の適用事例に出現する回数が、所定値の大きさに対応する第２の所定値以下となるような単語である。例えば、生成部７ｄは、重みｗの値が「０．３」以上となる場合の適用事例ＩＤ「２０１１１２２０＃１」および単語「貸出情報」を特定する。また、生成部７ｄは、重みｗの値が「０．３」以上となる場合の適用事例ＩＤ「２０１１１２２０＃１」および単語「不正」を特定する。
【０１３３】
また、生成部７ｄは、重みｗの値が「０．３」以上となる場合の適用事例ＩＤ「２００９０１０１＃１」および単語「分析試料」を特定する。また、生成部７ｄは、重みｗの値が「０．３」以上となる場合の適用事例ＩＤ「２００９０１０１＃１」および単語「遠心分離器」を特定する。
【０１３４】
続いて、生成部７ｄは、タグＤＢ５ｂに、特定した適用事例ＩＤに対応する差分ＩＤ、生成されたタグＩＤ、追加または変更される要素のいずれであるのかを示す情報、追加要素または変更要素として特定された要素の種類およびＩＤを対応付けて追加する。これに加えて、生成部７ｄは、追加要素または変更要素として特定された要素に記載された文字列、特定した単語をも対応付けてタグＤＢ５ｂに追加する。これにより、新たにタグＤＢ５ｂに追加されるタグに含まれる単語は、重みｗが所定値以上であり、適用事例に特有の単語となる。そのため、生成部７ｄによれば、検索結果が良好となるタグを生成することができる。
【０１３５】
図２０は、本実施例に係る生成部によって登録内容が追加されたタグＤＢの一例を示す図である。例えば、生成部７ｄは、タグＤＢ５ｂに追加内容に応じた分の新たなレコードを追加し、図２０に示すように、追加されたレコードに、特定した適用事例ＩＤ「２０１１１２２０＃１」に対応する差分ＩＤ「２０１１１２２０」を登録する。また、生成部７ｄは、追加されたレコードに、差分ＩＤ「２０１１１２２０」に対応付けて、タグＩＤ「２０１１１２２０＃１−１」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−１」に対応付けて、追加される要素を示す情報「追加」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−１」に対応付けて、追加要素として特定された要素の種類「分岐」およびＩＤ「４」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−１」に対応付けて、追加要素として特定された要素に記載された文字列「貸出情報が不正？」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−１」に対応付けて、特定した単語「貸出情報」、「不正」を登録する。
【０１３６】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、差分ＩＤ「２０１１１２２０」に対応付けて、タグＩＤ「２０１１１２２０＃１−２」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−２」に対応付けて、追加される要素を示す情報「追加」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−２」に対応付けて、追加要素として特定された要素の種類「条件フロー」およびＩＤ「５」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−２」に対応付けて、追加要素として特定された要素に記載された文字列「「貸出情報が不正？」→「貸出情報を入力する」」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−２」に対応付けて、特定した単語「貸出情報」、「不正」を登録する。
【０１３７】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、差分ＩＤ「２０１１１２２０」に対応付けて、タグＩＤ「２０１１１２２０＃１−３」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−３」に対応付けて、追加される要素を示す情報「追加」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−３」に対応付けて、追加要素として特定された要素の種類「条件フロー」およびＩＤ「６」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−３」に対応付けて、追加要素として特定された要素に記載された文字列「「貸出情報が不正？」→「エンド」」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−３」に対応付けて、特定した単語「貸出情報」、「不正」を登録する。
【０１３８】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、差分ＩＤ「２０１１１２２０」に対応付けて、タグＩＤ「２０１１１２２０＃１−４」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−４」に対応付けて、変更される要素を示す情報「変更」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−４」に対応付けて、変更要素として特定された要素の種類「フロー」およびＩＤ「２」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−４」に対応付けて、変更要素として特定された要素に記載された文字列「「貸出情報を入力する」→「貸出情報が不正？」」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２０１１１２２０＃１−４」に対応付けて、特定した単語「貸出情報」、「不正」を登録する。
【０１３９】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、特定した適用事例ＩＤ「２００９０１０１＃１」に対応する差分ＩＤ「２００９０１０１」を登録する。また、生成部７ｄは、追加されたレコードに、差分ＩＤ「２００９０１０１」に対応付けて、タグＩＤ「２００９０１０１＃１−１」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−１」に対応付けて、追加される要素を示す情報「追加」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−１」に対応付けて、追加要素として特定された要素の種類「活動」およびＩＤ「４」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−１」に対応付けて、追加要素として特定された要素に記載された文字列「分析試料を遠心分離器にかける」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−１」に対応付けて、特定した単語「分析試料」、「遠心分離器」を登録する。
【０１４０】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、差分ＩＤ「２００９０１０１」に対応付けて、タグＩＤ「２００９０１０１＃１−２」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−２」に対応付けて、追加される要素を示す情報「追加」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−２」に対応付けて、追加要素として特定された要素の種類「フロー」およびＩＤ「５」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−２」に対応付けて、追加要素として特定された要素に記載された文字列「「分析試料を遠心分離器にかける」→「分析試料を確認する」」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−２」に対応付けて、特定した単語「分析試料」、「遠心分離器」を登録する。
【０１４１】
また、図２０に示すように、生成部７ｄは、追加されたレコードに、差分ＩＤ「２００９０１０１」に対応付けて、タグＩＤ「２００９０１０１＃１−３」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−３」に対応付けて、変更される要素を示す情報「変更」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−３」に対応付けて、変更要素として特定された要素の種類「フロー」およびＩＤ「２」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−３」に対応付けて、変更要素として特定された要素に記載された文字列「「分析試料を入力する」→「分析試料を遠心分離器にかける」」を登録する。また、生成部７ｄは、追加されたレコードに、タグＩＤ「２００９０１０１＃１−３」に対応付けて、特定した単語「分析試料」、「遠心分離器」を登録する。
【０１４２】
図２０の例に示すように、新たにタグＤＢ５ｂに追加されるタグに含まれる単語は、重みｗが所定値以上であり、適用事例に特有の単語となる。そのため、生成部７ｄによれば、検索結果が良好となるタグを生成することができる。
【０１４３】
ここで、再び、先の図７において説明したように、第２の端末１２のユーザによって、差分モジュールの検索が行われて、検索用のキーワード「貸出」および「確認」を含む図８に示す検索条件を受信した場合には、サーバ１の検索部６ｃは、次の処理を行う。すなわち、検索部６ｃは、差分ＩＤ「２０１１１２２０」を含むレコードに設定する順位を、差分ＩＤ「２００９０１０１」を含むレコードに設定する順位よりも高くする。例えば、検索部６ｃは、差分ＩＤ「２０１１１２２０」を含むレコードに順位「１位」を設定し、差分ＩＤ「２００９０１０１」を含むレコードに順位「２位」を設定する。図２１は、差分モジュールの名前が順位とともに表示された場合の一例を示す図である。上述した検索部６ｃによる処理の結果、図２１の例に示すように、第２の端末１２の表示部１２ｂに表示される画面１７の表示領域１７ｄには、差分モジュールの名前「入力情報検証」が順位「１位」と対応付けられて表示される。また、表示領域１７ｄには、差分モジュールの名前「入力値の確認」が順位「２位」と対応付けられて表示される。すなわち、検索結果が良好となるタグが生成された結果、差分モジュールの名前に対応付けられた順位も検索用のキーワードに応じた適切な順位となる。
【０１４４】
制御部６は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）などの集積回路である。また、制御部６は、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）であってもよい。また、制御部６は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）などの電子回路であってもよい。さらに、制御部６は、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）であってもよい。
【０１４５】
次に、本実施例に係る第１の端末１１が実行する処理の流れを説明する。図２２は、実施例に係る差分モジュール生成処理の手順を示すフローチャートである。例えば、差分モジュール生成処理は、差分モジュール生成処理を実行するための指示が入力部１１ａから制御部１１ｃに入力された場合に、実行される。
【０１４６】
図２２に示すように、制御部１１ｃは、インストールされたプログラムを実行して、差分モジュールを生成するための画面を表示するように、表示部１１ｂを制御する（Ｓ１０１）。ここでは、制御部１１ｃが、差分モジュールを生成するための画面として、上述した画面１４を表示部１１ｂに表示させる場合を例に挙げて説明する。
【０１４７】
制御部１１ｃは、項目１４ａ〜１４ｅの項目のそれぞれに情報が登録された上で、ユーザによって入力部１１ａが操作されて「イメージ生成」ボタン１４ｇが押下されたか否かを判定する（Ｓ１０２）。「イメージ生成」ボタン１４ｇが押下されていない場合（Ｓ１０２否定）には、制御部１１ｃは、再び、Ｓ１０２の判定を行う。一方、「イメージ生成」ボタン１４ｇが押下された場合（Ｓ１０２肯定）には、制御部１１ｃは、次のような処理を行う。すなわち、制御部１１ｃは、項目１４ｅに登録された要素が、項目１４ｃに登録された適用条件を満たすか否かを判定する（Ｓ１０３）。適用条件を満たさない場合（Ｓ１０３否定）には、制御部１１ｃは、表示領域１４ｆに、項目１４ｅへの再登録を促す旨のエラー表示が行われるように、表示部１１ｂの表示を制御し（Ｓ１０４）、処理を終了する。
【０１４８】
一方、適用条件を満たす場合（Ｓ１０３肯定）には、制御部１１ｃは、項目１４ｅに登録された要素に記載された文字列のうち、項目１４ｃに登録された要素に記載されたワイルドカードに対応する文字列を取得する（Ｓ１０５）。そして、制御部１１ｃは、項目１４ｄに登録された適用効果を取得する（Ｓ１０６）。続いて、制御部１１ｃは、取得した文字列を、取得した適用効果の要素に記載された変数に格納する（Ｓ１０７）。その後、制御部１１ｃは、表示領域１４ｆに、変数に文字列が格納された要素を含む適用効果が表示されるように、表示部１１ｂの表示を制御する（Ｓ１０８）。
【０１４９】
そして、制御部１１ｃは、「送信」ボタン１４ｈが押下されたか否かを判定する（Ｓ１０９）。「送信」ボタン１４ｈが押下されていない場合（Ｓ１０９否定）には、制御部１１ｃは、再び、Ｓ１０９の判定を行う。
【０１５０】
一方、「送信」ボタン１４ｈが押下された場合（Ｓ１０９肯定）には、制御部１１ｃは、項目１４ａ〜１４ｄの各項目の登録内容を含む差分モジュールをネットワーク１３を介してサーバ１へ送信し（Ｓ１１０）、処理を終了する。
【０１５１】
次に、本実施例に係るサーバ１が実行するタグ生成処理の流れを説明する。図２３は、実施例に係るタグ生成処理の手順を示すフローチャートである。例えば、タグ生成処理は、受付部６ａにより差分モジュールが受け付けられた場合に、実行される。
【０１５２】
図２３に示すように、タグ登録部６ｂは、受け付けられた差分モジュールを識別するための差分ＩＤを生成する（Ｓ２０１）。続いて、タグ登録部６ｂは、受け付けられた差分モジュールの「name」に設定された差分モジュールの名前を抽出する（Ｓ２０２）。
【０１５３】
そして、タグ登録部６ｂは、生成した差分ＩＤ、抽出した差分モジュールの名前、および、受け付けられた差分モジュールのＸＭＬの形式のデータを対応付けて、差分モジュールＤＢ５ａに登録する（Ｓ２０３）。
【０１５４】
次に、タグ登録部６ｂは、差分モジュールＤＢ５ａに新たに登録した差分モジュールのＸＭＬの形式のデータに基づいて、次の処理を行う。すなわち、タグ登録部６ｂは、新たに登録した差分モジュールが適用されたことによって業務フローモデルに追加される要素の種類およびＩＤ、並びに、追加される要素に記載された文字列を追加要素として特定する（Ｓ２０４）。
【０１５５】
続いて、タグ登録部６ｂは、新たに登録した差分モジュールのＸＭＬの形式のデータに基づいて、次の処理を行う。すなわち、タグ登録部６ｂは、新たに登録した差分モジュールが適用されたことによって変更される業務フローモデルの要素の種類およびＩＤ、並びに、変更される要素に記載される文字列を変更要素として特定する（Ｓ２０５）。
【０１５６】
そして、タグ登録部６ｂは、追加される要素に記載された文字列、および、変更される要素に記載される文字列から、単語を抽出する（Ｓ２０６）。続いて、タグ登録部６ｂは、追加される要素、および、変更される要素ごとに、タグＩＤを生成する（Ｓ２０７）。
【０１５７】
その後、タグ登録部６ｂは、生成した差分ＩＤをタグＤＢ５ｂに登録する。これに加えて、タグ登録部６ｂは、生成したタグＩＤ、追加される要素または変更される要素のいずれであるのかを示す情報、要素の種類およびＩＤ、要素に記載された文字列、および、単語を対応付けてタグＤＢ５ｂに登録する（Ｓ２０８）。これにより、差分ＩＤが示す差分モジュールに対応するタグが生成される。そして、タグ登録部６ｂは、処理を終了する。
【０１５８】
次に、本実施例に係る第２の端末１２が実行する処理の流れを説明する。図２４は、実施例に係る差分モジュール適用処理の手順を示すフローチャートである。例えば、差分モジュール適用処理は、差分モジュール適用処理を実行するための指示が入力部１２ａから制御部１２ｃに入力された場合に、実行される。
【０１５９】
図２４に示すように、制御部１２ｃは、インストールされたプログラムを実行して、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面を表示するように、表示部１２ｂを制御する（Ｓ３０１）。ここでは、制御部１２ｃが、差分モジュールを検索し、検索の結果得られた差分モジュールを業務フローモデルに適用するための画面として、上述した画面１７を表示部１２ｂに表示させる場合を例に挙げて説明する。
【０１６０】
次に、制御部１２ｃは、ユーザが、入力部１２ａを介して、記憶部に記憶された業務フローモデルの中から、差分モジュールを適用させる業務フローモデルを選択したか否かを判定する（Ｓ３０２）。業務フローモデルを選択していない場合（Ｓ３０２否定）には、制御部１２ｃは、再び、Ｓ３０２の判定を行う。一方、業務フローモデルを選択した場合（Ｓ３０２肯定）には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択した業務フローモデルの名前が表示領域１７ｂに表示され、選択した業務フローモデルが表示領域１７ｃに表示されるように、表示部１２ｂを制御する（Ｓ３０３）。
【０１６１】
続いて、制御部１２ｃは、「差分モジュール検索」ボタン１７ｆが押下されたか否かを判定する（Ｓ３０４）。「差分モジュール検索」ボタン１７ｆが押下されていない場合（Ｓ３０４否定）には、制御部１２ｃは、再び、Ｓ３０４の判定を行う。一方、「差分モジュール検索」ボタン１７ｆが押下された場合（Ｓ３０４肯定）には、制御部１２ｃは、表示領域１７ｃに表示され選択された要素のＩＤを取得する（Ｓ３０５）。続いて、制御部１２ｃは、表示領域１７ｃに表示された業務フローモデルをＸＭＬの形式のデータに変換する（Ｓ３０６）。そして、制御部１２ｃは、変換の結果得られたＸＭＬの形式のデータと、項目１７ａに入力された検索用のキーワードと、取得したＩＤとを１つのファイルに設定し、ファイルを検索条件としてネットワーク１３を介してサーバ１に送信する（Ｓ３０７）。
【０１６２】
その後、制御部１２ｃは、サーバ１から送信された、検索の結果得られた差分モジュールのＸＭＬの形式のデータ、および、かかる差分モジュールのＩＤである差分ＩＤ、並びに、差分ＩＤが示す差分モジュールの順位を受信したか否かを判定する（Ｓ３０８）。受信していない場合（Ｓ３０８否定）には、制御部１２ｃは、再び、Ｓ３０８の判定を行う。一方、受信した場合（Ｓ３０８肯定）には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、表示領域１７ｄに、受信した差分モジュールの名前を順位にとともに表示するように、表示部１２ｂを制御する（Ｓ３０９）。
【０１６３】
そして、制御部１２ｃは、表示領域１７ｄに表示された差分モジュールの名前がユーザによって選択されたか否かを判定する（Ｓ３１０）。選択されていない場合（Ｓ３１０否定）には、制御部１２ｃは、再び、Ｓ３１０の判定を行う。一方、選択された場合（Ｓ３１０肯定）には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択された名前の差分モジュールを、表示領域１７ｃに表示され選択された要素を含む業務フローモデルに適用し、差分モジュールが適用された業務フローモデルを適用事例として生成する（Ｓ３１１）。そして、制御部１２ｃは、生成した適用事例が表示領域１７ｅに表示されるように、表示部１２ｂを制御する（Ｓ３１２）。続いて、制御部１２ｃは、表示領域１７ｄに表示された差分モジュールの名前がユーザによって新たに選択されたか否かを判定する（Ｓ３１３）。新たに選択された場合（Ｓ３１３肯定）には、制御部１２ｃは、Ｓ３１１に戻る。
【０１６４】
一方、新たに選択されていない場合（Ｓ３１３否定）には、制御部１２ｃは、ユーザによって入力部１２ａを介して、「適用」ボタン１７ｇが押下されたか否かを判定する（Ｓ３１４）。「適用」ボタン１７ｇが押下されていない場合（Ｓ３１４否定）には、制御部１２ｃは、Ｓ３１３に戻る。一方、「適用」ボタン１７ｇが押下された場合（Ｓ３１４肯定）には、制御部１２ｃは、次のような処理を行う。すなわち、制御部１２ｃは、選択された差分モジュールが適用された回数Ｎを算出し、適用された差分モジュールの差分ＩＤの末尾に、記号「＃」を追加し、さらに、算出した回数Ｎを追加して、適用事例ＩＤを生成する（Ｓ３１５）。
【０１６５】
その後、制御部１２ｃは、適用された差分モジュールの差分ＩＤと、生成した適用事例ＩＤと、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータと、生成した適用事例のＸＭＬの形式のデータと、をサーバ１に送信する（Ｓ３１６）。そして、制御部１２ｃは、処理を終了する。
【０１６６】
次に、本実施例に係るサーバ１が実行する検索処理の流れを説明する。図２５は、実施例に係る検索処理の手順を示すフローチャートである。例えば、検索処理は、受付部６ａにより検索条件が受け付けられた場合に、実行される。
【０１６７】
図２５に示すように、検索部６ｃは、検索条件の「選択要素ＩＤ」の項目に登録された要素のＩＤ、および、「適用対象モデル」の項目に登録された業務フローモデルのＸＭＬの形式のデータを取得する（Ｓ４０１）。続いて、検索部６ｃは、差分モジュールＤＢ５ａの「ＸＭＬ表現」の項目５ａ＿３に登録された全ての差分モジュールのＸＭＬの形式のデータを取得する（Ｓ４０２）。
【０１６８】
続いて、検索部６ｃは、差分モジュールＤＢ５ａから取得した全てのＸＭＬの形式のデータのうち、未選択のデータを１つ選択する（Ｓ４０３）。そして、検索部６ｃは、検索条件から取得したＸＭＬの形式のデータが示す業務フローモデルの一部分のモデルであって、取得した要素のＩＤが示す要素を含むモデルが、次のような条件を満たすか否かを判定する。すなわち、検索部６ｃは、かかるモデルが、選択したデータが示す差分モジュールに含まれる適用条件を満たすか否かを判定する（Ｓ４０４）。適用条件を満たさない場合（Ｓ４０４否定）には、検索部６ｃは、Ｓ４０６に進む。一方、適用条件を満たす場合（Ｓ４０４肯定）には、検索部６ｃは、満たすと判定された適用条件を含む差分モジュールの差分ＩＤを差分モジュールＤＢ５ａから取得する（Ｓ４０５）。
【０１６９】
そして、検索部６ｃは、差分モジュールＤＢ５ａから取得した全てのＸＭＬの形式のデータのうち、未選択のデータがあるか否かを判定する（Ｓ４０６）。未選択のデータがある場合（Ｓ４０６肯定）には、検索部６ｃは、Ｓ４０３に戻る。一方、未選択のデータがない場合（Ｓ４０６否定）には、検索部６ｃは、少なくとも１つの差分ＩＤを取得したか否かを判定する（Ｓ４０７）。取得していない場合（Ｓ４０７否定）には、検索部６ｃは、処理を終了する。取得した場合（Ｓ４０７肯定）には、検索部６ｃは、取得した全ての差分ＩＤのうち、未選択の差分ＩＤを１つ選択する（Ｓ４０８）。
【０１７０】
そして、検索部６ｃは、タグＤＢ５ｂのレコードの中から、選択した差分ＩＤが「差分ＩＤ」の項目に登録されたレコードを特定する（Ｓ４０９）。続いて、検索部６ｃは、検索条件の「検索キーワード」の項目に登録された検索用のキーワードを取得する（Ｓ４１０）。
【０１７１】
そして、検索部６ｃは、取得したキーワードのうち、未選択のキーワードを１つ選択する（Ｓ４１１）。続いて、検索部６ｃは、選択したキーワードと一致する、特定したレコードの「単語」の項目に登録された単語の数を算出する（Ｓ４１２）。
【０１７２】
そして、検索部６ｃは、取得したキーワードの中に、未選択のキーワードがあるか否かを判定する（Ｓ４１３）。未選択のキーワードがある場合（Ｓ４１３肯定）には、検索部６ｃは、Ｓ４１１に戻る。一方、未選択のキーワードがない場合（Ｓ４１３否定）には、検索部６ｃは、取得した差分ＩＤの中に、未選択の差分ＩＤがあるか否かを判定する（Ｓ４１４）。未選択の差分ＩＤがある場合（Ｓ４１４肯定）には、検索部６ｃは、Ｓ４０８に戻る。
【０１７３】
一方、未選択の差分ＩＤがない場合（Ｓ４１４否定）には、検索部６ｃは、特定したレコードごとに、算出された単語の数の和を算出する（Ｓ４１５）。そして、検索部６ｃは、算出した単語の数の和の値が大きいレコードから、昇順で順位を設定する（Ｓ４１６）。そして、表示制御部６ｄは、レコードに設定された順位、レコードの「差分ＩＤ」の項目５ｂ＿１に登録された差分ＩＤ、および、差分ＩＤが示す差分モジュールのＸＭＬの形式のデータを対応付けたデータを、第２の端末１２に送信する（Ｓ４１７）。そして、表示制御部６ｄは、処理を終了する。
【０１７４】
次に、本実施例に係るサーバ１が実行するタグ追加処理の流れを説明する。図２６は、実施例に係るタグ追加処理の手順を示すフローチャートである。例えば、タグ追加処理は、第１の端末１１から送信された差分ＩＤ、適用事例ＩＤ、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータ、および、適用事例のＸＭＬの形式のデータが受付部６ａにより受け付けられた場合に、実行される。
【０１７５】
図２６に示すように、特定部７ａは、差分ＩＤ、適用事例ＩＤ、差分モジュールが適用される前の業務フローモデルのＸＭＬの形式のデータ、および、適用事例のＸＭＬの形式のデータを適用事例ＤＢ５ｃに登録する（Ｓ５０１）。
【０１７６】
続いて、特定部７ａは、適用事例ＤＢ５ｃの全ての登録内容を取得する（Ｓ５０２）。そして、特定部７ａは、取得した適用事例ＤＢ５ｃの登録内容に基づいて、次の処理を行う。すなわち、特定部７ａは、適用事例ＩＤごとに、差分モジュールが適用されたことによって業務フローモデルに追加される要素の種類およびＩＤ、並びに、追加される要素に記載された文字列を追加要素として特定する（Ｓ５０３）。
【０１７７】
続いて、特定部７ａは、取得した適用事例ＤＢ５ｃの登録内容に基づいて、次の処理を行う。すなわち、特定部７ａは、適用事例ＩＤごとに、差分モジュールが適用されたことによって変更される業務フローモデルの要素の種類およびＩＤ、並びに、変更される要素に記載される文字列を変更要素として特定する（Ｓ５０４）。
【０１７８】
そして、抽出部７ｂは、適用事例ＩＤごとに、追加される要素に記載された文字列、および、変更される要素に記載される文字列から、単語を抽出する（Ｓ５０５）。算出部７ｃは、追加される要素、および、変更される要素ごとに、タグＩＤを生成する（Ｓ５０６）。そして、算出部７ｃは、適用事例ＩＤごとに、抽出した単語の集合を特定する（Ｓ５０７）。続いて、算出部７ｃは、取得された適用事例ＤＢ５ｃの登録内容に含まれる適用事例ＩＤのうち、未選択の適用事例ＩＤを１つ選択する（Ｓ５０８）。
【０１７９】
次に、算出部７ｃは、選択した適用事例ＩＤに対応する単語の集合の中から、未選択の単語を１つ選択する（Ｓ５０９）。続いて、算出部７ｃは、上記の式（１）にしたがって、適用事例ＩＤごとに、選択した単語の重みｗを算出する（Ｓ５１０）。
【０１８０】
続いて、算出部７ｃは、選択した適用事例ＩＤに対応する単語の集合の中に、未選択の単語があるか否かを判定する（Ｓ５１１）。未選択の単語がある場合（Ｓ５１１肯定）には、算出部７ｃは、Ｓ５０９に戻る。一方、未選択の単語がない場合（Ｓ５１１否定）には、算出部７ｃは、取得された適用事例ＤＢ５ｃの登録内容に含まれる適用事例ＩＤの中に、未選択の適用事例ＩＤがあるか否かを判定する（Ｓ５１２）。未選択の適用事例ＩＤがある場合（Ｓ５１２肯定）には、算出部７ｃは、Ｓ５０８に戻る。
【０１８１】
一方、未選択の適用事例ＩＤがない場合（Ｓ５１２否定）には、生成部７ｄは、重みｗの値が所定値、例えば、「０．３」以上となる場合の適用事例ＩＤおよび単語を特定する（Ｓ５１３）。
【０１８２】
そして、生成部７ｄは、特定した適用事例ＩＤに対応する差分ＩＤ、生成されたタグＩＤ、追加または変更される要素のいずれであるのかを示す情報、追加要素または変更要素として特定された要素の種類およびＩＤを対応付けたデータをタグＤＢ５ｂに追加する。これに加えて、生成部７ｄは、追加要素または変更要素として特定された要素に記載された文字列、特定した単語をも対応付けてタグＤＢ５ｂに追加し（Ｓ５１４）、処理を終了する。
【０１８３】
上述してきたように、本実施例に係るサーバ１は、差分モジュールが条件を満たす業務フローモデルに適用された場合の適用事例と、差分モジュールが適用される前の業務フローモデルとに基づいて、追加要素および変更要素を特定する。そして、サーバ１は、追加要素および変更要素から単語を抽出する。そして、サーバ１は、他の適用事例の要素に記載された単語、および、抽出された単語に基づいて、重みｗを算出する。そして、サーバ
１は、重みｗに基づいて、ある適用事例に出現する回数が第１の所定値以上であり、かつ、他の適用事例に出現する回数が第２の所定値以下となる単語を含むタグを生成する。このように、サーバ１は、適用事例に特有の単語を含むタグを生成する。したがって、サーバ１によれば、検索結果が良好となるタグを生成することができる。
【０１８４】
また、サーバ１は、検索用のキーワードと一致する単語の数が多い差分モジュールから順番に、差分モジュールに関する情報、例えば、差分モジュールの名前が第２の端末１２で表示されるように制御する。したがって、サーバ１によれば、順位とともに検索の結果得られた差分モジュールに係る情報を第２の端末１２のユーザに提示することできる。
【０１８５】
また、サーバ１は、画面１７の表示領域１７ｅに、検索された結果の差分モジュールが適用された適用事例が表示されるように、第２の端末１２に差分モジュールを送信する。したがって、サーバ１によれば、第２の端末１２に適用事例が表示されるように制御することができる。
【０１８６】
さて、これまで開示のシステムや装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１８７】
開示のシステムや装置の変形例について説明する。例えば、第２の端末１２は、検索用のキーワードに加えて、追加される要素または変更される要素のいずれであるのかを示す情報、要素の種類、並びに、要素に記載された文字列の組み合わせをユーザから受け付けることができる。そして、第２の端末１２は、受け付けた組み合わせを検索条件に含めてサーバ１に送信することができる。図２７は、変形例に係る第２の端末に表示される画面の一例を示す図である。
【０１８８】
図２７の例に示す画面は、図７の画面と比較して、項目１７ｈを有する点が異なる。項目１７ｈには、追加される要素または変更される要素のいずれであるのかを示す情報、要素の種類、並びに、要素に記載された文字列が、ユーザによって入力部１２ａを介して入力される。図２７の例は、項目１７ｈに、追加される要素であることを示す情報である「追加」、要素の種類「分岐」、および、要素に記載された文字列「不正」の組み合わせが入力された場合を示す。制御部１２ｃは、「差分モジュール検索」ボタン１７ｆが押下された場合には、ＸＭＬの形式のデータ、検索用のキーワードおよびＩＤに加えて、項目１７ｈの登録内容も検索条件に含めてサーバ１に送信する。
【０１８９】
かかる検索条件を受信した場合には、サーバ１の検索部６ｃは、上述した、特定したレコードごとに単語の数の和を算出する処理、すなわち、Ｓ４１５の処理を行った後に、次のような処理を行う。すなわち、検索部６ｃは、取得した全ての差分ＩＤを未選択とする。続いて、検索部６ｃは、取得した差分ＩＤのうち、未選択の差分ＩＤを１つ選択する。例えば、差分ＩＤ「２００９０１０１」および差分ＩＤ「２０１１１２２０」を取得した場合には、未選択である差分ＩＤ「２００９０１０１」または差分ＩＤ「２０１１１２２０」を１つ選択する。
【０１９０】
そして、検索部６ｃは、タグＤＢ５ｂのレコードの中から、選択した差分ＩＤが「差分ＩＤ」の項目に登録されたレコードを特定する。ここで、タグＤＢ５ｂの登録内容が、図１７に示すような登録内容である場合について説明する。この場合、検索部６ｃは、選択した差分ＩＤが「２０１１１２２０」であるときには、差分ＩＤ「２０１１１２２０」が、「差分ＩＤ」の項目５ｂ＿１に登録されたレコードを特定する。また、検索部６ｃは、選択した差分ＩＤが「２００９０１０１」であるときには、差分ＩＤ「２００９０１０１」が、「差分ＩＤ」の項目５ｂ＿１に登録されたレコードを特定する。
【０１９１】
続いて、検索部６ｃは、検索条件に含められた項目１７ｈの登録内容を取得する。例えば、図２７の例に示す項目１７ｈの登録内容が検索条件に含められた場合には、検索部６ｃは、「追加」、「分岐」および「不正」の組み合わせを取得する。
【０１９２】
そして、検索部６ｃは、取得した組み合わせのうち、未選択の組み合わせを１つ選択する。例えば、「追加」、「分岐」および「不正」の組み合わせを取得した場合には、検索部６ｃは、未選択である「追加」、「分岐」および「不正」の組み合わせを選択する。
【０１９３】
続いて、検索部６ｃは、選択した組み合わせと一致する、特定したレコードの「追加／変更」、「要素」および「詳細」の各項目に登録された登録内容の組み合わせの数を算出する。例えば、選択した組み合わせが、「追加」、「分岐」および「不正」の組み合わせであり、特定したレコードが、図１７に示す差分ＩＤ「２０１１１２２０」を含むレコードである場合について説明する。この場合、差分ＩＤ「２０１１１２２０」を含むレコードのうち、タグＩＤ「２０１１１２２０−１」を含むレコードの「追加／変更」、「要素」および「詳細」の各項目の登録内容が、選択した組み合わせと一致する。そのため、検索部６ｃは、選択した組み合わせと一致する、特定したレコードの「追加／変更」、「要素」および「詳細」の各項目に登録された登録内容の組み合わせの数「１」を算出する。
【０１９４】
また、選択した組み合わせが、「追加」、「分岐」および「不正」の組み合わせであり、特定したレコードが、図１７に示す差分ＩＤ「２００９０１０１」を含むレコードである場合について説明する。この場合、差分ＩＤ「２００９０１０１」を含むレコードのうち、いずれのレコードの「追加／変更」、「要素」および「詳細」の各項目に登録された登録内容の組み合わせも、選択した組み合わせと一致しない。そのため、検索部６ｃは、選択した組み合わせと一致する、特定したレコードの「追加／変更」、「要素」および「詳細」の各項目に登録された登録内容の組み合わせの数「０」を算出する。
【０１９５】
そして、検索部６ｃは、取得した組み合わせの中に、未選択の組み合わせがあるか否かを判定する。未選択の組み合わせがある場合には、検索部６ｃは、上述した、未選択の組み合わせを１つ選択する処理を行い、未選択の組み合わせを１つ選択する処理以降の各処理を行う。また、未選択の組み合わせがない場合には、検索部６ｃは、取得した差分ＩＤの中に、未選択の差分ＩＤがあるか否かを判定する。未選択の差分ＩＤがある場合には、検索部６ｃは、上述した、未選択の差分ＩＤを１つ選択する処理を行い、未選択の差分ＩＤを１つ選択する処理以降の各処理を行う。これにより、検索部６ｃは、取得した全ての組み合わせについて、特定した全てのレコードごとに、組み合わせの数を算出することができる。
【０１９６】
未選択の差分ＩＤがない場合には、検索部６ｃは、特定したレコードごとに、算出された単語の数と、算出された組み合わせの数の和を算出する。例えば、特定したレコードが、図１７に示す差分ＩＤ「２００９０１０１」を含むレコードであり、算出した単語「貸出」の数が「０」であり、算出した単語「検証」の数が「０」であり、算出した組み合わせの数が「０」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２００９０１０１」を含むレコードについて、和「０」（０＋０＋０）を算出する。
【０１９７】
また、特定したレコードが、図１７に示す差分ＩＤ「２０１１１２２０」を含むレコードであり、算出した単語「貸出」の数が「０」であり、算出した単語「検証」の数が「０」であり、算出した組み合わせの数が「１」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２０１１１２２０」を含むレコードについて、和「１」（０＋０＋１）を算出する。
【０１９８】
そして、検索部６ｃは、算出した和の値が大きいレコードから、昇順で順位を設定する。例えば、差分ＩＤ「２００９０１０１」を含むレコードについて、算出した和が「０」であり、差分ＩＤ「２０１１１２２０」を含むレコードについて、算出した和が「１」である場合について説明する。この場合、検索部６ｃは、差分ＩＤ「２０１１１２２０」を含むレコードに順位「１位」を設定し、差分ＩＤ「２００９０１０１」を含むレコードに順位「２位」を設定する。
【０１９９】
次に、変形例に係るサーバ１が実行する検索処理の流れを説明する。図２８は、変形例に係る検索処理の手順を示すフローチャートである。変形例に係る検索処理は、図２５に示す検索処理と比較して、Ｓ４１５の次に、Ｓ６０１〜Ｓ６０９が実行される点が図２５に示す検索処理と異なり、また、Ｓ４１６に代えてＳ６１０が実行される点が、図２５に示す検索処理と異なる。
【０２００】
図２８に示すように、検索部６ｃは、Ｓ４１５の処理の後に、次のような処理を行う。すなわち、検索部６ｃは、取得した全ての差分ＩＤを未選択とする（Ｓ６０１）。続いて、検索部６ｃは、取得した差分ＩＤのうち、未選択の差分ＩＤを１つ選択する（Ｓ６０２）。
【０２０１】
そして、検索部６ｃは、タグＤＢ５ｂのレコードの中から、選択した差分ＩＤが「差分ＩＤ」の項目に登録されたレコードを特定する（Ｓ６０３）。続いて、検索部６ｃは、検索条件に含められた項目１７ｈの登録内容を取得する（Ｓ６０４）。
【０２０２】
そして、検索部６ｃは、取得した組み合わせのうち、未選択の組み合わせを１つ選択する（Ｓ６０５）。続いて、検索部６ｃは、選択した組み合わせと一致する、特定したレコードの「追加／変更」、「要素」および「詳細」の各項目に登録された登録内容の組み合わせの数を算出する（Ｓ６０６）。
【０２０３】
そして、検索部６ｃは、取得した組み合わせの中に、未選択の組み合わせがあるか否かを判定する（Ｓ６０７）。未選択の組み合わせがある場合（Ｓ６０７肯定）には、検索部６ｃは、Ｓ６０５に戻る。一方、未選択の組み合わせがない場合（Ｓ６０７否定）には、検索部６ｃは、取得した差分ＩＤの中に、未選択の差分ＩＤがあるか否かを判定する（Ｓ６０８）。未選択の差分ＩＤがある場合（Ｓ６０８肯定）には、検索部６ｃは、Ｓ６０２に戻る。
【０２０４】
未選択の差分ＩＤがない場合（Ｓ６０８否定）には、検索部６ｃは、特定したレコードごとに、算出された単語の数と、算出された組み合わせの数の和を算出する（Ｓ６０９）。そして、検索部６ｃは、算出した和の値が大きいレコードから、昇順で順位を設定し（Ｓ６１０）、Ｓ４１７へ進む。
【０２０５】
上述したように、変形例に係るサーバ１、検索用のキーワードに加えて、追加される要素または変更される要素のいずれであるのかを示す情報、要素の種類、並びに、要素に記載された文字列の組み合わせに応じて差分モジュールを検索することができる。したがって、変形例に係るサーバ１によれば、より細かい条件で、差分モジュールを検索することができる。
【０２０６】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０２０７】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【０２０８】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【０２０９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２１０】
［生成プログラム］
また、上記の実施例および変形例で説明したサーバ１の各種の処理は、あらかじめ用意された生成プログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図２９を用いて、上記の実施例および変形例で説明したサーバ１と同様の機能を有する生成プログラムを実行するコンピュータの一例を説明する。図２９は、生成プログラムを実行するコンピュータを示す図である。
【０２１１】
図２９に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ３２０、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）３３０、ＲＡＭ３４０を有する。ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ３３０、ＲＡＭ３４０は、バス３５０を介して接続される。
【０２１２】
ＲＯＭ３２０には、ＯＳなどの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例または変形例で示す受付部６ａ、タグ登録部６ｂ、検索部６ｃ、表示制御部６ｄ、適用事例解析部６ｅと同様の機能を発揮する生成プログラム３３０ａが予め記憶される。なお、生成プログラム３３０ａについては、適宜分離しても良い。また、ＨＤＤ３３０には、差分モジュールＤＢ、タグＤＢ、適用事例ＤＢが設けられる。これら差分モジュールＤＢ、タグＤＢ、適用事例ＤＢは、上述した差分モジュールＤＢ５ａ、タグＤＢ５ｂ、適用事例ＤＢ５ｃに対応する。
【０２１３】
そして、ＣＰＵ３１０が、生成プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【０２１４】
そして、ＣＰＵ３１０は、差分モジュールＤＢ、タグＤＢ、適用事例ＤＢを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納された差分モジュールＤＢ、タグＤＢ、適用事例ＤＢを用いて、生成プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３３０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０２１５】
なお、上記した生成プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【０２１６】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に生成プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらから生成プログラム３３０ａを読み出して実行するようにしてもよい。  
【０２１７】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などに生成プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらから生成プログラム３３０ａを読み出して実行するようにしてもよい。
【符号の説明】
【０２１８】
１        サーバ
５        記憶部
５ａ      差分モジュールＤＢ
５ｂ      タグＤＢ
５ｃ      適用事例ＤＢ
６        制御部
６ｅ      適用事例解析部
７ａ      特定部
７ｂ      抽出部
７ｃ      算出部
７ｄ      生成部
【図１】
2014041485.tif 000003
【図２】
2014041485.tif 000004
【図３】
2014041485.tif 000005
【図４】
2014041485.tif 000006
【図５】
2014041485.tif 000007
【図６】
2014041485.tif 000008
【図７】
2014041485.tif 000009
【図８】
2014041485.tif 000010
【図９】
2014041485.tif 000011
【図１０】
2014041485.tif 000012
【図１１】
2014041485.tif 000013
【図１２】
2014041485.tif 000014
【図１３】
2014041485.tif 000015
【図１４】
2014041485.tif 000016
【図１５】
2014041485.tif 000017
【図１６】
2014041485.tif 000018
【図１７】
2014041485.tif 000019
【図１８】
2014041485.tif 000020
【図１９】
2014041485.tif 000021
【図２０】
2014041485.tif 000022
【図２１】
2014041485.tif 000023
【図２２】
2014041485.tif 000024
【図２３】
2014041485.tif 000025
【図２４】
2014041485.tif 000026
【図２５】
2014041485.tif 000027
【図２６】
2014041485.tif 000028
【図２７】
2014041485.tif 000029
【図２８】
2014041485.tif 000030
【図２９】
2014041485.tif 000031
【図３０】
2014041485.tif 000032
【図３１】
2014041485.tif 000033
【図３２】
2014041485.tif 000034
【図３３】
2014041485.tif 000035
【図３４】
2014041485.tif 000036
【図３５】
2014041485.tif 000037