JP4872529B2 - リバースエンジニアリング支援方法 - Google Patents
リバースエンジニアリング支援方法 Download PDFInfo
- Publication number
- JP4872529B2 JP4872529B2 JP2006224828A JP2006224828A JP4872529B2 JP 4872529 B2 JP4872529 B2 JP 4872529B2 JP 2006224828 A JP2006224828 A JP 2006224828A JP 2006224828 A JP2006224828 A JP 2006224828A JP 4872529 B2 JP4872529 B2 JP 4872529B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- model
- program
- physical
- business
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 43
- 230000006870 function Effects 0.000 claims description 133
- 238000012545 processing Methods 0.000 description 86
- 238000013500 data storage Methods 0.000 description 19
- 230000014509 gene expression Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000012937 correction Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000005477 standard model Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
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)
Description
しかし、一般に資産解析による情報システムの仕様抽出手段は、計算機システムに近い低レベルの仕様情報を抽出する目的では有効であるが、業務に近い高レベルの仕様の抽出を行う目的では有効ではない。これは、解析によりプログラムに対し機械的に意味づけを行うことには限界がある為である。
情報システムの業務的な理解の為には、解析で得た情報に対し、人間である作業者が意味解釈作業を行うことが必要であるが、このような作業を支援する為の技術として、例えば、特許文献1に示すシステムは、プログラムのモジュール構造や構文構造等の階層化された情報に対し、作業者が意味情報を付加していく過程を支援する技術を開示している。
さらに上記システムの拡張として、同一物理データが、異なる論理データを格納する場合を扱う為に物理データをデータ格納域とデータの満たす制約の組で表し、同一プログラムに異なる機能が含まれる場合を扱う為に、プログラム機能をプログラムと入力データの満たす制約の組で表した上で、部分グラフの計算に、これら制約条件の間の整合性を使用することを行う。このような方法により、同一物理データに異なるデータが格納される場合、同一プログラムに異なる機能が含まれる場合においても、業務モデルと物理モデルの対応をとることができる。
図1は、本発明の一実施形態である業務仕様作成支援システムの構成図を示す。本システムは、バス等で接続されたCPU31、ディスプレイ装置32、キーボード33、マウス等の指示装置34、ディスク装置20、メモリ10で構成される。メモリ10は、制御部40、プログラム解析部41、データ起点処理部42、機能起点処理部43、表示部44、モデル登録/修正部45の各プログラムを含む。ディスク装置20は、対象プログラム21、物理モデル22、対応モデル23、業務モデル24の各データベースを含む。
まず、制御部40は、キーボード33又は指示装置34から入力されたユーザからの解析指示を読み込み、プログラム解析部41を起動して対象プログラム21を解析し、物理モデル22を作成する(ステップ101)。次に、制御部40は、ユーザによって入力されたモデル登録指示を読み込み、モデル登録/修正部45を起動する。モデル登録/修正部45は、ユーザから入力された業務モデル及び対応モデルを読み込んで、業務モデル24及び対応モデル23の登録を行う(ステップ102)。次に、制御部40は、ユーザからの指示が、データ起点処理か、機能起点処理か、終了かを判断する(ステップ103)。
まず、データ起点処理部42は、業務モデル24に含まれる業務I/O関連表82の業務機能欄87を、ユーザによって指定された業務機能に従って検索することにより、関連する論理データの集合Sを得る(ステップ111)。例えば、ユーザによって指定された業務機能が「受注登録」である場合は、データ起点処理部42は、「受注登録」をキーとして業務I/O関連表82の業務機能欄87を検索し、「受注」、「担当者」、「受注伝票」の3つの論理データを含む集合Sを得て、Sをメモリ10の図示しない記憶領域に格納する。
(1)プログラムPGM-yを、業務機能「受注登録」に対応付ける。
(2)物理データFILE-bを、論理データ「担当者」に対応付ける。
(3)業務モデルに新たな出力データとして、論理データ「納期照会」を登録し、物理デ
ータFILE-dを、論理データ「納期照会」に対応付ける。
(1)物理データFILE-eに対応する、業務モデル、対応モデルを削除する。
(2)物理データFILE-fに対応する、業務モデル、対応モデルを削除する。
(3)業務機能を、枠線166、167、168の範囲に分割し、分割した機能のそれぞれに、含まれるプログラムを対応づける。
まず、機能起点処理部43は、機能対応モデル92の業務機能欄95を、ユーザによって指定された業務機能で検索することにより、対象の業務機能が対応するプログラムの集合Fを得る(ステップ141)。例えば、指定された業務機能が「受注登録」の場合、図5に示すように、集合Fの内容は、F={PGM-x、PGM-z、PGM-w}となる。
また、物理モデルにおける処理についても、プログラムをグラフの頂点と考えてきたが、実施形態をプログラム中に複数の異なる機能が混在している場合に、拡張することができる。実施例1の説明を引用しながら実施例2として以下に説明する。
図14に掲げた物理データ表200は、図3の物理モデルにおける、物理データ表61を代替するものである。図3の物理データ表61と同等のデータ欄202、マーク欄207に加え、新たにデータID欄201と、データ制約欄203を設けた。データ制約欄203には、データ格納域中の異なる種類のレコードを区別する為に、レコードに課す条件を保持する。条件は、レコードのフィールドを用いた算術式、不等式、論理式で表現される。例えば、図中208に示した「y=1」は、FILE-aに格納するレコードのフィールドyに課した条件式「y=1」を表し、これにより、レコード196は、データ格納域FILE-a中の、条件式「y=1」を満たすデータを表す。データ制約は、「−」であっても良く、その場合、レコードには条件を課さないことを意味するものとする。
物理データは、データ格納域とデータ制約の組によって表される為、データ格納域のみでは一意に決まらない。その為に、データID欄201は、レコードを区別するキーとして新たに設ける。
また、物理I/O関連表210は、表62を代替するものであり、拡張された物理モデルにおける、プログラム機能/物理データの入出力の関係を表現する。
入力データについてのデータ制約は、プログラムに含まれる複数の異なるプログラム機能を区別する為に、プログラムの入力レコードに課す条件を保持する。プログラムと入力制約の組は、該当の条件が成立する場合に実行されるプログラムの部分を、間接的に表現する。
例えば、219に示した制約条件「y=1」は、「プログラム機能F1のFILE-nレコードのフィールドyが1である」ことを示す。レコード222は、前に述べたプログラム機能F1の入力に関する前提条件の下で、「プログラムPGM-xの出力であるFILE-nレコードのフィールドyが1」であることを意味する。また、物理I/O関連表210には、FILE-mに関するレコードのデータ制約欄214が、「false」であり、これは、同じ前提条件の下で、FILE-mに関する出力が無いことを意味する。
実施例2における、拡張された物理モデルでは、物理データを特定するキーは、データIDであり、プロウグラム機能を特定するキーは、機能IDである。その為、対応モデルにおいても、データID欄233、機能ID欄235を設け、業務モデルとの対応は、これらとの対応によって表現する。
例えば、図中236に示したレコードは、データID「D1」が国内受注データに対応するということを意味する。他方、物理データ表201によれば、D1は、レコード196で示されており、結局、国内受注データは、「データ格納域FILE-aのデータ中、y=1が成り立つもの」である。
対応モデルは、拡張前と同様、初期状態では分かり得る範囲のモデルを、仮定して作業を始める。この拡張においては、物理モデルも、プログラムの分析だけで、完全に作成することはできない。これに対し、以前と同様、対話処理で、ユーザから情報を追加してもらい、モデルの精度を徐々に高めていく。
(1)物理データは、データ格納域とこれに課した制約の組であり、処理上は、データIDにより識別する。
(2)プログラムは、物理的なプログラムとその入力に課した制約の組に読み替える(プログラム機能)。処理上は機能IDにより識別する。
(3-1)プログラム機能に対応するプログラムが物理データに対応するデータ格納域を入力し、かつ、
(3-2)プログラム機能に対応するプログラムの入力項目に付随する制約条件が、物理データに付随する制約条件と両立し得る、
機能IDの集合を取って、これに対応する頂点間のみ、辺で結ぶものとする。
(3-3)まず、データIDをキーに物理データ表200を検索して、レコードを所得する(ステップ300)。
(3-4)取得したレコードの、データ、データ制約欄の値を、それぞれ、変数d、及び、cに格納する(ステップ301)
(3-5)データ名d及び、I/O区分=「I」で、物理I/O関連表210を検索し、検索結果を配列Rに格納する(ステップ302)
(3-6)配列Rの1つのレコードを取り、このレコードの機能ID、及びデータ制約欄の値を、変数p及びc1に格納する(ステップ303)。
(3-7)制約cとc1が、両立し得るかどうかを、定理証明器等を用いて評価し、両立し得る場合、機能ID pを、結果配列 Aに格納する(ステップ304)。
(3-8)レコードの配列Rのすべてのレコードを処理するまで、以上を繰り返す(ステップ305)。配列Rのすべてのレコードの処理が終了すると図16の処理は終了となる。
(4-1)プログラム機能に対応するプログラムが物理データに対応するデータ格納域を出力し、かつ
(4-2)物理データに対応する出力データ格納域に付随する制約条件が、プログラム機能の出力項目に付随する制約条件と両立し得る、
データIDの集合を取って、これに対応する頂点間のみ、辺で結ぶものとする。これを行うシステムの処理を、図17に示す:
(4-3)与えられた機能IDと、I/O区分=「O」で、物理I/O関連表210を検索し、レコードを取得して配列Rに格納する(ステップ310)。
(4-4)配列R内の1つのレコードを取り、このレコードのデータ名、及びデータ制約欄を、変数n及びc1に設定する(ステップ311)。
(4-6)配列Q内のひとつのレコードを取り、このレコードのデータID、データ制約欄を、それぞれ、変数d、cに設定する(ステップ313)。
(4-7)制約cとc1が、両立し得るかどうかを、定理証明器等を用いて評価し、両立し得る場合、データID dを、結果配列 Aに格納する(ステップ314)。
(4-8)以上を、配列R及び、配列Qの要素について繰り返す(ステップ315、及びステップ316)。配列R、Qのすべてのレコードの処理が終了すると図17の処理は終了となる。ステップ304及び、314においては、制約条件が両立し得るかどうかは、システム的に判断が不可能な可能性がある。その場合、ユーザの判断を入力して評価を確定する。
しかしながら、この制限付モデルを使用したシステムを有効に機能させる為には、ユーザが物理モデルに付加する制約を見出しこれを、モデルに登録していかなければならない。このような物理モデルに対する修正は、例えば、図6、ステップ106において業務モデル、対応モデルに対する修正と同様に、対話的に行う。システムは、以下のように、モデル表示機能において、これを支援することができる。尚、これらの処理の前提となる頂点間の辺の評価には、図16及び、図17の処理を用いる。
(6)データ格納域が同一で制約が異なる複数の物理データからの、入力又は出力がある機能をハイライト表示する。複数の物理データ対し、付随する制約を、それぞれ表示する。例えば、作業者は、データに付随する制約を機能の入出力に課すことを、検討する。
例えば、まず、解析対象システムのエンドユーザよりヒヤリングで得た情報により、国内受注に関しては、レコード中のyというフラグが、1であるという知識を得たものとする。
アイコン240は、国内受注に関するものである。PGM-x は、同一のデータ格納域FILE-aに関連する異なる制約のデータを入力している為、システムはこのアイコン243をハイライト表示する。
例えば、アイコン263に関しては、入力レコードが、条件式y=1を満たす前提で、PGM-xの実行結果の出力を評価し、その結果、PGM-xの出力レコードnに対し、条件式y=1を得たとする。また、出力レコードmに対しては、出力されないことを示すことができたとする。また、アイコン264に関しては、入力レコードが、条件式y!=1を満たす前提で、PGM-xの実行結果の出力を評価し、その結果、PGM-xの出力レコードnに対し、条件式y!=1を得たとする。このような評価は、常に実行可能とは限らない為、評価がうまく行えなかった場合、作業者が知識を補完する必要がある。
Claims (1)
- 情報システムで使用されているプログラムの解析を行いプログラムの理解を支援するリバースエンジニアリング支援システムにより実行されるリバースエンジニアリング支援方法において、
業務機能と論理データを頂点とし、これらの間のデータの入出力を表す有向の辺を持つグラフである業務モデル、プログラム機能と物理データを頂点とし、これらの間のデータの入出力を表す有向の辺を持つグラフである物理モデル、業務機能とプログラム機能の対応及び論理データと物理データの対応表である対応モデルを記憶し、ユーザが指定した業務機能に対し、業務機能の入出力である論理データに対応する物理データの集合を検索し、これらを端点とする物理モデルの部分グラフを計算することにより業務機能に対応するプログラム機能の集合を推論することを特徴とするリバースエンジニアリング支援方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006224828A JP4872529B2 (ja) | 2006-08-22 | 2006-08-22 | リバースエンジニアリング支援方法 |
US11/701,312 US20080052299A1 (en) | 2006-08-22 | 2007-01-31 | Reverse engineering support system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006224828A JP4872529B2 (ja) | 2006-08-22 | 2006-08-22 | リバースエンジニアリング支援方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008052312A JP2008052312A (ja) | 2008-03-06 |
JP2008052312A5 JP2008052312A5 (ja) | 2009-01-29 |
JP4872529B2 true JP4872529B2 (ja) | 2012-02-08 |
Family
ID=39197899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006224828A Expired - Fee Related JP4872529B2 (ja) | 2006-08-22 | 2006-08-22 | リバースエンジニアリング支援方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080052299A1 (ja) |
JP (1) | JP4872529B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8965981B2 (en) * | 2009-11-25 | 2015-02-24 | At&T Intellectual Property I, L.P. | Method and apparatus for botnet analysis and visualization |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
JP4820924B1 (ja) * | 2011-02-07 | 2011-11-24 | 株式会社エヌ・ティ・ティ・データ | リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
JPWO2012172747A1 (ja) * | 2011-06-14 | 2015-02-23 | 日本電気株式会社 | 評価モデル生成装置、評価モデル生成方法および評価モデル生成プログラム |
JP2015102878A (ja) * | 2013-11-21 | 2015-06-04 | 株式会社日立製作所 | プログラム関連分析方法 |
US9891901B2 (en) | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4791660B2 (ja) * | 2001-08-23 | 2011-10-12 | 日立公共システムエンジニアリング株式会社 | データフロー自動生成装置とデータフロー自動生成方法およびコンピュータ読み取り可能な記録媒体 |
JP2003091416A (ja) * | 2001-09-17 | 2003-03-28 | Toshiba Corp | 業務アプリケーションシステムの機能構成定義方法 |
JP4826120B2 (ja) * | 2005-04-01 | 2011-11-30 | 株式会社日立製作所 | 業務仕様作成支援システム及び方法 |
-
2006
- 2006-08-22 JP JP2006224828A patent/JP4872529B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-31 US US11/701,312 patent/US20080052299A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2008052312A (ja) | 2008-03-06 |
US20080052299A1 (en) | 2008-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4872529B2 (ja) | リバースエンジニアリング支援方法 | |
US6571247B1 (en) | Object oriented technology analysis and design supporting method | |
JP4473893B2 (ja) | 作業項目抽出装置、作業項目抽出方法、および、作業項目抽出プログラム | |
US7624124B2 (en) | System and method for assisting generation of business specification | |
US8572551B2 (en) | Difference log production for model merging | |
JP2010015458A (ja) | プログラム修正支援システム、プログラム修正支援方法、およびプログラム修正支援プログラム | |
JP4084731B2 (ja) | 設計変更支援システム | |
JP2004157927A (ja) | 帳票入力用プログラムの生成方式、生成プログラム及び生成方法 | |
JP6336922B2 (ja) | 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置 | |
WO2012017757A1 (ja) | クローン検出装置、クローン検出プログラム、及びクローン検出プログラムを記録した記録媒体 | |
JP5168099B2 (ja) | 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法 | |
JP2000172739A (ja) | 設計支援装置 | |
JP5965785B2 (ja) | ユースケースシナリオ作成支援装置、ユースケースシナリオ作成支援方法、およびユースケースシナリオ作成支援プログラム | |
JP4960188B2 (ja) | 画面遷移図の表示方法およびシステム | |
JP5504212B2 (ja) | テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム | |
JP5189880B2 (ja) | クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 | |
JP2007264863A (ja) | 業務使用解析装置 | |
JP2006277282A (ja) | モデル評価解析システムおよびモデル評価解析プログラム | |
JP2006277127A (ja) | 修正プログラムの比較方法 | |
JP2018092466A (ja) | 変更影響調査支援装置、変更影響調査支援方法および変更影響調査支援プログラム | |
JP4706001B2 (ja) | 設計コンピュータプログラム | |
JP4576872B2 (ja) | 情報処理装置およびプログラム | |
JP2004118389A (ja) | 入力支援方法、入力支援装置及び入力支援プログラム | |
JP2022111794A (ja) | 情報処理装置及び情報処理方法 | |
JP2022111796A (ja) | 情報処理装置及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081204 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111003 |
|
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: 20111025 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111107 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4872529 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |