(57)【要約】【課題】高品質なシステムを設計することができる設計支援装置、設計支援方法、及び設計支援プログラムを提供すること。【解決手段】設計支援装置は、複数の装置を含むシステムが取り得る状態の状態遷移と、前記複数の装置の中の第１装置が取り得る状態の状態遷移と、前記複数の装置の中の第２装置が取り得る状態の状態遷移との少なくとも２つを組み合わせた複合状態遷移図を生成する生成部と、前記生成部により生成された前記複合状態遷移図に基づいて、前記システムの全体の運用の流れを検証する検証部と、を備える。【選択図】図２
2020102198.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置を含むシステムが取り得る状態の状態遷移と、前記複数の装置の中の第１装置が取り得る状態の状態遷移と、前記複数の装置の中の第２装置が取り得る状態の状態遷移との少なくとも２つを組み合わせた複合状態遷移図を生成する生成部と、
前記生成部により生成された前記複合状態遷移図に基づいて、前記システムの全体の運用の流れを検証する検証部と、
を備える設計支援装置。
【請求項２】
前記生成部は、前記第１装置が取り得る状態を第１軸とし、前記第２装置が取り得る状態を前記第１軸と異なる第２軸として表現した表の中で、前記システムが取り得る状態が、前記第１装置の状態遷移の遷移順序と前記第２装置の状態遷移の遷移順序とに基づいて方向付けられた有向グラフを、前記複合状態遷移図として生成する、
請求項１に記載の設計支援装置。
【請求項３】
前記生成部は、前記第１装置が取り得る状態を第１軸とし、前記第２装置が取り得る状態を前記第１軸と異なる第２軸として表現した表の中で、前記複数の装置に含まれ、前記第１装置および前記第２装置と異なる第３装置が取り得る状態が、前記第１装置の状態遷移の遷移順序と前記第２装置の状態遷移の遷移順序とに基づいて方向付けられた有向グラフを、前記複合状態遷移図として生成する、
請求項１または２に記載の設計支援装置。
【請求項４】
前記検証部は、前記システムの全体の運用の流れの中に、ある第１状態から、前記第１状態に方向付けられていない第２状態へと状態遷移する流れが含まれている場合、前記システムの全体の運用の流れが正しくないと判定する、
請求項２または３に記載の設計支援装置。
【請求項５】
前記システムは、冗長化されており、
前記第１装置および前記第２装置のうちいずれか一方の装置は主系の装置であり、他方の装置は従系の装置である、
請求項１から４のうちいずれか一項に記載の設計支援装置。
【請求項６】
情報を表示する表示部と、
前記検証部の検証結果を前記表示部に表示させる表示制御部と、を更に備える、
請求項１から５のうちいずれか一項に記載の設計支援装置。
【請求項７】
コンピュータが、
複数の装置を含むシステムが取り得る状態の状態遷移と、前記複数の装置の中の第１装置が取り得る状態の状態遷移と、前記複数の装置の中の第２装置が取り得る状態の状態遷移との少なくとも２つを組み合わせた複合状態遷移図を生成し、
前記生成した前記複合状態遷移図に基づいて、前記システムの全体の運用の流れを検証する、
設計支援方法。
【請求項８】
コンピュータに、
複数の装置を含むシステムが取り得る状態の状態遷移と、前記複数の装置の中の第１装置が取り得る状態の状態遷移と、前記複数の装置の中の第２装置が取り得る状態の状態遷移との少なくとも２つを組み合わせた複合状態遷移図を生成する処理と、
前記生成した前記複合状態遷移図に基づいて、前記システムの全体の運用の流れを検証する処理と、
を実行させるための設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、及び設計支援プログラムに関する。
本願は、２０１８年１２月２０日に、日本に出願された特願２０１８−２３８８７８号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
複数の装置を組み合わせて一つのシステムとする場合、そのシステムの動作の流れを、フローチャートやアクティビティ図を用いて表現したり、システムの状態やその遷移を、状態遷移図を用いて図式化したりする場合がある。これに関連し、状態遷移を表すフローチャートのデータ階層から必要な状態を抽出し、該当するイベントから状態遷移の内容を抽出して、自動的に状態遷移図を生成する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２９６３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
システムが複数の装置によって構成される場合、複数の装置のそれぞれについて、状態とその遷移が存在することになる。この場合、複数の装置のそれぞれの状態が相互に干渉し得る。しかしながら、従来の技術では、ある一つのシステムを構成する複数の装置の状態が相互に干渉したり、システムと各装置との状態が相互に干渉したりすることを検知することができず、システムの動作を十分に検証できていなかった。この結果、システムに不具合が生じる場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、高品質なシステムを設計することができる設計支援装置、設計支援方法、及び設計支援プログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、複数の装置を含むシステムが取り得る状態の状態遷移と、前記複数の装置の中の第１装置が取り得る状態の状態遷移と、前記複数の装置の中の第２装置が取り得る状態の状態遷移との少なくとも２つを組み合わせた複合状態遷移図を生成する生成部と、前記生成部により生成された前記複合状態遷移図に基づいて、前記システムの全体の運用の流れを検証する検証部と、を備える設計支援装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、高品質なシステムを設計することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の設計支援装置１００を含む設計支援システム１の構成の一例を示す図である。
【図２】第１実施形態に係る設計支援装置１００の構成の一例を示す図である。
【図３】システム状態遷移図１３２の一例を示す図である。
【図４】第１サブシステム状態遷移図１３４の一例を示す図である。
【図５】第２サブシステム状態遷移図１３６の一例を示す図である。
【図６】状態対応表１３８の一例を示す図である。
【図７】制御部１１０により実行される一連の処理の一例を示すフローチャートである。
【図８】複合状態遷移図の生成の方法を説明するための図である。
【図９】複合状態遷移図の生成の方法を説明するための図である。
【図１０】制御部１１０によりＳ１１０の処理として実行される具体的な処理の一例を示すフローチャートである。
【図１１】宇宙機のシナリオの一例を示す図である。
【図１２】複合状態遷移図における、ある一つの状態遷移を説明するための図である。
【図１３】表示部１０４に表示させる検証結果の一例を示す図である。
【図１４】第３サブシステム状態遷移図１４０の一例を示す図である。
【図１５】第２実施形態に係る状態対応表１３８の一例を示す図である。
【図１６】第２実施形態に係る複合状態遷移図の一例を示す図である。
【図１７】システム状態遷移図１３２の他の例を示す図である。
【図１８】第１サブシステム状態遷移図１３４の他の例を示す図である。
【図１９】第２サブシステム状態遷移図１３６の他の例を示す図である。
【図２０】状態対応表１３８の他の例を示す図である。
【図２１】複合状態遷移図の他の例を示す図である。
【図２２】システム状態遷移図１３２の他の例を示す図である。
【図２３】第１サブシステム状態遷移図１３４の他の例を示す図である。
【図２４】状態対応表１３８の他の例を示す図である。
【図２５】複合状態遷移図の他の例を示す図である。
【図２６】第２サブシステム状態遷移図１３６の他の例を示す図である。
【図２７】状態対応表１３８の他の例を示す図である。
【図２８】複合状態遷移図の他の例を示す図である。
【図２９】サブシステム間の状態対応表１３８＃を生成する方法を説明するための図である。
【図３０】状態遷移の一部が削除された複合状態遷移図の一例を示す図である。
【図３１】システム状態遷移図１３２の他の例を示す図である。
【図３２】第１サブシステム状態遷移図１３４の他の例を示す図である。
【図３３】第２サブシステム状態遷移図１３６の他の例を示す図である。
【図３４】状態対応表１３８の他の例を示す図である。
【図３５】複合状態遷移図の他の例を示す図である。
【図３６】変更された状態対応表１３８の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、本発明の設計支援装置、設計支援方法、及び設計支援プログラムの実施形態について説明する。本実施形態における設計支援装置は、メカトロニクス機器（製品）の設計を支援する装置である。メカトロニクス機器は、例えば、ＣＰＵ（Central Processing Unit）などの電子回路や、アクチュエータ、センサなどを備えた複数の装置（サブシステムとも称する）によって構成されるシステムである。具体的には、メカトロニクス機器は、人工衛星や宇宙探査機といった宇宙機であってよい。また、メカトロニクス機器は、カメラやスマートフォン、冷蔵庫といったエンドユーザ向けの家電や、ロボットや自動車といった産業機械であってもよい。以下、一例として、設計支援装置の設計支援対象とするメカトロニクス機器が宇宙機であるものとして説明する。また、説明を簡略化するために、設計支援対象である宇宙機は、少なくとも２つ以上の互いに機能が異なる装置を組み合わせることで構成されるものとし、２つの装置のうち一方の装置を「第１サブシステムＡ」と称し、他方の装置を「第２サブシステムＢ」と称して説明する。第１サブシステムＡは、「第１装置」の一例であり、第２サブシステムＢは、「第２装置」の一例である。
【００１０】
＜第１実施形態＞
図１は、第１実施形態の設計支援装置１００を含む設計支援システム１の構成の一例を示す図である。図示のように、設計支援システム１は、複数の端末装置１０と、設計支援装置１００とを備える。これらの装置は、ネットワークＮＷに接続される。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）などである。
【００１１】
端末装置１０は、例えば、メカトロニクス機器の一つである宇宙機を設計する設計者が操作可能な端末装置である。例えば、端末装置１０は、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータといった、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、ＮＩＣ（Network Interface Card）などのネットワークカード、無線通信モジュールなどを含む。端末装置１０では、ウェブブラウザやアプリケーションプログラムなどのＵＡ（User Agent）が起動し、各種入力操作を受け付ける。
【００１２】
例えば、宇宙機のような大規模なシステムを設計する場合、複数の設計者が分担してシステムの各装置を設計することが多い。本実施形態においても、各端末装置１０を利用する設計者が、宇宙機を構成する各装置を設計するものとする。例えば、設計の上流を担当する設計者Ａは、宇宙機の全体の運用項目を定め、基本的な運用と機能の配分を決定し、設計の下流を担当する複数の設計者Ｂに、宇宙機を構成する各装置の設計を依頼する。この依頼を受けた設計者Ｂは、設計者Ａによって決定された運用および機能の配分に従って、自らが担当する装置の機能を詳細化し、その結果を設計者Ａにレビューさせる。設計者Ａは、設計の下流を担当する複数の設計者Ｂのそれぞれの設計結果を統合し、自らが設計した宇宙機の全体の運用とのトレーサビリティを取り、宇宙機というシステム全体での動作の成立性を確認する。このような一連のシステム設計の中で、各設計者は、端末装置１０を操作して、各自の設計結果を設計支援装置１００に送信する。
【００１３】
設計支援装置１００は、例えば、設計者によって設計された宇宙機の動作を仮想的にシミュレートすることで、宇宙機の設計が正しいものであるのかを検証する。設計支援装置１００は、宇宙機の設計の検証結果を端末装置１０にフィードバックすることで、端末装置１０を利用する設計者に、宇宙機の設計を改善させる。
【００１４】
［設計支援装置の構成］
以下、設計支援装置１００の構成について説明する。図２は、第１実施形態に係る設計支援装置１００の構成の一例を示す図である。図示のように、第１実施形態に係る設計支援装置１００は、例えば、通信部１０２と、表示部１０４と、入力部１０６と、制御部１１０と、記憶部１３０とを備える。設計支援装置１００は、単一の装置であってもよいし、ネットワークＮＷを介して接続された複数の装置が互いに協働して動作するシステムであってもよい。すなわち、設計支援装置１００は、分散コンピューティングやクラウドコンピューティングを利用したシステムに含まれる複数のコンピュータ（プロセッサ）によって実現されてもよい。
【００１５】
通信部１０２は、例えば、ＮＩＣ（Network Interface Card）などの通信インターフェースやＤＭＡ（Direct Memory Access）コントローラを含む。通信部１０２は、ネットワークＮＷを介して、各端末装置１０と通信する。
【００１６】
表示部１０４は、各種の情報を表示するユーザインターフェースである。例えば、表示部１０４は、制御部１１０によって生成された画像を表示したり、設計支援装置１００のユーザからの各種の入力操作を受け付けるためのＧＵＩ（Graphical User Interface）などを表示したりする。例えば、表示部１０４は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electroluminescence）ディスプレイなどである。
【００１７】
入力部１０６は、ユーザから各種の入力操作を受け付けるユーザインターフェースである。入力部１０６は、入力操作を受け付けると、その受け付けた入力操作を電気信号に変換して制御部１１０に出力する。例えば、入力部１０６は、マウスやキーボード、トラックボール、スイッチ、ボタン、ジョイスティック、タッチパネルなどにより実現される。入力部１０６がタッチパネルである場合、表示部１０４は入力部１０６と一体として形成されてよい。
【００１８】
制御部１１０は、例えば、取得部１１２と、状態遷移図生成部１１４と、検証部１１６と、出力制御部１１８とを備える。制御部１１０の構成要素は、例えば、ＣＰＵやＧＰＵ（Graphics Processing Unit）などのプロセッサが記憶部１３０に格納されたプログラムを実行することにより実現される。また、制御部１１０の構成要素の一部または全部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００１９】
記憶部１３０は、例えば、ＨＤＤ（Hard Disc Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などにより実現される。記憶部１３０は、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、システム状態遷移図１３２、第１サブシステム状態遷移図１３４、第２サブシステム状態遷移図１３６、状態対応表１３８などを格納する。
【００２０】
図３は、システム状態遷移図１３２の一例を示す図である。図示のように、システム状態遷移図１３２は、複数のシナリオに対して、宇宙機のような一つのシステムの状態遷移図が対応付けられたデータであってもよいし、複数のシナリオのそれぞれに対して、各システムの状態遷移図が対応付けられたデータであってもよい。シナリオとは、システムの一連の動作を定義したものであり、例えば、システムが人工衛星のような宇宙機である場合、地上の監視装置によって送信された指令コマンドに応じて自機の姿勢を変え、その姿勢を維持した状態である対象物を観測する、といった宇宙機の動作の流れを表すものである。一般的に、宇宙機には、複数の目的（ミッション）が課されており、その目的ごとにシナリオが存在する。従って、システム状態遷移図１３２は、目的に応じたシナリオごとに、システムが取り得る状態（図中Ｓ１、Ｓ２、Ｓ３など）を定義した状態遷移図が対応付けられている。例えば、システム状態遷移図１３２における各シナリオの状態遷移図は、システムを設計する複数の設計者のうち、システムの基本的な運用や機能の配分を決定する上流過程の設計者によって決定される。
【００２１】
図４は、第１サブシステム状態遷移図１３４の一例を示す図である。図示のように、第１サブシステム状態遷移図１３４は、複数のシナリオに対して、ある一つの第１サブシステムＡが取り得る状態（図示の例ではＡ１、Ａ２、Ａ３）を定義した状態遷移図が対応付けられたデータであってもよいし、複数のシナリオのそれぞれに対して、各第１サブシステムＡの状態遷移図が対応付けられたデータであってもよい。例えば、第１サブシステムＡは、カメラなどを含むミッション系の装置であってよい。例えば、第１サブシステム状態遷移図１３４における各シナリオの状態遷移図は、システムを設計する複数の設計者のうち、第１サブシステムＡの設計を担う下流過程の設計者によって決定される。
【００２２】
図５は、第２サブシステム状態遷移図１３６の一例を示す図である。図示のように、第２サブシステム状態遷移図１３６は、複数のシナリオに対して、ある一つの第２サブシステムＢが取り得る状態（図中Ｂ１、Ｂ２、Ｂ３など）を定義した状態遷移図が対応付けられたデータであってもよいし、複数のシナリオのそれぞれに対して、各第２サブシステムＢの状態遷移図が対応付けられたデータであってもよい。例えば、第２サブシステムＢは、姿勢制御系の装置であってよい。例えば、第２サブシステム状態遷移図１３６における各シナリオの状態遷移図は、システムを設計する複数の設計者のうち、第２サブシステムＢの設計を担う下流過程の設計者によって決定される。
【００２３】
図６は、状態対応表１３８の一例を示す図である。図示のように、状態対応表１３８は、横軸をシステムが取り得る状態Ｓとし、縦軸を第１サブシステムＡが取り得る状態Ａと第２サブシステムＢが取り得る状態Ｂとした表である。図示の例では、システムが状態Ｓ１であるとき、第１サブシステムＡは状態Ａ１およびＡ３を取ることができ、第２サブシステムＢは状態Ｂ１およびＢ３を取ることができる、ということを表し、システムが状態Ｓ２であるとき、第１サブシステムＡは状態Ａ１およびＡ２を取ることができ、第２サブシステムＢは状態Ｂ２およびＢ３を取ることができる、ということを表し、システムが状態Ｓ３であるとき、第１サブシステムＡは状態Ａ２およびＡ３を取ることができ、第２サブシステムＢは状態Ｂ３のみを取ることができる、ということを表している。このような状態対応表１３８は、例えば、システム全体の設計を担う上流の設計者によって決定される。各サブシステムの状態は、その状態が存在し得る場合には「１」、その状態が存在し得ない場合には「０」として表されている。すなわち、各サブシステムの状態は、１または０の二値によって表される。
【００２４】
図２の説明に戻り、取得部１１２は、通信部１０２を介して、上流担当の設計者が利用する端末装置１０からシステム状態遷移図１３２と状態対応表１３８を取得し、第１サブシステムＡの設計を担う設計者が利用する端末装置１０から第１サブシステム状態遷移図１３４を取得し、第２サブシステムＢの設計を担う設計者が利用する端末装置１０から第２サブシステム状態遷移図１３６を取得し、これらを記憶部１３０に記憶させる。
【００２５】
状態遷移図生成部１１４は、システム状態遷移図１３２、状態対応表１３８、第１サブシステム状態遷移図１３４、および第２サブシステム状態遷移図１３６に基づいて、システムの一つである宇宙機の状態遷移図と、第１サブシステムＡの状態遷移図と、第２サブシステムＢの状態遷移図とを複合的に組み合わせた状態遷移図（以下、複合状態遷移図と称する）を生成する。
【００２６】
検証部１１６は、状態遷移図生成部１１４により生成された複合状態遷移図に基づいて、システムの一つである宇宙機の全体の運用の流れ、すなわちシナリオを検証する。
【００２７】
出力制御部１１８は、検証部１１６による宇宙機のシナリオの検証結果を示す情報を、通信部１０２を介して端末装置１０に送信したり、表示部１０４に表示させたりする。出力制御部１１８は、「表示制御部」の一例である。
【００２８】
［制御部の処理フロー］
以下、フローチャートに即して制御部１１０の一連の処理の流れを説明する。図７は、制御部１１０により実行される一連の処理の一例を示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてよい。また、設計支援装置１００が、分散コンピューティングやクラウドコンピューティングを利用したシステムに含まれる複数のコンピュータによって実現される場合、本フローチャートの処理の一部または全部は、複数のコンピュータによって並列処理されてよい。
【００２９】
まず、状態遷移図生成部１１４は、入力部１０６などを介して、ユーザが検証するシナリオを選択するまで待機し（ステップＳ１００）、ユーザによって検証するシナリオが選択されると、記憶部１３０から、そのシナリオに基づく状態遷移図を選択する（ステップＳ１０２）。例えば、検証対象のシナリオとしてシナリオＡがユーザによって選択された場合、状態遷移図生成部１１４は、システム状態遷移図１３２の中から、シナリオＡに対応付けられた宇宙機の状態遷移図を選択し、第１サブシステム状態遷移図１３４の中から、シナリオＡに対応付けられた第１サブシステムＡの状態遷移図を選択し、第２サブシステム状態遷移図１３６の中から、シナリオＡに対応付けられた第２サブシステムＢの状態遷移図を選択する。
【００３０】
次に、出力制御部１１８は、Ｓ１０２の処理で状態遷移図生成部１１４によって選択された各状態遷移図を表示部１０４に表示させる（ステップＳ１０４）。また、出力制御部１１８は、状態遷移図生成部１１４によって選択された各状態遷移図を、通信部１０２を介して端末装置１０に送信することで、各端末装置１０の画面に状態遷移図を表示させてもよい。
【００３１】
次に、状態遷移図生成部１１４は、Ｓ１０２の処理で選択した宇宙機の状態遷移図と、状態対応表１３８と、第１サブシステムＡの状態遷移図と、第２サブシステムＢの状態遷移図とに基づいて、これらの状態遷移図を複合的に組み合わせた複合状態遷移図を生成する（ステップＳ１０６）。
【００３２】
図８および図９は、複合状態遷移図の生成の方法を説明するための図である。図示のように、例えば、状態遷移図生成部１１４は、縦軸を第１サブシステムＡが取り得る各状態とし、横軸を第２サブシステムＢが取り得る各状態とした表の中に、それらサブシステムを組み合わせた宇宙機が取り得る状態を埋めたグラフを生成する。例えば、図６に例示した状態対応表１３８に従った場合、第１サブシステムＡの状態Ａ１と、第２サブシステムＢの状態Ｂ１との双方が併存する宇宙機の状態はＳ１であるため、状態Ａ１のレコードに含まれる複数のフィールドのうち、状態Ｂ１のカラムに含まれるフィールドには、状態Ｓ１がプロットされる。また、図６に例示した状態対応表では、第１サブシステムＡの状態Ａ２と、第２サブシステムＢの状態Ｂ１との双方が併存する宇宙機の状態は存在しないため、状態Ａ２のレコードに含まれる複数のフィールドのうち、状態Ｂ１のカラムに含まれるフィールドには、宇宙機が取り得るいずれの状態もプロットされない。また、図６に例示した状態対応表では、第１サブシステムＡの状態Ａ３と、第２サブシステムＢの状態Ｂ１との双方が併存する宇宙機の状態はＳ１であるため、状態Ａ３のレコードに含まれる複数のフィールドのうち、状態Ｂ１のカラムに含まれるフィールドには、状態Ｓ１がプロットされる。このように、状態遷移図生成部１１４は、縦軸を状態Ａとし、横軸を状態Ｂとした表の中に、宇宙機が取り得る状態Ｓをプロットしていくことで、宇宙機が取り得る状態Ｓの互いの関係性をグラフ化する。
【００３３】
状態遷移図生成部１１４は、縦軸を状態Ａとし横軸を状態Ｂとした表の中で、宇宙機が取り得る状態Ｓをグラフ化すると、図９に例示するように、その各状態Ｓをノードとし、それらのノードを、各状態Ｓの互いの状態遷移の関係を表した方向性をもつエッジで繋いだ有向グラフを、複合状態遷移図とする。
【００３４】
例えば、状態Ａ１のレコードに含まれ、且つ状態Ｂ１のカラムに含まれるフィールド（最上行最左列のフィールド）の状態Ｓ１（図中Ｓ１Ａ１−Ｂ１）と、状態Ａ１のレコードに含まれ、且つ状態Ｂ２のカラムに含まれるフィールド（最上行中央列のフィールド）の状態Ｓ２（図中Ｓ２Ａ１−Ｂ２）とに着目したとする。ここで、図３に例示する宇宙機の状態遷移図では、状態Ｓ１から状態Ｓ２への方向の遷移と、状態Ｓ２から状態Ｓ１への方向の遷移とが許容されているものの、図５に例示する第２サブシステムＢの状態遷移図では、状態Ｂ１から状態Ｂ２への一方向の遷移のみが許容されている。従って、状態遷移図生成部１１４は、縦軸を状態Ａとし横軸を状態Ｂとした表の中では、着目した状態Ｓ１Ａ１−Ｂ１と状態Ｓ２Ａ１−Ｂ２とを互いに接続するエッジを、状態Ｓ１Ａ１−Ｂ１から状態Ｓ２Ａ１−Ｂ２への遷移のみを許容していることを示す一方向の矢印とする。
【００３５】
また、例えば、状態Ｓ２Ａ１−Ｂ２と、状態Ａ２のレコードに含まれ、且つ状態Ｂ２のカラムに含まれるフィールド（中央行中央列のフィールド）の状態Ｓ２（図中Ｓ２Ａ２−Ｂ２）とに着目したとする。ここで、図３に例示する宇宙機の状態遷移図では、状態Ｓ２から状態Ｓ２への方向の遷移が許容されており、図４に例示する第１サブシステムＡの状態遷移図では、状態Ａ１から状態Ａ２への一方向の遷移のみが許容されている。従って、状態遷移図生成部１１４は、縦軸を状態Ａとし横軸を状態Ｂとした表の中では、着目した最上行中央列のフィールドの状態Ｓ２Ａ１−Ｂ２と中央行中央列のフィールドの状態Ｓ２Ａ２−Ｂ２とを互いに接続するエッジを、一方向への遷移のみを許容していることを示す一方向の矢印とする。
【００３６】
このように、状態遷移図生成部１１４は、縦軸を状態Ａとし横軸を状態Ｂとした表において、宇宙機が取り得る各状態Ｓをノードとしてプロットしていき、第１サブシステムＡの状態遷移の順序と、第２サブシステムＢの状態遷移の順序とに基づいて、それらノード間のエッジの方向性を決定する。そして、状態遷移図生成部１１４は、一方向あるいは双方向のエッジで各ノードを接続した有向グラフを、複合状態遷移図として生成する。なお、複数のノードの中には、エッジを介して他のノードに接続されていない孤立したノードが含まれていてもよい。
【００３７】
また、図３に例示したシステム状態遷移図１３２では、状態Ｓ１から直接状態Ｓ３への遷移が禁止されているため、図９に例示した複合状態遷移図において、例えば、第１サブシステムＡの状態がＡ３であり、且つ第２サブシステムＢの状態がＢ１であるときの宇宙機の状態Ｓ１（図中Ｓ１Ａ３−Ｂ１）と、第１サブシステムＡの状態がＡ３であり、且つ第２サブシステムＢの状態がＢ３であるときの宇宙機の状態Ｓ３（図中Ｓ３Ａ３−Ｂ３）との間にはエッジが接続されないことになる。
【００３８】
図７のフローチャートの説明に戻り、次に、出力制御部１１８は、Ｓ１０６の処理で状態遷移図生成部１１４によって生成された複合状態遷移図を表示部１０４に表示させる（ステップＳ１０８）。また、出力制御部１１８は、状態遷移図生成部１１４によって生成された複合状態遷移図を、通信部１０２を介して端末装置１０に送信することで、各端末装置１０の画面に複合状態遷移図を表示させてもよい。
【００３９】
次に、検証部１１６は、状態遷移図生成部１１４により生成された複合状態遷移図に基づいて、Ｓ１００の処理で選択された宇宙機のシナリオの正当性を検証する（ステップＳ１１０）。
【００４０】
次に、出力制御部１１８は、Ｓ１１０の処理で検証部１１６によって検証された宇宙機のシナリオの検証結果を表示部１０４に表示させる（ステップＳ１１２）。また、出力制御部１１８は、検証部１１６の検証結果を、通信部１０２を介して端末装置１０に送信することで、各端末装置１０の画面に宇宙機のシナリオの検証結果を表示させてもよい。これによって本フローチャートの処理が終了する。
【００４１】
［Ｓ１１０の具体的な処理フロー］
以下、Ｓ１１０の具体的な処理の流れを説明する。図１０は、制御部１１０によりＳ１１０の処理として実行される具体的な処理の一例を示すフローチャートである。
【００４２】
まず、検証部１１６は、システム状態遷移図１３２、第１サブシステム状態遷移図１３４、第２サブシステム状態遷移図１３６、および複合状態遷移図のそれぞれについて、状態遷移図に含まれる複数のノードの中から、初期状態のノードを選択する（ステップＳ２００）。例えば、検証部１１６は、選択されたシナリオの事前条件に基づいて、初期状態のノードを選択する。事前条件とは、シナリオ開始時に、宇宙機が取っているべき初期状態と、その宇宙機に含まれる各サブシステムが取っているべき初期状態とを指定した条件である。
【００４３】
次に、出力制御部１１８は、表示部１０４などに表示させた各状態遷移図の中で、初期状態のノードをハイライト表示する（ステップＳ２０２）。これによって、シナリオの検証がどの状態から開始されるのかを設計者などに理解させることができる。
【００４４】
次に、検証部１１６は、選択されたシナリオに従って、複合状態遷移図の中で初期状態のノードとした状態Ｓから、次に遷移すべき状態Ｓに遷移可能か否かを判定する（ステップＳ２０４）。別の見方をすれば、検証部１１６は、複合状態遷移図と、その複合状態遷移図に含まれる第１サブシステムＡの状態遷移並びに第サブシステムＢの状態遷移も合わせて、初期状態のノードとした状態Ｓから、次に遷移すべき状態Ｓに遷移可能か否かを判定する。
【００４５】
図１１は、宇宙機のシナリオの一例を示す図である。例えば、シナリオは、ＵＭＬ（Unified Modeling Language）などの規定の言語で記述されたものであってよく、システムの処理の流れや状態遷移をアクティビティ図やシーケンス図として表現されてよい。なお、図１１に例示するシナリオには、上述した第１サブシステムＡおよび第２サブシステムＢに加えて、第３サブシステムＣが含まれている。
【００４６】
第３サブシステムＣは、例えば、観測結果を表すデータをパケットなどに変換して地上の監視装置に送信したり、その地上の監視装置から各種コマンドを受信し、その受信したコマンドを他のサブシステムに送信したりする通信装置である。第３サブシステムＣについても、他のサブシステム同様に、複数のシナリオに対して、ある一つの第３サブシステムＣが取り得る状態を定義した状態遷移図が対応付けられたデータや、複数のシナリオのそれぞれに対して、各第３サブシステムＣの状態遷移図が対応付けられたデータがあってよい。
【００４７】
例えば、宇宙機に対して、地上のある観測点を監視するというミッションが課されていた場合、図示の例のように、宇宙機のある一つのシナリオでは、まず、イベントＥａに従って観測の準備が行われ、その準備が整うと、次に、イベントＥｂに従って観測が行われ、そして、最後に、イベントＥｃに従って観測が終了したことが確認される。
【００４８】
例えば、第３サブシステムＣは、システムがイベントＥａを実行するときに、各サブシステムに観測コマンドを送信するイベント（図中、「観測コマンド送信」と記載したイベントＥｄ）を実行する。
【００４９】
例えば、第２サブシステムＢは、第３サブシステムＣから観測コマンドを受信すると、アクチュエータなどを駆動して、第１サブシステムＡに含まれるカメラの画角に観測点が収まるように宇宙機の姿勢を変更するイベント（図中、「観測開始姿勢変更」と記載したイベントＥｅ）を実行し、その後、第１サブシステムＡが継続して観測点を撮像できるように、宇宙機の姿勢を維持し続けるイベント（図中、「観測点指向制御実行」と記載したイベントＳｆ）を実行する。
【００５０】
例えば、第１サブシステムＡは、第３サブシステムＣから観測コマンドを受信すると、第２サブシステムＢがカメラの画角に観測点が収まるように宇宙機の姿勢を変更したときに、速やかにその観測点を撮像できるように、待機状態のイベント（図中、「観測待機モード移行」と記載したイベントＥｇ）を実行し、その後、カメラで観測点を撮像するイベント（図中、「観測実行」と記載したイベントＳｈ）を実行する。
【００５１】
第３サブシステムＣは、システムがイベントＥｃを実行するときに、観測コマンドを送信した各サブシステムの動作完了を確認するイベント（図中、「動作終了確認」と記載したイベントＥｉ）を実行する。これによって、本シナリオの動作は終了する。
【００５２】
例えば、上記のようなシナリオの中で、システム全体の設計を担う上流の設計者は、第２サブシステムＢの「観測開始姿勢変更」というイベントＥｅから、第１サブシステムＡの「観測実行」というイベントＥｈへの遷移、すなわち、サブシステム間を横断した状態遷移が存在するシナリオを考え得る。しかしながら、各サブシステムの設計を担う下流の設計者は、自身が設計を担うサブシステムの状態遷移のみを考えており、専ら他の設計者が設計を担当するサブシステムの状態遷移を考慮していない。そのため、システム全体に対する個々のサブシステムの状態遷移は成立するものの、サブシステム間の状態遷移については成立しない場合がある。
【００５３】
そこで、検証部１１６は、各サブシステムの状態遷移図を組み合わせた複合状態遷移図を利用して、シナリオに従ってシステムを動作させたときに、想定外の状態遷移が発生したり、予め禁止された状態遷移が発生したりするのかを検証する。
【００５４】
図１２は、複合状態遷移図における、ある一つの状態遷移を説明するための図である。例えば、図１１に例示したシナリオにおいて、「観測開始姿勢変更」というイベントＥｅを初期状態とし、この初期状態が、第１サブシステムＡの状態がＡ１であり、且つ第２サブシステムＢの状態がＢ１であるときの宇宙機の状態Ｓ１であると仮定する。また、「観測実行」というイベントＥｈを、初期状態の次に遷移が予定された状態とし、この次の状態が、第１サブシステムＡの状態がＡ２であり、且つ第２サブシステムＢの状態がＢ２であるときの宇宙機の状態Ｓ２であると仮定する。このような仮定の下、図１２に例示した複合状態遷移図において、最上行最左列のフィールドの状態Ｓ１Ａ１−Ｂ１（初期状態）から、中央行中央列のフィールドの状態Ｓ２Ａ２−Ｂ２（次の状態）への遷移を考えた場合、先に第１サブシステムＡの状態がＡ１からＡ２に遷移してから、その後に第２サブシステムＢの状態がＢ１からＢ２に遷移する第１ケースと、先に第２サブシステムＢの状態がＢ１からＢ２に遷移してから、その後に第１サブシステムＡの状態がＡ１からＡ２に遷移する第２ケースとが存在する。
【００５５】
例えば、シナリオが第１ケースを想定している場合、第２サブシステムＢが状態Ｂ１を取っているときに、第１サブシステムＡが状態Ａ１から状態Ａ２へと遷移することは禁止されているため、検証部１１６は、初期状態Ｓ１Ａ１−Ｂ１から次に遷移すべき状態Ｓ２Ａ２−Ｂ２に遷移可能でないと判定する。
【００５６】
一方、例えば、シナリオが第２ケースを想定している場合、第１サブシステムＡが状態Ａ１を取っているときに、第２サブシステムＢが状態Ｂ１から状態Ｂ２へと遷移することは許容されており、更に、第２サブシステムＢが状態Ｂ２を取っているときに、第１サブシステムＡが状態Ａ１から状態Ａ２へと遷移することは許容されているため、検証部１１６は、初期状態Ｓ１Ａ１−Ｂ１から次に遷移すべき状態Ｓ２Ａ２−Ｂ２に遷移可能であると判定する。
【００５７】
図１０のフローチャートの説明に戻り、出力制御部１１８は、検証部１１６によって初期状態から次の状態への遷移が可能でないと判定された場合、ユーザによって選択された検証対象のシナリオに従って宇宙機を運用したときに、その宇宙機を構成するサブシステム同士が互いに干渉し、宇宙機が想定し得ない状態に陥ること（以下、これをエラーと称する）が生じる旨のエラー情報を画像として表示部１０４に表示させたり、エラー情報を端末装置１０に送信したりする（ステップＳ２０６）。
【００５８】
例えば、出力制御部１１８は、システム状態遷移図１３２においてエラーが生じた状態Ｓをハイライト表示したり、第１サブシステム状態遷移図１３４においてエラーが生じた状態Ａをハイライト表示したり、第２サブシステム状態遷移図１３６においてエラーが生じた状態Ｂをハイライト表示したりしてよい。
【００５９】
なお、検証部１１６によって初期状態から次の状態への遷移が可能であると判定された場合、Ｓ２０６の処理は省略されてよい。
【００６０】
次に、検証部１１６は、ユーザによって選択された検証対象のシナリオに含まれる全ての状態を選択したか否かを判定し（ステップＳ２０８）、未だ全ての状態を選択していないと判定した場合、遷移可能か否かに関わらずに次の状態を選択し（ステップＳ２１０）、Ｓ２０２の処理に戻る。これによって、次の状態から更に次の状態への遷移の可否が判定される。このように、検証部１１６は、シナリオに含まれる全ての状態を選択するまでシナリオに含まれる各状態について検証を繰り返し、出力制御部１１８は、その繰り返しの検証の中でエラーが生じる度にその旨をエラー情報として出力する。
【００６１】
一方、検証部１１６は、全ての状態を選択したと判定した場合、最後に選択した状態が事後条件を満たすか否かを判定する（ステップＳ２１２）。事後条件とは、シナリオ終了時に、宇宙機が取っているべき状態と、その宇宙機に含まれる各サブシステムが取っているべき状態とを指定した条件である。
【００６２】
出力制御部１１８は、検証部１１６によって最後に選択した状態が事後条件を満たさないと判定された場合、エラー情報を画像として表示部１０４に表示させたり、エラー情報を端末装置１０に送信したりする（ステップＳ２１４）。次に、出力制御部１１８は、上述したＳ１１２の処理に戻り、検証部１１６による検証結果を表示部１０４に表示させる。これによって本フローチャートの処理が終了する。
【００６３】
図１３は、表示部１０４に表示させる検証結果の一例を示す図である。図示の例のように、出力制御部１１８は、縦軸に、システムの名称と、そのシステムに含まれる各サブシステムの名称とを表示し、横軸に、各システムの状態遷移の過程を時系列に表示した、ある種のガントチャートに類似した図を、検証結果として表示する。この際、出力制御部１１８は、状態が変化した遷移過程において、該当するイベント（状態）の名称をシナリオから引用して表示してよい。
【００６４】
以上説明した第１実施形態によれば、設計支援装置１００が、互いに機能が異なる複数の装置を含むシステム（例えば宇宙機）が取り得る状態間の遷移を示すシステム状態遷移図１３２と、複数の装置の中の第１サブシステムＡが取り得る状態間の遷移を示す第１サブシステム状態遷移図１３４と、複数の装置の中の第２サブシステムＢが取り得る状態間の遷移を示す第２サブシステム状態遷移図１３６とを取得する取得部１１２と、システム状態遷移図１３２、第１サブシステム状態遷移図１３４、第２サブシステム状態遷移図１３６、および状態対応表１３８に基づいて、システムの状態遷移と、第１サブシステムＡの状態遷移と、第２サブシステムＢの状態遷移とを複合的に組み合わせた複合状態遷移図を生成する状態遷移図生成部１１４と、状態遷移図生成部１１４によって生成された複合状態遷移図に基づいて、システムのシナリオを検証する検証部１１６とを備えることによって、各サブシステム同士が互いに干渉することでシステムが想定し得ない状態に陥ることをエラーとして検知することができる。この結果、例えば、現状の設計の場合、エラーが生じるということを設計者にフィードバックすることで、その設計者はシステムのシナリオを変更したり、各サブシステムの状態遷移を変更したりすることができるため、より高品質なシステムを設計することができる。
【００６５】
一般的に、宇宙機のような大規模なシステムを設計する場合、その設計は複数の設計者が協力して行われ得る。このような場合、各サブシステムは、システム全体としての基本的な運用と機能の配分に従って、各設計者が設計することになる。従来の技術では、システムに対して、各サブシステムの動作を確認するような一対一の検証はできても、システムに対して、複数のサブシステムの動作をまとめて確認するような一対多の検証はできていなかった。
【００６６】
これに対して、第１実施形態では、互いに独立して作られた各サブシステムの状態遷移図を複合的に組み合わせた複合状態遷移図を用いることで、サブシステム間の状態遷移の優先順序が明確となり、個々のサブシステムの状態遷移と、システムの状態遷移とを見比べるような従来の一対一の検証では検知できなかったエラーを検知することができるようになる。また、複合状態遷移図を用いることで、システムの全体的な動作を把握することが容易となり、問題の早期発見や検証の効率を向上させることができる。この結果、検証時間をより短縮することができる。
【００６７】
また、一般的に、システムにエラーが発生し、想定し得ない状態に陥った場合、システムはセーフティモードへと遷移するように設計される場合がある。このような場合に、複合状態遷移図を利用することで、セーフティモードから復帰させるときの各サブシステムの状態が正しく元の状態に遷移するのかまでも確認することができる。この結果、設計のもれを検出することができ、より高品質なシステムを設計することができる。
【００６８】
＜第２実施形態＞
以下、第２実施形態について説明する。上述した第１実施形態では、システムが第１サブシステムＡと第２サブシステムＢとを含む複数の装置によって構成されている場合に、それら各サブシステムの状態遷移図と、システムの状態遷移図とを複合的に組み合わせた複合状態遷移図を生成するものとして説明した。
【００６９】
これに対して、第２実施形態では、システムが第１サブシステムＡと第２サブシステムＢと第３サブシステムＣとを含む複数の装置によって構成されている場合に、複数のサブシステムの状態遷移図を複合的に組み合わせた複合状態遷移図を生成する点で上述した第１実施形態と相違する。以下、第１実施形態との相違点を中心に説明し、第１実施形態と共通する点については説明を省略する。なお、第２実施形態の説明において、第１実施形態と同じ部分については同一符号を付して説明する。
【００７０】
第２実施形態に係る記憶部１３０は、上述したシステム状態遷移図１３２、第１サブシステム状態遷移図１３４、第２サブシステム状態遷移図１３６、および状態対応表１３８に加えて、更に第３サブシステム状態遷移図１４０を格納する。
【００７１】
図１４は、第３サブシステム状態遷移図１４０の一例を示す図である。図示のように、第３サブシステム状態遷移図１４０は、複数のシナリオに対して、ある一つの第３サブシステムＣが取り得る状態（図中Ｃ１、Ｃ２、Ｃ３など）を定義した状態遷移図が対応付けられたデータであってもよいし、複数のシナリオのそれぞれに対して、各第３サブシステムＣの状態遷移図が対応付けられたデータであってもよい。例えば、第３サブシステム状態遷移図１４０における各シナリオの状態遷移図は、システムを設計する複数の設計者のうち、第３サブシステムＣの設計を担う下流過程の設計者によって決定される。第３サブシステムＣは、「第３装置」の一例である。
【００７２】
図１５は、第２実施形態に係る状態対応表１３８の一例を示す図である。図示のように、第２実施形態に係る状態対応表１３８は、横軸を第３サブシステムＣが取り得る状態Ｃとし、縦軸を第１サブシステムＡが取り得る状態Ａと第２サブシステムＢが取り得る状態Ｂとした表である。なお、横軸に状態を並べるサブシステムは、第３サブシステムＣに限られず、第１サブシステムＡや第２サブシステムＢ、その他のサブシステムであってもよい。
【００７３】
図示の例では、第３サブシステムＣが状態Ｃ１であるとき、第１サブシステムＡは状態Ａ２を取ることができ、第２サブシステムＢは状態Ｂ２を取ることができる、ということを表し、第３サブシステムＣが状態Ｃ２であるとき、第１サブシステムＡは状態Ａ３を取ることができ、第２サブシステムＢは状態Ｂ１およびＢ２を取ることができる、ということを表し、第３サブシステムＣが状態Ｃ３であるとき、第１サブシステムＡは状態Ａ１を取ることができ、第２サブシステムＢは状態Ｂ１およびＢ２を取ることができる、ということを表している。
【００７４】
第２実施形態に係る状態遷移図生成部１１４は、第１サブシステム状態遷移図１３４と、第２サブシステム状態遷移図１３６と、第３サブシステム状態遷移図１４０と、状態対応表１３８とに基づいて、第１サブシステムＡ、第２サブシステムＢ、および第３サブシステムＣのそれぞれの状態遷移図を複合的に組み合わせた複合状態遷移図を生成する。
【００７５】
図１６は、第２実施形態に係る複合状態遷移図の一例を示す図である。図示のように、例えば、状態遷移図生成部１１４は、縦軸を状態Ａとし横軸を状態Ｂとした表の中で、第３サブシステムＣが取り得る状態Ｃのそれぞれをノードとしてプロットし、それらのノード間のエッジの方向性を、第１サブシステムＡの状態遷移の順序と、第２サブシステムＢの状態遷移の順序とに基づいて決定した有向グラフを、複合状態遷移図として生成する。
【００７６】
以上説明した第２実施形態によれば、第１サブシステム状態遷移図１３４と、第２サブシステム状態遷移図１３６と、第３サブシステム状態遷移図１４０と、状態対応表１３８とに基づいて、第１サブシステムＡの状態遷移と、第２サブシステムＢの状態遷移と、第３サブシステムＣの状態遷移とを複合的に組み合わせた複合状態遷移図を生成し、生成した複合状態遷移図に基づいて、サブシステム同士が互いに干渉し、エラーが生じることを検知することができる。この結果、第１実施形態と同様に、設計者にシステムのシナリオを変更させたり、各サブシステムの状態遷移を変更させたりすることを促すことができるため、より高品質なシステムを設計することができる。
【００７７】
なお、上述した第２実施形態では、第１サブシステムＡおよび第２サブシステムＢの状態遷移図に加えて、更に、第３サブシステムＣの状態遷移図を組み合わせて複合状態遷移図を生成するものとして説明したがこれに限られない。例えば、状態遷移図生成部１１４は、第１サブシステムＡおよび第２サブシステムＢを仮想的に組み合わせて、これを一つのサブシステム（以下、サブシステムＡ＆Ｂ）と扱い、第１サブシステムＡの状態遷移図と、第２サブシステムＢの状態遷移図と、サブシステムＡ＆Ｂの状態遷移図とを組み合わせて複合状態遷移図を生成してもよい。
【００７８】
具体的には、状態遷移図生成部１１４は、縦軸を、第１サブシステムＡの状態Ａとし、第２サブシステムＢの横軸を状態Ｂとした表の中で、第１サブシステムＡおよび第２サブシステムＢを組み合わせた仮想的なサブシステムＡ＆Ｂが取り得る状態のそれぞれをノードとしてプロットし、それらのノード間のエッジの方向性を、第１サブシステムＡの状態遷移の順序と、第２サブシステムＢの状態遷移の順序とに基づいて決定した有向グラフを、複合状態遷移図として生成する。例えば、第１サブシステムＡの状態がＡ１であり、第２サブシステムＢの状態がＢ２である場合、サブシステムＡ＆Ｂが取り得る状態は、「Ａ１かつＢ２」のように表現されてよい。このように、少なくとも２つのサブシステムの状態遷移図に基づいて、システム全体の検証が可能な複合状態遷移図を生成することができる。
【００７９】
＜第３実施形態＞
以下、第３実施形態について説明する。上述した第１実施形態では、システムが第１サブシステムＡと第２サブシステムＢとを含む複数の装置によって構成されている場合に、それら各サブシステムの状態遷移図と、システムの状態遷移図とを複合的に組み合わせた複合状態遷移図を生成するものとして説明した。また、第２実施形態では、システムが第１サブシステムＡと第２サブシステムＢと第３サブシステムＣとを含む複数の装置によって構成されている場合に、複数のサブシステムの状態遷移図を複合的に組み合わせた複合状態遷移図を生成するものとして説明した。
【００８０】
これに対して、第３実施形態では、システムを構成する複数の装置のうち少なくとも一つ以上の装置が冗長化（多重化）されており、その冗長化された装置の主系と従系の状態遷移図を複合的に組み合わせた複合状態遷移図を生成する点で上述した第１実施形態または第２実施形態と相違する。主系とは、通常時に稼働する装置であり、従系とは、主系に対する予備機として用意された装置である。以下、第１実施形態または第２実施形態との相違点を中心に説明し、第１実施形態または第２実施形態と共通する点については説明を省略する。なお、第３実施形態の説明において、第１実施形態および第２実施形態と同じ部分については同一符号を付して説明する。
【００８１】
例えば、第３実施形態において、第１サブシステムＡまたは第２サブシステムＢのいずれか一方は主系であり、他方は従系であるものとする。以下、一例として、第１サブシステムＡを主系とし、第２サブシステムＢを従系として説明する。
【００８２】
第３実施形態に係る状態遷移図生成部１１４は、システム状態遷移図１３２と、第１サブシステム状態遷移図１３４と、第２サブシステム状態遷移図１３６と、状態対応表１３８とに基づいて、主系である第１サブシステムＡの状態遷移図と、従系である第２サブシステムＢの状態遷移図と、システムの状態遷移とを複合的に組み合わせた複合状態遷移図を生成する。
【００８３】
第３実施形態に係る検証部１１６は、状態遷移図生成部１１４によって、主系および従系のそれぞれの状態遷移図を組み合わせた複合状態遷移図が生成されると、その複合状態遷移図を用いて、システムのシナリオを検証する。
【００８４】
以上説明した第３実施形態によれば、主系および従系のそれぞれの状態遷移図と、システムの状態遷移図とを複合的に組み合わせた複合状態遷移図を生成し、生成した複合状態遷移図に基づいて、システムのシナリオを検証するため、第１実施形態や第２実施形態と同様に、より高品質なシステムを設計することができる。
【００８５】
＜その他の実施形態（その１）＞
以下、その他の実施形態について説明する。上述した実施形態では、状態対応表１３８において各サブシステムの取り得る状態が１または０の二値で表されるものとして説明したがこれに限られない。例えば、状態対応表１３８において、各サブシステムの取り得る状態は、０から１までの範囲の確率によって表されてもよい。
【００８６】
＜第４実施形態＞
以下、第４実施形態について説明する。第４実施形態では、システムやサブシステムが取り得る一つの状態の中に、複数の状態が含まれている点で上述した第１実施形態から第３実施形態と相違する。複数の状態を含む状態のことを「コンポジット状態」と称し、コンポジット状態の中にある状態を「サブ状態」と称する。以下、第１実施形態から第３実施形態との相違点を中心に説明し、第１実施形態から第３実施形態と共通する点については説明を省略する。なお、第４実施形態の説明において、第１実施形態から第３実施形態と同じ部分については同一符号を付して説明する。
【００８７】
図１７は、システム状態遷移図１３２の他の例を示す図である。図中ＳＣＯＭは、コンポジット状態を表している。図示の例では、コンポジット状態ＳＣＯＭは、２つのサブ状態Ｓ１とＳ２を含んでいる。例えば、コンポジット状態ＳＣＯＭはノミナルモードであり、サブ状態Ｓ１は待機モードであり、サブ状態Ｓ２は運用モードであり、状態Ｓ３は、低負荷モードである。ノミナルモードは通常運転モードであり、待機モードは機器が指示を待っている待機状態のモードであり、運用モードは機器が実際に稼働しているモードであり、低負荷モードは異常発生等により機器の使用を制限し、機器への負荷を低減して運転を継続しているモードである。コンポジット状態ＳＣＯＭと状態Ｓ３は、相互に遷移可能であり、サブ状態Ｓ１とサブ状態Ｓ２は相互に遷移可能である。
【００８８】
図１８は、第１サブシステム状態遷移図１３４の他の例を示す図である。例えば、状態Ａ１はスピンモードであり、状態Ａ２は定常モードであり、状態Ａ３は制御モードである。スピンモードは宇宙機の姿勢を回転させるモードであり、定常モードは宇宙機の姿勢の回転をとめて機体を静定させるモードであり、制御モードは宇宙機のエンジンであるスラスタを噴射して軌道や姿勢を変更するモードである。状態Ａ１と状態Ａ２は相互に遷移可能であり、状態Ａ２と状態Ａ３は相互に遷移可能であり、状態Ａ１と状態Ａ３は、状態Ａ３から状態Ａ１への一方向のみ遷移可能である。
【００８９】
図１９は、第２サブシステム状態遷移図１３６の他の例を示す図である。例えば、状態Ｂ１は電源オフモードであり、状態Ｂ２はスタンバイモードであり、状態Ｂ３は観測モードである。電源オフモードは第２サブシステムＢへの電力供給を止めて電源がオフされた状態のモードであり、スタンバイモードは第２サブシステムＢに電力を供給され電源がオンされ観測の準備をしている状態モードであり、観測モードは供給された電力を使用して第２サブシステムＢに宇宙機の周囲を観測させるモードである。状態Ｂ１と状態Ｂ２は相互に遷移可能であり、状態Ｂ２と状態Ｂ３は相互に遷移可能であり、状態Ｂ１と状態Ｂ３は、状態Ｂ３から状態Ｂ１への一方向のみ遷移可能である。
【００９０】
図２０は、状態対応表１３８の他の例を示す図である。図示の例のように、状態対応表１３８の横軸には、コンポジット状態ＳＣＯＭが含まれてよい。図示の状態対応表１３８は、図１７から図１９の状態遷移図を組み合わせたものである。状態遷移図生成部１１４は、システム状態遷移図１３２と、第１サブシステム状態遷移図１３４と、第２サブシステム状態遷移図１３６と、状態対応表１３８とに基づいて、これらの状態遷移図を複合的に組み合わせた複合状態遷移図を生成する。
【００９１】
図２１は、複合状態遷移図の他の例を示す図である。例えば、図２０に例示した状態対応表１３８に従った場合、第１サブシステムＡの状態Ａ１と、第２サブシステムＢの状態Ｂ２との双方が併存する宇宙機の状態は、コンポジット状態ＳＣＯＭと、そのコンポジット状態ＳＣＯＭに含まれるサブ状態Ｓ１である。そのため、状態遷移図生成部１１４は、状態Ａ１のレコードに含まれる複数のフィールドのうち、状態Ｂ２のカラムに含まれるフィールドに、コンポジット状態ＳＣＯＭとサブ状態Ｓ１とをプロットする（図中ＳＣＯＭ＿Ａ１−Ｂ２と、Ｓ１Ａ１−Ｂ２）。
【００９２】
図１７に例示する宇宙機の状態遷移図では、サブ状態Ｓ１はコンポジット状態ＳＣＯＭに含まれ、それらの状態が相互に遷移可能である。従って、状態遷移図生成部１１４は、コンポジット状態ＳＣＯＭ＿Ａ１−Ｂ２とサブ状態Ｓ１Ａ１−Ｂ２とを互いに接続するエッジを、双方向の矢印とする。
【００９３】
検証部１１６は、図２１に示す複合状態遷移図を利用して、シナリオに従ってシステムを動作させたときに、想定外の状態遷移が発生したり、予め禁止された状態遷移が発生したりするのかを検証する。
【００９４】
例えば、図２０に例示した状態対応表１３８において、コンポジット状態ＳＣＯＭの中にサブ状態Ｓ１およびＳ２が存在せず、コンポジット状態ＳＣＯＭを単独の状態Ｓと見做した場合、状態Ａ１のレコードに含まれ、且つ状態Ｂ３のカラムに含まれるフィールドにコンポジット状態ＳＣＯＭ＿Ａ１−Ｂ３が存在することになる。この場合、一つ隣のフィールドに存在するコンポジット状態ＳＣＯＭ＿Ａ１−Ｂ２と、本来であれば存在しない仮想的なコンポジット状態ＳＣＯＭ＿Ａ１−Ｂ３とは、図１７に示すシステム状態遷移図１３２において同一の状態を表しているため、これらのコンポジット状態は双方向の矢印で接続されることになる。
【００９５】
状態Ａ１がスピンモードであり、状態Ｂ３が観測モードである場合、コンポジット状態ＳＣＯＭ＿Ａ１−Ｂ２からコンポジット状態ＳＣＯＭ＿Ａ１−Ｂ３への遷移は、宇宙機が回転しながら観測することを意味するため、システムとして取り得るべき状態でない。しかしながら、コンポジット状態ＳＣＯＭにサブ状態が含まれておらず、単なる状態Ｓであった場合、検証部１１６が、遷移可能という誤判定をしてしまう可能性がある。
【００９６】
これに対して、サブ状態を考慮して図２０に例示した状態対応表１３８に従った場合、状態Ａ１のレコードに含まれ、且つ状態Ｂ３のカラムに含まれるフィールドの中に、コンポジット状態ＳＣＯＭ＿Ａ１−Ｂ３に対応するサブ状態が存在しない。そのため、第１サブシステムＡが状態Ａ１にあり、第２サブシステムＢが状態Ｂ３にあるときに、システムがコンポジット状態ＳＣＯＭ＿Ａ１−Ｂ３にあるという組み合わせを排除することができる。
【００９７】
また、例えば、図２０に例示した状態対応表１３８において、コンポジット状態ＳＣＯＭの中にサブ状態Ｓ１およびＳ２が存在せず、コンポジット状態ＳＣＯＭを単独の状態Ｓと見做した場合、状態Ａ３のレコードに含まれ、且つ状態Ｂ３のカラムに含まれるフィールドにコンポジット状態ＳＣＯＭ＿Ａ３−Ｂ３が存在することになる。この場合、状態Ａ３のレコードに含まれ、且つ状態Ｂ２のカラムに含まれる一つ隣のフィールドに存在するコンポジット状態ＳＣＯＭ＿Ａ３−Ｂ２と、本来であれば存在しない仮想的なコンポジット状態ＳＣＯＭ＿Ａ３−Ｂ３とは、図１７に示すシステム状態遷移図１３２において同一の状態を表しているため、これらのコンポジット状態は双方向の矢印で接続されることになる。
【００９８】
状態Ａ３が制御モードであり、状態Ｂ３が観測モードである場合、コンポジット状態ＳＣＯＭ＿Ａ３−Ｂ２からコンポジット状態ＳＣＯＭ＿Ａ３−Ｂ３への遷移は、宇宙機が軌道を変更しながら観測することを意味するため、システムとして取り得るべき状態でない。しかしながら、これについても、検証部１１６は、遷移可能という誤判定をしてしまう可能性がある。
【００９９】
これに対して、サブ状態を考慮して図２０に例示した状態対応表１３８に従った場合、状態Ａ３のレコードに含まれ、且つ状態Ｂ３のカラムに含まれるフィールドの中に、コンポジット状態ＳＣＯＭ＿Ａ３−Ｂ３に対応するサブ状態が存在しない。そのため、第１サブシステムＡが状態Ａ３にあり、第２サブシステムＢが状態Ｂ３にあるときに、システムがコンポジット状態ＳＣＯＭ＿Ａ３−Ｂ３にあるという組み合わせを排除することができる。
【０１００】
また、上述した説明では、宇宙機（システム）が取り得る状態の中にコンポジット状態が含まれるものとして説明したがこれに限られない。例えば、宇宙機を構成するサブシステムが取り得る状態の中にコンポジット状態が含まれてもよい。
【０１０１】
図２２は、システム状態遷移図１３２の他の例を示す図であり、図２３は、第１サブシステム状態遷移図１３４の他の例を示す図である。図２２に示すシステム状態遷移図１３２では、サブ状態Ｓ１およびＳ２が互いに独立した状態として扱われている。一方、図２３に示す第１サブシステム状態遷移図１３４では、状態Ａ２およびＡ３がサブ状態としてコンポジット状態ＡＣＯＭに含まれている。
【０１０２】
図２４は、状態対応表１３８の他の例を示す図である。図示の例のように、状態対応表１３８の縦軸には、コンポジット状態ＡＣＯＭが含まれてよい。図示の状態対応表１３８は、図１９、図２２、図２３の状態遷移図を組み合わせたものである。状態遷移図生成部１１４は、システム状態遷移図１３２と、第１サブシステム状態遷移図１３４と、第２サブシステム状態遷移図１３６と、状態対応表１３８とに基づいて、これらの状態遷移図を複合的に組み合わせた複合状態遷移図を生成する。
【０１０３】
図２５は、複合状態遷移図の他の例を示す図である。例えば、図２４に例示した状態対応表１３８において、コンポジット状態ＡＣＯＭの中にサブ状態Ａ２およびＡ３が存在することを考慮しない場合、図２５に示す複合状態遷移図において、サブ状態Ａ３のレコードに含まれ、且つ状態Ｂ１のカラムに含まれるフィールドに状態Ｓ３Ａ３−Ｂ１が存在することになる。この場合、最上段左端のフィールドに存在する状態Ｓ３Ａ１−Ｂ１と、本来であれば存在しない仮想的な状態Ｓ３Ａ３−Ｂ１とは、図２２に示すシステム状態遷移図１３２において同一の状態Ｓ３を表しており、かつ図２３に示すシステム状態遷移図１３４においてＡ１とＡＣＯＭが双方向の矢印でつながれているため、これらに基づくコンポジット状態も双方向の矢印で接続されることになる。
【０１０４】
第１サブシステムが制御モード中で第２サブシステムがスタンバイモードであるＳ１Ａ３−Ｂ２において、異常が発生し、衛星の姿勢安定を優先したい場合、先に第１サブシステムを状態Ａ３から定常モードであるＡ２に移行し、その後に第２サブシステムの電源をオフとしたい。その場合、図示のように、状態Ｓ１Ａ３−Ｂ２から状態Ｓ１Ａ２−Ｂ２へと一旦遷移してから、状態Ｓ１Ａ２−Ｂ２から状態Ｓ３Ａ２−Ｂ１へと遷移し、それから状態Ｓ３Ａ２−Ｂ１から状態Ｓ３Ａ１−Ｂ１へと遷移する必要がある。しかしながら、コンポジット状態ＡＣＯＭにサブ状態が含まれておらず、単なる状態Ａであった場合、検証部１１６が、先に第２サブシステムの状態を遷移しても、Ｓ１Ａ３−Ｂ１からＳ１Ａ１−Ｂ１へ遷移可能であり、誤判定をしてしまう可能性がある。
【０１０５】
これに対して、サブ状態を考慮して図２４に例示した状態対応表１３８に従った場合、サブ状態Ａ３のレコードに含まれ、且つ状態Ｂ１のカラムに含まれる最下段左端のフィールドの中に、状態Ｓ３Ａ３−Ｂ１が存在しない。そのため、状態Ｓ３Ａ３−Ｂ１から状態Ｓ３Ａ１−Ｂ１への遷移を禁止することができる。
【０１０６】
図２６は、第２サブシステム状態遷移図１３６の他の例を示す図である。図２６に示す第２サブシステム状態遷移図１３６では、状態Ｂ２およびＢ３がサブ状態としてコンポジット状態ＢＣＯＭに含まれている。
【０１０７】
図２７は、状態対応表１３８の他の例を示す図である。図示の例のように、状態対応表１３８の縦軸には、コンポジット状態ＢＣＯＭが含まれてよい。図示の状態対応表１３８は、図１８、図２２、図２６の状態遷移図を組み合わせたものである。
【０１０８】
図２８は、複合状態遷移図の他の例を示す図である。例えば、図２７に例示した状態対応表１３８において、コンポジット状態ＡＣＯＭの中にサブ状態Ａ２およびＡ３が存在することを考慮しない場合、図２８に示す複合状態遷移図において、状態Ｓ１Ａ２−Ｂ２と状態Ｓ２Ａ２−Ｂ３とは互いに異なる状態であるものの区別されずに一つの状態として扱われることになる。
【０１０９】
これに対して、サブ状態を考慮して図２７に例示した状態対応表１３８に従った場合、状態Ｓ１Ａ２−Ｂ２と状態Ｓ２Ａ２−Ｂ３とは互いに区別される。すなわち、システムの状態遷移に第２サブシステムＢも追従して、内部のサブ状態が遷移変化することを検証することができる。
【０１１０】
以上説明した第４実施形態によれば、システムやサブシステムが取り得る一つの状態の中にコンポジット状態が含まれている場合であっても、複合状態遷移図に基づいて、システムのシナリオを検証することができるため、上述した実施形態と同様に、より高品質なシステムを設計することができる。
【０１１１】
＜その他の実施形態（その２）＞
以下、その他の実施形態について説明する。例えば、記憶部１３０には、上述した状態対応表１３８に代えて、或いは加えて、状態対応表１３８＃が格納されてよい。状態対応表１３８＃は、システムとは独立したサブシステム同士の状態の対応関係を表している。
【０１１２】
図２９は、サブシステム間の状態対応表１３８＃を説明するための図である。通常、システムとサブシステム間での状態の組み合わせに可能、不可能があるように、サブシステム同士でも同様に状態の組み合わせの可能、不可能がある。図示のように、状態遷移図生成部１１４は、第１サブシステムＡの状態と第２サブシステムＢの状態の組み合わせが存在するものについては「１」、組み合わせが存在しないものについては「０」とした対応表を、サブシステム間の状態対応表１３８＃として複合状態遷移図に反映させることが出来る。
【０１１３】
状態遷移図生成部１１４は、生成した状態対応表１３８＃を用いて、複合状態遷移図においてシステムが取り得ることが可能な複数の状態の遷移の一部を削除する。すなわち、状態遷移図生成部１１４は、複合状態遷移図を表す有向グラフの一部のノードおよびエッジを消去する。
【０１１４】
図３０は、状態遷移の一部が削除された複合状態遷移図の一例を示す図である。図２９に例示したサブシステム間の状態対応表１３８＃では、状態Ａ１おび状態Ｂ３の組み合わせと、状態Ａ３おび状態Ｂ１の組み合わせと、状態Ａ３おび状態Ｂ３の組み合わせとが存在しないため「０」となっている。そのため、状態遷移図生成部１１４は、複合状態遷移図においても、状態Ａ１おび状態Ｂ３の組み合わせと、状態Ａ３おび状態Ｂ１の組み合わせと、状態Ａ３おび状態Ｂ３の組み合わせとを削除する。これによって、検証部１１６は、システムとして取り得るべきでない状態遷移が存在するのか否かを検証することができる。
【０１１５】
また、検証部１１６は、複合状態遷移図を用いて、システムの状態遷移の過程を検証してもよい。
【０１１６】
図３１は、システム状態遷移図１３２の他の例を示す図であり、図３２は、第１サブシステム状態遷移図１３４の他の例を示す図であり、図３３は、第２サブシステム状態遷移図１３６の他の例を示す図である。また、図３４は、状態対応表１３８の他の例を示す図である。図３４の状態対応表１３８は、図３１から図３３の状態遷移図を組み合わせたものである。
【０１１７】
図３５は、複合状態遷移図の他の例を示す図である。例えば、複合状態遷移図において、状態Ａ２のレコードに含まれ、且つ状態Ｂ１のカラムに含まれるフィールドの状態Ｓ２Ａ２−Ｂ１から、状態Ａ３のレコードに含まれ、且つ状態Ｂ２のカラムに含まれるフィールドの状態Ｓ３Ａ３−Ｂ２への状態遷移を検証する。図３１に示すシステム状態遷移図１３２では、状態Ｓ２からＳ３への状態遷移は許容されており、図３２に示す第１サブシステム状態遷移図１３４では、状態Ａ２からＡ３への状態遷移は許容されており、図３３に示す第２サブシステム状態遷移図１３６では、状態Ｂ１からＢ２への状態遷移は許容されている。従って、個々の状態遷移図に従えば、状態Ｓ２Ａ２−Ｂ１から状態Ｓ３Ａ３−Ｂ２への状態遷移は可能である。
【０１１８】
しかしながら、複合状態遷移図は、縦および横移動に限定している。縦移動は第１サブシステムＡの遷移を表しており、横移動は第２サブシステムＢの遷移を表している。そのため、斜め移動は、第１サブシステムＡと第２サブシステムＢの同時遷移を意味することになる。実用上のシステムでは、同時遷移は厳密にはできないため、どちらか一方が先に遷移するケースがほとんどであり、その順番が逆になり不具合になるケースがある。そのため、状態Ｓ２Ａ２−Ｂ１と状態Ｓ３Ａ３−Ｂ２とを接続する一方向のエッジ（図中斜め線）を複合状態遷移図上に表示させないことで、遷移の順番を明確にし、整合性の検証に活かすことができる。あるいは、一時的に図中の斜め線を表示させ、問題があることを明示することもできる。
【０１１９】
上記のように同時遷移を許可しない場合、すなわち、複合状態遷移図上において、斜め線のエッジを用いて各状態を表すノード同士を接続しない場合、現状のままでは状態Ｓ２から状態Ｓ３への遷移ができず、システム全体として不具合が生じ得る。従って、出力制御部１１８は、システムが取り得る状態の中に、サブシステムが同時に状態遷移することを許可しなければ孤立する状態が存在する場合、エラー情報を表示部１０４に表示させたり、端末装置１０に送信したりする。これを受けて、例えば、システムの設計者は、サブシステムが同時に状態遷移しなくともシステムが状態遷移できるように状態対応表１３８を変更する。
【０１２０】
図３６は、変更された状態対応表１３８の一例を示す図である。図示のように、設計者は、第２サブシステムＢが状態Ｂ２を取るときに、システムが状態Ｓ２を取れるように状態対応表１３８を「０」から「１」に変更してよい。これによって、図３５に示す複合状態遷移図において、状態Ａ２のレコードに含まれ、且つ状態Ｂ２のカラムに含まれるフィールドの中に、新たに状態Ｓ２がプロットされるため、新たにプロットされた状態Ｓ２を介して、状態Ｓ２Ａ２−Ｂ１から状態Ｓ３Ａ３−Ｂ２への状態遷移が可能となる。この結果、より高品質なシステムを設計することができる。
【０１２１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【０１２２】
１…設計支援システム、１０…端末装置、１００…設計支援装置、１０２…通信部、１０４…表示部、１０６…入力部、１１０…制御部、１１２…取得部、１１４…状態遷移図生成部、１１６…検証部、１１８…出力制御部、１３０…記憶部
【図１】
2020102198.tif 000003
【図２】
2020102198.tif 000004
【図３】
2020102198.tif 000005
【図４】
2020102198.tif 000006
【図５】
2020102198.tif 000007
【図６】
2020102198.tif 000008
【図７】
2020102198.tif 000009
【図８】
2020102198.tif 000010
【図９】
2020102198.tif 000011
【図１０】
2020102198.tif 000012
【図１１】
2020102198.tif 000013
【図１２】
2020102198.tif 000014
【図１３】
2020102198.tif 000015
【図１４】
2020102198.tif 000016
【図１５】
2020102198.tif 000017
【図１６】
2020102198.tif 000018
【図１７】
2020102198.tif 000019
【図１８】
2020102198.tif 000020
【図１９】
2020102198.tif 000021
【図２０】
2020102198.tif 000022
【図２１】
2020102198.tif 000023
【図２２】
2020102198.tif 000024
【図２３】
2020102198.tif 000025
【図２４】
2020102198.tif 000026
【図２５】
2020102198.tif 000027
【図２６】
2020102198.tif 000028
【図２７】
2020102198.tif 000029
【図２８】
2020102198.tif 000030
【図２９】
2020102198.tif 000031
【図３０】
2020102198.tif 000032
【図３１】
2020102198.tif 000033
【図３２】
2020102198.tif 000034
【図３３】
2020102198.tif 000035
【図３４】
2020102198.tif 000036
【図３５】
2020102198.tif 000037
【図３６】
2020102198.tif 000038