(57)【特許請求の範囲】
【請求項１】
特定の装置の複数のタスク間の入出力関係及び処理シーケンスを示すシーケンスチャートを作成するためのシーケンスチャート作成手段と、
特定のシステムのコンセプトを表現するコンセプトチャート用のフレームワークであって前記シーケンスチャート作成手段で作成したシーケンスチャートに対応するものを、前記シーケンスチャートに基づいて自動生成して表示部に表示するフレームワーク生成手段と、
前記フレームワーク生成手段で生成して表示したフレームワークを用いてコンセプトチャートを作成するコンセプトチャート作成手段と、
前記コンセプトチャート作成手段で作成したコンセプトチャートを制御プログラムに変換する情報変換手段と、を備える、
プログラム開発支援装置。
【請求項２】
前記シーケンスチャート作成手段は、
オペレータが操作可能な入力部と、
前記複数のタスクに対応する項目が所定方向に配置され前記複数のタスク毎の処理シーケンスが前記所定方向に直交する方向に配置されたマトリクス状のシーケンスチャート描画用ブランク画像を表示するための表示部と、
オペレータによる前記入力部の操作に基づいて前記ブランク画像に前記複数のタスク毎の処理を単純図形で描画するとともに前記複数のタスクの処理間で授受されるメッセージを線分で描画してシーケンスチャートを生成する描画手段と、を有する、
請求項１に記載のプログラム開発支援装置。
【請求項３】
前記コンセプトチャート作成手段は、
オペレータが操作可能な入力部と、
前記コンセプトチャートの作成過程を表示するための表示部と、
オペレータによる入力部の操作に基づいて前記コンセプトチャートを構成するコンセプト部品を含む複数の部品を前記表示部に表示するとともに前記部品の各々に関する情報と前記部品同士の関係を規定する情報とを前記表示部に表示する部品情報表示手段と、
を有する、
請求項１又は２に記載のプログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム開発支援装置に関する。
【背景技術】
【０００２】
現在、複数のタスクを協調動作させるためのプログラム（以下、「マルチタスクプログラム」という）の開発が広く行われている。従来は、タスク毎にシーケンス図とタスク間受け渡しメッセージという２つの設計書を参照しながら、プログラミング言語に精通した専門の技術者が全てプログラミングを行ってマルチタスクプログラムを作成していた。そして、作成したプログラムを使用して対象装置の複数のタスクを協調動作させることによってプログラムを検証し、必要があれば修正を繰り返して最終的なプログラムを完成させる、という手法を採用してマルチタスクプログラムの開発を行っていた。
【０００３】
なお、マルチタスクプログラムとの関連性は低いが、近年においては、対象装置の動作結果をタイミングチャート上に表示してプログラムの整合性を検証する設計支援装置が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１４８９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さて、前記したような従来のマルチタスクプログラム開発手法を採用すると、プログラムの品質がプログラミングを行う技術者のスキルに依存してしまうため、品質のばらつきが生じ易くなる。また、従来の開発手法においては、タスク毎にシーケンス図及びタスク間受け渡しメッセージを参照しながら複雑なプログラミングを行うため、出来上がったプログラムにバグが入り込むリスクが高くなる。このため、誰もが容易に高品質のマルチタスクプログラムを作成することができる開発環境が待望されていた。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、誰もが容易に高品質のマルチタスクプログラムを作成することを可能とするプログラム開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記目的を達成するため、本発明に係るプログラム開発支援装置は、特定の装置の複数のタスク間の入出力関係及び処理シーケンスを示すシーケンスチャートを作成するためのシーケンスチャート作成手段と、特定のシステムのコンセプトを表現するコンセプトチャート用のフレームワークを、シーケンスチャート作成手段で作成したシーケンスチャートに対応付けて生成して表示部に表示するフレームワーク生成手段と、フレームワーク生成手段で生成して表示したフレームワークを用いてコンセプトチャートを作成するコンセプトチャート作成手段と、コンセプトチャート作成手段で作成したコンセプトチャートを制御プログラムに変換する情報変換手段と、を備えるものである。
【０００８】
かかる構成を採用すると、特定の装置の複数のタスク間の入出力関係及び処理シーケンスを示すシーケンスチャートを生成し、このシーケンスチャートに対応するコンセプトチャート用のフレームワークを生成して表示部に表示することができる。そして、表示したフレームワークを用いてコンセプトチャートを作成し、このコンセプトチャート（マルチタスクプログラムのコンセプトチャート）を制御プログラム（マルチタスクプログラム）に変換することができる。従って、複雑なプログラミングを行うことなく、誰もが容易に共通のフレームワークを持つ信頼性の高いマルチタスクプログラムを作成することが可能となる。
【０００９】
前記プログラム開発支援装置において、オペレータが操作可能な入力部と、複数のタスクに対応する項目が所定方向に配置され複数のタスク毎の処理シーケンスが所定方向に直交する方向に配置されたマトリクス状のシーケンスチャート描画用ブランク画像を表示するための表示部と、オペレータによる入力部の操作に基づいてブランク画像に複数のタスク毎の処理を単純図形で描画するとともに複数のタスクの処理間で授受されるメッセージを線分で描画してシーケンスチャートを生成する描画手段と、を有するシーケンスチャート作成手段を採用することができる。
【００１０】
かかる構成を採用すると、オペレータによる入力部の操作に基づいて、特定の装置の複数のタスク毎の処理や処理間で授受されるメッセージを単純図形や線分でシーケンスチャート描画用のブランク画像に描画してシーケンスチャートを作成することができる。そして、作成したシーケンスチャートをコンセプトチャート用のフレームワークに変換して表示部に表示することができる。従って、オペレータは、入力部を操作してブランク画像に特定の線分等を描画するだけで、特定の装置の複数のタスク毎の処理シーケンスを視覚的・直感的に認識しながらきわめて容易にシーケンスチャートを作成することができ、このシーケンスチャートに基づいてコンセプトチャート用フレームワークを自動生成して表示することができる。
【００１１】
また、前記プログラム開発支援装置において、オペレータが操作可能な入力部と、コンセプトチャートの作成過程を表示するための表示部と、オペレータによる入力部の操作に基づいてコンセプトチャートを構成するコンセプト部品を含む複数の部品を表示部に表示するとともに部品の各々に関する情報と部品同士の関係を規定する情報とを表示部に表示する部品情報表示手段と、を有するコンセプトチャート作成手段を採用することができる。
【発明の効果】
【００１２】
本発明によれば、誰もが容易に高品質のマルチタスクプログラムを作成することを可能とするプログラム開発支援装置を提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るプログラム開発支援装置の構成を説明するためのブロック図である。
【図２】図１に示すプログラム開発支援装置の表示部に表示されたシーケンスチャートの一例を示す図である。
【図３】図２に示すシーケンスチャートに対応するコンセプトチャート用フレームワークを示す図である。
【図４】同上
【図５】同上
【図６】コンセプトチャートの関連ドキュメント管理方法の概念を説明するための説明図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態について説明する。
【００１５】
まず、図１等を用いて、本発明の実施形態に係るプログラム開発支援装置１の全体構成について説明する。本実施形態に係るプログラム開発支援装置１は、各種情報処理を行う中央情報処理装置１０と、中央情報処理装置１０に接続された入力部２０及び表示部３０と、を備え、シーケンスチャートやコンセプトチャートを採用することにより、システム開発に携わる技術者によるマルチタスクプログラムの開発を支援するものである。ここで、シーケンスチャートとは、特定の装置（例えば、エレベータ）の複数のタスク間の入出力関係及び処理シーケンスを示すチャート（図表）である。また、コンセプトチャートとは、特定のシステムのコンセプトを表現しかつそのコンセプトを実現させるためのチャート（図表）であり、コンセプト自体を表現するコンセプト部品と、コンセプトを実現させるためのリアライズ部品と、を含む複数の部品から構成されている。
【００１６】
入力部２０は、マウスやキーボード等を含む各種ポインティングデバイスであり、オペレータが中央情報処理装置１０に対して各種情報の入力を行う際に使用される。オペレータは、入力部２０を用いて、シーケンスチャートを構成する単純図形や線分を描画することができる。また、オペレータは、入力部２０を用いて、コンセプトチャートを構成する部品の選択入力を行ったり、これら部品に関する各種情報や部品同士の関係を規定する情報を入力したりすることもできる。
【００１７】
表示部３０は、中央情報処理装置１０から出力される画像信号を受けて、各種画像を表示するものである。本実施形態における表示部３０には、図２に示すようなシーケンスチャートや、図３〜図５に示すようなコンセプトチャート用フレームワーク等が表示される。
【００１８】
中央情報処理装置１０は、ＣＰＵ、入出力インターフェース、メモリ（ＲＯＭ、ＲＡＭ、ＨＤＤ等）等を備えるコンピュータシステムであり、メモリに記録された各種制御プログラムをＣＰＵが読み込んで所望の演算を実行することにより、種々の処理や制御を行う。
【００１９】
具体的には、中央情報処理装置１０は、複数のタスクに対応する項目が所定方向に配置され複数のタスク毎の処理シーケンスが所定方向に直交する方向に配置されたマトリクス状のシーケンスチャート描画用ブランク画像を表示部３０に表示する。また、中央情報処理装置１０は、入力部２０からの入力信号を受けて、表示部３０に表示すべき画像信号を表示部３０に出力することにより、ブランク画像に複数のタスク毎の処理を単純図形で描画するとともに複数のタスクの処理間で授受されるメッセージを線分で描画してシーケンスチャートを生成する。すなわち、中央情報処理装置１０は、本発明における描画手段として機能する。また、中央情報処理装置１０、入力部２０及び表示部３０により、本発明におけるシーケンスチャート作成手段が構成される。
【００２０】
また、中央情報処理装置１０は、作成したシーケンスチャートに対応するコンセプトチャート用のフレームワークを自動生成して表示部３０に表示する。すなわち、中央情報処理装置１０は、本発明におけるフレームワーク生成手段としても機能する。ここで、コンセプトチャート用のフレームワーク（以下、単に「フレームワーク」という）とは、シーケンスチャートの通りに各タスクがメッセージ交換しながら処理を実行するマルチタスクプログラムのフレームワークであり、コンセプトチャートのひな型となるものである。フレームワークは、シーケンスチャートで表現されるメッセージの送受信やデータの識別等の基本的な情報を含むものであるため、フレームワークに含まれる処理モジュール内で種々の機能のみを追記してコンセプトチャートを完成させるだけで、シーケンスチャート通りの複雑なマルチタスクプログラムを作成することができる。なお、フレームワークの具体例については、図３等を用いて後に詳述する。
【００２１】
また、中央情報処理装置１０は、表示したフレームワークを用いてコンセプトチャートを作成し、表示部３０に表示する。この際、中央情報処理装置１０は、入力部２０からの入力信号を受けて、コンセプトチャートを構成する部品の各々に関する情報や、表示された部品同士の関係を規定する情報を表示する。すなわち、中央情報処理装置１０は、本発明における部品情報表示手段としても機能する。また、中央情報処理装置１０、入力部２０及び表示部３０により、本発明におけるコンセプトチャート作成手段が構成される。
【００２２】
また、中央情報処理装置１０は、作成したコンセプトチャートを制御プログラムに変換する。具体的には、中央情報処理装置１０は、作成したコンセプトチャートを、ＦＡ制御言語で記述された制御プログラムに変換する。また、中央情報処理装置１０は、ＦＡ制御言語で記述された制御プログラムを、Ｃ言語で記述された制御プログラムに変換する。すなわち、中央情報処理装置１０は、本発明における情報変換手段としても機能する。
【００２３】
次に、図２〜図５等を用いて、本実施形態に係るプログラム開発支援装置１を用いてマルチタスクプログラムを作成する方法の一例について説明する。
【００２４】
まず、オペレータは、入力部２０において所定の入力操作を行うことにより、表示部３０上でシーケンスチャートを作成する。具体的には、オペレータは、所定の入力操作を行うことにより、表示部３０にマトリクス状のシーケンスチャート描画用ブランク画像を表示させる。かかるブランク画像においては、図２に示すように、複数のタスクに対応する項目（タスク名：装置制御、接点入力監視、ランプ制御、……等）が縦方向に配置され、複数のタスク毎の処理シーケンスが横方向に配置されている。
【００２５】
次いで、オペレータは、所定の入力操作を行うことにより、表示部３０に表示されたブランク画像に複数のタスク毎の処理を単純図形（例えば図２に示すような○）で描画する。本実施形態においては、図２に示すように、処理が設定されているセルの上段に、処理を具現化するモジュールのモジュール名（例えば"ControlTimer"等）を記述することとしている。また、オペレータは、所定の入力操作を行うことにより、複数のタスクの処理間で授受されるメッセージ（タスク間通信メッセージ）を線分（矢印）で描画する。なお、本実施形態においては、表示部３０に表示されるプロパティリストを参照して、入出力メッセージ等の各種情報を設定している。
【００２６】
図２は、上記手順を経て作成したシーケンスチャートの一例を示すものである。このシーケンスチャートにおいては、接点入力監視タスクの"InputButton"モジュールで接点入力検出処理がなされた場合に、その結果が装置制御タスクの"ControlMotor"モジュールに通知される。すると、装置制御タスクの"ControlMotor"モジュールから、ランプ制御タスクの"ControlLamp"モジュール及びタイマ管理タスクの"ControlTimer"モジュールに制御要求が通知される。ランプ制御タスクの"ControlLamp"モジュールでは、装置制御タスクの"ControlMotor"モジュールからの制御要求に基づいてランプ制御を実行する。タイマ管理タスクの"ControlTimer"モジュールでは、装置制御タスクの"ControlMotor"モジュールからの制御要求に基づいて時間管理が開始される。そして、所定時間が経過した時点で、タイマ管理タスクの"ControlTimer"モジュールから装置制御タスクの"StartMotor"モジュールに制御要求が通知される。すると、装置制御タスクの"StartMotor"モジュールから、モータ制御タスクの"DriveMotor"モジュールに制御要求が通知される。モータ制御タスクの"DriveMotor"モジュールでは、装置制御タスクの"StartMotor"モジュールからの制御要求に基づいてモータ制御を実行する。
【００２７】
次いで、オペレータは、入力部２０において所定の入力操作を行うことにより、作成したシーケンスチャートに対応するフレームワークを生成して表示部３０に表示する。具体的には、オペレータは、所定の入力操作を行うことにより、図２に示すシーケンスチャートで表現された全タスクにおける処理（モジュール）や処理間におけるメッセージの授受を実現させるためのメインフレームワーク（図３）や、タスク毎の機能を実現させるためのタスクフレームワーク（図４）等を生成して表示部３０に表示する。
【００２８】
図３を用いて、メインフレームワークについて具体的に説明する。メインフレームワークは、コンセプトチャートの開始部品Ｓ及び終了部品Ｅを有するとともに、「全タスクのメッセージキューを生成する」というコンセプトを示すコンセプト部品Ｃ1と、「全タスクを起動する」というコンセプトを示すコンセプト部品Ｃ2と、を有している。本実施形態においては、オペレータが、表示部３０に表示されたコンセプト部品Ｃ2上にマウスポインタを配置した状態で入力部２０としてのマウスをダブルクリックすると、設定画面が表示され、その設定画面上でプロパティリスト等を参照して全タスクの起動態様の詳細を設定することができるようになっている。また、オペレータが、表示部３０に表示されたコンセプト部品Ｃ1をダブルクリックすることにより、後述するタスクフレームワーク（例えば図４）が表示部３０に表示されるようになっている。
【００２９】
図４を用いて、図２に示すシーケンスチャートの「装置制御タスク」の機能を実現させるためのタスクフレームワーク（以下、「装置制御フレームワーク」という）について具体的に説明する。装置制御フレームワークは、開始部品Ｓ及び終了部品Ｅを有するとともに、二個一組で配置される反復を表すリアライズ部品Ｒ1及びＲ2を有している。これらＲ1及びＲ2の間に配置された部品群は所定の周期で繰り返し実行される。また、装置制御フレームワークは、二個一組で配置される条件を表すリアライズ部品Ｒ3及びＲ4と、実行する内容を具体的に表示するリアライズ部品Ｒ5〜Ｒ9と、を有している。Ｒ5は「メッセージの待機」を実行するものであり、Ｒ6は「通知されたメッセージの内容を調べる」ことを実行するものである。Ｒ7は「（接点入力通知があった場合に）モータ制御を開始する」ことを実行するものであり、Ｒ8は「（タイムアウト通知があった場合に）モータを起動する」ことを実行するものであり、Ｒ9は「（モータ制御完了通知があった場合に）モータを停止する」ことを実行するものである。
【００３０】
本実施形態においては、Ｒ5でメッセージの待機がなされ、メッセージが通知された場合には待機が解除されて、Ｒ6でメッセージの内容が解読される。そして、通知されたメッセージが「接点入力」であった場合にはＲ7でモータ制御が開始され、通知されたメッセージが「タイムアウト」であった場合にはＲ8でモータの起動が行われ、通知されたメッセージが「モータ制御完了」であった場合にはＲ9でモータの停止が行われる。また、オペレータが、表示部３０に表示されたリアライズ部品Ｒ6〜Ｒ9上にマウスポインタを配置した状態で入力部２０としてのマウスをダブルクリックすると、シーケンスチャートの処理モジュール（セル）に対応する処理フレームワークが表示部３０に表示されるようになっている。
【００３１】
例えば、オペレータが、表示部３０に表示されたリアライズ部品Ｒ7をダブルクリックすると、図２に示すシーケンスチャートの装置制御タスクの"ControlMotor"モジュールに対応した図５に示すような処理フレームワークが表示部３０に表示される。図５に示す処理フレームワークは、開始部品Ｓ及び終了部品Ｅを有するとともに、実行する内容を具体的に表示するリアライズ部品Ｒ71及びＲ72を有している。Ｒ71は「タイマ登録要求の送信」を実行するものであり、Ｒ72は「モータ制御要求の送信」を実行するものである。リアライズ部品Ｒ71及びＲ72の実行によって送信されたメッセージは、図示されていないタイマ管理タスク用のフレームワークに含まれるメッセージ待機用リアライズ部品の実行によって受信され、タイマ管理タスクの"ControlTimer"モジュールに対応する処理フレームワークで処理される。
【００３２】
図３〜図５に示したフレームワークは、図２に示したシーケンスチャートで表現されるメッセージの送受信やデータの識別等の基本的な情報を含むものであるため、オペレータが、入力部２０を介して、フレームワークに含まれる部品に種々の機能のみを追記するだけで、コンセプトチャートを完成させることができる。
【００３３】
次いで、オペレータは、入力部２０において所定の入力操作を行うことにより、作成したコンセプトチャート（マルチタスクプログラム用のコンセプトチャート）を、制御プログラム（マルチタスクプログラム）に変換する。オペレータは、以上の手順を経て作成されたマルチタスクプログラムを対象装置に適用してプログラムを検証し、必要があれば同様の手順を繰り返すことにより、最終的なプログラムを完成させることができる。
【００３４】
以上の実施形態に係るプログラム開発支援装置１においては、特定の装置の複数のタスク間の入出力関係及び処理シーケンスを示すシーケンスチャートを生成し、このシーケンスチャートに対応するフレームワークを生成して表示部３０に表示することができる。そして、表示したフレームワークを用いてコンセプトチャートを作成し、このコンセプトチャート（マルチタスクプログラムのコンセプトチャート）を制御プログラム（マルチタスクプログラム）に変換することができる。従って、複雑なプログラミングを行うことなく、誰もが容易に共通のフレームワークを持つ信頼性の高いマルチタスクプログラムを作成することが可能となる。
【００３５】
また、以上の実施形態に係るプログラム開発支援装置１においては、オペレータによる入力部２０の操作に基づいて、特定の装置の複数のタスク毎の処理や処理間で授受されるメッセージを単純図形や線分でシーケンスチャート描画用のブランク画像に描画してシーケンスチャートを作成することができる。そして、作成したシーケンスチャートをフレームワークに変換して表示部３０に表示することができる。従って、オペレータは、入力部２０を操作してブランク画像に特定の線分等を描画するだけで、特定の装置の複数のタスク毎の処理シーケンスを視覚的・直感的に認識しながらきわめて容易にシーケンスチャートを作成することができ、このシーケンスチャートに基づいてフレームワークを自動生成して表示することができる。
【００３６】
なお、以上の実施形態においては、図２に示すようなシーケンスチャート及び図３〜図５に示すようなコンセプトチャート用フレームワークを例示したが、シーケンスチャートやフレームワークはこれらに限定されないことは勿論である。
【００３７】
また、以上の実施形態においては、図３〜図５に示すようなフレームワークを用いてコンセプトチャートを完成させる例を示したが、このようなコンセプトチャートに関連する様々な種類のドキュメント（ドキュメント＃１、ドキュメント＃２、・・・）については、種々の方法で管理することができる。例えば、これらの関連ドキュメントを、図６に示すような外部のファイルサーバー（サーバーＡ、サーバーＢ、・・・）に格納しておき、これらファイルサーバーに中央情報処理装置１０の通信インターフェースを介して必要に応じてアクセスして読み出すことができる。また、これらの関連ドキュメントを、中央情報処理装置１０のメモリ内にファイル形式を問わずにまとめて格納して一元管理することもできる。このような一元管理を行うと、（１）コンセプトチャートに関連する情報を即座に全て得ることができ、（２）ファイルの散在を防止することができ、（３）ファイルを探す手間を省くことができ、（４）誤った資料を見ることがなくなる、等の種々のメリットを享受することができる。
【符号の説明】
【００３８】
１…プログラム開発支援装置
１０…中央情報処理装置（フレームワーク生成手段、シーケンスチャート作成手段、コンセプトチャート作成手段、情報変換手段、描画手段、部品情報表示手段）
２０…入力部（シーケンスチャート作成手段、コンセプトチャート作成手段）
３０…表示部（シーケンスチャート作成手段、コンセプトチャート作成手段）
【図１】
0005299924.tif 000002
【図２】
0005299924.tif 000003
【図３】
0005299924.tif 000004
【図４】
0005299924.tif 000005
【図５】
0005299924.tif 000006
【図６】
0005299924.tif 000007