JPH09101884A - リバースエンジニアリング支援システム - Google Patents

リバースエンジニアリング支援システム

Info

Publication number
JPH09101884A
JPH09101884A JP7258796A JP25879695A JPH09101884A JP H09101884 A JPH09101884 A JP H09101884A JP 7258796 A JP7258796 A JP 7258796A JP 25879695 A JP25879695 A JP 25879695A JP H09101884 A JPH09101884 A JP H09101884A
Authority
JP
Japan
Prior art keywords
information
specification information
abstract
predetermined unit
reverse engineering
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
JP7258796A
Other languages
English (en)
Inventor
Junichi Shibuya
純一 澁谷
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP7258796A priority Critical patent/JPH09101884A/ja
Publication of JPH09101884A publication Critical patent/JPH09101884A/ja
Pending 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/74Reverse engineering; Extracting design information from source code

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)

Abstract

(57)【要約】 【課題】 情報処理システムに用いられるソースプログ
ラムの解析を容易に行えるリバースエンジニアリング支
援システムを提供する。 【解決手段】 仕様情報抽出部15、16、17は、外
部記憶装置13に記憶されたソースプログラムから仕様
情報を抽出する。仕様情報抽象化部18、19、20
は、仕様情報抽出部が抽出した仕様情報を抽象化して、
階層化された抽象仕様情報を生成する。生成された抽象
仕様情報はメモリ22に格納される。意味付部21は、
メモリから抽象仕様情報の一部を選択的に読出し、表示
部14に表示させるとともに、入出力装置11から入力
される意味付情報を付加して、再びメモリ22に格納す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リバースエンジニ
アリング支援システムに関する。
【0002】
【従来の技術】情報処理システムを構成するソースプロ
グラムを解析して、制御構造、データ構造、及びデータ
間の依存関係等の仕様情報を自動的に抽出して、抽出し
た仕様情報を図式チャート等によって利用者に提示する
仕様書自動作成方式がある。このような仕様書自動作成
方式は、例えば、特開昭62−145424号公報や特
開平3−218522号公報等に開示されている。
【0003】従来のリバースエンジニアリング支援シス
テムでは、このような仕様書自動作成方式により得られ
た仕様情報を図式チャート等によって利用者に提示する
とともに、利用者による意味付け、抽象化等の加工を可
能にして、情報処理システムの解析を支援する機能を提
供している。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
リバースエンジニアリング支援システムによって、利用
者に提示される仕様情報は、ソースプログラムと同程度
の低レベルの情報であり、利用者は、これらの仕様情報
に基づいてさらにシステムの解析を行い、仕様情報の意
味付け、抽象化などを繰り返し、仕様情報のレベルを次
第に上位レベルの情報へと作り替えて、目的とする情報
処理システムの解析を行なわなければならない。
【0005】上記の作業は、支援システムから提示され
た複数の仕様情報を同時に参照、理解して、これらの仕
様情報の相互の関連を求めたり、全体における各仕様情
報の位置付けを行ったりする必要があり、利用者が複雑
な処理を行わなければ、効果的な解析が行えないという
問題点がある。
【0006】本発明は、利用者の負担を大幅に減らし
て、容易に効果的な解析を行うことができるリバースエ
ンジニアリング支援システムを提供することを目的とす
る。
【0007】
【課題を解決するための手段】本発明によれば、情報処
理システムに使用されるソースプログラムの解析を支援
するリバースエンジニアリング支援システムにおいて、
前記ソースプログラムに含まれる複数の所定単位プログ
ラムと該複数の所定単位プログラム間のフロー情報とを
抽出、解析して仕様情報を生成するとともに、前記複数
の所定単位プログラムにそれぞれ対応する付随情報を抽
出する仕様情報抽出手段と、前記仕様情報と前記付随情
報とに基づいて前記複数の所定単位プログラム間の従属
関係を分析し、前記複数の所定単位プログラムを少なく
とも1つのグループにグルーピングして階層化された抽
象仕様情報を生成するとともに、前記付随情報のうち前
記グループに対応する情報を識別可能にする仕様情報抽
象化手段と、前記抽象仕様情報と前記付随情報とをそれ
ぞれ記憶する抽象仕様情報記憶手段及び付随情報記憶手
段と、前記抽象仕様情報及び前記付随情報を表示するた
めの表示手段と、前記抽象仕様情報に付加する意味付情
報を入力するための入力手段と、前記抽象仕様情報記憶
手段から前記所定単位プログラムまたは前記グループに
対応する情報を選択的に読み出し、かつ読出した抽象仕
様情報に対応する付随情報を前記付随情報記憶手段から
読出して前記表示手段に表示させるともに、前記入力手
段からの前記意味付情報を前記抽象化仕様情報に付加し
て前記仕様情報記憶手段に再び記憶させる意味付手段と
を有することを特徴とするリバースエンジニアリング支
援システムが得られる。
【0008】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。図1に本発明のリバースエンジニ
アリング支援システムの一実施形態を示す。このリバー
スエンジニアリング支援システムは、入出力装置11、
支援装置12、及び外部記憶装置13を有している。
【0009】入出力装置11は表示部14を有してい
る。また、支援装置12は、ソースプログラムのモジュ
ールレベル、制御ブロックレベル、及び外部データにそ
れぞれ対応する仕様情報抽出部15、16、及び17
と、同じくモジュールレベル、制御ブロックレベル、及
び外部データにそれぞれ対応する仕様情報抽象化部1
8、19、及び20と、意味付部21、メモリ22、及
びこれらを制御する制御部23を有している。
【0010】また、外部記憶装置13は、解析しようと
するソースプログラム群を記憶している。なお、この外
部記憶装置13は、必ずしも必要なものではなく、解析
しようとするソースプログラム群を含む情報処理システ
ムを、直接支援装置12に接続するようにしても良い
し、入出力装置11からソースプログラム群を入力する
ようにしても良い。
【0011】以下、図2乃至図6をも参照して、図1の
リバースエンジニアリング支援システムの動作を説明す
る。通常、ソースプログラム群は、複数のソースプログ
ラムによって構成されている。ここでは、図2に示す3
つのソースプログラム1乃至3によって構成されている
ものとする。
【0012】まず、入出力装置11から支援装置12に
対してソースプログラム群の解析の指示が与えられる
と、制御部23は、仕様情報抽出部15、16、及び1
7を同時にあるいは所定の順序で起動する。この起動
は、入出力装置11からの指示にしたがって、仕様情報
抽出部15、16、及び17のうちの1つまたは2つの
みを起動するようにもできる。
【0013】起動された仕様情報抽出部15、16、及
び17は、外部記憶装置13からソースプログラム群を
読出し、ソースプログラム1乃至3の分析を行う。詳述
すると、モジュールレベル仕様情報抽出部15は、ソー
スプログラム1乃至3から、モジュール(ここでは関
数)の定義、関数の入出力データ、及び関数間の呼び出
し関係(制御フロー情報)を抽出、解析してモジュール
レベルの仕様情報と入出力データ情報とを構築する。な
お、図2に示すソースプログラム群に含まれている関数
は、main、func1 、及びfunc2 である。
【0014】また、制御ブロックレベル仕様情報抽出部
16は、ソースプログラム1乃至3に含まれる関数内の
制御ブロック(入口と出口とが1つづつの一連の処
理)、制御ブロック間の制御の流れ、及び各制御ブロッ
クの入出力データを解析して、制御ブロックレベルの仕
様情報と入出力データ情報とを構築する。
【0015】さらにまた、外部データ仕様情報抽出部1
7は、ソースプログラム1乃至3に含まれる外部データ
の定義と、その構造情報、及び外部データの値の伝播を
表すデータフロー情報を解析して、外部データに関する
仕様情報とデータ構造情報とを構築する。なお、図2の
ソースプログラム群には、外部データとして、message
、text、及びlengthが含まれている。
【0016】上記のようにして、各仕様情報抽出部1
5、16、及び17が抽出した仕様情報及び入出力デー
タ情報(データ構造情報)は、一旦メモリ22に格納さ
れる。
【0017】次に、制御部23は、仕様情報抽象化部1
8、19、及び20をそれぞれ起動する。モジュールレ
ベル仕様情報抽象化部18は、メモリ22から読出した
モジュールレベルの仕様情報から、モジュール間の従属
関係を調査する。即ち、各関数とその関数に直接従属す
る関数とを探し出す。そして、直接従属関係にある関数
をグルーピングし、各グループを関数の上位概念となる
抽象モジュールとする。例えば、図2のソースプログラ
ム群に含まれる関数func2 には、関数func1 が直接従属
し、関数mainには、関数func1 及びfunc2 が直接従属し
ているので、これらをそれぞれ1つのグループに分類
し、図3に示すように、抽象モジュールAM1、及びA
M2とする。こうして、モジュールレベル仕様情報抽象
化部18において、抽象モジュールを作成することによ
り階層化されたモジュールレベルの抽象仕様情報が生成
される。また、このとき、モジュールレベル仕様情報抽
象化部18は、入力された入出力データ情報から、抽象
モジュールに対応する入出力データを探し、その旨の情
報を上記抽象仕様情報に付加する。
【0018】同様に、制御ブロック仕様情報抽象化部1
9は、メモリ22から読出した制御ブロックレベルの仕
様情報から、制御ブロック間の従属関係を調査する。そ
して、直接従属関係にある制御ブロックをグルーピング
し、各グループを制御ブロックの上位概念となる抽象制
御ブロックとする。例えば、図2のソースプログラム1
の場合は、制御ブロックCB1、CB2、CB3、CB
4、及びCB5を含んでおり、制御ブロックCB2には
制御ブロックCB3及びCB4が従属、制御ブロックC
B1には制御ブロックCB2及びCB5が従属してい
る。この関係に基づいて、制御ブロック仕様情報抽象化
部19は、制御ブロックCB1、CB2、CB3、CB
4、及びCB5を、図3に示すような抽象制御ブロック
ACB1及びACB2にグルーピングする。また、制御
ブロック仕様情報抽象化部19は、各抽象ブロックの入
出力データを入出力データ情報の中から探し、その旨の
情報を付加して制御ブロックレベルの抽象仕様情報とす
る。
【0019】また、外部データ仕様情報抽象化部20
も、同様に、読出した仕様情報及びデータ構造情報か
ら、外部データの従属関係を調査し、グルーピングを行
し、外部データの抽象仕様情報を生成する。例えば、図
2のソースプログラム群の外部データmessage 、text、
及びlengthは、図5に示すように、外部データtext、及
びlengthが、外部データmessage の要素text及びcount
に、それぞれアドレスが格納されることによって従属し
ているので、これらは、1つの抽象データAD1にグル
ーピングされる。
【0020】こうして、仕様情報抽象化部18、19、
及び20からそれぞれ得られる階層化された抽象仕様情
報(各グループに対応することを示す情報を付加した入
出力データ情報及びデータ構造情報を含む)はメモリ2
2に格納される。この後、制御部23は、ユーザの指示
に従い意味付部21を起動する。
【0021】意味付部21は、所定の順序で、メモリ2
2から階層化された抽象仕様情報の一部(対応する入出
力データ情報(またはデータ構造情報)を含む)を読出
し、入出力装置11に供給して、表示部14に表示させ
る。ここで、所定の順序とは、入出力部から指示がある
場合には、その指示に従って、指示がない場合には、例
えば、モジュールレベルの抽象仕様情報、制御ブロック
レベルの抽象仕様情報、外部データの抽象仕様情報の順
であって、上位の(抽象度高い)抽象仕様情報から下位
の(抽象度の低い)抽象仕様情報の順に表示させること
をいう。なお、意味付部21は、入出力装置11からの
要求に応じて、複数の抽象仕様情報を同時に表示部14
に表示させたり、順序を入れ替えて表示させることもで
きる。
【0022】この後、入出力装置11から、表示した抽
象仕様情報に付加すべき意味付け情報が入力されると、
意味付部21は、表示させた抽象仕様情報に、入力され
た意味付け情報を付加して新たな抽象仕様情報とし、メ
モリ22に再び格納する。このあと、次の抽象仕様情報
を入出力装置11の表示器14に表示させ、上記と同様
に意味付け情報を付加してメモリ22に格納するという
動作を繰り返す。なお、ここでの意味付けは、何を入力
して何を出力する、という観点で行う。この観点で、上
位の抽象仕様情報から下位の抽象仕様情報へと意味付け
を行うことにより、各抽象仕様情報の全体に対する位置
付けが明白となる。
【0023】前記以外の観点での意味付けは、上記の意
味付けを行った後行う。この意味付けは、すでに、各抽
象仕様情報の全体に対する位置付けが明白となってお
り、抽象仕様情報間の従属関係も明白なので、下位の仕
様情報から上位の仕様情報へと行うこともできる。
【0024】このように、本実施形態のシステムでは、
仕様情報を抽象化して階層化し、上位の仕様情報(全
体)から下位の仕様情報(部分)へと意味付けを行い、
各仕様情報の全体における位置付を明らかにした後、さ
らに意味付けを行うようにしたことで、スムーズなソー
スプログラムの解析を実現できる。
【0025】最後に図6に本実施形態のリバースエンジ
ニアシステムの情報の流れを示しておく。ここで、太線
は起動関係を、細線は参照設定関係を示している。な
お、制御部23が、ソフトウェアにより構成される場合
は、図6に示すように、支援手段、仕様情報構築手段、
制御手段等により階層化して実現される。支援手段は、
ユーザの指示により、仕様情報構築手段を起動、その
後、制御手段を起動する。また、仕様情報構築手段は、
モジュールレベル仕様情報抽出部15、制御ブロックレ
ベル仕様情報抽出部16、外部データ仕様情報抽出部1
7、モジュールレベル仕様情報抽象化部18、制御ブロ
ックレベル仕様情報抽象化部19、及び外部データ仕様
情報抽象化部20を所定の順序で起動する。また、制御
手段は、ユーザの指示により意味付部21を起動する。
【0026】
【発明の効果】本発明によれば、情報処理システムに用
いられるソースプログラムの解析を支援するリバースエ
ンジニアリング支援システムにおいて、ソースプログラ
ムから抽出した仕様情報を抽象化して階層化し、全体か
ら部分へと解析を進めるようにしたことで、スムーズな
解析を実現できる。
【図面の簡単な説明】
【図1】本発明の一実施形態を表すブロック図である。
【図2】図1のリバースエンジニアリング支援システム
の解析対象となるソースプログラム群の一例を示す図で
ある。
【図3】図2のソースプログラムから抽出したモジュー
ルレベルの仕様情報を示す図である。
【図4】図2のソースプログラムから抽出した制御ブロ
ックレベルの仕様情報を示す図である。
【図5】図2のソースプログラムから抽出した外部デー
タの仕様情報を示す図である。
【図6】図1のリバースエンジニアシステムの情報の流
れを説明するためのブロック図である。
【符号の説明】
11 入出力装置 12 支援装置 13 外部記憶装置 14 表示部 15 モジュールレベル仕様情報抽出部 16 制御ブロックレベル仕様情報抽出部 17 外部データ仕様情報抽出部 18 モジュールレベル仕様情報抽象化部 19 制御ブロックレベル仕様情報抽象化部 20 外部データ仕様情報抽象化部 21 意味付部 22 メモリ 23 制御部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 情報処理システムに使用されるソースプ
    ログラムの解析を支援するリバースエンジニアリング支
    援システムにおいて、前記ソースプログラムに含まれる
    複数の所定単位プログラムと該複数の所定単位プログラ
    ム間のフロー情報を抽出、解析して仕様情報を生成する
    とともに、前記複数の所定単位プログラムにそれぞれ対
    応する付随情報を抽出する仕様情報抽出手段と、前記仕
    様情報と前記付随情報とに基づいて前記複数の所定単位
    プログラム間の従属関係を分析し、前記複数の所定単位
    プログラムを少なくとも1つのグループにグルーピング
    して階層化された抽象仕様情報を生成するとともに、前
    記付随情報のうち前記グループに対応する情報を識別可
    能にする仕様情報抽象化手段と、前記抽象仕様情報と前
    記付随情報とをそれぞれ記憶する抽象仕様情報記憶手段
    及び付随情報記憶手段と、前記抽象仕様情報及び前記付
    随情報を表示するための表示手段と、前記抽象仕様情報
    に付加する意味付情報を入力するための入力手段と、前
    記抽象仕様情報記憶手段から前記所定単位プログラムま
    たは前記グループに対応する情報を選択的に読み出し、
    かつ読出した抽象仕様情報に対応する付随情報を前記付
    随情報記憶手段から読出して前記表示手段に表示させる
    ともに、前記入力手段からの前記意味付情報を前記抽象
    化仕様情報に付加して前記仕様情報記憶手段に再び記憶
    させる意味付手段とを有することを特徴とするリバース
    エンジニアリング支援システム。
  2. 【請求項2】 前記所定単位プログラムがモジュールで
    あって、前記付随情報が前記モジュールの入出力データ
    情報であることを特徴とする請求項1のリバースエンジ
    ニアリング支援システム。
  3. 【請求項3】 前記所定単位プログラムが制御ブロック
    であって、前記付随情報が前記制御ブロックの入出力デ
    ータ情報であることを特徴とする請求項1のリバースエ
    ンジニアリング支援システム。
  4. 【請求項4】 前記所定単位プログラムが外部データで
    あって、前記付随情報が前記外部データのデータ構造情
    報であることを特徴とする請求項1のリバースエンジニ
    アリング支援システム。
  5. 【請求項5】 前記仕様情報抽出手段と前記仕様情報抽
    象化手段とを複数有し、前記所定単位プログラムとして
    モジュール、制御ブロック、及び外部データのうちの2
    つまたは全てに対応できるようにしたことを特徴とする
    請求項1のリバースエンジニアリング支援システム。
  6. 【請求項6】 情報処理システムに使用されるソースプ
    ログラムの解析を支援するリバースエンジニアリング支
    援方法において、前記ソースプログラムに含まれる複数
    の所定単位プログラムと該複数の所定単位プログラム間
    のフロー情報を抽出、解析して仕様情報を生成するとと
    もに、前記複数の所定単位プログラムにそれぞれ対応す
    る付随情報を抽出する仕様情報抽出工程と、前記仕様情
    報と前記付随情報とに基づいて前記複数の所定単位プロ
    グラム間の従属関係を分析し、前記複数の所定単位プロ
    グラムを少なくとも1つのグループにグルーピングして
    階層化された抽象仕様情報を生成するとともに、前記付
    随情報のうち前記グループに対応する情報を識別可能に
    する仕様情報抽象化工程と、前記階層化された抽象仕様
    情報を上位の抽象仕様情報から下位の抽象仕様情報まで
    を順番に表示器に選択表示する表示工程と、表示工程に
    おいて表示された抽象仕様情報に順次意味付け情報を付
    加する意味付け工程とを含むことを特徴とするリバース
    エンジニアリング支援方法。
JP7258796A 1995-10-05 1995-10-05 リバースエンジニアリング支援システム Pending JPH09101884A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7258796A JPH09101884A (ja) 1995-10-05 1995-10-05 リバースエンジニアリング支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7258796A JPH09101884A (ja) 1995-10-05 1995-10-05 リバースエンジニアリング支援システム

Publications (1)

Publication Number Publication Date
JPH09101884A true JPH09101884A (ja) 1997-04-15

Family

ID=17325193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7258796A Pending JPH09101884A (ja) 1995-10-05 1995-10-05 リバースエンジニアリング支援システム

Country Status (1)

Country Link
JP (1) JPH09101884A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
JP2006285707A (ja) * 2005-04-01 2006-10-19 Hitachi Ltd 業務仕様作成支援システム及び方法
JP4820924B1 (ja) * 2011-02-07 2011-11-24 株式会社エヌ・ティ・ティ・データ リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム
US10019453B2 (en) 2012-12-27 2018-07-10 Fujitsu Limited Recording medium, search method, and information processing apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
JP2006285707A (ja) * 2005-04-01 2006-10-19 Hitachi Ltd 業務仕様作成支援システム及び方法
US7624124B2 (en) 2005-04-01 2009-11-24 Hitachi, Ltd. System and method for assisting generation of business specification
JP4820924B1 (ja) * 2011-02-07 2011-11-24 株式会社エヌ・ティ・ティ・データ リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム
US10019453B2 (en) 2012-12-27 2018-07-10 Fujitsu Limited Recording medium, search method, and information processing apparatus

Similar Documents

Publication Publication Date Title
US5164911A (en) Schematic capture method having different model couplers for model types for changing the definition of the schematic based upon model type selection
JP4780308B2 (ja) 制御プログラム開発支援装置及びコンピュータプログラム
JPH09101884A (ja) リバースエンジニアリング支援システム
US6075529A (en) GUI automatic generating system for inputting data of a manufacturing process
CN112965717A (zh) 多系统集成部署并保持界面统一的前端部署系统及方法
JP4628169B2 (ja) ユーザプログラム用検索装置及びこれに適用されるプログラム
JPH01199756A (ja) 生産計画シミュレーション装置
JP4282961B2 (ja) 制御コントローラにおけるデータの入出力定義を行うシステム
JPH09292986A (ja) 部品抽出方法
JP7318829B2 (ja) 生産システム、プログラム作成装置、生産方法、及びプログラム
WO2023128285A1 (ko) 그리드 규칙이 적용된 블록단위의 컨텐츠를 조립하여 적응형 웹페이지를 제작하는 웹페이지 제작 지원 방법 및 시스템
JP2006294013A (ja) 制御プログラム開発支援装置
JPS62135958A (ja) シミユレ−シヨン方式
CN114138257A (zh) 一种应用构建方法及计算机可读存储介质
JPH05334325A (ja) データ処理装置の帳票作成方式
JPH06309159A (ja) プログラム自動生成装置
CN116149653A (zh) 构建列表页面的方法、装置、存储介质及计算机设备
JPS61208573A (ja) 知的コマンド生成装置
JPH07111720B2 (ja) Cadシステムの形状デ−タ管理方法
Rausch Control system's architecture
CZ287699A3 (cs) Způsob generování strukturované soustavy stránkových souborů formátovaných pomocí popisného jazyka
JP2004213148A (ja) プラント監視制御システム
JPH07129080A (ja) Sfc入力方式
JPH0363878A (ja) Lsi設計支援システム
JPH10222550A (ja) 論理合成方法及び装置並びに論理合成プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010912