(57)【要約】【課題】テーブルを参照して動作する関数の設計ドキュメントを生成する。【解決手段】ソースコード生成装置１００は、基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコード２２０を記述するためのスクリプトを受け付ける。そして、ソースコード生成装置１００は、前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として代替ソースコード２２０を生成する。ドキュメント生成装置３１０は、代替ソースコード２２０を入力としてリバースエンジニアリングを実行することによって、前記関数の設計ドキュメント３２０を生成する。【選択図】図８
2019121293.tif 000002
【特許請求の範囲】
【請求項１】
基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコードを記述するためのスクリプトを受け付ける受付部と、
前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として前記代替ソースコードを生成する実行部と
を備えるソースコード生成装置。
【請求項２】
前記基準テーブルに示される要素がソフトウェアで使用される要素である
請求項１に記載のソースコード生成装置。
【請求項３】
前記基準テーブルに示される要素が関数とテーブルと変数とのいずれかである
請求項１に記載のソースコード生成装置。
【請求項４】
基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコードを記述するためのスクリプトを受け付ける受付部と、
前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として前記代替ソースコードを生成する実行部
としてコンピュータを機能させるためのソースコード生成プログラム。
【請求項５】
ソースコード生成装置とドキュメント生成装置とを備え、
前記ソースコード生成装置は、
基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコードを記述するためのスクリプトを受け付け、前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として前記代替ソースコードを生成し、
前記ドキュメント生成装置は、
前記代替ソースコードを入力としてリバースエンジニアリングを実行することによって、前記関数の設計ドキュメントを生成する
ことを特徴とするドキュメント生成システム。
【請求項６】
ソースコード生成装置が、
基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコードを記述するためのスクリプトを受け付け、前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として前記代替ソースコードを生成し、
ドキュメント生成装置が、
前記代替ソースコードを入力としてリバースエンジニアリングを実行することによって、前記関数の設計ドキュメントを生成する
ことを特徴とするドキュメント生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードおよびドキュメントのリバースエンジニアリングに関するものである。
【背景技術】
【０００２】
一般に、ソフトウェア開発においては、ソフトウェアによって実現することをソフトウェア要求仕様書に記載する。次に、ソフトウェア要求仕様書を段階的に詳細化してソフトウェア方式設計書とソフトウェア詳細設計書とを作成する。そして、ソースコードを作成する。
しかし、ソフトウェア方式設計書とソフトウェア詳細設計書とを作成せずに、ソフトウェア要求仕様書に基づいてソースコードを作成することもある。
【０００３】
特許文献１は、ソフトウェア方式設計書とソフトウェア詳細設計書とがない状況で設計ドキュメントを自動生成する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０５−０８１００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、テーブルを参照して動作する関数のソースコードから関数の設計ドキュメントをリバースエンジニアリングするのは困難であった。
【０００６】
本発明は、テーブルを参照して動作する関数のソースコードの代替としてテーブルを参照しない処理手順が記述された代替ソースコードを生成できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のソースコード生成装置は、
基準テーブルに示される１つ以上の要素を使用する情報処理を前記基準テーブルを参照せずに行う処理手順が記述された代替ソースコードを記述するためのスクリプトを受け付ける受付部と、
前記基準テーブルを参照して前記スクリプトを実行することによって、前記基準テーブルを参照して前記情報処理を行う関数のソースコードの代替として前記代替ソースコードを生成する実行部とを備える。
【発明の効果】
【０００８】
本発明によれば、テーブルを参照して動作する関数のソースコードの代替としてテーブルを参照しない処理手順が記述された代替ソースコードを生成することができる。
代替ソースコードは、従来のリバースエンジニアリングを利用して関数の設計ドキュメントを生成することを可能とする。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるソースコード生成装置１００の構成図。
【図２】実施の形態１におけるソースコード生成方法のフローチャート。
【図３】実施の形態１におけるソフトウェアコード２００を示す図。
【図４】実施の形態１におけるＴａｂｌｅＡを示す図。
【図５】実施の形態１におけるＴａｂｌｅＢを示す図。
【図６】実施の形態１におけるスクリプト２１０を示す図。
【図７】実施の形態１における代替ソースコード２２０を示す図。
【図８】実施の形態２におけるドキュメント生成システム３００を示す図。
【発明を実施するための形態】
【００１０】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１１】
実施の形態１．
テーブルを参照して動作する関数のソースコードの代替となる代替ソースコードを生成する形態について、図１から図７に基づいて説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１に基づいて、ソースコード生成装置１００の構成を説明する。
ソースコード生成装置１００は、プロセッサ１０１とメモリ１０２と補助記憶装置１０３と入出力インタフェース１０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１３】
プロセッサ１０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１０２は揮発性の記憶装置である。メモリ１０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ１０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２に記憶されたデータは必要に応じて補助記憶装置１０３に保存される。
補助記憶装置１０３は不揮発性の記憶装置である。例えば、補助記憶装置１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置１０３に記憶されたデータは必要に応じてメモリ１０２にロードされる。
入出力インタフェース１０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース１０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００１４】
ソースコード生成装置１００は、受付部１１１と実行部１１２といった要素を備える。これらの要素はソフトウェアで実現される。
【００１５】
補助記憶装置１０３には、受付部１１１と実行部１１２と記憶部１２１としてコンピュータを機能させるためのソースコード生成プログラムが記憶されている。ソースコード生成プログラムは、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
さらに、補助記憶装置１０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
つまり、プロセッサ１０１は、ＯＳを実行しながら、ソースコード生成プログラムを実行する。
ソースコード生成プログラムを実行して得られるデータは、メモリ１０２、補助記憶装置１０３、プロセッサ１０１内のレジスタまたはプロセッサ１０１内のキャッシュメモリといった記憶装置に記憶される。
【００１６】
メモリ１０２は記憶部１２１として機能する。但し、他の記憶装置が、メモリ１０２の代わりに、又は、メモリ１０２と共に、記憶部１２１として機能してもよい。
【００１７】
ソースコード生成装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１０１の役割を分担する。
【００１８】
ソースコード生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録（格納）することができる。
【００１９】
＊＊＊動作の説明＊＊＊
ソースコード生成装置１００の動作はソースコード生成方法に相当する。また、ソースコード生成方法の手順はソースコード生成プログラムの手順に相当する。
【００２０】
図２に基づいて、ソースコード生成方法を説明する。
ステップＳ１１１において、受付部１１１は、入出力インタフェース１０４を介して、ソフトウェアコード２００を受け付ける。
そして、記憶部１２１は、ソフトウェアコード２００を記憶する。
【００２１】
図３に基づいて、ソフトウェアコード２００を説明する。
ソフトウェアコード２００は、ソフトウェアのソースコードである。
ソースコードは、プログラミング言語で記述されたプログラムである。
例えば、ソフトウェアコード２００は、Ｃ言語で記述されたソースコードである。
【００２２】
ソフトウェアコード２００は、関数２０１と１つ以上のテーブル２０２とのそれぞれのソースコードを含む。
図３において、ソフトウェアコード２００は、関数ａ１とＴａｂｌｅＡとＴａｂｌｅＢとのそれぞれのソースコードを含んでいる。
【００２３】
関数２０１は、基準テーブルを参照して動作する関数である。
基準テーブルは、関数２０１によって参照されるテーブル２０２である。
具体的には、関数２０１は、基準テーブルに示される１つ以上の要素を使用する情報処理を基準テーブルを参照して行う。
図３において、関数ａ１の引数にＴａｂｌｅＡが指定されている。そのため、関数ａ１はＴａｂｌｅＡを参照する。つまり、関数ａ１の基準テーブルはＴａｂｌｅＡである。
【００２４】
各テーブル２０２には、ソフトウェアで使用される１つ以上の要素が示される。
要素の種類は、関数、テーブルまたは変数などである。
【００２５】
図４に基づいて、ＴａｂｌｅＡを説明する。
ＴａｂｌｅＡには、０番から５番までの６つの要素が配列されている。
０番の要素はＦｕｎｃｔｉｏｎＡ１である。ＦｕｎｃｔｉｏｎＡ１は関数名である。
１番の要素はＴａｂｌｅＢである。ＴａｂｌｅＢはテーブル名である。
２番の要素はＶａｌｕｅ１である。Ｖａｌｕｅ１は変数名である。
３番の要素はＦｕｎｃｔｉｏｎＡ３である。ＦｕｎｃｔｉｏｎＡ３は関数名である。
４番の要素はＶａｌｕｅ２である。Ｖａｌｕｅ２は変数名である。
５番の要素はＦｕｎｃｔｉｏｎＡ４である。ＦｕｎｃｔｉｏｎＡ４は関数名である。
【００２６】
図５に基づいて、ＴａｂｌｅＢを説明する。
ＴａｂｌｅＢには、０番から５番までの６つの要素が配列されている。
０番の要素はＦｕｎｃｔｉｏｎＢ１である。ＦｕｎｃｔｉｏｎＢ１は関数名である。
１番の要素はＤａｔａ１である。Ｄａｔａ１は変数名である。
２番の要素はＦｕｎｃｔｉｏｎＢ２である。ＦｕｎｃｔｉｏｎＢ２は関数名である。
３番の要素はＶａｌｕｅ１である。Ｖａｌｕｅ１は変数名である。
４番の要素はＦｕｎｃｔｉｏｎＢ３である。ＦｕｎｃｔｉｏｎＢ３は関数名である。
５番の要素はＶａｌｕｅ２である。Ｖａｌｕｅ２は変数名である。
【００２７】
図２に戻り、ステップＳ１１２を説明する。
ステップＳ１１２において、受付部１１１は、入出力インタフェース１０４を介して、スクリプト２１０を受け付ける。
そして、記憶部１２１は、スクリプト２１０を記憶する。
【００２８】
スクリプト２１０は、代替ソースコード２２０を記述するための処理手順を示す。
代替ソースコード２２０は、関数２０１のソースコードの代替となるソースコードである。
【００２９】
代替ソースコード２２０は、関数２０１の基準テーブル（ＴａｂｌｅＡ）に示される１つ以上の要素を使用する情報処理を基準テーブルを参照せずに行う処理手順を示す。
具体的には、代替ソースコード２２０は、基準テーブルに示される１つ以上の要素を用いて記述される。
【００３０】
図６に基づいて、スクリプト２１０を説明する。
スクリプト２１０は、操作記述と条件記述とを含む。
操作記述は、条件付きの命令文以外の命令文の記述を定義する。
条件記述は、条件付きの命令文の記述を定義する。
図３において、中黒「・」から始まる行が操作記述であり、アットマーク「＠」で始まる行が条件記述である。但し、中黒「・」またはアットマーク「＠」以外の識別子が使用されてもよい。
【００３１】
スクリプト２１０の記述規則を説明する。
以下の説明において、ＴＢ、ＴＣ、ＴＡＤ、ＴＡＦ、ＴＡＶおよびＴＡＴは命令の識別子である。ＴａｂｌｅＬａｂｅｌはテーブル名を意味する。ｎ、ｓｎおよびｃｎは整数を意味する。
【００３２】
「ＴＢ  ＴａｂｌｅＬａｂｅｌ＋ｎ」を説明する。
・スクリプトタイプが「参照」の場合に使用される。
・基準テーブルを指定する。
・基準テーブルは次のＴＢ文まで有効である。
・スクリプトタイプが「引数」の場合には使用されない。スクリプトタイプが「引数」の場合、基準テーブルは関数の引数に定義されたテーブルである。
【００３３】
「ＴＣ  ＴａｂｌｅＬａｂｅｌ＋ｓｎ，ｃｎ」を説明する。
・サイクリック記述を指定する。
・ｓｎは、開始位置を示す。開始位置は、テーブルにおいて始めに参照される要素の番号に相当する。
・ｃｎは、開始位置の増分である。
・ＴａｂｌｅＬａｂｅｌに指定したいテーブルが基準テーブルである場合、ＴａｂｌｅＬａｂｅｌを省略することができる。
・テーブルの要素数はテーブルのソースコードから取得される。
【００３４】
「ＴＡＤ  ＴａｂｌｅＬａｂｅｌ＋ｎ」を説明する。
・テーブルに定義された変数へのアクセスを意味する。
・「ＴａｂｌｅＬａｂｅｌ＋ｎ」は、基準テーブルと異なるテーブルの絶対アドレスを指定する。
・ＴａｂｌｅＬａｂｅｌが省略された場合、「＋ｎ」は基準テーブルのｎ番の要素を意味する。
・「＋ｎ」が省略された場合、ＴＢ文で指定されたテーブルに対する相対アクセスを意味する。ＴＣ文のｓｎが相対位置の基準となる。
【００３５】
「ＴＡＦ  ＴａｂｌｅＬａｂｅｌ＋ｎ」を説明する。
・テーブルに定義された関数へのアクセスを意味する。
・「ＴａｂｌｅＬａｂｅｌ＋ｎ」は、基準テーブルと異なるテーブルの絶対アドレスを指定する。
・ＴａｂｌｅＬａｂｅｌが省略された場合、「＋ｎ」は基準テーブルのｎ番目の要素を意味する。
・「＋ｎ」が省略された場合、ＴＢ文で指定されたテーブルに対する相対アクセスを意味する。ＴＣ文のｓｎが相対位置の基準となる。
【００３６】
「ＴＡＶ  ＴａｂｌｅＬａｂｅｌ＋ｎ」を説明する。
・テーブルに定義された定数へのアクセスを意味する。
・「ＴａｂｌｅＬａｂｅｌ＋ｎ」は、基準テーブルと異なるテーブルの絶対アドレスを指定する。
・ＴａｂｌｅＬａｂｅｌが省略された場合、「＋ｎ」は基準テーブルのｎ番目の要素を意味する。
・「＋ｎ」が省略された場合、ＴＢ文で指定されたテーブルに対する相対アクセスを意味する。ＴＣ文のｓｎが相対位置の基準となる。
【００３７】
「ＴＡＴ  ＴａｂｌｅＬａｂｅｌ＋ｎ」を説明する。
・テーブルに定義されたテーブルへのアクセスを意味する。
・「ＴａｂｌｅＬａｂｅｌ＋ｎ」は、基準テーブルと異なるテーブルの絶対アドレスを指定する。
・ＴａｂｌｅＬａｂｅｌが省略された場合、「＋ｎ」は基準テーブルのｎ番目の要素を意味する。
・「＋ｎ」が省略された場合、ＴＢ文で指定されたテーブルに対する相対アクセスを意味する。ＴＣ文のｓｎが相対位置の基準となる。
【００３８】
図２に戻り、ステップＳ１２０を説明する。
ステップＳ１２０において、実行部１１２はスクリプト２１０を実行する。これにより、代替ソースコード２２０が生成される。
そして、記憶部１２１は代替ソースコード２２０を記憶する。
【００３９】
具体的には、実行部１１２はスクリプト２１０を以下のように実行する。
実行部１１２は、スクリプト２１０の先頭から順番に１つずつスクリプト文を選択する。スクリプト文は、ＴＢ文とＴＣ文とＴＡＤ文とＴＡＦ文とＴＡＶ文とＴＡＴ文といった命令文である。
実行部１１２は、構文解析または字句解析などによって、選択したスクリプト文を解析する。
実行部１１２は、代替ソースコード２２０に記述する命令文を解析結果に基づいて生成し、生成した命令文を代替ソースコード２２０に書き出す。
【００４０】
図７に基づいて、代替ソースコード２２０を説明する。
代替ソースコード２２０は、関数２０１のソースコードの代替となるソースコードである。
代替ソースコード２２０（図７）は、ＴａｂｌｅＡ（図４）とＴａｂｌｅＢ（図５）とを参照してスクリプト２１０（図６）を実行することによって生成される。
関数２０１の基準テーブルはＴａｂｌｅＡである。
【００４１】
実行部１１２は、代替ソースコード２２０から先頭のスクリプト文を選択する。
代替ソースコード２２０において、先頭のスクリプト文は操作記述＜ＴＡＦ＞である。
基準テーブル（ＴａｂｌｅＡ）において、先頭の要素は「ＦｕｎｃｔｉｏｎＡ１」である。
そのため、実行部１１２は、ＦｕｎｃｔｉｏｎＡ１にアクセスする命令文を代替ソースコード２２０に書き出す。
これにより、代替ソースコード２２０（図７参照）において、０番の操作文「ＦｕｎｃｔｉｏｎＡ１（）；」が記述される。
【００４２】
実行部１１２は、代替ソースコード２２０から次のスクリプト文を選択する。
代替ソースコード２２０において、次のスクリプト文は操作記述「ＴＣ  ２，２」である。このＴＣ文において、開始位置を示す番号は２であり、増分は２である。
基準テーブル（ＴａｂｌｅＡ）において、２番の要素は「Ｖａｌｕｅ１」である。つまり、ＴＣ文で指定される要素は「Ｖａｌｕｅ１」である。
【００４３】
実行部１１２は、代替ソースコード２２０から次のスクリプト文を選択する。
代替ソースコード２２０において、次のスクリプト文は条件記述「ＴＡＤ（ＴＡＴ（ＴａｂｌｅＡ＋１）＋１）＝ＴＡＶ」である。
まず、実行部１１２は、ＴＡＴ（ＴａｂｌｅＡ＋１）を解析する。このＴＡＴ文は、ＴａｂｌｅＡの１番の要素（テーブル）へのアクセスを意味する。ＴａｂｌｅＡの１番の要素は「ＴａｂｌｅＢ」である。そのため、実行部１１２は、このＴＡＴ文を「ＴａｂｌｅＢ」に置き換える。
次に、実行部１１２は、ＴＡＤ（ＴａｂｌｅＢ＋１）を解析する。このＴＡＤ文は、ＴａｂｌｅＢの１番の要素（変数）へのアクセスを意味する。ＴａｂｌｅＢの１番の要素は「Ｄａｔａ１」である。そのため、実行部１１２は、このＴＡＤ文を「Ｄａｔａ１」に置き換える。
【００４４】
そして、実行部１１２は、「Ｄａｔａ１＝ＴＡＶ」を解析する。「ＴＡＶ」は、ＴＣ文で指定される要素を意味する。ＴＣ文で指定された要素は「Ｖａｌｕｅ１」である。つまり、「Ｄａｔａ１＝ＴＡＶ」は「Ｄａｔａ１＝Ｖａｌｕｅ１」を意味する。
【００４５】
実行部１１２は、代替ソースコード２２０から次のスクリプト文を選択する。
代替ソースコード２２０において、次のスクリプト文は操作記述＜ＴＡＦ＞である。
基準テーブル（ＴａｂｌｅＡ）において、次の要素は３番の要素「ＦｕｎｃｔｉｏｎＡ３」である。
そのため、実行部１１２は、「Ｄａｔａ１＝Ｖａｌｕｅ１」を条件とする条件文とＦｕｎｃｔｉｏｎＡ３にアクセスする操作文とを代替ソースコード２２０に書き出す。
これにより、代替ソースコード２２０（図７参照）において、１番から３番の条件文および操作文が記述される。
【００４６】
実行部１１２は、さらに、１番のスクリプト文「ＴＣ  ２，２」を解釈する。このＴＣ文で指定された増分は２であるため、次の要素の番号は４（＝２＋２）である。
基準テーブル（ＴａｂｌｅＡ）において、４番の要素は「Ｖａｌｕｅ２」である。つまり、ＴＣ文で新たに指定される要素は「Ｖａｌｕｅ２」である。
【００４７】
実行部１１２は、さらに、２番のスクリプト文「Ｄａｔａ１＝ＴＡＶ」を解析する。「ＴＡＶ」は、ＴＣ文で指定される要素を意味する。ＴＣ文で指定された要素は「Ｖａｌｕｅ２」である。つまり、「Ｄａｔａ１＝ＴＡＶ」は「Ｄａｔａ１＝Ｖａｌｕｅ２」を意味する。
【００４８】
実行部１１２は、さらに、３番のスクリプト文＜ＴＡＦ＞を解釈する。
基準テーブル（ＴａｂｌｅＡ）において、次の要素は５番の要素「ＦｕｎｃｔｉｏｎＡ４」である。
そのため、実行部１１２は、「Ｄａｔａ１＝Ｖａｌｕｅ２」を条件とする条件文とＦｕｎｃｔｉｏｎＡ４にアクセスする操作文とを代替ソースコード２２０に書き出す。
これにより、代替ソースコード２２０（図７参照）において、４番から６番の条件文および操作文が記述される。
【００４９】
＊＊＊実施の形態１の効果＊＊＊
ソースコード生成装置１００は、テーブルを参照して動作する関数２０１のソースコードの代替となる代替ソースコード２２０を生成することができる。
代替ソースコード２２０は、関数２０１を理解する困難さを軽減する。そして、代替ソースコード２２０は、従来のリバースエンジニアリングを利用して関数２０１の設計ドキュメントを生成することを可能とする。
【００５０】
実施の形態２．
代替ソースコード２２０を元に関数２０１の設計ドキュメントを生成する形態について、主に実施の形態１と異なる点を図８に基づいて説明する。
【００５１】
＊＊＊構成の説明＊＊＊
図８に基づいて、ドキュメント生成システム３００の構成を説明する。
ドキュメント生成システム３００は、ソースコード生成装置１００とドキュメント生成装置３１０とを備える。
ソースコード生成装置１００は、実施の形態１で説明した装置である。
ドキュメント生成装置３１０は、ソースコードを入力として設計ドキュメントを生成する従来の装置である。ドキュメント生成装置３１０は、リバースエンジニアリング装置とも呼ばれる。
【００５２】
＊＊＊動作の説明＊＊＊
ドキュメント生成システム３００の動作はドキュメント生成方法に相当する。
【００５３】
図８に基づいて、ドキュメント生成方法を説明する。
まず、ソースコード生成装置１００は、関数２０１の代替ソースコード２２０を生成する。生成方法は実施の形態１で説明した通りである。
そして、ドキュメント生成装置３１０は、代替ソースコード２２０に基づいて、関数２０１の設計ドキュメント３２０を生成する。
具体的には、ドキュメント生成装置３１０は、代替ソースコード２２０を入力として従来のリバースエンジニアリングを実行することによって、関数２０１の設計ドキュメント３２０を生成する。
【００５４】
＊＊＊実施の形態２の効果＊＊＊
ソースコード生成装置１００は、関数２０１の代替ソースコード２２０を生成する。これにより、テーブルを参照して動作する関数２０１の設計ドキュメントを従来のドキュメント生成装置３１０を利用して生成することができる。
【００５５】
＊＊＊実施の形態の補足＊＊＊
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【００５６】
１００  ソースコード生成装置、１０１  プロセッサ、１０２  メモリ、１０３  補助記憶装置、１０４  入出力インタフェース、１１１  受付部、１１２  実行部、１２１  記憶部、２００  ソフトウェアコード、２０１  関数、２０２  テーブル、２１０  スクリプト、２２０  代替ソースコード、３００  ドキュメント生成システム、３１０  ドキュメント生成装置、３２０  設計ドキュメント。
【図１】
2019121293.tif 000003
【図２】
2019121293.tif 000004
【図３】
2019121293.tif 000005
【図４】
2019121293.tif 000006
【図５】
2019121293.tif 000007
【図６】
2019121293.tif 000008
【図７】
2019121293.tif 000009
【図８】
2019121293.tif 000010