JPH11224186A - ソフトウェア解析装置及びソフトウェア解析方法 - Google Patents

ソフトウェア解析装置及びソフトウェア解析方法

Info

Publication number
JPH11224186A
JPH11224186A JP10024357A JP2435798A JPH11224186A JP H11224186 A JPH11224186 A JP H11224186A JP 10024357 A JP10024357 A JP 10024357A JP 2435798 A JP2435798 A JP 2435798A JP H11224186 A JPH11224186 A JP H11224186A
Authority
JP
Japan
Prior art keywords
information
program
analysis
program analysis
recording medium
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.)
Granted
Application number
JP10024357A
Other languages
English (en)
Other versions
JP3997495B2 (ja
Inventor
Hiroaki Kimura
博昭 木村
Masahiro Noguchi
正浩 野口
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.)
Nippon Steel Corp
Original Assignee
Nippon Steel Corp
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 Nippon Steel Corp filed Critical Nippon Steel Corp
Priority to JP02435798A priority Critical patent/JP3997495B2/ja
Priority to US09/241,735 priority patent/US6996516B1/en
Publication of JPH11224186A publication Critical patent/JPH11224186A/ja
Application granted granted Critical
Publication of JP3997495B2 publication Critical patent/JP3997495B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 コンピュータに実装できるメモリ容量に制限
がある場合でも、大規模なプログラムの解析を自動的に
行うことを可能とするソフトウェアシステム解析装置及
びソフトウェア解析方法を提供する。 【解決手段】 プログラム解析情報格納部12は、プロ
グラム解析情報作成部11が、ソースファイル10に基
づいて作成したプログラム解析情報をハードディスク等
の不揮発性の情報記録媒体にデータベース化して格納す
る。このとき、ひとまとまりの解析情報が作成され次
第、これらをトランザクションとして順次データベース
に格納する。これにより、コンピュータ上の限られたメ
モリ容量の制約から開放され、また、解析の途中で何ら
かの障害が発生した場合でも、既にデータベースに格納
されたプログラム解析情報は安全に保護され、後に解析
を再開するときに、未格納の部分から解析処理を行えば
よい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータプロ
グラムの内容を理解し易くするために、コンピュータプ
ログラムについて解析を行うソフトウェア解析装置及び
ソフトウェア解析方法に関連する。
【0002】
【従来の技術】多数のプログラマが協力して大規模なプ
ログラムを開発する場合や、既にあるプログラムの保守
を行おうとする場合、他人が書いたプログラムを理解し
なければならないことがある。しかし、他人が書いたプ
ログラムを理解することは、大きな困難を伴う。
【0003】そこで、プログラムのソースコードを自動
的に解析して様々な情報を提供することにより、プログ
ラムの理解を支援する装置が提案されている。その一例
としてコールグラフやフローグラフを作成し、プログラ
ムを視覚的に把握できるようにする装置及び方法があ
る。これについては、例えば、本出願人による特願平9
−32415、特願平9−32452などを参照するこ
とができる。
【0004】
【発明が解決しようとする課題】しかしながら、大規模
なプログラム、例えば100万ステップを超えるような
プログラムに対して解析を行おうとすると、解析情報の
ボリュームも非常に大きくなる。このため、解析情報
が、通常のワークステーションやパーソナルコンピュー
タが実装できる最大容量のメモリに入りきらないとか、
解析に要する時間が非常に長くかかるという状況が起こ
る。例えば、解析途中にメモリ容量が不足し、解析情報
が入らなくなってしまった場合には、解析はそれ以上先
に進めることはできないので、何らかの対応策を講じた
上で、最初からプログラムの解析を再度行わなければな
らず、作業の効率を悪くしていた。
【0005】本発明は、上記事情に基づいてなされたも
のであり、コンピュータに実装できるメモリ容量に制限
がある場合でも、大規模なプログラムの解析を自動的に
行うことを可能とするソフトウェア解析装置及びソフト
ウェア解析方法を提供することを目的とする。また、本
発明の他の目的は、プログラムの解析を行っている際に
何らかの要因で解析が中断された場合等に、中断される
間際までに得られた情報を有効に利用することのできる
ソフトウェア解析装置及びソフトウェア解析方法を提供
することである。
【0006】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明に係るソフトウェア解析装置は、コンピュ
ータプログラムのソースコードを読み込んで、自動的に
プログラム解析情報を作成するプログラム解析情報作成
手段と、該プログラム解析情報作成手段によって前記プ
ログラム解析情報が作成され次第、適当な単位で分割し
て所定のデータ記録媒体に格納するプログラム解析情報
格納手段と、前記データ記録媒体から前記プログラム解
析情報を読み出して、プログラム解析を実行するプログ
ラム解析手段と、を有することを特徴とする。
【0007】本発明に係るソフトウェア解析方法は、コ
ンピュータプログラムのソースコードを読み込んで、自
動的にプログラム解析情報を作成するプログラム解析情
報作成工程と、該プログラム解析情報作成工程によって
前記プログラム解析情報が作成され次第、適当な単位で
分割して所定のデータ記録媒体に格納するプログラム解
析情報格納工程と、前記データ記録媒体から前記プログ
ラム解析情報を読み出して、プログラム解析を実行する
プログラム解析工程と、を有することを特徴とする。
【0008】本発明に係るコンピュータ読み取り可能な
記録媒体は、コンピュータに、コンピュータプログラム
のソースコードを読み込んで、自動的にプログラム解析
情報を作成するプログラム解析情報作成機能と、該プロ
グラム解析情報作成機能によって前記プログラム解析情
報が作成され次第、適当な単位で分割して所定のデータ
記録媒体に格納するプログラム解析情報格納機能と、前
記データ記録媒体から前記プログラム解析情報を読み出
して、プログラム解析を実行するプログラム解析機能
と、を実行させるプログラムを記録したことを特徴とす
る。
【0009】
【発明の実施の形態】以下に図面を参照して、本発明の
実施の形態について説明する。図1は、本発明の一実施
形態のソフトウェア解析装置(以下「本装置」という)
における解析情報作成部について説明するための図、図
2は本実施形態のソフトウェア解析装置がデータベース
に格納する解析情報の構造を示す図、図3は本実施形態
のプログラム解析部について説明するための図である。
【0010】図1において、ソースファイル10は、所
定の言語(例えばC言語)で記述されたプログラムのソ
ースコードが記録されたファイルである。プログラム解
析情報作成部11は、コンピュータによるバッチ処理に
よって、読み込まれたソースファイル10のソースコー
ドについて所定の解析処理を行ってプログラム解析情報
を作成し、これらをプログラム解析情報格納部12によ
りデータベース化して、ハードディスク等の情報記録媒
体12aに格納する。本実施形態の場合、プログラム解
析情報には、図2に示すように、構文解析木(シンボル
テーブルを含む)、コールグラフ、フローグラフ、デー
タフロー情報、プログラム依存グラフ、モジュール入出
力情報が含まれる。
【0011】プログラム解析情報作成部11は、図2に
示すように、プログラム解析情報を階層化して作成す
る。このように階層化するのは、上層のプログラム解析
情報を作成するときに、下層のプログラム解析情報を利
用することによるものである。このとき、一つの層ごと
のひとまとまりのプログラム解析情報の作成が終了した
段階で、プログラム解析情報格納部12がこれらをトラ
ンザクションとして順次データベースに格納する。
【0012】例えば、コールグラフやフローグラフを作
成するには構文解析木が必要となり、データフロー情報
を作成するには構文解析木、コールグラフ及びフローグ
ラフが必要となるので、図2の下層のプログラム解析情
報から順番にプログラム解析情報格納部12の情報記録
媒体12aに格納してゆく。このように、上層のあるプ
ログラム解析情報を作成する場合に、既に作成され、格
納されているている下層のプログラム解析情報を必要と
する関係を、ここでは「階層化」と呼んでいる。
【0013】仮に、トランザクション機能を用いずに、
バッチ処理によってすべてのプログラム解析情報を作成
し、それから一括して格納するようにすると、特に大規
模なプログラムの場合には、プログラム解析情報の大き
さがワークステーションやパーソナルコンピュータに搭
載できるメモリの容量を超えてしまい、それまでに行っ
た処理が無駄になることがある。
【0014】これに対して、本装置では、プログラム解
析情報作成部11が作成したプログラム解析情報を、プ
ログラム解析情報格納部12が階層ごとに分割し、これ
らを順次ハードディスク等の情報記録媒体12aにデー
タベース化して格納するようにしたことによって、コン
ピュータ上の限られたメモリ容量の制約から開放される
というメリットがある。
【0015】また、図2のデータ構造の各階層ごとに、
それらが作成された段階でトランザクションとしてハー
ドディスク等の情報記録媒体12aに格納することによ
って、何らかの障害が発生した場合でも、プログラム解
析情報のうち、それまでに格納された部分は安全に保護
される。例えば構文解析からプログラム依存グラフの作
成まで数日程度を要する大規模なプログラムの解析を行
おうとした場合に、途中で何らかの障害が発生してコン
ピュータがダウンし、メインメモリ上に展開されていた
データが破壊されたとしても、少なくとも既にデータベ
ースに格納された部分については、安全に保護され、次
に作業を再開するときは、既にデータベースに格納され
ているプログラム解析情報については、改めて解析処理
を行う必要はなく、それ以降の解析処理から再開すれば
よいので、重複した作業を回避することができる。
【0016】なお、本実施形態では、データベースとし
ては、オブジェクト指向データベースソフトウェアを利
用し、プログラム解析情報は、オブジェクト指向言語、
例えばC++などを用いて作成する。このようなデータ
ベースとするのは、プログラム解析情報は複雑なものな
ので、リレーショナルデータベースを用いたのでは格納
が困難なためである。また、作成されたプログラム解析
情報を、作成された構造のまま格納することができるの
で、便利である。
【0017】バッチ解析部13は、プログラム解析情報
格納部12によって情報記録媒体12aに格納された情
報を用いて、バッチ処理で解析することができる解析処
理を行い、その結果をバッチ解析結果ファイル14に格
納する。このバッチ処理中は、オペレータからの指示な
どは特に必要なく、本装置が自動的に解析を行う。バッ
チ解析結果ファイル14には、例えばプログラムの規模
に関連するメトリクス(metrics)情報や冗長度
情報、保守用文書情報などが含まれる。「メトリクス情
報」とは、ソフトウェアの数値化指標に関する情報であ
り、本装置では、量的複雑さを表すメトリクスと、質的
複雑さを表すメトリクスを計測し、その情報を作成す
る。量的複雑さのメトリクスとしては、プログラムの物
理的な記述量を計測するサイズ・メトリクスと、制御構
造の複雑さを計測するサイクロマティック数の二種類を
計測し、質的複雑さのメトリクスとしては、モジュール
の内容そのものを表す凝集度と結合度を計測する。「冗
長度情報」とは、単一の手続きについて、出力に影響し
ない冗長な文に関する情報である。冗長な文は出力に影
響しないので、ソースコードから削除しても外部に対す
る出力に変化はない。冗長度情報に従って、このような
冗長な文を確認して対応策をとっておくことによって、
意図しない動作の発生等を防止することができる。「保
守用文書情報」とは、プログラムを保守する際に用いる
ドキュメント類で、定義されている手続きや型、変数名
などの一覧や、それぞれの手続き等がどこに関連したも
のであるかを記載したものであり、例えば、他人が作成
したプログラムを理解するときに使われる。「保守用文
書情報」を取得しておくことで、ハイパーテキスト方式
で情報提供することができ、紙ベースのドキュメントと
比べると、格段に便利になる。
【0018】冗長度情報、メトリクス情報及び保守用文
書情報などは、バッチ解析処理の結果生成されるが、バ
ッチ解析処理の結果生成されるものは、これらに限られ
ず、必要に応じて種々のバッチ解析処理を行い、その結
果、それぞれのバッチ解析処理に対応した種々の情報を
生成するよう、バッチ解析部13を設計することが可能
である。
【0019】図2において、「シンボルテーブル」と
は、変数の情報の表である。例えば、同じ「a」という
文字を使っている場合でも、それらが同じ変数を指す場
合と、異なる変数を指す場合がある。例えば、異なる二
つの関数の中で、その変数が大域変数であれば、同じも
のであるし、それぞれの関数においてローカルに定義さ
れた変数であれば、別々の変数となる。したがって、同
じ文字で記述された変数が複数あったときに、それらが
同じものなのか異なるものなのかは、直ちには識別でき
ない。このようなシンボルに関する情報を管理するのが
シンボルテーブルであり、このテーブルを参照すること
によって、同じシンボルで表されたものが同じものか異
なるものかを知ることができる。
【0020】図2において、「コールグラフ」とは、手
続き(C言語では「関数」)の間の呼び出し関係を示し
た情報である。このコールグラフに基づいて、図3のプ
ログラム解析部201 がこれをノードとエッジを用いて
グラフィック表示させた場合、グラフィック表示された
グラフでは、ノードが手続きを表し、エッジ(矢印)が
手続き間の関係を表す。なお、コールグラフをグラフィ
ック表示させると、手続き間の呼び出し関係が視覚的に
把握できるだけでなく、プログラムの構造化の程度や内
容の理解や、望ましくない手続き呼び出しの検出が容易
になる。
【0021】図2において、「フローグラフ」とは、あ
る一つの手続き内の制御フローに関する情報である。フ
ローグラフに基づいて、プログラム解析部202 がこれ
を、ノードとエッジを用いてグラフィック表示させる
と、ノードは基本ブロック(連続した文の列からなり、
制御が先頭の文に移された後途中で停止したり分岐した
りせず、最後の文で制御が離れるものをいう)を表し、
エッジは基本ブロック間の制御のフローを表す。
【0022】フローグラフについても、プログラム解析
部202 によって、その情報をグラフィック表示させる
と、その手続き内の制御フローが視覚的に把握できるだ
けでなく、プログラム中のある場所(一つの文か、また
は一つの変数)に影響を与える部分もしくは与えられる
部分の解析や、望ましくない制御フローの検出を可能に
する。例えば、ある場所が制御依存する部分はその場所
から入口ノードに向かってフローグラフを辿ることで検
出される。また、制御が到達することのないデッドコー
ドは、入口ノード以外のノードであって、流入するエッ
ジのないノードとして表現される。
【0023】図2において、「データフロー情報」と
は、例えばある場所で定義された変数がどこで使用され
るかといったことに関するデータの流れを解析した結果
の情報である。プログラム解析部による対話処理でデー
タフロー異常検査を行うときは、図2に階層的に示した
プログラム解析情報のうち、構文解析木、コールグラ
フ、フローグラフ、そしてデータフロー情報までが必要
となる。データフロー異常とは、データに対する不当な
イベントの組み合わせである。すべてのデータは、定義
した上で使用し、最後に未定義にするという一連の順序
を守って使用しなければならないが、このような順序を
守らない不当な組み合わせは、データフロー異常とな
る。
【0024】データフロー異常が存在しても、ソースコ
ードをコンパイルすることは可能である。しかし、実際
にコンパイルしたプログラムを実行させているときに、
異常なパスを通るとデータフロー異常が顕在化すること
がある。したがって、このような異常は、事前にソース
コードの段階で除去しておくのが望ましい。データフロ
ー異常の検出については、本出願人による特許出願、特
願平9−32415及び特願平9−32452を参照す
ることができる。なお、ここでは、データフロー異常検
査を対話処理で行う場合について説明したが、データフ
ロー異常検査は、バッチ処理で行うこともできる。
【0025】図2において、「プログラム依存グラフ」
とは、制御の依存関係と、データの依存関係をグラフで
表現したものである。プログラム依存グラフが作成され
ると、プログラムの影響解析を実行することができる。
影響解析とは、プログラム中のある場所(一つの文か、
または一つの変数)を変更すると、それがどこまで影響
を与えるか、あるいは影響を与えないかを求める解析で
ある。
【0026】次に、図3を参照して、プログラム解析部
について説明する。同図には、プログラム解析部2
1 ,・・・,20i が示されている。プログラム解析
部201等は、プログラム解析情報格納部12によって
ハードディスク装置等にデータベース化して格納されて
いるプログラム解析情報に基づいて、種々のプログラム
解析を実行する部分である。各プログラム解析部2
1 ,・・・,20i は解析する種類に対応して設けら
れている。プログラム解析部201 等は、プログラム解
析情報格納部12から必要なプログラム解析情報を取り
出してきて、所定の解析処理を行い、その解析結果21
1 等をコンピュータ画面上にGUI(Graphica
l User Interface)221 等により表
示させる。オペレータは、この結果を見て、何らかの指
示が必要な場合には、GUI221 等を介してプログラ
ム解析部201 等へ指示を送り、プログラム解析部20
1 等に再度処理を行わせ、その結果を表示させる。この
ような処理を繰り返しながら、プログラム解析を行って
ゆく。このように、オペレータがGUI221 等を介し
てコンピュータに指示し、それに対してコンピュータが
処理を行うような操作を対話処理と呼ぶ。
【0027】本実施形態では、プログラム解析部201
は、コンピュータ画面にコールグラフをグラフィック表
示させる解析処理を行う。これにより、コールグラフの
内容を実際に視覚的に把握できるように、プログラム内
の関数の呼出し関係の理解が容易となる。この場合、プ
ログラム解析部201 は、プログラム解析情報として、
構文解析木及びコールグラフをプログラム解析情報格納
部12から読み出して来る。また、プログラム解析部2
2 は、コンピュータ画面にフローグラフをグラフィッ
ク表示させる解析処理を行う。これにより、フローグラ
フの内容を実際に視覚的に把握できるように、ある関数
の内部における変数の流れの理解が容易となる。この場
合、プログラム解析部202 は、プログラム解析情報と
して、構文解析木及びフローグラフをプログラム解析情
報格納部12から読み出して来る。
【0028】プログラム解析部が実行する解析処理の他
の例して、影響範囲解析がある。これは、プログラム解
析情報格納部12によりデータベースからプログラム解
析情報として、構文解析木、コールグラフ、フローグラ
フ、プログラム依存グラフ、モジュール入出力情報を読
み出して、プログラムのソースコードのある行が、他の
どの行まで影響を及ぼしているかを解析する。具体的に
は、プログラムのソースコードを表示し、そこである行
を指定して、その行がソースコードのどこに影響してい
るかを、例えば色を変えて表示する。そして、その影響
されている行が更にどの行に影響しているか、というこ
とを順次調べる、ということを行う。こういう対話的な
処理を繰り返すことによって、オペレータは、例えば他
人が作成したプログラムの構造を利用しやすくなる。
【0029】更に、プログラム解析部が行う別の例とし
ては、構造解析、データフロー異常解析などがある。図
3において、GUI23は、バッチ解析結果ファイル1
3の内容を、オペレータが見ることができるように表示
させるためのものである。また、GUI連動部24は、
GUI221 ,・・・,22i 及び23のうちので任意
の数のGUIをコンピュータ画面に表示させ、例えばあ
るGUI画面に表示されたソースプログラムのある行を
指定すると、他のGUI画面に表示されたフローグラフ
の対応する部分が色違いで表示されるというように、複
数のGUI画面を関連付けて表示するための部分であ
る。これを用いることによって、プログラム内容の理解
がより容易となる。
【0030】本装置では、プログラム解析情報作成部1
1において、どの解析情報までを作成するかを、オペレ
ータが任意に指定できるようにしてもよい。このように
すると、例えば、コールグラフを表示するだけという場
合には、それより上位の解析情報は必要ないので、その
旨を指定しておくことにより、バッチ処理による解析処
理がより高速化する。
【0031】次に、本発明の記録媒体について説明す
る。本発明のソフトウェア解析装置は、プログラムを読
み込んだコンピュータが、そのプログラムに従って動作
することによって実現される。したがって、このようプ
ログラムを記録した記録媒体、例えばフロッピーディス
ク、CD−ROM、光磁気ディスク、磁気テープ、半導
体記憶装置などをコンピュータに装着し、当該プログラ
ムを読み込ませることによって、コンピュータ上で本発
明を実施することが可能となる。
【0032】尚、本発明は、上記実施形態に限定される
ものではなく、その要旨の範囲内で種々の変更が可能で
ある。
【0033】
【発明の効果】以上説明したように、本発明によれば、
プログラム解析情報作成手段によって作成されたプログ
ラム解析情報を複数に分割し、それぞれを順次所定のデ
ータ記録媒体に格納するので、大規模なプログラムに対
してプログラム解析情報を得ようとした場合に、コンピ
ュータに実装できるメモリ容量に制限があっても、大規
模なプログラムのプログラム解析情報を安全に得ること
ができる。
【図面の簡単な説明】
【図1】本発明の一実施形態のソフトウェア解析装置の
における解析情報作成部について説明するためのであ
る。
【図2】本発明の一実施形態のソフトウェア解析装置が
データベースに格納するプログラム解析情報の構造を示
した図である。
【図3】本発明の一実施形態のプログラム解析部につい
て説明するための図である。
【符号の説明】
10 ソースファイル 11 プログラム解析情報作成部 12 プログラム解析情報格納部 13 バッチ解析部 14 バッチ解析結果ファイル 201 ,・・・20i プログラム解析部 211 ,・・・21i 解析結果 221 ,・・・22i ,23 GUI 24 GUI連動部

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータプログラムのソースコード
    を読み込んで、自動的にプログラム解析情報を作成する
    プログラム解析情報作成手段と、 該プログラム解析情報作成手段によって前記プログラム
    解析情報が作成され次第、適当な単位で分割して所定の
    データ記録媒体に格納するプログラム解析情報格納手段
    と、 前記データ記録媒体から前記プログラム解析情報を読み
    出して、プログラム解析を実行するプログラム解析手段
    と、 を有することを特徴とするソフトウェア解析装置。
  2. 【請求項2】 前記プログラム解析手段は、前記データ
    記録媒体から前記プログラム解析情報を読み出して、オ
    ペレータとの間の対話的処理によりプログラム解析を実
    行することを特徴とする請求項1記載のソフトウェア解
    析装置。
  3. 【請求項3】 前記プログラム解析情報格納手段は、前
    記プログラム解析情報をデータベース化して前記データ
    記録媒体に格納することを特徴とする請求項1又は2記
    載のソフトウェア解析装置。
  4. 【請求項4】 前記データ記録媒体から前記プログラム
    解析情報を読み出して、バッチ解析処理により、メトリ
    クス情報、冗長度情報、データフロー異常情報、保守用
    文書情報のうち少なくとも一つを作成することを特徴と
    する請求項1,2又は3記載のソフトウェア解析装置。
  5. 【請求項5】 前記プログラム解析情報には、 前記ソースコードに基づいて作成される構文解析木、 前記ソースコードに基づいて前記ソースコードに用いら
    れているシンボルの意味が記述されたシンボルテーブ
    ル、 前記構文解析木に基づいて作成されるコールグラフある
    いはフローグラフ、 前記構文解析木、シンボルテーブル、フローグラフ、コ
    ールグラフに基づいて作成されるデータフロー情報、 前記構文解析木、シンボルテーブル、コールグラフ、フ
    ローグラフ、データフロー情報に基づいて作成されるプ
    ログラム依存グラフ、 およびモジュール入出力情報、 のうち少なくとも一つが含まれていることを特徴とする
    請求項1,2,3又は4記載のソフトウェア解析装置。
  6. 【請求項6】 前記プログラム解析情報作成手段は、前
    記構文解析木及びシンボルテーブル、コールグラフ及び
    フローグラフ、データフロー情報、並びにプログラム依
    存グラフ及びモジュール入出力情報を、この順序で作成
    し、出力することを特徴とする請求項1,2,3,4又
    は5記載のソフトウェア解析装置。
  7. 【請求項7】 コンピュータプログラムのソースコード
    からプログラムの解析に必要な情報を抽出し、抽出され
    た前記情報を解析する目的別に階層的にデータベースに
    登録し、 プログラムの解析を行うときは解析する目的に応じて所
    定の階層に登録されている前記情報を読み出して解析を
    実行することを特徴とするソフトウェア解析装置。
  8. 【請求項8】 前記データベースは、オブジェクト指向
    型のデータベースであることを特徴とする請求項7記載
    のソフトウェア解析装置。
  9. 【請求項9】 コンピュータプログラムのソースコード
    を読み込んで、自動的にプログラム解析情報を作成する
    プログラム解析情報作成工程と、 該プログラム解析情報作成工程によって前記プログラム
    解析情報が作成され次第、適当な単位で分割して所定の
    データ記録媒体に格納するプログラム解析情報格納工程
    と、 前記データ記録媒体から前記プログラム解析情報を読み
    出して、プログラム解析を実行するプログラム解析工程
    と、 を有することを特徴とするソフトウェア解析方向。
  10. 【請求項10】 前記プログラム解析工程は、前記デー
    タ記録媒体から前記プログラム解析情報を読み出して、
    オペレータとの間の対話的処理によりプログラム解析を
    実行することを特徴とする請求項9記載のソフトウェア
    解析方法。
  11. 【請求項11】 前記プログラム解析情報格納工程は、
    前記プログラム解析情報をデータベース化して前記デー
    タ記録媒体に格納することを特徴とする請求項9又は1
    0記載のソフトウェア解析方法。
  12. 【請求項12】 前記データ記録媒体から前記プログラ
    ム解析情報を読み出して、バッチ解析処理により、メト
    リクス情報、冗長度情報、データフロー異常情報、保守
    用文書情報のうち少なくとも一つを作成することを特徴
    とする請求項9,10又は11記載のソフトウェア解析
    方法。
  13. 【請求項13】 前記プログラム解析情報には、 前記ソースコードに基づいて作成される構文解析木、 前記ソースコードに基づいて前記ソースコードに用いら
    れているシンボルの意味が記述されたシンボルテーブ
    ル、 前記構文解析木に基づいて作成されるコールグラフある
    いはフローグラフ、 前記構文解析木、シンボルテーブル、フローグラフ、コ
    ールグラフに基づいて作成されるデータフロー情報、 前記構文解析木、シンボルテーブル、コールグラフ、フ
    ローグラフ、データフロー情報に基づいて作成されるプ
    ログラム依存グラフ、 およびモジュール入出力情報、 のうち少なくとも一つが含まれていることを特徴とする
    請求項9,10,11又は12記載のソフトウェア解析
    方法。
  14. 【請求項14】 前記プログラム解析情報作成手段は、
    前記構文解析木及びシンボルテーブル、コールグラフ及
    びフローグラフ、データフロー情報、並びにプログラム
    依存グラフ及びモジュール入出力情報を、この順序で作
    成し、出力することを特徴とする請求項9,10,1
    1,12又は13記載のソフトウェア解析方法。
  15. 【請求項15】 コンピュータプログラムのソースコー
    ドからプログラムの解析に必要な情報を抽出し、抽出さ
    れた前記情報を解析する目的別に階層的にデータベース
    に登録し、 プログラムの解析を行うときは解析する目的に応じて所
    定の階層に登録されている前記情報を読み出して解析を
    実行することを特徴とするソフトウェア解析方法。
  16. 【請求項16】 前記データベースは、オブジェクト指
    向型のデータベースであることを特徴とする請求項15
    記載のソフトウェア解析方法。
  17. 【請求項17】 コンピュータに、 コンピュータプログラムのソースコードを読み込んで、
    自動的にプログラム解析情報を作成するプログラム解析
    情報作成機能と、 該プログラム解析情報作成機能によって前記プログラム
    解析情報が作成され次第、適当な単位で分割して所定の
    データ記録媒体に格納するプログラム解析情報格納機能
    と、 前記データ記録媒体から前記プログラム解析情報を読み
    出して、プログラム解析を実行するプログラム解析機能
    と、 を実行させるプログラムを記録したコンピュータ読み取
    り可能な記録媒体。
  18. 【請求項18】 前記プログラム解析機能は、前記デー
    タ記録媒体から前記プログラム解析情報を読み出して、
    オペレータとの間の対話的処理によりプログラム解析を
    実行することを特徴とする請求項17記載のコンピュー
    タ読み取り可能な記録媒体。
  19. 【請求項19】 前記プログラム解析情報格納機能は、
    前記プログラム解析情報をデータベース化して前記デー
    タ記録媒体に格納することを特徴とする請求項17又は
    18記載のプログラム読み取り可能な記録媒体。
  20. 【請求項20】 前記データ記録媒体から前記プログラ
    ム解析情報を読み出して、バッチ解析処理により、メト
    リクス情報、冗長度情報、データフロー異常情報、保守
    用文書情報のうち少なくとも一つを作成する機能を実行
    させるコンピュータプログラムが記録されていることを
    特徴とする請求項17,18又は19記載のコンピュー
    タ読み取り可能な記録媒体。
  21. 【請求項21】 前記プログラム解析情報には、 前記ソースコードに基づいて作成される構文解析木、 前記ソースコードに基づいて前記ソースコードに用いら
    れているシンボルの意味が記述されたシンボルテーブ
    ル、 前記構文解析木に基づいて作成されるコールグラフある
    いはフローグラフ、 前記構文解析木、シンボルテーブル、フローグラフ、コ
    ールグラフに基づいて作成されるデータフロー情報、 前記構文解析木、シンボルテーブル、コールグラフ、フ
    ローグラフ、データフロー情報に基づいて作成されるプ
    ログラム依存グラフ、 およびモジュール入出力情報、 のうち少なくとも一つが含まれていることを特徴とする
    請求項17,18,19又は20記載のコンピュータ読
    み取り可能な記録媒体。
  22. 【請求項22】 前記プログラム解析情報作成機能は、
    前記構文解析木及びシンボルテーブル、コールグラフ及
    びフローグラフ、データフロー情報、並びにプログラム
    依存グラフ及びモジュール入出力情報を、この順序で作
    成し、出力することを特徴とする請求項17,18,1
    9,20又は21記載のコンピュータ読み取り可能な記
    録媒体。
  23. 【請求項23】 コンピュータプログラムのソースコー
    ドからプログラムの解析に必要な情報を抽出し、抽出さ
    れた前記情報を解析する目的別に階層的にデータベース
    に登録し、 プログラムの解析を行うときは解析する目的に応じて所
    定の階層に登録されている前記情報を読み出して解析を
    実行する機能を実行するコンピュータプログラムが記録
    されていることを特徴とするコンピュータ読み取り可能
    な記録媒体。
  24. 【請求項24】 前記データベースは、オブジェクト指
    向型のデータベースであることを特徴とする請求項23
    記載のコンピュータ読み取り可能な記録媒体。
JP02435798A 1998-02-05 1998-02-05 ソフトウェア解析装置及びソフトウェア解析方法 Expired - Fee Related JP3997495B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02435798A JP3997495B2 (ja) 1998-02-05 1998-02-05 ソフトウェア解析装置及びソフトウェア解析方法
US09/241,735 US6996516B1 (en) 1998-02-05 1999-02-02 Apparatus for analyzing software and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02435798A JP3997495B2 (ja) 1998-02-05 1998-02-05 ソフトウェア解析装置及びソフトウェア解析方法

Publications (2)

Publication Number Publication Date
JPH11224186A true JPH11224186A (ja) 1999-08-17
JP3997495B2 JP3997495B2 (ja) 2007-10-24

Family

ID=12135954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02435798A Expired - Fee Related JP3997495B2 (ja) 1998-02-05 1998-02-05 ソフトウェア解析装置及びソフトウェア解析方法

Country Status (2)

Country Link
US (1) US6996516B1 (ja)
JP (1) JP3997495B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293504C (zh) * 2000-08-21 2007-01-03 索尼公司 信息记录设备和方法、信息处理终端、方法和设备以及记录介质
JP2011522334A (ja) * 2008-06-05 2011-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア問題を識別するための方法、システム、およびコンピュータ・プログラム
JP2016051367A (ja) * 2014-09-01 2016-04-11 日本電気通信システム株式会社 データ解析装置、データ解析方法、および、プログラム。

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120331A1 (en) * 2003-12-02 2005-06-02 International Business Machines Corporation Hosting environment abstraction agents
US7506320B2 (en) * 2004-09-09 2009-03-17 International Business Machines Corporation Generating sequence diagrams using call trees
US20090171606A1 (en) * 2007-12-31 2009-07-02 Takahiro Murata Semiconductor manufacture performance analysis
US10296737B2 (en) * 2015-12-09 2019-05-21 International Business Machines Corporation Security enforcement in the presence of dynamic code loading
KR20210012123A (ko) * 2019-07-24 2021-02-03 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
WO2023142061A1 (zh) * 2022-01-29 2023-08-03 西门子股份公司 工作流生成方法、装置、系统、介质及程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149551A (ja) * 1992-11-06 1994-05-27 Fujitsu Ltd プログラム仕様書自動生成方法
JPH07129382A (ja) * 1993-11-02 1995-05-19 Nri & Ncc Co Ltd スパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法
JPH07160352A (ja) * 1993-12-09 1995-06-23 Nec Corp プログラム実行方式
JPH07234783A (ja) * 1994-02-25 1995-09-05 Hitachi Ltd ドキュメント自動生成システムにおけるドキュメント情報抽出方式
JPH07248915A (ja) * 1994-03-09 1995-09-26 Fujitsu Ltd プログラム解析装置
JPH08292881A (ja) * 1995-04-24 1996-11-05 Nec Corp プログラム影響範囲表示装置
JPH0926897A (ja) * 1995-05-08 1997-01-28 Toshiba Corp プログラム解析装置及びプログラム解析方法
JPH09101884A (ja) * 1995-10-05 1997-04-15 Nec Corp リバースエンジニアリング支援システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
US5778212A (en) * 1996-06-03 1998-07-07 Silicon Graphics, Inc. Interprocedural analysis user interface
US5892947A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Test support tool system and method
JP4200534B2 (ja) 1997-02-17 2008-12-24 新日鉄ソリューションズ株式会社 データフロー異常検査装置
JP4055197B2 (ja) 1997-02-17 2008-03-05 新日鉄ソリューションズ株式会社 プログラムに含まれる手続きの解析装置
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149551A (ja) * 1992-11-06 1994-05-27 Fujitsu Ltd プログラム仕様書自動生成方法
JPH07129382A (ja) * 1993-11-02 1995-05-19 Nri & Ncc Co Ltd スパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法
JPH07160352A (ja) * 1993-12-09 1995-06-23 Nec Corp プログラム実行方式
JPH07234783A (ja) * 1994-02-25 1995-09-05 Hitachi Ltd ドキュメント自動生成システムにおけるドキュメント情報抽出方式
JPH07248915A (ja) * 1994-03-09 1995-09-26 Fujitsu Ltd プログラム解析装置
JPH08292881A (ja) * 1995-04-24 1996-11-05 Nec Corp プログラム影響範囲表示装置
JPH0926897A (ja) * 1995-05-08 1997-01-28 Toshiba Corp プログラム解析装置及びプログラム解析方法
JPH09101884A (ja) * 1995-10-05 1997-04-15 Nec Corp リバースエンジニアリング支援システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
「CASEのすべて 第1版」, CSNB199900239001, 25 November 1991 (1991-11-25), pages 315 - 329, ISSN: 0000773182 *
陳 慧,他2名著: ""ソフトウェア自動設計における系統的なエキスパートシステムの構築:設計工程からの設計知識の獲得と再現", 人工知能学会誌, vol. 第12巻 第4号, CSNG199800401014, 1 July 1997 (1997-07-01), pages 616 - 626, ISSN: 0000773181 *
高田、外2名著: ""システム更改に適応したリエンジニアリング手法の提案"", 電子情報通信学会技術研究報告, vol. 第94巻、第357号(KBSE94-33), CSNG199900369002, 21 November 1994 (1994-11-21), JP, pages 9 - 16, ISSN: 0000829967 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293504C (zh) * 2000-08-21 2007-01-03 索尼公司 信息记录设备和方法、信息处理终端、方法和设备以及记录介质
JP2011522334A (ja) * 2008-06-05 2011-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア問題を識別するための方法、システム、およびコンピュータ・プログラム
JP2016051367A (ja) * 2014-09-01 2016-04-11 日本電気通信システム株式会社 データ解析装置、データ解析方法、および、プログラム。

Also Published As

Publication number Publication date
JP3997495B2 (ja) 2007-10-24
US6996516B1 (en) 2006-02-07

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
US8010946B2 (en) Apparatus for analysing and organizing artifacts in a software application
US6560776B1 (en) Software installation verification tool
US6928393B2 (en) Method and system for supporting negative testing in combinatorial test case generators
EP2343644A1 (en) Transformation of data between hierarchical data formats
US8732676B1 (en) System and method for generating unit test based on recorded execution paths
US7305629B2 (en) Consolidation of computer documentation
US8898649B2 (en) Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program
JP2017041171A (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
EP2343653A2 (en) Generating and monitoring data items
JPH11224186A (ja) ソフトウェア解析装置及びソフトウェア解析方法
US20080168311A1 (en) Configuration debugging comparison
JPH0540616A (ja) プログラム仕様生成方法
JPH09212385A (ja) 並列プログラムデバッグ装置
CN115080448B (zh) 一种软件代码不可达路径自动检测的方法和装置
US9032372B2 (en) Runtime environment and method for non-invasive monitoring of software applications
JP4961943B2 (ja) 開発支援プログラム、開発支援方法および開発支援装置
Aouag et al. Towards architectural view-driven modernization
CN109992475A (zh) 一种日志的处理方法、服务器及存储介质
Hart Experience with logical code analysis in software maintenance
JPS6284337A (ja) 仕様書情報解析方式
JP4663526B2 (ja) 帳票作成支援装置、帳票作成支援方法、および帳票作成支援プログラム
Pereira A tool to simplify software log analysis
JP2006243996A (ja) ジョブネット管理システム
JPH0793144A (ja) プログラム解析装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070219

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130817

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees