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