(57)【要約】【課題】  製品企画の機能要求項目から機能関係図を作成することによって自動的にＧＵＩ挙動仕様を規定するステートチャートを作成することができるようにする。【解決手段】  このＧＵＩプログラミング支援システムでは、製品企画の機能要求項目から機能関係図を作成して入力すれば、システムの機能関係図解釈部３で機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、ステートチャート作成部４が機能関係の解釈結果に基づき、テンプレートデータベース５より該当する機能関係のテンプレートを読み出し、かつ、当該テンプレートにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを自動的に作成する。【選択図】      図１９
2005242721.tif 000002
【特許請求の範囲】
【請求項１】
機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートを保持するテンプレートデータベースと、
機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈する機能関係図解釈部と、
前記機能関係の解釈結果に基づき、前記テンプレートデータベースより該当する機能関係のテンプレートを読み出し、かつ、当該テンプレートにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを作成するステートチャート作成部とを備えたことを特徴とするＧＵＩプログラミング支援システム。
【請求項２】
機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を規定する所定の様式の機能関係図のデータを入力する機能関係図データ入力部と、
前記機能関係図の該当するノードにおいて、ある機能から他のある機能への機能遷移のための機能選択操作、機能決定操作、遷移先の機能から元の機能への機能戻り操作を行う操作要素及び操作方法を指定する操作要素データを入力する操作要素データ入力部と、
前記操作要素毎のステートチャート用テンプレートと、前記機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートとを保持するテンプレートデータベースと、
前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、前記各機能間遷移をもたらす操作要素の選択・操作と結びつけ、前記テンプレートデータベースから該当するテンプレート群を取り出し、該当箇所に機能名をはめ込み、かつ機能間遷移をもたらす操作名と操作結果の情報を遷移線上に書き出すことによって機能選択用ステートチャートを作成するステートチャート作成部とを備えたことを特徴とするＧＵＩプログラミング支援システム。
【請求項３】
前記テンプレートデータベースは、表示要素毎のステートチャート用のテンプレートを保持し、
前記ステートチャート作成部は、ある表示要素に対するある表示状態から別の表示状態へ遷移させる命令とその命令の実行結果を指定する入力に対して、対応する表示要素のテンプレートを取り出し、前記表示状態を遷移させる命令とその命令の実行結果に対応する表示内容を該当箇所に書き込むことを特徴とする請求項２に記載のＧＵＩプログラミング支援システム。
【請求項４】
機能関係図のデータ入力を受け付けるステップと、
前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈するステップと、
前記機能関係の解釈結果に基づき、機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートを保持するテンプレートデータベースより該当する機能関係のテンプレートを読み出すステップと、
前記読み出した機能関係のテンプレートに対して、それにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを作成するステップとをコンピュータに実行させることを特徴とするステートチャート作成プログラム。
【請求項５】
機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を規定する所定の様式の機能関係図のデータの入力を受け付けるステップと、
前記機能関係図の該当するノードにおいて、ある機能から他のある機能への機能遷移のための機能選択操作、機能決定操作、遷移先の機能から元の機能への機能戻り操作を行う操作要素及び操作方法を指定する操作要素データの入力を受け付けるステップと、
前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、前記各機能間遷移をもたらす操作要素の選択・操作と結びつけるステップと、
操作要素毎のステートチャート用テンプレートと機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートとを保持するテンプレートデータベースから該当するテンプレート群を取り出すステップと、
前記テンプレート群に対して、その該当箇所に機能名をはめ込み、かつ機能間遷移をもたらす操作名と操作結果の情報を遷移線上に書き出すことによって機能選択用ステートチャートを作成するステップとをコンピュータに実行させることを特徴とするステートチャート作成プログラム。
【請求項６】
前記テンプレートデータベースは、表示要素毎のステートチャート用のテンプレートに保持させ、
ある表示要素に対するある表示状態から別の表示状態へ遷移させる命令とその命令の実行結果を指定する入力を受け付け、当該入力に対して、対応する表示要素のテンプレートを取り出し、前記表示状態を遷移させる命令とその命令の実行結果に対応する表示内容を該当箇所に書き込むステップを有することを特徴とする請求項５に記載のステートチャート作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能仕様書から作成される機能関係図に基づき自動的にステートチャートを作成するＧＵＩプログラミング支援システム及びステートチャート作成プログラムに関する。
【背景技術】
【０００２】
近年、特にＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｉｓｔａｎｔ）、携帯電話機、デジタルカメラ、シリコンレコーダ等の携帯型電子機器の製品寿命は短命であり、その結果として新製品開発期間も短縮され、製品開発プロセスの効率化が開発部門に要求されている。また製品の多機能化によりソフトウェアが肥大化しており、ソフト開発プロセスの効率化も要求されている。加えて、開発サイドでもＧＵＩを利用した開発プロセスの効率化が要求されている。
【０００３】
一方、新製品開発では、製品企画に始まり、これに応じたＧＵＩ挙動仕様書を作成し、この仕様書に基づいてプロトタイプを作成し、挙動評価やユーザビリティ評価を行い、製品企画にフィードバックする。そのため、ＧＵＩ挙動仕様書の作成の効率化が望まれている。
【０００４】
ところが従来の製品開発では、製品企画からは機能要求項目がドキュメントとしてしか与えられず、これに基づいたＧＵＩ挙動仕様の設計作業はＧＵＩデザイナーがコンピュータ上でグラフィックソフトウェアを使用して作成するという人手による作業であった。このＧＵＩデザイナーの人手による作業では、上述したように肥大化したソフトウェアを直接設計することが難しく、また要求機能項目各々と挙動仕様間の対応関係の管理も難しく、さらに機能追加、変更に対応するためのＧＵＩ挙動仕様の追加、変更作業も難しくなっていた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明はこのような従来の技術的課題に鑑みてなされたもので、製品企画の機能要求項目から機能関係図を作成することによって自動的にＧＵＩ挙動仕様を規定するステートチャートを作成することができるようにしたＧＵＩプログラミング支援技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１の発明のＧＵＩプログラミング支援システムは、機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートを保持するテンプレートデータベースと、機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈する機能関係図解釈部と、前記機能関係の解釈結果に基づき、前記テンプレートデータベースより該当する機能関係のテンプレートを読み出し、かつ、当該テンプレートにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを作成するステートチャート作成部とを備えたものである。
【０００７】
請求項１の発明のＧＵＩプログラム支援システムでは、機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、この機能関係の解釈結果に基づき、機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートを保持するテンプレートデータベースより該当する機能関係のテンプレートを読み出し、読み出した機能関係のテンプレートに対して、それにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを自動的に作成する。
【０００８】
請求項２の発明のＧＵＩプログラミング支援システムは、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を規定する所定の様式の機能関係図のデータを入力する機能関係図データ入力部と、前記機能関係図の該当するノードにおいて、ある機能から他のある機能への機能遷移のための機能選択操作、機能決定操作、遷移先の機能から元の機能への機能戻り操作を行う操作要素及び操作方法を指定する操作要素データを入力する操作要素データ入力部と、前記操作要素毎のステートチャート用テンプレートと、前記機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートとを保持するテンプレートデータベースと、前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、前記各機能間遷移をもたらす操作要素の選択・操作と結びつけ、前記テンプレートデータベースから該当するテンプレート群を取り出し、該当箇所に機能名をはめ込み、かつ機能間遷移をもたらす操作名と操作結果の情報を遷移線上に書き出すことによって機能選択用ステートチャートを作成するステートチャート作成部とを備えたものである。
【０００９】
請求項２の発明のＧＵＩプログラミング支援システムでは、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を規定する所定の様式の機能関係図のデータと、機能関係図の該当するノードにおいて、ある機能から他のある機能への機能遷移のための機能選択操作、機能決定操作、遷移先の機能から元の機能への機能戻り操作を行う操作要素及び操作方法を指定する操作要素のデータとを入力すれば、前記機能関係図の入力データに対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、各機能間遷移をもたらす操作要素の選択・操作と結びつけ、操作要素毎のステートチャート用テンプレートと機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートとを保持するテンプレートデータベースから該当するテンプレート群を取り出し、当該テンプレート群に対して、その該当箇所に機能名をはめ込み、かつ機能間遷移をもたらす操作名と操作結果の情報を遷移線上に書き出すことによって機能選択用ステートチャートを自動的に作成する。
【００１０】
請求項３の発明は、請求項２のＧＵＩプログラミング支援システムにおいて、前記テンプレートデータベースは、表示要素毎のステートチャート用のテンプレートを保持し、前記ステートチャート作成部は、ある表示要素に対するある表示状態から別の表示状態へ遷移させる命令とその命令の実行結果を指定する入力に対して、対応する表示要素のテンプレートを取り出し、前記表示状態を遷移させる命令とその命令の実行結果に対応する表示内容を該当箇所に書き込むことを特徴とするものである。
【００１１】
請求項３の発明のＧＵＩプログラミング支援システムでは、請求項２のテンプレートデータベースに表示要素毎のステートチャート用のテンプレートに保持させ、ある表示要素に対するある表示状態から別の表示状態へ遷移させる命令とその命令の実行結果を指定する入力を受け付け、当該入力に対して、対応する表示要素のテンプレートを取り出し、前記表示状態を遷移させる命令とその命令の実行結果に対応する表示内容を該当箇所に書き込むことで、ＧＵＩ出力構成要素のステートチャートを自動作成する。
【００１２】
請求項４の発明のステートチャート作成プログラムは、機能関係図のデータ入力を受け付けるステップと、前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈するステップと、前記機能関係の解釈結果に基づき、機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートを保持するテンプレートデータベースより該当する機能関係のテンプレートを読み出すステップと、前記読み出した機能関係のテンプレートに対して、それにあらかじめ用意されている所定の箇所に該当機能名を書き込むことによってステートチャートを作成するステップとをコンピュータに実行させることを特徴とするものである。
【００１３】
請求項４の発明のステートチャート作成プログラムでは、これをコンピュータに組み込むことによって請求項１の発明のＧＵＩプログラミング支援システムを構築する。
【００１４】
請求項５の発明のステートチャート作成プログラムは、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を規定する所定の様式の機能関係図のデータの入力を受け付けるステップと、前記機能関係図の該当するノードにおいて、ある機能から他のある機能への機能遷移のための機能選択操作、機能決定操作、遷移先の機能から元の機能への機能戻り操作を行う操作要素及び操作方法を指定する操作要素データの入力を受け付けるステップと、前記機能関係図のデータ入力に対して、機能毎に他の機能との階層関係、排他関係、並列関係、局所機能関係の機能関係を解釈し、前記各機能間遷移をもたらす操作要素の選択・操作と結びつけるステップと、操作要素毎のステートチャート用テンプレートと機能関係図の機能関係をステートチャートで表現するために必要な機能関係テンプレートとを保持するテンプレートデータベースから該当するテンプレート群を取り出すステップと、前記テンプレート群に対して、その該当箇所に機能名をはめ込み、かつ機能間遷移をもたらす操作名と操作結果の情報を遷移線上に書き出すことによって機能選択用ステートチャートを作成するステップとをコンピュータに実行させることを特徴とするものである。
【００１５】
請求項５の発明のステートチャート作成プログラムでは、これをコンピュータに組み込むことによって請求項２のＧＵＩプログラミング支援システムを構築する。
【００１６】
請求項６の発明は、請求項５のステートチャート作成プログラムにおいて、前記テンプレートデータベースは、表示要素毎のステートチャート用のテンプレートに保持させ、ある表示要素に対するある表示状態から別の表示状態へ遷移させる命令とその命令の実行結果を指定する入力を受け付け、当該入力に対して、対応する表示要素のテンプレートを取り出し、前記表示状態を遷移させる命令とその命令の実行結果に対応する表示内容を該当箇所に書き込むステップを有することを特徴とするものである。
【００１７】
請求項６の発明のステートチャート作成プログラムでは、これをコンピュータに組み込むことによって請求項３のＧＵＩプログラミング支援システムを構築する。
【発明の効果】
【００１８】
本発明によれば、仕様企画書の内容に基づいて作成される所定様式の機能関係図を表現するデータを入力すればシステム側で自動的に機能選択ステートチャートや挙動ステートチャートを作成でき、設計者に機能関係図の正誤や製品の挙動をＧＵＩ環境で容易に確認させることができ、製品開発の効率化に寄与できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図に基づいて詳説する。図１は本発明の１つの実施の形態のＧＵＩプログラミング支援システムの機能構成を示している。本実施の形態のＧＵＩプログラミング支援システムは、コンピュータシステムに以下に説明する諸機能を実行するソフトウェアプログラムを組み込むことによって実現されるものであり、その機能構成は、機能関係図データ入力部１、機能選択操作シナリオ入力部２、機能関係図解釈部３、ステートチャート作成部４、テンプレートデータベース５、ステートチャート出力部６から構成されている。
【００２０】
機能関係図データ入力部１は企画仕様書に基づいて作成される機能関係図のデータを取り込む部分である。操作シナリオ入力部２は企画仕様書に基づいて作成される機能選択要素、選択決定、選択戻りをどのボタンのどのような操作で行い、操作結果をどの表示手段のどの領域にどのような内容の表示を行うかを示した操作シナリオの内容をデータとして入力する部分である。機能関係図解釈部３は機能関係図データ入力部１と操作シナリオ入力部２からのデータに基づいて機能関係図の内容、操作シナリオの内容を解釈し、その結果を出力する部分である。ステートチャート作成部４は、機能関係図解釈部３の機能関係図の解釈結果に対して、テンプレートデータベース５から該当するステートチャートのテンプレートを呼出し、その該当箇所に必要な情報を書き込むことによって機能関係図に対応したステートチャートを自動的に作成する部分であり、ステートチャート出力部６はこのステートチャート作成部４が作成したステートチャートを表示、その他の方法で出力する部分である。テンプレートデータベース５には、ステートチャートを作成するために必要な各種の用品のテンプレートが登録してある。
【００２１】
図２は、本実施の形態のＧＵＩプログラミング支援システムによってソフトウェア設計対象とするデジタルカメラ５０を示しており、操作手段としてプッシュボタンであるボタン（０）５１、ボタン（１）５２、ボタン（２）５３を備え、また右押し（Ｒｉｇｈｔ  ｐｕｓｈ）、左押し（Ｌｅｆｔ  ｐｕｓｈ）が可能なシーソー型ボタン５４、右回り回転（ＣＷｔｕｒｎ）、左回り回転（ＣＣＷｔｕｒｎ）によりジョグ回転操作でき、かつ回転が停止した位置での選択状態を保持できる状態保持型ジョグダイヤル５５が備えられ、また操作ボタンによる選択操作のための選択項目の表示や操作結果、機能実行結果、警告等を表示するための出力手段としてＬＣＤ５６、ランプ５７を備えている。これらの操作ボタン群の該当操作ボタンの操作によって機能選択や動作指令を行うことによってカメラ側の状態は変化し、またＬＣＤ５６の表示態様やランプ５７の点灯状態も操作ボタンの操作や撮影・再生動作に応じて変化する。
【００２２】
製品企画では、当該デジタルカメラ５０に対して種々の機能を持たせ、それらの諸機能をどのような操作で選択し、また選択した機能によりどのように動作するか、また動作の結果をどのように表示させるかを記述した仕様企画書が作成される。
【００２３】
これに対してソフトウェア設計者は、本ＧＵＩプログラミング支援システムによって後述する所定の様式の機能関係図を作成し、その内容をデジタルデータ化する。なお、本実施の形態のＧＵＩプログラミング支援システムは、機能関係図をシステム内で作成すればそのデータ内容に連動してステートチャートが自動的に作成するものとして説明するが、機能関係図や操作シナリオは別システムで作成し、そのデジタルデータを本システムに取り込めば、同様にステートチャートを自動的に作成することもできる。以下の説明では、一例として図２に示したデジタルカメラのソフトウェア設計について説明する。
【００２４】
［機能関係図］
本ＧＵＩプログラミング支援システムでは、ある製品の機能仕様書の内容に基づいて機能関係図を作成していくことにより、コンピュータ上での機能関係図の作成と同時にステートチャートを作成していく。まず、機能関係図について説明する。
【００２５】
図３（Ａ）に示すような機能仕様書１０の内容に対して、「階層機能関係」、「並列機能関係」、「排他機能関係」、「機能」を次のように定義して同図（Ｂ）のような機能関係図２０を作成する。
【００２６】
＜機能＞各機能については「Ｆｕｎｃ」ボックスで示し、かつ、そのＦｕｎｃボックスに機能名を付す。
【００２７】
＜階層機能関係＞図４に示すように、機能群又は機能間の上位・下位階層関係は「―」線で結ぶ。
【００２８】
＜並列機能関係＞図５に示すように、同時に複数の機能を選択として同時に作用させることができる同じ階層の機能群を「並列関係」にある機能群とし、各機能を「ＡＮＤ」ボックスでくくり、かつ、当該ＡＮＤボックスにその機能群の名称を必要に応じて付す。
【００２９】
＜排他機能関係＞図６に示すように、同じ階層の機能群でもいずれか１つしか動作できない機能群を「排他関係」にある機能群とし、各機能を「ＸＯＲ」ボックスでくくり、かつ、当該ＸＯＲボックスにその機能群の名称を必要に応じて付す。
【００３０】
＜局所的機能関係＞図７に示すように、ある機能「Ｆｕｎｃ」に対して特有の機能、つまり、ある機能と局所的な関係にある機能、機能群についても当該機能に対する下位階層の機能、あるいは並列機能群、排他的機能群として表す。
【００３１】
図３は、図２に示したデジタルカメラ５０の機能関係図２０の作成例を示したものである。この場合、機能仕様書１０の内容に基づき、第１階層（最上位階層）は「デジタルカメラ機能」という機能群でくくり、デジタルカメラの諸機能として「撮影機能群」と「画像再生機能群」とが第２階層としてある。これらの第２階層の機能群はいずれか一方の機能群しか選択できないものなので排他関係にあり、「ＸＯＲ」ボックスでくくる。
【００３２】
第２階層の「撮影機能群」については、「ズーム機能」、「フラッシュ機能」、そしてこれらのズーム機能、フラッシュ機能と共に動作する通常撮影機能、連続撮影機能、タイマー撮影機能というＸＯＲ機能群があり、これらのズーム機能、フラッシュ機能、ＸＯＲ機能群は同時動作可能なものなので、第３階層を並列機能群としてＡＮＤボックスでくくる。
【００３３】
第４階層の機能群として、いずれか１つの機能しか動作できない並列機能群として、通常撮影機能、連続撮影機能、タイマー撮影機能のＦｕｎｃボックスを第３階層のＸＯＲボックスに対してくくる。
【００３４】
さらに図７に示したように、第４階層の機能群の１つである通常撮影機能に対して（他の撮影モードでも適用可能である）、局所的機能として露出補正機能、シャッター速度補正機能が並列関係機能として可能であれば、これらについてはＦｕｎｃボックスに対する下位階層の機能群としてＡＮＤボックスでくくることになる。
【００３５】
なお、図３の例では、第２階層の画像再生機能群には「画像再生機能」の単一機能しかないものとして、それをＦｕｎｃボックスで表している。
【００３６】
本実施の形態のＧＵＩプログラミング支援システムにおいて、図８に示すように、このような機能関係図２０を作成していくことによって自動的に状態階層構造を示すステートチャート３０を作成する。図９、図１０はテンプレートデータベース５に登録されているＡＮＤ関係のテンプレート３０１、ＸＯＲ関係のテンプレート３０２を示している。
【００３７】
すなわち、図９では、上位階層のＡＮＤボックスＡ（並列機能関係）でくくられた下位階層のＦｕｎｃボックスＢ，Ｃ，Ｄ（機能Ｂ，Ｃ，Ｄ）の機能群を表す機能関係図２０１に対して、機能関係解釈部３が機能関係を解釈し、ステートチャート作成部４がテンプレートデータベース５から該当する並列機能関係のテンプレートを読み出し、かつ並列機能数が３個なので３個並列機能ボックスを用意したステートチャート３０１を構成する。そして並列機能関係テンプレート３０１の見出しにはＡＮＤボックスの機能名「Ａ」を書き込み、並列機能群の各機能ボックスの見出しには機能名「Ｂ」、「Ｃ」、「Ｄ」を書き込む。
【００３８】
まず図１０は、上位階層のＸＯＲボックスＡ（排他機能関係）でくくられた下位階層のＦｕｎｃＢ，Ｃ，Ｄ（機能Ｂ，Ｃ，Ｄ）の機能群を表す機能関係図２０２に対して、機能関係解釈部３が機能関係を解釈し、ステートチャート作成部４がテンプレートデータベース５から該当する排他機能関係のテンプレートを読み出し、排他機能数が３個なので３個の機能用品を機能ボックス内に並べた、ネスト構成のステートチャート３０２を構成する。そして、排他機能関係テンプレート３０２の見出しにはＸＯＲボックスの機能名「Ａ」を書き込み、その機能ボックス内の用意された排他機能群の各々の機能テンプレートの見出しに機能名「Ｂ」、「Ｃ」、「Ｄ」を書き込む。
【００３９】
こうして本実施の形態のシステムでは、ユーザーが、例えば図８に示すように撮影機能のＡＮＤボックス以下の階層構造の機能関係図２０を作成すれば、自動的に状態階層構造を示すステートチャート３０を作成することができる。機能仕様書１０から状態階層構造の機能関係図２０としてＡＮＤボックス「撮影機能」でくくられたＦｕｎｃボックス「ズーム機能」、Ｆｕｎｃボックス「フラッシュ機能」及びＸＯＲボックス、そしてこのＸＯＲボックスでくくられたさらに下位階層の排他機能関係にあるＦｕｎｃボックス「通常撮影機能」、Ｆｕｎｃボックス「連続撮影機能」、Ｆｕｎｃボックス「タイマー撮影機能」を作成することにより、システム側で自動的に状態階層構造を示すステートチャート３０を作成することができるのである。
【００４０】
機能関係図は上の状態階層構造にとどまらず、ＧＵＩ構成要素を上の機能関係図２０に関連づけ、どのボタンをどのように操作すればどのような機能が選択されるか、また操作結果は表示手段によってどのように表示されるか、つまり、機能選択操作とその結果をもステートチャートにして表現できなければならない。 
次に、本ＧＵＩプログラミング支援システムによるＧＵＩ構成要素付き機能関係図の作成から、自動的にステートチャートを自動的に作成する動作について説明する。図２に示すデジタルカメラ５０では、操作入力用に操作ボタン（０）５１、操作ボタン（１）５２、操作ボタン（２）５３、シーソー型ボタン５４、状態保持型ジョグダイヤル５５が備えられ、また操作ボタンによる選択操作のための選択項目の表示やボタン操作の結果の表示のための出力手段としてＬＣＤ５６、ランプ５７を備えている。これらの操作ボタン群の該当操作ボタンの操作によって機能選択や動作指令を行うことによってカメラ側の状態は変化し、またＬＣＤ５６の表示態様やランプ５７の点灯状態も操作ボタンの操作や撮影・再生動作に応じて変化する。そこで、機能関係図の作成においては、状態階層構造を表す機能関係図に対して、ＧＵＩ構成要素の関連付けを行う。
【００４１】
状態階層構造を表す機能関係図２０に対するＧＵＩ構成要素の関連付けは、図１１に示すものである。機能関係図２０に対して、第１階層のノードであるＸＯＲボックスでは、排他関係にある第２階層のＡＮＤボックス「撮影機能」とＦｕｎｃボックス「画像再生機能」のいずれかを選択することになる。企画仕様書では、この選択を状態保持型ジョグダイヤル５５の回転操作によるとしていれば、このＸＯＲボックスに対して状態保持型ジョグダイヤル５５を関連付ける。状態保持型ジョグダイヤル５５はある位置を基準マークに回転させるとその位置に該当する機能を選択、設定したことになる操作手段であるので、機能決定、機能戻りの操作を必要としない。そこで、ＸＯＲボックスに対して状態保持型ジョグダイヤル５５を関連付ける場合、関連付け２１の設定とする。
【００４２】
同様に、機能関係図２０における第３階層のノードであるＸＯＲボックスでは、排他関係の撮影機能選択を、ボタン（０）をプッシュする度に「通常撮影機能」→「連続撮影機能」→「タイマー撮影機能」→「通常撮影機能」…と順に機能選択し、操作ボタン（１）をプッシュ操作することによって機能決定し、またいったん決定した機能に対して機能戻しを行うには操作ボタン（２）をプッシュ操作するという関連付け２２を設定している。こうして作成されるのが、図１１に示すＧＵＩ構成要素付き機能関係図２３である。
【００４３】
本ＧＵＩプログラミング支援システムでは、図１２に示すボタン群５１〜５５、ＬＣＤ５６、ランプ５７のＧＵＩ構成要素についてテンプレート３０５〜３１１をデータベース５に登録している。
【００４４】
図１３に示すように、プッシュボタン（０）〜（２）についてはＧＵＩ構成要素用ステートチャートのテンプレート３０５と、ＧＵＩコントローラの機能選択用ステートチャートのテンプレート３１５が用意されている。ボタン（０）〜（２）の識別は、そのボタン名による。ＧＵＩ構成要素用テンプレート３０５は、ウェイティング状態において、当該ボタンがプッシュされることでプッシュ操作信号を入力することを表記している。「Ｐｕｓｈ  ｂｕｔｔｏｎ／ＰＵＳＨｅｖｅｎｔ」はボタンのプッシュ操作で、それに対応する操作信号が入力されることを意味している。
【００４５】
図１３において、ＧＵＩコントローラの機能選択用テンプレート３１５は、１組のプッシュボタン（０）〜（２）に割り付けられた機能選択用ステートチャートのテンプレートであり、ボタン（０）５１のプッシュ操作にて機能ｆ１〜ｆ４（この機能数は設計対象に応じて変化する）を順にトグル的に遷移することができ、ある機能の選択状態で機能決定に割当てられたボタン（１）５２をプッシュすれば該当機能の選択を決定し、逆にある機能選択が決定されている状態で機能戻りに割当てられたボタン（２）５３をプッシュすれば決定前の機能選択状態に戻ることを表記している。
【００４６】
図１４に示すように、シーソー型ボタン５４についても、ＧＵＩ構成要素用ステートチャートのテンプレート３０８と、ＧＵＩコントローラの機能選択用ステートチャートのテンプレート３１６が用意されている。ＧＵＩ構成要素用テンプレート３０８は、通常はウェイティング状態であり、右押し操作（Ｐｕｓｈ  ＲＩＧＨＴ）で右押しに割当てられた機能を設定する右押しイベント（ＲＩＧＨｅｖｅｎｔ）を入力し、左押し操作（Ｐｕｓｈ  ＬＥＦＴ）で左押しに割当てられた機能を設定する左押しイベント（ＬＥＦＴｅｖｅｎｔ）を入力することを表記している。
【００４７】
図１４において、このシーソー型ボタン５４に割り付けられた機能選択用ステートチャートのテンプレート３１６では、ボタン５４の右プッシュ操作にて現在の選択機能の位置から昇順に、例えば、機能ｆ１→ｆ２→ｆ３…→ｆｎ→ｆ１（この機能数ｎは設計対象に応じて変化する）と順にトグル的に遷移し、左プッシュ操作にて逆に現在の選択機能の位置から降順にトグル的に選択機能を遷移することができ、そして図１３の場合と同様にある機能の選択状態で機能決定に割当てられたボタン（１）５２をプッシュすれば該当機能の選択を決定し、逆にある機能選択が決定されている状態で機能戻りに割当てられたボタン（２）５３をプッシュすれば決定前の機能選択状態に戻ることを表記している。
【００４８】
図１５に示すように、状態保持型ジョグダイヤル５５についても、ＧＵＩ構成要素用ステートチャートのテンプレート３０９と、ＧＵＩコントローラの機能選択用ステートチャートのテンプレート３１７が用意されている。ＧＵＩ構成要素用テンプレート３０９は、ある選択位置でウェイティング状態であり、右回し操作（Ｔｕｒｎ  ＣＷ）で右回しイベント（ＣＷｅｖｅｎｔ）を入力し、左回し操作（Ｔｕｒｎ  ＣＣＷ）で左回しイベント（ＣＣＷｅｖｅｎｔ）を入力することを表記している。
【００４９】
図１５において、この状態保持型ジョグダイヤル５５に割り付けられた機能選択用ステートチャートのテンプレート３１７では、ジョグダイヤル５５の右回し操作にて現在の選択機能の位置から順に、例えば、機能Ｆｕｎｃｔｉｏｎ１→Ｆｕｎｃｔｉｏｎ２→Ｆｕｎｃｔｉｏｎ３…→Ｆｕｎｃｔｉｏｎ（ｎ）→Ｆｕｎｃｔｉｏｎ１（この機能数ｎは設計対象に応じて変化する）と順にトグル的に機能選択し、左回し操作にて逆に現在の選択機能の位置から降順にトグル的に機能選択することを表記している。
【００５０】
また本ＧＵＩプログラミング支援システムでは、図１６（Ａ），（Ｂ）に示すような液晶ディスプレイＬＣＤ５６、ランプ５７に対するテンプレート３１０，３１１が出力ＧＵＩ構成要素用テンプレートとしてテンプレートデータベース５に登録してある。ＬＣＤ５６には表示フィールド１，２があり、フィールド１については、無表示状態「Ｓｈｏｗｉｎｇ  Ｎｏｔｈｉｎｇ」から“Ｐｌａｙ”の表示命令（イベント）によって、“Ｐｌａｙ”の表示状態「Ｓｈｏｗｉｎｇ  “Ｐｌａｙｉｎｇ”」に遷移する。またこの逆の表示状態の遷移もある。さらに、無表示状態「Ｓｈｏｗｉｎｇ  Ｎｏｔｈｉｎｇ」からでも、表示状態「Ｓｈｏｗｉｎｇ  “Ｐｌａｙｉｎｇ”」からでも、時刻を取得して表示せよとの命令「Ｇｅｔ  Ｓｈｏｗ  “Ｔｉｍｅ”」によって実時刻「“Ｔｉｍｅ”」を表示する状態「Ｓｈｏｗｉｎｇ  Ｔｉｍｅ」に遷移することを表す。またこの逆の表示状態の遷移もある。同様に、ランプ５７の点灯状態についても、点灯指令「Ｇｅｔ  ｌｉｇｈｔ  ｔｕｒｎ  ＯＦＦ」によって点灯状態「ＯＮ」に遷移し、消灯指令「Ｇｅｔ  ｌｉｇｈｔ  ＯＦＦ」を受けて消灯状態「ＯＦＦ」に遷移することを表す。
【００５１】
本実施の形態のＧＵＩプログラミング支援システムでは、図３、図１１に示すように機能仕様企画書１０から機能関係図２０、さらにはＧＵＩ構成要素付き機能関係図２３を作成していけば、これに連動して本システム側で図２２に示すようなステートチャート３０を自動作成する。その手順について、図１７〜図２１を用いて説明する。
【００５２】
図１７、図１８に示すように、本実施の形態のＧＵＩプログラミング支援システムでは状態階層構造の機能関係図２０の作成によって、機能関係図解釈部３がその機能関係図２０のデータに対して状態階層構造生成則を当てはめて解釈し、ステートチャート作成部４がこの解釈結果に対して該当するステートチャートのテンプレートをテンプレートデータベース５から取り出し、必要事項を該当箇所に書き込むことによって状態階層構造のステートチャート３０を自動的に作成する（ステップＡ１）。
【００５３】
機能関係図解釈部３はまた、ＧＵＩ構成要素付き機能関係図２３が入力される場合、そのうちの状態階層構造の機能関係図２０に対しては上の処理を行って状態階層構造のステートチャート３０を作成する（ステップＡ１）。さらにＧＵＩ構成要素の機能関係図２３に対して、機能関係図解釈部３とステートチャート作成部４によってＧＵＩ構成要素を解釈し、必要なＧＵＩ構成要素のステートチャートテンプレートをテンプレートデータベース５から取り出し、必要事項を該当箇所に書き込むことによって基礎となる状態階層構造のステートチャート３０と合体することによって機能選択部のステートチャート３１を作成する（ステップＡ２）。さらに、機能関係図解釈部３とステートチャート作成部４によってＧＵＩ構成要素付きの機能関係図２３を解釈し、機能決定、機能戻りの遷移をステートチャート３１の該当箇所に書き込むことによってＧＵＩコントローラの機能選択用ステートチャート３１を完成させる（ステップＡ３）。
【００５４】
上記ステップＡ２、Ａ３の処理について図１９を用いて詳しく説明する。同図（Ａ）に示す階層構造の機能関係図２０に対してＧＵＩ構成要素２１を割付けてＧＵＩ構成要素付きの機能関係図２３を作成することによって、本ＧＵＩプログラミング支援システム側で階層構造のステートチャート３０を自動作成し、さらに、同図（Ｂ）に示すプッシュボタンのＧＵＩ構成要素テンプレート３１５を用い、該当箇所に機能名、操作名を書き込むことによって同図（Ｃ）に示すＧＵＩコントローラの機能選択用ステートチャート３１を作成する。
【００５５】
このようにして、本実施の形態のＧＵＩプログラミング支援システムによれば、仕様企画書に基づいてソフトウェア設計者が機能関係図２０、ＧＵＩ構成要素付きの機能関係図２３を作成することにより、システム側で自動的にその内容を解釈し、必要なテンプレートを呼出し、該当箇所に機能名、操作名、イベント名等を書き込んで図２０に示すようなＧＵＩコントローラ用ステートチャート３１とＧＵＩ構成要素用ステートチャート３２を作成することができ、このようなステートチャートが作成できればこれを利用した仕様検証がコンピュータシステムによって可能であるので、検証結果をフィードバックすることによってソフトウェア設計を修正する作業も容易であり、ソフトウェアプログラミングの開発の効率化が図れる。
【００５６】
なお、上記実施の形態の説明ではデジタルカメラのソフトウェア設計を例に挙げて説明したが、本システムは各種機器の応じたステートチャートテンプレートを用意することにより、携帯電話機、シリコン音楽記録再生装置、ＰＤＡ等、種々のデジタル機器のソフトウェア設計にも等しく利用することができる。
【００５７】
図２１〜図２５を用いて本実施の形態のＧＵＩプログラミング支援システムによるＭＰ３プレーヤのソフトウェア設計について説明する。図２１（Ａ）に示すようなＭＰ３プレーヤの仕様企画書に対して同図（Ｂ）に示す階層構造の機能関係図を作成する。この例の場合、ＭＰ３プレーヤの機能は時計機能とＭＰ３プレーヤ機能とが並列機能であり、ＭＰ３プレーヤ機能の中では、ＭＰ３ファイルの再生機能、外部音記録再生機能、ＭＰ３ファイルのアップ・ダウンロード機能が排他機能である。そして、ＭＰ３ファイルの再生機能では、イコライザ機能と音量調節機能が局所機能として並列機能で働く。また、外部音記録再生機能では、外部音録音機能と外部音再生機能とが排他関係でいずれかが動作する。ソフトウェア設計者がこのような階層構造の機能関係図を作成すれば、本システムが自動的に図２２に示す階層構造のステートチャート３０を作成する。
【００５８】
続いて、機能シナリオのソフトウェア設計も行う。本例では、設計対象とするＭＰ３プレーヤが図２３に示す入力ボタンｂｕｔｔｏｎ１〜ｂｕｔｔｏｎ４、出力画面としてＬＣＤ１〜ＬＣＤ４をＧＵＩ構成要素として備えているとする。そして、機能シナリオとして、例えば、外部音記録再生機能では、待機状態では日付表示をしており、ｂｕｔｔｏｎ１を押せばＬＣＤ１に「ＰＬＡＹ」を表示させ、再生機能に遷移するとし、「ＰＬＡＹ」状態でｂｕｔｔｏｎ１を２秒間長押しすれば機能解除して待機状態に戻るシナリオを設定するとする。また外部音記録再生機能の待機状態で、ｂｕｔｔｏｎ２を押せばＬＣＤ１に「ＲＥＣ」を表示させ、録音機能に遷移するとし、「ＲＥＣ」状態でｂｕｔｔｏｎ２を２秒間長押しすれば機能解除して待機状態に戻るシナリオも設定するとする。このようなシナリオを階層構造の機能関係図における外部音記録再生機能に対して設定すれば、本システム側では自動的に図２４に示す各機能毎の機能シナリオのステートチャートを作成する。
【００５９】
そして上記した図２１の階層構造のステートチャートと図２４の機能毎の機能シナリオのステートチャートを合成することによって、最終的に図２５に示すようなステートチャートを自動的に作成できることになる。
【図面の簡単な説明】
【００６０】
【図１】本発明の１つの実施の形態のＧＵＩプログラミング支援システムの機能ブロック図。
【図２】上記実施の形態のシステムによる設計対象とするデジタルカメラの背面図。
【図３】上記設計対象であるデジタルカメラの企画仕様書から作成される機能関係図の説明図。
【図４】上記機能関係図で用いる階層機能関係の表記例の説明図。
【図５】上記機能関係図で用いる並列機能関係の表記例の説明図。
【図６】上記機能関係図で用いる排他機能関係の表記例の説明図。
【図７】上記機能関係図で用いる局所機能関係の表記例の説明図。
【図８】上記実施の形態のシステムにより機能関係図から階層構造のステートチャートを作成する手順を示す説明図。
【図９】上記実施の形態のシステムで用いる並列機能関係のステートチャートテンプレートの説明図。
【図１０】上記実施の形態のシステムで用いる排他機能関係のステートチャートテンプレートの説明図。
【図１１】上記階層構造の機能関係図にＧＵＩ構成要素を関連付けたＧＵＩ機能要素付き機能関係図の説明図。
【図１２】上記デジタルカメラのＧＵＩ構成要素毎のステートチャートテンプレートの説明図。
【図１３】上記デジタルカメラのプッシュボタンに対するＧＵＩ構成要素用ステートチャートテンプレートとＧＵＩコントローラ機能選択用ステートチャートテンプレートの説明図。
【図１４】上記デジタルカメラのシーソー型ボタンに対するＧＵＩ構成要素用ステートチャートテンプレートとＧＵＩコントローラ機能選択用ステートチャートテンプレートの説明図。
【図１５】上記デジタルカメラの状態保持型ジョグダイヤルに対するＧＵＩ構成要素用ステートチャートテンプレートとＧＵＩコントローラ機能選択用ステートチャートテンプレートの説明図。
【図１６】上記デジタルカメラの出力ＧＵＩ構成要素用ステートチャートのテンプレートの説明図。
【図１７】上記実施の形態のシステムによるステートチャート作成処理のフローチャート。
【図１８】上記実施の形態のシステムによるステートチャート作成処理の処理段階別の説明図。
【図１９】上記実施の形態のシステムによるＧＵＩ構成要素付き機能関係図からＧＵＩ構成要素用ステートチャートテンプレートを用いてＧＵＩコントローラの機能選択用ステートチャートを作成する処理の説明図。
【図２０】上記実施の形態のシステムにより作成したデジタルカメラ用のステートチャートの全体図。
【図２１】上記実施の形態のシステムによりＭＰ３プレーヤの企画仕様書から作成した階層構造の機能関係図を示す説明図。
【図２２】上記実施の形態のシステムにより上記階層構造の機能関係図から自動作成された階層構造のステートチャートの説明図。
【図２３】上記実施の形態のシステムのソフトウェア設計対象となったＭＰ３プレーヤのＧＵＩ構成要素の配置図。
【図２４】上記実施の形態のシステムにより作成したＧＵＩ構成要素による機能シナリオのステートチャートの説明図。
【図２５】上記実施の形態のシステムにより作成したＭＰ３プレーヤのステートチャートの全体図。
【符号の説明】
【００６１】
１  機能関係図データ入力部
２  機能シナリオ入力部
３  機能関係図解釈部
４  ステートチャート作成部
５  テンプレートデータベース
６  ステートチャート出力部
【図１】
2005242721.tif 000003
【図２】
2005242721.tif 000004
【図３】
2005242721.tif 000005
【図４】
2005242721.tif 000006
【図５】
2005242721.tif 000007
【図６】
2005242721.tif 000008
【図７】
2005242721.tif 000009
【図８】
2005242721.tif 000010
【図９】
2005242721.tif 000011
【図１０】
2005242721.tif 000012
【図１１】
2005242721.tif 000013
【図１２】
2005242721.tif 000014
【図１３】
2005242721.tif 000015
【図１４】
2005242721.tif 000016
【図１５】
2005242721.tif 000017
【図１６】
2005242721.tif 000018
【図１７】
2005242721.tif 000019
【図１８】
2005242721.tif 000020
【図１９】
2005242721.tif 000021
【図２０】
2005242721.tif 000022
【図２１】
2005242721.tif 000023
【図２２】
2005242721.tif 000024
【図２３】
2005242721.tif 000025
【図２４】
2005242721.tif 000026
【図２５】
2005242721.tif 000027