(57)【要約】  【課題】状態図および状態表を見易くすることができる状態設計支援装置１０を提供する。  【解決手段】本発明の状態設計支援装置１０は、遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および遷移のトリガーとなるイベントを含むイベント追加要求を受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を状態表格納部１４から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントと共に、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加するイベント追加部１１を備える。【選択図】図１
2010009349.tif 000002
【特許請求の範囲】
【請求項１】
システムの状態遷移に基づく設計を支援する状態設計支援装置であって、
複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付手段と、
グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成する状態表作成手段と、
前記状態表作成手段によってグループ毎に作成された状態表を格納する状態表格納手段と、
ユーザからの要求に応じて、前記状態表格納手段に格納されている状態表をグループ毎に表示する状態表表示手段と、
遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を前記状態表格納手段から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を前記状態表格納手段内に格納するイベント追加手段と
を備えることを特徴とする状態設計支援装置。
【請求項２】
請求項１に記載の状態設計支援装置であって、
前記イベント追加手段は、
イベント追加要求において、遷移元の状態としてグループが指定された場合に、当該グループに属する全ての状態が遷移元の状態として指定されたと認識して当該イベント追加要求を処理することを特徴とする状態設計支援装置。
【請求項３】
請求項１または２に記載の状態設計支援装置であって、
前記イベント追加手段は、
イベント追加要求において、１つのイベントについて、遷移元の状態と遷移先の状態の組が複数指定された場合に、それぞれの組毎に当該イベント追加要求を処理することを特徴とする状態設計支援装置。
【請求項４】
請求項１から３のいずれか一項に記載の状態設計支援装置であって、
前記イベント追加手段は、
前記イベント追加要求に応じて、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態を追加する場合に、グループ間の状態遷移であるならば１が設定されるグループ間遷移フラグを、当該遷移先の状態を示す情報にさらに対応付け、
前記状態設計支援装置は、
ユーザからの要求に応じて前記状態表格納手段内に格納されている状態表を、グループ毎に読み出して状態図に変換して表示する状態図表示手段をさらに備え、
前記状態図表示手段は、
遷移先の状態に、１が設定されたグループ間遷移フラグが対応付けられている場合に、当該遷移先の状態への状態遷移を示す情報を状態図に記載しないことを特徴とする状態設計支援装置。
【請求項５】
請求項４に記載の状態設計支援装置であって、
前記イベント追加手段は、
遷移元の状態、当該遷移元の状態が属するグループと同一のグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を前記状態表格納手段から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加する場合に、当該遷移先の状態に、同一のグループ内におけるイベントの追加である場合に１が設定されるグループ内追加フラグをさらに対応付け、
前記状態図表示手段は、
遷移先の状態に、１が設定されたグループ内追加フラグが対応付けられている場合に、当該遷移先の状態への状態遷移を示す情報を、１が設定されたグループ内追加フラグが対応付けられていない遷移先の状態への状態遷移を示す情報とは異なる態様で状態図に記載することを特徴とする状態設計支援装置。
【請求項６】
システムの状態遷移に基づく設計を支援する状態設計支援装置における状態設計支援方法であって、
前記状態設計支援装置が、
複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付ステップと、
グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成して状態表格納手段に格納する状態表作成ステップと、
ユーザからの要求に応じて、前記状態表格納手段に格納されている状態表をグループ毎に表示する状態表表示ステップと、
遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を前記状態表格納手段から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を前記状態表格納手段内に格納するイベント追加ステップと
を実行することを特徴とする状態設計支援方法。
【請求項７】
コンピュータを、システムの状態遷移に基づく設計を支援する状態設計支援装置として機能させるプログラムであって、
前記コンピュータに、
複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付機能、
グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成する状態表作成機能、
前記状態表作成機能によってグループ毎に作成された状態表を格納する状態表格納機能、
ユーザからの要求に応じて、前記状態表格納機能に格納されている状態表をグループ毎に表示する状態表表示機能、ならびに、
遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を前記状態表格納機能から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を前記状態表格納機能内に格納するイベント追加機能
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの状態遷移に基づく設計を支援する技術に関する。
【背景技術】
【０００２】
システムの状態遷移に基づいてシステムの設計を行う場合、状態図を用いて大雑把な設計を行い、その後、状態表を用いて状態遷移をもれなく定義する等、状態図および状態表の両方を用いてシステムの設計を行う場合がある。しかし、システムの規模が大きくなると、状態数が膨大になる場合がある。状態数が膨大になると、１つのイベントを追加する場合であっても、全てのイベントとの関係を状態表に記述する必要があり、イベントの追加の手間が大きい。
【０００３】
これを回避する技術として、下記の特許文献１には、正常系の遷移表に対して異常系へ遷移するパターンを適用して、正常系および異常系の両方を含む遷移表を自動作成する方法が開示されている。
【０００４】
【特許文献１】特開２００６−３４３８６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、システムの規模が大きくなり、状態数が膨大になると、状態図において状態遷移を示す矢印が長くなったり、他の矢印と交差することも多くなり、状態図が煩雑となる。本来、システムの状態遷移の概要を把握しながら設計を進めるために状態図から作成を開始しているが、状態図が煩雑であると、状態遷移の全体像の把握が困難となり、設計の効率が悪くなる場合がある。
【０００６】
また、例えば、全てのイベントが全ての状態において発生するとは限らないため、イベントによっては、多くの状態においてそのイベントが発生することがなく、その状態に対応する状態表の欄が空欄となる場合がある。そのため、規模の大きなシステムにおける状態表は、巨大な状態表ではあるが、冗長な内容となっている場合が多い。
【０００７】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、状態図および状態表を見易く表示することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、複数の状態が属するグループ毎に状態図および状態表を作成し、グループ間の状態遷移については状態表にのみ記載する。
【０００９】
例えば、本発明の第一の態様は、システムの状態遷移に基づく設計を支援する状態設計支援装置であって、複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付手段と、グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成する状態表作成手段と、状態表作成手段によってグループ毎に作成された状態表を格納する状態表格納手段と、ユーザからの要求に応じて、状態表格納手段に格納されている状態表をグループ毎に表示する状態表表示手段と、遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を状態表格納手段から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を状態表格納手段内に格納するイベント追加手段とを備えることを特徴とする状態設計支援装置を提供する。
【００１０】
また、本発明の第二の態様は、システムの状態遷移に基づく設計を支援する状態設計支援装置における状態設計支援方法であって、状態設計支援装置が、複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付ステップと、グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成して状態表格納手段に格納する状態表作成ステップと、ユーザからの要求に応じて、状態表格納手段に格納されている状態表をグループ毎に表示する状態表表示ステップと、遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を状態表格納手段から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を状態表格納手段内に格納するイベント追加ステップとを実行することを特徴とする状態設計支援方法を提供する。
【００１１】
また、本発明の第三の態様は、コンピュータを、システムの状態遷移に基づく設計を支援する状態設計支援装置として機能させるプログラムであって、コンピュータに、複数の状態が属するグループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図をユーザから受け付ける状態図受付機能、グループ毎の状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成する状態表作成機能、状態表作成機能によってグループ毎に作成された状態表を格納する状態表格納機能、ユーザからの要求に応じて、状態表格納機能に格納されている状態表をグループ毎に表示する状態表表示機能、ならびに、遷移元の状態、当該遷移元の状態が属するグループとは異なるグループに属する遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求をユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態が属するグループの状態表を状態表格納機能から抽出し、抽出した状態表に、当該イベント追加要求に含まれているイベントに対応付けて、当該イベント追加要求に含まれている遷移元の状態の、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態とする情報を追加し、追加した状態表を状態表格納機能内に格納するイベント追加機能を実現させることを特徴とするプログラムを提供する。
【発明の効果】
【００１２】
本発明の状態設計支援装置によれば、状態図および状態表を見易く表示することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について説明する。
【００１４】
図１は、本発明の一実施形態に係る状態設計支援装置１０の機能構成を示すブロック図である。状態設計支援装置１０は、イベント追加部１１、受付部１２、状態表作成部１３、状態表格納部１４、状態表表示部１５、および状態図表示部１６を備える。状態設計支援装置１０は、入力装置２０を介して、ユーザから、複数の状態が属するグループ毎に、それぞれの状態の遷移を示す状態図を受け付けた場合に、受け付けた状態図に基づいて状態表をグループ毎に作成し、作成した状態表を表示装置２１に表示する。
【００１５】
ここで、状態設計支援装置１０のユーザによって実行される、状態図および状態表の作成手順を、図２を参照しながら説明する。まず、ユーザは、設計対象となるシステムの機能等の処理のまとまり毎にグループを作成し（Ｓ１００）、グループ毎に、当該グループに属する状態を１つ以上定義する（Ｓ１０１）。
【００１６】
次に、ユーザは、グループ毎に、それぞれの状態において発生するイベントおよび当該イベントによって遷移する遷移先の状態を定義する（Ｓ１０２）。そして、ユーザは、グループ毎に、それぞれの状態をイベントを示す矢印でつないだ状態図を作成し、作成した状態図を入力装置２０を介して状態設計支援装置１０に入力する（Ｓ１０３）。そして、表示装置２１には、状態設計支援装置１０によって作成された状態表が表示される（Ｓ１０４）。
【００１７】
ステップＳ１００からＳ１０３までの処理では、グループ内の状態の関係のみがユーザによって作成されており、グループ間の状態の遷移については作成されていない。そのため、ユーザは、グループ間のイベントを追加する（Ｓ１０５）。追加すべきイベントの指定方法等については後述する。
【００１８】
そして、グループ間のイベント情報を全て追加した場合（Ｓ１０６：Ｙｅｓ）、ユーザは、必要であれば（Ｓ１０７：Ｙｅｓ）、グループを特定して状態表の表示を指示し（Ｓ１０８）、表示装置２１に表示された状態表を見ることにより書き忘れているイベントがないか否かを確認する。
【００１９】
書き忘れていたイベントをグループ内に追加する場合（Ｓ１０９：Ｙｅｓ）、ユーザは、当該イベントの追加を入力装置２０を介して状態設計支援装置１０に指示する（Ｓ１１０）。状態図および状態表が完成した場合には、ユーザは、本フローチャートに示した処理を終了する（Ｓ１１１：Ｙｅｓ）。グループ間のイベントの追加を再度行いたい場合には、ステップＳ１１１でＮｏの後、ステップＳ１０６でＮｏの判定により、ユーザは、ステップＳ１０５において再びグループ間のイベントの追加を行う。
【００２０】
図１に戻って説明を続ける。状態表格納部１４には、例えば図３に示すように、グループＩＤ１４０毎に、状態表１４１が格納される。それぞれの状態表１４１には、イベントＩＤ１４２に対応するイベントが発生した場合に、状態ＩＤ１４３に対応するそれぞれの状態にあるシステムが、どの状態に遷移するのかを示す情報が、イベントＩＤ１４２および状態ＩＤ１４３の組み合わせに対応するセル毎に格納される。
【００２１】
また、それぞれのセルには、ユーザによって入力された状態図に記載されていた遷移である場合に１が設定される書換禁止フラグ１４４、グループ間の状態遷移である場合に１が設定されるグループ間遷移フラグ１４５、および、同一のグループ内において追加されたイベントによって遷移する状態である場合に１が設定されるグループ内追加フラグ１４６が格納される。
【００２２】
ここで、本実施形態において、状態設計支援装置１０は、入力装置２０を介してユーザから、例えば図４に示すような状態図を受け付けるものとする。グループＡには、図４（ａ）に示すように、状態Ａ１、状態Ａ２、および状態Ａ３の３つの状態が属しており、対象となるシステムの状態が状態Ａ１の場合にイベントａ１が発生したならば、システムの状態は状態Ａ２へ遷移し、システムの状態が状態Ａ２の場合にイベントａ２が発生したならば、システムの状態は状態Ａ１へ遷移し、システムの状態が状態Ａ２の場合にイベントａ３が発生したならば、システムの状態は状態Ａ３へ遷移し、システムの状態が状態Ａ３の場合にイベントａ４が発生したならば、システムの状態は状態Ａ１へ遷移する。
【００２３】
また、グループＢには、図４（ｂ）に示すように、状態Ｂ１および状態Ｂ２の２つの状態が属しており、対象となるシステムの状態が状態Ｂ１の場合にイベントｂ１が発生したならば、システムの状態は状態Ｂ２へ遷移し、システムの状態が状態Ｂ２の場合にイベントｂ２が発生したならば、システムの状態は状態Ｂ１へ遷移する。
【００２４】
なお、それぞれのグループにおける状態図には、当該グループ内の状態にある場合にのみ発生するイベントが記載されている。また、図４において、「Ａ」および「Ｂ」はグループを識別するグループＩＤであり、「Ａ１」から「Ａ３」、「Ｂ１」、および「Ｂ２」はそれぞれの状態を識別する状態ＩＤであり、「ａ１」から「ａ４」、「ｂ１」、および「ｂ３」はそれぞれのイベントを識別するイベントＩＤである。
【００２５】
図３にはグループＡの状態表１４１が例示されており、例えば、グループＡにおいてイベントａ１が発生した場合、遷移前のシステムの状態が状態Ａ１であるならば、当該イベントａ１の発生により、システムの状態は状態Ａ２へ遷移する旨を示す情報がセル１４７に格納されており、遷移前のシステムの状態が状態Ａ２であるならば、当該イベントａ１の発生により、システムの状態は状態Ａ２のままとなる旨を示す情報がセル１４８に格納されている。なお、図４（ｂ）に示したグループＢの状態表１４１は、例えば図５のように状態表格納部１４に格納されている。
【００２６】
受付部１２は、グループ毎に、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントの関係を図示した状態図を、入力装置２０を介してユーザから受け付ける。なお、受付部１２は、ネットワークを介してユーザのコンピュータから状態図を受け付けてもよい。
【００２７】
状態表作成部１３は、グループ毎に受付部１２が受け付けた状態図を参照して、当該グループにおいて発生する複数のイベントのそれぞれに対応付けて、当該イベントが発生した場合に、当該グループに属するそれぞれの状態について遷移先の状態を示す情報を格納する状態表を作成し、作成した状態表を、グループＩＤに対応付けて状態表格納部１４に格納する。
【００２８】
状態表作成部１３は、図４（ａ）に示したグループＡの状態図から、図３に示した状態表１４１を作成して状態表格納部１４に格納し、図４（ｂ）に示したグループＢの状態図から、図５に示した状態表１４１を作成して状態表格納部１４に格納する。
【００２９】
状態表表示部１５は、入力装置２０を介してユーザから、グループを指定する状態表の表示要求を受け付けた場合に、指定されたグループの状態表を状態表格納部１４から抽出して表示装置２１に表示する。なお、状態表表示部１５は、ネットワークを介してユーザのコンピュータへ状態表を送信するようにしてもよい。
【００３０】
イベント追加部１１は、遷移元の状態、遷移先の状態、および、遷移のトリガーとなるイベントを含むイベント追加要求を、入力装置２０を介してユーザから受け付けた場合に、当該イベント追加要求に含まれている遷移元の状態がグループＩＤで指定されているか否かを判定する。
【００３１】
イベント追加要求は、例えば図６に示すように、イベントＩＤ３１、遷移元の状態の状態ＩＤを示す遷移元の状態３２、および、遷移先の状態の状態ＩＤを示す遷移先の状態３３を有する。イベント追加部１１は、イベント追加要求３０を受信した場合に、遷移元の状態３２としてグループＩＤが指定されているか否かを判定する。図６の例では、遷移元の状態３２には状態ＩＤが指定されている。
【００３２】
遷移元の状態が状態ＩＤで指定されている場合、イベント追加部１１は、当該状態ＩＤに対応する状態が属するグループの状態表を状態表格納部１４から抽出する。図６の例では、遷移元の状態が状態Ａ２であり、状態Ａ２はグループＡに属する状態なので、イベント追加部１１は、図３に示したグループＡの状態表１４１を状態表格納部１４から抽出する。
【００３３】
次に、イベント追加部１１は、抽出した状態表内に、イベント追加要求に含まれているイベントが存在するか否かを判定する。抽出した状態表内にイベント追加要求に含まれているイベントが存在しない場合、イベント追加部１１は、イベント追加要求に含まれているイベントを当該状態表に追加し、追加したイベントとイベント追加要求に含まれている遷移元の状態の組み合わせに対応するセルに、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態を追加する。
【００３４】
図６の例では、イベント追加要求に含まれているイベントはイベントｘ１であり、当該イベントｘ１は図３に示したグループＡの状態表１４１内には存在しないので、イベント追加部１１は、当該イベントｘ１をグループＡの状態表１４１に追加する。そして、イベント追加部１１は、追加したイベントｘ１とイベント追加要求３０に含まれている遷移元の状態である状態Ａ２の組み合わせに対応するセルに、当該イベント追加要求３０に含まれている遷移先の状態である状態Ｂ１を追加する。
【００３５】
次に、イベント追加部１１は、追加した遷移先の状態を参照して、追加した遷移先の状態が、追加された状態表に対応するグループに属しているか否かを判定する。追加した遷移先の状態が、追加された状態表に対応するグループに属していない場合、イベント追加部１１は、遷移先の状態を追加したセルのグループ間遷移フラグ１４５に１を設定する。そして、イベント追加部１１は、追加したイベントに対応する他のセルに、遷移元の状態の状態ＩＤと同一の状態ＩＤを設定する。
【００３６】
なお、新たにイベントを追加する場合、追加したイベントに対応するセルも新たに追加されるが、この場合、新たに追加されたセルの書換禁止フラグ１４４、グループ間遷移フラグ１４５、およびグループ内追加フラグ１４６には、初期値として１以外の値（例えば０）が設定される。
【００３７】
図６の例では、追加した遷移先の状態である状態Ｂ１が、追加された状態表のグループであるグループＡに属していないため、イベント追加部１１は、遷移先の状態を追加したセルのグループ間遷移フラグ１４５に１を設定し、追加したイベントに対応する他のセルに、遷移元の状態の状態ＩＤと同一の状態ＩＤを設定する。これにより、グループＡの状態表１４１は、例えば図７のようになる。
【００３８】
図７に示した状態表を状態図に表すと、例えば図８のようになる。しかし、グループ間の遷移イベントも状態図に書き表すと、状態数が多い場合には状態表が見にくくなってしまうため、本実施形態の状態設計支援装置１０は、グループ間の状態遷移を示す情報を表示装置２１に表示しない。
【００３９】
なお、イベント追加要求３０には、遷移元の状態３２および遷移先の状態３３の組が複数指定されていてもよい。この場合、それぞれの組において、遷移元の状態３２および遷移先の状態３３は、いずれも状態ＩＤで指定される。イベント追加部１１は、それぞれの組について、抽出した状態表の対応するセルに遷移先の状態を追加する。
【００４０】
また、受付部１２が、図９に示すように、遷移元の状態３２および遷移先の状態３３として同一のグループ（図９の例ではグループＡ）に属する状態の状態ＩＤを指定するイベント追加要求３０をユーザから受け付けた場合、イベント追加部１１は、当該同一のグループであるグループＡに対応する状態表内に、イベント追加要求３０に含まれているイベントａ５追加する。そして、イベント追加部１１は、追加したイベントａ５とイベント追加要求に含まれている遷移元の状態である状態Ａ３の組み合わせに対応するセルに、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態である状態Ａ２を追加する。
【００４１】
そして、イベント追加部１１は、追加した遷移先の状態である状態Ａ２が、追加された状態表のグループであるグループＡに属しているため、遷移先の状態を追加したセルのグループ内追加フラグ１４６に１を設定し、追加したイベントに対応する他のセルに、遷移元の状態の状態ＩＤと同一の状態ＩＤを設定する。これにより、グループＡの状態表１４１は、例えば図１０のようになる。
【００４２】
図１０に示した状態表を状態図に表すと、例えば図１１のようになる。図１１において、追加されたイベントに対応する矢印は点線で示されている。本実施形態において状態設計支援装置１０は、グループ内の状態遷移に関しては状態図に記載して表示する。ただしこの場合、状態設計支援装置１０は、イベント追加要求３０に基づいて追加されたグループ内の状態遷移に関する情報と、ユーザが状態設計支援装置１０に入力した状態図に記載されていた情報とは異なる態様で状態図に記載する。異なる態様とは、例えば、異なる色の矢印、異なる線種の矢印、あるいは、異なる太さの矢印等が考えられる。これにより、ユーザは、最初に作成した状態図の状態遷移と、後から追加された状態遷移とを区別することができる。
【００４３】
また、受付部１２が、図１２に示すように、遷移元の状態３２がグループＩＤで指定されるイベント追加要求３０をユーザから受け付けた場合、イベント追加部１１は、当該グループＩＤに対応する状態表を状態表格納部１４から抽出し、抽出した状態表内に、イベント追加要求に含まれているイベントｘ２が存在しないため、イベント追加要求に含まれているイベントｘ２を、抽出した状態表に追加する。
【００４４】
そして、イベント追加部１１は、追加したイベントｘ２とイベント追加要求に含まれている遷移元の状態（この場合、グループＡに属する全ての状態である状態Ａ１、状態Ａ２、および状態Ａ３のそれぞれ）の組み合わせに対応するセルに、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態である状態Ｂ１を追加する。
【００４５】
そして、追加した遷移先の状態である状態Ｂ１が、追加された状態表のグループであるグループＡに属していないため、イベント追加部１１は、遷移先の状態である状態Ｂ１を追加したセルのグループ間遷移フラグ１４５に１を設定する。本例では、追加したイベントに対応する全てのセルに遷移先の状態が追加される。これにより、グループＡの状態表１４１は、例えば図１３のようになる。図１３に示した状態表を状態図に表すと、例えば図１４のようになる。
【００４６】
状態Ａ１、状態Ａ２、および状態Ａ３のそれぞれを遷移元の状態とするイベント追加要求３０を３種類別々に状態設計支援装置１０に入力することでも、同様のイベントの追加は可能であるが、グループ単位で遷移元の状態を指定することにより、より少ない入力情報で、複数の状態遷移先を追加することができ、ユーザの入力に係る負担を軽減することができる。
【００４７】
また、受付部１２が、図１５に示すように、イベントＩＤ３１として既存のイベントａ１を指定すると共に、遷移元の状態３２をグループＩＤで指定するイベント追加要求３０をユーザから受け付けた場合、イベント追加部１１は、遷移元の状態３２で指定されているグループＩＤに対応する状態表を状態表格納部１４から抽出し、抽出した状態表内に、イベント追加要求に含まれているイベントａ１が存在することを検出する。
【００４８】
そして、イベント追加部１１は、イベント追加要求に含まれているイベントａ１とイベント追加要求に含まれている遷移元の状態（この場合、グループＡに属する全ての状態である状態Ａ１、状態Ａ２、および状態Ａ３のそれぞれ）の組み合わせに対応するセルの中で、書換禁止フラグ１４４に１が設定されていないセルについて、当該イベントａ１が発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態である状態Ｂ１に書き換える。
【００４９】
そして、書き換えた遷移先の状態のである状態Ｂ１が、書き換えた状態表のグループであるグループＡに属していないため、イベント追加部１１は、遷移先の状態である状態Ｂ１に書き換えたセルのグループ間遷移フラグ１４５に１を設定する。本例では、イベントａ１に対応するセルの中で、書き換えていないセルについては、何も変更しない。これにより、グループＡの状態表１４１は、例えば図１６のようになる。図１６に示した状態表を状態図に表すと、例えば図１７のようになる。
【００５０】
図１に戻って説明を続ける。状態図表示部１６は、入力装置２０を介してユーザから、グループを指定する状態図の表示要求を受け付けた場合に、指定されたグループの状態表を状態表格納部１４から抽出する。そして、状態図表示部１６は、抽出した状態表において、遷移元の状態の欄にある状態ＩＤに対応する状態を配置し、それぞれのイベントＩＤに対応するイベントについて、遷移元から遷移先へ当該イベントを示す矢印を配置する。
【００５１】
このとき、状態図表示部１６は、遷移元の状態と遷移先の状態とが同一のセル、および、グループ間遷移フラグ１４５に１が設定されているセルを、矢印の表示対象から除外する。また、状態図表示部１６は、グループ内追加フラグ１４６に１が設定されているセルに示されている状態への矢印を、グループ内追加フラグ１４６に１が設定されていないセルに示されている状態への矢印とは異なる態様の矢印とする。そして、状態図表示部１６は、このようにして作成した、ユーザから指定されたグループの状態図を表示装置２１に表示する。
【００５２】
図１８は、状態設計支援装置１０の動作の一例を示すフローチャートである。例えば所定の設定を経て起動することにより、状態設計支援装置１０は、本フローチャートに示す動作を開始する。
【００５３】
まず、受付部１２は、入力装置２０を介して、グループ毎に状態図の入力を受け付けたか否かを判定する（Ｓ２００）。状態図の入力を受け付けていない場合（Ｓ２００：Ｎｏ）、受付部１２は、状態図の入力を受け付けるまでステップＳ２００に示した処理を繰り返す。
【００５４】
状態図の入力を受け付けた場合（Ｓ２００：Ｙｅｓ）、受付部１２は、受け付けた状態図を状態表作成部１３へ送る。状態表作成部１３は、グループ毎に、受付部１２から受け取った状態図を参照して、状態表を作成し（Ｓ２０１）、作成した状態表を、グループＩＤに対応付けて状態表格納部１４に格納する。
【００５５】
次に、イベント追加部１１は、入力装置２０を介してイベント追加要求を受信したか否かを判定する（Ｓ２０２）。イベント追加要求を受信した場合（Ｓ２０２：Ｙｅｓ）、イベント追加部１１は、後述するイベント追加処理を実行し（Ｓ３００）、再びステップＳ２０２に示した処理を実行する。
【００５６】
イベント追加要求を受信していない場合（Ｓ２０２：Ｎｏ）、状態表表示部１５は、入力装置２０を介してユーザからグループを指定する状態表の表示要求を受け付けたか否かを判定する（Ｓ２０３）。状態表の表示要求を受け付けた場合（Ｓ２０３：Ｙｅｓ）、状態図表示部１６は、指定されたグループの状態表を状態表格納部１４から抽出して表示装置２１に表示し（Ｓ２０４）、イベント追加部１１は、再びステップＳ２０２に示した処理を実行する。
【００５７】
状態表の表示要求を受け付けていない場合（Ｓ２０３：Ｎｏ）、状態図表示部１６は、入力装置２０を介してユーザからグループを指定する状態図の表示要求を受け付けたか否かを判定する（Ｓ２０５）。状態図の表示要求を受け付けた場合（Ｓ２０５：Ｙｅｓ）、状態図表示部１６は、後述する状態図の表示処理を実行し（Ｓ４００）、イベント追加部１１は、再びステップＳ２０２に示した処理を実行する。
【００５８】
状態図の表示要求を受け付けていない場合（Ｓ２０５：Ｎｏ）、状態設計支援装置１０は、終了の指示を入力装置２０を介してユーザから受け付けていなければ（Ｓ２０６：Ｎｏ）、イベント追加部１１が再びステップＳ２０２に示した処理を実行し、終了の指示を入力装置２０を介してユーザから受け付けていれば（Ｓ２０６：Ｙｅｓ）、受付部１２が再びステップＳ２００に示した処理を実行する。
【００５９】
図１９は、イベント追加部１１によって実行されるイベント追加処理（Ｓ３００）の一例を示すフローチャートである。
【００６０】
まず、イベント追加部１１は、受付部１２から受け取ったイベント追加要求を参照して、当該イベント追加要求に含まれている遷移元の状態がグループＩＤで指定されているか否かを判定する（Ｓ３０１）。遷移元の状態がグループＩＤで指定されている場合（Ｓ３０１：Ｙｅｓ）、イベント追加部１１は、当該グループＩＤに対応する状態表を状態表格納部１４から抽出し（Ｓ３０２）、ステップＳ３０４に示す処理を実行する。
【００６１】
遷移元の状態が状態ＩＤで指定されている場合（Ｓ３０１：Ｎｏ）、イベント追加部１１は、当該状態ＩＤに対応する状態が属するグループの状態表を状態表格納部１４から抽出する（Ｓ３０３）。そして、イベント追加部１１は、抽出した状態表内に、イベント追加要求に含まれているイベントが存在するか否かを判定する（Ｓ３０４）。
【００６２】
抽出した状態表内にイベント追加要求に含まれているイベントが存在する場合（Ｓ３０４：Ｙｅｓ）、イベント追加部１１は、イベント追加要求に含まれているイベントおよび遷移元の状態の組み合わせに対応するセルの中で、書換禁止フラグ１４４に１が設定されていないセルについて、当該イベントが発生した場合における遷移先を、当該イベント追加要求に含まれている遷移先の状態に書き換え（Ｓ３０５）、ステップＳ３０７に示す処理を実行する。
【００６３】
抽出した状態表内にイベント追加要求に含まれているイベントが存在しない場合（Ｓ３０４：Ｎｏ）、イベント追加部１１は、イベント追加要求に含まれているイベントを、抽出した状態表内に追加し、追加したイベントとイベント追加要求に含まれている遷移元の状態の組み合わせに対応するセルに、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態を追加する（Ｓ３０６）。
【００６４】
次に、イベント追加部１１は、追加または書き換えた遷移先の状態が、変更を加えた状態表に対応するグループに属しているか否かを判定する（Ｓ３０７）。追加または書き換えた遷移先の状態が、変更を加えた状態表に対応するグループに属している場合（Ｓ３０７：Ｙｅｓ）、イベント追加部１１は、遷移先の状態を追加または書き換えたセルのグループ内追加フラグ１４６に１を設定し（Ｓ３０８）、本フローチャートに示したイベント追加処理を終了する。
【００６５】
追加または書き換えた遷移先の状態が、変更を加えた状態表に対応するグループに属していない場合（Ｓ３０７：Ｎｏ）、イベント追加部１１は、遷移先の状態を追加または書き換えたセルのグループ間遷移フラグ１４５に１を設定し（Ｓ３０９）、本フローチャートに示したイベント追加処理を終了する。
【００６６】
図２０は、状態図表示部１６によって実行される状態図の表示処理（Ｓ４００）の一例を示すフローチャートである。
【００６７】
まず、状態図表示部１６は、入力装置２０を介してユーザから受け付けた状態図の表示要求において指定されているグループの状態表を状態表格納部１４から抽出する（Ｓ４０１）。そして、状態図表示部１６は、抽出した状態表において、遷移元の状態と遷移先の状態とが同一のセルを表示対象から除外すると共に（Ｓ４０２）、グループ間遷移フラグ１４５に１が設定されているセルを表示対象から除外する（Ｓ４０３）。
【００６８】
次に、状態図表示部１６は、抽出した状態表において残ったセルについて、グループ内追加フラグ１４６に１が設定されているセルに示されている状態への矢印を、グループ内追加フラグ１４６に１が設定されていないセルに示されている状態への矢印とは異なる態様の矢印として状態図を作成する（Ｓ４０４）。そして、状態図表示部１６は、作成した状態図を表示装置２１に表示し（Ｓ４０５）、本フローチャートに示した状態図の表示処理を終了する。
【００６９】
図２１は、状態設計支援装置１０の機能を実現するコンピュータ４０の一例を示すハードウェア構成図である。コンピュータ４０は、ＣＰＵ（Central Processing Unit）４１、ＲＡＭ（Random Access Memory）４２、ＲＯＭ（Read Only Memory）４３、ＨＤＤ（Hard Disk Drive）４４、通信インターフェイス（Ｉ／Ｆ）４５、入出力インターフェイス（Ｉ／Ｆ）４６、およびメディアインターフェイス（Ｉ／Ｆ）４７を備える。
【００７０】
ＣＰＵ４１は、ＲＯＭ４３またはＨＤＤ４４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ４３は、コンピュータ４０の起動時にＣＰＵ４１によって実行されるブートプログラムや、コンピュータ４０のハードウェアに依存するプログラム等を格納する。
【００７１】
ＨＤＤ４４は、ＣＰＵ４１によって実行されるプログラムを格納する。通信インターフェイス４５は、通信回線を介して他の機器からデータを受信してＣＰＵ４１へ送ると共に、ＣＰＵ４１が生成したデータを、通信回線を介して他の機器へ送信する。
【００７２】
ＣＰＵ４１は、入出力インターフェイス４６を介して、モニタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。ＣＰＵ４１は、入出力インターフェイス４６を介して、入力装置からデータを取得する。また、ＣＰＵ４１は、生成したデータを、入出力インターフェイス４６を介して出力装置へ出力する。
【００７３】
メディアインターフェイス４７は、記録媒体４８に格納されたプログラムまたはデータを読み取り、ＲＡＭ４２を介してＣＰＵ４１に提供する。ＣＰＵ４１は、当該プログラムを、メディアインターフェイス４７を介して記録媒体４８からＲＡＭ４２上にロードし、ロードしたプログラムを実行する。記録媒体４８は、例えばＤＶＤ（Digital Versatile Disk）、ＰＤ（Phase change rewritable Disk）等の光学記録媒体、ＭＯ（Magneto-Optical disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【００７４】
コンピュータ４０のＣＰＵ４１は、ＲＡＭ４２上にロードされたプログラムを実行することにより、イベント追加部１１、受付部１２、状態表作成部１３、状態表格納部１４、状態表表示部１５、および状態図表示部１６の各機能を実現する。ＲＡＭ４２またはＨＤＤ４４には、状態表格納部１４内のデータが格納される。
【００７５】
コンピュータ４０は、これらのプログラムを、記録媒体４８から読み取って実行するが、他の例として、他の装置から、通信媒体を介してこれらのプログラムを取得してもよい。通信媒体とは、通信回線、または、当該通信回線を伝搬するディジタル信号もしくは搬送波を指す。
【００７６】
以上、本発明の実施の形態について説明した。
【００７７】
上記説明から明らかなように、本実施形態の状態設計支援装置１０によれば、状態図および状態表を見易く表示することができる。
【００７８】
なお、本発明は、上記した実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００７９】
例えば、他の形態として、状態設計支援装置１０は、図２２に示すように、遷移元の状態３２および遷移先の状態３３の組み合わせを２つ有し、一方の遷移元の状態３２がグループＩＤで指定され、他方の遷移元の状態３２が状態ＩＤで指定されるイベント追加要求３０をユーザから受け付けるようにしてもよい。この場合、イベント追加部１１は、いずれかの遷移元の状態３２で指定されている情報に対応する状態表を状態表格納部１４から抽出する。本例において、１つのイベント追加要求３０では、遷移元の状態３２は全て同一のグループの状態が指定されるものとする。
【００８０】
そして、イベント追加部１１は、抽出した状態表内に、イベント追加要求３０に含まれているイベントｘ３が存在しないため、抽出した状態表にイベント追加要求に含まれているイベントｘ３を追加する。そして、イベント追加部１１は、イベント追加要求３０に含まれている遷移元の状態の中で、状態ＩＤとして指定されている情報（図２２の例では状態Ａ３）を抽出し、抽出した状態ＩＤと追加したイベントｘ３の組み合わせに対応するセルに、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態である状態Ｂ２を追加する。そして、イベント追加部１１は、遷移先の状態である状態Ｂ２を追加したセルのグループ間遷移フラグ１４５に１を設定する。
【００８１】
次に、イベント追加部１１は、イベント追加要求３０に含まれている遷移元の状態の中で、グループＩＤとして指定されている情報（図２２の例ではグループＡ）を抽出し、抽出したグループＩＤに属するそれぞれの状態と追加したイベントｘ３の組み合わせに対応するセルの中で、当該イベント要求３０に応じて既に遷移先を追加したセル以外のセルについて、当該イベントが発生した場合における遷移先として、当該イベント追加要求に含まれている遷移先の状態である状態Ｂ１を追加する。そして、イベント追加部１１は、遷移先の状態である状態Ｂ１を追加したセルのグループ間遷移フラグ１４５に１を設定する。
【００８２】
このように、イベント追加部１１は、状態ＩＤで指定されている遷移元の遷移先を優先的に変更し、残りの遷移元の状態については、グループ単位で同一の遷移先とする。これにより、グループＡの状態表１４１は、例えば図２３のようになる。図２３に示した状態表を状態図に表すと、例えば図２４のようになる。
【００８３】
同一の遷移先となる遷移元の状態をグループＩＤで指定し、異なる遷移先となる遷移元の状態を状態ＩＤで個別に指定することにより、ユーザは、任意の状態遷移のイベントを１つのイベント追加要求３０で追加することができる。このような入力のしかたでも、ユーザの入力に係る負担を軽減することができる。
【００８４】
また、上記した実施形態において、状態図表示部１６は、入力装置２０を介してユーザから、グループを指定する状態図の表示要求を受け付けた場合に、指定されたグループの状態表に基づいて状態図を新規に作成するが、本発明はこれに限られない。例えば、状態図表示部１６は、受付部１２がユーザから受け付けた状態図をグループ毎に保持し、グループを指定する状態図の表示要求をユーザから受け付けた場合に、保持している状態図の中から指定されたグループの状態図を取り出し、指定されたグループの状態表に基づいて取り出した状態図を修正するようにしてもよい。これにより、ユーザは、自分が作成した状態図と同一の状態の配置で状態図を閲覧することができ、ユーザの作業効率を向上させることができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態に係る状態設計支援装置１０の機能構成を示すブロック図である。
【図２】本実施形態における状態図および状態表の作成手順の一例を示すフローチャートである。
【図３】状態表格納部１４に格納されるデータの構造の一例を示す図である。
【図４】グループ毎の状態図の一例を示す概念図である。
【図５】状態表格納部１４に格納されるデータの構造の一例を示す図である。
【図６】状態設計支援装置１０に入力されるイベント追加要求３０のデータ構造の一例を示す図である。
【図７】イベント追加要求３０に基づいて修正された状態表の一例を示す概念図である。
【図８】修正された状態表の内容を説明するための概念図である。
【図９】状態設計支援装置１０に入力されるイベント追加要求３０のデータ構造の他の例を示す図である。
【図１０】イベント追加要求３０に基づいて修正された状態表の一例を示す概念図である。
【図１１】修正された状態表の内容を説明するための概念図である。
【図１２】状態設計支援装置１０に入力されるイベント追加要求３０のデータ構造の更なる他の例を示す図である。
【図１３】イベント追加要求３０に基づいて修正された状態表の一例を示す概念図である。
【図１４】修正された状態表の内容を説明するための概念図である。
【図１５】状態設計支援装置１０に入力されるイベント追加要求３０のデータ構造の更なる他の例を示す図である。
【図１６】イベント追加要求３０に基づいて修正された状態表の一例を示す概念図である。
【図１７】修正された状態表の内容を説明するための概念図である。
【図１８】状態設計支援装置１０の動作の一例を示すフローチャートである。
【図１９】イベント追加部１１によって実行されるイベント追加処理（Ｓ３００）の一例を示すフローチャートである。
【図２０】状態図表示部１６によって実行される状態図の表示処理（Ｓ４００）の一例を示すフローチャートである。
【図２１】状態設計支援装置１０の機能を実現するコンピュータ４０の一例を示すハードウェア構成図である。
【図２２】状態設計支援装置１０に入力されるイベント追加要求３０のデータ構造の更なる他の例を示す図である。
【図２３】イベント追加要求３０に基づいて修正された状態表の一例を示す概念図である。
【図２４】修正された状態表の内容を説明するための概念図である。
【符号の説明】
【００８６】
１０・・・状態設計支援装置、１１・・・イベント追加部、１２・・・受付部、１３・・・状態表作成部、１４・・・状態表格納部、１４０・・・グループＩＤ、１４１・・・状態表、１４２・・・イベントＩＤ、１４３・・・状態ＩＤ、１４４・・・書換禁止フラグ、１４５・・・グループ間遷移フラグ、１４６・・・グループ内追加フラグ、１４７・・・セル、１４８・・・セル、１５・・・状態表表示部、１６・・・状態図表示部、２０・・・入力装置、２１・・・表示装置、３０・・・イベント追加要求、３１・・・イベントＩＤ、３２・・・遷移元の状態、３３・・・遷移先の状態、４０・・・コンピュータ、４１・・・ＣＰＵ、４２・・・ＲＡＭ、４３・・・ＲＯＭ、４４・・・ＨＤＤ、４５・・・通信インターフェイス、４６・・・入出力インターフェイス、４７・・・メディアインターフェイス、４８・・・記録媒体
【図１】
2010009349.tif 000003
【図２】
2010009349.tif 000004
【図３】
2010009349.tif 000005
【図４】
2010009349.tif 000006
【図５】
2010009349.tif 000007
【図６】
2010009349.tif 000008
【図７】
2010009349.tif 000009
【図８】
2010009349.tif 000010
【図９】
2010009349.tif 000011
【図１０】
2010009349.tif 000012
【図１１】
2010009349.tif 000013
【図１２】
2010009349.tif 000014
【図１３】
2010009349.tif 000015
【図１４】
2010009349.tif 000016
【図１５】
2010009349.tif 000017
【図１６】
2010009349.tif 000018
【図１７】
2010009349.tif 000019
【図１８】
2010009349.tif 000020
【図１９】
2010009349.tif 000021
【図２０】
2010009349.tif 000022
【図２１】
2010009349.tif 000023
【図２２】
2010009349.tif 000024
【図２３】
2010009349.tif 000025
【図２４】
2010009349.tif 000026