(57)【要約】【課題】  状態遷移図に頻出する状態遷移を共通部データとしてユーザが編集しやすいようにしたプログラム設計装置を得る。【解決手段】  状態遷移図を合成及び分解する合成分解装置２は、合成部２１と、分解部２２と、合成部２１の合成の可否を出力するフラグ部２３とを有し、分解部２２により、状態遷移図を、頻出する共通要素である共通部データと、状態遷移図から共通部データが分離された状態遷移データと、共通部データが適用される状態遷移データの位置を示す共通部データ適用位置情報とに分解すると共に、合成部２１により、これらの状態遷移データ及び共通部データ及び共通部データ適用位置情報から状態遷移図を合成し、これを状態遷移表示編集装置１で編集するようにした。【選択図】図１
2007011463.tif 000002
【特許請求の範囲】
【請求項１】
状態遷移図を表示し、編集する状態遷移表示編集装置、この状態遷移表示編集装置により編集された状態遷移図から、上記状態遷移図に頻出する共通要素である共通部データと上記状態遷移図から上記共通部データが分離された状態遷移データと上記共通部データが適用される上記状態遷移データの位置を示す共通部データ適用位置情報とに分解する分解部、上記共通部データを格納する共通部データ格納装置、上記状態遷移データを格納する状態遷移データ格納装置、上記共通部データ適用位置情報を格納する共通部データ適用位置格納装置、上記共通部データの上記状態遷移データへの合成の可否を設定したフラグを有するフラグ部、及びこのフラグ部の出力に応じて、上記共通部データ適用位置格納装置に格納された上記共通部データ適用位置情報に基き、上記共通部データ格納装置に格納された共通部データを上記状態遷移データ格納装置に格納された状態遷移データに合成して上記状態遷移図を作成する合成部を備え、上記合成部により作成された上記状態遷移図が上記状態遷移表示編集装置での編集に供せられることを特徴とするプログラム設計装置。
【請求項２】
上記フラグ部は、上記状態遷移表示編集装置で編集される状態遷移図に対して、上記共通部データの上記状態遷移データへの合成の可否を設定した第一のフラグを有し、上記合成部は、上記第一のフラグが上記合成可とされているとき、上記共通部データ適用位置情報に基き、上記共通部データを上記状態遷移データに合成して上記状態遷移表示編集装置で編集される状態遷移図を作成すると共に、上記第一のフラグが上記合成不可とされているとき、上記共通部データを上記状態遷移データに合成することなく上記状態遷移図を作成することを特徴とする請求項１記載のプログラム設計装置。
【請求項３】
上記状態遷移図の電子データを出力する状態遷移図出力装置を備え、上記フラグ部は、上記状態遷移図出力装置により出力される上記状態遷移図に対して、上記共通部データの上記状態遷移データへの合成の可否を設定した第二のフラグを有し、上記合成部は、上記第二のフラグが上記合成可とされているとき、上記共通部データ適用位置情報に基き、上記共通部データを上記状態遷移データに合成して上記状態遷移図出力装置により出力される状態遷移図を作成すると共に、上記第二のフラグが上記合成不可とされているとき、上記共通部データを上記状態遷移データに合成することなく上記状態遷移図を作成することを特徴とする請求項２記載のプログラム設計装置。
【請求項４】
上記状態遷移図の電子データを出力する状態遷移図出力装置を備え、上記フラグ部は、上記状態遷移表示編集装置で編集される状態遷移図に対して、上記共通部データの上記状態遷移データへの合成の可否を設定した第一のフラグと、上記状態遷移図出力装置により出力される上記状態遷移図に対して、上記共通部データの上記状態遷移データへの合成の可否を設定した第二のフラグとを有し、上記合成部に対して、上記第一のフラグ及び第二のフラグの論理演算結果を出力すると共に、上記合成部は、上記論理演算結果に応じて、上記共通部データを上記状態遷移データに合成して上記状態遷移図を作成することを特徴とする請求項１記載のプログラム設計装置。
【請求項５】
上記フラグ部の第一のフラグを設定する共通部表示切替手段、及び上記フラグ部の第二のフラグを設定する共通部利用切替手段を備え、上記共通部表示切替手段及び上記共通部利用切替手段は、上記状態遷移表示編集装置の画面上のスイッチとして構成されていることを特徴とする請求項３または請求項４記載のプログラム設計装置。
【請求項６】
上記フラグ部は、上記状態遷移表示編集装置での上記共通部データの編集の可否を設定した第三のフラグを有すると共に、この第三のフラグを設定する共通部編集切替手段を備え、上記状態遷移表示編集装置は、上記第三のフラグに応じて上記共通部データの編集を行うことを特徴とする請求項１〜請求項５のいずれかに記載のプログラム設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、状態遷移図を用いてプログラムを設計するプログラム設計装置に関するものである。
【背景技術】
【０００２】
状態遷移図の記法としては、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ：統一モデリング言語）の定義がある（非特許文献１）。
そして、入力データの再利用によって開発効率の向上を図る手段として、状態遷移図の中で頻繁に使われる状態遷移をデータベースに保存しておき、それを呼び出して状態遷移図に貼り込むという技術がある。（例えば特許文献１）
また、ＵＭＬの記法では、サブマシンという状態遷移への参照を入れ子にして別レイヤーとして記述することで、頻繁に使われる状態遷移の定義を一カ所に纏め、入力したデータの再利用を促している。
【０００３】
【非特許文献１】ＵＭＬリファレンスマニュアル（ＩＳＢＮ４−８９４７１−２６７−９）、ジェームスランボー他、ｐｐ６１−７２
【特許文献１】特開平７−２１９７５４号公報（第３〜８頁、図６）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
非特許文献１のように、ＵＭＬで定義されている図の形式である状態遷移図を書く際には、同じような状態遷移が何度も図中に現れ、同じ物を何度も書かなければならないことがある。このように、同じ物を何度も書く手間の問題があり、また、図を必要以上に複雑にして可読性を欠いたり、意図する図が２次元上の図面上で簡潔に表現できないという問題があり、修正時に図中の複数部分に同じ修正を加えなければならない。
状態遷移図に含まれる要素が多くなると図が複雑になることから、編集対象を選択して編集操作を行うこと自体が煩雑になるという問題がある。
また、機能の削減や特定機能の試験用データの生成のため、状態遷移図中の一部の記述を省いて状態遷移図を処理したいことがあるが、そのような場合には手作業が必要となっていた。
特許文献１のものでは、データベースに保存した状態遷移を、呼び出して貼り込む動作を行わなければならず、貼り込む場所が多くなれば、煩雑になるという問題があった。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、状態遷移図に頻出する状態遷移を共通部データとしてユーザが編集しやすいようにしたプログラム設計装置を得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わるプログラム設計装置においては、状態遷移図を表示し、編集する状態遷移表示編集装置、この状態遷移表示編集装置により編集された状態遷移図から、状態遷移図に頻出する共通要素である共通部データと状態遷移図から共通部データが分離された状態遷移データと共通部データが適用される状態遷移データの位置を示す共通部データ適用位置情報とに分解する分解部、共通部データを格納する共通部データ格納装置、状態遷移データを格納する状態遷移データ格納装置、共通部データ適用位置情報を格納する共通部データ適用位置格納装置、共通部データの状態遷移データへの合成の可否を設定したフラグを有するフラグ部、及びこのフラグ部の出力に応じて、共通部データ適用位置格納装置に格納された共通部データ適用位置情報に基き、共通部データ格納装置に格納された共通部データを状態遷移データ格納装置に格納された状態遷移データに合成して状態遷移図を作成する合成部を備え、合成部により作成された状態遷移図が状態遷移表示編集装置での編集に供せられるものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、状態遷移図を表示し、編集する状態遷移表示編集装置、この状態遷移表示編集装置により編集された状態遷移図から、状態遷移図に頻出する共通要素である共通部データと状態遷移図から共通部データが分離された状態遷移データと共通部データが適用される状態遷移データの位置を示す共通部データ適用位置情報とに分解する分解部、共通部データを格納する共通部データ格納装置、状態遷移データを格納する状態遷移データ格納装置、共通部データ適用位置情報を格納する共通部データ適用位置格納装置、共通部データの状態遷移データへの合成の可否を設定したフラグを有するフラグ部、及びこのフラグ部の出力に応じて、共通部データ適用位置格納装置に格納された共通部データ適用位置情報に基き、共通部データ格納装置に格納された共通部データを状態遷移データ格納装置に格納された状態遷移データに合成して状態遷移図を作成する合成部を備え、合成部により作成された状態遷移図が状態遷移表示編集装置での編集に供せられるので、状態遷移図に頻出する共通部データをフラグ部の出力に応じて合成するようにし、ユーザが状態遷移図の編集を容易に行うことができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
本発明の実施の形態について図を用いて説明する。
図１は、この発明の実施の形態１によるプログラム設計装置の構成を示すブロック図である。
図１において、状態遷移表示編集装置１は、状態遷移図を表示し、これをユーザが編集する。合成分解装置２は、状態遷移図を状態遷移データと共通部データと共通部データ適用位置情報とに分解し、またこれらのデータ及び情報を元にして状態遷移図を合成する。状態遷移データ格納装置３は、ユーザが編集・閲覧する状態遷移図を表すデータの内、共通部データを分離した状態遷移データを格納している。共通部データ格納装置４は、頻出する状態遷移データを共通部データとし、この共通部データを格納している。共通部データ適用位置格納装置５は、共通部データを状態遷移データのどの位置に適用するかの適用位置を示す共通部データ適用位置情報を格納している。状態遷移図出力装置６は、状態遷移図の電子データを出力する。
共通部表示切替機構７（共通部表示切替手段）は、合成分解装置２から状態遷移表示編集装置１への出力時に、共通部データの合成の可否を切替える。共通部利用切替機構８（共通部利用切替手段）は、合成分解装置２から状態遷移図出力装置６への出力時に、共通部データの合成の可否を切替える。共通部編集切替機構９（共通部編集切替手段）は、状態遷移表示編集装置１における共通部データの編集可否を切替える。
合成分解装置２は、状態遷移データと共通部データと共通部データ適用位置情報とを元にして状態遷移図を合成する合成部２１と、状態遷移図を、状態遷移データと共通部データと共通部データ適用位置情報とに分解する分解部２２と、共通部表示切替機構７及び共通部利用切替機構８並びに共通部編集切替機構９によって設定され、それぞれ共通部データ表示切替及び共通部データ利用切替並びに共通部データ編集切替の各フラグ（第一のフラグ、第二のフラグ、第三のフラグ）を管理するフラグ部２３とにより構成されている。
なお、共通部表示切替機構７、共通部利用切替機構８、共通部編集切替機構９は、状態遷移表示編集装置１の画面に、表示・出力・編集のいずれか、もしくはすべてのＯＮ／ＯＦＦを切り替えるためのスイッチを付加してユーザに表示することにより、構成されてもよい。
【０００９】
図２は、この発明の実施の形態１によるプログラム設計装置でも用いられる共通的な並行状態の一例を示す状態遷移図である。
図２において、四角はステートを示し、ステートを結ぶ線を遷移とする。図的に離れているステートに、共通的な並行コンポジット状態２０１ａと２０１ｂがあることを示している。
図３は、この発明の実施の形態１によるプログラム設計装置で用いられる共通的なイベントとアクションの一例を示す状態遷移図である。
図３において、多数のステートの並行コンポジット３０１ａ、３０１ｂは、ステート内に共通的に持っているイベントとアクションの組を示している。
図４は、この発明の実施の形態１によるプログラム設計装置で用いられる可変部分を持つ共通的なイベントとアクションの一例及び共通部を示す状態遷移図である。
図４において、ステートの並行コンポジット４０１ａ、４０１ｂは、共通部データ４０２として表され、可変部分を｛｝で括って表現されている。
【００１０】
図５は、この発明の実施の形態１によるプログラム設計装置の合成装置の動作を示すフローチャートである。。
図６は、この発明の実施の形態１によるプログラム設計装置の編集操作が加えられた時の分解装置の動作を示すフローチャートである。
【００１１】
図７は、この発明の実施の形態１によるプログラム設計装置の状態遷移データ格納装置に格納されている状態遷移図の例を示す図である。
図７において、ステートＳ１〜Ｓ５と遷移が示されている。
図８は、この発明の実施の形態１によるプログラム設計装置の共通部データ格納装置に格納されている共通部データの例を示す図である。
図８において、共通部データとして、ＳＡ（並行状態）、ＳＢ（並行状態）、ＥＶ（イベント／アクション）が示されている。
図９は、この発明の実施の形態１によるプログラム設計装置の共通部データ適用位置格納装置に格納されている共通部データ適用位置データの例を示す図である。
図９において、ＩＤ毎に、共通部データと適用先と可変部分設定が示されている。
【００１２】
図１０は、図７、図８、図９のデータを元に合成装置が合成した結果の状態遷移図である。
図１０において、ＳＡ、ＳＢ、ＥＶの合成結果が示されている。
図１１は、図７、図８、図９のデータを元に合成装置が共通部データの一部を合成しなかった結果の状態遷移図である。
図１１において、ＳＡは合成されず、ＳＢ、ＥＶのみの合成結果が示されている。
図１２は、図７、図８、図９のデータを元に合成装置が共通部データの一部を合成せずに状態遷移表示編集装置上でマークを付けて表示する場合の状態遷移図である。
図１２において、フラグがＯＦＦになっている場合に、適用位置であったステートに三角の旗、四角の旗のマークを付けている。
【００１３】
図１３は、この発明の実施の形態１によるプログラム設計装置の編集時に要素の選択が困難な場合の例を示す図である。
図１３は、ステート間を結ぶ遷移が複雑になっている。
図１４は、この発明の実施の形態１によるプログラム設計装置の編集操作により状態遷移データに追加が行われた結果を示す図である。
図１４では、ステートＳ６が追加されている。
図１５は、この発明の実施の形態１によるプログラム設計装置の編集操作により共通部データに編集が行われた結果を示す図である。
図１５では、ステートｂ３から終了までの遷移に［ｐ＜１０］というガード条件が設定されている。
図１６は、この発明の実施の形態１によるプログラム設計装置の編集操作により共通部データに追加が行われた結果を示す図である。
図１６では、共通部データにステートｂ４が追加されている。
【００１４】
次に、動作について説明する。
状態遷移データ格納装置３は、ユーザが編集・閲覧する状態遷移図の内、共通部データを分離したデータである状態遷移データを保持している。保持しているのは、状態を表すステートの一覧と、どのようなイベントを受けてどのように遷移するかを示すデータと、どのようなイベントを受けて各ステートがどのようなアクションを起こすかを示すデータと、各遷移が遷移時に起こすアクションおよび遷移をブロックするガード条件である。
また、それぞれの要素にはラベルが付けられており、名前付けされている。また、状態遷移表示編集装置１が各要素をどのように表示するかを示す表示位置などのデータも持つ。
【００１５】
一つの状態遷移図中に共通的に利用されている状態遷移のパターンやステートの属性、アクションなどは、共通部データとして、共通部データ格納装置４が保持している。これは、図２のステート２０１ａとステート２０１ｂのように図的に離れているステートに存在する共通的な並行コンポジット状態の定義であったり、図３のように、多数のステートが共通的に持っているイベントとアクションの組である。
ステートに共通部データを合成するために、共通部データは、仮想的な合成対象のステートを持っている。合成後にこれらの共通部データをどのように表示するかを示す表示位置（相対位置）のデータや、複数の共通部データが一カ所に合成される際の表示の優先順位などのデータも持つ。共通部データの中の属性は、可変部分であることを示すタグを含むことができて、この部分は合成部２１によって書き換えられる。これは例えば図４のように、可変部分の名前を｛｝で括って表現するなどの方法が考えられる。
【００１６】
共通部データ適用位置格納装置５は、共通部データ格納装置４が保持している共通部データを、状態遷移データ格納装置３が持つ状態遷移データの、どのステートに適用して状態遷移を合成するかの情報を保持している。この共通部データ適用位置格納装置５が持っているのは、適用される先のステートと適用する共通部データを指し示すデータである。共通部データ中の属性のうち、可変である部分をどのように書き換えるかの情報もこの共通部データ適用位置格納装置５が保持する。
【００１７】
合成分解装置２の合成部２１は、共通部データ適用位置格納装置５からどの共通部データが状態遷移データのどのステートに適用するかを取得し、状態遷移データ格納装置３から取得した状態遷移データに、共通部データ格納装置４から取得した共通部データを優先順位に従った順番で合成する。ただし、合成可否はフラグ部２３の出力に依存し、共通部表示切替機構７が表示ＯＦＦと判断している場合、その判断がフラグ部２３を通じて伝達され、その共通部データは状態遷移表示編集装置１には合成されずに出力される。ただし、図の合成はしないが、合成されなかったデータがあることを出力する。
共通部利用切替機構８が利用ＯＦＦと判断している場合、同じようにフラグ部２３を通じて伝達された判断により、その共通部データは、状態遷移図出力装置６には合成されずに出力される。
共通部編集切替機構９の出力は、フラグ部２３を通じて伝達され、状態遷移表示編集装置１に伝達することにより、該当共通部データが編集可能かどうかを状態遷移表示編集装置１が判断できるようにする。
【００１８】
なお、フラグ部２３は、各切替機構７〜９の設定に演算を加えて、合成のＯＮ／ＯＦＦを切り替えることもできる。例えば、切替ＯＮ状態を論理のＴＲＵＥとした上で、共通部表示切替機構７の設定したフラグを、共通部表示切替機構７の出力と共通部利用切替機構８の出力の論理和とするなどである。この論理和を取る例では、共通部利用切替機構８がＴＲＵＥを出力する共通部データは、すべて表示されることになる。
共通部表示切替機構７と共通部利用切替機構８の違いは、その出力がどの装置、すなわち状態遷移表示編集装置１か状態遷移図出力装置６かのどちらに利用されるかである。
【００１９】
この合成分解装置２により合成されたデータが、状態遷移表示編集装置１または状態遷移図出力装置６に引き渡され、そのデータが閲覧・編集および出力の対象となる。状態遷移表示編集装置１上では、合成された状態遷移図のデータの各要素には、新たにタグが付加され、状態遷移データ格納装置３より取得されたデータそのままであるか、共通部データの合成によって改変されたものであるか、共通部データの合成によって追加されたものであるかが区別できるようにする。
合成によるデータのタグの場合、どの共通部データ適用位置格納装置５内のデータによって合成されたかを示すデータも付加する。この他、共通部データ中の属性の可変部分に共通部データ適用位置格納装置５のデータを適用させる動作も行う。また、合成された共通部データには、各切替機構７〜９がその共通部データをどのように判断したかのデータが付加されるようにする。
【００２０】
合成部の動作について示した図が図５である。
図５において、共通部データ適用位置格納装置５に未処理の共通部データの適用位置情報がなければ終了し、あれば（ステップ５１）、未処理の共通部データ適用位置情報を一つ取り出す（ステップ５２）。次いで、未合成の適用位置がなければステップ５１に行き、あれば（ステップ５３）、共通部表示切替機構７または共通部利用切替機構８のフラグがＯＮかＯＦＦかを判断し（ステップ５４）、ＯＦＦであれば、ステップ５１に行き、ＯＮであれば、適用位置を一つ取り出し、状態遷移データから検索する（ステップ５５）。次いで、共通部データを検索で得られた場所に合成して（ステップ５６）、ステップ５３に行く。
【００２１】
合成分解装置２の分解部２２は、状態遷移表示編集装置１でユーザにより状態遷移図が編集された時、その編集された部分が状態遷移データ格納装置３からのデータがそのままであった場合、対応する状態遷移データ格納装置３内部のデータを更新する。
編集された部分が共通部データの合成によって追加された部分であれば、対応する共通部データ格納装置４内部のデータを更新する。
編集された部分が合成によって改変されたものである場合、それはすなわち、編集された部分がその内部に、合成によって追加された要素を持つと言うことである。そこで、内部要素を走査し、それぞれについて状態遷移データ格納装置３を更新するか、共通部データを更新するかを判断し、データを更新する。共通部データの可変部分以外では、合成部２１は、状態遷移データの追加しか行わないため、合成されたデータを細分化すると、必ず状態遷移データ格納装置３または共通部データ格納装置４のどちらかを起源にするとの判断が可能である。
共通部データの可変部分が変更されていた場合は、対応する共通部データ適用位置格納装置５の該当データを更新する。
【００２２】
合成分解装置２の分解部２２に対して、状態遷移表示編集装置１から共通部分の合成の削除が伝達された場合、分解部２２は、共通部データ適用位置格納装置５から該当データを消去する。
分解部２２に対して状態遷移表示編集装置１から共通部分の合成位置の追加が行われた場合、分解部２２は、共通部データ適用位置格納装置５に対して新しいデータを追加する。追加後、適用するべき共通部データの指定と共通部データの可変部分の内容を、状態遷移表示編集装置１から受け取り、データを完成させる。
分解部２２に対して、状態遷移表示編集装置１から、ステートや遷移などの要素の追加が行われる場合は、それが状態遷移データに属するデータであるのか、または、どの共通部データに属するデータであるのかを状態遷移表示編集装置１から取得して対応する格納装置３〜５を峻別し、処理を行う。
【００２３】
分解部２２の動作について示した図が図６である。
図６では、状態遷移表示編集装置１上で、要素が編集されたことに応じて開始される。まず、共通部データ適用位置の追加削除処理かどうかを判断し、そうであれば（ステップ６１）、共通部データの追加削除処理を行い（ステップ６２）、終了する。ステップ６１で、共通部データ適用位置の追加削除処理でなければ、共通部データ適用位置の可変要素の値の変更かどうかを判断し（ステップ６３）、そうであれば、可変要素の更新処理を行い（ステップ６４）、終了する。
ステップ６３で、共通部データ適用位置の可変要素の値の変更でなければ、要素のタグが状態遷移データ格納装置３のものになっているかどうかを判断し（ステップ６５）、そうであれば、状態遷移データ化右脳装置３のデータを更新して（ステップ６６）、終了する。ステップ６５で、そうでなければ、共通部データ格納装置４の該当データを更新して（ステップ６７）、終了する。
【００２４】
状態遷移表示編集装置１は、合成分解装置２の合成部２１によって合成された状態遷移図のデータをユーザに提示すると共に、ユーザの編集操作を合成分解装置２の分解部２２に伝達する。
状態遷移表示編集装置１は、ユーザからの操作を受けて、ステートや遷移などの追加・削除・アクションやラベルの変更、共通部データを合成する箇所の追加、共通部データを合成する位置の削除、共通部データの新規作成、共通部データの削除、そして共通部データの可変箇所の設定変更が行える。
ステートや遷移などの追加・削除・変更に関しては、合成部２１から取得した状態遷移図のデータから、該当部位が状態遷移データ格納装置３のデータによるものか、共通部データ格納装置４のデータによるものかが判断できるので、編集結果を分解部２２に伝える際には、編集された要素がどこのデータによるものかを区別して伝えることができる。ただし、該当する要素が合成分解装置２のフラグ部２３によって編集ＯＦＦとされている場合は、編集を行えないため、要素を選択できないようにする。このように編集不能な要素を選択できくすることで、編集すべき他の要素の選択が容易になる。
【００２５】
状態遷移表示編集装置１がどのようにユーザに状態遷移図を表示するかについては、一般の計算機と同様に、ＣＲＴや液晶モニタに表示、またはプリンタによって印刷を行うなどの方法による。また、ユーザからの入力手段は、マウスやキーボードが考えられる。
合成された状態遷移図を表示する際には、ステートや遷移に対して表示位置を決定しなければならないが、状態遷移データ格納装置３に格納されるデータに関しては、表示位置のデータは、ユーザがステートや遷移を作成する際に指定した位置を利用する。
または、共通部データが付加された場合には、状態遷移表示編集装置１が自動で適切に移動することもあり得る。状態遷移表示編集装置１が自動で移動を行う場合、その方法としては、ある一定の距離以内に配置されたステート同士に斥力を持たせて、安定するまで各ステートを移動させる方法などがある。遷移については、入と出のステート間の距離に比例させて形状を大小させる方法などがある。
【００２６】
状態遷移表示編集装置１がステートや遷移などの追加・削除・アクションやラベルの変更などを行う場合の手段については、一般の状態遷移図エディタの流儀に従うことができる。
例えば、ＣＲＴ上に表示された状態遷移図の要素をマウスで選択し、そのまま削除操作を行うことや、ダブルクリックして要素の編集モードに移行し、ダイアログを出して要素のもつパラメータを編集できるようにするなどの手段がある。ここで要素の選択を行えるのは、共通部編集切替機構９および合成分解装置２によって編集ＯＮとされた要素のみである。
追加処理の場合には、それが状態遷移データ格納装置３に格納されるべきデータであるか、共通部データとして扱われるべきデータであるかの区別が必要である。そのため、共通部データとして扱われるべきデータである場合、状態遷移表示編集装置１上にある共通部データをあらかじめ新規データの所属対象として指定しておき、状態遷移表示編集装置１は、新たに作られるデータをその共通部データの一部として処理するようにするなどの細工を必要とする。
【００２７】
状態遷移図出力装置６は、合成分解装置２によって合成された状態遷移図のデータを電子データとして出力する。これは出力データへの編集操作を想定としないため、表示・編集に関するフラグや合成したかどうかの情報などは不要であり、状態遷移図の状態および遷移に関する基本的な情報のみの出力を行う。また、出力のみの想定であるため、状態遷移表示編集装置１とのデータ・作業の同期を考慮する必要もない。
【００２８】
図１のプログラム設計装置がどのように動作し、操作されるかを以下に具体例を挙げて説明する。
例えば、図７のようなデータを格納した状態遷移データ格納装置３と、図８のようなデータを格納した共通部データ格納装置４と、図９のようなデータを格納した共通部データ適用位置格納装置５があった場合を考える。
まずは、各切替機構７〜９は、対応するフラグ部２３のフラグをＯＮにしているものとする。
【００２９】
このとき、合成分解装置２の合成部２１は、まず図９の共通部データ適用位置格納装置５内のデータのＩＤが１のデータを読み出す。このデータの共通部データＳＡは、並行状態の定義となっている。そして状態遷移データ格納装置３から図７で示されるデータを読み込み、これを全体データとして保持する。
図９の共通部データ適用位置の適用先が、図７のステートＳ２とステートＳ３であることから、全体データからステートＳ２とステートＳ３を検索し、共通部データとして指定されているＳＡを、ステートＳ２とステートＳ３に並行コンポジット状態として合成する。
また、この時、ＳＡは可変要素｛ｇ｝を持っている。図９の共通部データ適用位置のデータ上で、この値はｇ＝４として指定されているため、可変要素を含むＳＡ上の遷移のガード条件［ｇｖ＜｛ｇ｝］は、全体データ上で［ｇｖ＜４］として合成される。
この合成の結果が図１０のステートＳ２とステートＳ３を包含した並行状態として表されている。
【００３０】
次に、図９のＩＤが２のデータを読み出し、ＩＤが１のものと同様に処理し、これが図１０のステートＳ３、ステートＳ５の並行状態である。また、図９のＩＤが３のデータも同様に処理する。
次に、図９のＩＤが４のデータを合成する。これは一つのステートにおけるイベントとそれに対するアクションの定義を共通部としている。このデータの適用位置は、図７のステートＳ２とステートＳ４であるので、全体データ上のステートＳ２とステートＳ４に対して、共通なイベント・アクションの定義を合成する。
この結果が、図１０のステートＳ２とステートＳ４を示す四角内に表記されたイベントと対応するアクションの記述となる。
図９で示される共通部データ適用位置をすべて処理した結果が図１０である。
【００３１】
次に、共通部表示切替機構７及び共通部利用切替機構８が、共通部データ適用位置格納装置５のＩＤが１または３のデータをＯＦＦに切り替えたとする。すると、合成部２１は、それらの共通部データを合成しなくなり、図１１のような状態遷移図を出力することになる。図１１では、ＩＤが１、３のデータは、処理されていない。
【００３２】
合成しないよう指示された共通部データ適用位置格納装置５のデータに関しては、その適用位置であるステートにマークを付けることで表示を簡略化することができる。図１２は、ＩＤ＝１の共通部データ適用位置に三角の旗、ＩＤ＝３の適用位置に四角の旗を立てて表現した例である。
このようなマークをクリックするなどして、各切替機構７〜９の該当共通部データに関する出力を反転させることが可能である。
【００３３】
次に、状態遷移表示編集装置１を用いてデータに編集操作を加える場合を説明する。
編集操作を行う際には、新規作成以外は、図中のどの要素に編集を加えるかを指示する必要がある。これは例えばマウスによって、表示された要素の周辺をクリックしてそこから最寄りの要素を編集用に選択するなどの方法が考えられる。
しかし、状態遷移図中には共通部データなども含めて多数の要素が表示されており、その中から希望する要素を一つ選択するという操作に困難を生じることがある。例としては、図１３のステートＳ２とステートＳ１３を結ぶ遷移を選択したい時などが上げられる。マウスポインタをぴったりその要素に合わせないと別の要素を選択してしまい、編集作業の効率が下がってしまう。
このような時には、共通部編集切替機構９を使い、作業と関係のない共通部データの編集をＯＦＦにする。そのようにすることで、状態遷移表示編集装置１は、それらの要素を選択不能とし、希望する要素の選択が容易になる。
このように、表示したいものと編集したいものとを別個に切り替えることにより、図の可読性を維持したまま、編集性の向上を得ることができる。
【００３４】
次に、ユーザによって編集操作が行われた後の処理を説明する。図１２を表示している状態遷移表示編集装置１において、新たにＳ６というステートを作成し、ステートＳ３からステートＳ６、ステートＳ６からステートＳ２の遷移を作成して、図１４のようにしたとする。
この場合、ステートＳ６も各遷移も共通部データであることを指示せずにそのまま作成することで、先述の通り自動的に状態遷移データ格納装置３のデータであることを示すタグが振られ、この追加データが分解部２２によって状態遷移データ格納装置３の新規データとして追加される。
ステートＳ１〜ステートＳ５や、それらの間の遷移の編集・削除の場合も、追加の場合と同様に、編集内容が状態遷移データ格納装置３に関するものと判断されて、状態遷移データ格納装置３のデータが更新される。
【００３５】
図１４を表示している状態遷移表示編集装置１において、合成された結果であるステートＳ３とステートＳ５に合成された並行状態のｂ３から終了に向かう遷移に［ｐ＜１０］というガード条件を作成して、図１５のようにした場合、この遷移は合成によって作成された結果であるので、合成部２１によってＩＤが２の共通部データ適用位置を示すタグが割り当てられている。そこで分解部２２は、この遷移の変更が共通部データ格納装置４のＳＡに関する変更であると判断して、共通部データ格納装置４のデータを編集する。共通部データ格納装置４が更新されると、この共通部データが利用されている他の合成箇所も同時に更新される。
【００３６】
図１６のように、合成された部分に新しいステートｂ４と遷移を作成する場合は、それが共通部分として追加されるのかどうかと言ったユーザの意図をあらかじめ状態遷移表示編集装置１に伝えておくために、特定の操作を行う。
この特定の操作は、ステートｂ４などの追加合成されたところを指示した後、メニューから「この共通部データに追加」を選ぶといった手段がある。そのような操作の後に追加された要素には、共通部データ適用位置に関するタグが付加され、これを用いて分解部２２によって共通部データ格納装置４にデータが追加される。
共通部データ適用位置の追加と削除は、適用位置であるステートをユーザが選択してから、どの共通部データを追加・削除するかをユーザに選択させる。この編集操作に従って、分解部２２が共通部データ適用位置格納装置５のデータを更新する。
編集操作が状態遷移データ格納装置３に関するものか、共通部データに関するものかが不明な場合には、状態遷移表示編集装置１がユーザに問い合わせる。
【００３７】
このようにして編集された状態遷移図のデータは、電子データとして別のシステムで流用されることがある。それは試験のため、プログラムの自動生成のためなどであるが、一般的にはそのような場合は、すべての要素を合成した形で出力された状態遷移図を利用する。しかし、実際には試験用途や機能削減版の生成といった、一部だけを合成して出力したい場合も多く、そのような場合には共通部利用切替機構８を利用して合成のＯＮ／ＯＦＦを行い、編集操作とは関係ない状態で、状態遷移図出力装置６から出力することができる。
【００３８】
なお、上記の実施の形態１の説明では、ステートを合成の適用位置としているが、遷移を合成の適用位置として持ち、共通のガード条件を共通部データとして持たせることも可能である。
【００３９】
実施の形態１によれば、状態遷移図のデータから共通要素を分離し、合成可否のフラグを有するフラグ部の出力に応じて、共通部データを状態遷移データに合成するようにし、ユーザの共通部データの編集を容易にした。
また、状態遷移図出力装置への電子データの出力に際して、合成の可否を切替えることによって試験用や機能限定版などのための特定機能のみを抽出した状態遷移図を出力できるという効果がある。
【図面の簡単な説明】
【００４０】
【図１】この発明の実施の形態１によるプログラム設計装置の構成を示すブロック図である。
【図２】この発明の実施の形態１によるプログラム設計装置でも用いられる共通的な並行状態の一例を示す状態遷移図である。
【図３】この発明の実施の形態１によるプログラム設計装置で用いられる共通的なイベントとアクションの一例を示す状態遷移図である。
【図４】この発明の実施の形態１によるプログラム設計装置で用いられる可変部分を持つ共通的なイベントとアクションの一例及び共通部を示す状態遷移図である。
【図５】この発明の実施の形態１によるプログラム設計装置の合成装置の動作を示すフローチャートである。。
【図６】この発明の実施の形態１によるプログラム設計装置の編集操作が加えられた時の分解装置の動作を示すフローチャートである。
【図７】この発明の実施の形態１によるプログラム設計装置の状態遷移データ格納装置に格納されている状態遷移図の例を示す図である。
【図８】この発明の実施の形態１によるプログラム設計装置の共通部データ格納装置に格納されている共通部データの例を示す図である。
【図９】この発明の実施の形態１によるプログラム設計装置の共通部データ適用位置格納装置に格納されている共通部データ適用位置データの例を示す図である。
【図１０】図７、図８、図９のデータを元に合成装置が合成した結果の状態遷移図である。
【図１１】図７、図８、図９のデータを元に合成装置が共通部データの一部を合成しなかった結果の状態遷移図である。
【図１２】図７、図８、図９のデータを元に合成装置が共通部データの一部を合成せずに状態遷移表示編集装置上でマークを付けて表示する場合の状態遷移図である。
【図１３】この発明の実施の形態１によるプログラム設計装置の編集時に要素の選択が困難な場合の例を示す図である。
【図１４】この発明の実施の形態１によるプログラム設計装置の編集操作により状態遷移データに追加が行われた結果を示す図である。
【図１５】この発明の実施の形態１によるプログラム設計装置の編集操作により共通部データに編集が行われた結果を示す図である。
【図１６】この発明の実施の形態１によるプログラム設計装置の編集操作により共通部データに追加が行われた結果を示す図である。
【符号の説明】
【００４１】
１  状態遷移表示編集装置
２  合成分解装置
３  状態遷移データ格納装置
４  共通部データ格納装置
５  共通部データ適用位置格納装置
６  状態遷移図出力装置
７  共通部表示切替機構
８  共通部利用切替機構
９  共通部編集切替機構
２１  合成部
２２  分解部
２３  フラグ部
【図１】
2007011463.tif 000003
【図２】
2007011463.tif 000004
【図３】
2007011463.tif 000005
【図４】
2007011463.tif 000006
【図５】
2007011463.tif 000007
【図６】
2007011463.tif 000008
【図７】
2007011463.tif 000009
【図８】
2007011463.tif 000010
【図９】
2007011463.tif 000011
【図１０】
2007011463.tif 000012
【図１１】
2007011463.tif 000013
【図１２】
2007011463.tif 000014
【図１３】
2007011463.tif 000015
【図１４】
2007011463.tif 000016
【図１５】
2007011463.tif 000017
【図１６】
2007011463.tif 000018