(57)【要約】【課題】モジュールの状態遷移を容易に表すことができ、状態遷移表と連携するシーケンス図を作成できること。【解決手段】シーケンス図作成装置は、対象装置がとりうる状態とイベントの入力により、オブジェクトの時間方向に沿って状態とイベント発生に基づく状態の遷移の情報と、を設定して表示可能な状態遷移付きシーケンス図７０１を作成する。また、状態遷移付きシーケンス図７０１の作成に連携して、状態とイベントが交差するマス部分に、ハンドラ関数と、次の遷移した状態を設定し、状態遷移表７０２を作成する。この際、作成した状態遷移付きシーケンス図７０１および状態遷移表７０２のうち一方の設定を他方に反映させて表示する。【選択図】図７
2019050046.tif 000002
【特許請求の範囲】
【請求項１】
対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成し、前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示する制御部、を備え、
前記制御部は、
前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示し、
前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示し、
作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示する、
ことを特徴とするシーケンス図作成装置。
【請求項２】
前記制御部は、
前記状態遷移付きシーケンス図に、前記対象装置の使用手順にしたがって前記状態と、前記状態における前記イベント発生による前記状態の遷移の情報と、を順次設定する際、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を順次表示し、
前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域への設定毎に、対応する状態遷移を順次表示する、
ことを特徴とする請求項１に記載のシーケンス図作成装置。
【請求項３】
前記制御部は、
前記状態遷移付きシーケンス図の作成時に、前記状態と、前記イベント発生に基づく前記状態の遷移とに基づき、前記状態遷移表の該当する前記状態と前記イベントが交差するマス部分のデータを埋める
ことを特徴とする請求項１または２に記載のシーケンス図作成装置。
【請求項４】
コンピュータが、
対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、
前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成し、
前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示し、
前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示し、
前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示し、
作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示する、
処理を実行することを特徴とするシーケンス図作成方法。
【請求項５】
コンピュータに、
対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、
前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成させ、
前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示させ、
前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示させ、
前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示させ、
作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示させる、
処理を実行させることを特徴とするシーケンス図作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、シーケンス図を作成するシーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラムに関する。
【背景技術】
【０００２】
従来、複数のモジュールそれぞれのイベントを時系列に表したシーケンス図がＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）等で規定されている。そして、ソースコードに基づき、ソースコードに含まれるモジュール（ソフトウェア）間の処理を特定するシーケンス図を作成する技術が開示されている（例えば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９５０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、イベントに基づくモジュール（ソフトウェア）内での状態を表すことができなかった。モジュール（ソフトウェア）は、イベントの発生により、状態が変化（遷移）するが、シーケンス図のみでは、モジュールの状態遷移を判断することができなかった。また、シーケンス図の作成とは別に、状態遷移表を作成する必要があり、状態遷移表の作成に手間がかかった。
【０００５】
また、シーケンス図は、対象装置に対するユースケース（使用手順例）毎に多数作成する必要があり、シーケンス図と状態遷移表の整合が必要であるが、従来はこれらシーケンス図と状態遷移表の作成が個別に行われるため、不整合を容易に検出できなかった。また、一方の修正を他方に容易に反映させることができず、修正作業に手間がかかった。
【０００６】
本発明は、上記課題に鑑み、モジュールの状態遷移を容易に表すことができ、状態遷移表と連携するシーケンス図を作成できることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のシーケンス図作成装置は、対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成し、前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示する制御部、を備え、前記制御部は、前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示し、前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示し、作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示する、ことを特徴とする。
【０００８】
また、前記制御部は、前記状態遷移付きシーケンス図に、前記対象装置の使用手順にしたがって前記状態と、前記状態における前記イベント発生による前記状態の遷移の情報と、を順次設定する際、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を順次表示し、前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域への設定毎に、対応する状態遷移を順次表示する、ことを特徴とする。
【０００９】
また、前記制御部は、前記状態遷移付きシーケンス図の作成時に、前記状態と、前記イベント発生に基づく前記状態の遷移とに基づき、前記状態遷移表の該当する前記状態と前記イベントが交差するマス部分のデータを埋めることを特徴とする。
【００１０】
また、本発明のシーケンス図作成方法は、コンピュータが、対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成し、前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示し、前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示し、前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示し、作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示する、処理を実行することを特徴とする。
【００１１】
また、本発明のシーケンス図作成プログラムは、コンピュータに、対象装置がとりうる状態と、発生したイベントに関する情報一覧を表示する状態遷移付きシーケンス図と、前記状態遷移付きシーケンス図の前記状態と、前記イベント発生に基づく前記状態の遷移とに基づく状態遷移表を作成させ、前記状態遷移付きシーケンス図および前記状態遷移表を同一画面上に表示させ、前記状態遷移付きシーケンス図の表示領域には、所定の時間方向に沿って複数の前記イベントに対応する複数の空の入力領域を表示し、前記時間方向に沿って一つの前記入力領域への前記状態と前記イベント発生に基づく前記状態の遷移の情報の設定状態を表示させ、前記状態遷移表の表示領域には、前記状態遷移付きシーケンス図の前記入力領域に対応する状態遷移を表示させ、作成した前記状態遷移付きシーケンス図および前記状態遷移表のうち一方の設定を他方に反映させて表示させる、処理を実行させることを特徴とする。
【００１２】
上記構成によれば、シーケンス図のオブジェクトの時間方向に、イベントに対応して遷移する状態を設定した状態遷移付きシーケンス図として作成する。シーケンス図にイベント毎の状態遷移が記載されているため、遷移する状態を一目で分かることができるようになる。また、シーケンス図の作成に連携して、状態遷移表の状態とイベントの交差部分の該当するマス部分を埋めて状態遷移表を容易に作成することができる。また、シーケンス図上で表現する状態遷移と、状態遷移表上で表現する状態遷移の矛盾を自動的に検出することもできる。
【発明の効果】
【００１３】
本発明によれば、モジュールの状態遷移を容易に表すことができ、状態遷移表と連携するシーケンス図を作成できるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態にかかるシーケンス図作成装置が作成する状態遷移付きシーケンス図を示す図である。
【図２】図２は、シーケンス図作成装置のハードウェア構成例を示すブロック図である。
【図３】図３は、実施の形態にかかるシーケンス図作成装置の機能ブロック図である。
【図４】図４は、対象装置のキッチンタイマーを示す図である。
【図５】図５は、対象装置のキッチンタイマーの使用手順を示す図である。
【図６】図６は、対象装置のキッチンタイマーの状態とイベントを示す図である。
【図７】図７は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（初期状態）を示す図である。
【図８】図８は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（分ボタン押下時）を示す図である。
【図９】図９は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（秒ボタン押下時）を示す図である。
【図１０】図１０は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（スタートボタン押下時）を示す図である。
【図１１】図１１は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（タイマー通知時）を示す図である。
【図１２】図１２は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（ストップボタン押下時）を示す図である。
【図１３】図１３は、実施の形態にかかる状態遷移付きシーケンス図の作成手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（実施の形態）
以下に添付図面を参照して、この発明にかかるシーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラムの好適な実施の形態を詳細に説明する。
【００１６】
（状態遷移付きシーケンス図の例）
図１は、実施の形態にかかるシーケンス図作成装置が作成する状態遷移付きシーケンス図を示す図である。縦軸は時間、横軸には複数のオブジェクトとオブジェクト間のイベントのやり取りが示される。
【００１７】
対象装置は、オブジェクト（ソフトウェア）、イベント（受信等）をトリガとして状態が変化（遷移）する。このため、実施の形態では、オブジェクト（ソフトウェア）状態をイベントに対応付けて時間方向に表す。
【００１８】
図１に示す例では、一つのオブジェクト（ソフトウェアＡ）１００に対するイベントの受信毎のオブジェクト１００の状態を対応付ける。状態Ｘは、例えばユーザのボタン押下のイベントＵＡの受信で処理Ａを行い、状態Ｙに遷移する。この際、オブジェクト１００は、イベントＵＡの受信に基づく処理Ａに対応したイベントＡＢを他のオブジェクト（他のソフトウェアＢ）に送信する。
【００１９】
状態Ｙは、他のオブジェクト（他のソフトウェアＢ）が送信したイベントＢＡの受信で処理Ｂを行い、状態Ｚに遷移する。この際、オブジェクト１００は、イベントＢＡの受信に基づく処理Ｂに対応したイベントＡＵを他のオブジェクトに（例えばユーザに向けて）送信する。状態Ｚは、次のイベント待ちを示す。図示のように、オブジェクト（ソフトウェアＡ）１００に対するイベントの受信毎のオブジェクト１００の状態遷移を時間方向に対応付ける。
【００２０】
一般的に、ソフトウェア開発は、下記１．２．の手順で行う。
１．外部仕様の確認
動作仕様の確認、状態とイベントのリストアップ
２．状態遷移設計
状態遷移表の作成（リストアップした状態とイベントに基づき作成する）
【００２１】
実施の形態の状態付きシーケンス図は、上記２．の状態遷移設計における状態遷移表の作成を支援することができる。
【００２２】
（シーケンス図作成装置のハードウェア構成）
図２は、シーケンス図作成装置のハードウェア構成例を示すブロック図である。図２において、シーケンス図作成装置２００は、制御部（ＣＰＵ）２０１と、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０２と、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０３と、半導体メモリやディスクドライブ等の記憶部２０４と、通信インターフェース（Ｉ／Ｆ）２０５と、を含む。これらＣＰＵ２０１〜通信インターフェース２０５、キーボード２０６、ディスプレイ２０７は、バス２０８によってそれぞれ接続されている。
【００２３】
ＣＰＵ２０１は、シーケンス図作成装置２００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、シーケンス図作成装置２００のプログラム等を記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。記憶部２０４には、作成されたシーケンス図や状態遷移表等が格納保持される。
【００２４】
通信インターフェース２０５は、ネットワーク２１０とのインターフェースを司り、データの入出力を制御する。具体的に、通信インターフェース２０５は、通信回線を通じてネットワーク２１０となるＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）、インターネットなどに接続され、ネットワーク２１０を介して他の装置に接続される。
【００２５】
ディスプレイ２０７は、ＣＰＵ２０１のプログラム実行により、記憶部２０４から読み出したシーケンス図や状態遷移表を表示する装置である。ディスプレイ２０７には、例えば、Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ（ＴＦＴ）液晶表示部、プラズマ表示部、有機ＥＬ表示部などを採用することができる。
【００２６】
（シーケンス図作成装置の機能）
図３は、実施の形態にかかるシーケンス図作成装置の機能ブロック図である。シーケンス図作成装置２００は、入力部３０１と、シーケンス図作成部３０２と、状態遷移表作成部３０３と、出力部３０４と、を有する。
【００２７】
入力部３０１には、対象装置のユースケース（使用手順例）に対応した状態と、イベントと、ハンドラ関数のデータが入力され、シーケンス図作成部３０２は、ユースケース毎の状態とイベントとに基づき、シーケンス図を作成する。
【００２８】
この際、状態遷移付加部３１１は、一つのオブジェクト（ソフトウェア）１００に対するイベントの受信毎のオブジェクト１００の状態を対応付けて設定する。この設定状態は、図１の如く、オブジェクト１００に対するイベントの受信毎のオブジェクト１００の状態遷移として設定し、状態遷移付きのシーケンス図として作成され、出力部３０４を介して外部出力可能である。
【００２９】
また、状態遷移付きのシーケンス図作成時のデータは、状態遷移表作成部３０３にも出力され、状態遷移表作成部３０３は、オブジェクト１００に対するイベントの受信毎のオブジェクト１００の状態遷移を示す状態遷移表を作成する。
【００３０】
この際、現在の状態とイベント受信が交差する該当のマスに、他のオブジェクトに送信するハンドラ関数と、遷移後の状態とを組にして埋め込み、状態遷移表を作成する。作成した状態遷移表は、出力部３０４を介して外部出力可能である。
【００３１】
また、作成した状態遷移付きシーケンス図と、状態遷移表は、制御部３００内のメモリ（図２の記憶部２０４）に格納保持しておき、読み出し可能である。出力部３０４は、外部のディスプレイやプリンタに状態遷移付きのシーケンス図および状態遷移表を表示出力、印刷出力する。
【００３２】
図３の制御部３００の機能は、図２に記載したＣＰＵ２０１がＲＯＭ２０２に格納されたプログラム実行により構成できる。図３の入力部３０１と出力部３０４は、図２に記載した通信インターフェース２０５を用いて構成できる。
【００３３】
（状態遷移付きシーケンス図の作成処理例）
以下、対象装置が組み込み機器であるキッチンタイマーを例に、状態遷移付きシーケンス図の作成処理について説明する。図４は、対象装置のキッチンタイマーを示す図である。キッチンタイマー４００は、表示部４０１と、操作ボタン４０２を有する。
【００３４】
操作ボタン４０２は、分ボタン４０２ａと、秒ボタン４０２ｂと、スタート／ストップボタン４０２ｃとを有する。また、不図示であるが、内部には、プロセッサおよびメモリによる計時機能を有する。
【００３５】
このキッチンタイマー４００は、以下の３つの状態と、４つのイベントがある。
［状態］
１．停止状態
２．カウントダウン状態
３．アラーム状態
［イベント］
１．スタート／ストップ押下イベント（ハードウェアのスタート／ストップボタン４０２ｃ）
２．分押下イベント（ハードウェアの分ボタン４０２ａ）
３．秒押下イベント（ハードウェアの秒ボタン４０２ｂ）
４．タイマー通知イベント（ＣＰＵのソフトウェア処理：カウントダウンの終了通知）
【００３６】
図５は、対象装置のキッチンタイマーの使用手順を示す図である。キッチンタイマー４００は、初期状態で停止しており（ステップＳ５０１）、次に、時間設定を行う（ステップＳ５０２）。時間設定は、分ボタン４０２ａ、秒ボタン４０２ｂを用いて計時したい時間を設定する。
【００３７】
次に、カウントダウンを行う（ステップＳ５０３）。カウントダウンは、スタートボタン４０２ｃの操作で開始し、時間設定分だけカウントダウンする。次に、アラーム鳴動する（ステップＳ５０４）。アラームは、時間設定分だけのカウントダウン満了でキッチンタイマー４００内蔵のアラームを鳴動させる。この後、ストップボタン４０２ｃの操作により鳴動が停止する（ステップＳ５０５）。
【００３８】
図６は、対象装置のキッチンタイマーの状態とイベントを示す図である。図５に示した各使用手順に対応する状態とイベントとを図示してある。状態は、停止状態Ｄ１、カウントダウン状態Ｄ２、アラーム状態Ｄ３と、がある。
【００３９】
停止状態Ｄ１において、イベントＴ１として分ボタン４０２ａの押下があると、分をセットする。またイベントＴ２として秒ボタン４０２ｂの押下があると、秒をセットする。また、イベントＴ３としてスタート／ストップボタン４０２ｃが押下されると、カウントダウンを開始し、状態はカウントダウン状態Ｄ２に遷移する。
【００４０】
カウントダウン状態Ｄ２において、イベントＴ４としてタイマー通知（内部のソフトウェアによるカウントダウン満了時の終了通知）されると、状態はアラーム状態Ｄ３に遷移する。
【００４１】
アラーム状態Ｄ３において、イベントＴ３としてスタート／ストップボタン４０２ｃが押下されると、アラーム鳴動を停止し、状態は停止状態Ｄ１に遷移する（戻る）。
【００４２】
次に、図７〜図１２を用いて、シーケンス図作成装置２００（制御部３００）が行う状態遷移付きシーケンス図および状態遷移表の作成処理について説明する。
【００４３】
図７は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（初期状態）を示す図である。シーケンス図作成装置２００が作成する状態遷移付きシーケンス図７０１と、状態遷移表７０２とが同一の画面７００上に並んで表示される。
【００４４】
図７は、作成の初期状態であり、シーケンス図７０１の画面には、状態一覧７１１と、イベント一覧７１２と、シーケンス図７１３と、ハンドラ関数一覧７１４と、の各領域を有する。状態一覧７１１には、図６に示した状態Ｄ１〜Ｄ３が入力される。イベント一覧７１２には、図６に示したイベントＴ１〜Ｔ４が入力される。ハンドラ関数一覧７１４には、イベントに対応して他のオブジェクトに伝える複数の関数が入力される。
【００４５】
また、状態遷移表７０２には、横軸の各項目には現在（開始時）の３つの状態Ｄ１〜Ｄ３が入力され、縦軸の各項目に４つのイベントＴ１〜Ｔ４が入力され、横３×縦４（＝１２マス）の状態遷移表７０２が作成される。各イベントＴ１〜Ｔ４にはイベント実行後の遷移状態について設定される。
【００４６】
以下、シーケンス図および状態遷移表の作成を順に説明する。図８は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（分ボタン押下時）を示す図である。図中の一つのユースケースは、図５に示した一つの使用手順に対応して作成される。
【００４７】
はじめに、シーケンス図７１３のはじめの状態８０１には、先頭に停止状態Ｄ１が設定される。そして、イベントＴ１（分押下）の入力を設定すると、このイベントＴ１（分押下）に対応するハンドラ関数１が状態Ｄ１１として設定される。
【００４８】
このイベントＴ１では停止状態Ｄ１が維持され一つのイベントに対応する状態８０１（Ｄ１、Ｄ１１、Ｄ１）が設定される。同時に、次の状態８０２の先頭には、維持された停止状態Ｄ１が設定される。
【００４９】
この際、状態遷移表７０２には、停止状態でイベントＴ１（分押下）に対応するマス８１１部分に、ハンドラ関数１と、次の状態（停止状態Ｄ１）が設定される。
【００５０】
図９は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（秒ボタン押下時）を示す図である。図８によって設定された状態８０１の次に、状態８０２を設定する。この状態８０２は、先頭に停止状態Ｄ１が設定されている。
【００５１】
そして、イベントＴ２（秒押下）の入力を設定すると、このイベントＴ２（秒押下）に対応するハンドラ関数２が状態Ｄ１２として設定される。このイベントＴ２では停止状態Ｄ１が維持され一つのイベントに対応する状態８０２（Ｄ１、Ｄ１２、Ｄ１）が設定される。同時に、次の状態８０３の先頭には、維持された停止状態Ｄ１が設定される。
【００５２】
この際、状態遷移表７０２には、停止状態のイベントＴ２（秒押下）に対応するマス８１２部分に、ハンドラ関数２と、次の状態（停止状態Ｄ１）が設定される。
【００５３】
図１０は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（スタートボタン押下時）を示す図である。図９によって設定された状態８０２の次に、状態８０３を設定する。この状態８０３は、先頭に停止状態Ｄ１が設定されている。
【００５４】
そして、イベントＴ３（スタート／ストップボタン押下）の入力を設定すると、このイベントＴ３（スタート／ストップボタン押下）に対応するハンドラ関数３が状態Ｄ１３として設定される。
【００５５】
このイベントＴ３では状態が停止状態Ｄ１からカウントダウン状態Ｄ２に遷移し、一つのイベントに対応する状態８０３（Ｄ１、Ｄ１３、Ｄ２）が設定される。同時に、次の状態８０４の先頭には、遷移したカウントダウン状態Ｄ２が設定される。
【００５６】
この際、状態遷移表７０２には、停止状態のイベントＴ３（スタート／ストップボタン押下）に対応するマス８１３部分に、ハンドラ関数３と、次の状態（カウントダウン状態Ｄ２）が設定される。
【００５７】
図１１は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（タイマー通知時）を示す図である。図１０によって設定された状態８０３の次に、状態８０４を設定する。この状態８０４は、先頭にカウントダウン状態Ｄ２が設定されている。
【００５８】
そして、イベントＴ４（タイマー通知）の入力を設定すると、このイベントＴ４（タイマー通知）に対応するハンドラ関数４が状態Ｄ１４として設定される。
【００５９】
このイベントＴ４では状態がカウントダウン状態Ｄ２からアラーム状態Ｄ３に遷移し、一つのイベントに対応する状態８０４（Ｄ２、Ｄ１４、Ｄ３）が設定される。同時に、次の状態８０５の先頭には、遷移したアラーム状態Ｄ３が設定される。
【００６０】
この際、状態遷移表７０２には、カウントダウン状態のイベントＴ４（タイマー通知）に対応するマス８１４部分に、ハンドラ関数４と、次の状態（アラーム状態Ｄ３）が設定される。
【００６１】
図１２は、実施の形態にかかる状態遷移付きシーケンス図の作成画面（ストップボタン押下時）を示す図である。図１１によって設定された状態８０４の次に、状態８０５を設定する。この状態８０５は、先頭にアラーム状態Ｄ３が設定されている。
【００６２】
そして、イベントＴ３（スタート／ストップボタン押下）の入力を設定すると、このイベントＴ３（スタート／ストップボタン押下）に対応するハンドラ関数５が状態Ｄ１５として設定される。
【００６３】
このイベントＴ３では状態がアラーム状態Ｄ３から停止状態Ｄ１に遷移し、一つのイベントに対応する状態８０５（Ｄ３、Ｄ１５、Ｄ１）が設定される。なお、この際にも、状態８０５の次の状態の先頭には、遷移した停止状態Ｄ１が設定される。
【００６４】
この際、状態遷移表７０２には、アラーム状態のイベントＴ３（スタート／ストップボタン押下）に対応するマス８１５部分に、ハンドラ関数５と、次の状態（停止状態Ｄ１）が設定される。
【００６５】
上記の説明では状態遷移付きシーケンス図７０１が一つのオブジェクトを示すものであったが、各イベントは関連する他のオブジェクトとの間でハンドラ関数をやり取りする。このため、対象装置全体の状態遷移付きシーケンス図７０１としては、複数のオブジェクトそれぞれについて時間方向に状態遷移を示すものが作成されることになる。
【００６６】
図１３は、実施の形態にかかる状態遷移付きシーケンス図の作成手順を示すフローチャートである。制御部３００は、ユースケースの状態と、イベント、およびハンドラ関数のデータ入力を受け付ける（ステップＳ１３０１）。そして、これら状態とイベントの組み合わせにより、初期状態の状態遷移表７０２のマス（図７参照）を作成する（ステップＳ１３０２）。また、初期状態のシーケンス図７０１を作成する。
【００６７】
次に、制御部３００は、ユースケース（使用手順）にしたがい、初期状態から順に一つの状態を設定する（ステップＳ１３０３）。次に、設定した状態で一つのイベントを入力設定する（ステップＳ１３０４）。
【００６８】
この際、制御部３００は、入力されたイベントでの状態の遷移の有無を判断する。状態の遷移がなければ状態は変わらず、次のイベントの入力を待つ。状態遷移すれば、遷移後の状態を新たに設定して、次のイベントの入力を待つ。
【００６９】
そして、制御部３００は、遷移の有無に対応して状態遷移付きシーケンス図７０１を作成する（ステップＳ１３０５）。また、この状態遷移付きシーケンス図７０１の作成に対応して、状態遷移表７０２の該当するマスに関数（ハンドラ関数）と遷移後の状態を設定し（ステップＳ１３０６）、一つのイベントあたりの状態遷移付きシーケンス図７０１の作成を終了する。
【００７０】
以降、次の新たなイベントがあればステップＳ１３０３に戻り、次のイベントに対応する同様の処理を実行し、状態遷移付きシーケンス図７０１と、状態遷移表７０２の作成を継続する。
【００７１】
以上説明したように、シーケンス図のオブジェクトの時間方向に、イベントに対応して遷移する状態を設定した状態遷移付きシーケンス図として作成することができる。このように、シーケンス図にイベント毎の状態遷移が記載されているため、遷移する状態を一目で分かることができるようになる。
【００７２】
この状態遷移付きシーケンス図は、ユースケース（使用手順例）としてそのまま用いることができ、デバッグ手順として利用することが可能となる。
【００７３】
また、シーケンス図の設定と同時に状態遷移表も作成できるようになる。シーケンス図の作成に連携して、マス部分に現在の状態と、ハンドラ関数と、次の遷移状態を設定することができ、状態遷移表を容易に作成することができる。シーケンス図の設定と同時に状態遷移表が作成できるため、別々に作成する必要がなく、また入力後のシーケンス図と状態遷移表の整合性も取れる。
【００７４】
また、状態遷移表を見て入力ミスも容易に見つけることができ、開発設計のチェックを容易に行えるようになり、迅速に修正できるようになる。そして、シーケンス図と状態遷移表とが連携するため、修正時には、他方も同時に修正できる。例えば、状態遷移表を修正すれば、シーケンス図の対応箇所を自動的に修正できるようになる。
【００７５】
シーケンス図上ではさまざまなユースケースに対する個別の局面での状態遷移を表現しており、それらを１枚の状態遷移表としてまとめているため、設計の過程で下記のような問題が発生することがあった。
１．シーケンス図を追加する際に、既に状態遷移表に記載している状態遷移と矛盾した遷移を作成してしまう。
２．状態遷移表上に状態遷移を追加する際に、既に存在するシーケンス図(の一部)と矛盾した遷移を作成してしまう。
【００７６】
シーケンス図は、数十〜数百の局面を想定して個別に作成し、それらをすべて統合して１枚の状態遷移表を作成している。従来、シーケンス図に状態遷移を記載していなかったため、矛盾を発見することが困難であったが、本発明によれば、シーケンス図に状態を表現することによって矛盾を発見しやすくなる。さらに、ツール機能として矛盾を自動的に検出することによって設計上の矛盾を速やかに解消することが可能となる。
【００７７】
また、上記実施の形態では、キッチンタイマーを例に説明したが、他の組み込み機器等の対象装置であっても同様に状態遷移付きシーケンス図と状態遷移表を作成することで、開発効率を向上できるようになる。
【産業上の利用可能性】
【００７８】
以上のように、本発明は、対象装置の開発時のシーケンス図および状態遷移表を作成する装置に有用である。
【符号の説明】
【００７９】
１００  オブジェクト
２００  シーケンス図作成装置
２０１  制御部（ＣＰＵ）
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記憶部
２０５  通信インターフェース
２０６  キーボード
２０７  ディスプレイ
２０８  バス
２１０  ネットワーク
３００  制御部
３０１  入力部
３０２  シーケンス図作成部
３０３  状態遷移表作成部
３０４  出力部
３１１  状態遷移付加部
４００  キッチンタイマー
７００  画面
７０２  状態遷移表
７１１  状態一覧
７１２  イベント一覧
７１４  ハンドラ関数一覧
【図１】
2019050046.tif 000003
【図２】
2019050046.tif 000004
【図３】
2019050046.tif 000005
【図４】
2019050046.tif 000006
【図５】
2019050046.tif 000007
【図６】
2019050046.tif 000008
【図７】
2019050046.tif 000009
【図８】
2019050046.tif 000010
【図９】
2019050046.tif 000011
【図１０】
2019050046.tif 000012
【図１１】
2019050046.tif 000013
【図１２】
2019050046.tif 000014
【図１３】
2019050046.tif 000015