JP2001249828A - 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム - Google Patents

情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム

Info

Publication number
JP2001249828A
JP2001249828A JP2000396112A JP2000396112A JP2001249828A JP 2001249828 A JP2001249828 A JP 2001249828A JP 2000396112 A JP2000396112 A JP 2000396112A JP 2000396112 A JP2000396112 A JP 2000396112A JP 2001249828 A JP2001249828 A JP 2001249828A
Authority
JP
Japan
Prior art keywords
program
user
solution
task
execution
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
Application number
JP2000396112A
Other languages
English (en)
Inventor
Akira Sawaoka
明 澤岡
Nobuyuki Yamauchi
信之 山内
Natsumi Matsumoto
奈津美 松本
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.)
Toshiba Corp
Kioxia Systems Co Ltd
Original Assignee
Toshiba Corp
Toshiba Memory Systems Co 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 Toshiba Corp, Toshiba Memory Systems Co Ltd filed Critical Toshiba Corp
Priority to JP2000396112A priority Critical patent/JP2001249828A/ja
Priority to US09/752,837 priority patent/US6901535B2/en
Publication of JP2001249828A publication Critical patent/JP2001249828A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 対話形式でユーザーから指摘された不具合箇
所とプログラムの実行履歴情報から不具合要因と解決策
を特定し、これをユーザーに提示し、また、特定した不
具合要因と解決策から、該不具合を解決したプログラム
を生成してユーザーに提示する。 【解決手段】 プログラムの実行履歴情報をもとに、該
プログラムの動作状況を時系列にユーザーに表示する表
示手段と、表示された動作状況の中でユーザーが不具合
の箇所を指定するための入力手段と、前記入力手段によ
ってユーザーから指定された不具合の箇所と該プログラ
ムの動作状況から該不具合要因を解析し、この不具合要
因を解決するための解決策を特定する動作解析手段と、
を有し、前記動作解析手段は、特定した解決策を反映さ
せた前記動作状況を再作成し、前記表示手段は、前記不
具合要因と前記解決策と再作成した動作状況とをユーザ
ーに表示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リアルタイムOS
(Real-Time Operating System)等で動作するマルチタ
スク・プログラムのテストやデバッグなどに利用される
情報処理装置、不具合解析プログラムを格納したコンピ
ュータ読み取り可能な記憶媒体、不具合解析方法、及び
アプリケーションプログラム開発支援システムに関す
る。
【0002】
【従来の技術】TRON(The Real-time Operating sy
stem Nucleus)に代表されるリアルタイムOSの適用範
囲は、マイクロプロセッサ技術の発展により拡大の一途
をたどっており、産業用途のみならず、通信機器やオフ
ィス機器などの業務機器分野、家電や携帯電話などの民
生用機器などへも急激に拡大している。
【0003】一般に、このようなリアルタイムOS配下
で実行されるマルチタスク方式のアプリケーション・プ
ログラムの不具合解析をするために、各プログラムの動
きを追跡するのは容易でない。リアルタイムOSでは、
特定のタイミングで動作するタスクを次々と切り替えて
いくことによって、複数のプログラムを動かすマルチタ
スク方式が採られているため、一つのプログラムを追う
だけでは解析できないからである。
【0004】そのため、プログラムの動作を追跡する機
能を有するOSが開発され、プログラムの動作状況を解
析するためのひとつの手掛りとして、プログラムの実行
履歴情報が用いられている。図42に示すように、プロ
グラムの実行履歴情報4は、プログラム動作の追跡機能
を有するOS101によってOS101のメモリ上に出
力されたり、更にデバッガ102等の開発ツールによっ
てデバッガ102等が持つメモリ上に出力されたりす
る。
【0005】図44に、μITRON(Micro Industri
al TRON )仕様のプログラム実行履歴情報を例示する。
図44(a)は、システムコール発行履歴のフォーマッ
ト例であり、1レコードで1事象を表し、機能のタイプ
(type)、発行元タスク(oid)、システムコールの種
類(sysid)、発行先タスク(obj)で構成されている。
出力される実行履歴情報の種類としては、このようなシ
ステムコール発行履歴の他に、タスク切り換え履歴、ハ
ンドラ実行履歴などがある。
【0006】図44(b)は、OS101やデバッガ1
02等によってメモリ上に出力された実行履歴データの
例である。(i)は、タスク切り換えが行われたことを
表しており、アイドル状態(タスク=0)からタスク1
(タスク=1)に制御が移行している。(ii)は、シス
テムコールが発行されたことを表しており、タスク1
(oid=1)からsta_tsk(sysid=-19)という種類のシス
テムコールがタスク2(obj=2)に対して発行されてい
る。
【0007】
【発明が解決しようとする課題】上述したように、プロ
グラムの実行履歴をデータとして保存することができる
ようになり、プログラムの不具合を解析するための手掛
りとして利用されているが、以下のような問題がある。
【0008】第1に、コントローラのメモリ容量の関係
から、履歴情報を採取できる量には制限があり、実際に
は図43のように、履歴情報を細切れに保存することに
なってしまう。特に、ローコストを目指したシステムの
場合、このメモリ容量はかなり限定されてしまう。
【0009】第2に、出力される履歴情報は、図44に
示したように、主に数字からなる文字の羅列であり、し
かも大量に出力されがちであることから、この履歴情報
を手掛りにプログラムの動作軌跡を辿って不具合を解析
することは、大変困難である。
【0010】その結果、プログラムの不具合解析には、
依然として多大な時間を要し、開発コストや開発期間な
どに大きな影響を与えていた。
【0011】また、従来、ある実行環境向けに行うプロ
グラミング段階において、その実行環境管理下にある資
源の状態変化を把握することや、プログラミング内容の
整合性判定、そして実行環境ハードウェアが持つ割り込
み機能等を考慮しながらプログラミングすることはでき
ても、その整合性を確認する術がなく、実際にそのプロ
グラムから作成される実行オブジェクトを、実行環境と
同じ条件で実行させ、アプリケーションシステムの振る
舞いを確認する方法が取られている。
【0012】しかしながら、上述した従来の方法では、
単純なプログラミングミスも実行オブジェクトを実際に
実行させないと、そのミスが判明しないという問題があ
った。
【0013】そこで、本発明はこのような課題を解決す
るためになされたものであって、対話形式でユーザーか
ら指摘された不具合箇所とプログラムの実行履歴情報か
ら、不具合要因と解決策を特定し、これをユーザーに提
示することができる情報処理装置、及び情報処理装置に
搭載される不具合解析プログラムを格納したコンピュー
タ読み取り可能な記憶媒体を提供することを目的とす
る。
【0014】本発明の第2の目的は、前記特定した不具
合要因と解決策から、該不具合を解決したプログラムを
生成してユーザーに提示することができる情報処理装
置、及び情報処理装置に搭載される不具合解析プログラ
ムを格納したコンピュータ読み取り可能な記憶媒体を提
供することを目的とする。
【0015】更に、本発明の第3の目的は、プログラミ
ング段階において、その実行環境の動作規則に従いアプ
リケーションシステムの振る舞いを視覚的に確認し、早
期にプログラミングの不整合発見を行い、作業行程の戻
りを低減させることにより、効率的なアプリケーション
システム開発を可能とすることのできるアプリケーショ
ン開発システムを提供することを目的とする。
【0016】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、プログラムの実行履歴情報をもとに、該
プログラムの動作状況を時系列にユーザーに表示する表
示手段と、表示された動作状況の中でユーザーが不具合
の箇所を指定するための入力手段と、前記入力手段によ
ってユーザーから指定された不具合の箇所と該プログラ
ムの動作状況から該不具合要因を解析し、この不具合要
因を解決するための解決策を特定する動作解析手段とを
有し、前記動作解析手段は、解決策を反映させた前記動
作状況を再作成し、前記表示手段は、前記不具合要因と
前記解決策と再作成した動作状況とをユーザーに表示す
ることを特徴とする。
【0017】このとき、前記解決策を反映させる箇所を
特定することができない場合には、更に、ユーザーによ
って該解決策を反映させる箇所を指定させ、前記動作解
析手段は、この指定された箇所に該解決策を反映させた
前記動作状況を再作成し、前記表示手段は、前記不具合
要因と解決策と再作成した動作状況とをユーザーに表示
することを特徴とする。
【0018】更にまた、前記解決策と前記実行履歴情報
とをもとに、本来の仕様を満たすプログラムのスケルト
ンを自動生成することを特徴とする。
【0019】本発明により、対話形式により、ユーザー
から指摘された不具合箇所とプログラムの実行履歴情報
から不具合要因と解決策を特定し、これをユーザーに提
示することができる。
【0020】また、前記特定した不具合要因と解決策か
ら、該不具合を解決したプログラムを生成して同様にユ
ーザーに提示することができる。
【0021】更にまた、本発明は、ハードウェア資源上
で実行されるアプリケーションプログラムの開発に用い
られる開発支援システムにおいて、前記ハードウェア資
源、およびソフトウェア部品を含む実行環境での実行時
におけるシステム環境と、該実行環境の動作規則を定義
する環境定義部と、環境定義に基づいて前記実行環境に
おけるアプリケーションプログラムの仮想的な実行状態
(以下「仮想実行状態」という。)を検証するチェック
部と、前記仮想実行状態を可視的に表示するための表示
情報を作成する表示情報作成部とを有することを特徴と
する。
【0022】本発明においては、前記表示情報を表示さ
せる表示装置と、前記表示装置の表示画面上に形成さ
れ、可視的に表示された前記仮想実行状態を変化させる
操作を該表示画面上で操作するインターフェース部とを
設けることが好ましい。
【0023】このような本発明によれば、実行環境の動
作規則等の環境定義に従い、実際のハードウェア資源上
における実行状態を再現することができ、これによりア
プリケーションシステムの振る舞いを検証することがで
きるため、従来方法よりも早期のプログラミングの不整
合発見が行うことができ、作業行程の戻りも少なくなり
効率的なアプリケーション開発が可能となる。
【0024】本発明のその他の目的、特徴、効果は、以
下で図面を参照して述べる詳細な説明により、一層明ら
かになるものである。
【0025】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施形態について説明する。
【0026】図1は本発明に係る情報処理装置の一実施
形態を示す概略構成図であり、図2は本発明に係る情報
処理装置に搭載される不具合解析プログラムを格納した
コンピュータ読み取り可能な記憶媒体の処理の流れを示
した流れ図である。
【0027】図1において、この情報処理装置は、ユー
ザー5からの入力11を受付け、又ユーザー5に情報を
提示12するユーザーインタフェース部1と、ユーザー
インタフェース部1が受付けたユーザー5からの入力情
報を解析してタスク動作判定部3に送る要求解析部2
と、実行履歴ファイル4に格納されているプログラムの
実行履歴情報11とシステムコール対応テーブル7とタ
スク動作判定部3からの情報をもとにプログラムの不具
合要因とその解決策を特定し、各種解析結果情報をユー
ザーインタフェース部1に送り、さらに解析結果情報か
ら不具合を解決するプログラムを生成してプログラムフ
ァイルに出力するタスク動作判定部3とから構成され
る。
【0028】続いて、図2をもとに、全体の処理の流れ
を説明する。
【0029】ユーザーインタフェース部1は、予めタス
ク動作判定部3がプログラムの動作履歴情報11をもと
に作成した検証データ14(図3)をユーザー5に表示
する(ST01)。ユーザー5は表示された検証データ14
を見て、動作的に不具合がないと確認した場合、処理を
終了する(ST04)。一方、ユーザー5は表示された検証
データ14の中に不具合を発見した場合、その不具合箇
所を指摘する(ST05)。ユーザーインタフェース部1
は、ユーザー5が入力した不具合の箇所12を、要求解
析部2に転送する(ST06)。
【0030】次に、要求解析部2は、ユーザーインタフ
ェース部1から受取ったユーザー5が入力した指摘箇所
12と先にタスク動作判定部3が作成した検証データ1
4から、比較データ13(図4)を作成し(ST07)、作
成した比較データ13をタスク動作判定部3に転送する
(ST08)。
【0031】次に、タスク動作判定部3は、要求解析部
2から受取った比較データ13と先に作成しておいた検
証データ14とを比較して、要求タスクの状態を検索し
(ST09)、不具合の要因を解析する(ST10)。タスク動
作判定部3は不具合の要因を特定したら、不具合を解決
する機能を検証データ14に反映させた上で、検証デー
タ14をユーザーインタフェース部1に転送する(ST1
1)。続いて、タスク動作判定部3は、判定結果データ
1(図5)及び判定結果データ2(図6)を作成してユ
ーザーインタフェース部1に転送する(ST12)。
【0032】ここまでで不具合が全て解決されていて
(ST13)、且つ処理終了をする場合(ST15)には、ST11
で更新した検証データ14をもとに不具合を解決した正
常プログラム・ソース18を生成し(ST16)、ユーザー
インタフェース部1に制御を戻す。一方、未解決の不具
合要因が残っている場合(ST14)、不具合を解決するた
めにユーザーに問い合せる不具合解決用質問データ17
(図7)を作成し、ユーザーインタフェース部1に転送
し(ST14)、ユーザーインタフェース部1に制御を戻
す。
【0033】以上説明したST01からST16までの処理を、
プログラムの不具合が解決されて処理を終了するまで繰
り返す。
【0034】次に、実際に不具合が存在するプログラム
例に基づいて、本発明の不具合解析プログラムを格納し
たコンピュータ読み取り可能な記憶媒体を搭載した情報
処理装置の処理動作について、更に詳細に説明する。
【0035】ここでは、μITRON3.0仕様のリア
ルタイムOS配下で動作するアプリケーション・プログ
ラムを例に説明する。
【0036】(第1実施例)本実施例では、アラーム機
能付きの時計のプログラムを想定する。本プログラムで
使用するタスクは以下の3本である。
【0037】 (1)startup (task_ID=1,priorty=1)[アラーム設
定モード] (2)タスクA(task_ID=2,priorty=3)[ノーマルモ
ード] (3)タスクB(task_ID=3,priorty=2) 本プログラムは、アラームを設定すると(アラーム設定
モードを処理すると)、ノーマルモードに移行し、その
後処理を終了するものであり、本来は図8に示すタイム
チャートのような動作を想定して作成されたアプリケー
ション・プログラムである。従って、例えば処理終了時
点を注目してみると、タスクA(ノーマルモード)で処
理が終了する、つまりその時点での最終実行タスクはタ
スクAである、というのがこのプログラムの本来の仕様
である。
【0038】ところが、実際にこのプログラムを動作さ
せてみたところ、図9に示すような結果が得られたとす
る。実行結果の処理終了時点を注目してみると、startu
p タスク(アラーム設定モード)で処理が終了してい
る。すなわち、このプログラムは本来の仕様を満たして
いない、このプログラムには不具合が潜在しているとい
うことである。
【0039】このような状況において、ユーザー5は本
発明の情報処理装置及び情報処理装置に搭載された不具
合解析プログラムを格納したコンピュータ読み取り可能
な記憶媒体を使用して、以下のように不具合を解決する
ことができる。
【0040】[処理1]ユーザーインタフェース部1の
処理の流れを図10示す。
【0041】ユーザーインタフェース部1は、予めタス
ク動作判定部3がプログラムの動作履歴情報11をもと
に作成した検証データ14(図3)をユーザー5に表示
する(ST21〜ST24)。ユーザー5への表示例を図11に
示す。図11のようにプログラムの各タスクの動作とタ
スクの切り換えの様子を時系列に表せば、ユーザー5は
表示されたプログラムの動作における不具合を指摘しや
すい。特に、数字の羅列である実行履歴情報11をグラ
ッフィックで表現することは有効である。
【0042】ここで、ユーザー5は当該プログラムの不
具合箇所を指摘する入力を行う(ST26)。この場合、図
11に示した位置(最終イベントの後のタスクAの位
置)にマウスカーソルを指定したとする。この指定位置
が、ユーザー5が指摘した不具合の箇所となる。本来の
プログラムの仕様では、この時点ではタスクAは実行状
態でなければならないはずである。
【0043】ユーザーインタフェース部1は、ユーザー
5が入力した不具合の箇所データ12を、要求解析部2
に転送(ST27)し、要求解析部2に制御を移す。このと
き転送する不具合箇所データ12は、図11においてマ
ウスカーソルを指定した位置、すなわちイベント順を示
していたX軸とタスクを示していたY軸との座標位置で
一意に認識することができる。ユーザーが指摘した箇所
データ12は、X=7,Y=3である。
【0044】続いて、図12に要求解析部2の処理の流
れを示す。
【0045】要求解析部2は、ユーザーインタフェース
部1から受取った不具合箇所データ12と先にタスク動
作判定部3が作成した検証データ14から、要求内容を
解析する。まず、X座標値と検証データ14のイベント
とを比較し、ユーザー5の要求タイミングを特定する
(ST28)。次に、Y座標値と検証データ14のアイテム
順から、ユーザーが要求しているタスクを特定する(ST
29)。このときの処理イメージを図13に示す。すなわ
ち、ユーザー5の要求タイミングはイベントの最後(第
7イベントの位置)、要求タスクはタスクA(3番目の
アイテム)である。
【0046】要求解析部2は、このようにして比較デー
タ13を作成し(ST30)、作成した比較データ13をタ
スク動作判定部3に転送して、制御をタスク動作判定部
3に移す。尚、このときの検証データ14と比較データ
13を図16に示す。
【0047】[第1次要求]この場合の要求タスクはタ
スクAであり、要求タイミングはイベントの最後であ
る。
【0048】[処理2]続いて、図14にタスク動作判
定部3の処理の流れを示す。
【0049】タスク動作判定部3は、要求解析部2から
受取った比較データ13と先に作成しておいた検証デー
タ14とを比較して、要求タスクの状態を検索する(ST
31)。図16に示す検証データ14を検索してみると、
イベントの最後の時点でのタスクAの状態は、「実行可
能 (READY)」状態であることが判る(ST32)。「実行
可能」状態にあるタスクとは、実行する準備は整ってい
るが、自分より優先度の高いタスクもしくは優先度が自
分と同じであるタスクが「実行 (RUNNING)」状態であ
るために、実行できない状態にある、言いかえると、実
行できる状態のタスクの中で自分が最高の優先順位にな
ればいつでも実行できる状態にあるタスクである。
【0050】本発明の情報処理装置の不具合解析処理が
終了するのは(目的を達成するのは)、ユーザーが第1
次要求で指摘したタスク、すなわちタスクAがイベント
の最後の時点で「実行」状態になることである。
【0051】タスクAを「実行」状態にするまで(不具
合要因を特定するまで)、以下に説明する判定結果デー
タ1、判定結果データ2を作成し、作成した判定結果デ
ータから本来あるべき処理を特定し、それを検証データ
14に反映させる。このときの各データの状態を図17
に示す(但し、図17は処理完了状態の図である)。
【0052】まず、Nの値を判定結果データ1の(1)
欄と判定結果データ2の(1)欄に入れる(ST33)。こ
こでは第1次要求であるため、Nの値は「1」である。
判定結果データ1の(1)欄と判定結果データ2の
(1)欄のそれぞれの欄に「1」が入る。
【0053】次に、判定結果データ1の(2)欄に要求
タスクであるタスクAを入れ、判定結果データ1の
(3)欄にタスクAの状態を入れる(ST34)。
【0054】次に、検証データ14から、イベントの最
後の時点で「実行」であったタスクを検索する(ST3
5)。この場合、イベントの最後の時点で「実行」であ
ったタスクは、startupタスクである。検索したこのタ
スクを判定結果データ2に入れる(ST36)。
【0055】次に、判定結果データ2に入れたタスク
(この場合、startup タスク)が「ext_tsk」 を発行し
た場合の検証データ14を作成する(ST37)。具体的に
は、7番目のイベントに、startup タスクが「ext_ts
k」を発行するというイベントを検証データ14に作成
するのである。(必然的に、第8イベントとしてタスク
切り換え(「Task Dispatch」)が発生する。)そし
て、このイベント(第7〜8イベント)を検証データ1
4に反映させたことで、第1次要求のタスクAが「実
行」状態に遷移したかどうかを、検証データ14から検
索するのである(ST38)。
【0056】以上のST33〜ST39までの処理を、第1次要
求のタスクAが「実行」状態になるまで繰り返す(ST3
9)。
【0057】この場合に、「実行」状態に遷移したの
は、タスクAではなく、タスクBである。従って、再び
ST33に戻って、タスクAがイベントの最後の時点で「実
行」状態になるための処理を行う。
【0058】[処理3]まず、Nの値を判定結果データ
1の(1)欄と判定結果データ2の(1)欄に入れる
(ST33)。ここでは第1次要求であるため、Nの値は
「1」である。それぞれの欄に「1」が入る。
【0059】次に、判定結果データ1の(2)欄に要求
タスクであるタスクAを入れ、判定結果データ1の
(3)欄にタスクAの状態を入れる(ST34)。検証デー
タ14から、タスクAの状態は「実行可能」であること
が判る。
【0060】次に、検証データ14から、イベントの最
後の時点で「実行」状態であったタスクを検索する(ST
35)。この場合、イベントの最後の時点で「実行」状態
であったタスクはタスクBである。検索したこのタスク
Bを判定結果データ2に入れる(ST36)。
【0061】次に、判定結果データ2に入れたタスク
(この場合、タスクB)が「ext_tsk」を発行した場合
の検証データ14を作成する(ST37)。具体的には、9
番目のイベントに、タスクBが「ext_tsk」を発行する
というイベントを検証データ14に作成するのである。
(必然的に、第10イベントとしてタスク切り換え
(「Task Dispatch」)が発生する。)そして、このイ
ベント(第9〜10イベント)を検証データ14に反映
させたことで、第1次要求のタスクAが「実行」状態に
遷移したかどうかを、検証データ14から検索するので
ある(ST38)。
【0062】この場合は、タスクAが「実行」の状態に
遷移したので、処理終了のフラグ等をセットして(ST5
1)、イベント7〜10を反映させた検証データ14か
ら今回の不具合を解決したプログラムのスケルトンを生
成し、プログラムファイル6に出力する(ST52)。この
ときのプログラムの生成例を図18に示す。図18の
(a)及び(b)に示すステップが、今回の不具合要因
とその解決策であった。
【0063】図17に示すように、第1次要求のタスク
Aが「実行」状態に至るまで要した判定結果データ1,
判定結果データ2と検証データ14を、ユーザーインタ
フェース部1に転送し、制御をユーザーインタフェース
部1に戻す。
【0064】ユーザーインタフェース部1は、タスク動
作判定部3から転送された検証データ14、判定結果デ
ータ1,判定結果データ2をユーザーに表示する。これ
により、今回の不具合の要因とその解決策をユーザー5
に提示することができ、また、本来の仕様に沿ったプロ
グラムの動作をユーザー5に提示することができる。
【0065】また、本来の仕様を満たしたプログラムが
プログラムファイル6に出力されているので、ユーザー
5はこれを利用することができる。
【0066】(第2実施例)本実施例で想定するプログ
ラムが使用するタスクは以下の4本である。
【0067】 (1)startup (task_ID=1,priorty=1) (2)タスクA(task_ID=2,priorty=2) (3)タスクB(task_ID=3,priorty=2) (4)タスクC(task_ID=4,priorty=2) (使用するセマフォ:Semaphore(ID=1,初期セマフォカ
ウンタ=0))本プログラムは、第1実施例と同様に、本
来は図19に示すタイムチャートのような動作を想定し
て作成されたアプリケーション・プログラムである。従
って、例えば処理終了時点を注目してみると、タスクB
で処理が終了する、つまりその時点での最終実行タスク
はタスクBである、というのがこのプログラムの本来の
仕様である。
【0068】ところが、実際にこのプログラムを動作さ
せてみたところ、図20に示すような結果が得られたと
する。実行結果によると、「Idle Mode」(レディーキ
ューにタスクがない状態)になっている。
【0069】このような状況において、ユーザー5は本
発明の情報処理装置及び情報処理装置に搭載された不具
合解析プログラムを格納したコンピュータ読み取り可能
な記憶媒体を使用して、以下のように不具合を解決する
ことができる。
【0070】[処理1]図10のフローチャートに沿っ
て、処理の流れを説明する。
【0071】ユーザーインタフェース部1は、予めタス
ク動作判定部3がプログラムの動作履歴情報11をもと
に作成した検証データ14をユーザー5に表示する(ST
21〜ST24)。
【0072】ここで、ユーザー5は不具合箇所を指摘す
る入力を行う(ST26)。この場合、実施例1と同様に、
ユーザー5はイベントの最後を指摘したものとする。こ
の指定位置が、ユーザー5が指摘した不具合の箇所とな
る。本来のプログラムの仕様では、この時点ではタスク
Bは実行状態でなければならないはずである。
【0073】ユーザーインタフェース部1は、ユーザー
5が入力した不具合の箇所データ12を、要求解析部2
に転送(ST27)し、要求解析部2に制御を移す。ユーザ
ーが指摘した箇所データ12は、X=12,Y=4であ
る。
【0074】要求解析部2の処理の流れを図12のフロ
ーチャートに沿って説明する。
【0075】要求解析部2は、ユーザーインタフェース
部1から受取った不具合箇所データ12と先にタスク動
作判定部3が作成した検証データ14から、要求内容を
解析する。まず、X座標値と検証データ14のイベント
とを比較し、ユーザー5の要求タイミングを特定する
(ST28)。次に、Y座標値と検証データ14のアイテム
順から、ユーザーが要求しているタスクを特定する(ST
29)。この場合、ユーザー5の要求タイミングはイベン
トの最後(第12イベントの位置)、要求タスクはタス
クB(4番目のアイテム)である。
【0076】要求解析部2は、このようにして比較デー
タ13を作成し(ST30)、作成した比較データ13をタ
スク動作判定部3に転送して、制御をタスク動作判定部
3に移す。尚、このときの検証データ14と比較データ
13を図21に示す。
【0077】[第1次要求]この場合のユーザー5の要
求タスクはタスクBであり、要求タイミングはイベント
の最後である。
【0078】[処理2]続いて、タスク動作判定部3の
処理の流れを図14のフローチャートに沿って説明す
る。
【0079】タスク動作判定部3は、要求解析部2から
受取った比較データ13と先に作成しておいた検証デー
タ14とを比較して、要求タスクの状態を検索する(ST
31)。図21に示す検証データ14を検索してみると、
要求タイミングである「イベントの最後」の時点でのタ
スクBの状態は、「待ち (WAITING)」状態であること
が判る(ST32、ST40)。「待ち」状態にあるタスクと
は、そのタスクを実行できる何らかの条件が整わないた
めに実行できない状態にある、言いかえると、何らかの
条件が満たされるのを待っている状態にあるタスクであ
る。
【0080】本発明の情報処理装置の不具合解析処理が
終了するのは(目的を達成するのは)、ユーザーが第1
次要求で指摘したタスク、すなわちタスクBがイベント
の最後の時点で「実行」状態になることである。
【0081】この場合には、タスクBの状態を「実行」
状態にする前に、まず「実行可能」状態にする必要があ
る。「待ち」状態にあるタスクは、直接「実行」状態に
は移行できないためである。その処理を以下に説明す
る。
【0082】まず、Nの値を判定結果データ1の(1)
欄と不具合解決用質問データの(1)欄に入れる(ST4
5)。ここでは第1次要求であるため、Nの値は「1」
である。それぞれの欄に「1」が入る。
【0083】次に、判定結果データ1の(2)欄に要求
タスクであるタスクBを入れ、判定結果データ1の
(3)欄にタスクBの状態(「待ち」)を入れる(ST4
6)。
【0084】次に、この第1次要求の要求タスクBを
「実行可能」状態に遷移させることができるシステムコ
ールをシステムコール対応テーブル7から検索する(ST
47)。このシステムコール対応テーブル7には、解決策
を特定するためのプログラム機能対応情報が格納されて
おり、その一例を図15に示す。
【0085】この場合、図21の検証データ14による
と、タスクBは「slp_tsk」によって「(起床)待ち」
の状態にあるため、図15のシステムコール対応テーブ
ル7から「slp_tsk」に対応するシステムコールを検索
するのである。図15のシステムコール対応テーブル7
を検索すると、2番目のエントリに「slp_tsk」があ
り、それに対応するシステムコールは「wup_tsk」であ
る。この「wup_tsk」を発行すれば、タスクBの状態を
「待ち」から「実行可能」に遷移させることができるの
である。検索結果の「wup_tsk」を不具合解決用質問デ
ータの(3)欄に入れる(ST48)。
【0086】次に、不具合解決用質問データの(2)欄
に、タスクBの状態を「待ち」から「実行可能」に遷移
させるシステムコールである「wup_tsk」の発行対象タ
スクを入れる(ST49)。この場合、発行対象タスクはタ
スクAである。
【0087】この「wup_tsk 」を「何時」「何処」で発
行するか、ということは機械的には決められない。発行
するタイミング、発行する場所によって、処理が変わっ
てしまうからである。従って、このシステムコール「wu
p_tsk」を「何時」「何処」で発行するべきなのかをユ
ーザー5に問合せる。この問合せのためのデータが不具
合解決用質問データなのである。
【0088】この不具合解決用質問データによる問合せ
を第2次要求とする(Nに1加算する(ST50))。ユー
ザーインタフェース部1に制御を戻し、ユーザー5に検
証データと不具合解決用質問データを提示し、質問に対
する回答の入力を促す。
【0089】[第2次要求]この場合、ユーザー5が要
求した要求タスクはタスクA、要求タイミングは「シス
テムコール「wai_sem」を発行した後」であったとす
る。
【0090】[処理3]ユーザーインタフェース部1に
戻って、ユーザー5が入力した箇所のデータ12を、要
求解析部2に転送(ST27)し、要求解析部2に制御を移
す。このとき転送する箇所データ12は、X=6,Y=
3である。
【0091】要求解析部2は、比較データ13を作成し
(ST30)、作成した比較データ13をタスク動作判定部
3に転送して、制御をタスク動作判定部3に移す。尚、
このときの検証データ14と比較データ13を図22に
示す。
【0092】タスク動作判定部3は、要求解析部2から
受取った比較データ13と検証データ14とを比較し
て、要求タスクの状態を検索する(ST31)。図22に示
す検証データ14を検索してみると、要求タイミングで
のタスクAの状態は、「(セマフォ資源の獲得)待ち」
状態であることが判る(ST32、ST40)。この場合には、
タスクAの状態を「待ち」から「実行可能」にする必要
がある。その処理を以下に説明する。
【0093】まず、Nの値を判定結果データ1の(1)
欄と不具合解決用質問データの(1)欄に入れる(ST4
5)。ここでは第2次要求であるため、Nの値は「2」
である。それぞれの欄に「2」が入る。
【0094】次に、判定結果データ1の(2)欄に要求
タスクであるタスクAを入れ、(3)欄にタスクAの状
態(「待ち」)を入れる(ST46)。
【0095】次に、この第2次要求の要求タスクAを
「実行可能」状態に遷移させることができるシステムコ
ールをシステムコール対応テーブル7から検索する(ST
47)。対応するシステムコールは「sig_sem」である。
この「sig_sem」を発行すれば、タスクBの状態を「待
ち」から「実行可能」に遷移させることができるのであ
る。検索結果の「sig_sem」を不具合解決用質問データ
の(3)欄に入れる(ST48)。
【0096】次に、不具合解決用質問データの(2)欄
に、タスクBの状態を「待ち」から「実行可能」に遷移
させるシステムコールである「sig_sem」の発行対象タ
スクを入れる(ST49)。この場合、発行対象タスクはタ
スクCである。
【0097】この「wup_tsk 」を「何時」「何処」で発
行するか、ということも機械的には決められない。発行
するタイミング、発行する場所によって、処理が変わっ
てしまうからである。従って、このシステムコール「si
g_sem」を「何時」「何処」で発行するべきなのかをユ
ーザー5に問合せる。
【0098】この不具合解決用質問データによる問合せ
を第3次要求とする。Nに1加算して、ユーザーインタ
フェース部1に制御を戻し(ST50)、ユーザー5に検証
データと不具合解決用質問データを提示し、質問に対す
る回答の入力を促す。
【0099】[第3次要求]この場合、ユーザー5が要
求した要求タスクはタスクC、要求タイミングは「シス
テムコール「ext_tsk」を発行する前」であったとす
る。
【0100】[処理4]ユーザーインタフェース部1に
戻って、ユーザー5が入力した箇所のデータ12を、要
求解析部2に転送(ST27)し、要求解析部2に制御を移
す。
【0101】要求解析部2は、比較データ13を作成し
(ST30)、作成した比較データ13をタスク動作判定部
3に転送して、制御をタスク動作判定部3に移す。尚、
このときの検証データ14と比較データ13を図23に
示す。
【0102】タスク動作判定部3は、要求解析部2から
受取った比較データ13と検証データ14とを比較し
て、要求タスクの状態を検索する(ST31)。図22に示
す検証データ14を検索してみると、要求タイミング
「システムコール「ext_tsk」を発行する前」時点での
タスクCの状態は、「実行」状態であることが判る(ST
32、ST40)。
【0103】このように要求タスクの要求タイミング時
点での状態が「実行」状態である場合には、ひとつ前の
(N−1の)不具合解決用質問データのシステムコール
を要求タイミング時に発行した場合の検証データ14を
作成する(ST41)。本実施例でいうと、不具合解決用質
問データのN=2の時のシステムコールである「sig_se
m」をタスクCが発行した場合の検証データを作成する
ことになる(図24の検証データを参照)。
【0104】次に、第2次要求タスクのイベントの最後
の時点での状態を検証データ14から検索する(ST42、
ST43)。
【0105】検索の結果、第2次要求タスクAは「実
行」状態に遷移している。判定結果データ1のタスクA
の状態を「実行」状態に書きかえる(ST44)。
【0106】これで、第2次要求タスクの状態が「実
行」状態に遷移したことで、第3次要求は満たされた。
しかし、第1要求のタスクBは依然として「実行可能」
状態のままであるため、ここまで作成した検証データ、
判定結果データ、不具合解決用質問データ(第1次分)
をユーザーインタフェース部1に転送し、制御をユーザ
ーインタフェース部1に戻す(ST38〜39)。
【0107】そして、これまで説明した処理に準じて、
第1次要求のタスクBが第1次要求タイミングである
「イベントの最後」の時点で「実行」状態に遷移するま
で、処理を繰り返す。このタスクBが「イベントの最
後」の時点で「実行」状態に遷移するまでの検証デー
タ、比較データ、判定結果データ1、判定結果データ
2、及び不具合解決用データの状態を、図21〜図26
に示す。
【0108】図26に示した検証データが本来のプログ
ラムの仕様を満たすものであり、同じく図26に示した
判定結果データ1,2と不具合解決質問データが今回の
不具合の要因となっていたものである。本発明の情報処
理装置は、これらの各データをユーザー5に提示するこ
とで、プログラムの不具合要因とその解決策を対話形式
でユーザーに提示できる。
【0109】また、処理終了時には、第1実施例と同様
にして、図26の検証データからプログラムのスケルト
ンを自動生成し、ユーザー5に提供することができる。
【0110】以上、第1実施例及び第2実施例を用いて
説明したように、本発明の不具合解析プログラムを格納
したコンピュータ読み取り可能な記憶媒体を搭載した情
報処理装置を用いることにより、対話形式で不具合要因
とその解決策を容易に特定でき、更に、本来の仕様に沿
ったプログラムの動作、及び本来の仕様に沿ったプログ
ラムをも容易に取得することができる。
【0111】つまり、対話形式でユーザーから指摘され
た不具合箇所とプログラムの実行履歴情報から不具合要
因とその解決策を特定し、更にこの解決策を反映させた
プログラムの動作をユーザーに提示することができる。
【0112】また、前記特定した不具合要因とその解決
策から、上記不具合を解決したプログラムを自動生成し
てユーザーに提示することができる。
【0113】その結果、プログラムの不具合解析作業を
容易にし、従来不具合解析に要していた時間を短縮する
ことができ、プログラムの開発コストや開発期間などを
低減することができる。
【0114】(第3実施例)本発明に係るアプリケーシ
ョンプログラム開発支援システムの実施形態について説
明する。なお、本実施形態では、あるマイコン向けの組
込み用リアルタイムOS(μITRON3.0仕様)に
対応したアプリケーションプログラムを開発する場合を
例に説明する。
【0115】[ハードウェア資源の構成]図27は、本
実施形態に係るアプリケーション開発システム20を実
施するためのハードウェア資源の構成を示す概観図であ
る。
【0116】図27に示すように、ハードウェア資源
は、中央処理装置(CPU)51と、RAM52とを備
えている。なお、本実施形態では、中央処理装置(CP
U)51、RAM52は、バス58を介して、ROM5
3、通信装置54、補助記憶装置55、表示装置56、
入力装置57及び出力装置59に接続されている。
【0117】ROM53や補助記憶装置55には、コン
ピュータ・プログラムのコードが記録されている。この
コンピュータ・プログラムは、アプリケーション開発シ
ステム20上のオペレーティングシステムと協働して中
央処理装置51等に命令を与えるものである。コンピュ
ータ・プログラムコードは、RAM52にロードされる
ことによって実行される。なお、このコンピュータ・プ
ログラムのコードは、圧縮され、または、圧縮したコー
ドも含め、複数に分割して、複数の媒体にまたがって記
録することもできる。
【0118】また、本実施形態において、アプリケーシ
ョン開発システム20へのデータの入出力をするユーザ
・インターフェース・ハードウェアとしては、画面位置
情報、文字情報を入力するための入力装置57や、画像
データをユーザに提示するための表示装置56、出力装
置59がある。入力装置57としては、例えば、ポイン
ティングデバイスやキーボード等がある。この他、デー
タの入出力の方法としては、通信装置54を介して他の
コンピュータ等から入力データを受け取ることや、また
補助記憶装置55などの媒体から行うものが挙げられ
る。また、表示装置56は、モニターやプリンターな
ど、データを可視化して出力するものである。
【0119】このように、アプリケーション開発システ
ム20は、パーソナルコンピュータやワークステーショ
ン、携帯情報端末、ネットワークコンピュータ上におけ
る実施、あるいはこれらの組合せによるハードウェア構
成での実施も可能である。ただし、これらのハードウェ
ア構成は例示であり、全ての構成要素がアプリケーショ
ン開発システム20の必須の構成要素となるものではな
い。
【0120】[アプリケーション開発システムの構成]
上述したハードウェア構成によりアプリケーション開発
プログラムを実行することによって、かかるハードウェ
ア構成上に本発明のアプリケーション開発システムが仮
想的に構築される。図28は、本実施形態において構築
されたアプリケーション開発システムの構成を模式的に
示すブロック図である。
【0121】同図に示すように、本実施形態に係るアプ
リケーション開発システムは、環境定義部31と、プロ
グラミング部32と、テンプレートファイル生成部40
と、環境定義ファイル生成部43と、チェック部45
と、実行オブジェクト部46と、表示情報作成部48と
を有している。
【0122】環境定義部31は、入力された環境定義デ
ータを解析し、解析した結果をプログラミング部32に
供給するものである。この環境定義データには、開発す
るアプリケーションシステムが利用するRTOS管理下
のオブジェクト数や、その初期化設定、開発アプリケー
ションシステムが稼働するマイコンに発生する外部/内
部割り込み要因に対する初期化データ等が含まれる。ま
た、この環境定義部31は、解析結果から環境定義情報
49を生成する。環境定義情報は、環境定義ファイルを
生成する際には、環境定義ファイル生成部43に入力さ
れる。
【0123】プログラミング部32は、入力装置7を介
して行われるプログラミング操作により開発プログラム
を構築するものである。
【0124】テンプレートファイル生成部40は、プロ
グラミング部32からテンプレートファイル生成の命令
を受け取り、プログラミング情報38の情報を基に、テ
ンプレートファイル42を生成し、出力するものであ
る。
【0125】また、環境定義ファイル生成部43は、入
力された環境定義データをファイル形式に形成するもの
である。
【0126】チェック部45は、環境定義データに基づ
いて開発対象であるアプリケーションプログラムを実行
させる実行環境の動作規則に従い、仮想的に構築し、こ
の仮想環境の下で開発プログラムの動作チェックを行う
ものである。具体的には、本実施形態では、システムコ
ール選択チェック部50と、システムコール発行位置チ
ェック部35と、システムコール操作対象位置チェック
部36と、RTOSカーネルチェック部37とを有して
いる。
【0127】システムコール選択チェック部50は、選
択されたシステムコールが、プログラミングの対象とな
る動作環境下において、現実に発行しうるか 否かにつ
いて判断するものである。
【0128】システムコール発行位置チェック部35
は、システムコールを発行すると仮定した位置、もしく
はタイミングが、システムコールを現実に発行するもの
か否かについて判断するものである。
【0129】システムコール操作対象位置チェック部3
6は、システムコールを発行すると仮定した対象につい
て、システムコールが現実に発行した場合に、操作でき
るのか否かについて判断するものである。
【0130】RTOSカーネルチェック部37は、本実
施形態に係るハードウェア資源上で動作するOSである
RTOSの動作について、確認するものである。
【0131】また、前記実行オブジェクト部46は、開
発されたプログラムをコンパイルし、実行オブジェクト
ファイル(電子ファイル)として出力するものである。
前記表示情報作成部48は、モニター等の表示装置6等
において出力可能に、各情報を生成するものである。
【0132】[GUI(Graphical User Interface)の
構成]次いで、プログラミング装置32のインタフェー
スであるGUI(Graphical User Interface)の構成に
ついて説明する。図29及び図30は、表示装置6に表
示された画面構成を示すものである。
【0133】このGUIは、表示装置6に、ウインドウ
70として表示され、このウインドウ70は、プログラ
ム中において発行したいシステムコールを選択するシス
テムコール選択ペイン61と、プログラム中において利
用可能な実行環境提供の資源オブジェクト、およびRT
OS管理下のオブジェクト(以下「オブジェクト」とい
う。)/割り込み要因別にグループ別に表示するオブジ
ェクト表示ペイン62と、プログラミングを行うプログ
ラミング作業ペイン63とを有している。
【0134】プログラミング作業ペイン63には、シス
テムコール発行位置(オブジェクト)、操作位置(オブ
ジェクト)を指定するために各オブジェクト毎に設けら
れたシーケンスライン64と、プログラム中における、
理論的なシステムコール発行タイミングや、発行順を定
める目盛りペイン65がインタフェースとして備えられ
ている。
【0135】なお、プログラミング作業ペイン63は、
タスク部のプログラミングを行うタスク部プログラミン
グ作業ペインと、タスク独立部別に、タスク独立部のプ
ログラミングを行うハンドラ部プログラミング作業ペイ
ンから構成される。
【0136】そして、プログラミング装置32が起動さ
れた際に取得された環境定義情報49は、図30に示す
ように、オブジェクト表示ペイン62に表示される。
【0137】オブジェクト表示ペイン62は、プログラ
ム中において利用可能なオブジェクト/割り込み要因を
表示するタスクオブジェクトグループ82を有してい
る。このタスクオブジェクトグループ82では、周期起
動ハンドラグループ85などのグループ分けがなされて
おり、各グループに属する個々のオブジェクトにはオブ
ジェクト名83と、初期状態設定が行われている場合
は、オブジェクト初期情報84が併せて表示される。な
お、未定義オブジェクトに関しては、オブジェクトグル
ープ名だけが表示される。
【0138】すなわち、例えば、図中タスクオブジェク
ト_usr3cdのオブジェクト初期情報は、”ID”
がタスクID情報を意味し、”Pri”がタスク優先度
情報を意味し、”1st”が初期起動タスク情報(アプ
リケーションプログラム処理において、最初、実行状態
タスクであることを意味する。)を意味する。つまり、
本実施形態では、プログラミング作業ペイン63におい
て、プログラミングを始める場合は、_usr3cdが
最初にシステムコール発行を行う。
【0139】また、本実施形態において、システムコー
ル発行操作は、システムコール選択ペイン61から、発
行するシステムコールを選択した後に、目盛りペイン6
5にある目盛り1つに、1つのシステムコールを、その
目盛り位置における実行状態タスクのシーケンスライン
64上に置くことにより行う。
【0140】これによりシステムコール発行位置を仮定
することができる。プログラミングは、目盛り位置:0
を起点として構築し、プログラム処理は目盛り位置:0
から順に行われる。また、本実施形態において、この目
盛りペイン65には、目盛り間を開けてシステムコール
を発行することを防ぐ機能が装備されている。
【0141】発行したシステムコールが、操作対象オブ
ジェクト指定を必要とする場合は、操作対象オブジェク
トが有するシステムコール発行位置と同一目盛り位置の
シーケンスライン64上を指定する。この位置が、シス
テムコール操作対象位置と仮定される。システムコール
操作対象位置選択時、システムコール発行位置とは違う
目盛り位置を選択できない機能を装備している。
【0142】システムコール発行の操作には、発行時の
プログラミング作業ペイン63において、発行可能目盛
りの最大値に発行する追加操作、プログラミング作業ペ
イン63にある発行済みシステムコールの位置に対する
システムコール挿入発行操作、発行済みシステムコール
に対する削除操作、発行目盛り位置移動操作(複数のシ
ステムコール発行がある場合)、システムコール種別変
更操作、システムコール引数変更操作、システムコール
操作対象位置移動等の編集機能が設けられている。
【0143】[アプリケーション開発システムの処理手
順]そして、上述したアプリケーション開発システム2
0は、以下のように動作する。図31は、本実施形態に
係るアプリケーション開発システム20の動作を示すフ
ロー図である。
【0144】先ず、最初に必要なデータとして、入力装
置57から環境定義装置31に対し、環境定義データを
入力する(S101)。
【0145】環境定義装置31に必要なデータが揃う
と、入力装置57から環境定義装置31に対し、プログ
ラミング装置32を起動する情報を入力する。入力を受
け付けた環境定義装置31は、プログラミング装置32
を起動する(S102)。この起動の際、プログラミン
グ装置32のインタフェースであるGUI(GraphicalU
ser Interface)が、表示装置56に表示される。
【0146】プログラミング装置32は、起動された
後、入力装置57からプログラミング操作入力を待つ。
ユーザーは、入力装置57を介してプログラミング操作
によりプログラミングデータの入力を行う(S10
3)。
【0147】次いで、入力されたプログラムについて、
チェック部45によりプログラミング情報のチェックを
行う(S104)。
【0148】そして、チェックの結果がエラーであるか
否かの判定を行い(S105)、エラーである場合には
エラー情報41を更新するとともに、そのエラーの内容
について表示情報作成部48により表示情報を作成し、
表示装置56において表示する。ステップS105にお
いて、エラーが発生していないと判断された場合には、
プログラミング情報38及びオブジェクト情報39を保
存する(S106及びS107)。
【0149】その後、プログラミングを終了するか否か
の選択を待ち(S108)、プログラミングを続行する
場合には、ステップS103に戻り、再度プログラミン
グデータの入力を受け付ける。ステップS108におい
て、プログラミングの終了を選択した場合には、テンプ
レートファイル生成部40においてテンプレートファイ
ル42を生成し、出力するとともに(S110)、実行
オブジェクト生成部46において、実行オブジェクトフ
ァイル47を生成し、出力し(S111)、作業を終了
する(S112)。
【0150】プログラミングデータの入力を受け付けて
から、入力結果を表示するまでの処理手順を図32に示
す。この処理手順に沿って、表示装置56に表示されて
いるウインドウ70をインタフェースとするプログラミ
ングを行う。
【0151】次いで、発行されるシステムコールを、シ
ステムコール選択ペイン61で入力装置7を通じて選択
する(S201)。また、入力装置57を通じて、シス
テムコールが発行する位置を入力する(S202)。
【0152】入力されたこれらのデータに基づいてシス
テムコール発行位置チェック部において、システムコー
ル発行位置をチェックする(S203)。
【0153】次いで、このチェック結果について判定を
行い、エラーが発生していない場合には、発行システム
コールの操作対象の選択が必要か否かの選択を要求する
(S205)。捜査対象の選択が不要である場合には、
RTOSカーネルチェック装置にて、発行システムコー
ルカーネル部を処理する(S201)。
【0154】ステップS205において発行システムコ
ールの操作対象の選択が必要である場合には、入力装置
57を介して、プログラミング操作システムコール操作
外傷位置を入力する(S207)。
【0155】システムコール操作対象位置チェック部3
6にて、システムコール操作対象位置をチェックする
(S207)。このチェック結果の内容についてエラー
が生じているか否かについて判定を行い(S208)、
エラーが生じていない場合には、入力装置7によりプロ
グラミング操作のシステムコール引数を入力し(S20
9)、RTOSカーネルチェック部37にて、発行シス
テムコールカーネル部を処理する(S210)。
【0156】ステップS210において発行システムコ
ールカーネル部を処理した後、カーネル処理の内容を判
定する(S211)。このステップS211においてエ
ラーが発生していない場合には、プログラミング情報3
8の保存(S212)及びオブジェクト情報39の保存
(S213)を行い、表示情報作成部48にて表示情報
を作成し(S214)、作成結果を表示装置56におい
て表示し(S215)、終了する。
【0157】なお、ステップS204やS208、S2
11においてエラーが生じた場合には、エラー情報41
を保存した後(S216)、このエラー情報を表示し
(S215)、処理を終了する。
【0158】[システムコール発行時の動作]次いで、
システムコール時の動作について説明する。ここでは、
プログラミング作業ペイン63がタスク部になっている
と仮定し、実行状態タスクである”_usr3cd”が
システムコール“sta_tsk”を発行し、休止状態
タスクである”_usr6cd”を起動する追加操作を
例に説明する。図33は、システムコール時における表
示装置56に表示された画面構成を示す説明図である。
【0159】まず、前述したシステムコール選択ペイン
61から、発行するシステムコールを選択する。この選
択操作時、システムコール選択チェック部50が、プロ
グラミング作業ペイン63をタスク部に仮定している場
合は、タスク部から発行可能なシステムコールを選択可
能にし、ハンドラ部に仮定している場合は、ハンドラ種
別により、そのハンドラから発行可能なシステムコール
が選択可能となるように、ユーザのシステムコール選択
操作を監視している。
【0160】本実施形態では、プログラミング作業ペイ
ン63がタスク部と仮定しているため、システムコール
ペイン61からハンドラ部からのみ発行可能なシステム
コールを選択することはできない。
【0161】入力装置7から、システムコール選択ペイ
ン61より“sta_tsk”を選択する。選択後、プ
ログラミング作業ペイン63において、入力装置57か
らシステムコール発行操作を行う。この時点において、
システムコールを発行するメモリ位置は、発行済みシス
テムコールが存在しないため「0」であり、メモリ位
置:0における実行状態タスクは”_usr3cd”で
あるため、”_usr3cd”タスクのシーケンスライ
ン64上付近(シーケンスライン上付近とは、対象シー
ケンスラインの上、あるいは下のシーケンスラインから
対象シーケンスラインに近い位置までとする)システム
コール発行位置91を入力装置7から選択する。
【0162】この追加操作におけるシステムコール発行
位置の選択は、先の説明の通り、目盛り間を開けてシス
テムコールを発行することを防ぐ機能が働く。機能は、
図30のようにシステムコール発行選択位置91が指す
場所を指定しなくても、目盛り位置:0以降、”_us
r3cd”のシーケンスライン64上付近を選択すれ
ば、目盛り位置:0を選択したことになる。
【0163】選択(入力)を受け付けたプログラミング
装置32は、システムコール発行位置チェック装置35
に、選択内容をチェックさせる。システムコール発行位
置チェック装置35では、図34の処理手順によりチェ
ックを行う。
【0164】すなわち、図34に示すように、先ずシス
テムコール発行位置におけるオブジェクトの種別を判定
し(S301)、”OK”であれば、システムコール発
行位置におけるオブジェクトの状態について判断する
(S302)。このステップS302において”OK”
であるときは、戻り値「ret」に、システムコールが操
作対象オブジェクトを必要とするか、しないかについて
の情報を与えて(S303)、処理を終了する。
【0165】この戻り値「ret」は、システムコールが
操作対象オブジェクトを必要とするか、いないかの情報
と、エラー情報をセットするものである。本実施形態で
は、この戻り値「ret」は、32bit領域を持つ変数であ
り、最上位ビットにはシステムコールが操作対象オブジ
ェクトを必要とするか、しないかの情報がセットされ、
それ以外のビットにはエラー情報がセットされる領域に
用いられている。
【0166】ステップS301またはステップS302
において”NG”と判断されたときには、戻り値「re
t」に、エラー情報を与え、前記ステップS303を経
て、処理を終了する。
【0167】そして、このようにして得られた戻り値
「ret」により、発行したシステムコールが“sta_
tsk”であり、プログラミング装置32は、システム
コール発行位置チェック装置35が設定した、ret情
報領域のチェック結果から、チェック判定にエラーが無
いことと、“sta_tsk”に操作対象オブジェクト
を必要とすることが判明する。その操作対象タスクは”
_usr6cd”であるため、”_usr6cd”タス
クのシーケンスライン64上付近システムコール発行位
置91‘を入力装置27から選択する。
【0168】もし、システムコール発行位置91が図3
3と違う場所、例えば、周期起動ハンドラオブジェクト
である”cyc_Hdrl”のシーケンスライン64付
近をシステムコール発行位置として選択した場合には、
システムコール発行位置チェック装置35では、RTO
S仕様から“sta_tsk”発行位置オブジェクトと
して不適と判断し、ret情報領域にエラー情報を与え
る。
【0169】また、システムコール発行位置91以外の
タスクオブジェクトのシーケンスライン64付近をシス
テムコール発行位置として選択した場合は、システムコ
ール発行位置チェック装置35では、RTOS仕様から
システム発行タスクの状態不適(実行状態タスクではな
い)と判断し、ret情報領域にエラー情報を与える。
【0170】システムコール操作対象位置選択は、シス
テムコール発行位置からマウス等の入力装置によるドラ
ッグ操作で位置を選択する。この際に、先に述べた様
に、システムコール操作対象位置は、システムコール発
行位置と同一目盛り位置のシーケンスライン上付近を選
択させる機能があり、その機能は、図33中の表示ライ
ン93のように、システムコール発行位置からのドラッ
グ操作に、カーソルの縦方向移動にのみ線が追従描画さ
れ、その線の末端が選択位置となる様になっている。
【0171】選択(入力)を受け付けたプログラミング
装置32は、システムコール操作対象位置チェック装置
36に、選択内容をチェックさせる。システムコール操
作対象位置チェック装置36では、図35の処理手順に
よりチェックを行う。
【0172】すなわち、図35に示すように、先ず、シ
ステムコール操作対象位置のシステムコール操作対象位
置におけるオブジェクトの種別を判定し(S401)、
ここにおいて”OK”であれば、システムコール操作対
象位置におけるオブジェクトの状態について判断する
(S402)。このステップS402において”OK”
であるときは、戻り値「ret」の最上位ビット領域をク
リアしてその値を「0」とし(S403)、処理を終了
する。
【0173】ステップS301またはステップS302
において”NG”と判断されたときには、戻り値「re
t」に、エラー情報を与え、前記ステップS303を経
て、処理を終了する。
【0174】これらの処理により、この戻り値「ret」
の最上位ビットにセットされたシステムコールが操作対
象オブジェクトを必要とするかしないかの情報がクリア
され、それ以外のビットにはエラー情報がセットされる
こととなる。
【0175】チェックにおいても、システムコール発行
位置のチェックと同じく、システムコール操作対象位置
91’が図33と違う場所、例えば、周期起動ハンドラ
オブジェクトである”cyc_Hdrl”のシーケンス
ライン64付近をシステムコール操作対象位置として選
択した場合は、システムコール操作対象位置チェック装
置36では、RTOS仕様から“sta_tsk”操作
対象オブジェクトとして不適と判断し、ret情報領域
にエラー情報を与える。
【0176】また、システムコール操作対象オブジェク
トが91’以外のタスクオブジェクトのシーケンスライ
ン64付近をシステムコール操作対象位置として選択し
たが、選択したタスクが休止状態タスクでない場合は、
システムコール操作対象位置チェック装置36では、R
TOS仕様からシステムコール操作対象タスクの状態不
適と判断し、ret情報領域にエラー情報を与える。
【0177】システムコール操作対象選択位置のチェッ
クが終了し、エラーが無い場合は、発行したシステムコ
ールが持つ機能の処理をRTOSカーネルチェック装置
37にて行う。本実施例においては、休止状態である”
_usr6cd”を、実行可能状態にする。この処理に
おけるエラー判定基準は、RTOS仕様に基づく。
【0178】システムコール発行の操作、そのチェック
完了後、プログラミング装置32は、ウインドウ70に
発行結果を追加描画するために、プログラミング情報3
8、オブジェクト情報39を更新し、表示情報作成装置
48にて表示情報を作成し、表示装置6に、図36の様
な描画更新されたウインドウ70が表示される。
【0179】プログラミング情報38には、目盛り位
置:0に発行されたシステムコールと、その発行内容が
情報として保存される。
【0180】オブジェクト情報39には、目盛り位置:
0に発行されたシステムコールの影響により、オブジェ
クトがどの様に変化したか、変化したオブジェクト情報
だけを更新する。
【0181】オブジェクト情報39を利用し、プログラ
ミング装置32は、オブジェクト情報内容39に変更が
ある/ないに関わらず、更新処理終了後、オブジェクト
情報39から、次の目盛り位置における実行状態タスク
情報を検出する。その情報を実行状態ナビゲートライン
100として図36の様に、発行したシステムコールの
システムコール発行位置から次の目盛り位置まで線描画
する。
【0182】また、入力装置57のマウス等の操作ポイ
ントを、プログラミング作業ペイン63内にある、発行
済みシステムコールの描画を外し、あるオブジェクトが
持つシーケンスライン64上付近に移動させると、操作
ポイントが指したプログラム処理の流れの中において、
そのオブジェクトの状態をウィンドウ70に表示させ、
参照することができる。
【0183】プログラミング装置32起動後、入力装置
57から入力した操作によって“sta_tsk”発行
のプログラミングが完了する。この装置を利用すること
により、システムコール発行の内容を開発装置に実装さ
れているチェック装置群45が、利用するRTOS仕様
に従ったチェックと、RTOS管理下のオブジェクト操
作を行うため、プログラミングの段階において、システ
ムの不具合除去、不具合検知を行うことが可能となり、
オブジェクト情報39の利用により、プログラミング段
階において、タスクオブジェクトの状態遷移の表示、他
アプリケーションシステムにおいて使用するオブジェク
トの状態を表示することにより、プログラミングを強力
にサポートすることができる。
【0184】[イベント発生時の動作]次いで、イベン
ト発生時の動作について説明する。ここでは、アプリケ
ーション開発システム20において、図37の様なプロ
グラミングを入力装置57から入力が行われた場合を例
に説明する。図37は、本発明装置によるプログラミン
グ中の状態である。
【0185】本実施例では、開発アプリケーションシス
テムが稼働するハードウェアにおいて、ハードウェアの
周期的な割り込み、非同期な割り込みイベントの発生
時、その割り込みイベントに連動し処理される単位をプ
ログラミングした場合に、プログラミングの段階におい
て、その割り込みイベント発生のタイミングを定義し、
アプリケーションプログラムが使用するタスクの振る舞
い、およびオブジェクトの状態変化を検証する方法を示
す。
【0186】図37に示すように、タスク部プログラミ
ング作用ペイン111では、タスク部のプログラミング
が行われており、cyc_Hdrlハンドラ部プログラ
ミング作業ペイン112では、タスク独立部であるcy
c_Hdrlハンドラ内にプログラミングを、それぞれ
別の作業ペインで行っている。
【0187】タスク独立部は、ハードウェアの周期的な
割り込み、非同期な割り込みイベント発生時の処理単位
であり、タスク部のプログラミングと同期が取られてい
ない。
【0188】本実施形態では、図38の様に、アプリケ
ーションプログラミング構築段階において、タスク独立
部である周期起動ハンドラ部の処理単位をタスク部のプ
ログラム中に仮想的に処理させる、割り込み発生イベン
トを発行することにより、ハードウェアの周期的な割り
込み、非同期な割り込みイベントが発生した場合のシミ
ュレーションを検証することができる。
【0189】割り込み発生イベントを発行し、ハードウ
ェアの周期的な割り込み、非同期な割り込みイベントの
発生シミュレーションを検証するためには、まず、タス
ク部のプログラミング作業ペインにおいて、割り込みイ
ベントを発生させたい目盛り位置に、割り込み発生イベ
ントを発行する。入力装置57により割り込み発生イベ
ント発行が行われ、入力を受け付けたプログラミング装
置32は、システムコール発行時に行うチェックを同様
に行う。チェック内容は、割り込み発生イベント発行位
置のオブジェクト種別、オブジェクトの状態である。
【0190】割り込みイベントを発生させるオブジェク
トの状態は、環境定義装置31に対し、静的に定義する
そのオブジェクトに必要なシステム環境定義と、そのオ
ブジェクトの機能を有効/無効にする操作があり、その
様な操作が必要な場合のみ入力装置57から、プログラ
ミング装置32に対し、そのオブジェクトの動的な操作
「システムコール発行」を行う。
【0191】プログラミング装置32が、割り込み発生
イベントの発行が正しいものであると判断した場合、図
38の処理手順に従い、割り込み発生イベントを発行し
たハンドラ内のプログラミング処理をすべて行い、その
処理の結果、オブジェクトの変化をオブジェクト情報3
9に保存し、タスク部の処理に戻ることになる。アプリ
ケーションプログラムの処理イメージを、図40に示
す。
【0192】すなわち、ハンドラ内に行われたプログラ
ムを処理するには、図39に示すように、先ずプログラ
ミング情報38に保存されている、ハンドラ内の目盛り
位置:0のプログラミング情報から、一つ一つ順番に読
み込む(S501)。次いで、有効情報の有無を判断し
(S502)、ハンドラ内のプログラミング情報が無
い、あるいは有効情報をすべて処理し終えた場合には、
オブジェクト情報39を保存し(S504)、終了す
る。
【0193】ステップS502において、有効情報があ
る場合には、RTOSカーネルチェック部37にて、発
行システムコールカーネル部を処理し(S503)、ス
テップS501以降の処理を繰り返す。
【0194】この様な方法により、割り込みイベントを
発生させたいオブジェクトの状態を操作し、オブジェク
トの状態が割り込み発生できる状態であることをチェッ
ク群45により判定された場合に、タスク部のプログラ
ミング中に、同期がとれてないハンドラ部のプログラミ
ング処理単位を割り込みイベントとして、一つのアプリ
ケーションシステムの動作として表示することができる
ため、プログラミングの段階において、ハードウェアに
発生する周期的な割り込み、非同期な割り込みを検証し
ながら、作業をすすめることができる。
【0195】[時間待ち状態における動作]次いで、時
間待ち状態における動作について説明する。ここでは、
アプリケーション開発システム20において、図40及
び図41に示すようなプログラミングを入力装置7から
入力が行われた場合を例に説明する。図40及び図41
は、本発明装置によるプログラミング中の状態における
画面操作を示す説明図である。
【0196】本実施形態では、開発アプリケーションシ
ステムが稼働するハードウェアにおいて、ハードウェア
が実装している時間機能をRTOSが利用し、ある実行
状態のタスクを時間待ち状態に遷移させ、プログラミン
グの段階において、その待ち時間の解除タイミングを定
義し、アプリケーションプログラムが使用するタスクの
振る舞い、及びオブジェクトの状態変化を検証する方法
を示す。
【0197】図41のタスク部プログラミング作業ペイ
ン111では、目盛り位置:1において、“dly_t
sk”(タスク遅延)システムコールが発行されてい
る。“dly_tsk”を発行した実行タスク”_us
r3cd”は、時間待ち状態へと遷移する。
【0198】アプリケーションプログラムの実行環境か
ら、時間待ち状態タスク_usr3cdの待ちを解除す
る方法は、“rel_wai”[他タスクの待ち状態解
除]を任意の目盛り位置で発行するか、“dly_?t
sk”発行時に指定した遅延時間の時間経過を待つこと
になる。“rel_wai”を任意のタイミングで発行
し、時間待ち状態を解除する方法は、システムコール発
行時の動作で説明した機能により実現できる。
【0199】もう一つの時間経過を待つ方法は、開発ア
プリケーションシステムが稼働するハードウェアにおい
て、ハードウェアが実装している時間機能を利用してい
るため、プログラミング段階において、動作を検証する
ことができない。そこで、タイムアウトイベントを任意
のタイミングで、実行状態タスクから発行する。
【0200】タイムアウトイベントの発行は、上述した
システムコールの発行方法と同じである。つまり、タイ
ムアウトを発行するタスク側がシステムコール発行位置
であり、操作の対象となるオブジェクトが、時間待ち状
態タスクとなる。
【0201】図41に示す例では、目盛り位置:1で時
間待ち状態に遷移し、目盛り位置:9においてタイムア
ウトイベント131を発行し、”_usr3cd”の時
間待ち状態を解除している。実施例では、時間待ち状態
を解除したことにより、タスクオブジェクト状態が変化
し、目盛り位置:10において、実行状態タスクが”_
usr3cd”になることが検証できている。
【0202】以上、第3実施例を用いて説明したよう
に、本発明によれば、プログラミング段階において、そ
の実行環境の動作規則に従いアプリケーションシステム
の振る舞いを視覚的に確認し、早期にプログラミングの
不整合発見を行い、作業行程の戻りを低減させることに
より、効率的なアプリケーションシステム開発を可能と
することができる。
【0203】以上、本発明について、詳細に説明した
が、本発明は本実施例に限定されず、本発明の主旨を逸
脱しない範囲において、種々の改良や変更を成し得るで
あろう。例えば、本実施例では、イベントの最後(プロ
グラムの処理終了時点)のタスクの状態に着目して不具
合要因を解析する例を示したが、この着目するポイント
はこれに限定されず、ユーザーは任意のポイントに着目
して不具合要因の解析することができる。
【0204】また、本実施例ではITRONに準拠した
アプリケーション・プログラムを例に説明したが、本発
明はこのようなリアルタイムOSに限定されず、一般に
マルチタスク方式で動作するプログラムに広く適用でき
る。
【0205】
【発明の効果】本発明によれば、対話形式でユーザーか
ら指摘された不具合箇所とプログラムの実行履歴情報か
ら不具合要因とその解決策を特定し、更にこの解決策を
反映させたプログラムの動作をユーザーに提示すること
ができる。また、前記特定した不具合要因とその解決策
から、該不具合を解決したプログラムを自動生成してユ
ーザーに提示することができる。
【0206】これらの結果、プログラムの不具合解析作
業を容易にし、従来不具合解析に要していた時間を短縮
することができ、プログラムの開発コストや開発期間な
どを低減することができる。
【0207】また、他の発明によれば、プログラミング
段階において、その実行環境の動作規則に従いアプリケ
ーションシステムの振る舞いを視覚的に確認し、早期に
プログラミングの不整合発見を行い、作業行程の戻りを
低減させることにより、効率的なアプリケーションシス
テム開発を可能とすることができる。
【図面の簡単な説明】
【図1】本発明に係る情報処理装置の一実施例を示す概
略図である。
【図2】本発明に係る情報処理装置に搭載される不具合
解析プログラムを格納したコンピュータ読み取り可能な
記憶媒体の処理例を示す流れ図である。
【図3】本発明の情報処理装置が利用する検証データの
フォーマット例を示す概略図である。
【図4】本発明の情報処理装置が利用する比較データの
フォーマット例を示す概略図である。
【図5】本発明の情報処理装置が利用する判定結果デー
タ1のフォーマット例を示す概略図である。
【図6】本発明の情報処理装置が利用する判定結果デー
タ2のフォーマット例を示す概略図である。
【図7】本発明の情報処理装置が利用する不具合解決用
質問データのフォーマット例を示す概略図である。
【図8】第1実施例で想定したアプリケーション・プロ
グラムの仕様に沿った動作状況を示す入出力関連図であ
る。
【図9】第1実施例で想定したアプリケーション・プロ
グラムの不具合による動作状況を示す入出力関連図であ
る。
【図10】図2で示した不具合解析プログラムを格納し
たコンピュータ読み取り可能な記憶媒体の処理のうち、
ユーザーインターフェース部の詳細な処理例を示す流れ
図である。
【図11】図10で示したプログラムの動作状況をユー
ザーに提示した表示例示すイメージ図である。
【図12】図2で示した不具合解析プログラムを格納し
たコンピュータ読み取り可能な記憶媒体の処理のうち、
要求解析部の詳細な処理例を示す流れ図である。
【図13】図10で示したプログラムの動作状況をユー
ザーに提示した表示例示すイメージ図である。
【図14】図2で示した不具合解析プログラムを格納し
たコンピュータ読み取り可能な記憶媒体の処理のうち、
タスク動作判定部の詳細な処理例を示す流れ図である。
【図15】図10で示したプログラムの動作状況をユー
ザーに提示した表示例示すイメージ図である。
【図16】本発明の情報処理装置が利用するシステムコ
ール対応テーブルの一例を示す概略図である。
【図17】第1実施例における各種データの状態を示し
た図である。
【図18】第1実施例における各種データの状態を示し
た図である。
【図19】第2実施例で想定したアプリケーション・プ
ログラムの仕様に沿った動作状況を示す入出力関連図で
ある。
【図20】第1実施例で想定したアプリケーション・プ
ログラムの不具合による動作状況を示す入出力関連図で
ある。
【図21】第2実施例における各種データの状態を示し
た図である。
【図22】第2実施例における各種データの状態を示し
た図である。
【図23】第2実施例における各種データの状態を示し
た図である。
【図24】第2実施例における各種データの状態を示し
た図である。
【図25】第2実施例における各種データの状態を示し
た図である。
【図26】第2実施例における各種データの状態を示し
た図である。
【図27】第3実施形態におけるハードウェア資源の構
成を示すブロック図である。
【図28】第3実施形態におけるアプリケーションプロ
グラム開発システムの全体構成を示すブロック図であ
る。
【図29】第3実施形態に係るプログラミング装置32
のGUIの画面構成を示す説明図である。
【図30】第3実施形態に係るオブジェクト表示ペイン
の画面構成を示す説明図である。
【図31】第3実施形態において、開発装置を利用しア
プリケーションシステムを開発する流れを示すフロー図
である。
【図32】第3実施形態において、プログラミング装置
32を利用し、システムコールを発行した時の、開発装
置の処理の流れを示すフロー図である。
【図33】第3実施形態において、システムコールを発
行する場合の画面操作を示す説明図である。
【図34】第3実施形態において、システムコール発行
位置チェックの流れを示すフロー図である。
【図35】第3実施形態において、システムコール操作
対象位置チェックの流れを示すフロー図である。
【図36】第3実施形態における実行状態ナビゲートラ
インの説明図である。
【図37】第3実施形態におけるタスク部プログラミン
グ作業ペインとハンドラ部プログラミング作業ペインの
画面操作を示す説明図である。
【図38】第3実施形態における割り込み発生イベント
をプログラミング中に仮想定義する際の画面操作を示す
説明図である。
【図39】第3実施形態における割り込み発生イベント
発行時の流れを示すフロー図である。
【図40】第3実施形態における割り込み発生イベント
定義時のアプリケーションプログラムの処理操作を示す
説明図である。
【図41】第3実施形態において、時間経過をイベント
とし、プログラミング中に仮想定義する操作を示す説明
図である。
【図42】従来のデバッガの構成を示した概略図であ
る。
【図43】従来のデバッガが出力する実行履歴情報の構
成を示した概略図である。
【図44】従来の実行履歴情報の構成とデータの一例を
示したイメージ図である。
【符号の説明】
1....ユーザーインタフェース部 2....要求解析部 3....タスク動作判定部 4....実行履歴ファイル 5....ユーザー 6....システムコール対応テーブル 11....実行履歴情報 12....入力データ 13....比較データ 14....検証データ 15....判定結果データ1 16....判定結果データ2 17....不具合質問用データ 18....プログラム 101....OS 102....デバッガ 51…中央処理装置 52…RAM 53…ROM 54…通信装置 55…補助記憶装置 56…表示装置 57…入力装置 58…バス 59…出力装置 31…環境定義部 32…プログラミング部 40…テンプレートファイル生成部 45…チェック部 46…実行オブジェクト生成部 48…表示情報生成部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山内 信之 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 松本 奈津美 神奈川県川崎市幸区堀川町580番地 東芝 エルエスアイシステムサポート株式会社内 Fターム(参考) 5B042 GA23 GB05 HH01 HH30

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの実行履歴情報をもとに、該
    プログラムの動作状況を時系列にユーザーに対して表示
    し、表示された動作状況の中でユーザーが指定する不具
    合の箇所を受付けるユーザーインタフェース手段と、 前記ユーザーインタフェース手段によってユーザーから
    指定された不具合の箇所と該プログラムの動作状況から
    不具合要因を解析し、この不具合要因を解決するための
    解決策を特定する動作解析手段とを有し、 前記動作解析手段は、前記解決策を反映させた動作状況
    を再作成し、 前記ユーザーインタフェース手段は、前記不具合要因と
    前記解決策と再作成した動作状況とをユーザーに表示す
    ることを特徴とする情報処理装置。
  2. 【請求項2】 前記動作解析手段において、前記解決策
    を反映させる箇所を特定することができない場合に、 更に、ユーザーに該解決策を反映させる箇所の指定を促
    し、 前記動作解析手段は、このユーザーにより指定された箇
    所に該解決策を反映させた動作状況を再作成し、 前記ユーザーインタフェース手段は、前記不具合要因と
    解決策と再作成した動作状況とをユーザーに表示するこ
    とを特徴とする請求項1記載の情報処理装置。
  3. 【請求項3】 前記情報処理装置は、前記解決策を特定
    するためのプログラム機能対応情報を有することを特徴
    とする請求項1記載の情報処理装置。
  4. 【請求項4】 前記ユーザーインタフェース手段は、ユ
    ーザーが不具合の箇所を座標位置により指定すること
    で、該指定箇所を一意に認識することを特徴とする請求
    項1記載の情報処理装置。
  5. 【請求項5】 前記情報処理装置は、更に、 前記解決策と前記実行履歴情報とをもとに、本来の仕様
    を満たすプログラムのスケルトンを自動生成することを
    特徴とする請求項1記載の情報処理装置。
  6. 【請求項6】 プログラムの実行履歴情報をもとに、該
    プログラムの動作状況を時系列にユーザーに表示するス
    テップと、 ユーザーから指定された不具合の箇所と該プログラムの
    動作状況から不具合要因を解析し、この不具合要因を解
    決するための解決策を特定するステップと、 前記解決策を反映させた動作状況を再作成するステップ
    と、 前記不具合要因と前記解決策と再作成した動作状況とを
    ユーザーに表示するステップとをコンピュータに実現さ
    せることを特徴とする不具合解析プログラムを格納した
    コンピュータ読み取り可能な記憶媒体。
  7. 【請求項7】 請求項6に記載の不具合解析プログラム
    を格納したコンピュータ読み取り可能な記憶媒体は、さ
    らに、 前記解決策を反映させる箇所を特定することができない
    場合に、ユーザーに該解決策を反映させる箇所の指定を
    促すステップと、 この指定された箇所に該解決策を反映させた動作状況を
    再作成するステップと、 前記不具合要因と前記解決策と再作成した動作状況とを
    ユーザーに表示するステップとをコンピュータに実現さ
    せることを特徴とする不具合解析プログラムを格納した
    コンピュータ読み取り可能な記憶媒体。
  8. 【請求項8】 請求項6記載の不具合解析プログラムを
    格納したコンピュータ読み取り可能な記憶媒体は、 プログラム機能対応情報テーブルを用いて前記解決策を
    特定する機能をコンピュータに実現させることを特徴と
    する不具合解析プログラムを格納したコンピュータ読み
    取り可能な記憶媒体。
  9. 【請求項9】 請求項6記載の不具合解析プログラムを
    格納したコンピュータ読み取り可能な記憶媒体は、さら
    に、 前記解決策と前記実行履歴情報とをもとに、本来の仕様
    を満たすプログラムのスケルトンを自動生成するステッ
    プをコンピュータに実現させることを特徴とする不具合
    解析プログラムを格納したコンピュータ読み取り可能な
    記憶媒体。
  10. 【請求項10】 プログラムの実行履歴情報をもとに、
    該プログラムの動作状況を時系列にユーザーに表示する
    ステップと、 ユーザーから指定された不具合の箇所と該プログラムの
    動作状況から不具合要因を解析し、この不具合要因を解
    決するための解決策を特定するステップと、 前記解決策を反映させた動作状況を再作成するステップ
    と、 前記不具合要因と前記解決策と再作成した動作状況とを
    ユーザーに表示するステップとを含むことを特徴とする
    不具合解析方法。
  11. 【請求項11】 請求項10記載の不具合解析方法は、
    さらに、 前記解決策を反映させる箇所を特定することができない
    場合に、ユーザーに該解決策を反映させる箇所の指定を
    促すステップと、 この指定された箇所に該解決策を反映させた動作状況を
    再作成するステップと、 前記不具合要因と前記解決策と再作成した動作状況とを
    ユーザーに表示するステップとを含むことを特徴とする
    不具合解析方法。
  12. 【請求項12】 請求項10記載の不具合解析方法は、
    プログラム機能対応情報テーブルを用いて前記解決策を
    特定することを特徴とする不具合解析方法。
  13. 【請求項13】 請求項10記載の不具合解析方法は、
    更に、 前記解決策と前記実行履歴情報とをもとに、本来の仕様
    を満たすプログラムのスケルトンを自動生成するステッ
    プを含むことを特徴とする不具合解析方法。
  14. 【請求項14】 ハードウェア資源上で実行されるアプ
    リケーションプログラムの開発に用いられる開発支援シ
    ステムにおいて、 前記ハードウェア資源、およびソフトウェアを含む実行
    環境での実行時におけるシステム環境と、該実行環境の
    動作規則を定義する環境定義部と、 環境定義に基づいて前記実行環境におけるアプリケーシ
    ョンプログラムの仮想実行状態を検証するチェック部
    と、 前記仮想実行状態を可視的に表示するための表示情報を
    作成する表示情報作成部とを有することを特徴とするア
    プリケーションプログラム開発支援システム。
  15. 【請求項15】 前記表示情報を表示させる表示装置
    と、 前記表示装置の表示画面上に形成され、可視的に表示さ
    れた前記仮想実行状態を変化させる操作を該表示画面上
    で操作するインタフェース部とを有することを特徴とす
    る請求項14に記載のアプリケーションプログラム開発
    支援システム。
  16. 【請求項16】 前記インタフェース部は、 前記仮想実行状態における任意のプログラム実行段階
    で、前記実行環境からシステムコールを発行させる機能
    と、 前記仮想実行状態における任意の実行環境の要素に対し
    て、前記実行環境資源からのシステムコールを発行させ
    る機能とにより該仮想実行状態を変化させるものである
    ことを特徴とする請求項15に記載のアプリケーション
    プログラム開発支援システム。
  17. 【請求項17】 前記インタフェース部は、 前記仮想実行状態における実行環境上で操作される任意
    のオブジェクトに対して、前記実行環境からのシステム
    コールを発行させることにより該仮想実行状態を変化さ
    せるものであることを特徴とする請求項15に記載のア
    プリケーションプログラム開発支援システム。
  18. 【請求項18】 前記インタフェース部は、 前記仮想実行状態における任意のプログラム実行段階
    で、前記実行環境上で割り込み起動される他のプログラ
    ムによるイベントを発行させることにより該仮想実行状
    態を変化させるものであることを特徴とする請求項15
    に記載のアプリケーションプログラム開発支援システ
    ム。
  19. 【請求項19】 前記インタフェース部は、 前記仮想実行状態における任意のプログラム実行段階
    で、前記実行環境上で割り込み起動される他のプログラ
    ムによるイベントを発行させる機能と、当該他のプログ
    ラムの実行に要する時間を任意の長さに設定する機能と
    により該仮想実行状態を変化させるものであることを特
    徴とする請求項15に記載のアプリケーションプログラ
    ム開発支援システム。
  20. 【請求項20】 前記アプリケーションプログラムを前
    記実行環境源上で実行可能な形態で出力する実行オブジ
    ェクト生成部を有することを特徴とする請求項14記載
    のアプリケーションプログラム開発支援システム。
JP2000396112A 1999-12-28 2000-12-26 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム Pending JP2001249828A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000396112A JP2001249828A (ja) 1999-12-28 2000-12-26 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム
US09/752,837 US6901535B2 (en) 1999-12-28 2000-12-28 Information processing apparatus, defect analysis program, and defect analysis method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP37585999 1999-12-28
JP11-375859 1999-12-28
JP2000396112A JP2001249828A (ja) 1999-12-28 2000-12-26 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム

Publications (1)

Publication Number Publication Date
JP2001249828A true JP2001249828A (ja) 2001-09-14

Family

ID=26582745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000396112A Pending JP2001249828A (ja) 1999-12-28 2000-12-26 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム

Country Status (2)

Country Link
US (1) US6901535B2 (ja)
JP (1) JP2001249828A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018517952A (ja) * 2015-09-14 2018-07-05 鹿島建設株式会社 Bim環境における問題点の解決及び協業を支援可能な支援システム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957423B1 (en) * 2001-05-15 2005-10-18 Xilinx, Inc. Method of inlining a VHDL function call into Verilog
DE10146901A1 (de) * 2001-09-24 2003-05-15 Abb Research Ltd Verfahren und System zur Bearbeitung von Fehlerhypothesen
JP2003173246A (ja) * 2001-12-05 2003-06-20 Ricoh Co Ltd デバイス情報収集方法、プログラム、サーバ装置及び記憶媒体
EP1398948B1 (en) * 2002-09-13 2013-11-06 Ricoh Company, Ltd. Image forming apparatus, methods used therein and a computer readable storage medium
US20080141221A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Using recorder technology to find defects in software applications
US20080155305A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation Collaborative problem determination based on graph visualization
US7757125B2 (en) * 2007-02-16 2010-07-13 International Business Machines Corporation Defect resolution methodology and data defects quality/risk metric model extension
US7917897B2 (en) * 2007-02-16 2011-03-29 International Business Machines Corporation Defect resolution methodology and target assessment process with a software system
US8352904B2 (en) * 2008-06-24 2013-01-08 International Business Machines Corporation Early defect removal model
US8615739B2 (en) * 2009-04-23 2013-12-24 Hewlett-Packard Development Company, L.P. Resource monitoring
US8578341B2 (en) 2009-09-11 2013-11-05 International Business Machines Corporation System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
US8566805B2 (en) * 2009-09-11 2013-10-22 International Business Machines Corporation System and method to provide continuous calibration estimation and improvement options across a software integration life cycle
US10235269B2 (en) * 2009-09-11 2019-03-19 International Business Machines Corporation System and method to produce business case metrics based on defect analysis starter (DAS) results
US8495583B2 (en) * 2009-09-11 2013-07-23 International Business Machines Corporation System and method to determine defect risks in software solutions
US8893086B2 (en) 2009-09-11 2014-11-18 International Business Machines Corporation System and method for resource modeling and simulation in test planning
US8667458B2 (en) * 2009-09-11 2014-03-04 International Business Machines Corporation System and method to produce business case metrics based on code inspection service results
US8352237B2 (en) 2009-09-11 2013-01-08 International Business Machines Corporation System and method for system integration test (SIT) planning
US8539438B2 (en) 2009-09-11 2013-09-17 International Business Machines Corporation System and method for efficient creation and reconciliation of macro and micro level test plans
US8527955B2 (en) 2009-09-11 2013-09-03 International Business Machines Corporation System and method to classify automated code inspection services defect output for defect analysis
US8689188B2 (en) * 2009-09-11 2014-04-01 International Business Machines Corporation System and method for analyzing alternatives in test plans
US8453123B2 (en) 2010-07-16 2013-05-28 International Business Machines Corporation Time-based trace facility
US8935676B2 (en) * 2011-08-07 2015-01-13 Hewlett-Packard Development Company, L.P. Automated test failure troubleshooter
WO2014066331A1 (en) * 2012-10-25 2014-05-01 Unisys Corporation Performance monitoring of virtualized instructions
JP6005761B2 (ja) 2012-12-21 2016-10-12 日本電信電話株式会社 監視装置および監視方法
US9129063B2 (en) * 2013-05-14 2015-09-08 Oracle International Corporation Visualizing a computer program execution history
US11063946B2 (en) * 2018-10-24 2021-07-13 Servicenow, Inc. Feedback framework

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01180645A (ja) * 1988-01-13 1989-07-18 Hitachi Ltd 保守診断機構の自動検証方式
JPH0553865A (ja) 1991-08-29 1993-03-05 Nec Corp プログラム返却情報自動解析装置
JPH09502034A (ja) * 1993-05-10 1997-02-25 シンキング・ソフトウエア・インコーポレーテッド より少ない再コンパイル及び再リンケージ処理を可能にする目標プロセスのオブジェクト・コードの別形式を導入することにより、誤り位置とシステムへの新たな要求に起因する修正位置との自動的な識別を可能にする、コンピュータ・ソフトウェア・プロセスにおける不確実性最小化方法
US5488648A (en) * 1993-08-17 1996-01-30 Telefonaktiebolaget L M Ericsson Behavior monitoring and analyzing system for stored program controlled switching system
GB2282935B (en) * 1993-10-13 1998-01-07 Netcomm Ltd Data network switch
JPH09146797A (ja) 1995-11-27 1997-06-06 Fujitsu Ltd 情報処理装置
JP3072048B2 (ja) * 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
JPH10312321A (ja) 1997-05-12 1998-11-24 Hitachi Ltd オンラインシステム障害解析方法
US5987252A (en) * 1997-09-19 1999-11-16 Digital Equipment Corporation Method and apparatus for statically analyzing a computer program for data dependencies

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018517952A (ja) * 2015-09-14 2018-07-05 鹿島建設株式会社 Bim環境における問題点の解決及び協業を支援可能な支援システム

Also Published As

Publication number Publication date
US6901535B2 (en) 2005-05-31
US20010014958A1 (en) 2001-08-16

Similar Documents

Publication Publication Date Title
JP2001249828A (ja) 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム
Marzullo et al. Tools for distributed application management
US6367073B2 (en) Centralized, automated installation of software products
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
JPH1083326A (ja) トレース・データ収集方法およびコンピュータ読み取り可能コード
JP5326374B2 (ja) プロセッサ、性能プロファイリング装置、性能プロファイリングプログラムおよび性能プロファイリング方法
JPH0934723A (ja) ネットワークでのアプリケーション・プログラムの導入のための導入計画オブジェクトのコミット
JPH07105044A (ja) コンピュータプログラムの実行をシュミレーションする方法及びシステム
US7721250B2 (en) System and method for interactive and integrated software development process and phases
JP2006099743A (ja) 再現可能なテストの自動化に関するテストケース実行挙動を選択するシステムおよび方法
CN107273145A (zh) 一种软件管理方法及装置、终端
CN101216802B (zh) 一种交叉调试器中条件断点实现方法
EP1025489B1 (en) System to associate control with applications using drag and drop interface
CN115220859A (zh) 数据输入方式的监测方法、装置、电子设备和存储介质
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体
JP2007164532A (ja) タスク表示装置、タスク表示方法及びタスク表示プログラム
JP2003015914A (ja) 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
WO2007072567A1 (ja) 並列処理支援装置
JP7328922B2 (ja) 設定装置、設定方法、及びプログラム
JP2002157386A (ja) ワークフロー管理方法および装置並びにその処理プログラム並びにその処理プログラムを格納した記録媒体
CN118013903B (zh) 文件操作验证***、验证方法、设备及介质
JPH1115680A (ja) マルチプロセス管理装置及びプログラム記憶媒体
JP3377956B2 (ja) プログラマブルコントローラ
JPH09305366A (ja) 画面表示最適化方法
Jones The data flow simulator, a tool for system simulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081028