著者
原田 実 吉川 彰一 永井 英一郎
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告ソフトウェア工学(SE)
巻号頁・発行日
vol.1994, no.73, pp.97-104, 1994-09-08

プログラムの保守を効率化するためには、プログラムから仕様への逆生成が重要である.本研究では、ファイル処理問題に対するCOBOLプログラムから形式的な要求仕様を逆生成する手法を提案するとともに、それを実現するシステムCOBOL Reverse Engineer for Modules:CORE/Mを開発した.プログラム理解の結果を表す要求仕様としては、等関係仕様を採用した.この仕様は、ファイル処理問題における実体や関連の属性項目間の関係と出力・更新要求を等関係式という数式の集合で表したもので、要求を非手続的に表現できる.ここでは、各計算式の項目は、"."を介してそれが所属する実体の識別子によって、また"_"を介してそれが格納されているファイル名によって修飾されている.従って、等関係式はその左辺項目の充分な意味定義になっている.CORE/MはまずCOBOLプログラムを構文解析し、ブロック構造に展開する.次にブロックが処理対象とする実体や関連を表す照合基準を抽出する.この照合基準を元に、実体識別子とファイル修飾子を導出し、ブロックに含まれる処理文内の項目を適切に修飾して等関係式に変換し出力する.事例として、176行のCOBOLプログラムを変換した結果、元のプログラムと同値の等関係式仕様を得た.今後の課題として、等価変換を用いて行儀の悪いプログラムも理解できるようにすることなどがある.I propose a technique of reverse engineering of COBOL programs, and develop a "COBOL Reverse Engineer-CORE/M-" based on this technique. CORE/M generates the non-procedural EOS specifi-cation from COBOL programs, especially performing the file processing. EOS specification consists of a set of equations, called equality relation. Each equality relation shows the relationship among the attribute items of entities. In this, each item is modified with "." by the entity having it as an attribute, and suffixed with "_" by the file storing it. CORE/M, first, parses the COBOL program, and develops it into a block structure. Next, CORE/M decides which entities are processed under what conditions in each block. It can be thought that all the statements in a block are processing the same entity fulfilling the same condition. Thus, CORE/M basically modifies every item in such a statement with the same entity identifier and the same file modifier. CORE/M actually converted the sample Cobol pro-gram consisting of 176 lines, and has generated its EOS specification bearing the same meanig.