JP2024041899A - システムおよび方法 - Google Patents
システムおよび方法 Download PDFInfo
- Publication number
- JP2024041899A JP2024041899A JP2024002519A JP2024002519A JP2024041899A JP 2024041899 A JP2024041899 A JP 2024041899A JP 2024002519 A JP2024002519 A JP 2024002519A JP 2024002519 A JP2024002519 A JP 2024002519A JP 2024041899 A JP2024041899 A JP 2024041899A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- malfunction event
- information indicating
- support system
- 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
- 238000000034 method Methods 0.000 title claims description 10
- 230000007257 malfunction Effects 0.000 claims abstract description 52
- 230000002950 deficient Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 11
- 230000007547 defect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
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)
Abstract
【課題】多種多様なユーザのプログラミングを支援する解決策を提供する。【解決手段】プログラム支援システムは、1または複数の端末装置と、1または複数の端末装置からアクセス可能な記憶手段とを含む。端末装置は、プログラムの開発環境を提供する提供手段と、プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する決定手段とを含む。記憶手段は、不具合事象毎の情報を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する。【選択図】図1
Description
本開示は、プログラミング支援システムおよびプログラミング支援方法に関する。
近年の情報通信技術(Information and Communication Technology:ICT)の進歩は目覚ましく、インターネットなどのネットワークに接続されるデバイスは、従来のパーソナルコンピュータやスマートフォンといった情報処理装置に限らず、様々なモノ(things)に広がっている。このような技術トレンドは、「IoT(Internet of Things;モノのインターネット)」と称され、様々な技術およびサービスが提案および実用化されつつある。将来的には、地球上の数十億人と数百億または数兆のデバイスとが同時につながる世界が想定されている。このようなネットワーク化された世界を実現するためには、よりシンプル、より安全、より自由につながることができるソリューションを提供する必要がある。
このようなデバイスのインテリジェント化に伴って、様々な種類のプログラムの作成が必要となっている。一方で、プログラムの作成にあっては、プログラム中に存在する様々な誤りを修正(いわゆる、デバッグ)する必要がある。このようなプログラムに含まれる誤りを修正する技術として、例えば、特開2001-243089号公報(特許文献1)は、試験対象ソフトウェアの異常の原因追求を容易にする検査装置を開示する。
上記特許文献1は、試験プログラム停止後に試験プログラムの内部状態を得ることで障害原因を解析する手法を開示するにすぎず、得られた内部状態を用いてどのように障害原因を解析するのかについては、何ら教示するものではない。
本開示は、多種多様なユーザのプログラミングを支援する解決策を提供する。
本開示のある形態に従うプログラム支援システムは、1または複数の端末装置と、1または複数の端末装置からアクセス可能な記憶手段とを含む。端末装置は、プログラムの開発環境を提供する提供手段と、プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する決定手段とを含む。記憶手段は、不具合事象毎の情報を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する。
決定手段は、不具合事象の内容を示す情報をハッシュ関数に入力して、予め定められた長さのアドレスを決定するようにしてもよい。
記憶手段が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっていてもよい。
取得手段は、バックトレースまたはスタックトレースの機能により、不具合事象の内容
を示す情報を取得してもよい。
を示す情報を取得してもよい。
プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含んでいてもよい。
本開示の別の形態に従うプログラム支援方法は、プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得するステップと、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定するステップと、決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスするステップとを含む。
本開示によれば、多種多様なユーザのプログラミングを支援できる。
本開示に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.プログラミング支援システム1の全体構成>
まず、本実施の形態に従うプログラミング支援システム1の全体構成について説明する。プログラミング支援システム1は、1または複数のユーザ(プログラマー)に対して、プログラミングを支援するための情報を提供する。
まず、本実施の形態に従うプログラミング支援システム1の全体構成について説明する。プログラミング支援システム1は、1または複数のユーザ(プログラマー)に対して、プログラミングを支援するための情報を提供する。
図1は、本実施の形態に従うプログラミング支援システム1の全体構成の一例を示す模式図である。図1を参照して、プログラミング支援システム1は、1または複数のコンピュータからなるサーバ200と、ネットワーク2を介してサーバ200にアクセス可能な1または複数の端末装置100とを含む。
端末装置100の各々には、統合開発環境(IDE:Integrated Development Environment)が提供されており、ユーザは統合開発環境上で任意のプログラムを作成できるものとする。
サーバ200は、端末装置100の統合開発環境上でのプログラム作成に係る情報を保持、管理および提供する記憶部に相当する。すなわち、サーバ200は、1または複数の
端末装置100からアクセス可能な記憶部を有している。より具体的には、サーバ200は、プログラム作成に係る不具合事象毎に知識ベース250を保持しており、いずれかの端末装置100からのアクセスに応じて、要求された情報の提供および情報の更新などを行う。知識ベース250へのアクセスは、事象毎に対応付けられるユニークなアドレスによって実現される。
端末装置100からアクセス可能な記憶部を有している。より具体的には、サーバ200は、プログラム作成に係る不具合事象毎に知識ベース250を保持しており、いずれかの端末装置100からのアクセスに応じて、要求された情報の提供および情報の更新などを行う。知識ベース250へのアクセスは、事象毎に対応付けられるユニークなアドレスによって実現される。
例えば、端末装置100の統合開発環境上で作成した何らかのプログラム(ソースコード)をコンパイルした際にエラーが発生した場合、あるいは、コンパイル済のプログラム(オブジェクト形式)を実行した際にエラーが発生した場合を想定する。このような場合において、発生した不具合事象の内容を示す情報(例えば、バックトレースなどによって得られるエラーコンテキスト)が取得され、この取得された情報に基づいて、発生した不具合事象に関する知識ベース250を参照するためのアドレスが決定される。
一方、サーバ200は、不具合事象毎の情報(知識ベース250)を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持している。そのため、ユーザは、決定されたアドレスに基づいて、当該発生した不具合事象を解消するための情報を対応する知識ベース250に容易にアクセスできる。
発生した不具合事象の内容を示す情報(例えば、バックトレースにより得られたメッセージ)は、当該不具合事象に固有の情報であり、このような固有の情報を用いることで、どのような情報が必要であるかを一意に特定できる。例えば、複数のユーザが同一の不具合事象に出くわした場合には、実質的に同一の情報が出力されるので、その出力されるエラーコンテキストなどをキーにして、必要な情報へアクセスするためのアドレスを決定できる。
図1に示すように、プログラミング支援システム1では、プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得する処理と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する処理と、決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスする処理とが実行される。
<B.ハードウェア構成例>
次に、本実施の形態に従うプログラミング支援システム1に含まれるデバイスのハードウェア構成例について説明する。
次に、本実施の形態に従うプログラミング支援システム1に含まれるデバイスのハードウェア構成例について説明する。
(b1:端末装置100)
端末装置100は、典型的には汎用コンピュータで実現される。
端末装置100は、典型的には汎用コンピュータで実現される。
図2は、本実施の形態に従うプログラミング支援システム1に含まれる端末装置100のハードウェア構成例を示す模式図である。図2を参照して、端末装置100は、主たるコンポーネントとして、プロセッサ102と、メインメモリ104と、入力部106と、ディスプレイ108と、ハードディスク110と、ネットワークインターフェイス118とを含む。これらのコンポーネントは、内部バス120を介して接続されている。
プロセッサ102は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。複数のプロセッサ102が配置されてもよいし
、複数のコアを有するプロセッサ102を採用してもよい。
、複数のコアを有するプロセッサ102を採用してもよい。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ハードディスク110
は、プロセッサ102で実行される各種プログラムや各種データを保持する。なお、ハードディスク110に代えて、SSD(Solid State Drive)やフラッシュメモリなどの不
揮発性記憶装置を採用してもよい。ハードディスク110に格納されたプログラムのうち、指定されたプログラムがメインメモリ104上に展開され、プロセッサ102は、メインメモリ104上に展開されたプログラムに含まれるコンピュータ可読命令(computer-readable instructions)を順次実行することで、後述するような各種機能を実現する。
は、プロセッサ102で実行される各種プログラムや各種データを保持する。なお、ハードディスク110に代えて、SSD(Solid State Drive)やフラッシュメモリなどの不
揮発性記憶装置を採用してもよい。ハードディスク110に格納されたプログラムのうち、指定されたプログラムがメインメモリ104上に展開され、プロセッサ102は、メインメモリ104上に展開されたプログラムに含まれるコンピュータ可読命令(computer-readable instructions)を順次実行することで、後述するような各種機能を実現する。
典型的には、ハードディスク110には、ユーザが任意に作成するソースプログラム112と、統合開発環境を実現するための開発プログラム114と、後述するようなサーバ200へのアクセスを実現するためのアクセスプログラム116とが格納される。開発プログラム114は、プログラムの開発環境を提供するモジュールを含み、アクセスプログラム116は、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定するモジュールを含む。
入力部106は、端末装置100を操作するユーザの入力操作を受け付ける。入力部106は、例えば、キーボード、マウス、表示デバイス上に配置されたタッチパネル、端末装置100の筐体に配置された操作ボタンなどであってもよい。
ディスプレイ108は、プロセッサ102での処理結果などを表示する。ディスプレイ108は、例えば、LCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイなどであってもよい。
ネットワークインターフェイス118は、ネットワーク2を介したサーバ200との通信を担当する。ネットワークインターフェイス118は、例えば、イーサネット(登録商標)ポート、USB(Universal Serial Bus)ポート、IEEE1394などのシリアルポート、レガシーなパラレルポートといった有線接続端子を含む。あるいは、ネットワークインターフェイス118は、デバイス、ルータ、移動体基地局などと無線通信するための処理回路およびアンテナなどを含んでもよい。ネットワークインターフェイス118が対応する無線通信は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)、LPWA(Low Power Wide Area)、GSM(登録商標
)、W-CDMA、CDMA200、LTE(Long Term Evolution)、第5世代移動通
信システム(5G)のいずれであってもよい。
)、W-CDMA、CDMA200、LTE(Long Term Evolution)、第5世代移動通
信システム(5G)のいずれであってもよい。
なお、端末装置100の全部または一部は、コンピュータ可読命令に相当する回路が組み込まれたASIC(Application Specific Integrated Circuit)などのハードワイヤ
ード回路を用いて実現してもよい。さらにあるいは、FPGA(field-programmable gate array)上にコンピュータ可読命令に相当する回路を用いて実現してもよい。また、プ
ロセッサ102およびメインメモリ、ASIC、FPGAなどを適宜組み合わせて実現してもよい。
ード回路を用いて実現してもよい。さらにあるいは、FPGA(field-programmable gate array)上にコンピュータ可読命令に相当する回路を用いて実現してもよい。また、プ
ロセッサ102およびメインメモリ、ASIC、FPGAなどを適宜組み合わせて実現してもよい。
端末装置100は、開発プログラム114およびアクセスプログラム116(コンピュータ可読命令)を格納する非一過性(non-transitory)のメディアから、当該格納しているプログラムなどを読み出すためのコンポーネントをさらに有していてもよい。メディアは、例えば、DVD(Digital Versatile Disc)などの光学メディア、USBメモリなどの半導体メディアなどであってもよい。
なお、開発プログラム114およびアクセスプログラム116は、メディアを介して端末装置100にインストールされるだけではなく、ネットワーク上の配信サーバから提供されるようにしてもよい。
(b2:サーバ200)
サーバ200についても、典型的には汎用コンピュータで実現される。サーバ200の基本的なハードウェア構成については図2と同様であるので、詳細な説明は繰り返さない。但し、サーバ200は、複数のコンピュータで構成される場合も多く、このような構成においては、コンピュータ間でデータを共通できるような仕組みが採用される。また、負荷に応じて、サーバ200を構成するコンピュータの数を増減させるようにしてもよい。また、複数の地理的に離れた位置に配置された複数のコンピュータが仮想的に単一のサーバ200として動作するようにしてもよい。
サーバ200についても、典型的には汎用コンピュータで実現される。サーバ200の基本的なハードウェア構成については図2と同様であるので、詳細な説明は繰り返さない。但し、サーバ200は、複数のコンピュータで構成される場合も多く、このような構成においては、コンピュータ間でデータを共通できるような仕組みが採用される。また、負荷に応じて、サーバ200を構成するコンピュータの数を増減させるようにしてもよい。また、複数の地理的に離れた位置に配置された複数のコンピュータが仮想的に単一のサーバ200として動作するようにしてもよい。
<C.プログラミングおよびバックトレース>
図3は、本実施の形態に従うプログラミング支援システム1におけるプログラミングおよびバックトレースについて説明するための図である。図3(A)を参照して、ユーザがソースプログラム112を作成し、当該作成したソースプログラム112をコンパイルして生成されたオブジェクト形式のプログラムを実行すると、特定部位のコードにおいて不具合事象(典型的には、実行時エラー)が発生したとする(以下、そのようなコードを「不具合コード150」とも称す。)。
図3は、本実施の形態に従うプログラミング支援システム1におけるプログラミングおよびバックトレースについて説明するための図である。図3(A)を参照して、ユーザがソースプログラム112を作成し、当該作成したソースプログラム112をコンパイルして生成されたオブジェクト形式のプログラムを実行すると、特定部位のコードにおいて不具合事象(典型的には、実行時エラー)が発生したとする(以下、そのようなコードを「不具合コード150」とも称す。)。
このような実行時エラーが発生したときに、バックトレース機能160を実行することで、図3(B)に示すような、エラーコンテキスト162を取得できる。バックトレース機能160は、発生した不具合事象の内容を示す情報を取得するための機能である。バックトレース機能160は、統合開発環境に含まれるデバッグ機能の一部として提供されてもよい。なお、バックトレースという名称に代えて、スタックトレースといった名称で呼ばれることもある。さらに、メモリダンプやコアダンプなどの機能を用いてもよい。
このように、端末装置100は、プログラムに発生した不具合事象の内容を示す情報を取得する機能として、バックトレースまたはスタックトレースの機能を有している。すなわち、端末装置100は、バックトレースまたはスタックトレースの機能により、不具合事象の内容を示す情報を取得する。
なお、ソースプログラム112をコンパイルした際に不具合事象(典型的には、コンパイルエラー)が発生する場合も同様に、発生した不具合事象の内容を示す情報(エラーコンテキスト162)を取得することができる。この場合には、発生した不具合事象の内容を示す情報を出力する機能は、統合開発環境に含まれるコンパイラやリンカなどに含まれてもよい。
本実施の形態に従うプログラミング支援システム1において、プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含んでいてもよい。
<D.処理の概要>
次に、プログラミング支援システム1において実行される処理の概要について説明する。図4は、本実施の形態に従うプログラミング支援システム1において実行される処理の概要を説明するための模式図である。図4を参照して、ユーザが作成したソースプログラム112に対して何らかの不具合事象(実行時エラーあるいはコンパイルエラー)が発生して、エラーコンテキスト162が生成されたとする。
次に、プログラミング支援システム1において実行される処理の概要について説明する。図4は、本実施の形態に従うプログラミング支援システム1において実行される処理の概要を説明するための模式図である。図4を参照して、ユーザが作成したソースプログラム112に対して何らかの不具合事象(実行時エラーあるいはコンパイルエラー)が発生して、エラーコンテキスト162が生成されたとする。
エラーコンテキスト162は、アドレス決定手段の一例としてのハッシュ関数170に入力されて、所定文字数のハッシュ値172が出力される。そして、ハッシュ値172から発生した不具合事象に対応するアドレス174が決定される。ハッシュ関数170としては、公知のアルゴリズム(例えば、SHA512,SHA384,WHIRLPOOL
など)を用いることができる。このように、不具合事象の内容を示す情報をハッシュ関数170に入力して、予め定められた長さのアドレスを決定できる。なお、アドレス決定手段としては、任意の文字列を所定数の文字列にマッピングできるものであれば、どのような変換式あるいはマッパーを用いてもよい。
など)を用いることができる。このように、不具合事象の内容を示す情報をハッシュ関数170に入力して、予め定められた長さのアドレスを決定できる。なお、アドレス決定手段としては、任意の文字列を所定数の文字列にマッピングできるものであれば、どのような変換式あるいはマッパーを用いてもよい。
図5は、本実施の形態に従うプログラミング支援システム1において提供される統合開発環境のユーザインターフェイススクリーン180の一例を示す図である。図5を参照して、ユーザインターフェイススクリーン180は、ソースプログラム112の作成および編集を行うエディタ領域182と、何らかの不具合事象が発生したときにバックトレース機能160を実行するためのバックトレースボタン184と、バックトレース機能160により得られるエラーコンテキストを表示するエラーコンテキスト表示領域186と、サーバ200へのアクセスを実行するアクセスボタン188とを含む。
ユーザは、エディタ領域182において任意のソースプログラムを作成あるいは編集できる。作成したソースプログラムの実行あるいはコンパイルなどにおいて、何らかの不具合事象が発生した場合には、バックトレースボタン184を押下することで、発生した不具合事象についてのエラーコンテキスト162が取得され、エラーコンテキスト表示領域186に表示される。ユーザは、エラーコンテキスト表示領域186に表示される内容を確認しながら、ソースプログラム112をデバッグすることもできる。
さらに、ユーザがアクセスボタン188を押下すると、発生した不具合事象のデバッグを支援するための情報(知識ベース250)へアクセスすることができる(以下に説明する、図6参照)。
図6は、本実施の形態に従うプログラミング支援システム1においてサーバ200が提供する情報の一例を示すユーザインターフェイススクリーン190の一例を示す図である。図5のアクセスボタン188が押下されることで、端末装置100はサーバ200の特定のアドレスにアクセスできる。アクセス先には、発生した不具合事象に対応する知識ベース250が関連付けられており、端末装置100のユーザインターフェイススクリーン190では、アクセス先の知識ベース250の内容が表示される。
図6を参照して、ユーザインターフェイススクリーン190は、対象となる知識ベース250を参照するためのアドレス174と、知識ベース250に含まれる不具合情報192とが表示されている。
図6に示す不具合情報192としては、1または複数のユーザが任意にメッセージを投稿できる形式であってもよい。すなわち、サーバ200が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっていてもよい。例えば、サポート担当のユーザ194が特定の不具合事象についてメッセージを投稿した後、一般のユーザ196が自身の経験に基づいて追加のメッセージを投稿するような運用形態が想定される。
このように、統合開発環境を開発あるいは保守するサポートエンティティに加えて、統合開発環境を利用する一般ユーザを含む複数のユーザがそれぞれ得ている知見を投稿することで、共通の不具合事象に対する知見を集約でき、当該不具合事象に対する解決策を容易に見つけることができる。
<E.アドレスの形式>
次に、知識ベース250にアクセスするためのアドレスの形式について説明する。基本的には、不具合事象毎に用意された知識ベース250にアクセスできれば、どのようなアドレスの形式を採用してもよい。
次に、知識ベース250にアクセスするためのアドレスの形式について説明する。基本的には、不具合事象毎に用意された知識ベース250にアクセスできれば、どのようなアドレスの形式を採用してもよい。
図7は、本実施の形態に従うプログラミング支援システム1において用いられるアドレスの形式の一例を示す図である。図7(A)に示すように、アドレスの形式として、エラーコンテキスト162から算出されるハッシュ値172をそのままアドレスの一部に用いるようにしてもよい。
あるいは、図7(B)に示すように、HTTPプロトコルのGET型コマンドを利用して、エラーコンテキスト162から算出されるハッシュ値172を利用した識別情報をサーバ200へ渡すようにしてもよい。
図7に示されるアドレスの形式に限られず、任意の形式で、発生した不具合事象に対応する特定の知識ベース250へアクセスできるように構成すればよい。
<F.その他の形態>
上述の説明においては、典型例として、生成されたエラーコンテキスト162の全部をハッシュ関数170に入力する処理例を示すが、このような処理例に限られず、エラーコンテキスト162に含まれる情報のうち、インスタンスとして決定される情報を除外した上で、ハッシュ関数170に入力するようにしてもよい。あるいは、インスタンスとして決定される情報の部分は、予め定められた数字あるいは文字でパディングした上で、ハッシュ関数170に入力するようにしてもよい。このような前処理を適用することで、実質的に同一の不具合事象について、同一のアドレスを決定でき、情報の共有を容易化できる。
上述の説明においては、典型例として、生成されたエラーコンテキスト162の全部をハッシュ関数170に入力する処理例を示すが、このような処理例に限られず、エラーコンテキスト162に含まれる情報のうち、インスタンスとして決定される情報を除外した上で、ハッシュ関数170に入力するようにしてもよい。あるいは、インスタンスとして決定される情報の部分は、予め定められた数字あるいは文字でパディングした上で、ハッシュ関数170に入力するようにしてもよい。このような前処理を適用することで、実質的に同一の不具合事象について、同一のアドレスを決定でき、情報の共有を容易化できる。
また、上述の説明においては、1または複数の端末装置100とサーバ200とからなる、いわゆるサーバ・クライエントモデルを例示するが、端末装置100間で情報を共有する、いわゆるサーバレスの構成を採用してもよい。この場合においても、発生した不具合事象の内容を示す情報を用いて決定されるアドレスを情報共有のためのキー(識別情報)として用いることができる。サーバレスの構成においては、端末装置100の統合開発環境上でのプログラム作成に係る情報を保持、管理および提供する記憶部は、いずれかの端末装置100あるいは複数の端末装置100に実質的に設けられることになる。
<G.利点>
本実施の形態に従うプログラミング支援システム1によれば、複数のユーザが様々なプログラムを作成するにあたって生じ得る不具合事象に対する解決策へ容易にアクセスすることができる。また、実質的に同一の不具合事象について、サポート側の情報だけではなく、ユーザ側の情報についても集約することができ、知識ベースを充実化できる。
本実施の形態に従うプログラミング支援システム1によれば、複数のユーザが様々なプログラムを作成するにあたって生じ得る不具合事象に対する解決策へ容易にアクセスすることができる。また、実質的に同一の不具合事象について、サポート側の情報だけではなく、ユーザ側の情報についても集約することができ、知識ベースを充実化できる。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 プログラミング支援システム、2 ネットワーク、100 端末装置、102 プロセッサ、104 メインメモリ、106 入力部、108 ディスプレイ、110 ハードディスク、112 ソースプログラム、114 開発プログラム、116 アクセスプログラム、118 ネットワークインターフェイス、120 内部バス、150 不具合コード、160 バックトレース機能、162 エラーコンテキスト、170 ハッシュ関数、172 ハッシュ値、174 アドレス、180,190 ユーザインターフェイススクリーン、182 エディタ領域、184 バックトレースボタン、186 エラーコンテキスト表示領域、188 アクセスボタン、192 不具合情報、194,19
6 ユーザ、200 サーバ、250 知識ベース。
6 ユーザ、200 サーバ、250 知識ベース。
Claims (6)
- プログラム支援システムであって、
1または複数の端末装置と、
前記1または複数の端末装置からアクセス可能な記憶手段とを備え、
前記端末装置は、
プログラムの開発環境を提供する提供手段と、
前記プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、
予め定められた規則に従って前記不具合事象の内容を示す情報からアドレスを決定する決定手段とを備え、
前記記憶手段は、不具合事象毎の情報を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する、プログラミング支援システム。 - 前記決定手段は、前記不具合事象の内容を示す情報をハッシュ関数に入力して、予め定められた長さのアドレスを決定する、請求項1に記載のプログラミング支援システム。
- 前記記憶手段が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっている、請求項1または2に記載のプログラミング支援システム。
- 前記取得手段は、バックトレースまたはスタックトレースの機能により、前記不具合事象の内容を示す情報を取得する、請求項1~3のいずれか1項に記載のプログラミング支援システム。
- 前記プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含む、請求項1~4のいずれか1項に記載のプログラミング支援システム。
- プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得するステップと、
予め定められた規則に従って前記不具合事象の内容を示す情報からアドレスを決定するステップと、
前記決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスするステップとを備える、プログラミング支援方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2024002519A JP2024041899A (ja) | 2019-05-23 | 2024-01-11 | システムおよび方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019096604A JP7424599B2 (ja) | 2019-05-23 | 2019-05-23 | システムおよび情報処理方法 |
JP2024002519A JP2024041899A (ja) | 2019-05-23 | 2024-01-11 | システムおよび方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019096604A Division JP7424599B2 (ja) | 2019-05-23 | 2019-05-23 | システムおよび情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024041899A true JP2024041899A (ja) | 2024-03-27 |
Family
ID=73455017
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019096604A Active JP7424599B2 (ja) | 2019-05-23 | 2019-05-23 | システムおよび情報処理方法 |
JP2024002519A Pending JP2024041899A (ja) | 2019-05-23 | 2024-01-11 | システムおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019096604A Active JP7424599B2 (ja) | 2019-05-23 | 2019-05-23 | システムおよび情報処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220214958A1 (ja) |
EP (1) | EP3974993A4 (ja) |
JP (2) | JP7424599B2 (ja) |
TW (1) | TW202101219A (ja) |
WO (1) | WO2020235621A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608731B (zh) * | 2021-08-06 | 2024-04-02 | 乐聚(深圳)机器人技术有限公司 | 积木编程关卡更新方法、装置、终端设备及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099367A (ja) * | 1998-09-18 | 2000-04-07 | Fuji Xerox Co Ltd | ソフトウエアの評価装置 |
JP2001243089A (ja) | 2000-02-25 | 2001-09-07 | Mitsubishi Electric Corp | ソフトウェア検証装置及びソフトウェア検証方法 |
JP2005284594A (ja) * | 2004-03-29 | 2005-10-13 | Dainippon Screen Mfg Co Ltd | 開発管理システム |
JP2006253756A (ja) * | 2005-03-08 | 2006-09-21 | Seiko Epson Corp | スキャナ、画像処理装置および画像処理システム |
US7469362B2 (en) * | 2005-04-15 | 2008-12-23 | Microsoft Corporation | Using a call stack hash to record the state of a process |
JP2007199845A (ja) * | 2006-01-24 | 2007-08-09 | Matsushita Electric Ind Co Ltd | メモリ破壊検出方法および装置 |
JP4491035B2 (ja) * | 2006-03-24 | 2010-06-30 | パナソニック株式会社 | 再生装置、デバッグ装置、システムlsi、プログラム |
JP4872857B2 (ja) * | 2007-09-06 | 2012-02-08 | 沖電気工業株式会社 | 記憶制御装置、方法及びプログラム、並びに、情報監視装置 |
US8448139B2 (en) * | 2009-10-05 | 2013-05-21 | International Business Machines Corporation | Automatic correction of application based on runtime behavior |
JP6238221B2 (ja) * | 2013-03-19 | 2017-11-29 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ソフトウェアの実行を監視する装置、方法およびプログラム |
US20150106663A1 (en) * | 2013-10-15 | 2015-04-16 | Sas Institute Inc. | Hash labeling of logging messages |
JP6213345B2 (ja) * | 2014-03-31 | 2017-10-18 | 富士通株式会社 | 転送装置、決定方法、及びデータ処理装置 |
JP2016133294A (ja) * | 2015-01-22 | 2016-07-25 | ジョンソンコントロールズ ヒタチ エア コンディショニング テクノロジー(ホンコン)リミテッド | 空調機の保守・メンテナンスシステム及びその方法 |
WO2019013033A1 (ja) * | 2017-07-10 | 2019-01-17 | 日本電信電話株式会社 | コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム |
US11151023B2 (en) * | 2017-11-20 | 2021-10-19 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for predicting performance failures in a computer program |
US11163886B2 (en) * | 2018-09-28 | 2021-11-02 | Dell Products L.P. | Information handling system firmware bit error detection and correction |
-
2019
- 2019-05-23 JP JP2019096604A patent/JP7424599B2/ja active Active
-
2020
- 2020-05-21 EP EP20810659.1A patent/EP3974993A4/en active Pending
- 2020-05-21 WO PCT/JP2020/020075 patent/WO2020235621A1/ja unknown
- 2020-05-21 US US17/613,447 patent/US20220214958A1/en active Pending
- 2020-05-22 TW TW109117086A patent/TW202101219A/zh unknown
-
2024
- 2024-01-11 JP JP2024002519A patent/JP2024041899A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2020235621A1 (ja) | 2020-11-26 |
EP3974993A1 (en) | 2022-03-30 |
JP2020190973A (ja) | 2020-11-26 |
US20220214958A1 (en) | 2022-07-07 |
TW202101219A (zh) | 2021-01-01 |
JP7424599B2 (ja) | 2024-01-30 |
EP3974993A4 (en) | 2023-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019144680A1 (zh) | 自动化测试方法及装置、存储介质、电子设备 | |
US8862940B2 (en) | Integrated fuzzing | |
CN112187585B (zh) | 网络协议测试方法及装置 | |
JP2024041899A (ja) | システムおよび方法 | |
US20180276111A1 (en) | Mock services for software infrastructures | |
CN102667730A (zh) | 设计时调试 | |
US10209968B2 (en) | Application compiling | |
CN101924656A (zh) | 一种基于动态配置的网络设备cli实现方法和装置 | |
CN104035873A (zh) | 测试代码生成方法及生成装置 | |
CN111475390A (zh) | 日志采集系统部署方法、装置、设备及存储介质 | |
CN109408372A (zh) | 公共组件测试方法、装置、计算机设备和存储介质 | |
CN113377661A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
US9489179B2 (en) | Application programming interface tracing mechanism | |
CN111767209A (zh) | 代码测试方法、装置、存储介质以及终端 | |
CN108241499A (zh) | 字段值注释的更新方法、装置及计算机可读存储介质 | |
CN110471828A (zh) | 一种操作系统测试方法、装置及其设备 | |
CN113542323B (zh) | 业务处理方法、装置、设备及计算机可读存储介质 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
US20140237449A1 (en) | System and method for an object instance acquirer | |
JP7385240B2 (ja) | ソフトウェア開発装置およびソフトウェア開発プログラム | |
US20220236982A1 (en) | Software development device and software development program | |
Li et al. | Human-Machine Collaborative Testing for Android Applications | |
CN113590224B (zh) | 服务器的检测方法、装置、电子设备及存储介质 | |
CN112306844A (zh) | 软件开发系统的接口测试方法、装置、设备及存储介质 | |
CN116302026A (zh) | 应用程序智能刷新方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240213 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240318 |