JP2003241964A - ソフトウエア保守資料生成装置および生成プログラム - Google Patents

ソフトウエア保守資料生成装置および生成プログラム

Info

Publication number
JP2003241964A
JP2003241964A JP2002036058A JP2002036058A JP2003241964A JP 2003241964 A JP2003241964 A JP 2003241964A JP 2002036058 A JP2002036058 A JP 2002036058A JP 2002036058 A JP2002036058 A JP 2002036058A JP 2003241964 A JP2003241964 A JP 2003241964A
Authority
JP
Japan
Prior art keywords
module
link
structure diagram
link structure
program
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
JP2002036058A
Other languages
English (en)
Inventor
Yoshitomo Kumagai
善友 熊谷
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 JP2002036058A priority Critical patent/JP2003241964A/ja
Priority to US10/216,785 priority patent/US20030154462A1/en
Publication of JP2003241964A publication Critical patent/JP2003241964A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

(57)【要約】 【課題】 利用段階で機能追加などが行われたソフトウ
エアを対象として、その現在の内容を正確に把握する。 【解決手段】 ソフトウエアを構成する1つ以上のオブ
ジェクトから、ソフトウエアの複数のモジュールの間の
関係を解析する手段2と、その解析結果を格納する手段
3と、解析結果をモジュールリンク構造図として表示す
る手段4と、表示されたモジュールリンク構造図に対す
る表示形態変更の指示をユーザから受け取り、表示形態
変更を制御する手段5とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はソフトウエア、すな
わちプログラムの保守方式に係わり、更に詳しくは、開
発後の利用段階などで機能の改善や改良が行われたり、
あるいは新たな機能が追加されたプログラムなどを対象
として、プログラムの現在の内容を正確に把握するため
のソフトウエア保守資料の生成装置、および生成プログ
ラムに関する。
【0002】
【従来の技術】図66は従来におけるプログラムの開発
フローの説明図である。一般的にプログラムの開発にあ
たっては、まず基本設計書、詳細設計書、およびモジュ
ール設計書と、各設計書に対応する仕様書などが作成さ
れ、その後実際のプログラミング作業が行われる。
【0003】プログラムが完成すると試験が行われ、問
題点があればプログラムの修正が行われ、修正後のプロ
グラムがユーザに提供される。しかしながら、プログラ
ムがユーザ側で実際に運用されるに従って、新たな機能
の追加や、既存の機能の改善などのためにプログラムの
変更が行われる。変更が行われたプログラムソースは、
例えばモジュール設計書に対応する仕様書などと内容が
異なってきて、特に基本設計書に対応する仕様書とは、
大幅に内容が異なってくる可能性がある。
【0004】すなわち、ユーザに提供される前のプログ
ラムの修正は、一般に仕様書を正確に反映するための修
正であるが、その後の機能改善や追加などにあたって
は、初期の仕様書の改訂は必ずしも必要でなく、仕様書
の保守をしなくてもプログラムの動作には影響がないた
め、手数がかかり、時間のかかる仕様書の訂正は放置さ
れることが多い。
【0005】その結果、開発者とは異なる第3者にプロ
グラム保守が引き継がれるような場合には、当初の仕様
書は全く役に立たない状況になっていることもある。プ
ログラムの内容を把握して、機能追加などによってプロ
グラムの改善を行おうとしても、現行のプログラムを正
確に把握するためのドキュメントが存在せず、現在のプ
ログラムの分析のために多大な時間と費用とが費やされ
てしまう。
【0006】プログラムへの新しい機能の追加や、大規
模な修正を行ったり、第3者へのプログラム引き継ぎ作
業を効率よく行うためには、プログラムの詳細を把握す
るために、仕様書などの資料が必要となる。そこで例え
ば、プログラムのソースコードから仕様書を作成する技
術が必要となるが、このような技術の従来例として次の
文献がある。
【0007】文献1)特開平7−234783号公報
「ドキュメント自動生成システムにおけるドキュメント
情報抽出方式」 文献2)特開平8−286898号公報「システム分析
装置」 文献1には、C言語で記述されたソースプログラムから
ドキュメントを逆生成する場合に、ドキュメントの情報
となるコメントの記述位置がシステムの定めた規則に従
っていない場合でも、簡単な作業で正確な内容のドキュ
メントを出力できるドキュメント情報抽出方式が開示さ
れている。
【0008】文献2では、システムのオブジェクトコー
ドおよびソースコードを分析して、プログラム間の呼び
出し関係をツリー上に示すメニュー展開図、全てのCL
プログラムについてのステップ数やオブジェクトサイズ
などを示したCLプログラム一覧表、および各CLプロ
グラムの構造をフローチャート上に示したジョブ構造図
などを、分析ドキュメントとして整理して出力するシス
テム分析装置が開示されている。
【0009】
【発明が解決しようとする課題】しかしながらこのよう
な従来技術では、プログラムの詳細構成を示すモジュー
ルリンクの構造図、すなわちプログラムを構成する複数
のモジュールの間のリンク構造図を生成したり、ヘッダ
ファイルからファイル内のテーブルの仕様書を作成し、
更に仕様書が作成されたテーブルの一覧表を作成して、
プログラムの内容を詳細に分析することができないとい
う問題点があった。
【0010】まずモジュールリンク構造図をソースコー
ドから作成する場合には、ソースコードの中に決められ
た条件であらかじめタグを挿入しておく必要があり、ソ
ースコードの作成時にはそれが煩わしい作業となる。ま
たC言語、フォートラン言語など、ソースコードでは言
語が異なるために、言語が応じた処理が必要となり、処
理が煩雑になるという問題点があった。
【0011】モジュールリンク構造図をオブジェクトか
ら生成する技術としては、前述の文献2にも記載はされ
ているが、市販のOSが持つコマンドを実効するもので
あり、OSが異なる一般的な場合には適用できない。
【0012】またそのようなコマンドを使用してモジュ
ールリンク構造図が生成されても複雑なモジュールリン
ク構造を持つプログラムの場合には、プリントアウトし
た結果が何枚もの紙に分割されたり、解析したいポイン
トを中心にした構造図を出力できないために、その解析
に非常に苦労するという問題点があった。すなわち既存
のシステムでは仕様書を作ること自体が目的化してお
り、それを加工・編集して利用するための工夫が見られ
ないという問題点があった。
【0013】次にヘッダファイルからテーブル仕様書や
テーブル一覧表を生成する技術については、変数名、
型、サイズ、およびコメントを単に表形式で作成する従
来技術はあっても、テーブル仕様書を構造図的に表現す
ることができず、またオフセットが表示されていないた
めに、メモリをダンプした場合にどの変数がどのような
値をとっているかを把握するのに苦労が必要であり、更
に作られたテーブル仕様書の間にリンクが存在しないた
めに、テーブルを順番に追っかけていく必要があるよう
な作業で大変な手間がかかるという問題点があった。
【0014】本発明の課題は、上述の問題点に鑑み、言
語に依存しないオブジェクトモジュールから、プログラ
ムを構成する複数のモジュールの間のリンク構造図をユ
ーザが加工・編集を容易にできる形式で作成し、またヘ
ッダファイルから各テーブルに対するテーブル構造図を
作成し、テーブル構造図の間にリンクを張ることができ
る、ソフトウエア保守資料生成装置、および生成プログ
ラムを提供することである。
【0015】
【課題を解決するための手段】図1は本発明のソフトウ
エア保守資料生成装置の原理構成ブロック図である。同
図は、複数のモジュールによって構成されるソフトウエ
アの保守資料を生成する装置1の構成を示し、装置1は
少なくともリンク関係解析手段2と、リンク関係格納手
段3とを備える。
【0016】リンク関係解析手段2は、ソフトウエアに
対応する1つ以上のオブジェクトから、前述の複数のモ
ジュールの間のリンク関係を解析するものであり、リン
ク関係格納手段3はリンク関係解析手段2の解析結果を
格納するものである。
【0017】発明の実施の形態においては、ソフトウエ
ア保守資料生成装置1は、リンク関係解析手段2の解析
結果をモジュールリンク構造図として表示するリンク構
造図表示手段4を備えることも、また表示されたモジュ
ールリンク構造に対する表示形態変更の指示を外部から
受け取り、表示形態の変更を制御するリンク構造図編集
手段5を備えることもできる。
【0018】この場合、リンク構造図編集手段5は、表
示されたモジュールリンク構造図内で外部から指示され
たモジュールを先頭、最後尾、または表示画面上で中央
付近の位置とするモジュールリンク構造図への表示形態
変更を制御することもでき、更に指定されたモジュール
より下位のモジュールを表示、または非表示とする表示
形態変更を制御することもできる。
【0019】また実施の形態においては、ソフトウエア
保守資料生成装置は表示されたモジュールリンク構造図
に対応する文書、例えばHTML文書を生成する文書生
成手段を更に備え、文書生成手段が構造図の中のモジュ
ールに対して、プログラムのソースファイルのディレク
トリを指定するリンク、例えばWWWリンク、異なるモ
ジュールリンク構造図を指定するWWWリンクを挿入す
ることもできる。
【0020】更に実施の形態においては、ソフトウエア
保守資料生成装置がソースファイルから、例えばHTM
L形式のモジュール仕様書を作成する仕様書作成手段を
更に備え、文書生成手段が文書内の特定のキーワードに
対応してモジュール仕様書へのリンク、例えばWWWリ
ンクを挿入することもできる。
【0021】次に本発明において、1つ以上のヘッダフ
ァイルの内容を構成要素として含むソフトウエアの保守
資料を生成する装置は、1つ以上のヘッダファイルから
内部の各テーブルの仕様書を、例えばHTML形式で作
成するテーブル仕様書作成手段を備える。
【0022】実施の形態においては、このソフトウエア
保守資料生成装置は、仕様書が作成されたテーブルの一
覧表を、例えばHTML形式で作成するテーブル一覧表
作成手段を更に備えることもでき、この一覧表作成手段
はテーブル一覧表が、例えばWWWブラウザによって表
示された上で、外部から特定のテーブルが指定された時
に指定されたテーブルの表示を行うために、テーブル一
覧表のHTML形式文書にリンクを挿入することもでき
る。
【0023】またこのソフトウエア保守資料生成装置に
おいて、テーブル仕様書作成手段は、内部のテーブルに
他のテーブルへのポインタが存在する時に、その内部の
テーブルに他のテーブルへのリンクを挿入することも、
またテーブル仕様書内にヘッダファイルへのリンクを挿
入することもできる。
【0024】本発明のソフトウエア保守資料生成プログ
ラムは、ソフトウエアに対応する1つ以上のオブジェク
トから複数のモジュールの間のリンク関係を解析する手
順と、その解析結果をメモリに格納する手順とを計算機
に実行させるものであり、実施の形態においてはこのプ
ログラムを格納した計算機読み出し可能可搬型記憶媒体
が用いられる。
【0025】また本発明の保守資料生成プログラムは、
1つ以上のヘッダファイルから内部の各テーブルの仕様
書を、例えばHTML形式で作成する手順と、仕様書が
作成されたテーブルの一覧表を、例えばHTML形式で
作成する手順とを計算機に実行させるものであり、実施
の形態においてはこのプログラムを格納した計算機読み
出し可能可搬型記憶媒体が用いられる。
【0026】以上のように本発明によれば、ソフトウエ
アに対応する1つ以上のオブジェクトプログラムから、
ソフトウエアの構成要素としての複数のモジュールの間
のリンク関係が解析され、その関係を示すモジュールリ
ンク構造図が表示され、例えばユーザからの指示によっ
てそのリンク構造図の表示形態が変更され、ソフトウエ
アの解析が行われる。
【0027】
【発明の実施の形態】図2は本実施形態におけるモジュ
ールリンク構造解析装置の構成ブロック図である。この
モジュールリンク構造解析装置10には、モジュールリ
ンク構造図などの表示のためのディスプレイ11と、ユ
ーザによる操作のためのマウス12が接続されており、
装置10に対する入力としては、一般に複数のオブジェ
クトモジュール13と、排他モジュール指示ファイル1
4が与えられる。この排他モジュール指示ファイルにつ
いては後述する。
【0028】そして装置10からは出力として、モジュ
ールリンク構造図、HTML文書15が一般に複数のフ
ァイルとして、またモジュールリンク構造図16がプリ
ントアウトされて出力する。
【0029】モジュールリンク構造解析装置10の内部
には、オブジェクトモジュール13などの入力に対応し
てモジュール間のリンク関係を作成するリンク関係作成
部20、リンク関係作成部20の出力を受けてモジュー
ルリンクテーブル21の管理などを行うリンクテーブル
管理部22、リンクテーブル管理部22からのデータに
よってモジュールリンク構造図を生成するモジュールリ
ンク図生成部23、ウインドウ管理テーブル24を管理
するウインドウ管理部25、リンクテーブル管理部22
からのデータによりHTML文書管理テーブル26に格
納されるHTML文書の生成などを行うHTML文書生
成・印刷部27、マウス12からのユーザによる指示な
どに対応してモジュールリンク図の編集を行うモジュー
ルリンク図編集部28を備えている。
【0030】図3は複数のソースファイル、複数のオブ
ジェクト(モジュール)によるプログラムの構成の一般
的な説明図である。同図において、例えばC言語のソー
スファイル30、ヘッダファイル31から、C言語用の
コンパイラ32によってオブジェクト(モジュール)3
3が作成される。また例えばフォートラン言語のソース
ファイル34から、フォートランコンパイラ35によっ
てオブジェクト(モジュール)36が作成される。
【0031】ここでオブジェクト(モジュール)33、
およびオブジェクト(モジュール)36は 言語に依存
しない形式のモジュールであり、このような複数のオブ
ジェクトモジュールがリンケージ(プログラム)37に
よってリンケージされ、1つのロードモジュール、すな
わちプログラム38が生成される。
【0032】本実施形態においては、図3の複数のオブ
ジェクトモジュール33,・・・,36から、各ソース
ファイル内のモジュールのリンク構造図が生成され、生
成されたモジュールリンク構造図が図2のディスプレイ
11の表示画面上に表示され、ユーザによるマウス12
の操作に応じてモジュールリンク構造図の加工が行われ
る。図4〜図6は、オブジェクトからモジュール間のリ
ンクの構造を示すモジュールリンクテーブルを作成する
処理の詳細フローチャートである。
【0033】まず、図4において、全てのオブジェクト
に対応する処理が実行される。まずステップS1で、全
てのオブジェクトの内容を読み込むためのダンプコマン
ドが実行され、ダンプリスト40が作成される。このダ
ンプリストの内容については、図8で後述する。そして
ステップS2でこのダンプリスト40のファイルがオー
プンされ、ステップS3でそのファイルの内容が1行読
み込まれる。
【0034】ステップS4で読み込まれた行の種別が判
別され、行の種別が“モジュール名.0”である場合に
は、ステップS5で作業テーブル41にモジュール名が
記録され、また行の種別がインデックスが[1]で、ネ
ームに“.C”がついている場合には、ステップS6で
作業テーブル41にC++のフラグが設定され、ステッ
プS7で読み込みが完了したか否かが判定され、読み込
みが完了していない場合にはステップS3のダンプリス
ト40の格納ファイルが1行ずつ読み込まれる処理以降
が繰り返され、読み込みが完了した時点でステップS8
でファイルがクローズされる。作業テーブル41の内容
については図9で後述する。
【0035】図5はC言語ソースファイルに対応するオ
ブジェクトの処理である。なお本実施形態では、図3と
異なりソースファイルはC言語、またはC++言語のい
ずれかで記述されているものとする。まずステップS1
0で、作業テーブル41の内容に対応して、C言語ソー
スファイルのオブジェクトに対するダンプコマンドが生
成され、ステップS11でそのダンプコマンドが実行さ
れ、ダンプリスト42が生成される。なお図4の作業テ
ーブル41は、オブジェクトの数だけ作成されているも
のとする。またダンプリスト42の内容については、図
10、および図11で後述する。
【0036】そしてステップS12でダンプリスト42
のファイルがオープンされ、ステップS13でその1行
が読み込まれ、ステップS14で行の種別が判別され
る。行の種別が図10で説明するシンボル情報の場合に
は、ステップS15でテーブル43にモジュールとして
の関数名、関数の開始位置、関数のサイズが格納された
後に、また行の種別が図11で説明する再配置情報の場
合には、ステップS16でその関数を呼び出している位
置の情報から、下位モジュールリンクのデータがテーブ
ル43に設定された後に、ステップS17でファイルの
読み込みが完了したか否かが判定され、完了していない
場合にはステップS13以降の処理が繰り返される。
【0037】ファイルの読み込みが完了した場合には、
ステップS18でファイルがクローズされ、ステップS
19でテーブル43の内容が関数名(モジュール名)を
用いてソートされ、ステップS20で下位モジュールが
呼び出し位置情報でソートされ、テーブル43において
下位モジュールリンクがつけられて、図6の処理に移行
する。
【0038】図6はC++言語ソースファイルに対応す
るオブジェクトの処理を示す。まずステップ22で、図
4の作業テーブル41の内容からC++言語に対応する
オブジェクトのダンプコマンドが生成され、ステップS
23でそのコマンドが実行され、ダンプリスト45が生
成される。ダンプリスト45の内容は図13、および図
14で後述する。
【0039】ステップS24でダンプリスト45のファ
イルがオープンされ、ステップS25でそのファイルの
1行が読み込まれ、ステップS26で行の種別が判別さ
れる。行の種別が図13で説明する“FUNC”情報で
ある場合には、ステップS27でC++コンパイラがつ
けた仮の名前と本当の名前との対応をつける作業テーブ
ル(図15)46が作成された後に、ステップS28で
テーブル43に関数名、開始位置、サイズが格納され、
ステップS32でファイルの読み込みが完了したか否か
が判定され、完了していない場合にはステップ25以降
の処理が繰り返される。
【0040】ステップ26で行の種別が図14で説明す
る再配置情報の場合には、ステップS29で作業テーブ
ル46の内容を用いて、C++コンパイラによってつけ
られた仮の名前から本当の名前への変換が行われ、ステ
ップS30でその関数を呼び出している位置の情報か
ら、下位モジュールリンクのデータがステップS16に
おけると同様にテーブル43上で作成された後に、また
行の種別が図13で説明する“UNDEF”情報である
場合には、ステップS31でC++コンパイラによって
独自につけられた名前と本当の名前のテーブル、すなわ
ち作業テーブル46にデータが設定された後に、ステッ
プS32の判定が行われる。
【0041】ステップS32でファイルの読み込みが完
了したと判定された時には、ステップS33でファイル
がクローズされ、ステップS34でテーブル43の内容
が関数名でソートされ、ステップS35で下位モジュー
ルが呼び出し位置情報でソートされ、下位モジュールリ
ンクがつけられて、処理を終了する。
【0042】図7はモジュール間のリンクを管理するモ
ジュールリンクテーブルの内容の例である。各モジュー
ル毎に、モジュール名にリンクするモジュール名リン
ク、自モジュールの下位にある下位モジュールへのリン
クを示す下位モジュールリンク、下位モジュールの数、
自モジュールの画面上での作図位置、後述するように自
モジュールが先頭(最上位)となった時に立てられるフ
ラグなどの格納領域が備えられている。
【0043】図8は図4のステップS1で作成されるダ
ンプリスト40の内容の例である。同図において、第1
行の“block.o”がモジュール名である。最下行
左側の[1]がインデックスであり、その行の最も右側の
“block.C”がソースファイルのNameであ
る。このようなオブジェクトのシンボル情報からソース
ファイル名とオブジェクトファイル名が得られる。
【0044】図9は図4の作業テーブル41の内容の例
である。この作業テーブルはオブジェクト名、ソースフ
ァイル名、およびC++のフラグを格納するものであ
り、オブジェクトの数だけ作成される。
【0045】図10、および図11は図5のダンプリス
ト42の内容の例である。図10はオブジェクトに含ま
れる関数名などを求めるためのシンボル情報であり、タ
イプが“FUNC”である行が関数(モジュール)のデ
ータを示す。
【0046】図11はダンプリスト42のうちのオブジ
ェクトの再配置情報であり、この再配置情報から呼び出
されている関数名が得られる。図12は、ステップS1
5で図10のシンボル情報から作成されるテーブルの例
である。図10において、“FUNC/GLOB”が記
述された行から、オブジェクト内に存在する関数名など
を示すテーブルが、関数の数だけ作成される。
【0047】図13、および図14は図6のステップS
23で作成されるダンプリスト45の内容の例である。
図13は、図10と同様にオブジェクトに含まれる関数
名を得るための情報であり、図14は図11と同様のオ
ブジェクトの再配置情報であり、C++言語に対応する
オブジェクトから得られるものである。なお例えば図1
3の下から4行目の“UNDEF”は、その右のブロッ
クポインタが未定義であり、どこかにあるものとして呼
び出しがされていることを意味する。
【0048】図15は図6の作業テーブル46の内容の
例である。例えば図13の第1行の“set_arg”
が本当の関数名であり、[]内のset_arg_Fi
PPcT1がC++コンパイラによってつけられた仮の
関数名であり、図15は本当の関数名と仮の関数名との
対応を示す。
【0049】図16は、図4〜図6の処理によって得ら
れるモジュールリンク構造であり、図17はそのツリー
表現である。このモジュールリンク構造と画面表示例と
の関係については図21、図22で後述する。
【0050】図16の最初のsxcaltsopは図1
0の下から2行目のようにValue、すなわちオフセ
ット(アドレス)が0×10で、サイズ (長さ)が6
848である。従って図16の最上部にあるように、オ
フセットが0×10から6848の範囲内にあるsxc
alnetlen,equ_1a,equ_2aなどの
モジュール(関数)はsxcaltsopの下位のモジ
ュールとしてリンクづけられる。
【0051】同様に図10でインデックスが11、オフ
セットが0×1ae0,サイズが1044のequ_1
aの下位にsxgetprepw,およびcal_jd
gstartcycleのモジュールがリンクづけられ
ている。
【0052】次に生成されたモジュールリンク構造の表
示処理について説明する。図18〜図20はモジュール
リンク構造図表示処理のフローチャートであり、図18
は表示処理の全体フローチャートである。同図におい
て、まずステップS38で、図4から図6で説明したダ
ンプコマンドにより、モジュール間の呼び出し関係、す
なわちリンク関係のテーブル(図7)が作成される。た
だし後述するように、排他モジュールとして対象外の指
定が行われたモジュールについては除外して、図7のテ
ーブル作成が行われる。そしてステップS39で先頭に
指定されたモジュール、例えば最上位のモジュールと、
そのモジュールから呼び出されているモジュールのリン
ク構造が表示されて、処理を終了する。
【0053】図19は図18のステップS39の詳細フ
ローチャートであり、まずステップS40で、例えば先
頭に指定されたモジュールが指定の位置に描画され、ス
テップS41で例えばそのモジュールの下位モジュール
を示すリンク構造図が表示されて、処理を終了する。
【0054】図20は図19のステップS40のモジュ
ール描画処理の詳細フローチャートである。まずステッ
プS42で表示すべきモジュールがあるか否かが判定さ
れ、ある場合にはステップS43で指定の位置にモジュ
ールを示す矩形が描画され、モジュール名がその中に描
画され、ステップS44で、例えば先頭モジュールから
呼び出されるモジュールが全て描画されたか否かが判定
され、まだ描画すべきモジュールがある場合にはステッ
プS45でそのモジュールが描画位置に表示され、ステ
ップS44以降の処理が繰り返される。ステップS44
で呼び出しモジュールがすべて描画されるか、ステップ
S42で表示するモジュールがないと判定された場合に
は、ステップS46でモジュールを示す矩形の左側にリ
ンク構造を表現する線分が引かれて、処理を終了する。
【0055】図21はモジュールリンク構造図の表示例
であり、図22はそれをHTML形式にして表示したも
のである。これらの図において最上位のモジュールのモ
ジュール名は“h1spacs”であり、そのすぐ下位
には“sxinit”,“sxgtnlib2”、およ
び“sxhspmd1”などのモジュールが存在するこ
とが、リンク構造図として示されている。
【0056】例えば図16のツリー表示としての図17
では、“sxcaltsop”が最上位のモジュールで
あり、そのすぐ下位に“sxcalnetlen”,
“equ−1a”,“equ−2a”の3つのモジュー
ルがあり、更に例えば“equ−1a”のモジュールの
下位には“sxgetprepw”、および“cal−
jdgstartcycle”の2つのモジュールがあ
ることなどが示されている。
【0057】次にモジュールリンク構造図がディスプレ
イに表示された後の編集加工方法について説明する。図
18〜図20で説明したように、一般的には最上位の関
数モジュールなど、またはユーザによって指定されたモ
ジュールを先頭にして、そのモジュールから呼び出され
ているモジュールが階層的にグラフィック表示される
が、ディスプレイ上にそのモジュールリンク構造図が表
示された後に、ユーザは表示されている任意のモジュー
ルをマウスでクリック(ヒット)することによって、リ
ンク構造図の表示形態を変更することができる。
【0058】図23はその表示形態の変更のためのポッ
プアップメニュー表示処理のフローチャートである。同
図において、マウスによってヒットされた画像がモジュ
ールの上、すなわち矩形の上にあるか否かがステップS
50で判定され、上でない場合には、何らの処理も行わ
れないが、モジュールの上である場合には、ステップS
51でモジュールリンクテーブルが検索され、ヒットさ
れたモジュールが確認され、ステップS52でポップア
ップメニュー上の全てのボタンがオフとされた後に、ス
テップS52でモジュールのリンク関係の判定が行われ
る。
【0059】ステップS53で判定されるリンク関係と
は、モジュールリンク構造図が展開、すなわち開いて表
示されているか、閉じて表示されているかを判定するも
のである。図24は展開されて表示中のモジュールリン
ク構造図であり、画面上で表示可能な範囲でモジュール
リンク構造図の全てが表示されている。
【0060】図25は閉じて表示中のリンク構造図であ
り、最上位のモジュールと、そのすぐ下位の5つのモジ
ュールだけが表示されており、更にその下位のモジュー
ルは表示されていない状態である。
【0061】図23のステップS53でモジュールのリ
ンク関係が展開されて表示中である場合には、ステップ
S54でコラプスボタンがオンとされた後に、また閉じ
て表示中の場合にはエクスパンドがボタンがオンとされ
た後に、ステップS56でモジュールのリンク関係が再
び判定される。
【0062】図26、および図27はこのコラプスボタ
ンとエクスパンドボタンを含むポッップアップメニュー
の使用例である。図26においてユーザが“sxgtn
lib2”のボタン(矩形)の上でマウスをクリックす
ると、その上にポップアップメニューが表示され、ユー
ザが“コラプス”を選択すると、図27に示されるよう
にクリックされたモジュールの下位にあるモジュール
と、その下位にあるモジュールと階層的に同じ位置にあ
るモジュールのみが表示され、さらに下位にあるモジュ
ールの全てが非表示となる。下位のモジュールが表示さ
れていないことが分かるように、図27では表示されて
いないモジュールが下位にあることを示す@がボタン上
に表示される。
【0063】図27において@が表示されているボタン
の上でマウスクリックが行われ、ポップアップメニュー
が表示され、“エクスパンド”が選択されると、図26
に示すように下位にあるモジュールが、同一位置のモジ
ュールの全てを含めて、リンク構造図に再び表示され
る。
【0064】図23のステップS56で判定されるモジ
ュールのリンク関係とは、マウスでクリックされたモジ
ュールがディスプレイ画面上で下のみにリンク関係を有
する、すなわち最上位であるか、上のみにリンク関係を
有する、すなわち最下位であるか、あるいは上下にリン
ク関係を有する、最上位でも最下位でもないモジュール
であるかを示すものであり、下のみの場合にはステップ
S57でカット(トップ)ボタンがオンに、上のみであ
る場合にはステップS58でカット(ボトム)ボタンが
オンに、上と下にリンク関係がある場合にはステップS
59でカット(トップ)、カット(ミドル)、およびカ
ット(ボトム)ボタンがオンとされた後に、ステップS
60でポップアップメニューの表示が行われる。
【0065】なお図23のポップアップメニュー表示処
理では、図2でマウス12とモジュールリンク図編集部
28の間にあり、図示しないイベント処理部でユーザか
らのマウス12による指示が受け取られ、モジュールリ
ンク図編集部28によって対応する処理が実行される。
【0066】図28、および図29はユーザによってポ
ップアップメニューからカット(トップ)ボタンが選択
された時の画面表示例を示す。図28において、“sx
gtnlib2”のボタンの上でのユーザによるマウス
クリックによってポップアップメニューが表示され、ユ
ーザによって“カット(トップ)”が選択されると、図
29に示すように、このモジュールを先頭にしたモジュ
ールリンク構造図が作成されて、表示される。
【0067】図30はこのように表示画面上の先頭モジ
ュールが変更された時に、それを示す先頭モジュール管
理テーブルを含むモジュールリンク構造図の制御テーブ
ルの例である。この制御テーブルは、図2には図示され
ていないが、例えばリンクテーブル管理部22によって
管理される。先頭モジュール管理テーブルは、任意のモ
ジュールを先頭とした表示が行われるたびに、すなわち
ウインドウが切り出されるたびに作り出されて、画面表
示の制御などに使用される。
【0068】ユーザによるポップアップメニュー上のカ
ット(トップ)ボタン、カット(ミドル)ボタン、または
カット(ボトム)ボタンが選択された時の処理について
更に説明する。図31はポップアップメニュー上のカッ
ト(トップ)ボタンが選択された場合の処理のフローチ
ャートである。同図において、ステップS61で選択さ
れたモジュールを先頭としたリンク構造図が作成され、
ステップS62で図7のモジュールリンクテーブル上
で、選択されたモジュールのテーブルに上位側をカット
した印としてフラグが立てられる。
【0069】次にポップアップメニュー上のカット(ミ
ドル)ボタンが選択された場合の処理について説明す
る。図32はこの場合の上位階層モジュールへのリンク
状況を示すテーブルの作成処理のフローチャートであ
る。このフローチャートを図33のテーブル作成例を用
いて説明する。
【0070】図32のステップS63で選択されたモジ
ュール、すなわちその上にポップアップメニューが表示
されたモジュールが、これから作成されるテーブルに新
規に追加される。図33ではM10のモジュールがカッ
ト(ミドル)処理の対象として選択されるモジュールで
あるとすると、図33の右側に示すように、まずM10
のブロックがテーブルの最も左側に追加される。
【0071】図32のステップS64で、追加されたモ
ジュールを呼び出しているモジュールが検索され、テー
ブルの後に追加される。図33ではM10を呼び出して
いるモジュールはM8とM9であり、テーブルのM10
のモジュールの右側にM10,M8,およびM9のモジ
ュールが追加される。
【0072】図32のステップS65で、新たに追加さ
れたモジュールがあるか否かが判定され、ある場合には
ステップS64以降の処理が繰り返され、追加されたモ
ジュールがなく、最上位モジュールまで達した場合には
処理を終了する。このような処理によって、図33の右
側に示すテーブルが作成される。
【0073】図34は、各モジュールに対応する矩形を
表示画面上に描く時に、各モジュールに対応して画面上
で用意されるべき縦方向の幅、すなわち高さを求める処
理のフローチャートである。同図において、まずステッ
プS66で、最上位のモジュールについて各モジュール
を表示すべき領域の縦方向の高さが求められる。当然最
上位のモジュールに対しては、それぞれの領域の高さは
1である。
【0074】なお図31,図32,図34の処理も基本
的には図2のモジュールリンク図編集部28によって行
われ、その結果がリンクテーブル管理部22を介してモ
ジュールリンク図生成部23に渡され、リンク構造図の
再表示が行われる。
【0075】図35は描こうとしているモジュールリン
ク構造の図であるが、最上位のM1からM4までのモジ
ュールに対しては、それぞれの高さが1として矩形の右
端に記入されている。
【0076】図34のステップS67で、下位のモジュ
ールが1つ選択され、そのモジュールの1つ上位の各モ
ジュールの高さの合計が、その下位モジュールの高さと
される。例えば図35で、M7の上位にはM2からM4
の3つのモジュールがあり、それぞれの高さは1であ
り、その合計をとって、M7に対する高さは3となる。
【0077】図34のステップS68で、選択されモジ
ュールまで、ここでは図35のM10まで高さが求めら
れたか否かが判定され、まだ求められていない場合には
ステップS67以降の処理が繰り返され、求められたと
判定された場合には処理を終了する。図35では、この
ようにして求められた各モジュールに対応する高さが、
それぞれのモジュールの矩形の右端に記入されている。
【0078】図36は、図34,図35で求められた各
モジュールを表示すべき領域の縦方向の幅、すなわち高
さの中で、そのモジュールをどの位置に描画すべきかを
決める作業の結果を示す。ここでは、各モジュールに対
応して求められた高さの範囲で、どの位置にモジュール
が描画されるべきかが決定される。
【0079】この描画位置は、例えば最上位のモジュー
ルに対しては高さが1であることから描画位置は1であ
り、高さ1の中の描画位置が1であることから、図36
で描画位置は各モジュールの右側に示すように1/1と
なる。
【0080】下位のモジュールに対しては描画位置が次
式で決定される。 描画位置=(上位の位置の合計+1)/2,最上位は1 図36のM7のモジュールに対しては、上式で上位の位
置の合計はM2からM4の位置、それぞれ1の合計3
と、その合計に1を加算した結果の4を2で割った2と
なり、M7のモジュールの描画位置はモジュール内の右
側に示すように、高さ3の中での2の位置であることを
示す2/3となる。同様にしてM9、およびM10の描
画位置は2となり、例えばM10に対しては高さ5の中
での位置が2であることを示す2/5がモジュールの右
側に記入されている。
【0081】図37は表示画面上での各モジュールを示
す矩形を実際にどの位置に描画すべきかを示す、表示画
面上の描画位置の決定法の説明図である。図36では各
モジュールが、そのモジュールに対して用意される縦方
向の幅、すなわち高さの中でどの位置に描画されるべき
かが決定されただけあり、表示画面上で統一された縦の
どの位置に各モジュールを示す矩形が描画されるべきか
を決定する作業が図37で行われる。
【0082】図37ので、まず最下位のモジュール、
ここではM10に対しては、図36の最後に求められた
M10に対する描画位置2が、図35に示されるように
そのまま用いられて、描画が行われる。そしての最下
位のM10に示すように、矩形の中央に最終的な位置と
しての2が記入される。
【0083】次に図37ので、M10の上位のM8と
M9に対する描画位置の決定が行われる。例えばM8に
対しては、下位にあるM10の最終的な描画位置2か
ら、高さの中での位置の2が減算され、自身の高さの中
での位置としての1が加算され、最終的な描画位置は1
となり、M9に対してはM10の最終的な描画位置2か
ら、その高さの中での位置2が減算され、M10の上位
であり、かつM9と同じ階層の位置にあるM8に対する
高さの中での位置、すなわち1と、対応するM9に対す
る値2とが加算され、最終的な描画位置は3に決定され
る。
【0084】図37ので、同様の動作が続行され、最
上位のM1からM4の各モジュールまでの描画位置が決
定され、描画位置に従った各モジュールの描画が行われ
る。図38は、このようにしてM10のモジュールがク
リックされて、カット(ミドル)が選択された場合のモ
ジュールリンク構造図の作成例である。以上に述べた上
位モジュールに加えて、下位のモジュールとしてS1,
S2、およびS3のモジュールも表示されている。図3
9も同様にポップアップメニュー上でカット(ミドル)
が選択された場合の画面表示例である。なおここで、選
択されたモジュールの下位の階層モジュールの描画は、
前述の図18〜図20の処理フローチャートに従って行
われる。
【0085】本実施形態では、図2の排他モジュール指
示ファイル14の内容を用いて、どのモジュールからも
呼び出されるような共通のモジュールのように、モジュ
ールリンク構造図に表示する必要がないモジュールを、
モジュールリンク構造図から排除したり、非表示にした
りする制御が実行可能である。
【0086】排他モジュール指示ファイル14の内容を
図40に示す。この排他モジュール指示ファイルの内容
を用いて排他制御を行う場合には、図4〜図6のフロー
チャートによってモジュールリンク構造を生成する際
に、ファイル内で定義されているモジュールに対応する
モジュールリンクテーブルの生成を行わないことによっ
て、排他モジュール指示ファイルに格納されているモジ
ュールはモジュールリンク構造図に表示されないことに
なる。この制御方式では、排他対象となるモジュールを
表示したり、非表示にしたりする制御を行うことはでき
ない。
【0087】もう1つの方法は、制御リストメニューを
用いる方法である。図41はこの制御リストメニューの
例であり、このメニュー上でエクスクルーシブボタンが
選択された時に表示されるモジュールが、排他モジュー
ルである。
【0088】図42はこの制御リストメニューを用いる
排他制御処理のフローチャートである。同図においてス
テップS70で制御リスト上で選択されているモジュー
ルが取り出され、ステップS71でモジュールリンクテ
ーブル、すなわち図7のテーブル上で図示しない表示フ
ラグがオフにされ、ステップS72でモジュールリンク
構成図の再表示が行われ、処理を終了する。この方式で
は、この表示フラグをオンにすることにより、そのモジ
ュールの再表示も可能となる。
【0089】ディスプレイ画面上に表示されたモジュー
ルリンク構造図は、当然プリンタを用いてプリントアウ
トすることができる。このプリントアウトにおいては、
表示画面上に表示されているデータがポストスクリプト
(グラフィック機能を有する言語)に変換され、プリン
タに送られることで行われる。印刷用紙のサイズは、例
えばA4縦とA4横の2種類とすることができる。
【0090】図43はこの印刷処理のフローチャートで
ある。まずステップS74で、モジュールリンク構造図
のデータが図形ファイルとして出力され、図形ファイル
50が作成され、ステップS75でモジュールリンク構
造図の全体のサイズから印刷時の分割数が計算され、ス
テップS76で図形ファイル内の分割された1つ分の領
域が指定されて、印刷結果としてリンク図51が出力さ
れ、ステップS77で分割数の数だけ印刷が繰り返され
たか否かが判定され、まだ繰り返されていない場合には
ステップS76以降の処理が繰り返され、分割数の数だ
け繰り返された時点で処理を終了する。
【0091】図44はこの印刷処理におけるボタン選択
の説明図である。同図において、ポップアップメニュー
からプリントアウトが選択されることによって、モジュ
ールリンク構造図のプリントアウトが行われる。図45
は印刷結果の例を示す。
【0092】本実施形態においては、ディスプレイ画面
上に表示されたモジュールリンク構造図に対応して、H
TML形式の文書を自動生成する機能が備えられ、作成
された文書はWWWブラウザで自由に参照することが可
能となる。この機能は図2のHTML文書生成・印刷部
27によって実行される。
【0093】図46は自動生成されたHTMLファイル
の例である。この例では画面の内容が図形ファイルとし
て出力され、その図形ファイルを取り込んだ文書がCの
部分に示されている。
【0094】このような例では、図形ファイル上のモジ
ュールを表現する画面上の矩形域が、WWWブラウザ上
で選択された時にCソースが表示されるように、MAP
文、およびAREA文が挿入される。これが図46のA
の部分である。また別のモジュールリンク構造図へのリ
ンクが、WWWブラウザによる表示画面上であるモジュ
ールが選択された時にその別のモジュールリンク構造図
が表示されるように、HTML文書に、図46のBに示
すようにAREA文が挿入される。
【0095】図47はこのようなHTML文書生成処理
のフローチャートである。同図において、まずステップ
S78で画面に描画された内容がポストスクリプト(P
S)で出力され、PSファイル55が作成され、ステッ
プS79で図7のモジュールリンクテーブルに、図31
で説明したカット(トップ)の対象となった印、すなわ
ちフラグが立てられていれば矢印の図形がPSファイル
55に追加される(図49参照)。そしてステップS8
0で、コンバートコマンドによりPSファイル55が画
像ファイル56、例えばインターネットで画像データを
保存する形式のグラフィックインターチェンジフォーマ
ット(GIF)に変換される。
【0096】ステップS81で、作成された画像ファイ
ル56を表示するHTML文書が作成され、HTMLフ
ァイル57に格納され、ステップS82でボタンを描画
した矩形領域から、前述のようにその矩形域がWWWブ
ラウザ上で選択された時に備えて、Cソースへのリンク
タグが生成される。ステップS83でモジュールリンク
テーブルにカットした印、すなわちフラグが立っていれ
ば、モジュールが選択された時に別のモジュールリンク
構造図が表示されるように、別のHTML文書へのリン
クタグが生成され、いずれのリンクタグもHTMLファ
イル57に格納されて、処理を終了する。
【0097】なおステップS82における矩形域は、例
えば図46の4行目の中央付近の68,8が矩形域の左
上の頂点の座標、242,38が右下の頂点の座標を示
すことによりその位置が特定される。
【0098】さらに本実施形態では、図3で説明したC
ソースファイル30の内容を用いて、後述する決められ
たキーワードで記述されたコメントから、関数の入出力
仕様書をHTML形式で作成することもできる。図48
はその関数入出力仕様書作成処理のフローチャートであ
る。
【0099】まずステップS85でCソースファイルの
内容が1行ずつ読み込まれ、ステップS86でキーワー
ドが検索され、ステップS87でキーワード“機能”の
内容から入出力仕様書の機能部分が生成される。
【0100】続いてステップS88で関数インタフェー
スの部分から呼び出し形式の部分が生成され、Cソース
の場所が指定されていればその場所へのリンクタグも生
成され、ステップS89でキーワード“関数値”の内容
から入出力仕様書の関数値(詳細情報)の部分が生成さ
れ、ステップS90でキーワードの“入出力”部分から
入出力仕様書の説明部分が生成されて、処理を終了す
る。
【0101】図49〜図52は図47、および図48に
よる処理の具体例の説明図である。まず図49の“sx
gtnlib2”のボタンの右側の矢印がマウスでクリ
ック(ヒット)されると、図47のステップS83で生
成されたリンクタグによって図50の別HTML(別の
モジュールリンク構造図)が表示される。
【0102】また図49の“sxhspmd1”のボタ
ンのモジュール名以外の部分がクリックされると、図4
7のステップS82で生成されたリンクタグによって、
Cソースファイルの内容が図51に示すように表示され
る。
【0103】またこのボタンのモジュール名の部分がク
リックされるか、あるいは図51で呼び出し形式内の関
数名としての“sxhspmd1”がクリックされる
と、図52に示す画面が表示され、Cソース自体にもリ
ンクを張ることができ、ドキュメントを解釈しながらC
ソースの参照を行うこともできる。なお図52には図4
8のステップS86における(決められた)キーワード
が示されている。
【0104】次に本実施形態では、図3のヘッダファイ
ル31の内容を用いて、内部のテーブルの一覧や、各テ
ーブルの仕様書をHTML文書として作成する機能も備
えられる。図53はヘッダファイル61からテーブル仕
様書62、およびテーブル一覧63を作成するテーブル
構造解析装置60の構成ブロック図である。
【0105】同図において解析装置60は、ヘッダファ
イル→HTML文書生成部65、生成管理部66、およ
びテーブル一覧作成部67を備えている。図54は内部
テーブル構造解析処理の全体フローチャートである。同
図においてまずステップS95で、1つのヘッダファイ
ルからテーブル構造図が作成され、ステップS96でデ
ィレクトリ内のヘッダファイルの全てに対する構造図作
成処理が終了したか否かが判定され、終了していない場
合にはステップS95以降の処理が繰り返され、終了し
た場合にはステップS97でテーブル構造図が作成され
たテーブルの一覧表がHTML形式で作成される。
【0106】図55は図54のステップS95、すなわ
ちテーブル構造図作成処理の詳細フローチャートであ
る。同図において処理が開始されると、まずステップS
101でヘッダファイルから1行が読み込まれ、ステッ
プS102で特定のキーワードの有無が判定され、ある
場合にはステップS103でキーワードが保持された後
に、ステップS101以降の処理が繰り返される。この
特定のキーワードの例については後述する。
【0107】ステップS102で特定のキーワードがな
い場合には、ステップS104〜S113において読み
込まれた行が分解されて、その行内の各項目を保持する
処理が行われる。まずstruct文であればステップ
S105で構造体名が保持されてHTMLタグが生成さ
れ、またヘッダファイルへのリンクディレクトリが指定
されていればタグが挿入される。
【0108】ステップS106で型の部分と判定されれ
ば、ステップS107で型が保持され、ステップS10
8で変数名の部分と判定されればステップS109で変
数名が保持され、ステップS110でサイズの部分と判
定されればステップS111でサイズが保持され、ステ
ップS112でコメントの部分と判定されればステップ
S113でコメントが保持される。
【0109】そしてステップS114で変数が存在する
か否かが判定され、存在する場合にはステップS115
で変数のサイズ、オフセット、変数名を表現する枠が作
成され、ステップS116でオフセット、型、変数名
(サイズ)、コメントが作成される。ステップS117
で構造体へのポインタ変数であればリンクタグが挿入さ
れ、ステップS118で型とサイズからオフセットが加
算された後に、またステップS114で変数が存在しな
い場合には、ステップS119でコメントがあればその
枠とコメントが作成された後に、ステップS101以降
の処理が繰り返される。
【0110】図56〜図64は図54、および図55で
説明した処理の具体例である。まず図56はヘッダファ
イルの内容の例であり、このようなヘッダファイルか
ら、図55のステップS101で1行ずつ読み込みが行
われ、ステップS102以降の処理が実行される。
【0111】図57は、図56のヘッダファイルから作
成されたテーブル構造図を示すHTML文書であり、図
58はこのHTML文書をWWWブラウザで表示した結
果を示す。
【0112】図59は、図54のステップS97で作成
されるテーブル構造図の一覧を示すHTML文書の例で
あり、図60はこのHTML文書をWWWブラウザで表
示した結果を示す。
【0113】図61〜図64は、図55の処理によって
挿入されたタグなどと、画面表示例などとの関係の説明
図である。まず図61に示すように、ヘッダファイル内
に図55のステップS102で説明したように特定のキ
ーワード、例えば“function”または“機能”
が記述してある場合には、その内容がテーブル構造図、
またはテーブル一覧表に表示される。
【0114】図62のはテーブル構造図内に記述され
るヘッダファイルの内容の例を示している。図62の
は、図55のステップS117で説明した処理によるリ
ンクタグに相当するアンカー(文)(A HREF)を
示し、このアンカー文によって図63に示される別のテ
ーブルが表示可能となる。
【0115】図62のは図55のステップS105の
処理で挿入されるタグとしてのアンカー文を示し、これ
によって図62のテーブル構造図をWWWブラウザで表
示した結果としての、図64上でテーブル名を表すタイ
トル部がクリックされることによって、ヘッダファイル
の内容を示す図61が表示される。また図64のテーブ
ル内で“spfldifhed”がクリックされること
によって、“nmdifhedへのポインタ”が使用さ
れ、図63の表示が行われる。
【0116】以上のように本発明では、オブジェクトフ
ァイルからプログラムを構成する複数のモジュールの間
のリンク関係が解析され、モジュールリンク構造図とし
てディスプレイ画面上に表示される。ユーザはこのリン
ク構造図を画面上で加工・編集して、見やすく表示した
り、複雑な構造のリンク構造図については、任意のモジ
ュールに着目して新たな構造図を切り出して表示したり
することが可能となり、プログラムの解析を容易に行う
ことができる。
【0117】また画面に表示されたモジュールリンク構
造図に対しては、HTML文書と1つの図形ファイルの
組み合わせとしてのWWW文書を生成する機能が備えら
れ、複数のモジュールリンク構造図の間にHTML言語
のアンカータグが挿入され、、WWWブラウザでモジュ
ールリンク構造図の間を自由に行き来して参照すること
ができ、モジュール構成の把握を柔軟に素早く行うこと
ができる。
【0118】更にヘッダファイルから内部のテーブルの
構造図がHTML言語で作成され、WWWブラウザを用
いてそのテーブルを参照することが可能となる。複数の
テーブルの間にリンクがある場合には、アンカータグの
挿入によってテーブル間の相互参照が可能となり、プロ
グラムの解析効率の向上、障害調査の効率化が実現され
る。
【0119】以上において、本発明のソフトウエア保守
資料生成装置および生成プログラムについてその詳細を
説明したが、この保守資料生成装置は当然一般的なコン
ピュータシステムとして構成することが可能である。図
65はそのようなコンピュータシステム、すなわちハー
ドウエア環境の構成ブロック図である。
【0120】図65においてコンピュータシステムは中
央処理装置(CPU)70、リードオンリメモリ(RO
M)71、ランダムアクセスメモリ(RAM)72、通
信インタフェース73、記憶装置74、入出力装置7
5、可搬型記憶媒体の読み取り装置76、およびこれら
の全てが接続されたバス77によって構成されている。
【0121】記憶装置74としてはハードディスク、磁
気ディスクなど様々な形式の記憶装置を使用することが
でき、このような記憶装置74、またはROM71に図
4〜図6、図18〜図20、図23,図31,図42,
図43,図47,図48,図54,図55などのフロー
チャートに示されたプログラムや、本発明の特許請求の
範囲の請求項4,請求項5のプログラムなどが格納さ
れ、そのようなプログラムがCPU70によって実行さ
れることにより、本実施形態におけるモジュールリンク
構造図の表示や、加工・編集、ヘッダファイルの内部テ
ーブル構造図作成などが可能となる。
【0122】このようなプログラムは、プログラム提供
者78側からネットワーク79、および通信インタフェ
ース73を介して、例えば記憶装置74に格納されるこ
とも、また市販され、流通している可搬型記憶媒体80
に格納され、読み取り装置76にセットされて、CPU
70によって実行されることも可能である。可搬型記憶
媒体80としてはCD−ROM、フレキシブルディス
ク、光ディスク、光磁気ディスクなど様々な形式の記憶
媒体を使用することができ、このような記憶媒体に格納
されたプログラムが読み取り装置76によって読み取ら
れることにより、本実施形態におけるモジュールリンク
構造図の表示などが可能となる。
【0123】(付記1)複数のモジュールを構成要素と
して含むソフトウエアの保守資料を生成する装置におい
て、該ソフトウエアに対応する1つ以上のオブジェクト
から、前記複数のモジュールの間のリンク関係を解析す
るリンク関係解析手段と、該リンク関係解析手段の解析
結果を格納するリンク関係格納手段とを備えることを特
徴とするソフトウエア保守資料生成装置。
【0124】(付記2)前記リンク関係解析手段の解析
結果をモジュールリンク構造図として表示するリンク構
造図表示手段を更に備えることを特徴とする付記1記載
のソフトウエア保守資料生成装置。
【0125】(付記3)前記リンク構造図表示手段によ
って表示されたモジュールリンク構造図に対する表示形
態変更の指示を外部から受け取り、該表示形態変更を制
御するリンク構造図編集手段を更にを備えることを特徴
とする付記2記載のソフトウエア保守資料生成装置。
【0126】(付記4)前記外部からの指示に対応し
て、前記リンク構造図編集手段が、前記表示されたモジ
ュールリンク構造図内で指示されたモジュールを先頭と
するモジュールリンク構造図への表示形態変更を制御す
ることを特徴とする付記3記載のソフトウエア保守資料
生成装置。
【0127】(付記5)前記外部からの指示に対応し
て、前記リンク構造図編集手段が、前記表示されたモジ
ュールリンク構造図内で指示されたモジュールを最後尾
とするモジュールリンク構造図への表示形態変更を制御
することを特徴とする付記3記載のソフトウエア保守資
料生成装置。
【0128】(付記6)前記外部からの指示に対応し
て、前記リンク構造図編集手段が、前記表示されたモジ
ュールリンク構造図内で指示されたモジュールを表示画
面上で中央付近の位置とするモジュールリンク構造図へ
の表示形態変更を制御することを特徴とする付記3記載
のソフトウエア保守資料生成装置。
【0129】(付記7)前記外部からの指示に対応し
て、前記リンク構造図編集手段が、前記表示されたモジ
ュールリンク構造図内で指示されたモジュールより下位
のモジュールを表示、または非表示とする表示形態変更
を制御することを特徴とする付記3記載のソフトウエア
保守資料生成装置。
【0130】(付記8)前記ソフトウエア保守資料生成
装置が、前記リンク構造図表示手段によって表示された
モジュールリンク構造図に対応する文書を生成する文書
生成手段を更に備えることを特徴とする付記2記載のソ
フトウエア保守資料生成装置。
【0131】(付記9)前記文書生成手段が、モジュー
ルリンク構造図内のモジュールに対応して、ソフトウエ
アのソースファイルのディレクトリを指定するリンクを
前記文書内に挿入することを特徴とする付記8記載のソ
フトウエア保守資料生成装置。
【0132】(付記10)前記文書生成手段が、モジュ
ールリンク構造図内のモジュールに対応して、異なるモ
ジュールリンク構造図を指定するリンクを前記文書内に
挿入することを特徴とする付記8記載のソフトウエア保
守資料生成装置。
【0133】(付記11)前記ソフトウエア保守資料生
成装置が、ソースファイルからモジュール仕様書を作成
する仕様書作成手段を更に備え、前記文書生成手段が、
前記文書内の特定のキーワードに対応して、該モジュー
ル仕様書へのリンクを該文書内に挿入することを特徴と
する付記8記載のソフトウエア保守資料生成装置。
【0134】(付記12)1つ以上のヘッダファイルの
内容を構成要素として含むソフトウエアの保守資料を生
成する装置において、該1つ以上のヘッダファイルか
ら、該ファイル内部の各テーブルの仕様書を作成するテ
ーブル仕様書作成手段を備えることを特徴とするソフト
ウエア保守資料生成装置。
【0135】(付記13)前記ソフトウエア保守資料生
成装置が、前記テーブル仕様書作成手段によって仕様書
が作成されたテーブルの一覧表を作成するテーブル一覧
表作成手段を更に備えることを特徴とする付記12記載
のソフトウエア保守資料生成装置。
【0136】(付記14)前記テーブル一覧表作成手段
が、テーブル一覧表が表示された上で、外部から特定の
テーブルが指定された時に該指定されたテーブルの表示
を行うために、該テーブル一覧表にリンクを挿入するこ
とを特徴とする付記13記載のソフトウエア保守資料生
成装置。
【0137】(付記15)前記テーブル仕様書作成手段
が、前記内部のテーブルに他のテーブルへのポインタが
存在する時、前記テーブルに該他のテーブルへのリンク
を挿入することを特徴とする付記12記載のソフトウエ
ア保守資料生成装置。
【0138】(付記16)前記テーブル仕様書作成手段
が、前記テーブル仕様書内に前記ヘッダファイルへのリ
ンクを挿入することを特徴とする付記12記載のソフト
ウエア保守資料生成装置。
【0139】(付記17)複数のモジュールによって構
成されるソフトウエアの保守資料を生成する計算機によ
って使用されるプログラムにおいて、該ソフトウエアに
対応する1つ以上のオブジェクトから、前記複数のモジ
ュールの間のリンク関係を解析する手順と、該リンク関
係の解析結果をメモリに格納する手順とを計算機に実行
させるプログラム。
【0140】(付記18)複数のモジュールによって構
成されるソフトウエアの保守資料を生成する計算機によ
って使用される記憶媒体において、該ソフトウエアに対
応する1つ以上のオブジェクトから、前記複数のモジュ
ールの間のリンク関係を解析するステップと、該リンク
関係の解析結果をメモリに格納するステップとを計算機
に実行させるプログラムを格納した計算機読み出し可能
可搬型記憶媒体。
【0141】(付記19)1つ以上のヘッダファイルの
内容を構成要素として含むソフトウエアの保守資料を生
成する計算機によって使用されるプログラムにおいて、
該1つ以上のヘッダファイルから、内部の各テーブルの
仕様書を作成する手順と、該テーブル仕様書が作成され
た各テーブルの一覧表を作成する手順とを計算機に実行
させるプログラム。
【0142】(付記20)1つ以上のヘッダファイルの
内容を構成要素として含むソフトウエアの保守資料を生
成する計算機によって使用される記憶媒体において、該
1つ以上のヘッダファイルから、内部の各テーブルの仕
様書を作成するステップと、該テーブル仕様書が作成さ
れた各テーブルの一覧表を作成するステップとを計算機
に実行させるプログラムを格納した計算機読み出し可能
可搬型記憶媒体。
【0143】
【発明の効果】以上詳細に説明したように本発明によれ
ば、プログラムの1つ以上のオブジェクトからプログラ
ム内のモジュールのリンク構造の解析と、リンク構造図
の画面表示が自動的に行われる。これによって、第1に
そのモジュールリンク構造図の編集や加工も容易とな
り、プログラムの分析を容易とすることができる。
【0144】第2に作成されたモジュールリンク構造図
をHTML文書化してWWWツールでそれを参照し、複
雑なモジュールリンク構造図の1部を切り出して詳細に
検討することも可能となる。
【0145】第3にWWWツールを用いて、ソースファ
イルの内容にアクセスすることができ、モジュール構造
図とソースファイルとを交互に参照することによって、
プログラムの分析のための時間と費用を節約することが
できる。
【0146】次にヘッダファイルから内部のテーブルの
テーブル構造図とテーブルの一覧表をHTML文書とし
て作成し、WWWツールでそれを参照し、挿入されたタ
グを用いてテーブル構造図をたどることもでき、プログ
ラム分析のための時間と費用を節約することができる。
【0147】本発明のモジュールリンク構造の自動解析
と構造図の作成との機能を用いることによって、ヘッダ
ファイルとソースファイルの更新さえ行えば、モジュー
ルリンク構造図を画面に表示することによって常にプロ
グラムの最新の状態を知ることができ、プログラムのメ
ンテナンス効率を向上させる上で寄与するところが大き
い。
【図面の簡単な説明】
【図1】本発明のプログラム保守資料生成装置の原理構
成ブロック図である。
【図2】本実施形態におけるモジュールリンク構造解析
装置の構成ブロック図である。
【図3】ソースファイル、オブジェクトモジュールから
のプログラムの構成の説明図である。
【図4】オブジェクトからモジュールリンクテーブルを
作成する処理のフローチャートである。
【図5】オブジェクトからモジュールリンクテーブルを
作成する処理のフローチャート(続き)である。
【図6】オブジェクトからモジュールリンクテーブルを
作成する処理のフローチャート(続きの続き)である。
【図7】モジュールリンクテーブルの格納形式の例であ
る。
【図8】図4におけるダンプリストの内容の例である。
【図9】図4の作業テーブルの内容の例である。
【図10】図5のダンプリストの内容の例(その1)で
ある。
【図11】図5のダンプリストの内容の例(その2)で
ある。
【図12】図10のシンボル情報から作成されるテーブ
ルの例である。
【図13】図6のダンプリストの内容の例(その1)で
ある。
【図14】図6のダンプリストの内容の例(その2)で
ある。
【図15】図6の作業テーブルの内容の例である。
【図16】モジュールリンク構造の例である。
【図17】モジュールリンク構造のツリー表現の例であ
る。
【図18】モジュールリンク構造図表示の全体処理フロ
ーチャートである。
【図19】モジュールリンク構造表示処理のフローチャ
ートである。
【図20】個々のモジュールの表示処理のフローチャー
トである。
【図21】モジュールリンク構造図の表示例である。
【図22】図21の表示例の拡大図である。
【図23】ポップアップメニュー表示処理のフローチャ
ートである。
【図24】展開表示中のモジュールリンク構造図の例で
ある。
【図25】閉じて表示中のモジュールリンク構造図の例
である。
【図26】ポップアップメニューの使用例を示す図(そ
の1)である。
【図27】ポップアップメニューの使用例を示す図(そ
の2)である。
【図28】カット(トップ)ボタンが選択された時の画
面表示例(その1)である。
【図29】カット(トップ)ボタンが選択された時の画
面表示例(その2)である。
【図30】モジュールリンク構造図の制御テーブルの形
式を示す図である。
【図31】カット(トップ)ボタン選択時の処理のフロ
ーチャートである。
【図32】上位階層モジュールへのリンク状況テーブル
の作成処理フローチャートである。
【図33】上位階層モジュールへのリンク状況テーブル
の例である。
【図34】各モジュールの矩形の高さを求める処理のフ
ローチャートである。
【図35】矩形の高さを求める処理の例である。
【図36】各モジュールの高さの中での描画位置決定作
業の結果の例である。
【図37】表示画面上での矩形の実際の描画位置決定法
の説明図である。
【図38】カット(ミドル)選択時のモジュールリンク
構造の例である。
【図39】カット(ミドル)選択時のリンク構造図表示
例である。
【図40】排他モジュール指示ファイルの格納内容の例
である。
【図41】制御リストメニューの例である。
【図42】制御リストメニューを用いる排他処理のフロ
ーチャートである。
【図43】モジュールリンク構造図印刷処理のフローチ
ャートである。
【図44】リンク構造図印刷時のボタン選択の説明図で
ある。
【図45】モジュールリンク構造図の印刷例である。
【図46】モジュールリンク構造図を示すHTMLファ
イルの例である。
【図47】モジュールリンク構造図を示すHTML文書
作成処理のフローチャートである。
【図48】ソースファイルからの関数入出力仕様書作成
処理のフローチャートである。
【図49】HTML文書として作成されたリンク構造図
の表示例である。
【図50】リンクタグによってたどられる別HTML文
書の表示例である。
【図51】図49内の矩形からたどられるソースファイ
ルの内容の表示例である。
【図52】図49のモジュール名からたどられるソース
ファイルの表示例である。
【図53】ヘッダファイルから内部のテーブル仕様書な
どを作成するテーブル構造解析装置の構成ブロック図で
ある。
【図54】ヘッダファイルからテーブル一覧表作成まで
の全体処理のフローチャートである。
【図55】図54においてテーブル構造図を作成する処
理の詳細フローチャートである。
【図56】ヘッダファイルの内容の例である。
【図57】図56のヘッダファイルから作成されたテー
ブル構造図を示すHTML文書の例である。
【図58】図57のHTML文書の表示例である。
【図59】テーブル一覧表を示すHTML文書の例であ
る。
【図60】図59のHTML文書の表示例である。
【図61】ヘッダファイル内の特定キーワードの表示例
を示す図である。
【図62】テーブル構造図を示すHTML文書の例であ
る。
【図63】図62の文書からたどられるテーブルの表示
例である。
【図64】他のテーブルへのリンクが挿入されたHTM
L文書の表示例である。
【図65】本発明を実現するためのプログラムのコンピ
ュータへのローディングを説明する図である。
【図66】従来におけるプログラム開発フローを示す図
である。
【符号の説明】
1 ソフトウエア保守資料生成装置 2 リンク関係解析手段 3 リンク関係格納手段 4 リンク構造図表示手段 5 リンク構造図編集手段 10 モジュールリンク構造解析装置 13 オブジェクトモジュール 14 排他モジュール指示ファイル 15 HTML文書、モジュールリンク図 16 モジュールリンク図 20 リンク関係生成部 21 モジュールリンクテーブル 22 リンクテーブル管理部 23 モジュールリンク図生成部 26 HTML文書管理テーブル 27 HTML文書生成・印刷部 28 モジュールリンク図編集部 30 Cソースファイル 31 ヘッダファイル 32 Cコンパイラ 33,36 オブジェクトモジュール 34 フォートランソースファイル 35 フォートランコンパイラ 37 リンケージプログラム 38 ロードモジュール(プログラム)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数のモジュールを構成要素として含む
    ソフトウエアの保守資料を生成する装置において、 該ソフトウエアに対応する1つ以上のオブジェクトか
    ら、前記複数のモジュールの間のリンク関係を解析する
    リンク関係解析手段と、 該リンク関係解析手段の解析結果を格納するリンク関係
    格納手段とを備えることを特徴とするソフトウエア保守
    資料生成装置。
  2. 【請求項2】 前記リンク関係解析手段の解析結果をモ
    ジュールリンク構造図として表示するリンク構造図表示
    手段を更に備えることを特徴とする請求項1記載のソフ
    トウエア保守資料生成装置。
  3. 【請求項3】 1つ以上のヘッダファイルの内容を構成
    要素として含むソフトウエアの保守資料を生成する装置
    において、 該1つ以上のヘッダファイルから、該ファイル内部の各
    テーブルの仕様書を作成するテーブル仕様書作成手段を
    備えることを特徴とするソフトウエア保守資料生成装
    置。
  4. 【請求項4】 複数のモジュールによって構成されるソ
    フトウエアの保守資料を生成する計算機によって使用さ
    れるプログラムにおいて、 該ソフトウエアに対応する1つ以上のオブジェクトか
    ら、前記複数のモジュールの間のリンク関係を解析する
    手順と、 該リンク関係の解析結果をメモリに格納する手順とを計
    算機に実行させるプログラム。
  5. 【請求項5】 1つ以上のヘッダファイルの内容を構成
    要素として含むソフトウエアの保守資料を生成する計算
    機によって使用されるプログラムにおいて、 該1つ以上のヘッダファイルから、内部の各テーブルの
    仕様書を作成する手順と、 該テーブル仕様書が作成された各テーブルの一覧表を作
    成する手順とを計算機に実行させるプログラム。
JP2002036058A 2002-02-13 2002-02-13 ソフトウエア保守資料生成装置および生成プログラム Withdrawn JP2003241964A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002036058A JP2003241964A (ja) 2002-02-13 2002-02-13 ソフトウエア保守資料生成装置および生成プログラム
US10/216,785 US20030154462A1 (en) 2002-02-13 2002-08-13 Software maintenance material generation apparatus and generation program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002036058A JP2003241964A (ja) 2002-02-13 2002-02-13 ソフトウエア保守資料生成装置および生成プログラム

Publications (1)

Publication Number Publication Date
JP2003241964A true JP2003241964A (ja) 2003-08-29

Family

ID=27655014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002036058A Withdrawn JP2003241964A (ja) 2002-02-13 2002-02-13 ソフトウエア保守資料生成装置および生成プログラム

Country Status (2)

Country Link
US (1) US20030154462A1 (ja)
JP (1) JP2003241964A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076005A1 (en) * 2003-09-15 2005-04-07 International Business Machines Corporation Method and apparatus to associate data files with tasks or events
JP4557650B2 (ja) * 2004-09-13 2010-10-06 キヤノン株式会社 通信システム並びに通信装置及びその制御方法
US8010946B2 (en) * 2005-03-18 2011-08-30 Oracle International Corporation Apparatus for analysing and organizing artifacts in a software application
US9626161B2 (en) * 2006-12-12 2017-04-18 Ca, Inc. Computer readable medium and methods for filtering a dynamic comparison model
US8230113B2 (en) * 2007-12-29 2012-07-24 Amx Llc System, method, and computer-readable medium for development and deployment of self-describing controlled device modules in a control system
US8479149B2 (en) * 2008-04-04 2013-07-02 Infosys Limited Concept-oriented software engineering system and method for identifying, extracting, organizing, inferring and querying software system facts
US11010140B2 (en) * 2019-02-08 2021-05-18 Sap Se Integration of workflow and logical data objects using visual programming

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2256931A1 (en) * 1998-12-23 2000-06-23 Robert Weisz Source editing in a graphical hierarchical environment

Also Published As

Publication number Publication date
US20030154462A1 (en) 2003-08-14

Similar Documents

Publication Publication Date Title
US8434014B1 (en) System and method for editing information
CN110413925A (zh) 用于在交互式站点与用于支持移动设备和其它显示环境的应用之间的自动转换的系统和方法
WO1998008168A1 (fr) Dispositif pour generer un texte original et son support de memoire programme
JP2009075879A (ja) 画像処理装置と画像処理方法とプログラム
US20070234201A1 (en) Information Management Device
US8086950B2 (en) Method and system for enhancing engineering information
JPH09222974A (ja) 言語解釈表示方法とその方法を用いた装置およびシステム
JP2003241964A (ja) ソフトウエア保守資料生成装置および生成プログラム
US7941456B2 (en) Information management method, information management program and information management apparatus
KR100261265B1 (ko) 웹 문서 저작을 위한 장치 및 그 운용 방법
EP1744271A1 (en) Document processing device
JPH09245052A (ja) 構造化文書処理装置
WO2006137564A1 (ja) 文書処理装置
JP2001022734A (ja) 情報処理装置、情報処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3965836B2 (ja) 画像処理システム
EP0897156A1 (en) Device and method for preparing original text and program storing medium for the same
JP4960188B2 (ja) 画面遷移図の表示方法およびシステム
JP2000172739A (ja) 設計支援装置
JPH10240732A (ja) Www用htmlファイル作成方法及び装置
JP2020190843A (ja) 文書変換装置
JP2003345781A (ja) 構造化データ編集装置、構造化データ編集方法及びプログラム
JP3712320B2 (ja) 可変文書作成システム、可変文書出力装置及び可変原稿作成装置
JP2009064080A (ja) 画像処理装置と画像処理方法とプログラム
JPH10207756A (ja) ホームページの構成を分析する方法およびその装置
JP2005141296A (ja) 文書検索装置、文書検索方法、および文書検索プログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050510