(57)【要約】【課題】コンピュータソフトウェア開発時、必要な修正をする場合や他言語で作り直すといった場合、ソースコードを読んで理解し新しいファイルを作成するが、これらを人手で行なっている為、コンピュータソフトウェアの生産性が低くまた品質も悪かった。人手で行なっている作業を出来るだけ自動化することによってコンピュータソフトウェアの生産性と信頼性の向上を図る。【解決手段】文法定義ファイルたけでパーサとジェネレータが同時に作成可能な、汎用パーサ＆汎用ジェネレータ装置、ツリーグラフ変換ルールファイルだけでパースツリーのグラフ構造データへの変換とその逆変換が同時に可能なツリーグラフ変換用拡張Ｐｒｏｌｏｇ装置、グラフ構造データを解析・加工可能なグラフデータ操作用拡張Ｐｒｏｌｏｇ装置からなり、ソースコードをリバースエンジニアリングで取り込み、装置を経由してソースコードを自動生成する。【選択図】図１
2017157180.tif 000002
【特許請求の範囲】
【請求項１】
「汎用パーサ＆汎用ジェネレータ」装置と、「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置と、「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置とで構成され、既存システム言語環境の「ソースコードファイル」群を「汎用パーサ＆汎用ジェネレータ」装置で単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」に変換し、上記「Ｌｉｓｐ２進木パースツリー」を「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置で双方向に辿れる「環境依存モデル双方向グラフ構造データ」に変換し、上記「環境依存モデル双方向グラフ構造データ」を「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置で「環境非依存モデル双方向グラフ構造データ」に変換し、上記「環境非依存モデル双方向グラフ構造データ」を「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置で分析し、上記「環境非依存双方向グラフ構造データ」を「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置で加工し、加工後の「言語環境非依存モデル双方向グラフ構造データ」を「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置で単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」に変換し、上記「Ｌｉｓｐ２進木パースツリー」から「汎用パーサ＆汎用ジェネレータ」装置でターゲット言語環境の「ソースコードファイル」群を自動生成する方法。
【請求項２】
特定の言語の文脈自由文法を記述した「文法定義ファイル」群と、上記の特定の言語で書かれた「既存システム環境依存ソースコードファイル」群に保持されているデータを用いて内部データである単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」を生成する「汎用パーサ」装置と、内部データである単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」と「文法定義ファイル」から文法定義ファイルで記述した言語で書かれた「ターゲットシステム環境依存ソースコードファイル」群または「既存システム環境依存ソースコードファイル」群を生成する「汎用ジェネレータ」装置とから構成され、同じ「文法定義ファイル」を与えただけで、前記「汎用パーサ」装置の機能と前記「汎用ジェネレータ」装置の機能を同時に実現することを特徴とする請求項１に記載の「汎用パーサ＆汎用ジェネレータ」装置。
【請求項３】
内部データである単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」と内部データである双方向に辿れる「双方向グラフ構造データ」の間を相互変換する為の「ツリーグラフ変換ルールファイル」群と、上記ファイル群に保持されているデータを用いて単方向にしか辿れない「Ｌｉｓｐ２進木パースツリー」を双方向に辿れる「双方向グラフ構造データ」へと変換する機能と、その逆の変換をする機能を、同時に実現することを特徴とする請求項１に記載の「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置。
【請求項４】
「標準モデル化プログラムファイル」群に保持されているデータを用いて「環境依存モデルグラフ構造データ」を「環境非依存グラフ構造データ」に変換する機能を持ち、様々な分析を行う「各種分析プログラムファイル」群と様々な加工を行う「各種加工プログラムファイル」群に保持されているデータを用いて「環境非依存モデル双方向グラフ構造データ」の各種分析・各種加工が可能なことを特徴とする請求項１に記載の「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置。
【請求項５】
本発明の「請求項２」に記した「汎用パーサ＆汎用ジェネレータ装置」で自動生成したソースコードを含むコンピュータソフトウェアを商用利用した場合、その売上高の１％をロイヤルティーとして受け取る権利を有する事。
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、ソフトウェア工学のリバースエンジニアリングとソフトウェア自動生成に関し、特に、ソフトウェアの再利用化を図ったソフトウェア自動生成に関する。
【背景技術】
【０００２】従来は、リバースエンジニアリングは「ソフトウェア開発の下流工程のソースコードから上流工程の再利月可能なソースコードを抽出すること」、ソフトウェア自動生成は「ソフトウェア開発の上流工程の再利用可能な設計情報から下流工程のソースコードを自動的に生成すること」でまったく別のものであった。【０００３】リバースエンジニアリングでは、下流工程のソースコードをパースツリー（構文木）にし、それを元に解析等をコンピュータに行なわせるが、このパースツリーを生成するパーサは、ソースコードの言語環境が変わる毎に、毎回その言語のパーサをある特定の言語環境のプログラムとしてハンドコーディングで作成していた。その為、複数の言語に対応しようとすると、パーサの開発コストが膨大になるという問題を抱えていた。【０００４】ソフトウェア自動生成では、上流工程の設計情報からターゲットの言語環境のソースコードを自動生成するが、これに使われるジェネレータを言語環境が異なる毎に、毎回その言語のジェネレータをある特定の言語環境のプログラムとしてハンドコーディングで作成していた。その為、複数の言語に対応しようとすると、ジェネレータの開発コストが膨大になるという問題を抱えていた。【０００５】リバースエンジニアリングでは、再利用可能なソースコードを抽出して利用する方法は確立しておらず、支援ツールを使用して人が理解し、人手で再利用する程度だった。【０００６】ソフトウェア自動生成では、スケルトンの生成等、半自動生成は可能であったが、完全自動生成しようとすると、上流工程の抽象的な設計情報のはずだったデータが特定のプログラム言語でのプログラムになってしまい、完全自動生成する意味がなくなってしまうという問題を抱えていた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２９６９９６号公報
【０００８】
【特許文献２】特開２０００−１４８５０１号公報
【非特許文献】
【発明の概要】
【発明が解決しようとする課題】
【０００９】本発明の目的は、再利用可能なソフトウェアの断片を蓄えるグラフデータベース（リレーショナルＤＢでもオブジェクト指向ＤＢでもなくＸＭＬ‐ＤＢでもなく双方向グラフ構造データを基にしたデータベース）を実現し、従来別個だったリバースエンジニアリングとソフトウェア自動生成をこのグラフデータベースを介して次の３つの課題を通して繋げることである。【００１０】第１の課題は、従来言語毎にプログラムを作成していたリバースエンジニアリングのパーサとソフトウェア自動生成のジェネレータを、文法を記述した文法定義ファイルを与えただけでそのパーサ機能とジェネレータ機能を同時に実現してしまう装置の実現である。【００１１】第２の課題は、パースツリーをグラフデータベースで扱えるように、パースツリーをグラフ構造データに変換することと、その逆変換を、同じ変換ルールを記述したツリーグラフ変換ルールファイルを与えただけで、同時に実現してしまう装置の実現である。【００１２】第３の課題は、双方向グラフ構造データに対して各種分析や各種加工を行う手段の提供である。【００１３】各種分析では例として将来的に、コールグラフを作成すること、フローチャートを作成すること、データフローグラフを作成すること、状態遷移図を作成すること、ＳＱＬ文実行の事前の性能見積もりをすること等が出来る様にしておく事である。【００１４】各種加工では例として将来的に、デバッグ用のログコードを自動的に入れたり削除したりすること、プログラムの不使用部分を自動的に削除すること、ライブラリの使い方を抽出したりする手段を提供すること、必要十分なテスト仕様を自動生成すること、等が出来る様にしておく事である。
【課題を解決するための手段】
【００１５】本発明の特徴は、３つの主要な装置からなることである。【００１６】第１の「汎用パーサ＆汎用ジェネレータ」装置は、ある言語環境の文脈自由文法を記述した「文法定義ファイル」を与えただけで、その言語のソースコードをパースツリーにするパーサ機能と、その言語のパースツリーからソースコードを自動生成するジェネレータ機能を同時に実現する。【００１７】第２の「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置は、単方向にしか辿れないパースツリーを双方向に辿れるグラフ構造データへと変換する機能と、その逆の変換をする機能を、同じ「ツリーグラフ変換ルールファイル」を用意しただけで同時に実現する。【００１８】第３の「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置は、プログラムを表す双方向グラフ構造データに対し、再利用性のあるプログラムを用いて、各種分析や各種加工を行う。【００１９】全体の流れとしては、「汎用パーサ＆汎用ジェネレータ」装置は、ある言語環境の「文法定義ファイル」とその言語のソースコートを与えるとＬｉｓｐ２進木パースツリーを生成し、「ツリーグラフ変換月」拡張Ｐｒｏｌｏｇ装置は、その言語環境の「ツリーグラフ変換ルールファイル」とＬｉｓｐ２進木パースツリーを与えると、単方向にしか辿れないパースツリーを双方向に辿れる双方向グラフ構造データに変換する。【００２０】「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置で変換した双方向グラフ構造データは言語環境に依存するが、「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置に、「標準モデル化プログラムファイル」とこの環境依存モデル双方向グラフ構造データを与えると、これを環境非依存モデル双方向グラフ構造データに変換する。【００２１】また「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置は、環境非依存モデル双方向グラフ構造データに対して、あらかじめ用意して置いた「各種分析プログラム」や「各種加工プログラム」を用いて、プログラムの分析や加工を行う。【００２２】「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置は、各種加工を行った後の環境非依存モデル双方向グラフ構造データと任意の言語環境の「標準モデル用ツリーグラフ変換ルールファイル」を与えると、その言語のＬｉｓｐ２進木パースツリーを生成する。【００２３】「汎用パーサ＆汎用ジェネレータ」装置は、その言語環境の「文法定義ファイル」と「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置が生成したＬｉｓｐ２進木パースツリーを与えると、その言語のソースコードを自動生成する。
【発明の効果】
【実施例１（既存システムの異なる言語環境への移行）】
【００２４】一般的に、ある言語で書かれたコンピュータソフトウェアのソースコードを、異なる言語環境で動かすことは、移植作業に大変時間が掛かるものであった。
【００２５】その原因は、人が手作業で作成したシステムの分析や修正を他の人が行う場合、まずシステムの仕様・実装・実際の動作状況を人手で理解してというフェーズで莫大なコストが掛かり、ソースコードを読んでそれを解読しなければならない場合はさらにコストが増大することにあった。
【００２６】しかしながら、本発明の「リバースエンジニアリング可能なソフトウェア自動生成装置」が成熟し、発明の第１図に現れる各種ファイル群が充実すれば、異なる言語環境へのコンピュータソフトウェアのプログラムの移行を、人手やコストを掛けなくても、短期間で行う事が出来る様になる。
【実施例２（大規模システムの修正や拡張）】
【００２７】一度作成されたソフトウェアを既存システム環境で大幅に修正することや大幅に拡張するということはよく発生する。
【００２８】このときシステムの外部仕様は分かっているがプログラムを実装した人が残っていない場合、プログラムの修正や拡張する時、内部仕様を理解しソースコードを理解してからでないとプログラムの修正や拡張は難しい。この内部仕様／ソースコードの理解の所で非常に時間がかかるのが現状である。
【００２９】本発明の「リバースエンジニアリング可能なソフトウェア自動生成装置」が成熟し、ソースコードは、「Ｌｉｓｐ２進木のパースツリー」と「環境依存グラフ構造データ」を経由するか最後に「環境非依存モデル双方向グラフ構造データ」にすることが出来れば、人は内部仕様／ソースコードを直接理解する必要がなくなる。人の作業は、発明の図１に現れる各種ファイル群のメインテナンスと「環境非依存グラフ構造データ」を分析／加工する「各種分析プログラム「各種加工プログラム」の充実させることとなる。
【００３０】発明の図１の各種ファイル群、特に「各種分析プログラムファイル」群、及び「各種加工プログラムファイル」群が十分充実すれば、人の主なソフトウェア開発作業は「プログラムの理解とコーディング」から「グラフデータベース」との対話に作業内容が変わる。
【図面の簡単な説明】
【００３１】
【図１】本発明の「リバースエンジニアリング可能なソフトウェアの自動生成装置」の実施形態の構成例を示すブロック図である。
【図２】加減乗除と代入と制御文のある文法の「文法定義ファイル」の例である。
【図３】図２の「文法定義ファイル」で自動生成したファイルのソースコード例である。
【図４】ＸＭＬ簡易文法の「文法定義ファイル」の例である。
【図５】図４の「文法定義ファイル」で自動生成したファイルのソースコード例の抜粋である。
【図６】「ツリーグラフ変換ルールファイル」の例の抜粋である。
【図７】「オブジェクト指向プログラム」を双方向グラフ構造データで表現した一例である。
【図８】Ａｌｔａｉｒ言語の「標準モデル化プログラムファイル」のソースコード例の抜粋その１である。
【図９】Ａｌｔａｉｒ言語の「標準モデル化プログラムファイル」のソースコード例の抜粋その２である。
【発明を実施するための形態】
【実施例１（既存システムの異なる言語環境への移行）】
【００３２】添付の図面を参照して本発明によるリバースエンジニアリング可能なソフトゥエア自動生成装置の第１の実施例の形態を詳細に説明する。図１から図９を参照すると、本発明の実施例が示されている。
【００３３】図１は、本実施形態のリバースエンジニアリング可能なソフトゥエア自動生成媒体の構成例を示すブロック図である。
【００３４】まず、図１で既存システム言語環境の「文法定義ファイル」群（５）と「ツリーグラフ変換ルール」群（６）と「標準モデル化プログラムファイル」群（７）と、移行先システム言語環境の「文法定義ファイル」群（５）と「標準モデル用ツリーグラフ変換ルールファイル」群（１０）を、なければ作成する。各ファイル群の例は後で示す。
【００３５】次に、既存システム言語環境の「既存システム言語環境のソースコードファイル」群（４）を既存システム言語環境の「文法定義ファイル」群（５）と「汎用パーサ＆汎用ジェネレータ」装置（１）で「Ｌｉｓｐ２進木のパースツリー」の内部データに変換する。図２と図４に「文法定義ファイル」の具体的な例を示す。
【００３６】文法定義ファイルは、ジェネレータとして使う場合のインデント／改行／スペーシングの記述をする部分と、文脈自由文法の構文定義の部分と、文脈自由文法の字句定義の部分の３つからなっている。
【００３７】文脈自由文法を記述する方法として使われることが多いのはＢＮＦであるが、ＢＮＦは繰り返しを再帰で記述しなければならず、可読性が良くない。文法定義ファイルでは、０個以
2017157180.tif 000003
の基本として用いている。
【００３８】次に、この単方向にしか辿れない「Ｌｉｓｐ２進木のパースツリー」の内部データを既存システム環境の「ツリーグラフ変換ルールファイル」群（６）と「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置（２）で双方向に辿れる「環境依存モデル双方向グラフ構造データ」の内部データに変換する。図６に「ツリーグラフ変換ルールファイル」の例の抜粋を示す。
【００３９】「ツリーグラフ変換ルールファイル」は、文法の単位の名前と、その文法の単位のパースツリーとグラフ構造データ間の変換ルールの記述の組の集合である。文法の単位は、括弧ばかりで読み書きし辛いが、文法の単位は、文法定義ファイルから自動生成され、一切気に掛ける必要はない。「ツリーグラフ変換ルールファイル」は、ない場合は作成しなければならないが、スケルトンに相当するものは、文法定義ファイルから自動生成される。図６で「［‐／□□／‐＞○○］」という記述がある部分がＰｒｏｌｏｇをグラフデータを扱え得る様に拡張した部分である。
【００４０】次に、この「環境依存モデル双方向グラフ構造データ」の内部データを既存システム言語環境の「標準モデル化プログラムファイル」群（７）と「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置（３）で「環境非依存標準モデル双方向グラフ構造データ」の内部データに変換する。図７に「１から１００までを足して結果を出力するプログラム」を「環境非依存標準モデルグラフ構造データ」で表現した例を示す。図８と図９に、Ａｌｔａｉｒという言語の「標準モデル化プログラムファイル」の例の抜粋を示す。
【００４１】図７は、コンピュータソフトウェアのプログラムを双方向グラフ構造データで示しているが、グラフ構造データのグラフは有向グラフであるが、アークはコンピュータ上で双方向に辿ることが出来る。双方向グラフ構造データで表したコンピュータソフトウェアのプログラムのグラフのアークには、ｉｎｃｌｕｓｉｏｎとａｓｓｏｃｉａｔｉｏｎの２種類のアークが存在する。ｉｎｃｌｕｓｉｏｎのみのグラフは、プログラムを構文解析した結果の構文木を表している。ａｓｓｏｃｉａｔｉｏｎは、プログラムの構文解析の後の、プログラムを意味解析した結果、同一シンボル（同一クラス名／同一変数名／同一関数名、等）と判定された部分つなぐアークである。
【００４２】図８と図９は、「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置に与えるグラフデータ操作プログラムの例であるが、Ｐｒｏｌｏｇを拡張した部分は、主に「ｂｅｆｏｒｅ：＝｛・・・｝、ａｆｔｅｒ：＝｛・・・｝とｃｏｍｍｏｎ：＝｛・・・｝が対になった部分」である。グラフ構造データ中、ｂｅｆｏｒｅ：＝｛以下に書かれたグラフパターンに、現在着目しているグラフがマッチすると、ａｆｔｅｒ：＝｛以下に書かれているグラフパターン（を作成／に修正）することにより、グラフ構造データの作成／修正が出来る。ｃｏｍｍｏｎ：＝｛以下には、条件を論理述語で書けるようになっており、グラフ構造データのきめ細かな、作成や修正を可能としている。
【００４３】次に、この「環境非依存標準モデル双方向グラフ構造データ」の内部データを、移行先システム言語環境の「標準モデル用ツリーグラフ変換ルール」群（１０）と「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置（２）で「Ｌｉｓｐ２進木のパースツリー」の内部データに変換する。「標準モデル用ツリーグラフ変換ルール」群（１０）の書き方は、「ツリーグラフ変換ルールファイル」群（６）と同様である。
【００４４】次に、このパースツリーを移行先システム言語環境の「文法定義ファイル」群（５）と「汎用パーサ＆汎用ジェネレータ」装置（１）で移行先システム言語環境の「ターゲット言語環境のソースコードファイル」群（１１）を自動生成する。図３に、図２の「文法定義ファイル」で自動生成したソースコードの例を示す。図５に、図４の「文法定義ファイル」で自動生成したソースコードの例を示す。
【実施例２（大規模システムの修正や拡張）】
【００４５】添付の図面を参照して本発明によるリバースエンジニアリング可能なソフトゥエア自動生成装置の第２の実施例の形態を詳細に説明する。本発明の第２の実施例は、図と説明が部を除いて、第１の実施例とほぼ同様である。
【００４６】図１は、本実施形態のリバースエンジニアリング可能なソフトゥエア自動生成媒体の構成例を示すブロック図である。
【００４７】まず、図１で既存システム環境の「文法定義ファイル」群（５）と「ツリーグラフ変換ルールファイル」群（６）と「標準モデル化プログラムファイル」群（７）と「標準モデル用ツリーグラフ変換ルールファイル」群（１０）をなければ作成する。これは、ターゲット言語環境の「文法定義ファイル」が既存システム言語環境の「文法定義ファイル」と同一になることを除いて、発明の第１の実施例の形態と同様である。
【００４８】次に、既存システム言語環境の「既存システム言語環境のソースコードファイル」群（４）を既存システム言語環境の「文法定義ファイル」群（５）と「汎用パーサ＆汎用ジェネレータ」装置（１）で「Ｌｉｓｐ２進木のパースツリー」の内部データに変換する。これは発明の第１の実施例の形態と同様である。
【００４９】次に、この単方向にしか辿れない「Ｌｉｓｐ２進木のパースツリー」の内部データを既存システム環境の「ツリーグラフ変換ルールファイル」群（６）と「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置（２）で双方向に辿れる「環境依存モデル双方向グラフ構造データ」の内部データに変換する。これは発明の第１の実施例の形態と同様である。
【００５０】次に、この「環境依存モデル双方向グラフ構造データ」の内部データを既存システム言語環境の「標準モデル化プログラムファイル」群（７）と「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置（３）で「環境非依存標準モデル双方向グラフ構造データ」の内部データに変換する。これは発明の第１の実施例の形態と同様である。
【００５１】次に、この「環境非依存標準モデルグラフ構造データ」の内部データに対し、「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置（３）での問い合わせ／挿入／削除／更新を行ってプログラム修正を行う。この修正を行うことはＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａ  Ｂａｓｅ）のＳＥＬＥＣＴ文／ＩＮＳＥＲＴ文／ＤＥＬＥＴＥ文／ＵＰＤＡＴＥ文を実行することと類似しているので本発明の図１の「グラフデータ操作用」拡張Ｐｒｏｌｏｇ装置周りはＧＤＢ（Ｇｒａｐｈ  Ｄａｔａ  Ｂａｓｅ）と呼ぶことにする。
【００５２】ソフトウェアの修正は、本発明のリバースエンジニアリング可能なソフトウェア自動生成装置の利用技術者が最も親しんでいるプログラミング言語で行う事が出来る。Ｃ＋＋が出来る技術者であれば、修正該当部分をＣ＋＋で書かれた「既存システム言語環境のソースコードファイル」（４）を自動生成し、技術者がＣ＋＋で修正を行い、それをリバースエンジニアリングで「環境非依存標準モデル双方向グラフ構造データ」の内部データに反映させて、修正を行う。Ｊａｖａが出来る技術者であれば、修正該当部分をＪａｖａで書かれた「既存システム言語環境のソースコードファイル」（４）を自動生成し、技術者がＪａｖａで修正を行い、それをリバースエンジニアリングで「環境非依存標準モデル双方向グラフ構造データ」の内部データに反映させて、修正を行う。
【００５３】次に、この修正された「環境非依存標準モデル双方向グラフ構造データ」の内部データを、「標準モデル用ツリーグラフ変換ルール」群（１０）と「ツリーグラフ変換用」拡張Ｐｒｏｌｏｇ装置（２）で「Ｌｉｓｐ２進木のパースツリー」の内部データに変換する。これは発明の第１の実施例の形態と同様である。
【００５４】次に、この「Ｌｉｓｐ２進木パースツリー」の内部データを「文法定義ファイル」群（５）と「汎用パーサ＆汎用ジェネレータ」装置（１）で「既存システム言語環境のソースファイル」群（４）を自動生成する。これは、ターゲット言語環境の「文法定義ファイル」が既存システム言語環境の「文法定義ファイル」と同一になることを除いて、発明の第１の実施例の形態と同様である。
【産業上の利用可能性】
【００５５】コンピュータのシステムソフトウェア開発現場は、３Ｋ（きつい、汚い、格好悪い）と呼ばれるようになり、人気が減って来ている。納期が迫り、サービス残業を強いられている人も多い。この現状を顧みるに、本来機械にやらせることが出来る作業も未だに人手で行っていて、作業自体も複雑化している為と思われる。プログラマが手作業で行っている部分の大部分を、コンピュータによるＩＴ化・自動化する事により、コンピュータのシステムソフトウェア開発現場のコンピュータソフトウェアの生産性と品質の大幅な向上が図れる事が期待できる。
【符号の説明】
【００５６】１  汎用パーサ＆汎用ジェネレータ装置
２  ツリーグラフ変換用拡張Ｐｒｏｌｏｇ装置
３  グラフデータ操作用拡張Ｐｒｏｌｏｇ装置
４  既存システム言語環境のソースコードファイル群
５  文法定義ファイル群
６  ツリーグラフ変換ルールファイル群
７  標準モデル化プログラムファイル群
８  各種分析プログラムファイル群
９  各種加工プログラムファイル群
１０  標準モデル用ツリーグラフ変換ルールファイル群
１１  ターゲット言語環境のソースコードファイル群
１２  各種分析結果群
１３  各種生成物群
１４  グラフデータベース
【図１】
2017157180.tif 000004
【図２】
2017157180.tif 000005
【図３】
2017157180.tif 000006
【図４】
2017157180.tif 000007
【図５】
2017157180.tif 000008
【図６】
2017157180.tif 000009
【図７】
2017157180.tif 000010
【図８】
2017157180.tif 000011
【図９】
2017157180.tif 000012