(57)【要約】【課題】他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補を提示できるようにする。【解決手段】処理を示すモジュールを複数接続してデータフローを作成しプログラミングを行う図形プログラミングの支援装置において、選択されたモジュールの属性情報をモジュール情報抽出部が抽出し、抽出された属性情報と、データベースに格納されているモジュール間の接続履歴情報とに基づいて、予め定めた条件を満たす、選択されたモジュールとデータフローの内の他のモジュールとの組み合わせを組み合わせ候補生成部が抽出するようにして、他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補を提示することを可能にする。【選択図】図１
2015075876.tif 000002
【特許請求の範囲】
【請求項１】
処理を示すモジュール間の接続履歴情報が格納されたデータベースと接続され、前記モジュールを接続してデータフローを作成しプログラミングを行う図形プログラミングに係る設計支援装置であって、
選択された前記モジュールの属性情報を抽出する情報抽出手段と、
前記情報抽出手段により抽出された前記属性情報と、前記データベースに格納されている前記モジュール間の接続履歴情報とに基づいて、予め定めた条件を満たす、前記選択されたモジュールと前記データフローの内の他の前記モジュールとの組み合わせを抽出する組み合わせ候補生成手段とを備えることを特徴とする設計支援装置。
【請求項２】
前記組み合わせ候補生成手段は、前記情報抽出手段により抽出された前記属性情報と所定の判断条件とによって、前記データベースから前記選択されたモジュールと関連するモジュールを検索し、検索されたモジュールの前記データベースに格納されている前記モジュール間の接続履歴情報に基づいて、予め定めた条件を満たす、前記選択されたモジュールと前記他のモジュールとの組み合わせを抽出することを特徴とする請求項１記載の設計支援装置。
【請求項３】
前記情報抽出手段により抽出される前記属性情報には前記モジュールに与えられたカテゴリの情報を含み、
前記組み合わせ候補生成手段は、前記選択されたモジュールと前記他のモジュールとの組み合わせの抽出に、前記情報抽出手段により抽出された前記カテゴリの情報を用いることを特徴とする請求項１又は２記載の設計支援装置。
【請求項４】
前記情報抽出手段により抽出される前記属性情報には前記モジュールが有する入出力端子の情報を含み、
前記組み合わせ候補生成手段は、前記選択されたモジュールと前記他のモジュールとの組み合わせの抽出に、前記情報抽出手段により抽出された前記入出力端子の情報を用いることを特徴とする請求項１〜３の何れか１項に記載の設計支援装置。
【請求項５】
前記情報抽出手段により抽出される前記属性情報には前記モジュールが有する入出力端子に接続されているモジュールの属性情報を含み、
前記組み合わせ候補生成手段は、前記選択されたモジュールと前記他のモジュールとの組み合わせの抽出に、前記情報抽出手段により抽出された前記入出力端子に接続されているモジュールの属性情報を用いることを特徴とする請求項１〜４の何れか１項に記載の設計支援装置。
【請求項６】
前記組み合わせ候補生成手段は、前記選択されたモジュールとは異なる、前記データフローの内の前記モジュールの接続関係に応じて、前記選択されたモジュールと前記他のモジュールとの組み合わせを抽出することを特徴とする請求項１〜５の何れか１項に記載の設計支援装置。
【請求項７】
前記情報抽出手段により抽出される前記属性情報は階層化されており、
前記組み合わせ候補生成手段は、前記選択されたモジュールと前記他のモジュールとの組み合わせを抽出するときに、所定の上位階層までさかのぼった前記属性情報を用いることを特徴とする請求項１〜６の何れか１項に記載の設計支援装置。
【請求項８】
前記選択されたモジュールが複数の内部モジュールを有する場合には、前記情報抽出手段により抽出される前記属性情報として、前記内部モジュールの属性情報を用いることを特徴とする請求項１〜７の何れか１項に記載の設計支援装置。
【請求項９】
処理を示すモジュール間の接続履歴情報が格納されたデータベースと接続される設計支援装置を用い、前記モジュールを接続してデータフローを作成しプログラミングを行う図形プログラミングに係る設計支援方法であって、
選択された前記モジュールの属性情報を抽出する情報抽出工程と、
前記情報抽出工程で抽出された前記属性情報と、前記データベースに格納されている前記モジュール間の接続履歴情報とに基づいて、予め定めた条件を満たす、前記選択されたモジュールと前記データフローの内の他の前記モジュールとの組み合わせを抽出する組み合わせ候補生成工程とを有することを特徴とする設計支援方法。
【請求項１０】
処理を示すモジュール間の接続履歴情報が格納されたデータベースと接続されるコンピュータに、前記モジュールを接続してデータフローを作成しプログラミングを行う図形プログラミングに係る処理を実行させるプログラムであって、
選択された前記モジュールの属性情報を抽出する情報抽出ステップと、
前記情報抽出ステップで抽出された前記属性情報と、前記データベースに格納されている前記モジュール間の接続履歴情報とに基づいて、予め定めた条件を満たす、前記選択されたモジュールと前記データフローの内の他の前記モジュールとの組み合わせを抽出する組み合わせ候補生成ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形プログラミングに係る設計支援装置、設計支援方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ビジュアル環境でプログラミングを行う図形プログラミングツールが普及している。図形プログラミング（ビジュアルプログラミング、視覚プログラミングとも言う）は視覚的にわかりやすいという特徴を有する。しかし、入力端子及び出力端子を有する処理モジュールを複数接続してプログラミングを行う場合、通常は、設計者が各モジュールの入出力端子を調べて、あるモジュールの入出力端子を別のモジュールの入出力端子に接続するといった対応付けを行う必要がある。プログラム中の入出力端子数が増えた場合には、それらの接続に多大な手間を要していた。
【０００３】
そこで、モジュールに係る対応付けを支援するために、組み合わせを自動的に提示する手法が提案されている。例えば、特許文献１には、処理順序が指定された上で、選択された任意のモジュールと、他のモジュールとの間の接続履歴に基づいて、モジュール間の組み合わせの生成確率を計算し出力する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９０８０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のものは、選択された任意のモジュールと他のモジュールとの間の接続履歴に基づいて、モジュール間の組み合わせの生成確率を計算する。したがって、選択された任意のモジュールに、他のモジュールとの間の接続履歴がない場合には、選択された任意のモジュールに対する接続候補を提示することができず、モジュール間の接続が非効率であるという課題があった。本発明は、このような事情に鑑みてなされたものであり、他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補を提示できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る設計支援装置は、処理を示すモジュール間の接続履歴情報が格納されたデータベースと接続され、前記モジュールを接続してデータフローを作成しプログラミングを行う図形プログラミングに係る設計支援装置であって、選択された前記モジュールの属性情報を抽出する情報抽出手段と、前記情報抽出手段により抽出された前記属性情報と、前記データベースに格納されている前記モジュール間の接続履歴情報とに基づいて、予め定めた条件を満たす、前記選択されたモジュールと前記データフローの内の他の前記モジュールとの組み合わせを抽出する組み合わせ候補生成手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、モジュールの属性情報とモジュール間の接続履歴情報とに基づいて、予め定めた条件を満たすモジュール間の組み合わせが抽出される。これにより、他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補を提示することができ、モジュール間の接続を効率的に行うことが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態における設計支援装置を含むプログラミングシステムの構成例を示す図である。
【図２】第１の実施形態におけるビジュアルプログラミング支援装置での処理フローを示す図である。
【図３】第１の実施形態におけるデータフローの例を示す図である。
【図４】第１の実施形態における接続履歴情報及び組み合わせ生成確率の例を示す図である。
【図５】第２の実施形態におけるデータフローの例を示す図である。
【図６】第２の実施形態における接続履歴情報の例を示す図である。
【図７】第２の実施形態における接続履歴情報及び組み合わせ生成確率の例を示す図である。
【図８】第３の実施形態におけるデータフローの例を示す図である。
【図９】第３の実施形態における接続履歴情報及び組み合わせ生成確率の例を示す図である。
【図１０】第４の実施形態におけるデータフローの例を示す図である。
【図１１】第４の実施形態における接続履歴情報及び組み合わせ生成確率の例を示す図である。
【図１２】第６の実施形態におけるデータフローの例を示す図である。
【図１３】第６の実施形態における関連モジュール検索ステップの処理フローを示す図である。
【図１４】本実施形態におけるビジュアルプログラミング支援装置を実現可能なコンピュータ機能を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
本発明の実施形態は、入力端子及び出力端子を有する処理モジュールを複数接続してデータフロー図を作成しプログラミングを行う図形プログラミングに関するものである。本実施形態では、図形プログラミングにおいて、データフロー図上に新規のモジュール（新規モジュール）を設置した際に、接続可能なモジュール間の組み合わせ候補を出力する。本実施形態で扱うデータフローは、処理を表すモジュール（処理モジュール）と、処理の入出力を表す入出力端子と、それら端子を接続するリンクから構成される。モジュールは、四角形で表示され、左側に入力端子、右側に出力端子が付属するとする。各モジュールは、それぞれ属性情報を有し、その属性情報を基に関連性のあるモジュール（関連モジュール）の検索が行われる。
【００１０】
（第１の実施形態）
本発明の第１の実施形態について説明する。
第１の実施形態では、関連モジュールの検索に係るモジュールの属性情報として、モジュールの処理の概念を示したカテゴリを採用する。カテゴリの例としては、画像処理分野であれば「フィルタ処理」等が挙げられる。また、モジュール間の接続の条件として、すでに他の入出力端子と接続されている入出力端子には接続できないものとする。また、入力端子同士、出力端子同士は、接続できないものとし、データフロー内でループを形成してしまう入出力端子の接続は行わないものとする。
【００１１】
第１の実施形態では、関連モジュールの候補を決定する際の関連判断条件として、カテゴリが同一であるか否かという基準を採用し、カテゴリが同一であれば関連モジュールの候補にする。また、新規モジュールは、過去にどのモジュールとも接続が行われておらず、他のモジュールとの間の接続履歴情報がまったくないが、カテゴリは新規モジュールの作成時に与えられる。なお、第１の実施形態における例では、新規モジュールに「ＡＡＡ」というカテゴリが与えられているとする。
【００１２】
第１の実施形態では、さらに簡単のため、入力端子と出力端子は、各モジュールに対して１つずつ与えられ、入出力データの型、すなわち入出力端子の型はすべて同じとし、前述の接続条件を満たす入力端子と出力端子の組み合わせはすべて有効なものとする。また、第１の実施形態では、モジュール間の接続履歴情報は、各モジュールの入出力端子との接続が行われた回数を指すものとする。そして、接続可能なモジュール間の組み合わせ候補を出力する際には、組み合わせ生成確率が高いものから順番に、しきい値等を設けずすべてリスト化する。生成確率が等しくなった場合の順番については任意とする。
【００１３】
図１は、本実施形態における設計支援装置を含むプログラミングシステムの構成例を示す図である。データフロー格納モジュール１０１は、ユーザーが作成しているデータフローを格納する領域を提供する。データベース１０２は、新規モジュールを除く個々のモジュールの属性情報と、そのモジュールの接続履歴情報とを格納する。入力装置１０３は、ユーザーからの指示の受け付けを行う。表示装置１０４は、データフローの作成に必要な情報を表示する。表示装置１０４は、例えば、ユーザーが操作しているデータフロー図を表示したり、接続可能なモジュール間の組み合わせ候補を表示したりする。データフロー更新装置１０５は、データフローにモジュールが追加されたり、ユーザーの指示を受けてモジュール同士が接続されたりしたときに、データフロー格納モジュール１０１のデータフローを更新する。
【００１４】
本実施形態における設計支援装置としてのビジュアルプログラミング支援装置１１１は、指示選択部１０６、モジュール情報抽出部１０７、組み合わせ候補生成部１０８、及び出力部１０９を有する。指示選択部１０６は、入力装置１０３からのユーザーの指示に応じて、データフロー中の任意のモジュールの入出力端子を選択したり、接続可能なモジュール間の組み合わせ候補を選択したりする。モジュール情報抽出部１０７は、選択されたモジュールの属性情報を抽出する。組み合わせ候補生成部１０８は、選択されたモジュールと関連するモジュールを検索し、選択されたモジュール間の組み合わせが生成される確率が予め定めた条件を満たすモジュール間の組み合わせ候補を抽出する。出力部１０９は、モジュール間の組み合わせ候補を出力する。
【００１５】
ホストプロセッサ１１０は、図１に示すプログラミングシステムが有する各装置が動作するために必要な補助機能を提供する。例えば、ホストプロセッサ１１０は、入力装置１０３からの指示に従いデータフローにモジュールを追加したり、表示装置１０４で表示するデータを生成したりする。なお、図１に示した構成は、一例であり、本発明はこれに限定されるものではない。例えば、モジュール情報抽出部１０７が、指示選択部１０６を含むような構成であっても良い。
【００１６】
図２は、第１の実施形態におけるプログラミングシステムでの処理フローを示す図である。
入力ステップＳ２０１において、指示選択部１０６は、入力装置１０３を用いて入力されたユーザーの指示に応じて、作成しているデータフロー中から接続候補を探したいモジュールの入出力端子を選択する。本例では、図３（ａ）に示すように、モジュール３０１、３０２、３０３、３０４を含むデータフローにおいて、新規モジュール３０１の出力端子３０１−Ｏが選択されたとする。
【００１７】
次に、モジュール情報抽出ステップＳ２０２において、モジュール情報抽出部１０７は、入力ステップＳ２０１で選択されたモジュールの属性情報を抽出する。本例では、新規モジュール３０１のカテゴリとして「ＡＡＡ」が抽出される。
【００１８】
関連モジュール検索ステップＳ２０３において、組み合わせ候補生成部１０８は、モジュール情報抽出部１０７により抽出されたモジュールの属性情報を基に、選択されたモジュールの関連モジュールをデータベース１０２から検索する。第１の実施形態では、関連モジュールの検索に係る関連判断条件として、カテゴリが同一であるか否かという基準を用いる。検索により、図４（ａ）に示すように、データベース１０２に登録されているモジュールのうち、カテゴリが「ＡＡＡ」に属するモジュールが、接続履歴情報とともにリストアップされる。そして、リストアップされた接続履歴情報を集計して、関連モジュールの接続履歴情報とする。ここでは、集計手法として、リストアップされた接続履歴情報のうち、項目毎に総計をとるものとする。本例における集計された接続履歴情報を図４（ｂ）に示す。
【００１９】
組み合わせ生成ステップＳ２０４において、組み合わせ候補生成部１０８は、選択されたモジュールの入出力端子と接続可能なモジュールの入出力端子を探索し、モジュール間の組み合わせ候補とする。この探索は、データフロー格納モジュール１０１に格納されているデータフローの中で使用されているモジュールを対象として行う。本例では、モジュールａ３０２、モジュールｂ３０３、モジュールｃ３０４の入力端子が、新規モジュール３０１の出力端子３０１−Ｏとの組み合わせ候補とされる。
【００２０】
有効確認ステップＳ２０５では、組み合わせ候補生成部１０８は、組み合わせ生成ステップＳ２０４で得られたモジュール間の組み合わせ候補を、モジュール間の接続条件に当てはめて、接続が有効かどうかを個々に調べる。その結果、接続可能な組み合わせである場合には、組み合わせ生成確率計算ステップＳ２０６に進み、接続不可能な組み合わせである場合には、組み合わせ生成ステップＳ２０４に戻り、次の組み合わせ候補について処理を行う。
【００２１】
組み合わせ生成確率計算ステップＳ２０６において、組み合わせ候補生成部１０８は、関連モジュールの接続履歴情報とモジュール間の組み合わせ候補とを用いて、組み合わせの生成確率を計算する。ここで用いられる関連モジュールの接続履歴情報は、関連モジュール検索ステップＳ２０３で得られたものであり、モジュール間の組み合わせ候補は、組み合わせ生成ステップＳ２０４で得られたものである。本例では、例えば、注目するモジュール間の組み合わせの接続回数をｎｋ、関連モジュール検索ステップＳ２０３で得られたモジュール間の組み合わせの合計接続回数をΣｎｉとして、（ｎｋ÷Σｎｉ）を注目する組み合わせの生成確率Ｎｋとする。本例によって計算された各モジュール間の組み合わせ生成確率を図４（ｃ）に示す。例えば、新規モジュール３０１とモジュールａ３０２との組み合わせの生成確率Ｎｋは、ｎｋ＝４０、Σｎｉ＝４００となるから、Ｎｋ＝０．１となる。
【００２２】
終了条件ステップＳ２０７では、組み合わせ候補生成部１０８は、接続可能なモジュール間の組み合わせのすべてについて探索が完了したか否かを判定する。その結果、接続可能なモジュール間の組み合わせの探索が完了した場合には、組み合わせ候補生成ステップＳ２０８へ移行し、まだ他に接続可能なモジュール間の組み合わせが残っている場合には、組み合わせ生成ステップＳ２０４に戻る。
【００２３】
組み合わせ候補生成ステップＳ２０８において、組み合わせ候補生成部１０８は、組み合わせ生成確率計算ステップＳ２０６で算出された組み合わせ生成確率が予め定めた条件を満たすモジュール間の組み合わせを抽出する。本例では、モジュール間の組み合わせの中で生成確率が０以上のもの、すなわちすべての組み合わせを抽出し、組み合わせ生成確率が高い順番に並べ替えたものをすべてリスト化して、モジュール間の組み合わせ候補として出力部１０９より出力する。すなわち、図４（ｃ）に従い、モジュールｂ３０３、モジュールａ３０２、モジュールｃ３０４の順にリスト化して、それをモジュール間の組み合わせ候補として出力する。
【００２４】
画面表示ステップＳ２０９において、ホストプロセッサ１１０は、組み合わせ候補生成ステップＳ２０８で出力されたモジュール間の組み合わせ候補の情報を、表示装置１０４に表示する。本例では、例えば図３（ｂ）に示すように、組み合わせ候補生成ステップＳ２０８で出力されたモジュール間の組み合わせ候補に基づき、接続候補を接続線の太さと色を変えて表示する。ここでは、リストの上位に位置する組み合わせを太く、色の明度を低くしている。
【００２５】
確定ステップＳ２１０において、指示選択部１０６は、入力装置１０３を用いて入力されたユーザーの指示に応じて、表示装置１０４に表示されたモジュール間の組み合わせ候補の中から１つを選択する。そして、データフロー更新装置１０５によって、選択されたモジュール間の接続が行われて、図３（ｃ）に示すようにデータフローが更新される。
【００２６】
第１の実施形態によれば、モジュールの属性情報としてカテゴリを用い、選択されたモジュールと同じカテゴリに属する関連モジュールの接続履歴情報を利用して、選択されたモジュールに対する接続候補を提示することができる。これにより、他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補をユーザー等に提示することができ、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。
【００２７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
第２の実施形態では、関連モジュールの検索に係るモジュールの属性情報として、カテゴリの代わりに、モジュールの入出力を示したインターフェースを採用する。以下では、第１の実施形態と同様の部分については説明を省略し、第１の実施形態との相違点について説明する。
【００２８】
まず、第２の実施形態では、各モジュールが有する入出力端子の数は任意とし、入出力端子の型についても任意とする。入出力端子の型は、対応する入出力端子の隣の位置に、モジュールを示す四角形の内側に示される。また、モジュール間の接続条件として、第２の実施形態では、第１の実施形態で設定した条件に加え、接続しようとする入出力端子の型が一致している組み合わせを有効なものとする。例えば、あるモジュールの出力端子が整数型であった場合には、他のモジュールの整数型の入力端子との接続が可能とする。
【００２９】
第２の実施形態では、関連モジュールの候補を決定する際の関連判断条件として、インターフェースが同一であるか否かという基準を採用し、インターフェースが同一であれば関連モジュールの候補にする。インターフェースとは、ここではモジュールの入出力端子の組み合わせと定義する。
【００３０】
また、第２の実施形態では、モジュール間の接続履歴情報は、各モジュールの入出力端子同士が接続された回数と、そのとき使用したユーザーの情報を指すものとする。一例として、ユーザーの担当工程をユーザーの情報とする。データフローを操作するユーザー（操作ユーザー）のユーザー情報は予め与えられているものとし、本例ではユーザー情報として「アルゴリズム開発」が与えられているものとする。そして、接続可能なモジュール間の組み合わせ候補を出力する際には、組み合わせ生成確率の高いものから順番にリスト化したものを出力する。第２の実施形態では、操作ユーザーのユーザー情報に、モジュールの接続履歴情報に登録されているユーザー情報が一致するときの組み合わせの中でリスト化したものと、ユーザー情報が一致しないときの組み合わせの中でリスト化したものを出力する。
【００３１】
第２の実施形態におけるプログラミングシステムでの全体的な処理の流れは、第１の実施形態と同様であり、図２に示した処理フローに従って行われる。
ただし、第２の実施形態では、モジュール情報抽出ステップＳ２０２において、モジュール情報抽出部１０７は、入力ステップＳ２０１で選択されたモジュールの属性情報として、モジュールのインターフェースの情報を抽出する。本例では、入力ステップＳ２０１において、図５（ａ）に示すように、モジュール５０１、５０２、５０３、５０４、５０５を含むデータフローにおいて、新規モジュール５０１の出力端子５０１−Ｏが選択されているとする。したがって、新規モジュール５０１のインターフェースとして、入力端子５０１−Ｉ１のｉｍａｇｅ型（８ビットＲＧＢ型）、入力端子５０１−Ｉ２のｉｎｔ型（３２ビット整数型）、出力端子５０１−Ｏのｉｎｔ型（３２ビット整数型）という情報が抽出される。
【００３２】
関連モジュール検索ステップＳ２０３において、組み合わせ候補生成部１０８は、モジュールのインターフェースが同一であるか否かという基準を関連判断条件として用い、選択されたモジュールの関連モジュールをデータベース１０２から検索する。検索により、図６に示すように、データベース１０２に登録されているモジュールのうち、ｉｍａｇｅ型の入力端子と、ｉｎｔ型の入力端子と、ｉｎｔ型の出力端子とを有するモジュールが、接続履歴情報とともにリストアップされる。そして、リストアップされた接続履歴情報を集計して、関連モジュールの接続履歴情報とする。ここでの集計手法は第１の実施形態と同様とする。本例では、各モジュールの入出力端子同士が接続された回数と、接続時のユーザーの情報を利用するため、ユーザー情報毎に接続回数を集計する。本例における集計された接続履歴情報を図７（ａ）に示す。
【００３３】
組み合わせ生成ステップＳ２０４において、本例では、モジュールａ５０２、モジュールｂ５０３、モジュールｃ５０４、モジュールｈ５０５の入力端子が、新規モジュール５０１の出力端子５０１−Ｏとの組み合わせ候補とされる。
【００３４】
有効確認ステップＳ２０５では、組み合わせ候補生成部１０８は、第１の実施形態での条件の他に、端子の型が一致しないものをリストから除外する。本例では、選択されている出力端子５０１−Ｏの型がｉｎｔ型であるので、対となる入力端子の型がｉｎｔ型以外のものをリストから除外する。つまり、本例では、モジュールａ５０２の入力端子５０２−Ｉ２、モジュールｂ５０３の入力端子５０３−Ｉ２、及びモジュールｃ５０４の入力端子５０４−Ｉ２が接続可能な組み合わせ候補とされる。
【００３５】
組み合わせ生成確率計算ステップＳ２０６において、本例では、組み合わせ候補生成部１０８は、モジュール間の組み合わせ生成確率をユーザー情報毎に計算する。第１の実施形態と同様の式に従って計算された、本例での各モジュール間の組み合わせ生成確率を図７（ｂ）に示す。
【００３６】
組み合わせ候補生成ステップＳ２０８において、本例では、組み合わせ候補生成部１０８は、前述した条件の下、次のようにしてモジュール間の組み合わせ候補を生成し出力部１０９より出力する。出力先モジュールが重複する場合には、生成確率が０ではなく、かつユーザー情報が一致するものを優先してリストに残し、続いて生成確率が最も高いもののみリストに残す。
【００３７】
図７（ｂ）を用いて具体的に説明すると、モジュールａ５０２とモジュールｂ５０３については、ユーザー情報が「アルゴリズム開発」の時の生成確率の順番でリスト化される。その次に、モジュールｃ５０４については、ユーザー情報が「アルゴリズム開発」の生成確率が０であるので、ユーザー情報が「製品実装」の時の生成確率でリスト化される。つまり、図７（ｃ）に示すように、モジュールｂ５０３（ユーザー情報：「アルゴリズム開発」）、モジュールａ５０２（ユーザー情報：「アルゴリズム開発」）、モジュールｃ５０４（ユーザー情報：「製品開発」）の順にリスト化する。そして、それをモジュール間の組み合わせ候補として出力する。
【００３８】
画面表示ステップＳ２０９において、本例では、例えば図５（ｂ）に示すように、組み合わせ候補生成ステップＳ２０８で出力されたモジュール間の組み合わせ候補に基づき、接続候補を接続線の太さと色を変えて表示する。ここでは、接続順位が高いものほど太く、色の明度を低くしている。また、ユーザー情報が一致するものと、一致しないものとで、線の種類を変えている。
【００３９】
第２の実施形態によれば、モジュールの属性情報として入出力を示したインターフェースを用い、同じインターフェースを有する関連モジュールの接続履歴情報を利用して、選択されたモジュールに対する接続候補を提示することができる。これにより、他のモジュールとの間の接続履歴がないモジュールであっても、そのモジュールに対する接続候補をユーザー等に提示することができ、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。また、処理の入出力によって決まるインターフェースを利用することで、ユーザーが事前に追加情報を与えることなく関連モジュールを検索できるため、さらにユーザーの手間を軽減することができる。
【００４０】
なお、前述した第２の実施形態では、同一の型の入出力端子同士の接続しか許可していないが、型コンバートが可能な組み合わせであれば、接続間に型コンバーターを挿入して、接続を許可するようにしても良い。例えば、出力端子の型が整数型で、入力端子の型が実数型であった場合には、整数型から実数型へ変換するコンバーターを間に挿入することで、接続可能としても良い。このようにすることで、提示する接続候補の漏れを軽減することができる。また、ユーザー情報としてユーザーの担当工程を定義しているが、これに限定されるものではなく、ユーザーに関する情報であれば良く、例えば、ユーザーが所属する部署名などでも良い。また、ユーザーに関する情報として複数の情報を用いても良く、さらに接続候補を絞り込むことができる。
【００４１】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
第３の実施形態では、関連モジュールの検索に係るモジュールの属性情報として、モジュールの入出力端子に接続されているモジュールの属性情報を採用する。以下では、第１、第２の実施形態と同様の部分については説明を省略し、第１、第２の実施形態との相違点について説明する。
【００４２】
第３の実施形態では、新規モジュールと他のモジュールとの間にすでに１つ以上の接続があるとし、これから未接続の入出力端子の接続を行うときのモジュール間の組み合わせ候補を出力する。各モジュールが有する入出力端子の数は任意とし、入出力端子の型についても任意とする。また、モジュール間の接続条件として、第３の実施形態では、第１の実施形態で設定した条件に加え、接続しようとする入出力端子の型が一致している組み合わせを有効なものとする。
【００４３】
第３の実施形態では、関連モジュールの候補を決定する際の関連判断条件として、新規モジュールにすでに接続されているモジュールの組み合わせが同じモジュールを選ぶという基準を採用する。また、モジュール間の接続履歴情報は、各モジュールの入出力端子同士が接続された回数と、使用されたときの製品カテゴリの情報を指すものとする。製品カテゴリとは、製品を機能別に分類するためのキーワードのことである。例えば、製品カテゴリとして「デジタル一眼レフカメラ」や「コンパクトカメラ」といったカテゴリが考えられる。接続候補を出力したい製品カテゴリ情報は予め与えられ、本例では製品カテゴリ情報として「Ｐ１」が与えられる。そして、接続可能なモジュール間の組み合わせ候補を出力する際には、組み合わせ生成確率の高いものから順番に並べ替えすべてリスト化したものを出力する。第３の実施形態では、製品カテゴリ情報と、モジュール間の接続履歴情報に登録されている製品カテゴリ情報が一致するときの組み合わせの中でリスト化したものと、製品カテゴリ情報が一致しないときの組み合わせの中でリスト化したものを出力するものとする。
【００４４】
第３の実施形態におけるプログラミングシステムでの全体的な処理の流れは、第１の実施形態と同様であり、図２に示した処理フローに従って行われる。
ただし、第３の実施形態では、モジュール情報抽出ステップＳ２０２において、モジュール情報抽出部１０７は、モジュールの属性情報として、新規モジュールが他のどのモジュールと接続されているかという情報を抽出する。本例では、図８に示すように、モジュール８０１、８０２、８０３、８０４、８０５、８０６を含むデータフローにおいて、新規モジュール８０１の出力端子８０１−Ｏが選択されているとする。したがって、モジュールｉ８０５の出力端子８０５−Ｏと新規モジュール８０１の入力端子８０１−Ｉ１が接続され、モジュールｊ８０６の出力端子８０６−Ｏと新規モジュール８０１の入力端子８０１−Ｉ２が接続されているという情報が抽出される。
【００４５】
関連モジュール検索ステップＳ２０３において、組み合わせ候補生成部１０８は、モジュールｉ８０５とモジュールｊ８０６とがそれぞれ入力として接続された履歴があるモジュールが、接続履歴情報とともにリストアップされる。そして、リストアップされた接続履歴情報を集計して、関連モジュールの接続履歴情報とする。ここでの集計手法は第１の実施形態と同様とする。本例では、各モジュールの入出力端子同士が接続された回数と、そのときの製品カテゴリ情報を利用するため、製品カテゴリ情報毎に接続回数を集計する。本例における関連モジュールの接続履歴情報の一部を図９（ａ）に、集計後の接続履歴情報を図９（ｂ）に示す。
【００４６】
組み合わせ生成ステップＳ２０４において、本例では、モジュールａ８０２、モジュールｂ８０３、モジュールｃ８０４、モジュールｉ８０５、モジュールｊ８０６の入力端子が、新規モジュール８０１の出力端子８０１−Ｏとの組み合わせ候補とされる。
【００４７】
有効確認ステップＳ２０５では、組み合わせ候補生成部１０８は、第２の実施形態と同様の条件に従い、条件に合致しないものをリストから除外する。本例では、新規モジュール８０１の出力端子８０１−Ｏがモジュールｉ８０５、モジュールｊ８０６の入力端子に接続するとループを形成してしまうため、モジュールｉ８０５、モジュールｊ８０６をリストから除外する。よって、モジュールａ８０２、モジュールｂ８０３、モジュールｃ８０４の入力端子が接続可能な組み合わせ候補とされる。
【００４８】
組み合わせ候補生成ステップＳ２０８において、第２の実施形態と同様の手順で、組み合わせ候補生成部１０８は、前述した条件の下、モジュール間の組み合わせ候補を生成し出力部１０９より出力する。図９（ｃ）を用いて具体的に説明すると、モジュールａ８０２とモジュールｂ８０３については、製品カテゴリ情報が「Ｐ１」の時の生成確率の順番でリスト化される。その次に、モジュールｃ８０４については、製品カテゴリ情報が「Ｐ１」の生成確率が０であるので、製品カテゴリ情報が「Ｐ２」の時の生成確率でリスト化される。つまり、図９（ｄ）に示すように、モジュールｂ８０３（製品カテゴリ情報：「Ｐ１」）、モジュールａ８０２（製品カテゴリ：「Ｐ１」）、モジュールｃ８０４（製品カテゴリ情報：「Ｐ２」）の順にリスト化する。そして、それをモジュール間の組み合わせ候補として出力する。
【００４９】
第３の実施形態によれば、注目しているモジュールがどのモジュールと接続しているかという情報を利用することで、より適切な関連モジュールを検索できる。その関連モジュールの接続履歴情報を利用して、選択されたモジュールに対する接続候補を提示することができ、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。
【００５０】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。
第４の実施形態では、関連モジュールの検索に係るモジュールの属性情報として、カテゴリを採用し、さらにデータフロー中の他のモジュールの接続関係を考慮する。以下では、第１、第２の実施形態と同様の部分については説明を省略し、第１、第２の実施形態との相違点について説明する。
【００５１】
第４の実施形態では、各モジュールが有する入出力端子の数は任意とし、入出力端子の型についても任意とする。また、モジュール間の接続の組み合わせを生成するときの条件は、第２の実施形態に準ずるものとする。また、本例では図１０（ａ）に示すように、新規モジュール１００１以外のモジュール１００２、１００３、１００４、１００５、１００６が、接続されているとする。このとき、新規モジュール１００１の組み合わせ候補として、モジュールａ１００２、モジュールｂ１００３、モジュールｃ１００４が得られているものとする。
【００５２】
第４の実施形態では、関連モジュールの候補を決定する際の関連判断条件として、第１の実施形態と同様に、カテゴリが同一であるか否かという基準を採用する。なお、第４の実施形態における例では、新規モジュール１００１のカテゴリとして「ＡＡＡ」が与えられているものとする。また、モジュール間の接続履歴情報は、各モジュールの入出力端子同士が接続された確率を指すものとする。さらに、そのとき接続先モジュールがどのモジュールの入出力端子に接続していたかという情報も指すものとする。そして、接続可能なモジュール間の組み合わせ候補を出力する際には、接続先モジュールを含むモジュールの接続関係が同一のときの組み合わせ生成確率を接続先モジュール毎に出力し、その生成確率の高いものから順番にリスト化したものを出力する。また、第４の実施形態では、モジュールの接続関係が同一でない場合には、組み合わせ生成確率を０とする。
【００５３】
第４の実施形態におけるプログラミングシステムでの全体的な処理の流れは、第１の実施形態と同様であり、図２に示した処理フローに従って行われる。
以下、図１０（ｂ）を用いて説明する。接続履歴として、カテゴリ「ＡＡＡ」に属するモジュールｄ１００７とモジュールａ１００２との接続に注目すると、モジュールｐ１００５の出力端子がモジュールａ１００２の入力端子に接続されている。また、モジュールａ１００２の出力端子がモジュールｂ１００３の入力端子に接続されている。このような処理の流れ（この処理の流れをモジュールの接続順序と呼び、ｐ→ａ→ｂと書くことにする）があったときに、モジュールｄ１００７とモジュールａ１００２が接続される確率が０．１であったとする。すなわち、モジュールの接続順序ｐ→ａ→ｂが与えられたときの、モジュールｄ１００７とモジュールａ１００２の組み合わせの条件付き接続確率が０．１であったとする。一方、モジュールｄ１００７とモジュールｂ１００３との接続に注目すると、モジュールの接続順序ａ→ｂ→ｃが与えられたときの、モジュールｄ１００７とモジュールｂ１００３の組み合わせの条件付き接続確率が０．２であったとする。同様にして、モジュールｄ１００７とモジュールｃ１００４との接続に注目すると、モジュールの接続順序ｂ→ｃ→ｑが与えられたときの、モジュールｄ１００７とモジュールｃ１００４の組み合わせの条件付き接続確率が０であったとする。
【００５４】
このようにモジュールｄ１００７と接続されるモジュールが、さらにどのモジュールと接続されているかという情報、すなわちモジュールの接続順序を含めて、接続確率が接続履歴情報として記録されている。図１１（ａ）は、カテゴリ「ＡＡＡ」に属するモジュールｄ、モジュールｅ、モジュールｆの、処理の流れ別の各モジュールの組み合わせの接続確率の例を示している。
【００５５】
ここで、新規モジュール１００１の関連モジュールと、モジュールａ１００２、モジュールｂ１００３、モジュールｃ１００４との接続確率について考える。本例では、関連モジュールに属する既存モジュールが所定の処理の流れｆのときに注目するモジュールと接続するときの条件付き確率の総和Σｐｉ（ｆ）を、所定の処理の流れｆのときの注目するモジュールとの接続確率ｐ（ｆ）とする。例えば、図１１（ａ）に示した例に従えば、ｐ（ｐ→ａ→ｂ）＝０．１＋０．１＋０．１＝０．３となる。また、ｐ（ａ→ｂ→ｃ）＝０．２＋０．３＋０．１＝０．６となり、ｐ（ｂ→ｃ→ｑ）＝０＋０．１＋０．１＝０．２となる。また、前述した条件に従い、これ以外におけるモジュールの接続順序時のｐ（ｆ）は０とする。
【００５６】
そして、（ｐｋ（ｆ）÷Σｐｉ（ｆｉ））を、所定の処理の流れがあったときの関連モジュールの組み合わせの生成確率Ｎｋ’とする。ここで、Σｐｉ（ｆｉ）は所定の処理の流れｆｉがあったときの各モジュール間の組み合わせｉの接続確率ｐｉ（ｆｉ）の総和である。本例によって計算された各モジュール間の組み合わせｋの生成確率Ｎｋ’を図１１（ｂ）に示す。例えば、Σｐｉ（ｆｉ）＝ｐ（ｐ→ａ→ｂ）＋ｐ（ａ→ｂ→ｃ）＋ｐ（ｂ→ｃ→ｑ）＝１．１である。
【００５７】
組み合わせ候補生成ステップＳ２０８において、本例では、組み合わせ候補生成部１０８は、前述した条件の下、モジュールｂ１００３、モジュールａ１００２、モジュールｃ９０４の順にリスト化し、それをモジュール間の組み合わせ候補として出力する。図１１（ｃ）は、出力されたモジュール間の組み合わせ候補を示す。
【００５８】
第４の実施形態によれば、データフロー中の、注目しているモジュール以外の他のモジュールの接続関係を考慮することで、処理内容に即した、より適切な関連モジュールを検索することができる。その関連モジュールの接続履歴情報を利用して、選択されたモジュールに対する接続候補を提示することができ、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。
【００５９】
なお、前述した第４の実施形態では、接続先モジュールがさらにどのモジュールに接続しているかを考慮したが、さらにその先の接続先を考慮するようにしても良い。すなわち、考慮する接続先の数を十分に大きくし、データフロー全体を考慮して組み合わせ候補を提示するようにしても良い。このようにすることで、接続候補をより適切に提示することが可能となる。
【００６０】
（第５の実施形態）
次に、本発明の第５の実施形態について説明する。
第５の実施形態は、前述した第１の実施形態におけるカテゴリが階層化されている場合である。以下では、第１の実施形態と同様の部分については説明を省略し、第１の実施形態との相違点について説明する。
【００６１】
カテゴリの階層化とは、例えば画像処理で用いられるガウスフィルタ処理を３階層にカテゴライズした場合には、第１階層としては「画像処理」、第２階層としては「フィルタ処理」、第３階層としては「ガウスフィルタ処理」とすることができる。上位階層から順に第１階層、第２階層、第３階層と定義する。同様に、ソーベルフィルタ処理を３階層にカテゴライズした場合には、第１階層としては「画像処理」、第２階層としては「フィルタ処理」、第３階層としては「ソーベルフィルタ処理」とすることができる。このとき、ガウスフィルタ処理とソーベルフィルタ処理とを比較すると、第３階層では異なるカテゴリが付与されているが、第２階層より上位では同じカテゴリが付与されている。
【００６２】
本例では、カテゴリの階層を３階層とし、選択されたモジュールのカテゴリの第１階層が「Ａ」、第２階層が「ａ」、第３階層が「１」とし、以後「Ａ−ａ−１」と表現する。また、プログラミングシステムのデータベース１０２には、カテゴリ「Ａ−ａ−２」のモジュールは登録されているが、「Ａ−ａ−１」のモジュールは登録されていないものとする。
【００６３】
第５の実施形態では、関連モジュールの検索に係るモジュールの属性情報として前述の階層化されたカテゴリを採用する。また、関連モジュールの候補を決定する際の関連判断条件として、このカテゴリが同一であるか否かという基準を採用する。また、カテゴリが同一であるものがなければ、さらに所定の階層分だけ上位のカテゴリ、例えばカテゴリの上位ｎ階層が同一であるか否かという基準を採用する。
【００６４】
第５の実施形態におけるプログラミングシステムでの全体的な処理の流れは、第１の実施形態と同様であり、図２に示した処理フローに従って行われる。
第５の実施形態では、モジュール情報抽出ステップＳ２０２において、モジュール情報抽出部１０７は、入力ステップＳ２０１で選択されたモジュールの属性情報を抽出する。本例では、選択されたモジュールのカテゴリとして「Ａ−ａ−１」が抽出される。抽出した情報は、関連モジュール検索ステップＳ２０３に送られる。
【００６５】
関連モジュール検索ステップＳ２０３において、組み合わせ候補生成部１０８は、モジュール情報抽出部１０７により抽出されたモジュールのカテゴリを基に、関連判断条件を用いて、選択されたモジュールの関連モジュールをデータベース１０２から検索する。本例では、データベース１０２にカテゴリ「Ａ−ａ−１」のモジュールが登録されていないので、関連判断条件に従い、カテゴリ「Ａ−ａ」のモジュールを検索する。データベース１０２に登録されているカテゴリ「Ａ−ａ−２」のモジュールは、カテゴリ「Ａ−ａ」でもあるので、このカテゴリ「Ａ−ａ−２」のモジュールが接続履歴情報とともにリストアップされる。その後、第１の実施形態と同様にして処理が行われ、モジュール間の組み合わせ候補が出力される。
【００６６】
第５の実施形態によれば、関連モジュールを検索する際に利用する情報を階層化することで、注目している階層の情報が不足していても、さらに上位の階層の情報を参照して関連モジュールを検索することができ、提示する接続候補の漏れを軽減することができる。その関連モジュールの接続履歴情報を利用して、選択されたモジュールに対する接続候補を提示することができ、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。
【００６７】
なお、前述した説明では、情報の階層が３階層の例を示したが、階層数はこれに限るものではない。また、階層化の例としてモジュールのカテゴリを挙げたが、他の指標を階層化しても良い。例えば、数値型→整数型→３２ビット整数型、というように入出力端子の型を階層化しても良い。最下位の型が異なる場合には、コンバーターを使用するようにしても良い。このようにすることで、提示する接続候補の漏れを軽減できる。
【００６８】
（第６の実施形態）
次に、本発明の第６の実施形態について説明する。
第６の実施形態は、新規モジュールが１つ以上の既存モジュールから構成される場合である。以下では、第１の実施形態と同様の部分については説明を省略し、第１の実施形態との相違点について説明する。
【００６９】
図１２は、複数の既存モジュールから構成されている新規モジュールの例を示す図である。新規モジュール１２０１の入力端子１２０１−Ｉ１、１２０１−Ｉ２は、ともに内部モジュールｎ１２０３の入力端子と内部モジュールｏ１２０４の入力端子とに接続されている。同様に、新規モジュール１２０１の出力端子１２０１−Ｏは、内部モジュールｍ１２０２の出力端子１２０２−Ｏと接続されている。ここで、新規モジュール１２０１のカテゴリを「ＡＡＡ」とし、データベース１０２には、カテゴリ「ＡＡＡ」のモジュールが登録されていないものとする。また、新規モジュール１２０１の出力端子１２０１−Ｏに接続している内部モジュールｍ１２０２のカテゴリを「ＢＢＢ」とし、データベース１０２にも登録されているものとする。
【００７０】
第６の実施形態におけるプログラミングシステムでの全体的な処理の流れは、第１の実施形態と同様であり、図２に示した処理フローに従って行われる。
入力ステップＳ２０１において、指示選択部１０６が、図１２に示す新規モジュール１２０１の出力端子１２０１−Ｏを選択したとする。モジュール情報抽出ステップＳ２０２において、モジュール情報抽出部１０７は、選択されたモジュールの属性情報として、新規モジュール１２０１のカテゴリ「ＡＡＡ」という情報を抽出する。抽出した情報は、関連モジュール検索ステップＳ２０３に送られる。
【００７１】
関連モジュール検索ステップＳ２０３において、組み合わせ候補生成部１０８は、モジュール情報抽出部１０７により抽出されたモジュールのカテゴリを基に、関連判断条件を用いて、選択されたモジュールの関連モジュールをデータベース１０２から検索する。より具体的には、選択されたモジュールを構成する内部モジュールの検索を行う。第６の実施形態における関連モジュール検索ステップＳ２０３の処理の流れを、図１３に示す。
【００７２】
条件判断ステップＳ１３０１では、抽出されたカテゴリのモジュールがデータベース１０２に登録されておらず、かつ内部モジュールの検索が終了していない場合には、内部モジュール検索ステップＳ１３０２に移行する。それ以外の場合には、モジュールリストアップステップＳ１３０４に移行する。本例では、データベース１０２にカテゴリ「ＡＡＡ」のモジュールが登録されていないので、まず内部モジュール検索ステップＳ１３０２に移行する。
【００７３】
内部モジュール検索ステップＳ１３０２では、選択されている出力端子１２０１−Ｏに接続している内部モジュールを検索する。その結果、本例では、内部モジュールｍ１２０２が得られる。
【００７４】
内部モジュールカテゴリ抽出ステップＳ１３０３では、内部モジュールｍ１２０２のカテゴリを、モジュール情報抽出部１０７によって抽出する。その結果、カテゴリ「ＢＢＢ」という情報が得られるとする。カテゴリ「ＢＢＢ」のモジュールはデータベース１０２に登録されているので、条件判断ステップＳ１３０１を通してモジュールリストアップステップＳ１３０４に移行し、関連モジュールのリストアップが接続履歴情報とともに行われる。
【００７５】
最後に、集計ステップＳ１３０５において、リストアップされた接続履歴情報を第１の実施形態と同様に集計し、関連モジュールの接続履歴情報として出力する。
その後、第１の実施形態と同様にして処理が行われ、モジュール間の組み合わせ候補が出力される。
【００７６】
第６の実施形態によれば、モジュールが複数の内部モジュールで構成されている場合には、その内部モジュールの属性情報を利用することで、他のモジュールとの接続履歴がないモジュールにおいてもユーザーに対して接続候補を提示することができる。これにより、提示する接続候補の漏れを軽減することができるとともに、図形プログラミングにおいてモジュール間の接続を効率的に行うことができる。
【００７７】
なお、第６の実施形態では、注目する入出力端子に接続される内部モジュールを参照するようにしているが、その内部モジュールがさらに内部モジュールを含む場合には、その情報を用いても良い。また、そのようにしてモジュールをさかのぼるとき、さかのぼる回数を制限することもできる。このようにすることで、候補を検索するための処理を軽減することができる。
【００７８】
なお、前述した各実施形態では、選択されたモジュールは過去にどのモジュールとも接続が行われておらず、他のモジュールとの間の接続履歴情報がないものとしている。しかし、選択されたモジュールが、過去に他のモジュールに接続され、モジュール間の接続履歴情報がある場合には、そのモジュール間の接続履歴情報に基づいて接続候補を提示すれば良い。すなわち、選択されたモジュールについてのモジュール間の接続履歴情報がデータベース１０２に存在する場合には、その接続履歴情報に基づいて、モジュール間の組み合わせ候補を生成すれば良い。一方、選択されたモジュールについてのモジュール間の接続履歴情報がデータベース１０２に存在しない場合には、前述した各実施形態に示したように、関連モジュールの接続履歴情報に基づいて、モジュール間の組み合わせ候補を生成すれば良い。
【００７９】
また、前述した各実施形態で関連モジュールの検索に用いたモジュールの属性情報は、それぞれ組み合わせて使用しても良い。例えば、インターフェースをさらにカテゴリで分類しても良い。モジュールの属性情報を組み合わせて使用することで、さらに接続候補を絞り込むことが可能になる。また、ある属性情報で接続履歴情報が見つからなかった場合には、他の属性情報を使用するようにしても良い。このようにすることで、提示する接続候補の漏れを軽減することができる。
【００８０】
また、前述した各実施形態で用いたモジュール間の接続履歴情報はどのようなものであっても良い。例えば、接続した時のタイムスタンプを使っても良く、最近使用されたモジュール間の組み合わせを優先することで、さらに接続候補を適切に絞り込むことが可能になる。また、前述した組み合わせ生成確率の算出方法は一例であり、任意に変更して良い。
【００８１】
また、前述した各実施形態における接続可能なモジュール間の組み合わせ候補を出力する際の条件は、どのようなものであっても良い。例えば、組み合わせ生成確率に対して、しきい値を設定し、リストの中からしきい値を超えたものを表示するようにしても良い。このようにすることで、接続候補を検索するための処理を軽減することができる。
【００８２】
また、前述した各実施形態における関連判断条件は、どのようなものであっても良い。例えば、第２の実施形態では、インターフェースが同一であるか否かという基準を採用したが、インターフェースを構成する入出力端子のうちの所定数が同一のものであるという基準を採用しても良い。また、例えば、第４の実施形態では、接続先モジュールを含むモジュールの接続関係が同一でなければ生成確率を０としたが、第５の実施形態のように階層的に考えて、接続先モジュールの所定数が同一のものであるという基準を採用しても良い。また、モジュールがどの程度関連しているかを示すパラメータとして関連性を定義し、それに基づいて組み合わせ候補を生成しても良い。このようにすることで、提示する接続候補の漏れを軽減できる。
【００８３】
（本発明の他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８４】
例えば、前述した実施形態に示したビジュアルプログラミング支援装置は、図１４に示すようなコンピュータ機能１４００を有し、そのＣＰＵ１４０１により前述した各実施形態での動作が実施される。コンピュータ機能１４００は、図１４に示すように、ＣＰＵ１４０１と、ＲＯＭ１４０２と、ＲＡＭ１４０３とを備える。また、操作部（ＣＯＮＳ）１４０９のコントローラ（ＣＯＮＳＣ）１４０５と、ディスプレイ（ＤＩＳＰ）１４１０のディスプレイコントローラ（ＤＩＳＰＣ）１４０６とを備える。さらに、ハードディスク（ＨＤ）１４１１、及びフレキシブルディスク等の記憶デバイス（ＳＴＤ）１４１２のコントローラ（ＤＣＯＮＴ）１４０７と、ネットワークインタフェースカード（ＮＩＣ）１４０８とを備える。それら機能部１４０１、１４０２、１４０３、１４０５、１４０６、１４０７、１４０８は、システムバス１４０４を介して互いに通信可能に接続された構成としている。
【００８５】
ＣＰＵ１４０１は、ＲＯＭ１４０２又はＨＤ１４１１に記憶されたソフトウェア、又はＳＴＤ１４１２より供給されるソフトウェアを実行することで、システムバス１４０４に接続された各構成部を総括的に制御する。すなわち、ＣＰＵ１４０１は、前述したような動作を行うための処理プログラムを、ＲＯＭ１４０２、ＨＤ１４１１、又はＳＴＤ１４１２から読み出して実行することで、前述した各実施形態での動作を実現するための制御を行う。ＲＡＭ１４０３は、ＣＰＵ１４０１の主メモリ又はワークエリア等として機能する。ＣＯＮＳＣ１４０５は、ＣＯＮＳ１４０９からの指示入力を制御する。ＤＩＳＰＣ１４０６は、ＤＩＳＰ１４１０の表示を制御する。ＤＣＯＮＴ１４０７は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び前述した各実施形態における前記処理プログラム等を記憶するＨＤ１４１１及びＳＴＤ１４１２とのアクセスを制御する。ＮＩＣ１４０８はネットワーク１４１３上の他の装置と双方向にデータをやりとりする。
【００８６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８７】
１０１：データフロー格納モジュール  １０２：データベース  １０３：入力装置  １０４：表示装置  １０５：データフロー更新装置  １０６：指示選択部  １０７：モジュール情報抽出部  １０８：組み合わせ候補生成部  １０９：出力部  １１０：ホストプロセッサ  １１１：ビジュアルプログラミング支援装置（設計支援装置）
【図１】
2015075876.tif 000003
【図２】
2015075876.tif 000004
【図３】
2015075876.tif 000005
【図４】
2015075876.tif 000006
【図５】
2015075876.tif 000007
【図６】
2015075876.tif 000008
【図７】
2015075876.tif 000009
【図８】
2015075876.tif 000010
【図９】
2015075876.tif 000011
【図１０】
2015075876.tif 000012
【図１１】
2015075876.tif 000013
【図１２】
2015075876.tif 000014
【図１３】
2015075876.tif 000015
【図１４】
2015075876.tif 000016