JPH08202579A - プログラミング支援装置及びプログラミング支援方法 - Google Patents
プログラミング支援装置及びプログラミング支援方法Info
- Publication number
- JPH08202579A JPH08202579A JP7008069A JP806995A JPH08202579A JP H08202579 A JPH08202579 A JP H08202579A JP 7008069 A JP7008069 A JP 7008069A JP 806995 A JP806995 A JP 806995A JP H08202579 A JPH08202579 A JP H08202579A
- Authority
- JP
- Japan
- Prior art keywords
- recording
- thread
- message
- programming support
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 スレッドを単位としたデバッグを効率的に行
うプログラミング支援装置及びプログラミング支援方法
を提供する。 【構成】 着信したメッセージを送受信手段3がメッセ
ージをスレッド管理部4に渡すと共に、メッセージのコ
ピーを第1の記録部5に渡す。メッセージを受けとった
スレッド管理部4はメッセージを受領すべきスレッドを
決定し、このメッセージをthread0に引き渡すと
共に、スレッドIDを第1の記録部5に引き渡す。第1
の記録部5は、メッセージにスレッドIDを付加して、
この付加されたメッセージを記録用オブジェクト1に送
信して記録する。
うプログラミング支援装置及びプログラミング支援方法
を提供する。 【構成】 着信したメッセージを送受信手段3がメッセ
ージをスレッド管理部4に渡すと共に、メッセージのコ
ピーを第1の記録部5に渡す。メッセージを受けとった
スレッド管理部4はメッセージを受領すべきスレッドを
決定し、このメッセージをthread0に引き渡すと
共に、スレッドIDを第1の記録部5に引き渡す。第1
の記録部5は、メッセージにスレッドIDを付加して、
この付加されたメッセージを記録用オブジェクト1に送
信して記録する。
Description
【0001】
【産業上の利用分野】本発明は、オブジェクト指向プロ
グラミングを支援するプログラミング支援装置及びプロ
グラミング支援方法の改良に関するもので、特に、スレ
ッドを単位としたデバッグを効率的に行うものに係る。
グラミングを支援するプログラミング支援装置及びプロ
グラミング支援方法の改良に関するもので、特に、スレ
ッドを単位としたデバッグを効率的に行うものに係る。
【0002】
【従来の技術】コンピュータのプログラムは複雑なデー
タ処理手順の集合であるから、その開発や変更の際に
は、開発者が万全を期してもプログラム中における誤り
の発生を完全に予防することが事実上困難である。した
がって、プログラムの信頼性を向上させるためには、一
応完成したプログラムを試験的に実行し、誤り(バグ)
を除去する作業(デバッグ)が必要である。
タ処理手順の集合であるから、その開発や変更の際に
は、開発者が万全を期してもプログラム中における誤り
の発生を完全に予防することが事実上困難である。した
がって、プログラムの信頼性を向上させるためには、一
応完成したプログラムを試験的に実行し、誤り(バグ)
を除去する作業(デバッグ)が必要である。
【0003】プログラムの作成からデバッグまでの一連
のプログラミング作業を支援する装置がプログラミング
支援装置である。プログラミング支援装置は、コーディ
ングやコンパイル作業のほか、デバッグ対象のプログラ
ムを開発者の操作にしたがって実行及び停止させなが
ら、プログラム中の実行箇所を表示したり、プログ
ラムの実行に係る実行情報(例えば、レジスタやメモリ
の内容など)を表示したり、開発者の指定した箇所
(ブレークポイント)でプログラムの実行をブレーク
(停止)させたり、開発者の命令や実行情報などのデ
バッグ履歴を記録する、などの機能によってプログラム
の効率的なデバッグを支援するものである。
のプログラミング作業を支援する装置がプログラミング
支援装置である。プログラミング支援装置は、コーディ
ングやコンパイル作業のほか、デバッグ対象のプログラ
ムを開発者の操作にしたがって実行及び停止させなが
ら、プログラム中の実行箇所を表示したり、プログ
ラムの実行に係る実行情報(例えば、レジスタやメモリ
の内容など)を表示したり、開発者の指定した箇所
(ブレークポイント)でプログラムの実行をブレーク
(停止)させたり、開発者の命令や実行情報などのデ
バッグ履歴を記録する、などの機能によってプログラム
の効率的なデバッグを支援するものである。
【0004】従来、プログラムは、データ処理手続きを
中心として構成され、処理対象となるデータは、処理手
続きとは別個の存在として、かつ、処理手続きに合わせ
て構成されていた。このような処理手続き中心に構成さ
れたプログラムを手続き型プログラムと呼ぶが、手続き
型プログラムでは、1ステートメント(宣言や命令など
の記述単位)ずつ記述されたソースコード(所定のプロ
グラム言語で表されたプログラム)が、プログラム実行
時のコンピュータ上におけるデータ処理手順を端的に表
している。
中心として構成され、処理対象となるデータは、処理手
続きとは別個の存在として、かつ、処理手続きに合わせ
て構成されていた。このような処理手続き中心に構成さ
れたプログラムを手続き型プログラムと呼ぶが、手続き
型プログラムでは、1ステートメント(宣言や命令など
の記述単位)ずつ記述されたソースコード(所定のプロ
グラム言語で表されたプログラム)が、プログラム実行
時のコンピュータ上におけるデータ処理手順を端的に表
している。
【0005】このような従来の手続き型プログラムは、
現実の事物に関する情報の構造や人間の自然な指向経路
とは必ずしも一致してない。すなわち、現実社会の事物
では、人間や組織がそれぞれ自己の果たすべき機能を持
っており、一連の物事は、複数の人間や組織が相互に作
業を委託し合って実行される。これに対して、手続き型
プログラムは、プログラミング言語という特殊な約束事
の世界における効率性が優先された特殊な構造を持つ傾
向が強い。このため、手続き型プログラムは情報構造の
客観的な明快さが不十分となる場合があった。
現実の事物に関する情報の構造や人間の自然な指向経路
とは必ずしも一致してない。すなわち、現実社会の事物
では、人間や組織がそれぞれ自己の果たすべき機能を持
っており、一連の物事は、複数の人間や組織が相互に作
業を委託し合って実行される。これに対して、手続き型
プログラムは、プログラミング言語という特殊な約束事
の世界における効率性が優先された特殊な構造を持つ傾
向が強い。このため、手続き型プログラムは情報構造の
客観的な明快さが不十分となる場合があった。
【0006】この結果、プログラムが大規模化・複雑化
するにしたがって、明快なプログラム構造の維持や誤り
のない修正が次第に困難となってきた。このような問題
点は、いわゆるソフトウェア・クライシスの一因をな
し、特に解決が要望されている。近年、このような状況
に対する新たなソフトウェア開発手法として、オブジェ
クト指向プログラミングが普及している。ここで、オブ
ジェクト指向プログラミングとは、ソフトウェアが処理
対象とする現実の事物を、ソフトウェア上の実体である
「オブジェクト」によって表し、現実の事物に関する情
報やその情報に対する処理手順を、それぞれ、前記オブ
ジェクトを構成するデータ(属性)やこのデータに対す
る処理手順(メソッド)として定義する手法である。
するにしたがって、明快なプログラム構造の維持や誤り
のない修正が次第に困難となってきた。このような問題
点は、いわゆるソフトウェア・クライシスの一因をな
し、特に解決が要望されている。近年、このような状況
に対する新たなソフトウェア開発手法として、オブジェ
クト指向プログラミングが普及している。ここで、オブ
ジェクト指向プログラミングとは、ソフトウェアが処理
対象とする現実の事物を、ソフトウェア上の実体である
「オブジェクト」によって表し、現実の事物に関する情
報やその情報に対する処理手順を、それぞれ、前記オブ
ジェクトを構成するデータ(属性)やこのデータに対す
る処理手順(メソッド)として定義する手法である。
【0007】このような手法によるプログラムをオブジ
ェクト指向プログラムと称するが、オブジェクト指向プ
ログラムでは、現実の事物に対応した複数のオブジェク
トが協調動作を行うので、現実の事物間の関係に即した
情報処理をコンピュータ上に容易に実現することができ
る。この結果、現実の事物の情報構成がソフトウェア構
成上に模擬され、構成の明快な保守性に優れたソフトウ
ェアを実現することができる。また、プログラムを構成
する各モジュールの内容も客観的に理解しやすいものと
なるので、一般に、各モジュールの部品化や再利用性の
向上が容易になる。
ェクト指向プログラムと称するが、オブジェクト指向プ
ログラムでは、現実の事物に対応した複数のオブジェク
トが協調動作を行うので、現実の事物間の関係に即した
情報処理をコンピュータ上に容易に実現することができ
る。この結果、現実の事物の情報構成がソフトウェア構
成上に模擬され、構成の明快な保守性に優れたソフトウ
ェアを実現することができる。また、プログラムを構成
する各モジュールの内容も客観的に理解しやすいものと
なるので、一般に、各モジュールの部品化や再利用性の
向上が容易になる。
【0008】このようなオブジェクト指向プログラミン
グは、Smalltalk やC++のようなオブジェクト指向プ
ログラミング言語によって行われる。オブジェクト指向
プログラミングでは、プログラムは、概念的にはオブジ
ェクト(個々のオブジェクトはインスタンスとも呼ばれ
る)の集合となるが、このオブジェクトは、プログラム
の実行時に初めてコンピュータ上に実体化するもので、
オブジェクトのデータもコンピュータのメモリ領域上に
割り当てられた時点で初めて具体的な値をもつことがで
きる。
グは、Smalltalk やC++のようなオブジェクト指向プ
ログラミング言語によって行われる。オブジェクト指向
プログラミングでは、プログラムは、概念的にはオブジ
ェクト(個々のオブジェクトはインスタンスとも呼ばれ
る)の集合となるが、このオブジェクトは、プログラム
の実行時に初めてコンピュータ上に実体化するもので、
オブジェクトのデータもコンピュータのメモリ領域上に
割り当てられた時点で初めて具体的な値をもつことがで
きる。
【0009】したがって、オブジェクト指向プログラミ
ングにおいても、プログラムの開発は、便宜上、ソース
コードの形式で行われる。但し、オブジェクト指向プロ
グラミングにおけるソースコードは、オブジェクトの特
質を表したクラスの集合である。ここで、「クラス」と
は、プログラムを構成するモジュールであって、オブジ
ェクトのデータ及びこのデータに対する操作を表したも
のである。この「クラス」は、実体であるオブジェクト
を生成するためのひな型としての役割を果たすので、単
一のクラスから同様なオブジェクトが複数生成される場
合があるが、生成された後のオブジェクトは原則的に相
互に別個独立であり、データの内容は個々のオブジェク
トによって異なる。
ングにおいても、プログラムの開発は、便宜上、ソース
コードの形式で行われる。但し、オブジェクト指向プロ
グラミングにおけるソースコードは、オブジェクトの特
質を表したクラスの集合である。ここで、「クラス」と
は、プログラムを構成するモジュールであって、オブジ
ェクトのデータ及びこのデータに対する操作を表したも
のである。この「クラス」は、実体であるオブジェクト
を生成するためのひな型としての役割を果たすので、単
一のクラスから同様なオブジェクトが複数生成される場
合があるが、生成された後のオブジェクトは原則的に相
互に別個独立であり、データの内容は個々のオブジェク
トによって異なる。
【0010】オブジェクト指向プログラミングでは、こ
のように生成された各オブジェクトが、情報を授受する
ためのメッセージをやり取りすることによって、プログ
ラムの機能が実現される。各オブジェクトは、他のオブ
ジェクトが担当する処理を必要とする場合、そのような
動作をしかるべき他のオブジェクトにメッセージの形式
で依頼し、メッセージを受領したオブジェクトはメッセ
ージの内容に対応したメソッドを実行する。メソッド
は、一般にオブジェクトを構成する内部関数の形式で実
現される。なお、オブジェクトの生成、消滅、実行やメ
ッセージのやり取りは、一般的には、オブジェクトマネ
ージャが管理する。
のように生成された各オブジェクトが、情報を授受する
ためのメッセージをやり取りすることによって、プログ
ラムの機能が実現される。各オブジェクトは、他のオブ
ジェクトが担当する処理を必要とする場合、そのような
動作をしかるべき他のオブジェクトにメッセージの形式
で依頼し、メッセージを受領したオブジェクトはメッセ
ージの内容に対応したメソッドを実行する。メソッド
は、一般にオブジェクトを構成する内部関数の形式で実
現される。なお、オブジェクトの生成、消滅、実行やメ
ッセージのやり取りは、一般的には、オブジェクトマネ
ージャが管理する。
【0011】オブジェクト指向に対応したプログラミン
グ支援装置(プログラミング支援方法)では、オブジェ
クト間で授受されるメッセージの内容履歴として記録さ
れる(イベント履歴)。そして、プログラムのデバッグ
の際には、記録されたメッセージの内容を検討すること
によって改善すべきオブジェクトや改善すべきメソッド
を特定する。プログラミング支援装置の機能は、現実に
は、プログラミング支援装置の機能を実現するためのプ
ログラム(以下「構成用プログラム」という)をコンピ
ュータ上で実行することによって実現される。プログラ
ミング支援装置を実現する典型的な態様は、プログラム
開発時において、開発対象プログラムの各オブジェクト
に、構成用プログラムの一部をなす特殊なオブジェクト
を埋め込んで駐在させるものである。このような特殊な
オブジェクトは、自らが駐在しているオブジェクトがや
り取りするメッセージを監視し、全てのメッセージ又は
あらかじめ定められた条件に合うメッセージの授受を発
見すると、別に用意されている記録用オブジェクトに対
して、メッセージの内容や送受信の相手方を通知する。
このような通知もまた、メッセージの形式で行われるの
が一般的である。このようにすれば、記録用オブジェク
ト内にはメッセージの内容が記録として蓄積されるの
で、後に開発者がこれを閲覧することができる。
グ支援装置(プログラミング支援方法)では、オブジェ
クト間で授受されるメッセージの内容履歴として記録さ
れる(イベント履歴)。そして、プログラムのデバッグ
の際には、記録されたメッセージの内容を検討すること
によって改善すべきオブジェクトや改善すべきメソッド
を特定する。プログラミング支援装置の機能は、現実に
は、プログラミング支援装置の機能を実現するためのプ
ログラム(以下「構成用プログラム」という)をコンピ
ュータ上で実行することによって実現される。プログラ
ミング支援装置を実現する典型的な態様は、プログラム
開発時において、開発対象プログラムの各オブジェクト
に、構成用プログラムの一部をなす特殊なオブジェクト
を埋め込んで駐在させるものである。このような特殊な
オブジェクトは、自らが駐在しているオブジェクトがや
り取りするメッセージを監視し、全てのメッセージ又は
あらかじめ定められた条件に合うメッセージの授受を発
見すると、別に用意されている記録用オブジェクトに対
して、メッセージの内容や送受信の相手方を通知する。
このような通知もまた、メッセージの形式で行われるの
が一般的である。このようにすれば、記録用オブジェク
ト内にはメッセージの内容が記録として蓄積されるの
で、後に開発者がこれを閲覧することができる。
【0012】
【発明が解決しようとする課題】ところで、マルチCP
Uのような並行処理環境を活用するため、オブジェクト
指向プログラミングにおいても、複数のオブジェクトを
並行に動作させることが行われる。そして、このような
並行動作を行うオブジェクトを、さらに、並行に実行可
能な動作の単位であるスレッドに分割してプログラミン
グを行うことも実現されている。各スレッドは、プロセ
ッサにおけるスケジューリングの単位となる。
Uのような並行処理環境を活用するため、オブジェクト
指向プログラミングにおいても、複数のオブジェクトを
並行に動作させることが行われる。そして、このような
並行動作を行うオブジェクトを、さらに、並行に実行可
能な動作の単位であるスレッドに分割してプログラミン
グを行うことも実現されている。各スレッドは、プロセ
ッサにおけるスケジューリングの単位となる。
【0013】しかしながら、従来のプログラミング支援
装置では、メッセージの記録の送信元及び送信先をオブ
ジェクトの単位で記録していたため、メッセージの記録
のみからでは、メッセージの授受に係る具体的なスレッ
ドを特定することができなかった。このため、特定のス
レッドに係る動作やメッセージを追跡するなど、スレッ
ドを単位としたデバッグを効率的に行うことが困難であ
った。
装置では、メッセージの記録の送信元及び送信先をオブ
ジェクトの単位で記録していたため、メッセージの記録
のみからでは、メッセージの授受に係る具体的なスレッ
ドを特定することができなかった。このため、特定のス
レッドに係る動作やメッセージを追跡するなど、スレッ
ドを単位としたデバッグを効率的に行うことが困難であ
った。
【0014】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、スレ
ッドを単位としたデバッグを効率的に行うプログラミン
グ支援装置及びプログラミング支援方法を提供すること
である。また、本発明の他の目的は、構成が単純なプロ
グラミング支援装置及びプログラミング支援方法を提供
することである。
を解決するために提案されたもので、その目的は、スレ
ッドを単位としたデバッグを効率的に行うプログラミン
グ支援装置及びプログラミング支援方法を提供すること
である。また、本発明の他の目的は、構成が単純なプロ
グラミング支援装置及びプログラミング支援方法を提供
することである。
【0015】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1の発明は、メッセージを送受信する一又は
二以上のオブジェクト、を含むオブジェクト指向プログ
ラムの開発を支援し、前記各オブジェクトは一又は二以
上のスレッドを含むことがあるプログラミング支援装置
において、前記各メッセージを、送受信に係るオブジェ
クト、又は、送受信に係るオブジェクトにスレッドが存
在する場合は送受信に係るスレッドとともに、記録する
第1の記録手段を有することを特徴とする。
め、請求項1の発明は、メッセージを送受信する一又は
二以上のオブジェクト、を含むオブジェクト指向プログ
ラムの開発を支援し、前記各オブジェクトは一又は二以
上のスレッドを含むことがあるプログラミング支援装置
において、前記各メッセージを、送受信に係るオブジェ
クト、又は、送受信に係るオブジェクトにスレッドが存
在する場合は送受信に係るスレッドとともに、記録する
第1の記録手段を有することを特徴とする。
【0016】また、請求項2の発明は、請求項1記載の
プログラミング支援装置において、前記第1の記録手段
は、オブジェクト又はオブジェクトを構成する要素とし
て構成されていることを特徴とする。
プログラミング支援装置において、前記第1の記録手段
は、オブジェクト又はオブジェクトを構成する要素とし
て構成されていることを特徴とする。
【0017】また、請求項3の発明は、請求項2記載の
プログラミング支援装置において、前記第1の記録手段
は、記録する内容を決定する記録部と、決定された内容
を順次記録するための記録用オブジェクトとを有し、前
記記録部は前記オブジェクト指向プログラムに含まれる
一又は二以上のオブジェクトについてそれぞれ設けら
れ、かつ、決定された前記内容を前記記録用オブジェク
トに順次送信するように構成されたことを特徴とする。
プログラミング支援装置において、前記第1の記録手段
は、記録する内容を決定する記録部と、決定された内容
を順次記録するための記録用オブジェクトとを有し、前
記記録部は前記オブジェクト指向プログラムに含まれる
一又は二以上のオブジェクトについてそれぞれ設けら
れ、かつ、決定された前記内容を前記記録用オブジェク
トに順次送信するように構成されたことを特徴とする。
【0018】また、請求項4の発明は、請求項1記載の
プログラミング支援装置において、前記第1の記録手段
は、メッセージの送信側では、送信側のオブジェクト乃
至スレッドを当該メッセージと共に受信側に送信し、当
該メッセージの受信側では、メッセージと共に送信され
た送信側のオブジェクト乃至スレッドと、受信側のオブ
ジェクト乃至スレッドをメッセージと共に記録するよう
に構成されたことを特徴とする。
プログラミング支援装置において、前記第1の記録手段
は、メッセージの送信側では、送信側のオブジェクト乃
至スレッドを当該メッセージと共に受信側に送信し、当
該メッセージの受信側では、メッセージと共に送信され
た送信側のオブジェクト乃至スレッドと、受信側のオブ
ジェクト乃至スレッドをメッセージと共に記録するよう
に構成されたことを特徴とする。
【0019】また、請求項5の発明は、請求項1記載の
プログラミング支援装置において、前記第1の記録手段
は、メッセージの送受信において、送信側のオブジェク
ト乃至スレッドを送信時に記録し、受信側のオブジェク
ト乃至スレッドを受信時に記録するように構成されたこ
とを特徴とする。
プログラミング支援装置において、前記第1の記録手段
は、メッセージの送受信において、送信側のオブジェク
ト乃至スレッドを送信時に記録し、受信側のオブジェク
ト乃至スレッドを受信時に記録するように構成されたこ
とを特徴とする。
【0020】また、請求項6の発明は、請求項1記載の
プログラミング支援装置において、メッセージを記録す
る条件を設定するための第1の設定手段を有することを
特徴とする。
プログラミング支援装置において、メッセージを記録す
る条件を設定するための第1の設定手段を有することを
特徴とする。
【0021】また、請求項7の発明は、請求項1記載の
プログラミング支援装置において、オブジェクトにおけ
るスレッドの生成及び消滅を記録する第2の記録手段を
有することを特徴とする。
プログラミング支援装置において、オブジェクトにおけ
るスレッドの生成及び消滅を記録する第2の記録手段を
有することを特徴とする。
【0022】また、請求項8の発明は、請求項7記載の
プログラミング支援装置において、スレッドの生成及び
消滅を記録する条件を設定するための第2の設定手段を
有することを特徴とする。
プログラミング支援装置において、スレッドの生成及び
消滅を記録する条件を設定するための第2の設定手段を
有することを特徴とする。
【0023】また、請求項9の発明は、メッセージを送
受信する一又は二以上のオブジェクト、を含むオブジェ
クト指向プログラムの開発を支援し、前記各オブジェク
トは一又は二以上のスレッドを含むことがあるプログラ
ミング支援方法において、前記各メッセージを、送受信
に係るオブジェクト、又は、送受信に係るいずれかのオ
ブジェクトにスレッドが存在する場合は送受信に係るス
レッドとともに、記録する第1の記録のステップを含む
ことを特徴とする。
受信する一又は二以上のオブジェクト、を含むオブジェ
クト指向プログラムの開発を支援し、前記各オブジェク
トは一又は二以上のスレッドを含むことがあるプログラ
ミング支援方法において、前記各メッセージを、送受信
に係るオブジェクト、又は、送受信に係るいずれかのオ
ブジェクトにスレッドが存在する場合は送受信に係るス
レッドとともに、記録する第1の記録のステップを含む
ことを特徴とする。
【0024】また、請求項10の発明は、請求項9記載
のプログラミング支援方法において、前記第1の記録の
ステップは、オブジェクト又はオブジェクトを構成する
要素によって実現されていることを特徴とする。
のプログラミング支援方法において、前記第1の記録の
ステップは、オブジェクト又はオブジェクトを構成する
要素によって実現されていることを特徴とする。
【0025】また、請求項11の発明は、請求項10記
載のプログラミング支援方法において、前記第1の記録
のステップでは、記録する内容を決定する記録部と、決
定された内容を順次記録するための記録用オブジェクト
とを用い、前記記録部は前記オブジェクト指向プログラ
ムに含まれる一又は二以上のオブジェクトについてそれ
ぞれ設けられ、かつ、決定された前記内容を前記記録用
オブジェクトに順次送信することを特徴とする。
載のプログラミング支援方法において、前記第1の記録
のステップでは、記録する内容を決定する記録部と、決
定された内容を順次記録するための記録用オブジェクト
とを用い、前記記録部は前記オブジェクト指向プログラ
ムに含まれる一又は二以上のオブジェクトについてそれ
ぞれ設けられ、かつ、決定された前記内容を前記記録用
オブジェクトに順次送信することを特徴とする。
【0026】また、請求項12の発明は、請求項9記載
のプログラミング支援方法において、前記第1の記録の
ステップでは、メッセージの送信側において、送信側の
オブジェクト乃至スレッドを当該メッセージと共に受信
側に送信し、当該メッセージの受信側において、メッセ
ージと共に送信された送信側のオブジェクト乃至スレッ
ドと、受信側のオブジェクト乃至スレッドをメッセージ
と共に記録することを特徴とする。
のプログラミング支援方法において、前記第1の記録の
ステップでは、メッセージの送信側において、送信側の
オブジェクト乃至スレッドを当該メッセージと共に受信
側に送信し、当該メッセージの受信側において、メッセ
ージと共に送信された送信側のオブジェクト乃至スレッ
ドと、受信側のオブジェクト乃至スレッドをメッセージ
と共に記録することを特徴とする。
【0027】また、請求項13の発明は、請求項9記載
のプログラミング支援方法において、前記第1の記録の
ステップは、メッセージの送受信において、送信側のオ
ブジェクト乃至スレッドを送信時に記録し、受信側のオ
ブジェクト乃至スレッドを受信時に記録するように構成
されたことを特徴とする。
のプログラミング支援方法において、前記第1の記録の
ステップは、メッセージの送受信において、送信側のオ
ブジェクト乃至スレッドを送信時に記録し、受信側のオ
ブジェクト乃至スレッドを受信時に記録するように構成
されたことを特徴とする。
【0028】また、請求項14の発明は、請求項9記載
のプログラミング支援方法において、メッセージを記録
する条件を設定するための設定のステップを含むことを
特徴とする。
のプログラミング支援方法において、メッセージを記録
する条件を設定するための設定のステップを含むことを
特徴とする。
【0029】また、請求項15の発明は、請求項9記載
のプログラミング支援方法において、オブジェクトにお
けるスレッドの生成及び消滅を記録する第2の記録のス
テップを含むことを特徴とする。
のプログラミング支援方法において、オブジェクトにお
けるスレッドの生成及び消滅を記録する第2の記録のス
テップを含むことを特徴とする。
【0030】また、請求項16の発明は、請求項15記
載のプログラミング支援方法において、スレッドの生成
及び消滅を記録する条件を設定するための第2の設定の
ステップを含むことを特徴とする。
載のプログラミング支援方法において、スレッドの生成
及び消滅を記録する条件を設定するための第2の設定の
ステップを含むことを特徴とする。
【0031】
【作用】上記のような構成を有する本発明は、次のよう
な作用を有する。すなわち、請求項1,9の発明では、
メッセージを送受信するオブジェクトにスレッドが含ま
れる場合は、オブジェクトのみならずスレッドを特定す
る情報がメッセージとともに記録されるので、スレッド
を単位としたデバッグを効率的に行うことができる。
な作用を有する。すなわち、請求項1,9の発明では、
メッセージを送受信するオブジェクトにスレッドが含ま
れる場合は、オブジェクトのみならずスレッドを特定す
る情報がメッセージとともに記録されるので、スレッド
を単位としたデバッグを効率的に行うことができる。
【0032】また、請求項2,10の発明では、第1の
記録手段(第1の記録のステップ)が、デバッグ対象と
するオブジェクト指向プログラム(以下「デバッグ対象
プログラム」という)と同一の形式であるオブジェクト
又はオブジェクトを構成する要素によって実現されてい
るので、デバッグ対象プログラムと第1の記録手段(第
1の記録のステップ)が共通した構造を有することとな
り、構成が単純化される。
記録手段(第1の記録のステップ)が、デバッグ対象と
するオブジェクト指向プログラム(以下「デバッグ対象
プログラム」という)と同一の形式であるオブジェクト
又はオブジェクトを構成する要素によって実現されてい
るので、デバッグ対象プログラムと第1の記録手段(第
1の記録のステップ)が共通した構造を有することとな
り、構成が単純化される。
【0033】また、第1の記録手段(第1の記録のステ
ップ)に用いるオブジェクトは、クラスの記述次第で、
デバッグ対象プログラムのオブジェクトとは別個に構成
することもできるし、デバッグ対象プログラムのオブジ
ェクトのメンバオブジェクトとすることもできる。この
ように、請求項2,10の発明では、具体的事情に応じ
て第1の記録手段(第1の記録のステップ)の実現態様
を変更することが容易になる。
ップ)に用いるオブジェクトは、クラスの記述次第で、
デバッグ対象プログラムのオブジェクトとは別個に構成
することもできるし、デバッグ対象プログラムのオブジ
ェクトのメンバオブジェクトとすることもできる。この
ように、請求項2,10の発明では、具体的事情に応じ
て第1の記録手段(第1の記録のステップ)の実現態様
を変更することが容易になる。
【0034】また、請求項3,11の発明では、記録す
る内容の決定は、デバッグ対象プログラムの各オブジェ
クトに設けられた記録部が行うが、決定された内容は記
録用オブジェクトに送信され蓄積される。このため、メ
ッセージに関する情報が記録用オブジェクトに集中し、
閲覧などの取扱いが容易になる。また、第1の記録手段
(第1の記録のステップ)を実現するオブジェクトを、
プログラムのオブジェクトのメンバオブジェクトとする
場合、データエリアの確保のためにプログラムのオブジ
ェクトの所要メモリ量が増大することがないのでメモリ
を有効活用できる。
る内容の決定は、デバッグ対象プログラムの各オブジェ
クトに設けられた記録部が行うが、決定された内容は記
録用オブジェクトに送信され蓄積される。このため、メ
ッセージに関する情報が記録用オブジェクトに集中し、
閲覧などの取扱いが容易になる。また、第1の記録手段
(第1の記録のステップ)を実現するオブジェクトを、
プログラムのオブジェクトのメンバオブジェクトとする
場合、データエリアの確保のためにプログラムのオブジ
ェクトの所要メモリ量が増大することがないのでメモリ
を有効活用できる。
【0035】また、請求項4,12の発明では、送信側
のオブジェクト乃至スレッドはメッセージと共に受信側
に送信され、受信側で決定されたスレッドとともに記録
される。このため、メッセージの記録が受信側の1回の
みで済み、プログラミング支援装置やメッセージの構成
が単純化される。なお、本明細書において「オブジェク
ト」や「スレッド」を「送信」や「記録」するとは、オ
ブジェクトやスレッド自体ではなく、オブジェクトやス
レッドを特定するためのIDのような情報を「送信」や
「記録」することを意味する。
のオブジェクト乃至スレッドはメッセージと共に受信側
に送信され、受信側で決定されたスレッドとともに記録
される。このため、メッセージの記録が受信側の1回の
みで済み、プログラミング支援装置やメッセージの構成
が単純化される。なお、本明細書において「オブジェク
ト」や「スレッド」を「送信」や「記録」するとは、オ
ブジェクトやスレッド自体ではなく、オブジェクトやス
レッドを特定するためのIDのような情報を「送信」や
「記録」することを意味する。
【0036】また、請求項5,13の発明では、送信側
のオブジェクト乃至スレッドは送信時に記録されるの
で、受信側で不要な場合は送信側のスレッドをメッセー
ジに乗せて送信する必要がなく、メッセージの構成が単
純化できる。
のオブジェクト乃至スレッドは送信時に記録されるの
で、受信側で不要な場合は送信側のスレッドをメッセー
ジに乗せて送信する必要がなく、メッセージの構成が単
純化できる。
【0037】また、請求項6,14の発明では、メッセ
ージを記録する条件を自由に設定できる。例えば、記録
の対象を、所望のオブジェクトやスレッドに係るメッセ
ージや、所定の種類のメッセージなどに限定することが
できる。このため、所望の部分に着目したデバッグが容
易になる。
ージを記録する条件を自由に設定できる。例えば、記録
の対象を、所望のオブジェクトやスレッドに係るメッセ
ージや、所定の種類のメッセージなどに限定することが
できる。このため、所望の部分に着目したデバッグが容
易になる。
【0038】また、請求項7,15記載の発明では、オ
ブジェクトにおけるスレッドの生成及び消滅も記録され
る。このため、メッセージのみならずスレッドの生成及
び消滅の時点を前提にデバッグやメッセージの記録の理
解を行えるので、デバッグが効率化される。
ブジェクトにおけるスレッドの生成及び消滅も記録され
る。このため、メッセージのみならずスレッドの生成及
び消滅の時点を前提にデバッグやメッセージの記録の理
解を行えるので、デバッグが効率化される。
【0039】また、請求項8,16の発明では、スレッ
ドの生成及び消滅を記録する条件を自由に設定できる。
例えば、記録するスレッドの生成・消滅を、特定のオブ
ジェクトやスレッドにおけるものに限定したり、生成又
は消滅のうち一方のみをすることができる。このため、
所望の部分に着目したデバッグが容易になる。
ドの生成及び消滅を記録する条件を自由に設定できる。
例えば、記録するスレッドの生成・消滅を、特定のオブ
ジェクトやスレッドにおけるものに限定したり、生成又
は消滅のうち一方のみをすることができる。このため、
所望の部分に着目したデバッグが容易になる。
【0040】
【実施例】次に、本発明の実施例について図面にしたが
って具体的に説明する。なお、後述する実施例はコンピ
ュータ及びその周辺機器上に実現され、実施例の各機能
は所定のソフトウェアがこのコンピュータを制御するこ
とで実現される。以下、実施例の機能を実現するための
ソフトウェアを「構成用ソフトウェア」という。これ
は、実施例の装置ないし方法が処理の対象(目的)とす
るものもまたコンピュータのソフトウェアであるから、
このような処理の対象たるソフトウェアと区別するため
である。
って具体的に説明する。なお、後述する実施例はコンピ
ュータ及びその周辺機器上に実現され、実施例の各機能
は所定のソフトウェアがこのコンピュータを制御するこ
とで実現される。以下、実施例の機能を実現するための
ソフトウェアを「構成用ソフトウェア」という。これ
は、実施例の装置ないし方法が処理の対象(目的)とす
るものもまたコンピュータのソフトウェアであるから、
このような処理の対象たるソフトウェアと区別するため
である。
【0041】本明細書では、発明及び実施例について、
発明及び実施例の各機能を有する仮想的回路ブロック
(手段)を想定して説明している。すなわち、本明細書
における各「〜手段」ないし「〜部」は実施例の各機能
に対応する概念で、必ずしも特定のハードウェアや構成
用ソフトウェアのルーチンに1対1には対応しない。し
たがって、同一のハードウェア要素であっても、ある命
令を実行するときにある手段となり別の命令を実行する
ときは別の手段となりうる。また、一つの手段がわずか
1命令によって実現される場合もあれば多数の命令によ
って実現される場合もある。
発明及び実施例の各機能を有する仮想的回路ブロック
(手段)を想定して説明している。すなわち、本明細書
における各「〜手段」ないし「〜部」は実施例の各機能
に対応する概念で、必ずしも特定のハードウェアや構成
用ソフトウェアのルーチンに1対1には対応しない。し
たがって、同一のハードウェア要素であっても、ある命
令を実行するときにある手段となり別の命令を実行する
ときは別の手段となりうる。また、一つの手段がわずか
1命令によって実現される場合もあれば多数の命令によ
って実現される場合もある。
【0042】なお、コンピュータの使用は一例であり、
各機能の全部又は一部は、可能ならばカスタムチップ
(専用の集積回路)のような電子回路上に実現してもよ
い。
各機能の全部又は一部は、可能ならばカスタムチップ
(専用の集積回路)のような電子回路上に実現してもよ
い。
【0043】実施例に用いられるコンピュータの規模は
自由であり、パーソナルコンピュータ・ワークステーシ
ョン・メインフレームなどいかなる規模のものを用いて
もよい。また、実施例に用いられるコンピュータのハー
ドウェアは、少なくとも、CPU(中央演算処理装置)
と、RAM(随時書込読出型記憶素子)からなる主記憶
装置とを含み、典型的には、キーボードやマウスなどの
入力装置と、ハードディスク装置などの外部記憶装置
と、CRT表示装置やプリンタ印字装置などの出力装置
と、必要な入出力制御回路を含む。但し、ハードウェア
構成は、本発明が実施できる範囲で自由に変更すること
ができる。
自由であり、パーソナルコンピュータ・ワークステーシ
ョン・メインフレームなどいかなる規模のものを用いて
もよい。また、実施例に用いられるコンピュータのハー
ドウェアは、少なくとも、CPU(中央演算処理装置)
と、RAM(随時書込読出型記憶素子)からなる主記憶
装置とを含み、典型的には、キーボードやマウスなどの
入力装置と、ハードディスク装置などの外部記憶装置
と、CRT表示装置やプリンタ印字装置などの出力装置
と、必要な入出力制御回路を含む。但し、ハードウェア
構成は、本発明が実施できる範囲で自由に変更すること
ができる。
【0044】例えば、実施例は、コンピュータネットワ
ークに接続されたコンピュータ上に実現したり、相互に
接続された複数のコンピュータ上における分散処理によ
って実現してもよい。また、CPUの数・種類・形式や
利用態様は自由であり、例えば、ビット数、クロック周
波数、命令セットの内容、アドレッシング形式、マルチ
CPUか否か、数値計算用やグラフィック処理用のコプ
ロセッサを用いるか、タイムシェアリング(時分割)に
よる同時並行処理を行うか、などは自由である。
ークに接続されたコンピュータ上に実現したり、相互に
接続された複数のコンピュータ上における分散処理によ
って実現してもよい。また、CPUの数・種類・形式や
利用態様は自由であり、例えば、ビット数、クロック周
波数、命令セットの内容、アドレッシング形式、マルチ
CPUか否か、数値計算用やグラフィック処理用のコプ
ロセッサを用いるか、タイムシェアリング(時分割)に
よる同時並行処理を行うか、などは自由である。
【0045】また、入力装置としても、タッチパネル・
ライトペン・トラックボール・デジタイザなどのポイン
ティングデバイスや、イメージスキャナやビデオカメラ
などの画像入力装置、音声識別装置、各種センサなどを
自由に用いることができる。また、外部記憶装置として
も、フロッピーディスク装置・RAMカード装置・磁気
テープ装置・光学ディスク装置・光磁気ディスク装置・
バブルメモリ装置・フラッシュメモリなどを自由に用い
ることができる。また、出力装置としても、液晶表示装
置・プラズマディスプレイ装置・ビデオプロジェクター
・オーディオ回路などを自由に用いることができる。
ライトペン・トラックボール・デジタイザなどのポイン
ティングデバイスや、イメージスキャナやビデオカメラ
などの画像入力装置、音声識別装置、各種センサなどを
自由に用いることができる。また、外部記憶装置として
も、フロッピーディスク装置・RAMカード装置・磁気
テープ装置・光学ディスク装置・光磁気ディスク装置・
バブルメモリ装置・フラッシュメモリなどを自由に用い
ることができる。また、出力装置としても、液晶表示装
置・プラズマディスプレイ装置・ビデオプロジェクター
・オーディオ回路などを自由に用いることができる。
【0046】また、構成用ソフトウェアは、典型的に
は、OS(オペレーティングシステム)上で実行される
アプリケーションソフトウェアが考えられる。また、構
成用ソフトウェアの記述形式は、典型的には、高級言語
やアセンブラからコンパイル(翻訳)された機械語が考
えられる。但し、構成用ソフトウェアの態様も本発明が
実施できる限り自由に変更できる。例えば、OSは必須
ではなく、ソフトウェアの記述形式も、BASICのよ
うなインタプリタ(逐次解釈実行型)言語や中間コード
などを自由に用いることができる。
は、OS(オペレーティングシステム)上で実行される
アプリケーションソフトウェアが考えられる。また、構
成用ソフトウェアの記述形式は、典型的には、高級言語
やアセンブラからコンパイル(翻訳)された機械語が考
えられる。但し、構成用ソフトウェアの態様も本発明が
実施できる限り自由に変更できる。例えば、OSは必須
ではなく、ソフトウェアの記述形式も、BASICのよ
うなインタプリタ(逐次解釈実行型)言語や中間コード
などを自由に用いることができる。
【0047】また、ソフトウェアの格納態様も自由であ
り、ROM(読出し専用メモリ)に格納しておいてもよ
く、また、ハードディスク装置のような外部記憶装置に
格納しておき、コンピュータの起動時や処理の開始時に
主メモリ上にロード(読み込み)してもよい。また、ソ
フトウェアを複数の部分に分割して外部記憶装置に格納
しておき、処理内容に応じて必要なモジュールのみを随
時主メモリ上にロードしてもよい。さらに、ソフトウェ
アの部分ごとに異なった態様で格納してもよい。
り、ROM(読出し専用メモリ)に格納しておいてもよ
く、また、ハードディスク装置のような外部記憶装置に
格納しておき、コンピュータの起動時や処理の開始時に
主メモリ上にロード(読み込み)してもよい。また、ソ
フトウェアを複数の部分に分割して外部記憶装置に格納
しておき、処理内容に応じて必要なモジュールのみを随
時主メモリ上にロードしてもよい。さらに、ソフトウェ
アの部分ごとに異なった態様で格納してもよい。
【0048】また、本実施例における各手順の各ステッ
プは、その性質に反しない限り、実行順序を変更し、複
数同時に実行し、また、実行ごとに異なった順序で実行
してもよい。このような順序の変更は、例えば、ユーザ
が実行可能な処理を選択するなどメニュー形式のインタ
ーフェース手法によって実現することができる。
プは、その性質に反しない限り、実行順序を変更し、複
数同時に実行し、また、実行ごとに異なった順序で実行
してもよい。このような順序の変更は、例えば、ユーザ
が実行可能な処理を選択するなどメニュー形式のインタ
ーフェース手法によって実現することができる。
【0049】また、本明細書において「入力」というと
きは、本来の情報の入力のみならず、情報の入力と密接
に関連する他の処理を含む。このような処理は、例え
ば、入力内容のエコーバックや修正・編集である。ま
た、「入力」は、必ずしもコンピュータ外部からの入力
には限定されず、所定の記憶装置から情報を読み出すこ
とによって行うこともできる。
きは、本来の情報の入力のみならず、情報の入力と密接
に関連する他の処理を含む。このような処理は、例え
ば、入力内容のエコーバックや修正・編集である。ま
た、「入力」は、必ずしもコンピュータ外部からの入力
には限定されず、所定の記憶装置から情報を読み出すこ
とによって行うこともできる。
【0050】また、本明細書において「出力」というと
きは、本来の情報の出力のみならず、情報の出力と密接
に関連する他の処理を含む。このような処理は、例え
ば、出力すべき範囲の入力や、画面スクロールの指示で
ある。また、「出力」は、必ずしもコンピュータ外部へ
の出力には限定されず、所定の記憶装置に情報を書き込
むことによって行うこともできる。なお、対話的入出力
手順によって入力と出力を一体的操作によって実現して
もよく、このような一体的操作によって、選択・指定・
特定などの処理を行ってもよい。
きは、本来の情報の出力のみならず、情報の出力と密接
に関連する他の処理を含む。このような処理は、例え
ば、出力すべき範囲の入力や、画面スクロールの指示で
ある。また、「出力」は、必ずしもコンピュータ外部へ
の出力には限定されず、所定の記憶装置に情報を書き込
むことによって行うこともできる。なお、対話的入出力
手順によって入力と出力を一体的操作によって実現して
もよく、このような一体的操作によって、選択・指定・
特定などの処理を行ってもよい。
【0051】また、本明細書におけるデータ(情報)や
データの格納手段は前記コンピュータ上においていかな
る態様で存在してもよい。例えば、データは、ハードウ
ェア的には、主記憶装置・外部記憶装置・CPUのレジ
スタやキャッシュメモリなどいかなる部分に存在しても
よい。また、データの格納に仮想記憶・仮想アドレッシ
ングやバンク切り替えなどを用いるか否かも自由であ
る。また、データの保持態様も自由で、例えば、ファイ
ル形式は必須ではなく、メモリやディスクなどの記憶装
置を物理的アドレスで直接アクセスすることで格納して
もよい。また、データの表現形式も自由で、例えば、文
字列を表すコードの単位は、文字単位でも単語単位でも
よい。また、データは必要な間だけ保持されれば十分で
その後消滅してもよい。また、辞書データのように当面
変更されない情報はROMに格納してもよい。
データの格納手段は前記コンピュータ上においていかな
る態様で存在してもよい。例えば、データは、ハードウ
ェア的には、主記憶装置・外部記憶装置・CPUのレジ
スタやキャッシュメモリなどいかなる部分に存在しても
よい。また、データの格納に仮想記憶・仮想アドレッシ
ングやバンク切り替えなどを用いるか否かも自由であ
る。また、データの保持態様も自由で、例えば、ファイ
ル形式は必須ではなく、メモリやディスクなどの記憶装
置を物理的アドレスで直接アクセスすることで格納して
もよい。また、データの表現形式も自由で、例えば、文
字列を表すコードの単位は、文字単位でも単語単位でも
よい。また、データは必要な間だけ保持されれば十分で
その後消滅してもよい。また、辞書データのように当面
変更されない情報はROMに格納してもよい。
【0052】また、本明細書において、特定の情報への
言及は確認的で、言及されない情報の存在を否定するも
のではない。すなわち、本発明の動作では、動作に必要
な一般的な情報やその格納領域、例えば、各種ポイン
タ、スタック、カウンタ、フラグ、パラメータ、ワーク
エリア、バッファなどが適宜用いられる。
言及は確認的で、言及されない情報の存在を否定するも
のではない。すなわち、本発明の動作では、動作に必要
な一般的な情報やその格納領域、例えば、各種ポイン
タ、スタック、カウンタ、フラグ、パラメータ、ワーク
エリア、バッファなどが適宜用いられる。
【0053】実施例の各部分が処理に要する情報は、特
に記載がない場合、当該情報を保持している他の部分か
ら獲得され、例えば、当該情報を格納している変数やメ
モリへのアクセスによって獲得される。また、情報の消
去・抹消は、当該情報の内容自体を必ずしも記憶領域か
ら現実に削除せず、消去フラグの設定など情報の修飾に
よって行うことができる。
に記載がない場合、当該情報を保持している他の部分か
ら獲得され、例えば、当該情報を格納している変数やメ
モリへのアクセスによって獲得される。また、情報の消
去・抹消は、当該情報の内容自体を必ずしも記憶領域か
ら現実に削除せず、消去フラグの設定など情報の修飾に
よって行うことができる。
【0054】また、実施例は、なんらかのソフトウェア
の一部分として実現してもよく、また、単一のコンピュ
ータ上で他のソフトウェアとともに動作してもよい。
の一部分として実現してもよく、また、単一のコンピュ
ータ上で他のソフトウェアとともに動作してもよい。
【0055】(1)実施例の構成 本実施例は、プログラミング支援装置及びこのプログラ
ミング支援装置上で実行されるプログラミング支援方法
を示すもので、請求項1〜4,6〜12,14〜16に
相当する。本実施例の目的は、スレッドを単位としたデ
バッグを効率的に行うプログラミング支援装置及びプロ
グラミング支援方法を提供することである。また、本実
施例の他の目的は、構成が単純なプログラミング支援装
置及びプログラミング支援方法を提供することである。
ミング支援装置上で実行されるプログラミング支援方法
を示すもので、請求項1〜4,6〜12,14〜16に
相当する。本実施例の目的は、スレッドを単位としたデ
バッグを効率的に行うプログラミング支援装置及びプロ
グラミング支援方法を提供することである。また、本実
施例の他の目的は、構成が単純なプログラミング支援装
置及びプログラミング支援方法を提供することである。
【0056】本実施例では、4つのオブジェクトを含む
オブジェクト指向プログラム(開発対象プログラム)の
開発を支援するものとする。図1は、開発対象プログラ
ム及び本実施例のプログラミング支援装置が動作してい
る際にメモリ空間上に存在するオブジェクトを示す。
オブジェクト指向プログラム(開発対象プログラム)の
開発を支援するものとする。図1は、開発対象プログラ
ム及び本実施例のプログラミング支援装置が動作してい
る際にメモリ空間上に存在するオブジェクトを示す。
【0057】すなわち、本実施例における開発対象プロ
グラムは双六ゲームのプログラムで、オブジェクト“g
ame”(以下単に「game」と表す)はゲームのル
ールやアルゴリズムを含むメインルーチンの役割を果た
す。オブジェクト“dice”(以下単に「dice」
と表す)は、ゲーム進行に用いるさいころの機能を果た
すもので、メッセージを受けるとさいころの目を表す返
り値をメッセージとして返す。オブジェクト“user
1”及び“user2”(以下単に「user1」,
「user2」と表す)は、ユーザごとに対応するユー
ザインタフェースである。なお、図1の各オブジェクト
のうち記録用オブジェクト及び指定手段オブジェクトは
前記構成用ソフトウェアに含まれる(請求項2,1
0)。
グラムは双六ゲームのプログラムで、オブジェクト“g
ame”(以下単に「game」と表す)はゲームのル
ールやアルゴリズムを含むメインルーチンの役割を果た
す。オブジェクト“dice”(以下単に「dice」
と表す)は、ゲーム進行に用いるさいころの機能を果た
すもので、メッセージを受けるとさいころの目を表す返
り値をメッセージとして返す。オブジェクト“user
1”及び“user2”(以下単に「user1」,
「user2」と表す)は、ユーザごとに対応するユー
ザインタフェースである。なお、図1の各オブジェクト
のうち記録用オブジェクト及び指定手段オブジェクトは
前記構成用ソフトウェアに含まれる(請求項2,1
0)。
【0058】図2は、図1のオブジェクトのうちgam
eの構成を示す機能ブロック図である。すなわち、ga
meは、この図に示すように、他のオブジェクトとの間
でメッセージを送受信するための送受信手段3と、動作
の際に一又は二以上のスレッドを生成して管理するスレ
ッド管理部4とを有する。gameは、別個独立の複数
のユーザに対してそれぞれ別の双六ゲームを並行して提
供できる。なお、一つのゲームは一つのユーザに対応
し、一つのユーザは同一のゲームに参加する複数の参加
者を表すものとする。そして、このスレッド管理部4
は、game生成時に、ゲーム開始を要請するメッセー
ジを受け付けるためのスレッド(thread0)を生
成する他、ゲーム進行中には、新たなユーザがゲームを
開始するたびに、ひとつのゲームを制御するためのスレ
ッド(thread1〜n)を適宜生成する。
eの構成を示す機能ブロック図である。すなわち、ga
meは、この図に示すように、他のオブジェクトとの間
でメッセージを送受信するための送受信手段3と、動作
の際に一又は二以上のスレッドを生成して管理するスレ
ッド管理部4とを有する。gameは、別個独立の複数
のユーザに対してそれぞれ別の双六ゲームを並行して提
供できる。なお、一つのゲームは一つのユーザに対応
し、一つのユーザは同一のゲームに参加する複数の参加
者を表すものとする。そして、このスレッド管理部4
は、game生成時に、ゲーム開始を要請するメッセー
ジを受け付けるためのスレッド(thread0)を生
成する他、ゲーム進行中には、新たなユーザがゲームを
開始するたびに、ひとつのゲームを制御するためのスレ
ッド(thread1〜n)を適宜生成する。
【0059】また、gameには、記録する内容を決定
する第1の記録部5が設けられ、この第1の記録部5
は、決定した内容を単一の記録用オブジェクト1(図
1)に順次送信する(請求項3,11)。この送信は、
gameの送受信手段3を用いて行ってもよいし、第1
の記録部5が独自に送信の手段を有していてもよい。な
お、第1の記録部5及び記録用オブジェクト1は、各メ
ッセージを、送受信に係るオブジェクト(スレッドが存
在する場合はオブジェクト及びスレッド)とともに記録
する記録手段を構成する(請求項1,2,9,10)。
第1の記録部は、開発対象プログラムの各オブジェクト
に同様に含まれる。
する第1の記録部5が設けられ、この第1の記録部5
は、決定した内容を単一の記録用オブジェクト1(図
1)に順次送信する(請求項3,11)。この送信は、
gameの送受信手段3を用いて行ってもよいし、第1
の記録部5が独自に送信の手段を有していてもよい。な
お、第1の記録部5及び記録用オブジェクト1は、各メ
ッセージを、送受信に係るオブジェクト(スレッドが存
在する場合はオブジェクト及びスレッド)とともに記録
する記録手段を構成する(請求項1,2,9,10)。
第1の記録部は、開発対象プログラムの各オブジェクト
に同様に含まれる。
【0060】また、gameは、このオブジェクトにお
けるスレッドの生成及び消滅を記録するための第2の記
録部6を有しており、第2の記録部はスレッドの生成及
び消滅に関する情報を記録用オブジェクト1に送信する
(請求項7,15)。第2の記録部6及び記録用オブジ
ェクト1は前記第2の記録手段を構成する。
けるスレッドの生成及び消滅を記録するための第2の記
録部6を有しており、第2の記録部はスレッドの生成及
び消滅に関する情報を記録用オブジェクト1に送信する
(請求項7,15)。第2の記録部6及び記録用オブジ
ェクト1は前記第2の記録手段を構成する。
【0061】また、本実施例のプログラム支援装置は、
メッセージ及びスレッドの生成及び消滅を記録する条件
を設定するための設定手段オブジェクト2(前記第1の
設定手段及び前記第2の設定手段に相当する)を有する
(請求項6,8,14,16)。なお、本実施例では、
図示はしないが、オブジェクトマネージャがオブジェク
トの生成・管理・消滅及びメッセージ授受の仲介を行
う。
メッセージ及びスレッドの生成及び消滅を記録する条件
を設定するための設定手段オブジェクト2(前記第1の
設定手段及び前記第2の設定手段に相当する)を有する
(請求項6,8,14,16)。なお、本実施例では、
図示はしないが、オブジェクトマネージャがオブジェク
トの生成・管理・消滅及びメッセージ授受の仲介を行
う。
【0062】(2)実施例の作用及び効果 上記のような構成を有する本実施例は、次のような作用
及び効果を有する。まず、プログラムの開発者は、プロ
グラム起動に前後して、設定手段オブジェクト2を用
い、記録する条件(内容)として、 「gameが送受信するメッセージ」 及び 「gameにおけるスレッドの生成及び消滅」 を設定する。
及び効果を有する。まず、プログラムの開発者は、プロ
グラム起動に前後して、設定手段オブジェクト2を用
い、記録する条件(内容)として、 「gameが送受信するメッセージ」 及び 「gameにおけるスレッドの生成及び消滅」 を設定する。
【0063】ここで、設定の内容は自由に定めることが
できる。例えば、「game」が送受信するメッセージ
は、開発対象プログラムに含まれるオブジェクトgam
e,dice,user1,user2間でのすべての
メッセージを意味するが、これらいずれかのオブジェク
トが内部に複数のメンバオブジェクトを有する場合、そ
れらメンバオブジェクト間でのメッセージは記録されな
いことになる。また、例えば、「diceが送受信する
メッセージ」のように設定すれば、diceとgame
間でのメッセージが記録されることになる。さらに、g
ame中のthread0のみの動作に着目してオブジ
ェクトの動作を確認したいときは、thread0のみ
に対象を限定してもよい。
できる。例えば、「game」が送受信するメッセージ
は、開発対象プログラムに含まれるオブジェクトgam
e,dice,user1,user2間でのすべての
メッセージを意味するが、これらいずれかのオブジェク
トが内部に複数のメンバオブジェクトを有する場合、そ
れらメンバオブジェクト間でのメッセージは記録されな
いことになる。また、例えば、「diceが送受信する
メッセージ」のように設定すれば、diceとgame
間でのメッセージが記録されることになる。さらに、g
ame中のthread0のみの動作に着目してオブジ
ェクトの動作を確認したいときは、thread0のみ
に対象を限定してもよい。
【0064】このような条件の設定をどのように実現す
るかは自由であるが、例えば、設定内容を該当するオブ
ジェクトの各記録部に送信し、各記録部がメッセージ又
はスレッドの生成・消滅を検出したときに、設定内容に
合致するかを判断して該当するものを記録すればよい。
るかは自由であるが、例えば、設定内容を該当するオブ
ジェクトの各記録部に送信し、各記録部がメッセージ又
はスレッドの生成・消滅を検出したときに、設定内容に
合致するかを判断して該当するものを記録すればよい。
【0065】このような状態でプログラムのオブジェク
ト間でメッセージがやり取りされる場合、概略的には、
メッセージの送信側では、送信側のオブジェクト乃至ス
レッド(を特定するためのIDのような情報)を当該メ
ッセージに付加して送信し、当該メッセージを受信した
側では、メッセージと共に送信されてきた送信側のオブ
ジェクト乃至スレッドと、受信側のオブジェクト乃至ス
レッドを、メッセージと共に記録する(請求項4,1
2)。
ト間でメッセージがやり取りされる場合、概略的には、
メッセージの送信側では、送信側のオブジェクト乃至ス
レッド(を特定するためのIDのような情報)を当該メ
ッセージに付加して送信し、当該メッセージを受信した
側では、メッセージと共に送信されてきた送信側のオブ
ジェクト乃至スレッドと、受信側のオブジェクト乃至ス
レッドを、メッセージと共に記録する(請求項4,1
2)。
【0066】また、スレッドを含むオブジェクト、例え
ばgameでは、スレッド管理部4が、各スレッドが送
信しようとするメッセージを送受信手段3に転送し、ま
た、着信したメッセージはしかるべきスレッドに転送す
る。そして、第1の記録部5は、メッセージの送信時に
はメッセージを発したスレッドのIDをメッセージに付
加し、受信時には、メッセージを受領するスレッドのI
Dを記録の対象とする。このような送信・受信に係るス
レッドはスレッド管理部4が決定したうえ、第1の記録
部5に渡される。なお、メッセージにスレッドのIDを
付加する場合、このようなスレッドのIDは開発対象プ
ログラムの動作には本来不要なものであるが、IDは、
メッセージの内容とは区別される特別の領域に記録して
もよいし、受信側スレッドに渡される前に除去するよう
にしてもよい。
ばgameでは、スレッド管理部4が、各スレッドが送
信しようとするメッセージを送受信手段3に転送し、ま
た、着信したメッセージはしかるべきスレッドに転送す
る。そして、第1の記録部5は、メッセージの送信時に
はメッセージを発したスレッドのIDをメッセージに付
加し、受信時には、メッセージを受領するスレッドのI
Dを記録の対象とする。このような送信・受信に係るス
レッドはスレッド管理部4が決定したうえ、第1の記録
部5に渡される。なお、メッセージにスレッドのIDを
付加する場合、このようなスレッドのIDは開発対象プ
ログラムの動作には本来不要なものであるが、IDは、
メッセージの内容とは区別される特別の領域に記録して
もよいし、受信側スレッドに渡される前に除去するよう
にしてもよい。
【0067】つぎに、本実施例におけるメッセージの記
録の実例を示す(図1及び図2)。例えば、user1
に対してゲームを開始するための所定の操作が行われる
と、user1が、gameにゲームを開始させるため
のメッセージを送信する。なお、図3は、user1の
メソッドを表すクラスの記述の例である。
録の実例を示す(図1及び図2)。例えば、user1
に対してゲームを開始するための所定の操作が行われる
と、user1が、gameにゲームを開始させるため
のメッセージを送信する。なお、図3は、user1の
メソッドを表すクラスの記述の例である。
【0068】メッセージのフォーマットは、送信元オブ
ジェクト(スレッド)、送信先オブジェクト(スレッ
ド)、送信先オブジェクトに対する要請の種類、引数、
返り値が順列したものであり、不要なエリアにはヌル
(空)“−”が充填される。ゲーム開始時のメッセージ
は、“user1”から、“game”に対して、ゲー
ムを“start”させ、引数“player:”であ
る参加者数は“3”であり、返り値は不要“−”である
から、 user1 game start player:3 − という内容になる。送信元にスレッドが存在するとき
は、送信元スレッドが送信時にメッセージに付加される
が、user1のようにスレッドを有しないオブジェク
トから送信されるメッセージでは送信元のスレッドの欄
は空欄となる。なお、送信先オブジェクトがスレッドを
有する場合でも、送信先のいずれのスレッドがメッセー
ジを受けとるかは、送信元には無関係である(情報隠蔽
の原理)。したがって、送信時には、送信先スレッドの
欄は空欄となる。
ジェクト(スレッド)、送信先オブジェクト(スレッ
ド)、送信先オブジェクトに対する要請の種類、引数、
返り値が順列したものであり、不要なエリアにはヌル
(空)“−”が充填される。ゲーム開始時のメッセージ
は、“user1”から、“game”に対して、ゲー
ムを“start”させ、引数“player:”であ
る参加者数は“3”であり、返り値は不要“−”である
から、 user1 game start player:3 − という内容になる。送信元にスレッドが存在するとき
は、送信元スレッドが送信時にメッセージに付加される
が、user1のようにスレッドを有しないオブジェク
トから送信されるメッセージでは送信元のスレッドの欄
は空欄となる。なお、送信先オブジェクトがスレッドを
有する場合でも、送信先のいずれのスレッドがメッセー
ジを受けとるかは、送信元には無関係である(情報隠蔽
の原理)。したがって、送信時には、送信先スレッドの
欄は空欄となる。
【0069】ここで、図4は、メッセージ着信時のオブ
ジェクトにおける処理の手順を示すフローチャートであ
る。すなわち、gameでは、着信したメッセージを
(ステップ41)、送受信手段3がメッセージをスレッ
ド管理部4に渡すと共に、メッセージのコピーを第1の
記録部5に渡す。なお、スレッドを生じないオブジェク
トでは(ステップ42)、スレッド管理部や第2の記録
部及びこれらの動作は不要である。メッセージを受けと
ったスレッド管理部4はメッセージを受領すべきスレッ
ドを決定し(ステップ43)このメッセージをthre
ad0に引き渡すと共に、スレッドID(thread
0)を第1の記録部5に引き渡す。このIDは、メッセ
ージの受信時に決定された受信スレッドを表す。
ジェクトにおける処理の手順を示すフローチャートであ
る。すなわち、gameでは、着信したメッセージを
(ステップ41)、送受信手段3がメッセージをスレッ
ド管理部4に渡すと共に、メッセージのコピーを第1の
記録部5に渡す。なお、スレッドを生じないオブジェク
トでは(ステップ42)、スレッド管理部や第2の記録
部及びこれらの動作は不要である。メッセージを受けと
ったスレッド管理部4はメッセージを受領すべきスレッ
ドを決定し(ステップ43)このメッセージをthre
ad0に引き渡すと共に、スレッドID(thread
0)を第1の記録部5に引き渡す。このIDは、メッセ
ージの受信時に決定された受信スレッドを表す。
【0070】第1の記録部5は、メッセージにスレッド
IDを付加して user1 game(thread0) start player:3 − とし(ステップ44)、この付加されたメッセージを記
録用オブジェクト1に送信して記録する(ステップ4
5)。図5は、本実施例における記録の例を示す図であ
る。
IDを付加して user1 game(thread0) start player:3 − とし(ステップ44)、この付加されたメッセージを記
録用オブジェクト1に送信して記録する(ステップ4
5)。図5は、本実施例における記録の例を示す図であ
る。
【0071】また、gameでは、メッセージに含まれ
る種類“start”に対応するメソッド“star
t”が実行され(ステップ46)、この実行によって新
たなスレッド(thread1)が生成される。このス
レッドの生成は、第2の記録部6によって − game(thread1) (create) − − のようなメッセージの形式で記録用オブジェクト1に送
信される。この場合、送信元は空欄となり、代りに送信
先の欄にオブジェクト及び生成されたスレッドIDが充
填され、種類の欄にスレッドの生成を示す(creat
e)が充填される。生成されたthread1では初期
化ルーチン(init)が実行される。なお、図6は、
gameのメソッドを表すクラスの記述の例である。
る種類“start”に対応するメソッド“star
t”が実行され(ステップ46)、この実行によって新
たなスレッド(thread1)が生成される。このス
レッドの生成は、第2の記録部6によって − game(thread1) (create) − − のようなメッセージの形式で記録用オブジェクト1に送
信される。この場合、送信元は空欄となり、代りに送信
先の欄にオブジェクト及び生成されたスレッドIDが充
填され、種類の欄にスレッドの生成を示す(creat
e)が充填される。生成されたthread1では初期
化ルーチン(init)が実行される。なお、図6は、
gameのメソッドを表すクラスの記述の例である。
【0072】なお、スレッド管理部4は、生成されたt
hread1がuser1に対応するものであることを
記憶し、この記憶をその後のメッセージの授受に用い
る。
hread1がuser1に対応するものであることを
記憶し、この記憶をその後のメッセージの授受に用い
る。
【0073】次に、user1は、メッセージ user1 game roll who:0 − をgameに送信する。このメッセージに含まれる種類
“roll”はゲームの駒(コマ)を一手順分進める指
示であり、引数“who:0”はゲームの3人の参加者
(0から始まる番号0,1,2で特定される)のうち番
号0の参加者の駒を進めることを意味する。
“roll”はゲームの駒(コマ)を一手順分進める指
示であり、引数“who:0”はゲームの3人の参加者
(0から始まる番号0,1,2で特定される)のうち番
号0の参加者の駒を進めることを意味する。
【0074】このメッセージを受信したgameでは、
スレッド管理部4がuser1に対応するthread
1にメッセージを引き渡し、第1の記録部5は、メッセ
ージの送信元にスレッドID“thread1”を付加
して記録用オブジェクト1に送信する。このように、本
実施例では、メッセージは受信時に記録されるため、送
信先に複数のスレッドが存在し、送信時に送信先スレッ
ドが特定できない場合でも、受信側で確定した正確な送
信先スレッドをメッセージと共に記録することができ
る。
スレッド管理部4がuser1に対応するthread
1にメッセージを引き渡し、第1の記録部5は、メッセ
ージの送信元にスレッドID“thread1”を付加
して記録用オブジェクト1に送信する。このように、本
実施例では、メッセージは受信時に記録されるため、送
信先に複数のスレッドが存在し、送信時に送信先スレッ
ドが特定できない場合でも、受信側で確定した正確な送
信先スレッドをメッセージと共に記録することができ
る。
【0075】game中のスレッドthread1は、
メッセージの種類“roll”に対応したメソッドro
llを実行するが、この際、サイコロの目を決定する必
要が生じ、thread1はdiceにメッセージ game dice roll num:2 − を送る。このとき、第1の記録部5は送受信手段3から
送信されるメッセージにスレッドID(thread
1)を付加し、送信されるメッセージは、 game(thread1) dice roll num:2 − のようになる。
メッセージの種類“roll”に対応したメソッドro
llを実行するが、この際、サイコロの目を決定する必
要が生じ、thread1はdiceにメッセージ game dice roll num:2 − を送る。このとき、第1の記録部5は送受信手段3から
送信されるメッセージにスレッドID(thread
1)を付加し、送信されるメッセージは、 game(thread1) dice roll num:2 − のようになる。
【0076】受信側のdiceでは、第1の記録部5が
このメッセージのコピーを記録用オブジェクト1に送信
すると共に対応するメソッドが実行される。なお、図7
は、diceのメソッドを表すクラスの記述の例であ
る。
このメッセージのコピーを記録用オブジェクト1に送信
すると共に対応するメソッドが実行される。なお、図7
は、diceのメソッドを表すクラスの記述の例であ
る。
【0077】このようなメッセージのやり取りによって
ゲームは進行するが、途中で他のユーザのインタフェー
スであるuser2もゲームを開始することができ、図
5はこのような場合の記録である。図5中、threa
d2はuser2に対応して新たに生成されたスレッド
を表す。
ゲームは進行するが、途中で他のユーザのインタフェー
スであるuser2もゲームを開始することができ、図
5はこのような場合の記録である。図5中、threa
d2はuser2に対応して新たに生成されたスレッド
を表す。
【0078】なお、記録の対象(条件)をgame中の
thread1において送受信されるメッセージに限定
した場合の記録の内容を図8に、また、記録の対象をd
iceにおいて送受信されるメッセージに限定した場合
の記録の内容を図9に示す。以上のように、本実施例で
は、メッセージを送受信するオブジェクトにスレッドが
含まれる場合は、オブジェクトのみならずスレッドを特
定する情報がメッセージとともに記録されるので、スレ
ッドを単位としたデバッグを効率的に行うことができ
る。
thread1において送受信されるメッセージに限定
した場合の記録の内容を図8に、また、記録の対象をd
iceにおいて送受信されるメッセージに限定した場合
の記録の内容を図9に示す。以上のように、本実施例で
は、メッセージを送受信するオブジェクトにスレッドが
含まれる場合は、オブジェクトのみならずスレッドを特
定する情報がメッセージとともに記録されるので、スレ
ッドを単位としたデバッグを効率的に行うことができ
る。
【0079】また、本実施例では、第1の記録手段が、
デバッグ対象プログラムを構成するオブジェクトの一部
として構成されているので、デバッグ対象プログラムと
第1の記録手段が共通した構造を有することとなり、構
成が単純化される。
デバッグ対象プログラムを構成するオブジェクトの一部
として構成されているので、デバッグ対象プログラムと
第1の記録手段が共通した構造を有することとなり、構
成が単純化される。
【0080】なお、第1の記録手段であるオブジェクト
は、クラスの記述次第で、デバッグ対象とするオブジェ
クトとは別個に構成することもできるし、デバッグ対象
オブジェクトのメンバオブジェクトとすることもでき
る。このようにすれば、具体的事情に応じて第1の記録
手段の実現態様を変更することが容易になる。
は、クラスの記述次第で、デバッグ対象とするオブジェ
クトとは別個に構成することもできるし、デバッグ対象
オブジェクトのメンバオブジェクトとすることもでき
る。このようにすれば、具体的事情に応じて第1の記録
手段の実現態様を変更することが容易になる。
【0081】また、本実施例では、記録する内容の決定
は、デバッグ対象プログラムの各オブジェクトに設けら
れた第1の記録部4が行うが、決定された内容は単一の
記録用オブジェクト1に送信され蓄積される。このた
め、メッセージに関する情報が単一のまとまりを構成
し、閲覧などの取扱いが容易になる。また、プログラム
のオブジェクトでは、メッセージ記録用のデータエリア
を確保するために所要メモリ量が増大することがないの
でメモリを有効活用できる。
は、デバッグ対象プログラムの各オブジェクトに設けら
れた第1の記録部4が行うが、決定された内容は単一の
記録用オブジェクト1に送信され蓄積される。このた
め、メッセージに関する情報が単一のまとまりを構成
し、閲覧などの取扱いが容易になる。また、プログラム
のオブジェクトでは、メッセージ記録用のデータエリア
を確保するために所要メモリ量が増大することがないの
でメモリを有効活用できる。
【0082】また、本実施例では、送信側のオブジェク
ト乃至スレッドはメッセージと共に受信側に送信され、
受信側で決定されたスレッドとともに記録される。この
ため、メッセージの記録が受信側の1回のみで済み、プ
ログラミング支援装置やメッセージの構成が単純化され
る。
ト乃至スレッドはメッセージと共に受信側に送信され、
受信側で決定されたスレッドとともに記録される。この
ため、メッセージの記録が受信側の1回のみで済み、プ
ログラミング支援装置やメッセージの構成が単純化され
る。
【0083】また、本実施例では、設定手段オブジェク
ト2によって、メッセージを記録する条件を自由に設定
できる。例えば、記録の対象を、所望のオブジェクトや
スレッドに係るメッセージや、所定の種類のメッセージ
などに限定することができる。このため、所望の部分に
着目したデバッグが容易になる。
ト2によって、メッセージを記録する条件を自由に設定
できる。例えば、記録の対象を、所望のオブジェクトや
スレッドに係るメッセージや、所定の種類のメッセージ
などに限定することができる。このため、所望の部分に
着目したデバッグが容易になる。
【0084】また、本実施例では、オブジェクトにおけ
るスレッドの生成及び消滅も記録される。このため、メ
ッセージのみならずスレッドの生成及び消滅の時点を前
提にデバッグやメッセージの記録の理解を行えるので、
デバッグが効率化される。
るスレッドの生成及び消滅も記録される。このため、メ
ッセージのみならずスレッドの生成及び消滅の時点を前
提にデバッグやメッセージの記録の理解を行えるので、
デバッグが効率化される。
【0085】また、本実施例では、設定手段オブジェク
トによって、メッセージを記録する条件を自由に設定で
きる。例えば、記録するスレッドの生成・消滅を、特定
のオブジェクトやスレッドにおけるものに限定したり、
生成又は消滅のうち一方のみをすることができる。この
ため、所望の部分に着目したデバッグが容易になる。
トによって、メッセージを記録する条件を自由に設定で
きる。例えば、記録するスレッドの生成・消滅を、特定
のオブジェクトやスレッドにおけるものに限定したり、
生成又は消滅のうち一方のみをすることができる。この
ため、所望の部分に着目したデバッグが容易になる。
【0086】(3)他の実施例 なお、本発明は上記実施例に限定されるものではなく、
実施態様の変更は自由であるから、次に例示するような
他の実施例をも包含するものである。例えば、開発対象
プログラムを構成するオブジェクトの数は自由であり、
また、スレッドを有するオブジェクトの数や、そのよう
なオブジェクトにおけるスレッドの数も自由である。ま
た、第1の記録手段や第2の記録手段は必ずしもオブジ
ェクトやオブジェクトの一部として構成する必要はな
く、例えば、オブジェクトマネージャのようなシステム
スーパーバイザの機能として実現してもよい。
実施態様の変更は自由であるから、次に例示するような
他の実施例をも包含するものである。例えば、開発対象
プログラムを構成するオブジェクトの数は自由であり、
また、スレッドを有するオブジェクトの数や、そのよう
なオブジェクトにおけるスレッドの数も自由である。ま
た、第1の記録手段や第2の記録手段は必ずしもオブジ
ェクトやオブジェクトの一部として構成する必要はな
く、例えば、オブジェクトマネージャのようなシステム
スーパーバイザの機能として実現してもよい。
【0087】また、記録用オブジェクトの数も自由であ
り、例えば、上記実施例において、メッセージ記録用の
オブジェクトとスレッドの生成・消滅を記録するための
オブジェクトとを異別のものとして構成してもよい。ま
た、オブジェクトやスレッドを特定するためのIDの形
式は自由であり、例えば、文字列でもコード番号でもよ
い。
り、例えば、上記実施例において、メッセージ記録用の
オブジェクトとスレッドの生成・消滅を記録するための
オブジェクトとを異別のものとして構成してもよい。ま
た、オブジェクトやスレッドを特定するためのIDの形
式は自由であり、例えば、文字列でもコード番号でもよ
い。
【0088】また、前記記録手段は、メッセージの送受
信において、送信側のオブジェクト乃至スレッドを送信
時に記録し、受信側のオブジェクト乃至スレッドを受信
時に記録するように構成してもよい(請求項5,1
3)。このようにすれば、送信側のオブジェクト乃至ス
レッドは送信時に記録されるので、送信側のスレッド
は、受信側で不要な情報である場合はメッセージに乗せ
て送信する必要がなく、メッセージの構成が単純化でき
る。
信において、送信側のオブジェクト乃至スレッドを送信
時に記録し、受信側のオブジェクト乃至スレッドを受信
時に記録するように構成してもよい(請求項5,1
3)。このようにすれば、送信側のオブジェクト乃至ス
レッドは送信時に記録されるので、送信側のスレッド
は、受信側で不要な情報である場合はメッセージに乗せ
て送信する必要がなく、メッセージの構成が単純化でき
る。
【0089】
【発明の効果】以上詳述したように、本発明によれば、
オブジェクト指向プログラミングにおいて、メッセージ
が送受信に係るスレッドとともに記録されるので、スレ
ッドを単位としたデバッグを効率的に行うことができ
る。
オブジェクト指向プログラミングにおいて、メッセージ
が送受信に係るスレッドとともに記録されるので、スレ
ッドを単位としたデバッグを効率的に行うことができ
る。
【図1】本発明の実施例のプログラミング支援装置及び
開発対象プログラムが動作している際にメモリ空間上に
存在するオブジェクトを示す図。
開発対象プログラムが動作している際にメモリ空間上に
存在するオブジェクトを示す図。
【図2】図1のオブジェクトのうちgameの構成を示
す機能ブロック図。
す機能ブロック図。
【図3】本発明の実施例において、user1のメソッ
ドを表すクラスの記述の例を示す図。
ドを表すクラスの記述の例を示す図。
【図4】本発明の実施例において、メッセージ着信時の
オブジェクトにおける処理の手順を示すフローチャー
ト。
オブジェクトにおける処理の手順を示すフローチャー
ト。
【図5】本発明の実施例における記録の例を示す図。
【図6】本発明の実施例におけるgameのメソッドを
表すクラスの記述の例を示す図。
表すクラスの記述の例を示す図。
【図7】本発明の実施例におけるdiceのメソッドを
表すクラスの記述の例を示す図。
表すクラスの記述の例を示す図。
【図8】本発明の実施例において、記録の対象(条件)
をgame中のthread1において送受信されるメ
ッセージに限定した場合の記録の内容を示す図。
をgame中のthread1において送受信されるメ
ッセージに限定した場合の記録の内容を示す図。
【図9】本発明の実施例において、記録の対象をdic
eにおいて送受信されるメッセージに限定した場合の記
録の内容を示す図。
eにおいて送受信されるメッセージに限定した場合の記
録の内容を示す図。
1…記録用オブジェクト 2…設定手段オブジェクト 3…送受信手段 4…スレッド管理部 5…第1の記録部 6…第2の記録部 STEP〜…手順の各ステップ
Claims (16)
- 【請求項1】 メッセージを送受信する一又は二以上の
オブジェクト、を含むオブジェクト指向プログラムの開
発を支援し、 前記各オブジェクトは一又は二以上のスレッドを含むこ
とがあるプログラミング支援装置において、 前記各メッセージを、送受信に係るオブジェクト、又
は、送受信に係るオブジェクトにスレッドが存在する場
合は送受信に係るスレッドとともに、記録する第1の記
録手段を有することを特徴とするプログラミング支援装
置。 - 【請求項2】 前記第1の記録手段は、オブジェクト又
はオブジェクトを構成する要素として構成されているこ
とを特徴とする請求項1記載のプログラミング支援装
置。 - 【請求項3】 前記第1の記録手段は、 記録する内容を決定する記録部と、 決定された内容を順次記録するための記録用オブジェク
トとを有し、 前記記録部は前記オブジェクト指向プログラムに含まれ
る一又は二以上のオブジェクトについてそれぞれ設けら
れ、かつ、決定された前記内容を前記記録用オブジェク
トに順次送信するように構成されたことを特徴とする請
求項2記載のプログラミング支援装置。 - 【請求項4】 前記第1の記録手段は、メッセージの送
信側では、送信側のオブジェクト乃至スレッドを当該メ
ッセージと共に受信側に送信し、当該メッセージの受信
側では、メッセージと共に送信された送信側のオブジェ
クト乃至スレッドと、受信側のオブジェクト乃至スレッ
ドをメッセージと共に記録するように構成されたことを
特徴とする請求項1記載のプログラミング支援装置。 - 【請求項5】 前記第1の記録手段は、メッセージの送
受信において、送信側のオブジェクト乃至スレッドを送
信時に記録し、受信側のオブジェクト乃至スレッドを受
信時に記録するように構成されたことを特徴とする請求
項1記載のプログラミング支援装置。 - 【請求項6】 メッセージを記録する条件を設定するた
めの第1の設定手段を有することを特徴とする請求項1
記載のプログラミング支援装置。 - 【請求項7】 オブジェクトにおけるスレッドの生成及
び消滅を記録する第2の記録手段を有することを特徴と
する請求項1記載のプログラミング支援装置。 - 【請求項8】 スレッドの生成及び消滅を記録する条件
を設定するための第2の設定手段を有することを特徴と
する請求項7記載のプログラミング支援装置。 - 【請求項9】 メッセージを送受信する一又は二以上の
オブジェクト、を含むオブジェクト指向プログラムの開
発を支援し、 前記各オブジェクトは一又は二以上のスレッドを含むこ
とがあるプログラミング支援方法において、 前記各メッセージを、送受信に係るオブジェクト、又
は、送受信に係るいずれかのオブジェクトにスレッドが
存在する場合は送受信に係るスレッドとともに、記録す
る第1の記録のステップを含むことを特徴とするプログ
ラミング支援方法。 - 【請求項10】 前記第1の記録のステップは、オブジ
ェクト又はオブジェクトを構成する要素によって実現さ
れていることを特徴とする請求項9記載のプログラミン
グ支援方法。 - 【請求項11】 前記第1の記録のステップでは、 記録する内容を決定する記録部と、 決定された内容を順次記録するための記録用オブジェク
トとを用い、 前記記録部は前記オブジェクト指向プログラムに含まれ
る一又は二以上のオブジェクトについてそれぞれ設けら
れ、かつ、決定された前記内容を前記記録用オブジェク
トに順次送信することを特徴とする請求項10記載のプ
ログラミング支援方法。 - 【請求項12】 前記第1の記録のステップでは、メッ
セージの送信側において、送信側のオブジェクト乃至ス
レッドを当該メッセージと共に受信側に送信し、当該メ
ッセージの受信側において、メッセージと共に送信され
た送信側のオブジェクト乃至スレッドと、受信側のオブ
ジェクト乃至スレッドをメッセージと共に記録すること
を特徴とする請求項9記載のプログラミング支援方法。 - 【請求項13】 前記第1の記録のステップは、メッセ
ージの送受信において、送信側のオブジェクト乃至スレ
ッドを送信時に記録し、受信側のオブジェクト乃至スレ
ッドを受信時に記録するように構成されたことを特徴と
する請求項9記載のプログラミング支援方法。 - 【請求項14】 メッセージを記録する条件を設定する
ための設定のステップを含むことを特徴とする請求項9
記載のプログラミング支援方法。 - 【請求項15】 オブジェクトにおけるスレッドの生成
及び消滅を記録する第2の記録のステップを含むことを
特徴とする請求項9記載のプログラミング支援方法。 - 【請求項16】 スレッドの生成及び消滅を記録する条
件を設定するための第2の設定のステップを含むことを
特徴とする請求項15記載のプログラミング支援方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7008069A JPH08202579A (ja) | 1995-01-23 | 1995-01-23 | プログラミング支援装置及びプログラミング支援方法 |
| EP96100909A EP0724216A1 (en) | 1995-01-23 | 1996-01-23 | Programming support system and programming support method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7008069A JPH08202579A (ja) | 1995-01-23 | 1995-01-23 | プログラミング支援装置及びプログラミング支援方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08202579A true JPH08202579A (ja) | 1996-08-09 |
Family
ID=11683061
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7008069A Pending JPH08202579A (ja) | 1995-01-23 | 1995-01-23 | プログラミング支援装置及びプログラミング支援方法 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0724216A1 (ja) |
| JP (1) | JPH08202579A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003526135A (ja) * | 1998-11-16 | 2003-09-02 | インシグニア・ソリューションズ・ピーエルシー | コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001086448A2 (en) * | 2000-05-08 | 2001-11-15 | Transilica, Inc. | A diagnostic tool for a portable thread environment |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4885717A (en) * | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
| EP0470322B1 (en) * | 1990-08-07 | 1996-04-03 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Message-based debugging method |
| DE59108210D1 (de) * | 1991-07-31 | 1996-10-24 | Siemens Ag | Verfahren zur Visualisierung von protokollierten Informationen in einem Kommunikationssystem |
-
1995
- 1995-01-23 JP JP7008069A patent/JPH08202579A/ja active Pending
-
1996
- 1996-01-23 EP EP96100909A patent/EP0724216A1/en not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003526135A (ja) * | 1998-11-16 | 2003-09-02 | インシグニア・ソリューションズ・ピーエルシー | コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0724216A1 (en) | 1996-07-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6345383B1 (en) | Debugging support device and debugging support method | |
| JPH0797303B2 (ja) | コンピュータシステム及びそれを動作させる方法 | |
| US7251675B1 (en) | Meeting system and information storage medium | |
| US5305461A (en) | Method of transparently interconnecting message passing systems | |
| GB2242291A (en) | Synchronized journaling system | |
| CN101223555A (zh) | 动画间的平滑过渡 | |
| US8640034B2 (en) | Remote GUI control by replication of local interactions | |
| JP2012525639A5 (ja) | ||
| JP4885070B2 (ja) | チャットボットシステム | |
| CN112417345A (zh) | 渲染方法、装置、电子设备及存储介质 | |
| Sadun | The iOS 5 developer's cookbook: core concepts and essential recipes for iOS programmers | |
| CN101243396A (zh) | 用于在虚拟化环境中支持通用串行总线装置的方法和设备 | |
| WO2026046149A1 (zh) | 一种应用软件的跨平台迁移方法、存储介质和电子设备 | |
| US20050179691A1 (en) | Window system 2D graphics redirection using direct texture rendering | |
| JPH08202579A (ja) | プログラミング支援装置及びプログラミング支援方法 | |
| AU757763B2 (en) | Data processing method recording medium and data processing apparatus | |
| Sampson | Process-oriented patterns for concurrent software engineering | |
| JP3538292B2 (ja) | 実行時プログラム翻訳方法 | |
| US10719425B2 (en) | Happens-before-based dynamic concurrency analysis for actor-based programs | |
| JPH08180018A (ja) | 分散処理システム及び分散処理方法 | |
| JP3372106B2 (ja) | プログラムデバッグ装置 | |
| JP2990286B2 (ja) | マルチスレッド環境の計算機システム | |
| CN115983047A (zh) | 一种适用于多图形接口的跨平台的仿真系统 | |
| EP0481012A1 (en) | Computer operations recorder and training system | |
| JPH06348499A (ja) | オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法 |