JP3390471B2 - 仕様書自動生成装置 - Google Patents
仕様書自動生成装置Info
- Publication number
- JP3390471B2 JP3390471B2 JP29424492A JP29424492A JP3390471B2 JP 3390471 B2 JP3390471 B2 JP 3390471B2 JP 29424492 A JP29424492 A JP 29424492A JP 29424492 A JP29424492 A JP 29424492A JP 3390471 B2 JP3390471 B2 JP 3390471B2
- Authority
- JP
- Japan
- Prior art keywords
- assignment
- variable
- variables
- same type
- 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】既存のプログラムの保守作業を容
易にするため、その仕様書を電子的に管理し、参照検索
を容易にすることが要求されている。ところが、既存の
プログラムの仕様書は多くが手書きであり、その作成に
は人手を要していた。このような手間を省き、電子的に
管理できる仕様書を作るためには、プログラムから仕様
書を抽出して仕様書を自動的に生成する機能が必要とな
る。
易にするため、その仕様書を電子的に管理し、参照検索
を容易にすることが要求されている。ところが、既存の
プログラムの仕様書は多くが手書きであり、その作成に
は人手を要していた。このような手間を省き、電子的に
管理できる仕様書を作るためには、プログラムから仕様
書を抽出して仕様書を自動的に生成する機能が必要とな
る。
【0002】本発明は上記のように、既存のプログラム
からその仕様書を自動的に生成する仕様書生成装置に関
し、特に本発明は既存のプログラムに用いられている変
数を表に変換して自然言語表現に置き換えることができ
る仕様書自動生成装置に関するものである。
からその仕様書を自動的に生成する仕様書生成装置に関
し、特に本発明は既存のプログラムに用いられている変
数を表に変換して自然言語表現に置き換えることができ
る仕様書自動生成装置に関するものである。
【0003】
【従来の技術】従来の仕様書生成方法は、プログラムを
そのまま自然言語化するものが多い。また、プログラム
中に用いられている変数を表形式に変換する場合におい
ても、データ宣言の変換テーブルや、デシジョン・テー
ブルを生成するものはあるが、変数の代入先に着目し、
同種の代入をまとめて表に変換するものは知られていな
い。
そのまま自然言語化するものが多い。また、プログラム
中に用いられている変数を表形式に変換する場合におい
ても、データ宣言の変換テーブルや、デシジョン・テー
ブルを生成するものはあるが、変数の代入先に着目し、
同種の代入をまとめて表に変換するものは知られていな
い。
【0004】
【発明が解決しようとする課題】上記したように、従来
においては、プログラム中の代入先に着目して、同種の
代入をまとめて表に変換するものは知られていなかっ
た。本発明は上記した従来技術の問題点に鑑みなされた
ものであって、仕様書を生成するに際して、互いに関係
の強い代入処理を一個の表にまとめることにより、より
理解しやすい仕様書を生成する仕様書自動生成装置を提
供することを目的とする。
においては、プログラム中の代入先に着目して、同種の
代入をまとめて表に変換するものは知られていなかっ
た。本発明は上記した従来技術の問題点に鑑みなされた
ものであって、仕様書を生成するに際して、互いに関係
の強い代入処理を一個の表にまとめることにより、より
理解しやすい仕様書を生成する仕様書自動生成装置を提
供することを目的とする。
【0005】
【課題を解決するための手段】図1は本発明の原理ブロ
ツク図である。同図において、1は入力されるプログラ
ム、2は生成された仕様書を示している。上記課題を解
決するため、本発明の請求項1の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約を利用して変数をカテゴリ別に分類し、同種の変数を
代入先に持つ代入文の集合を抽出し、抽出された代入文
を表に変換して、仕様書2を自動生成するようにしたも
のである。
ツク図である。同図において、1は入力されるプログラ
ム、2は生成された仕様書を示している。上記課題を解
決するため、本発明の請求項1の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約を利用して変数をカテゴリ別に分類し、同種の変数を
代入先に持つ代入文の集合を抽出し、抽出された代入文
を表に変換して、仕様書2を自動生成するようにしたも
のである。
【0006】本発明の請求項2の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数のデータ
構造を利用して変数をカテゴリ別に分類して、同種の変
数を代入先に持つ代入文の集合を抽出し、抽出された代
入文を表に変換して、仕様書2を自動生成するようにし
たものである。
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数のデータ
構造を利用して変数をカテゴリ別に分類して、同種の変
数を代入先に持つ代入文の集合を抽出し、抽出された代
入文を表に変換して、仕様書2を自動生成するようにし
たものである。
【0007】本発明の請求項3の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約を利用して変数をカテゴリ別に分類して、条件分岐に
よって分割されている代入文列のうち、同種の変数を代
入先に持つ代入文の集合を抽出し、条件により代入文列
を分類して表に変換して、仕様書2を自動生成するよう
にしたものである。
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約を利用して変数をカテゴリ別に分類して、条件分岐に
よって分割されている代入文列のうち、同種の変数を代
入先に持つ代入文の集合を抽出し、条件により代入文列
を分類して表に変換して、仕様書2を自動生成するよう
にしたものである。
【0008】本発明の請求項4の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数のデータ
構造を利用して変数をカテゴリ別に分類して、条件分岐
によって分割されている代入文列のうち、同種の変数を
代入先に持つ代入文の集合を抽出し、条件により代入文
列を分類して表に変換して、仕様書2を自動生成するよ
うにしたものである。
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数のデータ
構造を利用して変数をカテゴリ別に分類して、条件分岐
によって分割されている代入文列のうち、同種の変数を
代入先に持つ代入文の集合を抽出し、条件により代入文
列を分類して表に変換して、仕様書2を自動生成するよ
うにしたものである。
【0009】本発明の請求項5の発明は、プログラム1
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約もしくは変数のデータ構造を利用して変数をカテゴリ
別に分類し、同種の変数を代入先に持つ代入文の集合を
抽出して第1の表に変換するととともに、条件分岐によ
って分割されている代入文列のうち、同種の変数を代入
先に持つ代入文の集合を抽出し、条件により代入文列を
分類して第2の表に変換し、連続する第1および第2の
表の中で代入先に相当する変数が同種である場合に、上
記第1の表および第2の表を一個の表に合成して、仕様
書2を自動生成するようにしたものである。
を自然言語に変換し、仕様書2を自動生成する仕様書自
動生成装置において、図1に示すように、変数の命名規
約もしくは変数のデータ構造を利用して変数をカテゴリ
別に分類し、同種の変数を代入先に持つ代入文の集合を
抽出して第1の表に変換するととともに、条件分岐によ
って分割されている代入文列のうち、同種の変数を代入
先に持つ代入文の集合を抽出し、条件により代入文列を
分類して第2の表に変換し、連続する第1および第2の
表の中で代入先に相当する変数が同種である場合に、上
記第1の表および第2の表を一個の表に合成して、仕様
書2を自動生成するようにしたものである。
【0010】
【作用】プログラム1の代入文における代入先変数を、
その変数の命名規約、あるいは、データ構造を利用し
て、カテゴリ別に分類し、同種の変数を代入先に持つ代
入文の集合を抽出する。ついで、表に変換できる変数に
ついて、関係の強い変数毎に表のパターンに変換する。
また、条件分岐によって分割されている代入文について
は、条件で代入文列を分類し表に変換する。さらに、上
記のようにして変換された連続する表の中の代入先に相
当する変数が同種であるとき、これらの表を1個の表に
合成する。表に変換された代入文は日本語等の自然言語
に変換され、代入先変数により代入文列を分類した表を
持つ仕様書が生成される。
その変数の命名規約、あるいは、データ構造を利用し
て、カテゴリ別に分類し、同種の変数を代入先に持つ代
入文の集合を抽出する。ついで、表に変換できる変数に
ついて、関係の強い変数毎に表のパターンに変換する。
また、条件分岐によって分割されている代入文について
は、条件で代入文列を分類し表に変換する。さらに、上
記のようにして変換された連続する表の中の代入先に相
当する変数が同種であるとき、これらの表を1個の表に
合成する。表に変換された代入文は日本語等の自然言語
に変換され、代入先変数により代入文列を分類した表を
持つ仕様書が生成される。
【0011】本発明の請求項1ないし請求項5の発明に
おいては、上記のようにして仕様書を自動生成するよう
にしたので、仕様書中において同種の代入先変数を持つ
代入文を一個の表に変換することができ、より理解し易
い仕様書を作成することができる。
おいては、上記のようにして仕様書を自動生成するよう
にしたので、仕様書中において同種の代入先変数を持つ
代入文を一個の表に変換することができ、より理解し易
い仕様書を作成することができる。
【0012】
【実施例】図2は本発明の実施例の全体構成を示す図で
あり、11は入力される、例えば、COBOL等の言語
で書かれたプログラム、12はプログラム11を解析し
て、構文構造とデータ構造を表現する中間表現を生成す
る構文解析部、13は構文解析部12において生成され
た中間表現、14は中間表現13の一部を表のパターン
に変換する表変換部、15はその中間表現、16はプロ
グラム中の識別子に対応する意味を表す名前を格納した
名標辞書、17は名標辞書16の情報を基に、中間表現
15を自然言語と自然言語で表現された表に置き換える
自然言語生成部、18は作成された仕様書を示してい
る。
あり、11は入力される、例えば、COBOL等の言語
で書かれたプログラム、12はプログラム11を解析し
て、構文構造とデータ構造を表現する中間表現を生成す
る構文解析部、13は構文解析部12において生成され
た中間表現、14は中間表現13の一部を表のパターン
に変換する表変換部、15はその中間表現、16はプロ
グラム中の識別子に対応する意味を表す名前を格納した
名標辞書、17は名標辞書16の情報を基に、中間表現
15を自然言語と自然言語で表現された表に置き換える
自然言語生成部、18は作成された仕様書を示してい
る。
【0013】図3、図4はCOBOLで記述された入力
プログラム11の一例を示す図であり、同プログラム中
において、「MOVE…」で記述された代入文が、本実
施例において表変換と対象となる部分であり、例えば、
図4のプログラムの2行目の「MOVE XHIHII
TO XLWCDT」において、代入先の変数「XL
WCDT」が抽出され、変数とその値が、そのカテゴリ
(種類)毎にまとめて表に変換される。
プログラム11の一例を示す図であり、同プログラム中
において、「MOVE…」で記述された代入文が、本実
施例において表変換と対象となる部分であり、例えば、
図4のプログラムの2行目の「MOVE XHIHII
TO XLWCDT」において、代入先の変数「XL
WCDT」が抽出され、変数とその値が、そのカテゴリ
(種類)毎にまとめて表に変換される。
【0014】また代入先の変数のカテゴリが同種である
か否かは、例えば、次の方法で判定される。 変数の命名規約情報を利用する方法 変数の命名は、業務や用途によって分類できるように規
定されている場合があり、例えば、変数名の頭3文字
(例えば、「TMP−」が頭3文字に付く変数は「一時
変数」に対応する等)によってその種類が表される。
か否かは、例えば、次の方法で判定される。 変数の命名規約情報を利用する方法 変数の命名は、業務や用途によって分類できるように規
定されている場合があり、例えば、変数名の頭3文字
(例えば、「TMP−」が頭3文字に付く変数は「一時
変数」に対応する等)によってその種類が表される。
【0015】したがって、この場合には、変数名の頭3
文字によってその種類を判定することができる。 変数のデータ構造情報を利用する方法 変数を命名する場合に、例えば、変数「XXXV1」の
下位の変数を「XXXV11」、「XXXV12」、…
とし、さらに、変数「XXXV11」の下位の変数を
「XXXV111」とするように、変数を階層構造と
し、その種類と階層に応じた構造を持つ変数名を付ける
場合がある。このように、データ構造により変数の種類
が分類されている場合には、その変数の構造を見ること
により、その変数のカテゴリを判定することができる。
文字によってその種類を判定することができる。 変数のデータ構造情報を利用する方法 変数を命名する場合に、例えば、変数「XXXV1」の
下位の変数を「XXXV11」、「XXXV12」、…
とし、さらに、変数「XXXV11」の下位の変数を
「XXXV111」とするように、変数を階層構造と
し、その種類と階層に応じた構造を持つ変数名を付ける
場合がある。このように、データ構造により変数の種類
が分類されている場合には、その変数の構造を見ること
により、その変数のカテゴリを判定することができる。
【0016】図2において、構文解析部12は、例え
ば、図3、図4に示すプログラム11を解析して、その
構文構造とデータ構造を表現する中間表現13を生成す
る。図5ないし図7は構文解析部12において生成され
た中間表現13の一例を示す図であり、同図は、図3、
図4に示したCOBOLで記述されたプログラムよりL
ISPで記述された中間表現を生成した場合を示したも
のである。
ば、図3、図4に示すプログラム11を解析して、その
構文構造とデータ構造を表現する中間表現13を生成す
る。図5ないし図7は構文解析部12において生成され
た中間表現13の一例を示す図であり、同図は、図3、
図4に示したCOBOLで記述されたプログラムよりL
ISPで記述された中間表現を生成した場合を示したも
のである。
【0017】構文解析部12において生成された、例え
ば、図5ないし図7に示される中間表現13は表変換部
14に与えられ、表変換部14は、上記した、に示
した判定方法等を用いて、代入文の変数のカテゴリを判
定し、表に変換できる変数について、関係の強い変数毎
に表のパターンに変換して、中間表現15を生成する。
ば、図5ないし図7に示される中間表現13は表変換部
14に与えられ、表変換部14は、上記した、に示
した判定方法等を用いて、代入文の変数のカテゴリを判
定し、表に変換できる変数について、関係の強い変数毎
に表のパターンに変換して、中間表現15を生成する。
【0018】自然言語生成部17は中間言語15を名標
辞書16に格納された変数名を用いて自然言語(例え
ば、日本語)に変換し、仕様書18を生成する。図8は
連続する代入文列を表変換した一例を示す図であり、同
図(a)は変換の対象となるCOBOLのプログラム、
同図(b)は構文解析部12において生成されたその中
間表現、同図(c)は、連続して入力される、変数「Y
YYV1」〜「YYYV4」を含む代入文を表変換した
結果を示している。
辞書16に格納された変数名を用いて自然言語(例え
ば、日本語)に変換し、仕様書18を生成する。図8は
連続する代入文列を表変換した一例を示す図であり、同
図(a)は変換の対象となるCOBOLのプログラム、
同図(b)は構文解析部12において生成されたその中
間表現、同図(c)は、連続して入力される、変数「Y
YYV1」〜「YYYV4」を含む代入文を表変換した
結果を示している。
【0019】なお、同図(c)に示す自然言語で表現さ
れた仕様書を生成するに際して、自然言語生成部17
は、名標辞書16に格納された、例えば、次の情報を参
照して変数を自然言語に変換する。 WK1〜WK1 : ワーク1〜ワーク6 XXXV1〜XXXV2 : 変数X1 YYYV1〜YYYV3 : 変数Y1〜変数Y3 ZZZV1 : 変数Z1 図9は連続する代入文列を表変換するフローチャートを
示す図であり、同図により本実施例を説明する。
れた仕様書を生成するに際して、自然言語生成部17
は、名標辞書16に格納された、例えば、次の情報を参
照して変数を自然言語に変換する。 WK1〜WK1 : ワーク1〜ワーク6 XXXV1〜XXXV2 : 変数X1 YYYV1〜YYYV3 : 変数Y1〜変数Y3 ZZZV1 : 変数Z1 図9は連続する代入文列を表変換するフローチャートを
示す図であり、同図により本実施例を説明する。
【0020】同図において、ステップS11において、
新規代入文が入力されると、ステップS12において、
代入先変数が抽出される。ステップS13において、カ
テゴリ1と、新しい代入先の変数が同種であるか、また
は、カテゴリ1が値を持たないかが判定される。最初に
代入文が入力されたとき、カテゴリ1は値を持たないの
で、ステップS14に行き、変数を含む代入文を表変換
候補に追加するとともに、抽出された代入先変数と同種
の変数をカテゴリ1として設定する。ついで、ステップ
S15において、文が終了したか否かが判定され、文が
終了していない場合には、ステップS11に戻る。
新規代入文が入力されると、ステップS12において、
代入先変数が抽出される。ステップS13において、カ
テゴリ1と、新しい代入先の変数が同種であるか、また
は、カテゴリ1が値を持たないかが判定される。最初に
代入文が入力されたとき、カテゴリ1は値を持たないの
で、ステップS14に行き、変数を含む代入文を表変換
候補に追加するとともに、抽出された代入先変数と同種
の変数をカテゴリ1として設定する。ついで、ステップ
S15において、文が終了したか否かが判定され、文が
終了していない場合には、ステップS11に戻る。
【0021】例えば、図8の例において、最初に代入先
変数「XXXV1」が抽出されると、上記変数を含む代
入文が表変換候補として追加されるとともに、上記代入
先変数と同種の代入先変数(この例の場合には、「XX
X」の3文字で始まる代入先変数)がカテゴリ1として
設定される。ついで、ステップS11において、新規代
入文が入力され、ステップS12において、代入先変数
が抽出される。ステップS13において、上記したよう
にカテゴリ1と、新しい代入先の変数が同種であるか、
または、カテゴリ1が値を持たないかが判定される。
変数「XXXV1」が抽出されると、上記変数を含む代
入文が表変換候補として追加されるとともに、上記代入
先変数と同種の代入先変数(この例の場合には、「XX
X」の3文字で始まる代入先変数)がカテゴリ1として
設定される。ついで、ステップS11において、新規代
入文が入力され、ステップS12において、代入先変数
が抽出される。ステップS13において、上記したよう
にカテゴリ1と、新しい代入先の変数が同種であるか、
または、カテゴリ1が値を持たないかが判定される。
【0022】ここで、抽出された代入先変数が「YYY
V1」の場合には、カテゴリ1と同種ではないので、ス
テップS16に行き、表変換候補が空であるか否かが判
定される。表変換候補が空でない場合(この場合には、
変数「XXXV1」がカテゴリ1として設定されている
ので空ではない)、入力した代入文の前で表は終了する
ので、ステップS17において、表変換候補を変換す
る。なお、同種の代入先変数が連続して入力されない場
合には、表には変換せず、代入文をそのまま自然言語に
変換する。
V1」の場合には、カテゴリ1と同種ではないので、ス
テップS16に行き、表変換候補が空であるか否かが判
定される。表変換候補が空でない場合(この場合には、
変数「XXXV1」がカテゴリ1として設定されている
ので空ではない)、入力した代入文の前で表は終了する
ので、ステップS17において、表変換候補を変換す
る。なお、同種の代入先変数が連続して入力されない場
合には、表には変換せず、代入文をそのまま自然言語に
変換する。
【0023】例えば、上記のように、代入先変数「XX
XV1」が一つ抽出された後に、異なったカテゴリの代
入先変数である「YYYV1」が抽出された場合には、
「XXX」の3文字で始まる代入先変数は連続しないの
で表変換せず、図8(c)に示すように、「変数X1を
ワーク1に設定する。」と代入文をそのまま自然言語に
変換する。
XV1」が一つ抽出された後に、異なったカテゴリの代
入先変数である「YYYV1」が抽出された場合には、
「XXX」の3文字で始まる代入先変数は連続しないの
で表変換せず、図8(c)に示すように、「変数X1を
ワーク1に設定する。」と代入文をそのまま自然言語に
変換する。
【0024】ついで、ステップS18において、次の表
変換の準備をするため、カテゴリ1および表変換候補を
クリアし、ステップS19において文が終了したか否か
が判別され、終了していない場合には、ステップS11
に戻り、代入先変数「YYYV1」を含む代入文につい
て上記と同様の処理を行う。例えば、図8(a)に示す
ように、変数「XXXV1」を含む代入文が入力された
のちに、「YYY」の3文字ではじまる代入先変数を含
む代入文が連続して入力される場合には、これらの代入
先変数を含む代入文が表変換候補として追加され、ステ
ップS17において表変換される。
変換の準備をするため、カテゴリ1および表変換候補を
クリアし、ステップS19において文が終了したか否か
が判別され、終了していない場合には、ステップS11
に戻り、代入先変数「YYYV1」を含む代入文につい
て上記と同様の処理を行う。例えば、図8(a)に示す
ように、変数「XXXV1」を含む代入文が入力された
のちに、「YYY」の3文字ではじまる代入先変数を含
む代入文が連続して入力される場合には、これらの代入
先変数を含む代入文が表変換候補として追加され、ステ
ップS17において表変換される。
【0025】その結果、代入先変数「YYYV1」、
「YYYV2」、「YYYV3」が対応した自然言語表
現である「変数Y1」、「変数Y2」、「変数Y3」に
変換され、図8(c)に示すように上記代入文が表に変
換される。また、表の前には、「以下の領域に値を設定
する。」が付加される。ついで、代入先変数「ZZZV
1」、「XXXV2」を含む代入文が入力されると、代
入先変数「XXXV1」を含む代入文が入力された場合
と同様、図8(c)に示すように、それらがそれぞれ、
「変数Z1にワーク5を設定する。」、「変数X2にワ
ーク6を設定する。」と変換される。
「YYYV2」、「YYYV3」が対応した自然言語表
現である「変数Y1」、「変数Y2」、「変数Y3」に
変換され、図8(c)に示すように上記代入文が表に変
換される。また、表の前には、「以下の領域に値を設定
する。」が付加される。ついで、代入先変数「ZZZV
1」、「XXXV2」を含む代入文が入力されると、代
入先変数「XXXV1」を含む代入文が入力された場合
と同様、図8(c)に示すように、それらがそれぞれ、
「変数Z1にワーク5を設定する。」、「変数X2にワ
ーク6を設定する。」と変換される。
【0026】図10および図11は条件分岐文中の代入
文を表変換した一例を示す図であり、同図(a)は変換
の対象となるCOBOLのプログラム、同図(b)は構
文解析部12において生成されたその中間表現、図11
は、変数「YYYV1」〜「YYYV3」を含む条件分
岐文中の代入文を表変換した結果を示している。図12
は条件分岐文中の代入文を表変換するフローチャートを
示す図であり、同図により本実施例を説明する。
文を表変換した一例を示す図であり、同図(a)は変換
の対象となるCOBOLのプログラム、同図(b)は構
文解析部12において生成されたその中間表現、図11
は、変数「YYYV1」〜「YYYV3」を含む条件分
岐文中の代入文を表変換した結果を示している。図12
は条件分岐文中の代入文を表変換するフローチャートを
示す図であり、同図により本実施例を説明する。
【0027】ステップS21において、新規条件文を入
力し、ステップS22において、代入文を抽出する。ス
テップS23において代入先変数を抽出し、ステップS
24において、カテゴリ1と変数が同種、またはカテゴ
リ1が値を持たないか否かが判別される。図9のフロー
チャートの場合と同様、最初に代入文が入力されたと
き、カテゴリ1は値を持たないので、ステップS25に
行き、変数を含む代入文を表変換候補に追加するととも
に、抽出された代入先変数と同種の変数をカテゴリ1と
して設定し、代入元には条件を付加する。
力し、ステップS22において、代入文を抽出する。ス
テップS23において代入先変数を抽出し、ステップS
24において、カテゴリ1と変数が同種、またはカテゴ
リ1が値を持たないか否かが判別される。図9のフロー
チャートの場合と同様、最初に代入文が入力されたと
き、カテゴリ1は値を持たないので、ステップS25に
行き、変数を含む代入文を表変換候補に追加するととも
に、抽出された代入先変数と同種の変数をカテゴリ1と
して設定し、代入元には条件を付加する。
【0028】ついで、ステップS26において、文が終
了したか否かが判定され、文が終了していない場合に
は、ステップS22に戻り、次の代入文を抽出する。例
えば、図10の例において、最初に代入先変数「YYY
V1」が抽出されると、上記変数を含む代入文が表変換
候補として追加されるとともに、上記代入先変数と同種
の代入先変数がカテゴリ1として設定される。また、代
入元には条件として、「IF cond−A THE
N」に対応した「cond−Aの時」という条件が付加
され、文が終了していない場合には、ステップS22に
戻り次の代入文が抽出される。
了したか否かが判定され、文が終了していない場合に
は、ステップS22に戻り、次の代入文を抽出する。例
えば、図10の例において、最初に代入先変数「YYY
V1」が抽出されると、上記変数を含む代入文が表変換
候補として追加されるとともに、上記代入先変数と同種
の代入先変数がカテゴリ1として設定される。また、代
入元には条件として、「IF cond−A THE
N」に対応した「cond−Aの時」という条件が付加
され、文が終了していない場合には、ステップS22に
戻り次の代入文が抽出される。
【0029】次にステップS24において、ステップS
23において抽出された代入文の代入先変数が、カテゴ
リ1と同種であるかが判定される。ここで、抽出された
代入先変数が、例えば、図10に示すように「YYYV
2」の場合には、カテゴリ1と同種なので、ステップS
25に行き、上記変数を含む代入文が表変換候補として
追加されるとともに、代入元には条件として、「IF
cond−A THEN」に対応した「cond−Aの
時」という条件が付加される。
23において抽出された代入文の代入先変数が、カテゴ
リ1と同種であるかが判定される。ここで、抽出された
代入先変数が、例えば、図10に示すように「YYYV
2」の場合には、カテゴリ1と同種なので、ステップS
25に行き、上記変数を含む代入文が表変換候補として
追加されるとともに、代入元には条件として、「IF
cond−A THEN」に対応した「cond−Aの
時」という条件が付加される。
【0030】以下同様にして、代入文が表変換候補とし
て追加され、図10(a)の代入先変数「YYYV3」
を含む代入文が入力されて表変換候補に追加されると、
代入文が終了するので、ステップS27に行く。ステッ
プS27において、表変換候補を表変換するとともに、
同じ代入先を同欄にまとめる。また、ステップS28で
次の表変換の準備をするため、表変換候補とカテゴリ1
をクリアし、ステップS29において、文が終了したか
否かを判別し、文が終了していない場合には、ステップ
S21に戻り、上記処理を繰り返す。
て追加され、図10(a)の代入先変数「YYYV3」
を含む代入文が入力されて表変換候補に追加されると、
代入文が終了するので、ステップS27に行く。ステッ
プS27において、表変換候補を表変換するとともに、
同じ代入先を同欄にまとめる。また、ステップS28で
次の表変換の準備をするため、表変換候補とカテゴリ1
をクリアし、ステップS29において、文が終了したか
否かを判別し、文が終了していない場合には、ステップ
S21に戻り、上記処理を繰り返す。
【0031】また、上記ステップS24において、カテ
ゴリ1と抽出された代入先変数が同種でないと判定され
た場合には、ステップS28にいき、上記と同様、次の
表変換の準備をするため、表変換候補とカテゴリ1をク
リアし、ステップS29において、文が終了したか否か
を判別し、文が終了していない場合には、ステップS2
1に戻り、上記処理を繰り返す。
ゴリ1と抽出された代入先変数が同種でないと判定され
た場合には、ステップS28にいき、上記と同様、次の
表変換の準備をするため、表変換候補とカテゴリ1をク
リアし、ステップS29において、文が終了したか否か
を判別し、文が終了していない場合には、ステップS2
1に戻り、上記処理を繰り返す。
【0032】以上の処理の結果、代入先変数「YYYV
1」、「YYYV2」、「YYYV3」が対応した自然
言語表現である「変数Y1」、「変数Y2」、「変数Y
3」に変換され、図11に示すように代入先に「con
d−Aの時」、「上記以外の時」、「cond−Aでな
い時」という条件が付加されて、上記代入文が代入先変
数毎に表に変換される。また、表の前には、「以下の領
域に値を設定する。」が付加される。
1」、「YYYV2」、「YYYV3」が対応した自然
言語表現である「変数Y1」、「変数Y2」、「変数Y
3」に変換され、図11に示すように代入先に「con
d−Aの時」、「上記以外の時」、「cond−Aでな
い時」という条件が付加されて、上記代入文が代入先変
数毎に表に変換される。また、表の前には、「以下の領
域に値を設定する。」が付加される。
【0033】図13ないし図15は代入文列と条件分岐
文中の代入文列からなるプログラムを表変換した一例を
示す図であり、図13は変換の対象となるCOBOLの
プログラム、図14は構文解析部12において生成され
たその中間表現、図15は上記中間表現を表変換した結
果を示している。図16は代入文列と条件分岐文中の代
入文列を連続する表に変換するフローチャートを示す図
であり、同図により本実施例を説明する。
文中の代入文列からなるプログラムを表変換した一例を
示す図であり、図13は変換の対象となるCOBOLの
プログラム、図14は構文解析部12において生成され
たその中間表現、図15は上記中間表現を表変換した結
果を示している。図16は代入文列と条件分岐文中の代
入文列を連続する表に変換するフローチャートを示す図
であり、同図により本実施例を説明する。
【0034】ステップS31において、新規文を入力
し、ステップS32において、入力文を判定する。入力
文が代入文の連続である場合には、ステップS33にお
いて、図9のフローチャートで示したような処理を行う
ことにより、表変換候補への登録の成否を判別する。表
変換候補への登録が成功した場合には、ステップS34
に行き、文が終了したか否かを判定し、終了していない
場合には、ステップS31に戻り上記処理を繰り返す。
また、ステップS33において、途中で別種の代入先が
現れた場合には、途中で失敗したものとして表変換候補
の登録を中止してステップS37に行き表変換候補を表
変換する。ついで、ステップS38において、次の表変
換の準備をするため、表変換候補とカテゴリ1をクリア
し、ステップS39において、文が終了したか否かを判
別し、文が終了していない場合には、ステップS31に
戻り、上記処理を繰り返す。
し、ステップS32において、入力文を判定する。入力
文が代入文の連続である場合には、ステップS33にお
いて、図9のフローチャートで示したような処理を行う
ことにより、表変換候補への登録の成否を判別する。表
変換候補への登録が成功した場合には、ステップS34
に行き、文が終了したか否かを判定し、終了していない
場合には、ステップS31に戻り上記処理を繰り返す。
また、ステップS33において、途中で別種の代入先が
現れた場合には、途中で失敗したものとして表変換候補
の登録を中止してステップS37に行き表変換候補を表
変換する。ついで、ステップS38において、次の表変
換の準備をするため、表変換候補とカテゴリ1をクリア
し、ステップS39において、文が終了したか否かを判
別し、文が終了していない場合には、ステップS31に
戻り、上記処理を繰り返す。
【0035】また、ステップS32において、入力文が
条件分岐文であると判定された場合には、ステップS3
5に行き、図12のフローチャートで示したような処理
を行うことにより、表変換候補への登録の成否を判別す
る。表変換候補への登録が成功した場合には、ステップ
S34に行き、上記と同様の処理を行う。また、ステッ
プS33において、途中で別種の代入先が現れた場合に
は、その条件分岐文は今までの表とは同じ表にできない
ので、ステップS36に行き、今までの登録をキャンセ
ルして、ステップS37に行き、上記と同様の処理を行
う。
条件分岐文であると判定された場合には、ステップS3
5に行き、図12のフローチャートで示したような処理
を行うことにより、表変換候補への登録の成否を判別す
る。表変換候補への登録が成功した場合には、ステップ
S34に行き、上記と同様の処理を行う。また、ステッ
プS33において、途中で別種の代入先が現れた場合に
は、その条件分岐文は今までの表とは同じ表にできない
ので、ステップS36に行き、今までの登録をキャンセ
ルして、ステップS37に行き、上記と同様の処理を行
う。
【0036】また、ステップS32において、入力文が
その他の文であると判定された場合には、ステップS3
7に行き、上記と同様の処理を行う。以上の処理の結
果、図13に示したプログラムは、図15に示す表に変
換される。以上のように表の結合を行うと、図15の最
後の変数Y9に対する代入のように、単独では表にでき
ない代入文も表にまとめることができる。
その他の文であると判定された場合には、ステップS3
7に行き、上記と同様の処理を行う。以上の処理の結
果、図13に示したプログラムは、図15に示す表に変
換される。以上のように表の結合を行うと、図15の最
後の変数Y9に対する代入のように、単独では表にでき
ない代入文も表にまとめることができる。
【0037】
【発明の効果】以上説明したことから明らかなように、
本発明においては、変数の命名規約もしくは変数のデー
タ構造を利用して変数をカテゴリ別に分類し、同種の変
数を代入先に持つ代入文の集合を抽出して表に変換する
とともに、上記のようにして変換された連続する表の中
の代入先に相当する変数が同種であるとき、これらの表
を1個の表に合成して、仕様書を自動生成するようにし
たので、仕様書中において、意味的に同一の代入処理を
1個の表に変換することができ、より理解し易い仕様書
を生成することができる。
本発明においては、変数の命名規約もしくは変数のデー
タ構造を利用して変数をカテゴリ別に分類し、同種の変
数を代入先に持つ代入文の集合を抽出して表に変換する
とともに、上記のようにして変換された連続する表の中
の代入先に相当する変数が同種であるとき、これらの表
を1個の表に合成して、仕様書を自動生成するようにし
たので、仕様書中において、意味的に同一の代入処理を
1個の表に変換することができ、より理解し易い仕様書
を生成することができる。
【図1】本発明の原理ブロック図である。
【図2】本発明の実施例の全体構成を示す図である。
【図3】COBOLで記述された入力プログラムの一例
を示す図である。
を示す図である。
【図4】COBOLで記述された入力プログラムの一例
を示す図(続き)である。
を示す図(続き)である。
【図5】構文解析部において生成された中間表現の一例
を示す図である。
を示す図である。
【図6】構文解析部において生成された中間表現の一例
を示す図(続き)である。
を示す図(続き)である。
【図7】構文解析部において生成された中間表現の一例
を示す図(続き)である。
を示す図(続き)である。
【図8】連続する代入文列を表変換した一例を示す図で
ある。
ある。
【図9】連続する代入文列を表変換するフローチャート
を示す図である。
を示す図である。
【図10】条件分岐文中の代入文を表変換した一例を示
す図である。
す図である。
【図11】条件分岐文中の代入文を表変換した一例を示
す図(続き)である。
す図(続き)である。
【図12】条件分岐文中の代入文を表変換するフローチ
ャートを示す図である。
ャートを示す図である。
【図13】連続する表を一個の表に変換した一例を示す
図である。
図である。
【図14】連続する表を一個の表に変換した一例を示す
図(続き)である。
図(続き)である。
【図15】連続する表を一個の表に変換した一例を示す
図(続き)である。
図(続き)である。
【図16】連続する表を一個の表に変換するフローチャ
ートを示す図である。
ートを示す図である。
1,11 プログラム
12 構文解析部
13,15 中間表現
14 表変換部
16 名標辞書
17 自然言語生成部
2,18 仕様書
フロントページの続き
(72)発明者 野呂 正明
神奈川県川崎市中原区上小田中1015番地
富士通株式会社内
(56)参考文献 特開 平4−55938(JP,A)
特開 平3−218522(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 9/44
G06F 9/06
Claims (5)
- 【請求項1】 プログラムを自然言語に変換し、仕様書
を自動生成する仕様書自動生成装置であって、 変数の命名規約を利用して変数をカテゴリ別に分類する
手段と、 同種の変数を代入先に持つ代入文の集合を抽出する手段
と、 抽出された代入文を表に変換して、仕様書を生成する手
段とを備えたことを特徴とする仕様書自動生成装置。 - 【請求項2】 プログラムを自然言語に変換し、仕様書
を自動生成する仕様書自動生成装置であって、 変数のデータ構造を利用して変数をカテゴリ別に分類す
る手段と、 同種の変数を代入先に持つ代入文の集合を抽出する手段
と、 抽出された代入文を表に変換して、仕様書を生成する手
段とを備えたことを特徴とする仕様書自動生成装置。 - 【請求項3】 プログラムを自然言語に変換し、仕様書
を自動生成する仕様書自動生成装置であって、 変数の命名規約を利用して変数をカテゴリ別に分類する
手段と、 条件分岐によって分割されている代入文列のうち、同種
の変数を代入先に持つ代入文の集合を抽出する手段と、 条件により代入文列を分類して表に変換して、仕様書を
生成する手段とを備えたことを特徴とする仕様書自動生
成装置。 - 【請求項4】 プログラムを自然言語に変換し、仕様書
を自動生成する仕様書自動生成装置であって、 変数のデータ構造を利用して変数をカテゴリ別に分類す
る手段と、 条件分岐によって分割されている代入文列のうち、同種
の変数を代入先に持つ代入文の集合を抽出する手段と、 条件により代入文列を分類して表に変換して、仕様書を
生成する手段とを備えたことを特徴とする仕様書自動生
成装置。 - 【請求項5】 プログラムを自然言語に変換し、仕様書
を自動生成する仕様書自動生成装置であって、 変数の命名規約もしくは変数のデータ構造を利用して変
数をカテゴリ別に分類する手段と、 同種の変数を代入先に持つ代入文の集合を抽出して第1
の表に変換するととともに、条件分岐によって分割され
ている代入文列のうち、同種の変数を代入先に持つ代入
文の集合を抽出する手段と、 条件により代入文列を分類して第2の表に変換し、連続
する第1および第2の表の中で代入先に相当する変数が
同種である場合に、上記第1の表および第2の表を一個
の表に合成して、仕様書を生成する手段とを備えたこと
を特徴とする仕様書自動生成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29424492A JP3390471B2 (ja) | 1992-11-02 | 1992-11-02 | 仕様書自動生成装置 |
US08/556,122 US5742827A (en) | 1992-11-02 | 1995-11-09 | Method of automatically forming program specifications and apparatus therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29424492A JP3390471B2 (ja) | 1992-11-02 | 1992-11-02 | 仕様書自動生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06149556A JPH06149556A (ja) | 1994-05-27 |
JP3390471B2 true JP3390471B2 (ja) | 2003-03-24 |
Family
ID=17805222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29424492A Expired - Fee Related JP3390471B2 (ja) | 1992-11-02 | 1992-11-02 | 仕様書自動生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3390471B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3881103B2 (ja) * | 1998-01-14 | 2007-02-14 | 富士通株式会社 | 変数分類装置およびそのプログラムを格納した記憶媒体 |
JP6062735B2 (ja) * | 2012-12-21 | 2017-01-18 | 株式会社エヌ・ティ・ティ・データ | ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム |
-
1992
- 1992-11-02 JP JP29424492A patent/JP3390471B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06149556A (ja) | 1994-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5555169A (en) | Computer system and method for converting a conversational statement to computer command language | |
JP2624753B2 (ja) | 上位仕様書作成方法 | |
JP2004118374A (ja) | 変換装置及び変換方法及び変換プログラム及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Levendovszky et al. | A novel approach to semi-automated evolution of dsml model transformation | |
JP3390471B2 (ja) | 仕様書自動生成装置 | |
Arnon | Scrimshaw: A language for document queries and transformations | |
EP1080424A1 (en) | A method and arrangement for translation of information | |
JP3759630B2 (ja) | スパイラル型オブジェクト指向ソフトウェアの開発支援システム | |
WO2001055901A1 (fr) | Systeme de traduction automatique, serveur et client de ce systeme | |
KR100280828B1 (ko) | 절차지향 프로그램을 객체지향 프로그램으로 변환하기 위한분석 방법 | |
JPH10207896A (ja) | 検索用語拡張方法及び装置及び情報検索方法及び装置 | |
US7617089B2 (en) | Method and apparatus for compiling two-level morphology rules | |
Tirri et al. | ALCHEMIST/spl minus/an object-oriented tool to build transformations between heterogeneous data representations | |
JP2002041287A (ja) | 再利用部品抽出装置、再利用部品抽出方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体 | |
JP2664036B2 (ja) | 自然言語文章解析装置 | |
JP2022090770A (ja) | 生成装置、およびテストコード生成方法 | |
JP2002328943A (ja) | 意味情報推定装置、意味情報推定方法、プログラム及び記憶媒体 | |
JPH05189492A (ja) | 検索式自動生成装置 | |
JPS62177627A (ja) | 部品切り出しプログラム作成方法 | |
JPS6027941A (ja) | 名標生成システム | |
JPH0455938A (ja) | プログラム仕様書自動生成方式 | |
JP3190377B2 (ja) | 関数名変換装置 | |
JPH0554067A (ja) | 意味解析方式 | |
JPS62205424A (ja) | 情報検索装置 | |
JPH02281337A (ja) | トランスレータジェネレータを拡張する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030107 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080117 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090117 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100117 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110117 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |