(57)【要約】【課題】  プロセス同士の関連性およびプロセス間の「戻り」を考慮したプロセス分類装置およびプロセス分類プログラムおよび記憶媒体を提供することである。【解決手段】  プロセス分類装置１は、プロセス情報取得部１１０と、プロセス分類部１２０と、を有する。プロセス分類部１２０は、次式で表されるｆ１（Ｑｍ）＝（ａ＋ｂ／ｆｂｍ）・Ｑｍ、Ｑｍ＝（Ｑ＋ｃ１）、ｆｂｍ＝（ｆｂ１＋ｃ２）、Ｑ＝（１／２ｍ）Σｖｗ（Ａｖｗ−ｋｖ・ｋｗ／２ｍ）δ（ｃｖ，ｃｗ）、０．５≦ｃ１≦２．０、０．５≦ｃ２≦２．０、適応関数ｆ１（Ｑｍ）を用いてプロセスを分類する。ここで、ｆｂ１は、異なるグループのプロセスに戻るフィードバックの個数である。ａ、ｂ、ｃ１、ｃ２は、正の定数である。【選択図】図４
2015191566.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、
前記複数のプロセスを前記複数のグループのうちのいずれかに分類するプロセス分類部と、
を有し、
前記プロセス分類部は、
次式で表される
【数１】
2015191566.tif 000012
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
適応関数ｆ１（Ｑｍ）を用いてプロセスを分類すること
を特徴とするプロセス分類装置。
【請求項２】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、
前記複数のプロセスを前記複数のグループのうちのいずれかに分類するプロセス分類部と、
を有し、
前記プロセス分類部は、
次式で表される
【数２】
2015191566.tif 000013
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
ｎ：２以上の自然数
適応関数ｆ２（Ｑｍ）を用いて、グループ数の増減と前記プロセスの分類とを同時に行うこと
を特徴とするプロセス分類装置。
【請求項３】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、
前記複数のプロセスを前記複数のグループのうちのいずれかに分類するプロセス分類部と、
を有し、
前記プロセス分類部は、
次式で表される
【数３】
2015191566.tif 000014
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
適応関数ｆ３（Ｑｍ）を用いて、グループ数の増減と前記プロセスの分類とを同時に行うこと
を特徴とするプロセス分類装置。
【請求項４】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、
前記複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、
をコンピューターに実現させるためのプロセス分類プログラムにおいて、
前記プロセス分類機能は、
次式で表される
【数４】
2015191566.tif 000015
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
適応関数ｆ１（Ｑｍ）を用いてプロセスを分類すること
を特徴とするプロセス分類プログラム。
【請求項５】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、
前記複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、
をコンピューターに実現させるためのプロセス分類プログラムにおいて、
前記プロセス分類機能は、
次式で表される
【数５】
2015191566.tif 000016
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
ｎ：２以上の自然数
適応関数ｆ２（Ｑｍ）を用いて、グループ数の増減と前記プロセスの分類とを同時に行うこと
を特徴とするプロセス分類プログラム。
【請求項６】
複数のプロセスと、前記複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、
前記複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、
をコンピューターに実現させるためのプロセス分類プログラムにおいて、
前記プロセス分類機能は、
次式で表される
【数６】
2015191566.tif 000017
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
適応関数ｆ３（Ｑｍ）を用いて、グループ数の増減と前記プロセスの分類とを同時に行うこと
を特徴とするプロセス分類プログラム。
【請求項７】
請求項４から請求項６までのいずれか１項に記載のプロセス分類プログラムにおいて、
前記複数のプロセスは、
シミュレーションモデルにおける処理要素であること
を特徴とするプロセス分類プログラム。
【請求項８】
請求項４から請求項６までのいずれか１項に記載のプロセス分類プログラムにおいて、
前記複数のプロセスは、
工業製品の開発工程における工程であること
を特徴とするプロセス分類プログラム。
【請求項９】
請求項４から請求項８までのいずれか１項に記載のプロセス分類プログラムが記憶されたものであってコンピューターで読み取り可能なことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工業製品の開発工程やシミュレーションモデルに含まれるプロセスを好適に分類できるプロセス分類装置およびプロセス分類プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
車両や電子機器類、ソフトウェア等の工業製品を開発する場合、それらの開発工程は、多数の工程を有している。また、多数の工程が複雑に絡み合っている。さらに、各工程の設計に多数の技術者が関与しており、全体像の把握が容易ではない。
【０００３】
開発工程が多数の製造工程を含む場合には、関連性の高い工程をひとまとまりのグループにすることが好ましい。技術者が全行程を理解しやすいからである。つまり、工程設計の支援につながる。グループ化する手法として、例えば、モジュラリティを用いるＮｅｗｍａｎ法がある（非特許文献１の２頁目の式（４）等参照）。Ｎｅｗｍａｎ法は、あるネットワーク上の情報をこれらの情報の関連性に着目してグループ化する非常に一般的な手法である。また、特許文献１には、Ｎｅｗｍａｎ法を用いて、製造工程における鋳込みをグループ化することにより、成分設計を支援する装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１２５７９５号公報
【非特許文献】
【０００５】
【非特許文献１】Aaron Clauset, M.E.J.Newman, and Cristopher Moore, Finding community structure in very large networks, Physical Review E 70, 066111(2004)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、工業製品の開発工程においては、試作品の試験結果を設計にフィードバックして再度設計しなおすことがある。このように、後工程の結果を前工程に反映する「戻り」があることが一般的である。このような場合には、反映された結果に基づいて、その前工程は繰り返し実施されることとなる。このように繰り返し実施される工程があると、開発期間は肥大化する。そのため、「戻り」を適切に管理することが重要である。
【０００７】
しかし、Ｎｅｗｍａｎ法では、「戻り」を適切に取り扱うことが困難である。Ｎｅｗｍａｎ法の数式には「戻り」を評価する項が盛り込まれていないからである。例えば、Ｎｅｗｍａｎ法を用いることにより、上流側の工程群（Ａ１）を実施した後に下流側の工程群（Ａ２）を実施するようなグループ化がなされたとする。その場合に、下流側の工程群（Ａ２）の工程から上流側の工程群（Ａ１）の工程にフィードバックする「戻り」が発生することが一般的である。
【０００８】
このように、グループ間をまたぐ「戻り」があると、開発工程の全体像が複雑になる。また、上流側の工程群（Ａ１）を担当していた開発グループは、設計、開発を何度も変更することとなり、全体の開発期間の長期化を招く。したがって、「戻り」を考慮したグループ化を実施する必要がある。
【０００９】
ところで、工業製品の開発工程においては、例えば、ＳＩＭＵＬＩＮＫ（登録商標）のようなシミュレーションモデルを用いることがある。シミュレーションモデルは、複数の処理要素を有する。そして、上流側の処理要素を実行した後に下流側の処理要素を実行する。また、シミュレーションモデルにおいても、工業製品の開発工程と同様に「戻り」が存在する。
【００１０】
本発明は、前述した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは、プロセス同士の関連性およびプロセス間の「戻り」を考慮したプロセス分類装置およびプロセス分類プログラムおよび記憶媒体を提供することである。ここで、「プロセス」とは、工業製品の開発工程に含まれる１つの工程と、プログラムに含まれる１つの処理内容と、シミュレーションモデルに含まれる１つの処理要素と、を含むものとする。
【課題を解決するための手段】
【００１１】
第１の態様におけるプロセス分類装置は、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類部と、を有する。プロセス分類部は、次式で表される
【数１】
2015191566.tif 000003
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
適応関数ｆ１（Ｑｍ）を用いてプロセスを分類する。
【００１２】
このプロセス分類装置は、工業製品の開発工程やシミュレーションモデルに含まれるプロセスを分類する。適応関数ｆ１（Ｑｍ）が大きいほど、好適な分類を実施することができる。適応関数ｆ１（Ｑｍ）は、モジュラリティＱに依存するとともに、フィードバック数ｆｂ１にも依存する。そのため、関連の深いプロセス同士を同じグループに分類するとともに、異なるグループにまたがる「戻り」を可能な限り少なくすることができる。
【００１３】
第２の態様におけるプロセス分類装置は、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類部と、を有する。プロセス分類部は、次式で表される
【数２】
2015191566.tif 000004
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
ｎ：２以上の自然数
適応関数ｆ２（Ｑｍ）を用いて、グループ数の増減とプロセスの分類とを同時に行う。
【００１４】
第３の態様におけるプロセス分類装置は、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得部と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類部と、を有する。プロセス分類部は、次式で表される
【数３】
2015191566.tif 000005
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
適応関数ｆ３（Ｑｍ）を用いて、グループ数の増減とプロセスの分類とを同時に行う。
【００１５】
第４の態様におけるプロセス分類プログラムは、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、をコンピューターに実現させるためのものである。また、プロセス分類機能は、次式で表される
【数４】
2015191566.tif 000006
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
適応関数ｆ１（Ｑｍ）を用いてプロセスを分類する。
【００１６】
第５の態様におけるプロセス分類プログラムは、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、をコンピューターに実現させるためのものである。また、プロセス分類機能は、次式で表される
【数５】
2015191566.tif 000007
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
ｎ：２以上の自然数
適応関数ｆ２（Ｑｍ）を用いて、グループ数の増減とプロセスの分類とを同時に行う。
【００１７】
第６の態様におけるプロセス分類プログラムは、複数のプロセスと、複数のプロセスの処理順序を表す処理順序情報と、を取得するプロセス情報取得機能と、複数のプロセスを複数のグループのうちのいずれかに分類するプロセス分類機能と、をコンピューターに実現させるためのものである。また、プロセス分類機能は、次式で表される
【数６】
2015191566.tif 000008
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数
適応関数ｆ３（Ｑｍ）を用いて、グループ数の増減とプロセスの分類とを同時に行う。
【００１８】
第７の態様におけるプロセス分類プログラムでは、複数のプロセスは、シミュレーションモデルにおける処理要素である。
【００１９】
第８の態様におけるプロセス分類プログラムでは、複数のプロセスは、工業製品の開発工程における工程である。
【００２０】
第９の態様における記憶媒体は、上記のプロセス分類プログラムが記憶されたものであってコンピューターで読み取り可能なものである。
【発明の効果】
【００２１】
本発明では、プロセス同士の関連性およびプロセス間の「戻り」を考慮したプロセス分類装置およびプロセス分類プログラムおよび記憶媒体が提供されている。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態に係るプロセス分類装置で取り扱うブロック図を例示する図である。
【図２】第１の実施形態に係るプロセス分類装置のハードウェアの構成を示す概略構成図である。
【図３】第１の実施形態に係るプロセス分類装置の制御部の構成を説明するためのブロック図である。
【図４】第１の実施形態に係るプロセス分類装置のフローを示すフローチャートである。
【図５】第１の実施形態に係るプロセス分類装置により図１のブロック図をグループ化した後のブロック図を示す図である。
【図６】図５のブロック図の一部を展開した図（その１）である。
【図７】図５のブロック図の一部を展開した図（その２）である。
【図８】Ｎｅｗｍａｎ法によるグループ化を実施した場合を示す図である。
【図９】第２の適応関数を用いてグループ化した場合を示すブロック図である。
【図１０】図９のブロック図の一部を展開した図である。
【発明を実施するための形態】
【００２３】
以下、本発明に係る実施形態について添付図面を参照しつつ説明する。以下の実施形態では、多数のプロセスをグループ化するプロセス分類装置およびプロセス分類プログラムおよび記憶媒体について説明する。以下の実施形態において、プロセスとは、工業製品の開発工程に含まれる１つの工程と、プログラムに含まれる１つの処理内容と、シミュレーションモデルに含まれる１つの処理要素と、を含む概念である。第１の実施形態から第３の実施形態まででは、ロボットアームの制御ソフトウェアの各プロセスを分類する場合を例に挙げて説明する。第４の実施形態では、工業製品の開発工程の各プロセスを分類する場合を例に挙げて説明する。
【００２４】
（第１の実施形態）
１．ブロック図
図１は、本実施形態のプロセス分類装置により分類されるロボットアームの制御ソフトウェアの処理要素を示すブロック図である。図１の左側には、ロボットアームの制御ソフトウェアの全体図ＳＴ１が示されている。そして、全体図ＳＴ１は、下位の階層ＳＴ２を有している。下位の階層ＳＴ２は、さらに下位の階層ＳＴ３、ＳＴ４を有している。このように、制御ソフトウェアは、階層構造を有している。
【００２５】
また、図１に示すように、ブロック図は、枠で囲まれた処理要素と、一つの処理要素と他の処理要素とをつなぐ結線と、を有している。ここで、処理要素は、プロセスを示している。結線は、処理要素間の関係情報を示している。図１において、処理要素Ｅ１と、結線Ｋ１とを例示している。結線は、矢印で示されている。この矢印は、矢印の根元の処理要素を実行した後に、矢印の先の処理要素を実行するという実行手順を示している。図１に示すブロック図では、一般に、図１中の左側から右側にかけて処理要素が実行される。つまり、図１中の左側に上流工程が配置されており、右側に下流工程が配置されている。そして、矢印に基づいて、上流側から下流側にデータが受け渡されるとともに処理が進行する。
【００２６】
また、図１には、結線Ｆ１が示されている。結線Ｆ１は、図１中の右側の処理要素から出て左側の要素に入っている。これは、下流工程の結果を上流工程が用いることを意味している。このように、下流工程の結果を上流工程が再利用することを「戻り」ということとする。
【００２７】
この戻りの処理は、可読性や、グループ毎の処理の観点から、適切に管理する必要がある。例えば、仮に、ロボットアームの制御ソフトウェアを複数のプログラムに分割したとする。その場合に、複数のプログラムの間で、データの受け渡しをしなければ、正常にプログラムを実行することができない。そのため、制御ソフトウェアの開発段階でのテストが困難である。したがって、一つのグループから他のグループに入る戻りを少なくすることが好ましい。
【００２８】
２．プロセス分類装置
本実施形態のプロセス分類装置１は、多数のプロセスを有するシステムについて、プロセスの間の関係の深さの度合いに応じて、グループ化を実施するためのものである。その際には、（１）プロセス間の関係の深さの度合いと、（２）あるグループから異なるグループに戻る「戻り」の少なさと、を考慮したプロセスの分類をすることができる。ここで、本実施形態のプロセスは、ソフトウェアのサブシステムやモジュールを含む。
【００２９】
本実施形態のプロセス分類装置１のハードウェア構成を図２に示す。プロセス分類装置１は、処理装置１０と、入力部２０と、表示部３０とを有している。処理装置１０は、プロセス分類装置１の各種の処理を具体的に行うものである。入力部２０は、ユーザーからの入力を受け付けるためのものである。または、他のコンピューターからの出力結果を受け付けるものであってもよい。例えば、キーボードが挙げられる。表示部３０は、処理装置１０により各種の処理を実行した結果等を表示するためのものである。例えば、ディスプレイが挙げられる。
【００３０】
処理装置１０は、制御部１００と、不揮発性メモリ２００とを有している。制御部１００は、各種の制御を行うものである。制御部１００は、ＣＰＵ（Ｃ１）と、メモリＭ１とを有している。制御部１００は、ＣＰＵＣ１と、メモリＭ１とを使用することにより、各種の制御を行う。不揮発性メモリ２００には、プログラムＰ１が格納されている。プログラムＰ１は、後述するように、コンピューターに実現させるためのプロセス分類プログラムである。これにより、コンピューターは、プロセス分類装置１としての機能を果たす。
【００３１】
３．制御部
図３は、制御部１００における各種の制御を行う各部を説明するためのブロック図である。制御部１００の有する各部は、それぞれ、ＣＰＵＣ１の少なくとも一部と、メモリＭ１の少なくとも一部とを用いて機能を発揮するものである。
【００３２】
制御部１００は、プロセス情報取得部１１０と、プロセス分類部１２０と、入力受付部１３０と、その他の制御部１４０と、を有している。
【００３３】
プロセス情報取得部１１０は、ブロック図に関する情報を取得する関係情報取得機能を有するものである。つまり、複数のプロセスと、依存元のプロセスと依存先のプロセスとの間の依存関係情報と、複数のプロセスのうちの一部のプロセスが１以上の下位の階層を構成する階層構造と、を取得する。また、その他の情報をも取得する。
【００３４】
プロセス分類部１２０は、後述する適応関数を用いてプロセスを分類する。適応関数の値が高いほど、グループ化が好適に行われていることを示している。適応関数については、後述する。
【００３５】
入力受付部１３０は、ユーザーからの入力を受け付けるための入力受付機能を有するものである。入力受付部１３０は、定数入力受付部１３１と、グループ数入力受付部１３２と、を有している。これらは、後述する適応関数のパラメーターについて、ユーザーからの入力を受け付けるためのものである。なお、グループ数入力受付部１３２については、本実施形態では用いない。第２の実施形態以降で用いる。
【００３６】
４．適応関数（フィットネス関数）
４−１．第１の適応関数
本実施形態では、第１の適応関数が次式（１）で与えられる。
【数７】
2015191566.tif 000009
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
この第１の適応関数ｆ１（Ｑｍ）を用いることにより、プロセスを分類することができる。
【００３７】
ここで、モジュラリティＱは、非特許文献１（Aaron Clauset, M.E.J.Newman, and Cristopher Moore, Finding community structure in very large networks, Physical Review E 70, 066111(2004) ）の式（４）で定義されるモジュラリティである。フィードバック数ｆｂ１は、下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数を表している。つまり、グループをまたがるフィードバックの数である。そのため、あるグループのプロセスから同じグループのプロセスに戻る「戻り」、すなわち、同一グループ内の「戻り」はカウントしない。ここで、フィードバック数ｆｂ１は、本発明者らが独自に考案し、導入したものである。定数ｃ１、ｃ２は、０．５以上２．０以下の正の実数である。定数ａ、ｂは、ユーザーにより与えられる実数である。これらについては、後述する。
【００３８】
モジュラリティＱは、多くの場合、０から１までの値をとる。しかし、計算上、負の値をとることもある。そのため、本実施形態では、Ｑｍ＝Ｑ＋ｃ１で定義される変形モジュラリティＱｍを用いる。また、フィードバック数ｆｂ１については、ゼロとなる場合が有る。その場合、式（１）において、ゼロで割ることとなる。これを回避するために、ｆｂｍ＝ｆｂ１＋ｃ２で定義される変形フィードバック数ｆｂｍを用いる。そして、第１の適応関数ｆ１（Ｑｍ）は、無限大に発散することはない。つまり、第１の適応関数ｆ１（Ｑｍ）は、ある条件化で最大値をとる。
【００３９】
４−２．計算方法
プロセスの分類をするために、式（１）の第１の適応関数ｆ１（Ｑｍ）を計算する。そして、第１の適応関数ｆ１（Ｑｍ）の値が大きくなるように、反復計算を行う。そして、第１の適応関数ｆ１（Ｑｍ）の値が収束するまで反復計算を繰り返す。第１の適応関数ｆ１（Ｑｍ）の値が収束したか否かについては、第１の適応関数ｆ１（Ｑｍ）の上昇幅が予め定めた閾値以下となった場合に、第１の適応関数ｆ１（Ｑｍ）の値が収束したと判断する。そうでなければ、反復計算を継続して実施すればよい。
【００４０】
このように、式（１）の最大化を行うわけであるが、計算上、必ずしも第１の適応関数ｆ１（Ｑｍ）の最大値が得られるわけではない。そして、第１の適応関数ｆ１（Ｑｍ）の最大値の９０％以上の値であれば、十分である場合がある。
【００４１】
４−３．第１の適応関数の特徴点
式（１）の右辺は、第１項（ａ・Ｑｍ）と、第２項（（ｂ／ｆｂｍ）・Ｑｍ）と、を有する。第１項（ａ・Ｑｍ）は、プロセス間の関連性を評価する項である。第２項（（ｂ／ｆｂｍ）・Ｑｍ）は、「戻り」を評価する項である。第１項（ａ・Ｑｍ）は、関連性の強いプロセス同士をまとめるほど大きい値となる。一方、第２項（（ｂ／ｆｂｍ）・Ｑｍ）は、「戻り」の数が多いほど、小さい値となり、「戻り」の数が小さいほど、大きい値となる。
【００４２】
このように、第１の適応関数ｆ１（Ｑｍ）は、第１項（ａ・Ｑｍ）と、第２項（（ｂ／ｆｂｍ）・Ｑｍ）と、の和で表される。そのため、第１の適応関数ｆ１（Ｑｍ）が最大となる場合といっても、第１項が大きく第２項が比較的小さい場合と、第１項が比較的小さく第２項が大きい場合とがある。また、第１項の大きさと第２項の大きさとがほぼ等しい場合がある。第１項が大きい場合には、グループ内のプロセス同士の関連性が高い。第２項が大きい場合には、グループをまたぐ「戻り」の数が少ない。第１項と第２項とがほぼ等しい場合には、グループ内のプロセス同士の関連性が適度に高く、グループをまたぐ「戻り」の数が適度に少ない。また、ユーザーが定数ａ、ｂを選択して入力することにより、モジュラリティＱを優先してグループ化を行うか、「戻り」の減少を優先してグループ化を行うかを選択できる。
【００４３】
４−４．モジュラリティ優先
ここで、モジュラリティＱを優先する場合について説明する。グループをまたぐ「戻り」を少なくすることより、グループに分類されるプロセス同士の関連性を高くすることを優先する場合に、モジュラリティＱを優先するとよい。この場合には、式（１）において、定数ａは、定数ｂより十分に大きい。ユーザーは、定数ｂに対して大きい定数ａをプロセス分類装置１に入力すればよい。
【００４４】
４−５．「戻り」優先
ここで、グループ間の「戻り」の数の減少を優先する場合について説明する。グループに分類されるプロセス同士の関連性を高くすることより、グループをまたぐ「戻り」を少なくすることを優先する場合に、「戻り」の数の減少を優先するとよい。この場合には、式（１）において、定数ｂは、定数ａより十分に大きい。ユーザーは、定数ａに対して大きい定数ｂをプロセス分類装置１に入力すればよい。
【００４５】
５．プロセスの分類方法
本実施形態におけるプロセスの分類方法について図４のフローチャートを用いて説明する。まず、プロセス分類装置１は、ソフトウェアのプログラムを読み込む（Ｓ１０１）。このとき、プロセス情報取得部１１０は、複数のプロセスと、プロセスとプロセスとの間の関係情報と、を読み取る。
【００４６】
通常、プログラムは、複数のサブルーチンを有している。サブルーチンは、本実施形態でいうところのグループに該当する。そのため、読み取った段階で、既にグループに分けられた状態である。本実施形態のプロセス分類装置１は、この読み込んだ状態を初期状態として用いることができる。または、この読み込んだ状態以外の初期状態を用いることもできる。
【００４７】
次に、入力受付部１３０の定数入力受付部１３１が、適応関数の計算に用いる定数の入力を受け付ける（Ｓ１０２）。例えば、ユーザーが入力部２０に定数ａ、ｂの値を直接入力する。もしくは、定数ａ、ｂを入力したファイルを予め用意しておき、そのファイルから定数ａ、ｂの値を読み込むこととしてもよい。または、定数ａ、ｂ以外で、適応関数の計算に用いる定数の入力を受け付けてもよい。例えば、定数ｃ１、ｃ２等である。
【００４８】
次に、プロセス分類部１２０が、適応関数の計算を行う（Ｓ１０３）。そして、適応関数の値が収束していれば（Ｓ１０４：Ｙｅｓ）、Ｓ１０５に進み、適応関数の値が収束していなければ（Ｓ１０４：Ｎｏ）、Ｓ１０３に戻り再び適応関数を計算する。そして、適応関数が収束したところで（Ｓ１０４：Ｙｅｓ）、グループ化した結果を表示する（Ｓ１０５）。このグループ化した結果については、メモリＭ１等に保持するとよい。
【００４９】
この適応関数の計算に際して、複数の初期条件を用意する。例えば、１０個の初期条件である。次に、１０個の初期条件のそれぞれに対して適応関数を計算する。そして、１０個の適応関数のうち、最も大きい適応関数の値の初期条件に近い複数の条件を用意する。例えば、５個の２次条件である。そして、５個の２次条件に対して適応関数を計算する。そして、５個の適応関数のうち、最も大きい適応関数を採用する。適応関数を最大とするときのグループが、最も好適なグループである。この最も好適なグループは、ａ、ｂ等の入力する値によって変わる。上記は、あくまで例であり、用意する初期条件、２次条件の個数は、これ以外の数値を用いてもよい。ここで、初期条件、２次条件とは、各プロセスをどのグループに属させるかを指定するバリエーションである。また、３次条件以上を用いて反復計算を実施してもよい。
【００５０】
６．グループ化の実行（具体例）
６−１．グループ化後の状態
図５は、本実施形態のプロセス分類装置１により、ロボットアームの制御ソフトウェアのプログラムを分類した後の状態を例示する図である。つまり、プロセス分類装置１は、例えば、図１の状態から図５の状態にグループ化する。プロセス分類装置１は、図５に示すように、サブシステムＳ１からサブシステムＳ９までの９個に分類した。
【００５１】
ここで、サブシステムＳ１は、軌道関数作成グループである。サブシステムＳ２は、移動座標取得計算グループである。サブシステムＳ３は、角度・座標系変換グループである。サブシステムＳ４は、Ｙ座標位置調整グループである。サブシステムＳ５は、Ｘ座標位置調整グループである。サブシステムＳ６は、逆運動学計算１グループである。サブシステムＳ７は、逆運動学計算２グループである。サブシステムＳ８は、逆運動学計算３グループである。サブシステムＳ９は、角度ラジアン変換・結果出力グループである。このように、各々のサブシステムが各々のグループに対応している。なお、逆運動学計算については、３つのグループに分かれている。
【００５２】
図６は、サブシステムＳ１の詳細を示す。図６に示すように、サブシステムＳ１の内部では、矢印Ｆ２、Ｆ３、Ｆ４、Ｆ５、Ｆ６で表される戻りが存在してる。前述のとおり、グループ化の前後で、全体図ＳＴ１における戻りの総数は変わらない。そのため、サブシステムの内部に戻りを閉じ込める代わりに、サブシステムをまたぐような戻りを生じさせないようにすることができる。
【００５３】
図７は、サブシステムＳ３、Ｓ４、Ｓ５の内部を表示したものである。サブシステムＳ３、Ｓ４、Ｓ５の内部には、戻りは含まれていない。
【００５４】
６−２．グループ化の効果
図５は、「戻り」を優先した場合の結果である。そのため、図５には、あるサブシステムから他のサブシステムに戻る「戻り」は存在しない。なお、グループ化の前後で、全体図ＳＴ１における戻りの総数は変わらない。その代わりに、例えば、図６に示すように、サブシステムＳ１の中のあるプロセスから別のプロセスに戻る「戻り」は存在する。つまり、「戻り」はグループの内部に閉じ込められており、グループをまたぐ「戻り」は存在しない。
【００５５】
本実施形態のグループ化により、上記のように、簡潔で明確なグループ分けを実施することができた。また、グループをまたぐ「戻り」がほとんど存在しない。つまり、サブシステムの独立性が高い。そのため、このソフトウェアの開発する場合には、サブシステムＳ１〜Ｓ９のいずれを先に開発してもよい。もちろん、別々の開発グループが別個に開発を行ってもよい。また、プログラムのテストを実施する際にも、サブシステムＳ１〜Ｓ９を単独で実施することができる。また、下流のサブシステムのテストを実施した後に、上流のサブシステムのテストを実施する必要はない。
【００５６】
７．Ｎｅｗｍａｎ法によるグループ化
図８に、従来のＮｅｗｍａｎ法によるグループ化を実施した結果を示す。図８に示すように、関連性の高いプロセスを複数のグループに分類することができた。しかし、図８の矢印Ｆ７、Ｆ８に示すように、グループにまたがる「戻り」がある程度発生してしまう。そのため、サブシステムの単独でのテストを実施することは容易ではない。また、担当者ごとの分担が本実施形態ほど容易ではない。
【００５７】
８．本実施形態の効果
一般に、プログラムは、開発が進むにつれて巨大化する。また、開発が進むにつれて、初期に導入したパラメーターとは異なるパラメーターを導入することも多い。そこで、本実施形態のグループ化を実施することにより、プログラムのうち、関連性の高いプログラム群を一つのグループとして取り扱うこととする。これにより、プログラムの可読性は、向上する。また、１つのプロジェクトを、複数人で分担する場合に、担当者を決めやすい。例えば、グループ化した１つのグループを１人の担当者が開発することとすればよいからである。また、プログラム全体をテストする際にも、１つのグループ毎にテストを順に実施することができる。そのため、デバッグの作業も効率化することができる。
【００５８】
９．変形例
９−１．記憶媒体
本実施形態では、プロセス分類装置１およびプロセス分類プログラムＰ１について説明した。しかし、プロセス分類プログラムＰ１の記録された記憶媒体にももちろん適用することができる。この記憶媒体は、プロセス分類プログラムＰ１を記憶したコンピューター読み取り可能な記憶媒体である。記憶媒体として、例えば、ＣＤＲＯＭ、ＤＶＤＲＯＭ等が挙げられる。もちろん、これ以外のものであってもよい。
【００５９】
９−２．依存元および依存先
本実施形態では、依存元と依存先とを有する依存関係情報を用いることとした。しかし、依存元と依存先とに分かれていない双方向の関係であっても、同様に適用することができる。
【００６０】
１０．本実施形態のまとめ
以上詳細に説明したように、本実施形態のプロセス分類装置１は、第１の適応関数ｆ１（Ｑｍ）を用いて多数のプロセスをグループ化する装置である。これにより、プロセス間の関連性と「戻り」の数との双方を考慮してグループ化を実施することができる。このグループ化により、多数のプロセスやプログラムの可読性を向上させることができる。また、工程やプログラムの分割を好適に行うことができる。そのため、プログラムの開発を各担当者に好適に分配して開発を行うことができる。そして、テストも順に実施することができる。
【００６１】
なお、本実施例は単なる例示にすぎない。したがって当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。
【００６２】
（第２の実施形態）
第２の実施形態について説明する。本実施形態では、第１の実施形態の適応関数とは異なる適応関数を用いる。それ以外の点については、第１の実施形態と同様である。そのため、適応関数について説明する。
【００６３】
１．適応関数（フィットネス関数）
１−１．第２の適応関数
本実施形態では、次の第２の適応関数を用いる。
【数８】
2015191566.tif 000010
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数（自然数）
ｎ：２以上の自然数
この第２の適応関数ｆ２（Ｑｍ）を用いることにより、グループ数の増減とプロセスの分類とを同時に行うことができる。
【００６４】
１−２．グループ数（第２の適応関数）
式（３）は、グループ関数Ｇｒｍを有している。グループ関数Ｇｒｍは、定数ｃ３を有している。そして、定数ｃ３については、ユーザーから入力を受けるようになっている。変数Ｇｒが定数ｃ３に近いほど、グループ関数Ｇｒｍは大きい値をとる。そのため、反復計算を繰り返すにつれ、変数Ｇｒは、定数ｃ３に近い自然数となる。
【００６５】
例えば、ユーザーがグループ数を「５」程度にしたいと考えた場合に、定数ｃ３に「５」を入力する。グループ数入力受付部１３２は、ユーザーによる「５」の入力を受け付ける。そして、グループ数入力受付部１３２は、定数ｃ３に「５」を入力する。
【００６６】
第２の適応関数ｆ２（Ｑｍ）を用いて、反復計算を行うにしたがって、変数Ｇｒは、例えば、「４」、「５」、「６」等の値をとる。モジュラリティＱや、フィードバック数ｆｂ１の影響もあるため、必ずしも変数Ｇｒの値が「５」のままであるとは限らない。グループ関数Ｇｒｍの関数形を考えると、変数Ｇｒの値は、「５」に近い自然数になりやすい傾向がある。
【００６７】
このようにプロセス分類部１２０は、複数のプロセスが属するグループの数を増減させつつ、グループ化を実施する。すなわち、プロセス分類部１２０は、グループ数を増減させるグループ数増減機能を有する。
【００６８】
２．グループ化の実行（具体例）
図９に第２の適応関数を用いた結果を示す。図９は、式（３）において、定数ｃ３の値を５とした場合の結果である。図９に示すように、サブシステムが６個作成されている。
【００６９】
図１０は、サブシステムのうち、逆運動学計算・角度ラジアン変換・結果出力グループを展開したところを示す図である。
【００７０】
第２の適応関数ｆ２（Ｑｍ）は、第１の適応関数ｆ１（Ｑｍ）と関数形が異なっている。しかし、モジュラリティＱおよびフィードバック数ｆｂ１の双方を考慮したグループ化を実施することができる。また、第２の適応関数ｆ２（Ｑｍ）を用いることにより、ユーザーは、グループ数の大まかな指定を行うことができる。
【００７１】
（第３の実施形態）
第３の実施形態について説明する。本実施形態では、第１の実施形態の適応関数とは異なる適応関数を用いる。それ以外の点については、第１の実施形態と同様である。そのため、適応関数について説明する。
【００７２】
１．適応関数（フィットネス関数）
１−１．第３の適応関数
本実施形態では、次の第３の適応関数を用いる。
【数９】
2015191566.tif 000011
ｆｂ１：下流のグループのプロセスから上流のグループのプロセスに戻るフィードバックの個数
Ｇｒ：グループ数
ａ，ｂ：正の定数
ｃ１：正の定数
ｃ２：正の定数
ｃ３：正の定数（自然数）
この第３の適応関数ｆ３（Ｑｍ）を用いることにより、グループ数の増減とプロセスの分類とを同時に行うことができる。
【００７３】
１−２．グループ数（第３の適応関数）
式（５）は、グループ関数Ｇｒｍを有している。グループ関数Ｇｒｍは、定数ｃ３を有している。そして、定数ｃ３については、ユーザーから入力を受けるようになっている。変数Ｇｒが定数ｃ３に近いほど、グループ関数Ｇｒｍは大きい値をとる。そのため、反復計算を繰り返すにつれ、変数Ｇｒは、定数ｃ３に近い自然数となる。このように、グループ関数Ｇｒｍにより影響を受ける点は、第２の実施形態と同様である。
【００７４】
第３の適応関数ｆ３（Ｑｍ）は、第２の適応関数ｆ２（Ｑｍ）と関数形が異なっている。しかし、モジュラリティＱおよびフィードバック数ｆｂ１の双方を考慮したグループ化を実施することができる。また、ユーザーは、グループ数の大まかな指定をすることもできる。
【００７５】
（第４の実施形態）
第４の実施形態について説明する。第１の実施形態から第３の実施形態まででは、ロボットアームの制御ソフトウェアのプログラムをグループ化することとした。しかし、その他に、工業製品の開発工程のグループ化を実施してもよい。
【００７６】
例えば、冷蔵庫の開発工程をグループ化することを考える。この開発工程では、前工程の後に後工程を実施するようになっている。そして、前工程と後工程とは、矢印で表される結線で接続されている。また、後工程の結果を前工程にフィードバックする「戻り」がある。そのため、第１の実施形態から第３の実施形態までで説明した第１の適応関数ｆ１（Ｑｍ）や、第２の適応関数ｆ２（Ｑｍ）や、第３の適応関数ｆ３（Ｑｍ）を用いてグループ化することができる。
【００７７】
例えば、このようなグループ化を実施することにより、グループ間の戻りがなく、グループ数が「７」という結果が得られたとする。すると、開発の人員を７つのグループに分けて、各々のグループが開発することとすればよい。このように、あるグループの結果を他のグループにフィードバックすることにより、再度同じプロセスを踏襲することを回避することができる。ただし、同じグループ内で同じプロセスを何度もトライする場合もある。また、あるグループの結果を他のグループにフィードバックする戻りが多少存在するとしても、その戻りの数を低減させることができれば、開発期間の短縮という効果は得られる。
【００７８】
このように、後工程の結果を前工程にフィードバックする戻りを好適に管理することができる。また、開発期間の短縮を行うことができる。以上のように、工業製品の開発工程を設計する設計工程を好適に行うことができる。
【００７９】
また、上記のグループ化について、同様に、シミュレーションモデルに適用することもできる。上流から下流へ実行される多数のプロセスがあり、戻りが存在するからである。
【符号の説明】
【００８０】
Ｐ１…プログラム
１…プロセス分類装置
１０…処理装置
２０…入力部
３０…表示部
Ｃ１…ＣＰＵ
Ｍ１…メモリ
１００…制御部
１１０…プロセス情報取得部
１２０…プロセス分類部
１３０…入力受付部
２００…不揮発性メモリ
【図１】
2015191566.tif 000018
【図２】
2015191566.tif 000019
【図３】
2015191566.tif 000020
【図４】
2015191566.tif 000021
【図５】
2015191566.tif 000022
【図６】
2015191566.tif 000023
【図７】
2015191566.tif 000024
【図８】
2015191566.tif 000025
【図９】
2015191566.tif 000026
【図１０】
2015191566.tif 000027