JPH1063492A - ソフトウェアの仕様書生成装置 - Google Patents

ソフトウェアの仕様書生成装置

Info

Publication number
JPH1063492A
JPH1063492A JP22227296A JP22227296A JPH1063492A JP H1063492 A JPH1063492 A JP H1063492A JP 22227296 A JP22227296 A JP 22227296A JP 22227296 A JP22227296 A JP 22227296A JP H1063492 A JPH1063492 A JP H1063492A
Authority
JP
Japan
Prior art keywords
japanese
variable
source program
program
input
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
JP22227296A
Other languages
English (en)
Inventor
Yoshiyuki Nagayama
栄之 長山
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.)
JFE Steel Corp
Original Assignee
Kawasaki Steel 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 Kawasaki Steel Corp filed Critical Kawasaki Steel Corp
Priority to JP22227296A priority Critical patent/JPH1063492A/ja
Publication of JPH1063492A publication Critical patent/JPH1063492A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】ソースプログラムから高精度のソフトウェアの
仕様書を生成する。 【解決手段】先ず、仕様書を生成する対象であるソース
プログラム10と外部入出力テーブル11とに基づい
て、変数変換用テーブル生成処理100が実行し、変数
変換用テーブル14が生成する。変数変換用テーブル1
4には、ソースプログラム10の各入出力変数が、適切
な日本語変数名及び同一データが代入される一又は二以
上の変数と対応して保存される。次に、日本語変換処理
200を実行して、ソースプログラム10を日本語プロ
グラム17に変換する。そして、要約処理300を実行
して、日本語プログラム17を適宜圧縮し適切なボリュ
ームの日本語仕様書19を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、計算機システム
におけるソフトウェアの保守や再構築作業のために必要
な日本語の仕様書を生成する装置に関し、特に、実際の
ソースプログラムから高精度のソフトウェアの仕様書を
生成できるようにしたものである。
【0002】
【従来の技術】新規の計算機システムの構築時には、要
件仕様書,機能仕様書,プログラム仕様書等の膨大な上
位の設計ドキュメントを先ず作成し、その作成された仕
様書に基づいて計算機言語でソースプログラムを記述す
る、というのが通常の手順である。そして、ソースプロ
グラムが完成した後はシステム立ち上げ後に発生する機
能改善や不具合対応を保守作業として行うのであるが、
保守作業は新規システムの構築時に比べて少人数で行わ
なければならないため、仕様書の改訂作業までは行わ
ず、ソースプログラムの改訂のみが行われる場合が多
い。
【0003】すると、実際に使用しているソースプログ
ラムと手元の仕様書の内容とが一致しなくなってしま
い、仕様書の信頼性が低くなってしまう。仕様書の信頼
性が低くなると、ソースプログラムを正確に読みこなせ
ない者は計算機システムの詳細な機能や処理内容を自力
では理解できなってしまう。
【0004】そこで、例えば特開平6−242933号
公報(第1従来例)や特開平6−282424号公報
(第2従来例)に開示されるような、ソースプログラム
から仕様書を自動的に生成する装置が従来から存在す
る。
【0005】
【発明が解決しようとする課題】しかしながら、上記第
1従来例に開示された装置は、仕様書の保守装置に関す
るものであるが、上位概念の抽出を人手により補足する
ようになっているため、作業者のレベルがそのまま仕様
書のレベルに反映してしまい、修正ミスも発生し易く、
得られる仕様書の質が悪い場合も多く、結果として仕様
書の信頼性が低いという問題点を有している。また、上
記第2従来例に開示された装置は、ソースプログラムの
注釈文を抽出し、それを各処理の内容とするようになっ
ているため、保守作業の度にコメント文を詳細に且つ正
確に修正しなければ十分に高精度の仕様書を得ることが
できないという問題点を有している。
【0006】本発明は、このような従来の技術が有する
未解決の課題に着目してなされたものであって、実際の
ソースプログラムから高精度のソフトウェアの仕様書を
生成するのに役立つ仕様書生成装置を提供することを目
的としている。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に係る発明は、ソースプログラムからソフ
トウェアの仕様書を生成するための装置であって、前記
ソースプログラムの対外部データ入出力処理部に記述さ
れた入出力変数に日本語変数名を付与する日本語変数名
付与手段と、前記入出力変数の前記ソースプログラム内
での代入関係に基づいて同一データが代入される一又は
二以上の変数を抽出しその抽出された変数を前記日本語
変数名と対応させて記憶する変数解析手段と、この変数
解析手段の解析結果及び所定の変換ルールに従って前記
ソースプログラムを日本語のプログラムに変換する変換
手段と、前記日本語のプログラムを所定の圧縮ルールに
従って圧縮する要約手段と、を備えた。
【0008】上記目的を達成するために、請求項2に係
る発明は、ソースプログラムからソフトウェアの仕様書
を生成するための装置であって、前記ソースプログラム
の対外部データ入出力処理部に記述された入出力変数に
日本語変数名を付与する日本語変数名付与手段と、前記
入出力変数の前記ソースプログラム内での代入関係に基
づいて同一データが代入される一又は二以上の変数を抽
出しその抽出された変数を前記日本語変数名と対応させ
て記憶する変数解析手段と、前記ソースプログラムを所
定の圧縮ルールに従って圧縮する要約手段と、前記要約
手段によって要約されたソースプログラムを前記変数解
析手段の解析結果及び所定の変換ルールに従って日本語
のプログラムに変換する変換手段と、を備えた。
【0009】また、請求項3に係る発明は、上記請求項
1又は2に係る発明であるソフトウェアの仕様書生成装
置において、前記日本語変数名付与手段は、前記ソース
プログラムの入出力変数に対して注釈文が添えられてい
る場合には、その注釈文に基づいて前記日本語変数名を
決定する一方、前記ソースプログラムの入出力変数に注
釈文が添えられていない場合には、作業者に日本語変数
名の入力を求めるようになっている。
【0010】そして、請求項4に係る発明は、上記請求
項1乃至3に係る発明であるソフトウェアの仕様書生成
装置において、前記要約手段は、指定回数以上に深い入
れ子構造を削除するようになっている。
【0011】さらに、請求項5に係る発明は、上記請求
項1乃至3に係る発明であるソフトウェアの仕様書生成
装置において、前記要約手段は、関数の呼出しに必要な
変数のセット命令を削除するようになっている。
【0012】ここで、請求項1に係る発明にあっては、
日本語変数名付与手段によって、ソースプログラムの対
外部データ入出力処理部(対外部データ入力処理部,対
外部データ出力処理部)に記述された入出力変数に、日
本語変数名が付与される。つまり、ソースプログラムの
外部(例えば、上位計算機等)からデータを読み込むデ
ータ入力処理部には、このソースプログラムに外部から
データが入力される際に最初にデータが代入される入力
変数が記述されているし、また、ソースプログラムの外
部(例えば、下位計算機やプロセスコンピュータ等))
に対してデータを出力するデータ出力処理部には、この
ソースプログラムから外部にデータが出力される際に最
後にデータが代入される出力変数が記述されており、そ
れら入力変数や出力変数は、例えばソースプログラムと
は別に作成した外部入出力テーブルを参照することによ
り、或いは、ソースプログラム内におけるデータ入出力
や変数定義に関する命令語を確認することにより、容易
に抽出できる。
【0013】入出力変数に日本語変数名が付与された
ら、変数解析手段によって、入出力変数のソースプログ
ラム内での代入関係に基づいて、同一データが代入され
る一又は二以上の変数が抽出され、その抽出された変数
が、代入関係を追跡する又は逆上る際の出発点であった
入出力変数の日本語変数名との対応を採られた上で記憶
される。つまり、入出力変数は、外部からデータを読み
込む際の最初の変数又は外部にデータを出力する際の最
後の変数と考えることができる。そして、入力変数にデ
ータが代入されると、それが次々と代入式を経て他の変
数に代入されていく場合があるから、代入関係を一つず
つ追跡することにより、同一のデータが代入される一又
は二以上の変数が抽出されるのである。出力変数の場合
にも、その出力変数に代入されたデータは、次々と代入
式を経て他の変数から受け渡されていることがあるか
ら、代入関係を一つずつ逆上ることにより、同一のデー
タが代入される一又は二以上の変数が抽出されるのであ
る。換言すれば、ソースプログラム内では異なった変数
名が記述されていたとしても、各変数間の代入関係を追
跡する或いは逆上ることにより、実質的に同一の変数で
あることが確認できるのである。
【0014】変数解析手段による変数の解析が行われた
後には、変換手段によって、ソースプログラムが日本語
のプログラムに変換される。この場合、変換手段は、変
数解析手段の解析結果、つまり日本語変数名とこれに対
応して記憶された一又は二以上の変数名とに関する情報
に基づいて変換を行うため、ソースプログラム内では同
一データが代入される変数は、一つの日本語変数名に統
一して変換することができる。
【0015】また、変換手段においては、変数解析手段
の解析結果に含まれていない変数や命令語等の他の用語
の変換は、所定の変換ルールに従って行われる。この場
合の変換ルールは、特に限定されるものではない。
【0016】さらに、変換手段によって変換された日本
語のプログラムが、要約手段によって圧縮されるから、
仕様書としては不要な命令文等が削除されたり、或いは
一定の関係にある複数の命令文が統合されて包括的な記
述に変換されるから、仕様書としてより適切な日本語の
文章が得られる。
【0017】一方、請求項2に係る発明にあっては、日
本語変数名付与手段及び変数解析手段に関する作用は上
記請求項1に係る発明と同様であるが、要約手段及び変
換手段の処理の順序が、上記請求項1に係る発明と逆に
なっている。即ち、要約手段は、ソースプログラムに対
して圧縮処理を実行し、変換手段は、要約手段によって
要約されたソースプログラムに対して変換処理を実行し
て日本語のプログラムを作成する。そして、実行順は入
れ代わっているが、これら各手段の処理を経れば、請求
項1に係る発明と同様に、仕様書としてより適切な日本
語の文章が得られる。
【0018】請求項3に係る発明にあっては、日本語変
数名付与手段は、入出力変数に注釈文が添えられている
場合にはその注釈文に基づいて日本語変数名を決定する
が、変数名に付されている注釈文は、通常はその変数名
の内容を表すものであり、変数名の内容は、ソースプロ
グラムが改訂されてもソースプログラムの目的が大幅に
変更されない限り元のままであることが多いから、当初
の注釈文がそのまま残っていたとしても、適切な日本語
変数名を決定することができる。また、注釈文が付され
ていない場合には、このソフトウェアの仕様書生成装置
の作業者に日本語変数名の入力を求めるようになってい
るが、通常は英数字で記述される変数名は、アルファベ
ット等の無意味な羅列ではなく例えば元のデータ概念の
発音から母音や子音等を適宜間引いたものである場合が
多いから、変数名やそのソースプログラムの目的等か
ら、変数の元の概念を類推することは比較的容易であ
る。よって、作業者のレベルにそれほど左右されること
なく、適切な日本語変数名が付与されるのである。
【0019】請求項4に係る発明にあっては、要約手段
は、指定回数以上に深い入れ子構造を削除することによ
り、圧縮を行うようになっている。指定回数は、予め設
定しておいてもよいし、作業者が入力するようにしても
よい。そして、階層の深い判定処理等は仕様書の理解に
は不要である場合が多いから、そのような入れ子構造を
削除すれば、仕様書の質を低下させることなく、量的に
仕様書として適切な日本語の文章を作成することに有益
である。
【0020】請求項5に係る発明にあっては、要約手段
は、例えばタスク起動やアラーム出力に先駆けて変数を
セットする処理のように、関数の読み出しの際に行われ
る変数のセット命令を削除することにより、圧縮を行う
ようになっている。このような変数のセット命令は、仕
様書の理解には不要である場合が多いから、これを積極
的に削除すれば、仕様書の質を低下させることなく、量
的に仕様書として適切な日本語の文章を作成することに
有益である。
【0021】
【発明の実施の形態】以下、この発明の実施の形態を図
面に基づいて説明する。図1乃至図4は本発明の一実施
の形態を示す図であって、図1は本発明に係るソフトウ
ェアの仕様書生成装置の全体的な処理の流れを示してい
る。なお、ソフトウェアの仕様書生成装置は、パーソナ
ルコンピュータやその周辺機器を備えたハード構成及び
後述する処理を実行するアプリケーションプログラムに
よって実現されるものであり、アプリケーションプログ
ラムは例えば周辺機器としてのハードディスク装置の記
憶媒体や、フレキシブルディスク等の可搬性の磁気記憶
媒体に記憶されている。
【0022】即ち、このソフトウェアの仕様書生成装置
においては、先ず、仕様書を生成する対象であるソース
プログラム10と外部入出力テーブル11とに基づい
て、変数変換用テーブル生成処理100が実行される。
【0023】変数変換用テーブル生成処理100は、具
体的には図2に示すような一連の処理を実行するように
なっていて、先ず、そのステップ101において、仕様
書を生成する対象であるソースプログラム10を読み込
み、次いで、ステップ102に移行して、外部入出力テ
ーブル11を読み込む。外部入出力テーブル11は、例
えば既存のファイル/テーブルに関する仕様書12や、
インクルードファイル13に基づいて予め生成されるテ
ーブルであって、このソースプログラム10を実行する
計算機と、外部の上位或いは下位計算機との間で行われ
るデータの入出力関係が整理されている。
【0024】外部入出力テーブル11の具体的な例を図
3に示す。この図3の横軸のそれぞの意味は、次のよう
なものである。 (1)IDNo:ファイル/テーブルの一意的な番号で
ある。
【0025】(2)日本語名:電子化された上位・下位
伝送フォーマットやインクルードファイルから転記した
日本語名称である。 (3)変数名:システムで一意の英数字の変数名であ
る。後述する逆変換処理で使用される。
【0026】(4)ABC100,XYZ200等:プ
ログラム名の例である。 また、図3中の“Read”は各プログラムでデータの
読み込みに使用する入力変数を、“Write”は各プ
ログラムでデータの書き込みに使用している出力変数を
示している。そして、図3の縦軸は外部入出力情報を示
している。このように、関連付けされた変数名を一覧表
に編集して外部入出力テーブル11とすることにより入
出力情報と関係プログラム(上位プログラム・下位プロ
グラム)との関係が容易に把握できる。関連付けの例と
して、図3には、直接代入方式による読み込み例を
(a)に、サブルーチンを使用した連続方式による読み
込み例を(b)に示す。また、各変数名のサブルーチン
間での重複を考慮して、各変数名にサブルーチン及びプ
ログラム名の属性を付与した例を(c)に示す。
【0027】ステップ101,102の処理を終えた
ら、ステップ103に移行し、外部入出力テーブル11
又はソースプログラム10に基づき、そのソースプログ
ラム10の対外部入出力処理部に記述されている入出力
変数、つまりこのソースプログラム10を実行した場合
に外部との間でデータの受け渡しが行われる入出力変数
を抽出し、次いでステップ104に移行し、抽出された
各入出力変数に、日本語変数名を付与する。付与する日
本語変数名は、その入出力変数の実態に則した変数名と
することが、後に生成される仕様書の質を高めるために
は望ましい。そこで、この実施の形態では、入出力変数
に注釈文が添えられている場合には、その注釈文の内容
に基づいて日本語変数名を決定することとし、添えられ
ていない場合には、作業者に日本語変数名の入力を求め
ることとしている。注釈文の内容は、ソースプログラム
10内から抽出してもよいし、或いは、外部入出力テー
ブル11内から抽出してもよい。
【0028】付与された日本語変数名は、入出力変数と
ともに、変数変換用テーブル14に書き込まれる。する
と、変数変換用テーブル14には、ソースプログラム1
0の各入出力変数が、付与された日本語変数名と共に保
存されることになる。
【0029】ステップ104からステップ105に移行
し、ソースプログラム10内での入出力変数の代入関係
を追跡又は逆上ることにより、同一データが代入される
変数を一つずつ抽出する。そして、ステップ106に移
行して、ステップ105で抽出された各変数を、元の入
出力変数及び日本語変数名と対応させて、変数変換用テ
ーブル14に書き込み、次いでステップ107に移行
し、同一データが代入される変数の抽出が終了したか否
かを判定し、終了していない場合にはステップ105に
戻って上記処理を繰り返し実行し、終了している場合に
はこの変数変換用テーブル生成処理100を終了する。
ステップ107の判断は、例えば変数の代入関係の追跡
又は逆上りが行き詰まった時点で終了と判断できる。
【0030】この変数変換用テーブル生成処理100が
終了すれば、変数変換用テーブル14には、ソースプロ
グラム10の各入出力変数が、適切な日本語変数名及び
同一データが代入される一又は二以上の変数と対応して
保存されるようになる。
【0031】ここで、以下に示すプログラム例(C言
語)を伴って、変数変換用テーブル生成処理100にお
ける作用をより具体的に説明する。なお、以下のプログ
ラム例は、鉄鋼の圧延ライン用のプロセスコンピュータ
で実行されるプログラムの一部を抜粋したものであり、
便宜的にプログラム名を“sample.c”とする。
【0032】 上記プログラム例の場合、入力変数として、「coilno,
atu ,haba,nagasa,sokudo,akka,dmy[4]」が確認さ
れ、それら各入力変数のそれぞれには注釈文が添えられ
ている。そこで、例えばステップ103の処理では、入
力変数として、“coilno”が抽出され、ステップ104
の処理ではその入力変数“coilno”に、日本語変数名と
して“コイルNo”或いは“コイルナンバー”が付与され
る。
【0033】また、上記プログラム例の場合、入力変数
“coilno”は、命令情報という上位概念を構成する一部
でもあり、命令情報は“PC_ORDER ”となっている。そ
こで、“PC_ORDER.coilno”という入力変数に対して、
“命令情報\\コイルNo”という実質的に二つの日本語変
数名を付与することが好ましい。
【0034】次に、ステップ105における処理で、上
記プログラム例のファイルリードの読み込みエリアか
ら、変数名が検出される。この場合は、構造体の“pcda
ta”から配列の“idata ”が検出され、“pcdata.coiln
o ”と“idata[0]”とが同一データであることが検出さ
れる。さらに、上記プログラム例内の代入関係を追跡す
ることにより、“icoil ”,“ldata[0]”,“lcoil ”
が次々と検出される。
【0035】つまり、ステップ105の処理によって、
“pcdata.coilno ”,“idata[0]”,“icoil ”,“ld
ata[0]”,“lcoi”は、入力変数“coilno”が次々と代
入されていく変数であることが抽出されるのである。こ
の結果、変数変換用テーブル14には、例えば、 命令情報\\コイルNo::PC_ORDER.coilno::sample.c\\id
ata[0]\\ldata[0]\\lcoil というような情報が構築されることになる。“atu ”等
のその他の変数についても、同様の情報が構築される。
なお、変数変換用テーブル14に構築されない変数もあ
るが、それら構築されない変数は、ソースプログラム1
0内でのみ使用される変数,定数である。
【0036】このように、変数変換用テーブル生成処理
100によって変数変換用テーブル14が生成された
ら、次に、日本語変換処理200が実行される。日本語
変換処理200は、具体的には図4に示すような一連の
処理を実行するようになっていて、先ず、そのステップ
201において、仕様書を生成する対象であるソースプ
ログラム10を読み込み、次いで、ステップ202に移
行して、変数変換用テーブル14を読み込む。次いで、
ステップ203に移行して、システム辞書15,メーカ
辞書16を読み込む。システム辞書15とは、いわゆる
ローマ字入力式のワードプロセッサに用いられる変換辞
書に相当するものであって、ローマ字とそれを日本語に
変換した場合の単語との対応関係を表している。また、
メーカ辞書16とは、ソースプログラム10の言語に対
応して予め作成されている辞書であって、命令語やサブ
ルーチンとその内容を表す適切な日本語との対応関係を
表している。
【0037】そして、ステップ204に移行し、変数変
換用テーブル14に構築されている情報に基づき、ソー
スプログラム10内の各変数を日本語に変換する。例え
ば、ソースプログラム10内の変数“lcoil ”は、上述
した例から“コイルNo”という日本語に変換される。
【0038】次に、ステップ205に移行し、メーカ辞
書16を参照しつつ、ソースプログラム10内の命令語
やサブルーチンを日本語に変換する。以上のステップ2
04及び205の処理によって、通常はソースプログラ
ム10の大部分が日本語に変換されるが、当然に変換さ
れない部分もあり、その変換されない部分はプログラム
内定数であるから、ステップ206〜209の処理によ
って適宜日本語に変換する。
【0039】即ち、ステップ206では、ソースプログ
ラム10内のデータセット項目を抽出し、そのデータセ
ット項目を日本語に変換する。例えば、ソースプログラ
ム10内に、 『 int ia = 10 』 という実行文があった場合には、これを、 『 ia → 「固定値10」 』 或いは、 『 iaを固定値10にセットする。』 等の日本語に変換する。
【0040】次に、ステップ207に移行し、ソースプ
ログラム10内の繰り返し変数項目を抽出し、その繰り
返し変数項目を日本語に変換する。例えば、ソースプロ
グラム10内に、 『 }while (c>12) 』 という実行文があった場合には、これを、 『 c → 「ループ数12」 』 或いは、 『 cのループ数は12とする。』 等の日本語に変換する。
【0041】次に、ステップ208に移行し、システム
辞書15を利用して、ソースプログラム10内のパター
ンマッチング項目を日本語に変換する。具体的にには、
このステップ208では、上記ステップ204〜207
の処理では日本語に変換されなかった実行文に含まれる
アルファベット等で記述される単語から、所定の意味が
読み取れる部分を抽出し、その意味が読み取れる部分の
みを対応する日本語に変換するのである。例えば、 『 icoila 』 という語があった場合、その内の“coil”は“コイル”
を意味するものと容易に推測できるから、これを、 『 iコイルa 』 に変換する。
【0042】次に、ステップ209に移行し、システム
辞書15を利用して、ソースプログラム10内のローマ
字変換項目を日本語に変換する。具体的には、このステ
ップ209では、上記ステップ204〜208の処理で
は日本語に変換されなかった実行文に含まれる単語が、
ワードプロセッサにおけるローマ字変換によって日本語
に変換できる場合には、積極的に日本語に変換するので
ある。例えば、 『 kekka 』 という語があった場合には、システム辞書15を利用し
て、これを、 『 結果 』 に変換する。
【0043】ステップ209までの処理を終えたら、ス
テップ210においてソースプログラム10の全ての実
行文について日本語への変換が完了したか否かを判断
し、完了していない場合には、ステップ204に戻って
上述した処理を再び実行する。完了している場合には、
この日本語変換処理200を終了する。
【0044】このような日本語変換処理200が終了す
れば、各実行文が日本語で記述された日本語プログラム
17が生成される。そして、この日本語プログラム17
をそのまま日本語仕様書としてもよいのであるが、ソー
スプログラム10の内容をそのまま日本語に変換しただ
けなので、仕様書としては不要な文も多く含まれてい
る。
【0045】そこで、次に、要約処理300を実行する
ことにより、内容がより鮮明な仕様書を生成することと
している。つまり、ソースプログラムの処理内容を理解
するために必要な行や文は残すが、それ以外の行や文は
削除或いは統合することにより、日本語プログラム17
のボリュームを低減して使い勝手のよい仕様書を生成す
るのである。
【0046】この要約処理300は、具体的には図5に
示すような一連の処理を実行するようになっていて、先
ず、そのステップ301において、日本語プログラム1
7を読み込み、次いでステップ302において、予め取
り決めておいた圧縮ルール18を読み込む。圧縮ルール
18の内容は、生成される仕様書の質及び量を大きく左
右するため、仕様書に要求される質的及び量的な目標に
基づいて適宜設定することが望ましい。ここでは、以下
のステップ303〜308の処理を具体的に説明するこ
とにより、圧縮ルール18の一例を示す。
【0047】即ち、ステップ303では、多くのソース
プログラムにおいて定常的に使用される共通サブルーチ
ンを削除するというルールに従って、日本語プログラム
17を圧縮する。例えば、ソースプログラム10の起動
時に必ず実行される起動要因取り込み処理やこのソース
プログラム10実行中にはアクセスしないファイルをソ
フト的に切り離すファイル排他処理等は、仕様書の理解
には不要であるため、積極的に削除する。
【0048】次に、ステップ304では、初期セット命
令を削除するというルールに従って日本語プログラム1
7を圧縮する。即ち、ソースプログラム10内における
各処理の最初に実行される変数の0クリアや、サブルー
チンのリターンコードの0クリア等の初期セットは、仕
様書の理解には不要であるため、積極的に削除する。例
えば、ソースプログラム10に、 『 cnt=0; /* リトライ数0クリア */ i = 1; do { cnt = cnt + 1; /* リトライ数UP */ mread( &rcnol, &ml, &rtn ); /* パリティD/I データ格納 */ 』 という部分があった場合、“cnt=0 ”は仕様書の理解に
は不要であるため、日本語プログラム17内でそれに相
当する日本語実行文、例えば「リトライ数を0クリアす
る。」という文を削除する。
【0049】次に、ステップ305では、階層の深いネ
スト処理(入れ子処理)を削除するというルールに従っ
て日本語プログラム17を圧縮する。削除する階層の回
数は固定ではなく、ソースプログラム10毎に指定する
か、或いは作業者が任意に指定できるようにする。例え
ば、ソースプログラム10に、 『 IF( SDCNT+1 .GE. 1000 ) THEN /* 1000回チェック CALL KCDATS( MOD, TIME ) /* リセット時刻読み込み RHEND = HENDT /* 偏差セット RSETD = SETDT /* 設定値セット IF( SDAVE .LE. KAGEN ) THEN /* 下限異常? IF( SDAVE .GT. 2147483647 ) THE SDAVE = 32767 /* +タイプ変換 ELSE ENDIF IF( SDAVE .LT. -2147483647 ) THEN SDAVE = -32767 /* −タイプ変換 CALL KCEDMV( VARDT2, BUFF, 4) /* アラーム出力要求処理 CALL PCALMS( IAPCLL, 1, ALMDT, VARDT2, RETC ) ELSE ENDIF 』 というような処理部分があった場合、これを (1)指定回数を3とし、3以上のIF〜ENDIF を削除対
象とする。
【0050】(2)但し、削除するのはIF〜ENDIF 内の
命令が代入文のみの場合とする。 (3)IF〜ENDIF 内に代入文以外の命令文がある場合に
は、その命令文は削除対象から外す。 という具体的なルールに従って圧縮すると、 『 CALL KCEDMV( VARDT2, BUFF, 4) /* アラーム出力要求処理 CALL PCALMS( IAPCLL, 1, ALMDT, VARDT2, RETC ) 』 というように要約される。実際には、本実施の形態では
日本語プログラム17に対して要約処理300を行うた
め、上記例がそのまま当てはまるものではないが本質的
には同じである。なお、このステップ305における処
理は、日本語プログラム17の圧縮にとって特に効果的
であった。
【0051】次に、ステップ306では、一定のパター
ンに該当する処理を削除するというルールに従って日本
語プログラム17を圧縮する。ここでの一定のパターン
としては、例えばタスク起動やアラーム出力に先立って
実行される変数のセット処理は、それらタスク起動やア
ラーム出力(つまり、関数の呼出し)を行う際に必ず実
行されるパターン処理であり、これらは仕様書の理解に
は不要であるため、積極的に削除する。例えば、ソース
プログラム10に、 『 ITSKNO = 109 IDATA(1) = ICOIL CALL KFORK( ITSKNO, IDATA ) 』 というタスク起動命令があった場合、この例の3行目の
文から1行目及び2行目のセットはタスク起動のための
変数セットであることが判るから、それら1行目及び2
行目の代入文は削除する。
【0052】次に、ステップ307では、サブルーチン
の不要な引数を削除し、タスクやアラーム番号から具体
的な項目名に変換するというルールに従って日本語プロ
グラム17を圧縮する。例えば、上記例の場合、3行目
のタスク起動命令は、そのままでは理解しにくいから、
これを日本語仕様書19の段階では、 『 AEK100を起動する。』 という文にすることにより、ボリュームを減らしつつ、
日本語仕様書19の質をさらに向上できるのである。な
お、これらステップ306,107における処理も、日
本語プログラム17の圧縮にとって特に効果的であっ
た。
【0053】次に、ステップ308では、連続して変数
のセットが行われる領域を削除するとともに、それら領
域全体を上位概念の名称を付して例えば“○○○ファイ
ルの編集”や“×××テーブルの編集”という具合に集
約するというルールに従って日本語プログラム17を圧
縮する。例えば、ソースプログラム10に、 『 IIDATA(1) = IATU IIDATA(2) = IHABA IIDATA(3) = ITEPA 』 という連続して変数をセットする部分があった場合、こ
れら1〜3行それぞれの属性が、 幅計設定情報\\厚::WPRI_INF.atu … 幅計設定情報\\幅::WPRI_INF.haba… 幅計設定情報\\テーパ::WPRI_INF.tepa… となっていれば、上位概念として“幅計設定情報”が確
認できるから、この連続セット命令を削除するととも
に、これを集約して、 『 幅計設定情報編集 』 とする。
【0054】そして、ステップ309に移行し、日本語
プログラム17について要約処理が完了したか否かを判
断し、完了していない場合には、ステップ303に戻っ
て上述した処理を再び実行する。完了している場合に
は、この要約処理300を終了する。
【0055】このような要約処理300が終了すれば、
適当な量に圧縮された日本語仕様書19が生成される。
さらに、この実施の形態では、日本語プログラム17及
び日本語仕様書19の少なくとも一方をソースプログラ
ム10に戻す逆変換処理400も実行するようになって
いて、その逆変換処理400の結果とソースプログラム
10とを比較することにより、日本語仕様書19の質を
チェックできるようにしている。逆変換処理400は、
外部入出力テーブル11,変数変換用テーブル14,シ
ステム辞書15,メーカ辞書16を参照しつつ、日本語
変換処理200とは逆の手順によって逆変換を行うよう
になっている。なお、この逆変換処理400は、日本語
仕様書19の質的チェックのための処理であるから、省
略してもよい。
【0056】そして、本実施の形態では、変数変換用テ
ーブル生成処理100を実行することにより上述したよ
うな変数変換用テーブル14を生成し、その変数変換用
テーブル14を用いて日本語変換処理200を実行する
ようになっているから、見た目は異なるが同一のデータ
が代入される複数の変数を、統一した日本語変数名に変
換することができるという利点がある。しかも、変数変
換用テーブル生成処理100を実行する際に外部入出力
テーブル11を参照するようにしているから、上位・下
位計算機を含めた全システムの仕様書で日本語変数名を
統一できるという利点もある。
【0057】ここで、本実施の形態では、変数変換用テ
ーブル生成処理100におけるステップ103,104
の処理によって日本語変数名付与手段が構成され、変数
変換用テーブル生成処理100におけるステップ105
〜107の処理によって変数解析手段が構成され、日本
語変換処理200が変換手段に対応し、要約処理300
が要約手段に対応する。
【0058】なお、日本語変換処理200と要約処理3
00との実行順は、上記実施の形態とは逆であってもよ
いし、実質的に同時に行ってもよい。つまり、ソースプ
ログラム10を要約処理300で予め処理して圧縮され
たソースプログラム10を生成し、それを日本語変換処
理200によって変換して日本語仕様書19を生成する
ようにしてもよいし、或いは、ソースプログラム10の
各行或いは所定のブロック単位で要約処理300を実行
し、要約処理300で削除されなかった或いは統合され
た実行文毎に逐次日本語変換処理を実行して、日本語仕
様書19を生成してもよい。
【0059】
【実施例】以下のプログラムをソースプログラム10と
して日本語プログラム17及び日本語仕様書19を生成
した実施例を示す。なお、これらソースプログラム1
0,日本語プログラム17及び日本語仕様書19は、全
体ではなくその一部のみを示している。また、ソースプ
ログラム10の言語はFORTRANである。
【0060】 ソースプログラム10; 『 CALL XRCVMS(LMODE,LQTYPE,IBUFF,LBUFSZ) CALL XCILCL(ICOIL1,ISLAB,LCILNO,LERR) LHTIME = 0 IJISSI = 0 CALL MMCGET(LADR1,LSIZE1,IMCDAT) CALL XICDRD(ICDNO,ICOIL1,LADR2(1),LSIZE2(1),ICD05, *9999) CALL XTIME(LTIME) LTIME = LTIME/100 IF(LFTIME.NE.LRTIME)THEN LGOSA = LTIME-(LFTIME+LHOSEI) LGTIME= (LGOSA *IKAGEN)/100 CALL AEADAY(LGTIME) IF(LGTIME.GT.IMAX)THEN LGTIME = IMAX ELSEIF(LGTIME.LT.IMIN)THEN LGTIME = IMIN ELSE ENDIF 』 日本語プログラム17; 『 起動情報取り込み(リクエストモード,メッセージ制御情報,メッセージ出 力バッファ,メッセージ出力バッファサイズ) コイルNo.取り込み(コイル種別(当該材),スラブ種別,コイルNo. エラーコード) 補正時間=0 抽出停止実施フラグ=0 MMIテーブル取り込み(IMCTBL取り込み開始アドレス,IMCTB L取り込みサイズ,MMIテーブルデータ) ICDテーブル取り込み(ICDNO,コイル種別(当該材),ICD05 アドレス(1),ICD05サイズ(1),自動 抽出設定) 現在時刻取り込み(F1on実績時刻) F1on実績時刻=F1on実績時刻/100 もし(F1on予定時刻以外R1on予定時刻)ならば ICD05格納用誤差時間= F1on実績時刻−(F1on予定時刻+実績補正量(当該材)) 誤差時間=(ICD05格納用誤差時間*補正率)/100 日替わりチェック処理(誤差時間) もし(誤差時間>実績補正量上限値)ならば 誤差時間=実績補正量上限値 上記以外でもし(誤差時間<実績補正量下限値)ならば 誤差時間=実績補正量下限値 上記以外 』 日本語仕様書19; 『 システム名称 : 自動抽出システム 機能名称 : 自動運転機能 プログラム名 : 実績補正処理 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− プログラム略称 : AEA500 計算機 : ABC 属性 : 非常駐 PIB : 0329 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1.概要 (1)以下の情報の取り込みを行う。
【0061】 (1−1)起動情報取り込みを行う。 (1−2)コイルNo.取り込みを行う。 (1−3)MMIテーブル取り込みを行う。
【0062】 (1−4)ICDテーブル読み込みを行う。 (1−5)現在時刻取り込み。 (2)もし(F1on予定時刻以外R1on予定時刻)ならば以下の処 理を行う。
【0063】 ICD05格納用誤差時間=F1on実績時刻− (F1on予定時刻+実績補正量(当該材)) 誤差時間=(ICD05格納用誤差時間*補正率)/100 日替わりチェック処理(誤差時間) もし(誤差時間>実績補正量上限値)ならば 誤差時間=実績補正量上限値 上記以外でもし(誤差時間<実績補正量下限値)ならば 誤差時間=実績補正量下限値 (3)F1on実績時刻(現在時刻)、発生実績補正量(補正時間)、 誤差時間を自動抽出設定データテーブル(ICD05)に格納す る。
【0064】 (4)AEK100を起動する。 』
【0065】
【発明の効果】以上説明したように、本発明によれば、
日本語変数名付与手段及び変数解析手段を有しているた
め、見た目は異なるが同一のデータが代入される複数の
変数を統一した日本語変数名に変換することができる
し、上位・下位計算機を含めた全システムの仕様書で日
本語変数名を統一できるという利点がある。また、要約
手段を有しているから、実用的な仕様書を生成すること
ができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態の全体の流れを示す図で
ある。
【図2】変数変換用テーブル生成処理の概要を示すフロ
ーチャートである。
【図3】外部入出力テーブルの例を示す図である。
【図4】日本語変換処理の概要を示すフローチャートで
ある。
【図5】要約処理の概要を示すフローチャートである。
【符号の説明】
10 ソースプログラム 11 外部入出力テーブル 14 変数変換用テーブル 17 日本語プログラム 18 圧縮ルール 19 日本語仕様書 100 変数変換用テーブル生成処理 200 日本語変換処理 300 要約処理 400 逆変換処理

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムからソフトウェアの仕
    様書を生成するための装置であって、前記ソースプログ
    ラムの対外部データ入出力処理部に記述された入出力変
    数に日本語変数名を付与する日本語変数名付与手段と、
    前記入出力変数の前記ソースプログラム内での代入関係
    に基づいて同一データが代入される一又は二以上の変数
    を抽出しその抽出された変数を前記日本語変数名と対応
    させて記憶する変数解析手段と、この変数解析手段の解
    析結果及び所定の変換ルールに従って前記ソースプログ
    ラムを日本語のプログラムに変換する変換手段と、前記
    日本語のプログラムを所定の圧縮ルールに従って圧縮す
    る要約手段と、を備えたことを特徴とするソフトウェア
    の仕様書生成装置。
  2. 【請求項2】 ソースプログラムからソフトウェアの仕
    様書を生成するための装置であって、前記ソースプログ
    ラムの対外部データ入出力処理部に記述された入出力変
    数に日本語変数名を付与する日本語変数名付与手段と、
    前記入出力変数の前記ソースプログラム内での代入関係
    に基づいて同一データが代入される一又は二以上の変数
    を抽出しその抽出された変数を前記日本語変数名と対応
    させて記憶する変数解析手段と、前記ソースプログラム
    を所定の圧縮ルールに従って圧縮する要約手段と、前記
    要約手段によって要約されたソースプログラムを前記変
    数解析手段の解析結果及び所定の変換ルールに従って日
    本語のプログラムに変換する変換手段と、を備えたこと
    を特徴とするソフトウェアの仕様書生成装置。
  3. 【請求項3】 前記日本語変数名付与手段は、前記ソー
    スプログラムの入出力変数に対して注釈文が添えられて
    いる場合には、その注釈文に基づいて前記日本語変数名
    を決定する一方、前記ソースプログラムの入出力変数に
    注釈文が添えられていない場合には、作業者に日本語変
    数名の入力を求めるようになっている請求項1又は請求
    項2記載のソフトウェアの仕様書生成装置。
  4. 【請求項4】 前記要約手段は、指定回数以上に深い入
    れ子構造を削除するようになっている請求項1乃至請求
    項3のいずれかに記載のソフトウェアの仕様書生成装
    置。
  5. 【請求項5】 前記要約手段は、関数の呼出しに必要な
    変数のセット命令を削除するようになっている請求項1
    乃至請求項3のいずれかに記載のソフトウェアの仕様書
    生成装置。
JP22227296A 1996-08-23 1996-08-23 ソフトウェアの仕様書生成装置 Pending JPH1063492A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22227296A JPH1063492A (ja) 1996-08-23 1996-08-23 ソフトウェアの仕様書生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22227296A JPH1063492A (ja) 1996-08-23 1996-08-23 ソフトウェアの仕様書生成装置

Publications (1)

Publication Number Publication Date
JPH1063492A true JPH1063492A (ja) 1998-03-06

Family

ID=16779787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22227296A Pending JPH1063492A (ja) 1996-08-23 1996-08-23 ソフトウェアの仕様書生成装置

Country Status (1)

Country Link
JP (1) JPH1063492A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
JP2006252201A (ja) * 2005-03-10 2006-09-21 Fujitsu Ltd ソースコード解析プログラム
JP2011034179A (ja) * 2009-07-30 2011-02-17 Toshiba Corp プラントモデル作成システムおよびプラントモデル作成方法
US8645908B2 (en) 2010-08-24 2014-02-04 International Business Machines Corporation Method for generating specifications of static test

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
US7653752B2 (en) 1999-07-13 2010-01-26 Sony Corporation Distribution contents forming method, contents distributing method and apparatus, and code converting method
JP2006252201A (ja) * 2005-03-10 2006-09-21 Fujitsu Ltd ソースコード解析プログラム
US8332814B2 (en) 2005-03-10 2012-12-11 Fujitsu Limited Method and apparatus for converting formula included in a computer program
JP2011034179A (ja) * 2009-07-30 2011-02-17 Toshiba Corp プラントモデル作成システムおよびプラントモデル作成方法
US8645908B2 (en) 2010-08-24 2014-02-04 International Business Machines Corporation Method for generating specifications of static test

Similar Documents

Publication Publication Date Title
US5495565A (en) Integrated form document editor with form descriptor table, background bitmap, graphics editor and text editor, composite image generator and intelligent autofill
US7493559B1 (en) System and method for direct multi-modal annotation of objects
US6993473B2 (en) Productivity tool for language translators
JPH0458052B2 (ja)
US20060150150A1 (en) Editor support for modifying generated source code
JP2014507029A (ja) 類例によるデーターのフォーマット処理
JP2006228210A (ja) 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成
JPH07222248A (ja) 携帯型情報端末における音声情報の利用方式
US7308398B2 (en) Translation correlation device
JPH1063492A (ja) ソフトウェアの仕様書生成装置
JPH04352029A (ja) ソースプログラム自動生成装置
JPH10162098A (ja) 文書電子化装置及び文書電子化方法
JPH0417470B2 (ja)
JP6827610B1 (ja) 開発支援装置、プログラム及び開発支援方法
JP2001155017A (ja) タグ付き文書作成装置およびそのプログラムを記録した記録媒体
JPH01136270A (ja) ワードプロセッサ装置
JPS63188242A (ja) プログラムエラ−情報の生成、管理方式
JP2796140B2 (ja) 自然言語処理用データ編集支援装置
JP2692196B2 (ja) テストデータ編集方式
JPH01280866A (ja) 日本語ワードプロセツシング方式
JP2811804B2 (ja) 変数出力範囲指定方式
JP2024027395A (ja) 辞書登録プログラム、辞書登録方法及び情報処理装置
JPH0470962A (ja) データ処理装置
JPS63226730A (ja) プログラム自動作成方法
JP2757367B2 (ja) 文字処理装置