JPH06103047A - プログラム作成支援装置及びプログラム実行支援装置 - Google Patents

プログラム作成支援装置及びプログラム実行支援装置

Info

Publication number
JPH06103047A
JPH06103047A JP32843691A JP32843691A JPH06103047A JP H06103047 A JPH06103047 A JP H06103047A JP 32843691 A JP32843691 A JP 32843691A JP 32843691 A JP32843691 A JP 32843691A JP H06103047 A JPH06103047 A JP H06103047A
Authority
JP
Japan
Prior art keywords
history
program
database
user
failure
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.)
Withdrawn
Application number
JP32843691A
Other languages
English (en)
Inventor
Tomoko Akiyama
友子 秋山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32843691A priority Critical patent/JPH06103047A/ja
Publication of JPH06103047A publication Critical patent/JPH06103047A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】非熟練者が過去に発生したものと同じ間違いを
繰り返した場合に、容易に障害から回復できるよう支援
することを目的とする。 【構成】ユーザの指示や実行部作成中のプログラムを上
位計算機のシステムプログラムで動作した際の障害発生
時のエラーメッセージやプログラムの戻り値などの動作
結果の履歴データを履歴データベースに保存し、作成中
のプログラムを上位計算機のシステムプログラムにより
実行して障害が発生した場合には、過去に発生した同種
の類似障害を比較データベースから検索すると共に、該
類似障害発生時における過去の対処方法を前記履歴デー
タベースから検索してユーザ12に提示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラム作成/運用
時の障害回復を支援するプログラム作成支援装置及びプ
ログラム実行支援装置に関する。近年のプログラム開発
においては、慢性的に労働力が不足し、非熟練者の作業
に依存する所が大きくなっている。従って、これらの非
熟練者にも、プログラム開発における熟練者のノウハウ
を効率的に伝授する必要がある。
【0002】
【従来の技術】従来のプログラム作成作業におけるノウ
ハウの蓄積は、口頭で伝授されるか、自身の経験のみに
よって獲得されている。またプログラム作成を支援する
装置としては、作成したプログラムのコンパイル等を行
った場合の動作内容をユーザに提示するようにしたもの
がある。
【0003】
【発明が解決しようとする課題】しかしながら、プログ
ラム作成に関する能力が口頭で伝授されるノウハウの蓄
積や、自身の経験のみによって獲得できないようでは、
非熟練者は、プログラム作成中に、似た様なエラーを何
回も繰り返すこととなり、エラーの回復には、毎回多大
な時間を要することになる。
【0004】また、コンパイルした際の動作内容を提示
する支援装置にあっては、予め与えられたデータをユー
ザに提示するだけであり、プログラマの癖などの個性を
考慮にいれていない為に、適切でない指示を示唆するこ
とが多いという問題があった。本発明は、このような従
来の問題点に鑑みてなされたもので、非熟練者が過去に
発生したものと同じ間違いを繰り返した場合に、容易に
障害から回復できるよう支援するプログラム作成支援装
置を提供することを目的とする。
【0005】また本発明は、プログラム運用時の障害回
復を支援するプログラム実行支援装置を提供することを
目的とする。
【0006】
【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明のプログラム作成支援装置は、ユ
ーザ12の指示に応じた各種の処理を実行する実行部1
4と、ユーザ12の指示および実行部14により作成中
のプログラムを上位計算機16のシステムプログラムで
動作させた際の障害発生時のエラーメッセージやプログ
ラムの戻り値などの動作結果の履歴を記憶する履歴情報
記憶部18と、作成中のプログラム全体と前記履歴情報
記憶部18の動作結果の履歴とを対にした履歴データを
作成する履歴作成部20と、履歴作成部20で作成した
履歴データを保存する履歴データベース22と、どうい
う障害が同種の障害であるかを示す類似障害情報を保存
した比較データベース24と、作成中のプログラムを上
位計算機16のシステムプログラムにより実行して障害
が発生した場合には、過去に発生した同種の類似障害を
前記比較データベース24から検索すると共に、該類似
障害発生時における過去の対処方法を前記履歴データベ
ース22から検索してユーザ12に提示する履歴検索部
26とを備えたことを特徴とする。
【0007】ここで履歴賛成部20は、初版プログラム
に対するそれ以降のプログラムの変更及び修正部分とな
るプログラム差分と履歴情報記憶部18の動作結果の履
歴とを対にした履歴データを作成するようにしてもよ
い。また本発明は、図2の原理説明図に示すように、複
数の計算機をネットワークで結合したプログラム開発環
境を構築し、履歴データベース22及び比較データベー
ス24をサーバとして機能するネットワーク内の1つの
計算機上に保存すると共に、ネットワーク内の他の全て
の計算機に、実行部14、履歴情報記憶部18、履歴作
成部20及び履歴検索部26を設け、作成中のプログラ
ムを実行した際に障害が発生した場合には、前記履歴デ
ータベース22及び比較データベース24を共通に用い
て過去の類似障害発生時における対処方法をユーザ12
に提示することを特徴とする。
【0008】複数の計算機をネットワークで結合したプ
ログラム開発環境を構築した場合、ネットワーク内の全
ての計算機に、実行部14、履歴情報記憶部18、履歴
作成部20、履歴データベース22、比較データベース
24及び履歴検索部26を設け、各計算機で作成中のプ
ログラムを実行した際に障害が発生した場合には、自己
の履歴データベース22及び比較データベース24を共
通に用いて過去の類似障害発生時における対処方法をユ
ーザ12に提示し、ネットワーク内のいずれかの計算機
の履歴データベース22及び比較データベース24に修
正が加わった場合には残りの計算機の履歴データベース
22及び比較データベース24にも同じの修正を施して
分散したデータの整合性を保つようにしてもよい。
【0009】更に複数の計算機をネットワークで結合し
たプログラム開発環境を構築した場合、履歴データベー
ス22及び比較データベース24をネットワーク内の異
なる計算機上に個別に保存すると共に、ネットワーク内
の他の全ての計算機に、前記実行部14、履歴情報記憶
部18、履歴作成部20及び履歴検索部26を設け、作
成中のプログラムを実行した際に障害が発生した場合に
は、履歴データベース22及び比較データベース24を
共通に用いて過去の類似障害発生時における対処方法を
ユーザ12に提示するようにしてもよい。
【0010】履歴作成部20は、全てのプログラムもし
くはプログラム差分の代わりに、障害が修正されたり新
しい障害が生じたなどの障害発生状態に変化があった時
のデータだけを前記履歴データベース22に登録して保
存しておくこともできる。また履歴作成部20は、ユー
ザ12のコメントを実行部14を介して履歴情報記憶部
18に対話的に獲得し、プログラムもしくはプログラム
の差分と動作結果の履歴、更にユーザコメントを対にし
て前記履歴データベースに登録して保存しておく。
【0011】履歴情報記憶部18は、プログラムの動作
結果の種類を、同種の障害をまとめておく、同一の原因
から発生した障害を関連づけておく等の予め与えられた
方法に従って分類整理して記憶する。履歴検索部26
は、履歴データベース22に保存された過去の障害のう
ち、新しい方から、古い方から、仕様変更による修正時
の障害発生時点等の時系列の情報に従って対処方法を順
に検索して提示する。
【0012】更に履歴作成部20は、履歴データにプロ
グラマの個人情報を付加して前記履歴データベース22
に保存し、履歴検索部26は指定した個人の障害履歴情
報を優先的に検索して提示する。更に、本発明のプログ
ラム作成支援装置は、望む形の障害情報がとれない状態
で実行されたプログラムに関しては、自動的に望む形の
詳細情報をとれる状態にした後、プログラムの実行の指
示を繰り返して再び障害を発生させて詳細情報を障害情
報として収集する詳細情報収集部28と、詳細情報収集
部28で収集した詳細情報を登録して保存する詳細情報
収集用データベース30とを設けたことを特徴とする。
【0013】履歴検索部26は、履歴データベース22
を検索することで、作成中のプログラムについて頻度の
高い障害を見出してユーザに通知する。更に本発明のプ
ログラム作成支援装置は、作成中のプログラムの実行に
より、過去に発生した障害と同種の類似障害が発生した
場合に、推論データベース32の推論データを用いて障
害修正方法案を推論して提示する修正推論部34を設け
たことを特徴とする。
【0014】一方、本発明のプログラム実行支援装置
は、ユーザ12の指示に応じた各種の処理を実行する実
行部14と、コマンドの動作結果の履歴を記憶する履歴
情報記憶部18と、ユーザプログラムやツール、コマン
ドについて、与えた引数や実行を行ったディレクトリな
どの実行環境と履歴情報記憶部18のコマンドの動作結
果の履歴を対にした履歴データを作成する履歴作成部2
0と、履歴作成部20で作成した履歴データを保存する
履歴データベース22と、どういう障害が同種の障害で
あるかを示す類似障害情報を保存した比較データベース
24と、コマンドの実行により障害が発生した場合に
は、過去に発生した同種の類似障害を前記比較データベ
ース24から検索すると共に、類似障害発生時における
過去の対処方法を前記履歴データベース22から検索し
てユーザ12に提示する履歴検索部26とを備えたこと
を特徴とする。
【0015】このプログラム実行支援装置についても、
複数の計算機をネットワークで結合したプログラム実行
環境を構築し、履歴データベース22及び比較データベ
ース24をサーバとして機能するネットワーク内の特定
の計算機上に保存すると共に、ネットワーク内の他の全
ての計算機に、実行部14、履歴情報記憶部18、履歴
作成部20及び履歴検索部26を設け、作成中のプログ
ラムを実行した際に障害が発生した場合には、前記履歴
データベース22及び比較データベース24を共通に用
いて過去の類似障害発生時における対処方法をユーザ1
2に提示することもできる。
【0016】
【作用】このような構成を備えた本発明のプログラム作
成支援装置によれば次の作用が得られる。まずユーザ1
2はプログラム作成支援装置10を通して作成中のユー
ザプログラムのコンパイルや実行などの命令/指示を上
位計算機16のシステムプログラムに対して行う。
【0017】プログラム作成支援装置の実行部14は、
ユーザ12の命令/指示を履歴情報記憶部18に蓄えた
後、上位計算機16にユーザ12の命令/指示を伝え
る。更に上位計算機16のシステムプログラムからの障
害を示す各メッセージやシグナルを捕まえる。尚、シス
テムプログラムからのメッセージやシグナルは、入出力
デバイスを参照することでも得られる。
【0018】続いて実行部14は、システムメッセージ
やシグナルを履歴情報記憶部18に追加した後で、追加
したシステムメッセージやシグナルと同種のものが履歴
データベース22にあるかどうかを履歴検索部26を介
して調べる。ここでは履歴データベース22から得た履
歴情報に対し、比較データベース24の情報と照らし合
わせることによって、同種の障害(類似障害)かどうか
を判定する。
【0019】履歴データベース22に合致する情報がな
ければ、システムプログラムから受け取った障害メッセ
ージやシグナルと同種の障害は過去に存在していない旨
の通知をユーザ12に返す。一方、履歴データベース2
2に合致する情報があれば、システムプログラムから受
け取った障害メッセージやシグナルと、同種障害が過去
に存在していた旨の通知をユーザ12に返し、ユーザ1
2からの次の指示を待つ。
【0020】ユーザ12は、過去の障害に関する履歴情
報を用いた検索、修正案提示などの指示をプログラム作
成支援装置10を用いて行うことができる。プログラム
作成支援装置10から障害に関する情報の提示を受けた
ユーザは、続いて作成中のユーザプログラムになんらか
の修正、変更を加えて、再びプログラム作成支援装置1
0に命令/指示を伝える。
【0021】プログラム作成支援装置10は、修正、変
更された新しいプログラムを履歴情報記憶部18に追加
する。この場合、新しいプログラムと、履歴情報記憶部
18に記憶しておいた前のプログラムとの差分をとって
履歴情報記憶部18に追加する等の方法で新しいプログ
ラムに関する情報を履歴情報記憶部18に追加する。更
にプログラム作成支援装置10は、ユーザ12と上位計
算機16のシステムプログラムとの仲介をすることによ
って、両者からのメッセージや指示などを獲得し、履歴
情報記憶部18に該当するプログラムもしくはプログラ
ムの差分と共に保存しておく。
【0022】ここで、履歴情報記憶部18には、元のプ
ログラムP1とその実行結果R1と、変更後のプログラ
ムP2もしくは元のプログラムP1とのプログラム差分
P2変更後のプログラムの実行結果R2とが記憶されて
いる。この時、実行結果には、ユーザ12の与えた指示
も含む。更に新しくプログラムが変更された時点で、履
歴作成部20は元のプログラムP1とその実行結果R1
を対にして履歴情報データベース22に追加する。
【0023】勿論、プログラム差分P2を用いる場合に
は、初版プログラムP1とその実行結果R1の対と、そ
れ以降のプログラム差分P2とその実行結果R2の対を
履歴データベース22に追加する。このようにして作成
された履歴データベース22に対して、ユーザ12から
過去の修正方法の検索指示が加えられた場合、履歴検索
部26は、検索対象とする実行結果Rnew と、障害が同
種である実行結果Rold 、及び、障害が同種であるプロ
グラムPold を履歴データベース22から検索する。
【0024】そして、障害が同種であるプログラムR
old が存在すれば、障害が同種であるプログラムRold
が含まれなくなるまでの実行結果Rold の履歴を追って
いき、目的とする実行結果RtargetとプログラムP
targetを取り出す。最終的に、障害が同種である実行結
果Rold と検索実行結果Rtarget、および障害が同種で
あるプログラムPold と検索プログラムPtargetのそれ
ぞれの差分を取り出し、ユーザ12の見易い形にして表
示する。
【0025】また、ユーザ12が修正案提示を指定した
場合は、推論法推定部34により履歴データベース22
を検索することによって、障害が同種であるプログラム
ol d と検索実行結果Rtarget、および障害が同種であ
るプログラムPold と検索プログラムPtargetのそれぞ
れの差分を取り出した後、同種の障害発生プログラムP
old における変更点と同種の記述を現在のプログラム中
から取り出し、障害が同種であるプログラムRold と検
索実行結果Rtargetの差分の行番号などの情報から、取
り出した記述のうちで、障害が同種のプログラムPold
において変更されたポイントともっとも意味的に等しい
ものを取り出し、ユーザ12の見易い形にして表示す
る。
【0026】一方、図2の原理説明図に示したように、
ネットワークで結合されたプログラム開発環境において
は、少なくとも履歴データベース22及び比較データベ
ース24を含むデータベース部だけを備えた1つデータ
ベースサーバをネットワーク上に用意し、ネットワーク
上の計算機からは、サーバのデータベース22,24を
利用することでデータを一括管理し、ネットワーク上の
すべての計算機のユーザ12によるプログラム作成につ
いて、ネットワーク上の計算機で過去に生じた障害に関
する情報を全て利用できる様にする。
【0027】また、ネットワークで結合されたプログラ
ム開発環境では、複数の計算機上をデータベースサーバ
として利用する方法もできる。具体的には、履歴データ
ベース232及び比較データベース24毎に計算機を割
り当てるとか、一つのデータベースを複数の計算機上に
のせ、データベースのどれかに更新が加えられた時は、
更新の情報を別の計算機上のデータベースにも通知し更
新することで、情報の整合性を保つ。
【0028】複数のデータベースサーバを持つと、それ
ぞれの作業に応じて負荷が分散されたり信頼性が上がる
などのメリットがある。一方、本発明のコマンド実行支
援装置においては、プログラム内容の代わりにコマンド
の実行環境を、指示としてコマンドの入力引数を与える
ことにより、図1のプログラム作成支援装置と同様の処
理を実現することができる。
【0029】
【実施例】 [目次] 1.プログラム作成支援装置の構成(第1実施例) 2.コメント付加機能つきプログラム作成支援装置(第
2実施例) 3.データの分類機能付プログラム作成支援装置(第3
実施例) 4.時系列情報を利用したプログラム作成支援装置(第
4実施例) 5.作成者名情報利用機能つきプログラム作成支援装置
(第5実施例) 6.詳細情報取得機能付プログラム作成支援装置(第6
実施例) 7.頻度に基づく情報提示機能付プログラム作成支援装
置(第7実施例) 8.修正案提示機能付プログラム作成支援装置(第8実
施例) 9.全ての機能を備えたプログラム作成支援装置(第9
実施例) 10.ネットワーク結合されたプログラム作成支援装置
(第10実施例) 11.プログラム実行支援装置 12.プログラム作成支援装置の実例 1.プログラム作成支援装置の構成(第1実施例) 図4は本発明のプログラム作成支援装置の第1実施例を
示した実施例構成図である。
【0030】図4において、10は本発明のプログラム
作成支援装置、12はユーザ、16はシステムプログラ
ムを実行する上位の計算機である。プログラム支援装置
10には、実行部14、履歴情報記憶部18、履歴作成
20、履歴データベース22、比較データベース24、
履歴検索部26、実行分岐データベース36、ユーザイ
ンタフェース部38及び計算機インタフェース部40が
設けられる。
【0031】実行部14は、ユーザ12の要求に応じた
各部の呼び出しや調整を行う。実行部14とユーザ12
との間に設けたユーザインタフェース部38は、ユーザ
12からの指示を受けとったり、ユーザ12に検索結果
や訂正案を提示する時の表示を行ったりする実行部14
と計算機16の間に設けた計算機インタフェース部40
は、ユーザ12からの指示に基づいて、計算機環境を構
築しているシステムプログラムにユーザプログラムのコ
ンパイルや実行等の処理を依頼する。またシステムプロ
グラムの処理結果として得られた障害システムメッセー
ジやシグナル等を実行結果として受ける。
【0032】実行部14によるユーザ12から指示に基
づく処理は実行分岐データベース36を参照して行われ
る。例えば図3の処理フローに示したような実行分岐の
情報が格納されている。履歴情報記憶部18は実行され
たプログラムやユーザの指示内容、更にはシステムプロ
グラムの実行結果を記憶する。
【0033】履歴情報作成部20は、履歴情報記憶部1
8からの情報を元に、プログラムと動作結果の対の履歴
情報、もしくはプログラム差分と動作履歴の対の履歴情
報を作成する。履歴データベース22は履歴情報作成部
で作成した履歴データを登録して保存している。履歴検
索部26は、作成中のプログラムを上位計算機16のシ
ステムプログラムにより実行して障害が発生した場合
に、ユーザ12の指示を受けて過去に発生した同種の類
似障害を比較データベース24から検索すると共に、検
索した類似障害発生時における過去の対処方法を履歴デ
ータベース22から検索してユーザ12に提示する。
【0034】次に図4のプログラム作成支援装置10の
処理動作を説明する。いま図5に示すような新しいC言
語のプログラムをユーザ12が作成したとする。このプ
ログラム内容は次の通りである。 [プログラム] [説明] 01 main() { 型宣言 02 int int1 ; 数字int を定義 03 scanf("%d", int) ; 数字int を読込む 04 if( int1==0 ) 数字int=0のとき 05 printf(End\") ; End をプリントアウトする 06 else 数字int が0以外のとき 07 printf("%d\n", int1) ; 読込んだ数字intを プリントアウトする このプログラムは3行目の『int 』が誤りであり、正し
くは『int1』としなければならない。
【0035】(1)まずユーザ12はプログラム作成支
援装置10に図5のプログラムをコンパイルするための
指示『cc test2.c』を与える。 (2)プログラム作成支援装置10の実行部14は、ユ
ーザ12与えられた指示を実行分岐データベース36の
情報に従って解析し、その結果、履歴情報記憶部18を
以下のように更新する。
【0036】(3)実行部14はユーザ指示『cc test
2.c』が与えられた時に、どのような処理をすればよい
かを図7に示す実行分岐データベース36の情報から取
り出す。実行分岐データベース36の検索に用いる指示
項目は例えば次のようになる。 [記号] [内容] cc ** ** をコンパイルせよ dbx ** ** をデバッカせよ a.out ** ** をプログラム実行せよ この場合は、実行分岐データベース36の先頭の条件に
合致したので、履歴情報記憶部18の情報から図9の履
歴データベース22内の枠で囲った部分に示す履歴情報
を作成し、履歴データベース22に追加してから図8
(イ)に示すように履歴情報記憶部18の情報をクリア
する。
【0037】(4)クリアされた履歴情報記憶部18内
のプログラム項目に、図8(ロ)のようにプログラムの
内容を記録しておく。また同時に、指示項目にも指示
『cc.test2.c 』を記録しておく。実行部14は、以上
の情報を準備したうえで、ユーザ12の指示『cc test
2.c』を計算機16のシステムプログラムに伝える。こ
こで指示『cc test2.c』は、プログラムtest2.c をコン
パイルせよという命令である。
【0038】(5)計算機16のシステムプログラムか
らの応答メッセージ、この場合にはコンパイルエラーの
メッセージを受け取り、履歴情報記憶部18内の結果項
目に図8(ハ)のように、メッセージもしくは複雑なメ
ッセージの場合はメッセージリスト内にあるメッセージ
のポインタを記録する。この場合は、障害が起きたの
で、エラーメッセージリスト42にメッセージを記録
し、結果項目にはエラーメッセージリスト42へのポイ
ンタを記録する。
【0039】(6)システムプログラムが図5の作成プ
ログラムをコンパイルすると、図6のようなエラーメッ
セージがでてコンパイルができないので、その旨をプロ
グラム支援装置10はユーザ12に答える。尚、この部
分の処理は前記(5)の前でもよい。 (7)再度ユーザ12からの指示を受け付け、再コンパ
イルであれば(1)〜(6)の処理を繰り返し、ユーザ
12が過去の同種障害の検索を指示した場合に、履歴検
索部20は図7に示すように、同種の障害かどうかを以
下の様に判定する。
【0040】(8)履歴検索部20に渡されたエラーメ
ッセージ『line3: syntax error at or near type word
"char" 』から行番号を削除して、エラー情報『syntax
error at or near type word "char"』を取り出す。こ
れを照合ルーチン44が比較データベース24内の同種
/同類情報と比べて、検索すべきメッセージを取り出
す。ここで発生した障害と同種の障害を検索対象とし、
同類のものはユーザ12の指定により検索対象から除去
する。
【0041】発生した障害と同類のものを検索対象から
除去するのは、次の理由による。例えば、実行時のエラ
ーメッセージ『Bus error 』は、不正にアドレスを参照
した場合に発生するが、これには 配列の大きさ以上のデータを格納しようとした場合 存在しないアドレスにデータを格納しようとした場合 などがある。しかし、これらは意味的にかなり違いがあ
るため同種の障害とは言えず、また、数種の障害を含む
ため、同種の障害だけを取り出す場合に比べて数倍の情
報量があるため、数が多くなりすぎるという欠点があ
る。そこで発生した障害と同類のものは検索対象から除
外している。
【0042】(9)前記(8)で得られた検索すべきエ
ラー内容 ・syntax error at or near type word "int" ・syntax error at or near type word "char" ・syntax error at or near type word "float" ・syntax error at or near type word "double" を含むデータを履歴データベース22から取り出す。具
体的には、図9の『履歴データベース内情報』と書かれ
ている情報である。
【0043】(10)履歴データベース22から得た
『履歴データベース内情報』と、検索に使用した障害メ
ッセージ『syntax error at or near type word "int"
』を履歴情報記憶部18に通知する。 (11)実行部14は以下のようにして差分情報を取り
出してユーザ12に提示する。
【0044】(12)実行部12は、(10)で履歴情
報記憶部18に送られた2つの情報 同種障害を持つ過去のプログラムの情報 前記の中で特に同種障害であるメッセージ の2つのデータの対を持っている。この例では同種障害
は過去に一つしか発生していないのでデータの対は1つ
である。
【0045】(13)前記(12)のそれぞれのデータ
の並びに対し、図10に示すように、同種障害を持つ過
去のプログラムから次版のプログラム情報を次々と取り
出し、その中の障害メッセージに着目し、図11に示す
情報を作成する。 (14)図11の作成データから障害メッセージの中に
同種のエラーメッセージが含まれなくなった時点のプロ
グラムを取り出す。図11の例では、プログラム版(A
−i)でエラーがなくなっているが、その後のプログラ
ム版(A−j)ではエラーが再発しているので、この場
合は、プログラム版(A−i)をエラーのなくなった時
点とは考えない。
【0046】一方、プログラム版(A−k)以降につい
てはエラーが見られなくなっているので、プログラム版
(A−k)がエラーのなくなったプログラムであると判
断できる。従って、1つ前のプログラム版(A−k−
1)とエラーがなくなったプログラ版(A−k)の差分
を取れば良い。図10のプログラムの例では、エラーが
なくなったプログラム版(A−k)に相当するのが履歴
データベース番号『030-22-02 』のプログラムである。
この履歴データベース番号『030-22-02 』のプログラム
の修正履歴は、例えば後述する図36の通りである。
【0047】(15)従って図10の履歴データベース
番号『030-22-01 』と『030-22-04』の差分を図に示す
ように取り出し、前記(12)の 同種障害を持つ過去のプログラムの情報 前記の中で特に同種障害であるメッセージ として履歴情報記憶部18に蓄えた情報の内、ユーザ1
2からの提示要求のあったものを一緒にして検索結果を
提示する。
【0048】このためユーザ12は提示された過去の障
害情報のその修正結果から図5の3行目の『int 』は誤
りで『int1』としなければならないことが直ちに判り、
経験がなくとも適確にエラーを修正できる。 2.コメント付加機能つきプログラム作成支援装置(第
2実施例) 本発明の第2実施例は図2のプログラム作成支援装置1
0において、ユーザ12のコメントを対話的に獲得し、 (プログラム又はプログラム差分)−(動作結果の履
歴)−(コメント) の対にして履歴データベース22に保存し、障害発生時
に過去の履歴をユーザコメントと共に示してエラー内容
及び対処方法を判り易く提示するようにしたことを特徴
とする。
【0049】このコメント付加機能をもつプログラム作
成支援装置の処理動作は次のようになる。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。 (2)プログラム作成支援装置10の実行部14は、与
えられたユーザ指示を実行分岐データベース36の情報
に従って解析し、その結果、履歴情報記憶部18を図1
4に示すように更新する。この更新の方法は、第1実施
例のプログラム作成支援装置10における例と同じであ
るが、図13の先頭項目に示すように、実行分岐の条件
としてコメントの付加である場合という項目が増える。
【0050】(3)ユーザ12からの指示を受け付け、
再コンパイルなどのシステム呼び出しであれば前記
(1)〜(2)を繰り返し、過去の同種障害の検索であ
れば次の(4)及び(5)を実行する。またコメントの
付加であれば、(6)以降へ進む。 (4)履歴検索部20は図15に示すように同種の障害
かどうか判定する。この判定の方法は、第1実施例のプ
ログラム作成支援装置10における例と同じであるので
詳細は省略するが、検索された履歴データベース内情報
の内容が異なっている。
【0051】(5)実行部14は以下の様にしてプログ
ラム差分情報とユーザコメントを取り出し、提示する。 (6)プログラムの差分情報に関しては、第1実施例の
プログラム作成支援装置10における(12)〜(1
6)の内容と同じであるので省略する。ただし、この場
合のデータベース内情報は図16に示されたものであ
る。
【0052】(7)図16に示した通し番号『030-22-0
2 』のデータベース内情報の中のコメント情報『予約語
を使用していた』を取り出す。 (8)前記(6)で得られたプログラムの差分の情報と
前記(7)で得られたユーザが付加したコメントの情報
を一緒に提示する。 (9)コメントの付加は、図14に示した場合のよう
に、履歴情報記憶部18を利用する。
【0053】例えば図14(イ)のように履歴情報記憶
部18の内容ができていたとする。ユーザから『類似例
は 030-22-01→030-22-02 』というコメントがきたら、
図14(ハ)のように、コメント項目にコメントの内
容、もしくはコメントへのポインタを記録する。 3.データの分類機能付プログラム作成支援装置(第3
実施例) 本発明の第3実施例によるプログラム作成支援装置は、
プログラムの動作結果の種類を予め与えられた方法、例
えば同種の障害をまとめておく、同種の原因から発生し
た障害を関連づけておく等に従って分類整理する機能を
備えたことを特徴とする。
【0054】この第3実施例の構成は図4の第1実施例
と同じであり、履歴情報記憶部18の情報を履歴データ
ベース22に登録する際の処理動作が第3実施例特有の
処理となる。この第3実施例の処理動作は次の通りであ
る。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。
【0055】(2)プログラム作成支援装置10の実行
部14は、与えられた指示を実行分岐データベース36
の情報に従って解析し、履歴情報記憶18を更新する。
履歴情報記憶部18の更新方法は、プログラム作成支援
装置10の第1実施例の(3)〜(6)に等しいので省
略する。但し、履歴情報記憶部18の情報を履歴データ
ベース22に登録する際の動作が異なるので、この部分
に関して以下に説明する。
【0056】(4)いま履歴情報記憶部18に蓄えられ
ている情報は、図8のような形であるとする。ここで
は、図17のような情報が履歴情報記憶部18に蓄えら
れている場合を考える。 (5)この情報を履歴データベース22に格納する場合
に、指示と実行結果の対を取り出す。
【0057】(6)指示と実行結果の対をキーに、実行
分岐データベース36の情報を検索する。この場合の実
行分岐データベース36の中味は第1実施例のプログラ
ム作成支援装置10の場合に比べ、異なる質の情報を含
むので、これを図18に示す。 (7)ここでは分類に関する分岐情報を検索しているの
で、図18の分類の項目の中を検索する。指示『cc』
は、コンパイルを表す命令であるので、分類の中のコン
パイルの項を見る。コンパイルの項の中の『cc』による
コンパイルにおける該当する結果があるかどうかを調べ
る。
【0058】(8)コンパイルの項の中の『cc』による
コンパイルにおける該当する結果の履歴データベース位
置を分類側について求めると、『1〜23』である。こ
れは履歴データベース22の1〜23番目には、既に、
分類によるデータが格納されていることを表す。 (9)履歴データベース22の1番目から23番目まで
はデータが格納されていることがわかったので、履歴デ
ータベース22の24番目に図17に示した履歴情報記
憶部18のデータを格納し、履歴データベース内位置項
目の情報を『1〜24』に書き直す。
【0059】(10)ユーザ12からの指示を再度受け
付ける。再コンパイルであれば前記(1)〜(2)を繰
り返し、過去の同種障害検索であれば次の(11)以降
へ進む。 (11)履歴検索部26において同種の障害かどうかを
以下の様に判定する。 (12)まず指示と実行結果の対を取り出す。
【0060】(13)前記(5)〜(7)のように、実
行内容と結果の種類による分類が等しいものを取り出
す。 (14)取り出したものに対して、前記グラム作成支援
装置10の第1実施例で説明した(9)〜(11)のよ
うに、同種の障害を取り出す。 (15)プログラム作成支援装置10の第1実施例の
(13)〜(16)のように差分を取り出しユーザ12
に提示する。 4.時系列情報を利用したプログラム作成支援装置(第
4実施例) プログラム作成支援装置の第4実施例は、過去の障害の
内、新しい方から、古い方から、使用変更による修正時
に発生した障害等のある時点から、等の時系列の情報に
従って発生した障害の対処方法を検索して提示する機能
を備えたことを特徴とする。
【0061】この第4実施例のプログラム作成支援装置
の構成も図4の第1実施例と同じであり、次のような処
理動作となる。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。 (2)プログラム作成支援装置10の実行部14は、ユ
ーザ12から与えられた指示を実行分岐データベース3
6の情報に従って解析し、その結果、履歴情報記憶部1
8を更新する。この更新の方法は、第1実施例のプログ
ラム作成支援装置10と同じであるので詳細は省略す
る。
【0062】(3)ユーザ12からの指示を受け付け
る。再コンパイルなどのシステム呼び出しであれば、前
記(1)〜(2)を繰り返す。過去の障害情報検索であ
れば次の(4)以降へ進む。 (4)履歴検索部26において同種の障害かどうか判定
する。この判定の方法は、第1実施例のプログラム作成
支援装置10と同じであるので詳細は省略するが、検索
された履歴データベース内情報の内容が異なるので、こ
の履歴情報の例を図19で示す。
【0063】(5)実行部14は以下の様にして時系列
情報を利用したプログラム差分情報とユーザコメントを
取り出す。 (6)まず、メッセージを出力するなどの方法により、
ユーザに『この時点を中心にそれ以前のもの』『この時
点を中心にそれ以降のもの』『この時点からこの時点ま
での間までのもの』とか『古い順に』『新しい順に』
『いくつ』といった指定を得る。ここでは、『1991
年の5月から1991年の6月までの情報を古い順に全
部』表示せよと指定したとする。
【0064】(7)図20に示すように、ユーザ12の
指定から時系列リストを作る。まず、ユーザの指定した
時点『1991年の5月から1991年の6月』という
情報を、履歴データベース内情報の更新日時のデータを
比較し、範囲が一致したものを取り出す。尚、実際には
前記(4)と(6)の比較操作は同時に『同種障害かつ
指定日時範囲のもの』として実行しても良い。
【0065】(8)取り出した情報を、既にある時系列
リストに加える。この時、リストの中の時間情報と、取
り出した情報の時間情報を比較して、時間順に並ぶよう
にする。この時間情報で順にソートする技術は公知であ
るので特に規定しない。この結果、図21のように履歴
データベース番号『030-22-01 』のデータと番号『011-
15-09 』のデータの間に新しい番号『045-101-13』のデ
ータを追加し、矢印で示すポインタを張り替える。その
結果、得られたリストが図22である。
【0066】(9)図22のように出来上ったリストに
対して、ユーザの指定は『古い順に』ということである
から、リストが日時の古い順にならべてあるので、リス
トの先頭を取り出す。 (10)リストの先頭の要素に対して、要素の中に記憶
しているデータ番号から履歴情報を取り出し、第1実施
例のプログラム作成支援装置10の(13)〜(16)
のようにしてプログラムの差分情報を取り出し、プログ
ラムの更新日時の情報を対にした結果をユーザ12に提
示する。 5.作成者名情報利用機能つきプログラム作成支援装置
(第5実施例) プログラム作成支援装置の第5実施例は、履歴データに
プログラマの個人情報を付加しておくことより、指定し
た個人の障害履歴情報を優先的に検索して提示する機能
を備えたことを特徴とする。この第5実施例の構成も図
4の第1実施例と同じであり、次の処理動作となる。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。
【0067】(2)プログラム作成支援装置10の実行
部14は、ユーザ12から与えられた指示を実行分岐デ
ータベース36の情報に従って解析し、その結果、履歴
情報記憶部18を更新する。この更新の方法は、第1実
施例のプログラム作成支援装置10と同じであるので詳
細は省略する。但し、第5実施例では履歴データベース
22に登録する時に、履歴作成部20は作成者のユーザ
IDを参照して、作成者名としてデータベース情報に付
加する。このように作成されたデータベース情報の例を
図23に示す。
【0068】(3)ユーザ12からの指示を受け付け
る。再コンパイルなどのシステム呼び出しであれば前記
(1)〜(2)を繰り返し、過去の同種障害検索であれ
ば次の(4)及び(5)を実行する。 (4)履歴検索部26において同種の障害かどうか判定
する。この判定の方法は、第1実施例のプログラム作成
支援装置10の例と同じであるので詳細は省略する。
【0069】(5)作成者情報を用いた情報提示をす
る。 (6)プログラムの差分情報に関しては、第1実施例の
プログラム作成支援装置10における(13)〜(1
6)と同じであるので省略する。ただし、この場合のデ
ータベース内情報は図23で示されたものである。 (7)ユーザから『誰の情報を』という指示を得る。指
示が得られなかった場合は、第1実施例のプログラム作
成支援装置10の(13)〜(16)と同様の処理を行
う。
【0070】(8)前記(4)で取り出した履歴データ
ベース内情報のうち、作成者項目を取り出す。 (9)ユーザ指示による『誰の情報を』と履歴データベ
ース内情報からの『作成者名』が等しい場合に、前記
(6)で得られたプログラムの差分の情報を提示する。
尚、この時に、作成者の確認と、同種障害であることの
確認や時系列情報による確認を平行して行ってもよい。 6.詳細情報取得機能付プログラム作成支援装置(第6
実施例) プログラム作成支援装置の第6実施例は、望む形の障害
情報が取れない状態で実行されたプログラムに対して
は、自動的に望む形の障害情報、即ち詳細情報をとれる
状態にした後、指示を繰り返して再び障害を発生させ、
その結果得られた詳細情報を障害情報とすることを特徴
とする。
【0071】この第6実施例の構成は、図24に示すよ
うに、図4の実施例に、発生した障害の詳細な情報を取
るための詳細情報収集部28と、詳細情報収集部28に
おいて現在の状態に対してどの様な処理を加えれば良い
かの情報を保存している詳細情報収集用データベース3
0が追加され、他の構成は図4の第1実施例と同じであ
る。
【0072】この第6実施例の処理動作は次のようにな
る。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。 (2)プログラム作成支援装置10の実行部14は、ユ
ーザ12から与えられた指示を実行分岐データベース3
6の情報に従って解析し、その結果、履歴情報記憶部1
8を以下の様に更新する。ユーザ12との対話的な実行
における履歴情報記憶部18の情報の作成に関しては、
第1実施例のプログラム作成支援装置10の(3)〜
(5)と等しいので省略する。
【0073】(3)履歴情報記憶部18から履歴データ
ベース22にデータを書き込む時に、詳細情報をとる。
ここでは、図25のような情報が履歴情報記憶部18に
格納されていたとする。 (4)履歴作成部20は履歴情報記憶部18の各指示項
目に着目し、図26に示すように詳細情報収集部28で
詳細情報収集用データベース30と比較する。
【0074】(5)該当するものがなければ、履歴情報
記憶部18のデータをそのまま履歴データベース22に
登録する。 (6)該当するものに関しては、ユーザ12の指示によ
って得られた値が詳細情報形式と一致しているかどうか
を比較する。詳細情報であれば、履歴情報記憶部18の
データをそのまま履歴データベース22に登録する。こ
こでは、詳細情報形式と一致していないので次の(7)
以降へ進む。
【0075】(7)詳細情報でなければ、データベース
に記載してある方法に基づいて情報を取得する。ここで
は『a.out blue』の指示だけが、詳細情報取得を必要と
しているので、その部分に対応するデータベース情報を
見る。 (8)まず履歴情報記憶部18の中に、デバッグモード
でコンパイルした履歴が残っているかどうかを調べる。
具体的には『cc -g プログラム名』を調べる。
【0076】ここで履歴情報記憶部18は、第1実施例
の(3)〜(5)に示したように、プログラムがコンパ
イルされる度に更新されるので、実質上は履歴情報記憶
部18の先頭の要素を調べれば良い。 (9)デバッグモードでコンパイルしていないので、デ
バッグモードでプログラムをコンパイルし直す。この時
のコンパイルオプション等は履歴情報記憶部18から得
ることができる。
【0077】(10)デバッグモードになったので、デ
バッガを起動し、実行させる。この時の実行オプション
も履歴情報記憶部18から得ることができる。 (11)デバッガでデバッガコマンド『 run』をそのま
ま実行すると、デバッガ『dbx 』の規約から再エラーが
おきるので、そこに至るまでのバックトレースを表示す
るデバッガコマンド『where 』を実行して、その結果を
得る。
【0078】このデバッガコマンド『where 』の代わり
に別のコマンドを実行したい場合は、予め詳細情報収集
用データベース30をその様に登録しておけばよい。こ
れらは、一連の入力として計算機16上のシステムプロ
グラムに送ればよく、詳細情報収集部28は、計算機1
6からの応答結果をつかまえれば良い。 (12)計算機16の情報から詳細情報を得た詳細情報
収集部28は、履歴情報記憶部18のデータに詳細情報
を付加して履歴データベース22に登録する。
【0079】(13)実行部14の情報更新及び、検索
処理部26による検索処理等については、第1実施例の
プログラム作成支援装置10の(6)〜(16)に等し
いので省略する。 7.頻度に基づく情報提示機能付プログラム作成支援装
置(第7実施例) プログラム作成支援装置の第7実施例は、履歴データベ
ースを用いることにより、作成中のプログラムについ
て、頻度の高い障害を見い出し、ユーザに提示するよう
にしたことを特徴とする。
【0080】この第7実施例の装置構成としては、図4
の第1実施例もしくは図24の第6実施例のいずれであ
ってもよい。図4の第1実施例の構成を例にとって処理
動作を説明すると次のようになる。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。
【0081】(2)プログラム作成支援装置10の実行
部14は、ユーザ12から与えられた指示を実行分岐デ
ータベース36の情報に従って解析し履歴情報記憶部1
8を更新する。更新の方法は、第1実施例のプログラム
作成支援装置10における(3)〜(6)に等しいので
省略する。但し、第7実施例では履歴情報記憶部18の
情報を履歴データベース22に登録する際の動作が異な
るので、この部分に関して以下に述べる。
【0082】(4)履歴情報記憶部18に蓄えられてい
る情報は、図8のような形であるとする。ここでは、図
27のような情報が履歴情報記憶部18に蓄えられてい
る場合を考える。 (5)この記憶情報を履歴データベース22に格納する
場合に、実行結果をキーに、比較データベース24の情
報を検索する。この場合の比較データベース24の中味
は第1実施例のプログラム作成支援装置10の場合に比
べ、異なる質の情報を含むので、これを図28に示す。
【0083】(6)比較した結果、記憶情報と比較デー
タデータ24とでは『type missmatch』が一致している
ので、図29に示すように、履歴データベース22の中
の頻度情報のカウント数を増やし、データの履歴データ
ベース22中における履歴番号を参照リストに追加す
る。 (7)ユーザ12からの指示を受け付ける。再コンパイ
ルであれば前記(1)〜(2)を繰り返し、過去の同種
障害検索であれば第1実施例のプログラム作成支援装置
10の場合と同様の処理を行う。ユーザ12からの指示
が頻度情報の提示であれば(8)以降へ進む。
【0084】(8)ユーザ12からの指示と実行結果の
対を取り出す。 (9)分類機能付きの第3実施例における(5)〜
(7)の様に、実行内容と結果の種類による分類が等し
いものを取り出す。 (10)前記(9)で取り出したものに対して、第1実
施例のプログラム作成支援装置10の(9)〜(11)
のように、同種の障害を取り出す。
【0085】(11)第1実施例のプログラム作成支援
装置10の(13)〜(16)のように差分を取り出
し、ユーザ12に提示する。 8.修正案提示機能付プログラム作成支援装置(第8実
施例) プログラム作成支援装置の第8実施例は、履歴データベ
ースを用いることにより、作成中のプログラムについ
て、過去に発生した障害と同種の障害が発生した場合に
は、データベース情報を用いて障害情報修正方法案を推
論して提示する機能を備えたことを特徴とする。
【0086】この第8実施例の構成は、図30に示すよ
うに、図4の第1実施例に、過去の類似性障害を元に現
在の障害に対する修正案を推論する修正法推論部34
と、修正法推論部34において、修正すべきポイントや
現在の障害待ちプログラムに対してどのように適応でき
るかといった情報を保存した推論データベース32が追
加され、他の構成は図4の第1実施例と同じである。
【0087】勿論、図24の第6実施例に修正法推論部
34と推論データベース32を追加してもよい。この第
6実施例の処理動作は次のようになる。 (1)ユーザ12はプログラム作成支援装置10に指示
を与える。
【0088】(2)プログラム作成支援装置10の実行
部14は、ユーザ12から与えられた指示を実行分岐デ
ータベース36の情報に従って解析し、その結果、履歴
情報記憶部18を更新する。更新の方法については、第
1実施例のプログラム作成支援装置10の(3)〜
(6)と同様であるので省略する。 (3)ユーザ12からの指示を受け付ける。再コンパイ
ルや過去の同種障害検索であれば第1実施例のプログラ
ム作成支援装置10の場合と同様であるので省略する。
ユーザ12からの指示が修正案指示の場合は次の(4)
以降へ進む。
【0089】(4)第1実施例のプログラム作成支援装
置10の(13)〜(16)の場合と同様にして、過去
の同種障害に関するプログラムとその修正プログラムの
差分を取り出す。 (5)取り出したプログラム差分と新しいプログラムを
比較する。 (6)プログラム差分は、図12に示したようにして得
ることができる。このようにして取り出した差分を再
び、図31に示す。
【0090】(7)図31のプログラムの差分を新しい
プログラムと比較する。新しいプログラムにおいて、取
り出したプログラム差分の元の方の記述と対応するよう
な記述があるかどうかを調べるため、図32に示すよう
に障害発生箇所を取り出す。 (8)この場合、元のプログラムは、障害の発生した行
そのものを変更することで障害をなくしているので、新
しいプログラムでも障害の発生した行が障害のある行だ
という推定ができる。
【0091】(9)元のプログラムの修正箇所と、新し
いプログラムの障害箇所を比較する。この時、図9に示
した内容の比較データベース24と推論データベース3
2を用いる。この情報を用いて図33に示すように、エ
ラーに内容に『 type 』をいう文字列を含んでいれば、
int,char,float,double,unsignedという単語に注目す
る、という知識を取り出す。
【0092】(10)過去のプログラムの差分、 char char ; → char char1 ; scanf("%c",char) ; → scanf("%c",char1) において、元のプログラムの方に対して、int,char,flo
at,double,unsignedという文字列が含まれているかどう
か調査を行う。この場合は、『char』があるので、この
知識が適応できることが推測できる。
【0093】(11)次に、障害のある行、 scanf("%d",int) ;の中に、int,char,float,double,uns
ignedという文字列が含まれているかどうか調べる。 (12)障害が含まれていなければ、上の文字列と1字
違いの単語があるか調べ、それもなければ2字違いの単
語があるか調べ、といった処理をするが、ここでは文字
列『int 』が含まれているので、それを取り出す。
【0094】(13)『文字列int を修正せよ』という
メッセージと、過去の例として図31に示した差分をユ
ーザ12に提示する。 9.全ての機能を備えたプログラム作成支援装置(第9
実施例) 図34は本発明のプログラム作成支援装置の第9実施例
を示した実施例構成図であり、図4の第1実施例に図2
4の第3実施例の詳細情報収集部32と詳細情報収集用
データベース30を加え、更に図30の第8実施例の修
正法推論部34と推論データベース32を加えたことを
特徴とするもので、第1実施例から第8実施例に示した
全ての機能を備える。 10.ネットワーク結合されたプログラム作成支援装置
(第10実施例) 図35はネットワークで結合されたプログラム開発環境
に適用された本発明のプログラム作成支援装置の実施例
構成図である。
【0095】この実施例では、ユーザが使用する複数の
クライアントマシン100に対し共通に使用されるサー
バマシン200をネットワーク結合する。サーバマシン
200に履歴データベース22、比較データベース2
4、詳細情報収集用データベース30、推論データベー
ス32及び実行分岐データベース36を設ける。一方、
個々のクライアントマシン100側には、実行部14、
履歴情報記憶部18、履歴作成部20、履歴検索部2
6、詳細情報収集部28、修正法推論部34、ユーザイ
ンタフェース部38、及び計算機インタフェース部40
を設ける。
【0096】図35は図34の装置構成をネットワーク
で結合されたプログラム開発環境に適用したものである
が、図4および図24の装置構成についても同様にネッ
トワークで結合されたプログラム開発環境に適用でき
る。またネットワークで結合されたプログラム開発環境
に適用する本発明の他の実施例としては、図35のよう
にサーバマシン200を設けずにクライアントマシン1
00毎に全てのデータベースを設けた状態でネットワー
ク結合してもよい。この場合、特定のクライアントマシ
ン100に設けているデータベースの修正や更新が行わ
れた時には、他のクライアントマシンのデータベースに
ついても同じ修正を加えることで、データベースの整合
性を保つようにする。
【0097】更に、図35に示すように、データベース
をサーバマシン200にまとめておかないで、データベ
ース毎にサーバとするクライアントマシンを異ならせ、
分散してデータベースを保存してもよい。データベース
を分散させれば、それぞれの作業に応じて付加が分散さ
れるメリットがある。 11.プログラム実行支援装置 本発明は前述したプログラム作成支援装置と同様な履歴
データベースの利用により、ユーザプログラム、ツー
ル、コマンド等について、ユーザが与えた因数や、実行
を行ったデレクトリ等の実行環境とコマンドの動作結果
の履歴を対にした履歴データを履歴データベース22で
保存し、過去に発生したと同種の障害が発生した場合に
は、履歴データベース22の情報及び障害の種類(意味
が一致しているかどうか)の情報をもつ比較データベー
ス24の情報を用いて、過去の類似障害発生時における
対処方法をユーザに提示するプログラム実行支援装置を
実現することができる。
【0098】このプログラム実行支援装置は個々の装置
とする以外に、図34に示したと同様に、ネットワーク
で結合された計算機実行環境についても適用できる。 12.プログラム作成支援装置の実例 図36はユーザが本発明のプログラム作成支援装置を利
用してあるプログラムを作成した時のユーザ提示データ
を示した説明図である。プログラム全体と動作結果をユ
ーザに提示するようにしている。
【0099】最初に作成したプログラム版1の内容は次
の通りである。 [プログラム] [説明] 01 main() { 関数定義 02 int i ; 数字型i を定義 03 char char ; 文字型charを定義 04 scanf("%d",i) ; 数字を読込み 05 scanf("%c",char) ; 文字を読込み 06 printf("%d %c\n",i,char1); 読込んだ数字と文字を印刷 07 return ;} このプログラムの中には次の5つの誤りがある。
【0100】(1)3行目の後半の『char』は『char1
』としなければならない。 (2)4行目の『char』も『char1 』としなければなら
ない。 (3)5行目の『char』も『char1 』としなければなら
ない。 (4)4行目の『i』はデータアドレスを示す『&i』と
しなければならない。 (5)5行目の『char』はデータアドレスを示す『&cha
r 』としなければならない。 まず最初に作成したプログラム版1をユーザが指示『cc
test.c 』を与えてシステムプログラムによりコンパイ
ルすると、右側の動作内容に示すメッセージがユーザに
提示される。
【0101】このメッセージを見てユーザがプログラム
版2の星印の行を変更し、再度、ユーザがコンパイルを
指示するとすると2行目に動作内容としてのエラーメッ
セージが出される。続いてユーザが詳細情報を収集する
処理を指示すると、プログラム版3に示す動作内容が提
示される。この動作内容は、まずユーザが詳細情報収集
のため指示『cc -g test.c』を与えて実行『a.out 』指
示し、続いて入力データ『1』と『a』を与えると、エ
ラーメッセージ『Sebmentation fault 』が出される。
その後は次のようになる。 (1)実行ファイルの a . outに対してデバッガ abxを
呼び出す。
【0102】(2)デバッガ用の情報を読み込んでいる
というメッセージを示す。 (3)9つのシンボル(デバッガ用の情報)を読み込ん
だというメッセージを示す。 (4)実行ファイル中で定義されている関数 main が
-g オプション(デバッグ用情報を作るコンパイル時の
オプション)を用いないでコンパイルされているという
メッセージを示す。
【0103】(5)どこを実行中(バックトレース情
報)を問い合わせているコマンドを示す。この場合は、
エラー「Segmentation fault」を起こした場所からの情
報となる。 (6)命令アドレス 0x2290 の関数 main 中の命令を実
行中であったというメッセージを示す(mainは一番最初
に呼ばれる関数なので、その呼び出し元情報はない)。
【0104】(7)実行中(この場合、エラーを起こし
た時に実行中であった)の命令に対応する場所から10
行のソースプログラムを出力せよというコマンドを示
す。 (8)ソースプログラムの先頭を示す。後半は省略。実
際のデバッガでは10行分出力される。 (9)変数iの値を出力せよというコマンドを示す。
【0105】(10)前記(9)の命令を実行しようと
した時に、データのアドレスがありえない値であるとい
うメッセージを示す。このメッセージによりエラー詳細
が提示される。 (11)デバッガを終了するコマンド。 ここで(2)(3)(4)(6)(8)(10)はシス
テムが出力し、(1)(5)(7)(9)(11)はユ
ーザが入力する。
【0106】このようなプログラム版3に示す動作結果
から詳細情報として4行目と5行目のデータのアドレス
がエラーであるとの提示に基づき、プログラム版4に示
すよ4行目のエラーを『&i』と修正し、また5行目のエ
ラーを『&char1』と修正することで、正常に実行できる
ことが動作結果から判る。図37は、図36の実行結果
に変えてシステムプログラムの処理内容と実行結果を提
示する例であり、実行内容を判断しなくとも結果のみが
判り、動作内容に関する知識が不足している場合に効果
的である。
【0107】図38は図37のプログラム全体の表示に
対しプログラム差分を表示するようにしたことを特徴す
る。このようにプログラム差分を表示すると、プログラ
ム版毎の変更部分が明らかになり、どのように修正して
いったかの過程が容易に判る。図39は図37に更にユ
ーザコメントを付加した例であり、エラー内容が適確に
把握できる。
【0108】図40はプログラム差分について図39と
同様にユーザコメントを付加した例である。更に、図4
1,図42及び図43は、図36〜図40の具体例を提
示するために使用された履歴データベースの格納履歴デ
ータの具体例を示したもので、図41はプログラム版1
〜4、即ちpl−0〜3の変更履歴データであり、また
図42はユーザコメントの登録ファイルであり、更に図
43は分類テーブル、コンパイラー履歴及び実行エラー
履歴の内容とポインタの張り付けを示している。
【0109】尚、上記の実施例はC言語のプログラム作
成を例にとるものであったが、任意のプログラム言語に
つき本発明をそのまま適用することができる。
【0110】
【発明の効果】以上説明したように本発明によれば、過
去のプログラム作成途中のより適切なノウハウ、即ち、
個人の癖、分野に特有のテクニック、仕様変更等の状態
変化時点特有のものなどについての適切かつ最新のもの
を誰もが利用できるため、非熟練者においては効率のよ
いプログラム開発を行うことができ、また熟練者におい
ては非熟練者の教育に費やしていた時間が不要となり、
効率のよいソフトウェア開発作業が可能となる。
【0111】またユーザコメントを付加しすることで、
よりわかりやすい情報を得ることができ、分類機能によ
って障害検索が高速に実行でき、更に時系列情報による
障害履歴の検索により、仕様変更などによる一時的に集
中する時系列の状態にもっともふさわしい情報を得るこ
とができる。また、プログラマの個人情報をもつことに
より、本人の癖などの特徴を反映したより利用しやすい
情報を得たり、熟練者の簡潔かつ効率のよい修正方法を
利用することができる。
【0112】また、詳細情報の自動取得により、より状
態の似ている場合の情報を得ることができる。更に、発
生頻度の高い障害を通知することにより、実際に計算機
上でプログラムを実行し負荷をかける前に、間違いやす
い部分を予防することができ、計算機資源を効率よく利
用することができる。
【0113】更にまた、修正案の提示により、より早く
障害を回復させることが可能となる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】ネットワーク結合した本発明の原理説明図
【図3】本発明の作用説明図
【図4】本発明の基本構成を示した実施例構成図
【図5】障害を含む作成プログラムの例を示した説明図
【図6】図5のプログラムのコンパイル結果を示した説
明図
【図7】図4の実行分岐データベース24の説明図
【図8】図4の履歴情報記憶部18の説明図
【図9】図4の履歴検索部20の処理動作を示した説明
【図10】履歴データベース24内情報の説明図
【図11】プログラム通し番号に対するエラー有無を示
すリスト説明図
【図12】本発明におけるプログラム差分の説明図
【図13】図4の実行分岐用データベース36の情報例
の説明図
【図14】図4の履歴情報記憶部18の変移の様子を示
した説明図
【図15】図4の履歴検索部26の処理動作を示した説
明図
【図16】ユーザコメントを付加した履歴データベース
内情報の説明図
【図17】データ分類機能付き実施例に用いる履歴情報
記憶部18のデータ説明図
【図18】データ分類機能付き実施例に用いる実行分岐
用データベース36の情報列の説明図
【図19】時系列情報を利用する実施例に用いる履歴情
報の説明図
【図20】時系列情報を利用する実施例で作成される時
系列リストの説明図
【図21】図20に新たな時系列リストを挿入する説明
【図22】図21のリスト挿入結果を示した説明図
【図23】作成者名情報の利用の実施例で用いられる履
歴データベース内情報の説明図
【図24】詳細情報を収集する機能を備えた実施例構成
【図25】図24の実施例における履歴情報記憶部18
のデータ説明図
【図26】図24の実施例における詳細情報収集部の実
施例構成図
【図27】頻度に基づく情報提示機能を備えた実施例で
用いる履歴情報記憶部18のデータ説明図
【図28】頻度に基づく情報提示機能を備えた実施例で
用いる比較データベース24のデータ説明図
【図29】頻度に基づく情報提示機能を備えた実施例で
用いる履歴データベース22のデータ説明図
【図30】修正案提示機能付きの実施例構成図
【図31】図30の実施例の説明に用いるプログラム差
分の説明図
【図32】新しく作成したプログラムの障害発生箇所を
示した説明図
【図33】図30の実施例における推論データベース3
2を用いた処理説明図
【図34】全ての機能を備えた実施例構成図
【図35】ネットワーク結合された実施例構成図
【図36】全プログラムと動作結果の対をユーザに提示
する例を示した説明図
【図37】全プログラム、処理内容及び実行結果の対を
ユーザに提示する例を示した説明図
【図38】プログラム差分、処理内容及び実行結果の対
をユーザに提示する例を示した説明図
【図39】全プログラム、処理内容、実行結果及びユー
ザコメントの対をユーザに提示する例を示した説明図
【図40】プログラム差分、処理内容、実行結果及びユ
ーザコメントの対をユーザに提示する例を示した説明図
【図41】データ分類機能付きの実施例で用いる履歴デ
ータベースで保存している変更履歴情報の説明図
【図42】データ分類機能付きの実施例で用いる履歴デ
ータベースで保存しているユーザコメントの例を示した
説明図
【図43】データ分類機能付きの実施例で用いる履歴デ
ータベースで保存している分類テーブル、コンパイラー
履歴及び実行エラー履歴の例を示した説明図
【符号の説明】
10:プログラム作成支援装置 12:ユーザ 14:実行部 16:計算機(システムプログラム) 18:履歴情報記憶部 20:履歴作成部 22:履歴データベース 24:比較データベース 26:履歴検索部 28:詳細情報収集部 30:詳細情報収集用データベース 32:推論データベース 34:修正法推論部 100:ユーザマシン 200:サーバマシン

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】ユーザ12の指示に応じた各種の処理を実
    行する実行部14と、 ユーザ12の指示及び実行部14により作成中のプログ
    ラムを上位計算機16のシステムプログラムで動作させ
    た際の動作結果の履歴を記憶する履歴情報記憶部18
    と、 作成中のプログラム全体と前記履歴情報記憶部18の動
    作結果の履歴とを対にした履歴データを作成する履歴作
    成部20と、 該履歴作成部20で作成した履歴データを保存する履歴
    データベース22と、 どういう障害が同種の障害であるかを示す類似障害情報
    を保存した比較データベース24と、 作成中のプログラムを上位計算機16のシステムプログ
    ラムにより実行して障害が発生した場合には、過去に発
    生した同種の類似障害を前記比較データベース24から
    検索すると共に、該類似障害発生時における過去の対処
    方法を前記履歴データベース22から検索してユーザ1
    2に提示する履歴検索部26と、を備えたことを特徴と
    するプログラム作成支援装置。
  2. 【請求項2】ユーザ12の指示に応じた各種の処理を実
    行する実行部14と、 ユーザ12の指示および前記実行部14により作成中の
    プログラムを上位計算機16のシステムプログラムで動
    作させた際の動作結果の履歴を記憶する履歴情報記憶部
    18と、 初版プログラムに対するそれ以降のプログラムの変更及
    び修正部分となるプログラム差分と前記履歴情報記憶部
    18の動作結果の履歴とを対にした履歴データを作成す
    る履歴作成部20と、 該履歴作成部20で作成した履歴データを保存する履歴
    データベース22と、 どういう障害が同種の障害であるかを示す類似障害の情
    報を保存した比較データベース24と、 作成中のプログラムを上位計算機16のシステムプログ
    ラムにより実行して障害が発生した場合には、過去に発
    生した同種の類似障害を前記比較データベース24から
    検索すると共に、該類似障害発生時における過去の対処
    方法を前記履歴データベース22から検索してユーザ1
    2に提示する履歴検索部26と、を備えたことを特徴と
    するプログラム作成支援装置。
  3. 【請求項3】請求項1、2記載のプログラム作成支援装
    置に於いて、 複数の計算機をネットワークで結合したプログラム開発
    環境を構築し、前記履歴データベース22及び比較デー
    タベース24をサーバとして機能するネットワーク内の
    1つの計算機上に保存すると共に、ネットワーク内の他
    の全ての計算機に、前記実行部14、履歴情報記憶部1
    8、履歴作成部20及び履歴検索部26を設け、作成中
    のプログラムを実行した際に障害が発生した場合には、
    前記履歴データベース22及び比較データベース24を
    共通に用いて過去の類似障害発生時における対処方法を
    ユーザ12に提示することを特徴とするプログラム作成
    支援装置。
  4. 【請求項4】請求項1、2記載のプログラム作成支援装
    置に於いて、 複数の計算機をネットワークで結合したプログラム開発
    環境を構築し、ネットワーク内の全ての計算機に、前記
    実行部14、履歴情報記憶部18、履歴作成部20、履
    歴データベース22、比較データベース24及び履歴検
    索部26を設け、各計算機で作成中のプログラムを実行
    した際に障害が発生した場合には、自己の履歴データベ
    ース22及び比較データベース24を共通に用いて過去
    の類似障害発生時における対処方法をユーザ12に提示
    し、 ネットワーク内のいずれかの計算機の履歴データベース
    22及び比較データベース24に修正が加わった場合に
    は残りの計算機の履歴データベース22及び比較データ
    ベース24にも同じ修正を施して分散したデータの整合
    性を保つことを特徴とするプログラム作成支援装置。
  5. 【請求項5】請求項1、2記載のプログラム作成支援装
    置に於いて、 複数の計算機をネットワークで結合したプログラム開発
    環境を構築し、前記履歴データベース22及び比較デー
    タベース24をネットワーク内の異なる計算機上に個別
    に保存すると共に、ネットワーク内の他の全ての計算機
    に、前記実行部14、履歴情報記憶部18、履歴作成部
    20及び履歴検索部26を設け、作成中のプログラムを
    実行した際に障害が発生した場合には、前記履歴データ
    ベース22及び比較データベース24を共通に用いて過
    去の類似障害発生時における対処方法をユーザ12に提
    示することを特徴とするプログラム作成支援装置。
  6. 【請求項6】請求項1、2、3、4、及び5記載のプロ
    グラム作成支援装置に於いて、 前記履歴作成部20は、全てのプログラムもしくはプロ
    グラム差分の代わりに、障害が修正されたり新しい障害
    が生じたなどの障害発生状態に変化があった時のデータ
    だけを前記履歴データベース22に登録して保存してお
    くことを特徴とするプログラム作成支援装置。
  7. 【請求項7】請求項1、2、3、4、及び5記載のプロ
    グラム作成支援装置に於いて、 前記履歴作成部20は、ユーザ12のコメントを前記実
    行部14を介して履歴情報記憶部18に対話的に獲得
    し、プログラムもしくはプログラムの差分と動作結果の
    履歴、更にユーザコメントを対にして前記履歴データベ
    ースに登録して保存しておくことを特徴とするプログラ
    ム作成支援装置。
  8. 【請求項8】請求項1、2、3、4、及び5記載のプロ
    グラム作成支援装置に於いて、 前記履歴情報記憶部18は、プログラムの動作結果の種
    類を、同種の障害をまとめておく、同一の原因から発生
    した障害を関連づけておく等の予め与えられた方法に従
    って分類整理して記憶することを特徴とするプログラム
    作成支援装置。
  9. 【請求項9】請求項1、2、3、4、及び5記載のプロ
    グラム作成支援装置に於いて、 前記履歴検索部26は、履歴データベース22に保存さ
    れた過去の障害のうち、新しい方から、古い方から、仕
    様変更による修正時の障害発生時点等の時系列の情報に
    従って対処方法を順に検索して提示することを特徴とす
    るプログラム作成支援装置。
  10. 【請求項10】請求項1、2、3、4、及び5記載のプ
    ログラム作成支援装置に於いて、 前記履歴作成部20は、履歴データにプログラマの個人
    情報を付加して前記履歴データベース22に保存し、前
    記履歴検索部26は指定した個人の障害履歴情報を優先
    的に検索して提示することを特徴とするプログラム作成
    支援装置。
  11. 【請求項11】請求項1、2、3、4、及び5記載のプ
    ログラム作成支援装置に於いて更に、 望む形の障害情報がとれない状態で実行されたプログラ
    ムに関しては、自動的に望む形の詳細情報をとれる状態
    にした後、プログラムの実行の指示を繰り返して再び障
    害を発生させて詳細情報を障害情報として収集する詳細
    情報収集部28と、 該詳細情報収集部28で収集した詳細情報を登録して保
    存する詳細情報収集用データベース30と、を設けたこ
    とを特徴とするプログラム作成支援装置。
  12. 【請求項12】請求項1、2、3、4、及び5記載のプ
    ログラム作成支援装置に於いて、 前記履歴検索部26は、前記履歴データベース22を検
    索することで、作成中のプログラムについて頻度の高い
    障害を見出してユーザに通知することをことを特徴とす
    るプログラム作成支援装置。
  13. 【請求項13】請求項1、2、3、4、及び5記載のプ
    ログラム作成支援装置に於いて更に、 作成中のプログラムの実行により、過去に発生した障害
    と同種の類似障害が発生した場合に、推論データベース
    32の推論データを用いて障害修正方法案を推論して提
    示する修正推論部34を設けたことを特徴とするプログ
    ラム作成支援装置。
  14. 【請求項14】ユーザ12の指示に応じた各種の処理を
    実行する実行部14と、 コマンドの動作結果の履歴を記憶する履歴情報記憶部1
    8と、 ユーザプログラムやツール、コマンドについて、与えた
    引数や実行を行ったディレクトリなどの実行環境と前記
    履歴情報記憶部18のコマンドの動作結果の履歴を対に
    した履歴データを作成する履歴作成部20と、 該履歴作成部20で作成した履歴データを保存する履歴
    データベース22と、 どういう障害が同種の障害であるかを示す類似障害情報
    を保存した比較データベース24と、 コマンドの実行により障害が発生した場合には、過去に
    発生した同種の類似障害を前記比較データベース24か
    ら検索すると共に、該類似障害発生時における過去の対
    処方法を前記履歴データベース22から検索してユーザ
    12に提示する履歴検索部26と、を備えたことを特徴
    とするプログラム実行支援装置。
  15. 【請求項15】請求項14記載のプログラム実行支援装
    置に於いて、 複数の計算機をネットワークで結合したプログラム実行
    環境を構築し、前記履歴データベース22及び比較デー
    タベース24をサーバとして機能するネットワーク内の
    特定の計算機上に保存すると共に、ネットワーク内の他
    の全ての計算機に、前記実行部14、履歴情報記憶部1
    8、履歴作成部20及び履歴検索部26を設け、作成中
    のプログラムを実行した際に障害が発生した場合には、
    前記履歴データベース22及び比較データベース24を
    共通に用いて過去の類似障害発生時における対処方法を
    ユーザ12に提示することを特徴とするプログラム実行
    支援装置。
JP32843691A 1991-12-12 1991-12-12 プログラム作成支援装置及びプログラム実行支援装置 Withdrawn JPH06103047A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32843691A JPH06103047A (ja) 1991-12-12 1991-12-12 プログラム作成支援装置及びプログラム実行支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32843691A JPH06103047A (ja) 1991-12-12 1991-12-12 プログラム作成支援装置及びプログラム実行支援装置

Publications (1)

Publication Number Publication Date
JPH06103047A true JPH06103047A (ja) 1994-04-15

Family

ID=18210251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32843691A Withdrawn JPH06103047A (ja) 1991-12-12 1991-12-12 プログラム作成支援装置及びプログラム実行支援装置

Country Status (1)

Country Link
JP (1) JPH06103047A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163020A (ja) * 2000-11-27 2002-06-07 Matsushita Electric Works Ltd プログラマブルコントローラにおける異常検出方法およびその装置
JP2006099249A (ja) * 2004-09-28 2006-04-13 Fujitsu Ltd 障害管理装置および障害管理方法
WO2011068015A1 (ja) * 2009-12-02 2011-06-09 コニカミノルタホールディングス株式会社 システム構築支援方法
US8099626B2 (en) 2008-05-30 2012-01-17 Fujitsu Limited Recovery method management device, recovery method management method and computer product for recovering a failure of IT system
JP2014027395A (ja) * 2012-07-25 2014-02-06 Nippon Telegr & Teleph Corp <Ntt> 故障原因特定支援装置、方法およびプログラム
CN113874802A (zh) * 2019-06-03 2021-12-31 欧姆龙株式会社 控制系统、可编程逻辑控制器以及信息处理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163020A (ja) * 2000-11-27 2002-06-07 Matsushita Electric Works Ltd プログラマブルコントローラにおける異常検出方法およびその装置
JP2006099249A (ja) * 2004-09-28 2006-04-13 Fujitsu Ltd 障害管理装置および障害管理方法
US8099626B2 (en) 2008-05-30 2012-01-17 Fujitsu Limited Recovery method management device, recovery method management method and computer product for recovering a failure of IT system
WO2011068015A1 (ja) * 2009-12-02 2011-06-09 コニカミノルタホールディングス株式会社 システム構築支援方法
JP2014027395A (ja) * 2012-07-25 2014-02-06 Nippon Telegr & Teleph Corp <Ntt> 故障原因特定支援装置、方法およびプログラム
CN113874802A (zh) * 2019-06-03 2021-12-31 欧姆龙株式会社 控制系统、可编程逻辑控制器以及信息处理方法
CN113874802B (zh) * 2019-06-03 2024-04-12 欧姆龙株式会社 控制系统、可编程逻辑控制器以及信息处理方法

Similar Documents

Publication Publication Date Title
US7254810B2 (en) Apparatus and method for using database knowledge to optimize a computer program
US7437717B1 (en) Techniques for software configuration tracking
US7120901B2 (en) Method and system for tracing and displaying execution of nested functions
US6701519B1 (en) Managing hardware and software configuration information of systems being tested
US8028278B2 (en) Method of generating and utilizing debug history
CA2701969C (en) Systems and methods for identifying a relationship between multiple interrelated applications in a mainframe environment
Di Lucca et al. WARE: A tool for the reverse engineering of web applications
US9207952B2 (en) Semantic mapping of objects in a user interface automation framework
KR100655124B1 (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스
Chen et al. Ciao: A graphical navigator for software and document repositories
US20030056192A1 (en) Source code analysis system and method
EP2228726B1 (en) A method and system for task modeling of mobile phone applications
US8539282B1 (en) Managing quality testing
CN110928772A (zh) 一种测试方法及装置
EP1145119A1 (en) Method and apparatus for executing pl/sql stored code objects in a database
KR19990023212A (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법 및 시스템
US7562342B2 (en) Method and apparatus for incrementally processing program annotations
US7376937B1 (en) Method and mechanism for using a meta-language to define and analyze traces
Van Deursen et al. Research issues in the renovation of legacy systems
WO2017164856A1 (en) Comparable user interface object identifications
Ormenisan et al. Implicit provenance for machine learning artifacts
US20030177414A1 (en) Model for performance tuning applications
JPH06103047A (ja) プログラム作成支援装置及びプログラム実行支援装置
Ostrand et al. A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files.
Chu et al. Reverse engineering

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990311