(57)【要約】手続き型言語で書かれている従来のプログラムをＬｙｅｅ構造プログラムへ機械的に変換することを可能とする。  本発明は、所定の整形規則に基づきソース・プログラムを正規化して解析テーブルを生成するステップと、前記解析テーブルから端点単語に着目して該単語に係る生成論理情報を抽出するステップと、前記抽出された生成論理情報に基づき第１のＬｙｅｅＢＥＬＴ情報を決定するステップと、前記決定された第１のＬｙｅｅＢＥＬＴ情報を言語変換して第２のＬｙｅｅＢＥＬＴ情報を生成するステップと、  前記生成された第２のＬｙｅｅＢＥＬＴ情報をＬｙｅｅＡＬＬツール（テンプレート）の所望の位置に代入してコードを得るステップとを具備することを最も主要な特徴とする。ＬｙｅｅＢＥＬＴ上の正規化されたビジネスロジックにより、後のプログラム保守は、「スパゲッティ」問題がなくなり劇的に平易化され、その結果、ソフトウェアの進化が可能になる。【特許請求の範囲】
【請求項１】
所定の整形規則に基づきソース・プログラムを正規化して解析テーブルを生成するステップと、
前記解析テーブルから端点単語に着目して該単語に係る生成論理情報を抽出するステップと、
前記抽出された生成論理情報に基づき第１のＬｙｅｅＢＥＬＴ情報を決定するステップと、
前記決定された第１のＬｙｅｅＢＥＬＴ情報を言語変換して第２のＬｙｅｅＢＥＬＴ情報を生成するステップと、
前記生成された第２のＬｙｅｅＢＥＬＴ情報をＬｙｅｅＡＬＬツール（テンプレート）の所望の位置に代入してコードを得るステップと
を具備することを特徴とするプログラムの変換方法。
【請求項２】
ソース・プログラムの正規化して解析テーブルを生成するリフォーム部と、
前記解析テーブルから端点単語に着目して該単語に係る生成論理情報を抽出する抽出部と、
前記抽出された生成論理情報に基づき処理経路図およびＬｙｅｅＢＥＬＴを生成するためのＬｙｅｅＢＥＬＴ作成部と、
Ｌｙｅｅ構造のベクトル生成を行う要素生成部と、
前記要素生成部により生成されたＬｙｅｅ構造のベクトルを組み立てることでＬｙｅｅプログラムを生成する要素組立部（テンプレート）と、
を具備することを特徴とするプログラムの変換ツール。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、プログラムの変換方法及び変換ツールに関するものである。
【背景技術】
【０００２】  過去に開発され長い間保守されてきたソフトウェア・プログラムを新しい実行環境で動作するように書き換えたり、またはある時点までで古くなってしまったアプリケーション言語を新しいアプリケーション言語に変換しなければならないということがよくある。しかし、プログラムを機械的に変換するための方法論はまだ確立されていない。レガシー・ソフトウェア資産の機械的変換は不可能であると考えられているので、プログラムを書き直すか、構成し直す以外には方法がないことになり、新しく生成したソフトウェア・プログラムは、結局は前のものと同じ経路をたどるしかないことになる。【０００３】  ソフトウェアの実行環境および動作基盤が種々様々である現在の状況においては、ソフトウェア資産の継承および維持の観点から見て、レガシー・システム変換のニーズは非常に高い。しかし、現在使用できる「スクラップ・アンド・ビルド」アプローチは、移行期間およびコストの点でユーザが満足できるものではない。レガシー・プログラムを再生するための種々の試みが行われたが、そのどれも満足できるものではなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】  本発明は、手続き型言語で書かれている従来のプログラムをＬｙｅｅ（商標）構造プログラムへ機械的に変換することを可能とする、Ｌｙｅｅ方法論によるレガシー・システム・プログラムの変換方法及び変換システム、変換ツールを提供することを目的とする。
【課題を解決するための手段】
【０００５】  かかる課題を解決するために本発明は、所定の整形規則に基づきソース・プログラムを正規化して解析テーブルを生成するステップと、前記解析テーブルから端点単語に着目して該単語に係る生成論理情報を抽出するステップと、前記抽出された生成論理情報に基づき第１のＬｙｅｅＢＥＬＴ情報を決定するステップと、前記決定された第１のＬｙｅｅＢＥＬＴ情報を言語変換して第２のＬｙｅｅＢＥＬＴ情報を生成するステップと、前記生成された第２のＬｙｅｅＢＥＬＴ情報をＬｙｅｅＡＬＬツール（テンプレート）の所望の位置に代入してコードを得るステップとを具備することを最も主要な特徴とする。【０００６】  また本発明は、ソース・プログラムの正規化して解析テーブルを生成するリフォーム部と、前記解析テーブルから端点単語に着目して該単語に係る生成論理情報を抽出する抽出部と、前記抽出された生成論理情報に基づき処理経路図およびＬｙｅｅＢＥＬＴを生成するためのＬｙｅｅＢＥＬＴ作成部と、Ｌｙｅｅ構造のベクトル生成を行う要素生成部と、前記要素生成部により生成されたＬｙｅｅ構造のベクトルを組み立てることでＬｙｅｅプログラムを生成する要素組立部（テンプレート）と、を具備することを最も主要な特徴とする。【０００７】  レガシー・プログラム変換の全体の作業の流れは次に示すとおりである。その実現における非常に重要な部分は、必要な情報が保証されるはずである実行可能性調査（事前分析）段階であり、新しいシステム環境で再生させるシステムに関する適切な企画と方針を明確にし、それに従ってツールをカスタマイズする。最初のプロセスが完了すれば、ツールにパラメータを登録することにより機械的レガシー・システム変換が実現でき、（レガシープログラムの）ビジネス知識をＬｙｅｅＢＥＬＴ（商標）として再構築できる。ＬｙｅｅＢＥＬＴ上の正規化されたビジネスロジックにより、後のプログラム保守は、「スパゲッティ」問題（つまり、プログラムの論理構造が錯綜し、非整然としているため、後に保守等する際に、膨大な労力を消費することを余儀なくされるという問題。以下同。）がなくなり劇的に平易化され、その結果、ソフトウェアの進化が可能になる。【０００８】  上記の構成要素を持つ本発明は、方法としても、或いはかかる機能を備えるソフトウェアとしても、該ソフトウェアが搭載される装置・ツール（ソフトウェア自体の場合も含む）としても、さらにはシステムとしても、実現され得る。
【発明の効果】
【０００９】  本発明によれば、ほぼ機械的なレガシー・システム変換が可能で、またＬｙｅｅＢＥＬＴおよび処理経路図で従来法で編集したプログラムを生成することができる。【００１０】  それ故、ソフトウェアの再生産サイクルは、従来プログラムをＬｙｅｅＢＥＬＴにし、このＬｙｅｅＢＥＬＴを従来プログラムに戻すという方法で実現できる。これにより、レガシー・システムが抱えている問題が大幅に解決される。
【発明を実施するための最良の形態】
【００１１】［本発明の概要］
レガシー・システムの再生のいくつかのアプローチの比較再検討に基づいて、この問題に対するＬｙｅｅ方法論の適用について提示し、そのアイデア、関連する手順、および実現したツールについて明らかにする。ソフトウェア生産技術研究所が開発したツールおよびマニュアルにより、プログラムが手続き型言語で書かれている限り、従来のプログラムをＬｙｅｅ構造プログラムへ機械的変換が可能となった。Ｌｙｅｅ方法論を使用すれば、プログラムの構造変換に加えて、変換されたプログラムは任意のアプリケーション言語を選択して記述することができる。同時に、システム変換に関連する全く新しいアプローチを導入し、旧プログラムから抽出された大量のデータを編集して、Ｌｙｅｅタイプの宣言型プログラムの代わりに、論理シーケンスを持つ新しい従来型プログラムを作ることができる。論理シーケンスを持つ新しい従来型プログラムを作るこれらの機能は、独立データ項目の属性、生成式および実行条件に関する情報の集合であるＬｙｅｅＢＥＬＴのコンセプトにより実現することができる。【００１２】  レガシー・プログラム変換の全体の作業の流れは次に示すとおりである。その実現における非常に重要な部分は、必要な情報が保証されるはずである実行可能性調査（事前分析）段階であり、新しいシステム環境で再生させるシステムに関する適切な企画と方針を明確にし、それに従ってツールをカスタマイズする。最初のプロセスが完了すれば、ツールにパラメータを登録することにより機械的レガシー・システム変換が実現でき、（レガシープログラムの）ビジネス知識をＬｙｅｅＢＥＬＴとして再構築できる。ＬｙｅｅＢＥＬＴ上の正規化されたビジネスロジックにより、後のプログラム保守は、「スパゲッティ」問題がなくなり劇的に平易化され、その結果、ソフトウェアの進化が可能になる。
１．事前の実行可能性の調査
２．従来のプログラムのリフォーム処理（プログラムの正規化）
３．抽出データの解析用テーブル（データ解析）
４．処理経路図の生成
５．旧ＬｙｅｅＢＥＬＴの生成
６．旧ＬｙｅｅＢＥＬＴから新ＬｙｅｅＢＥＬＴへの言語変換
７−１．Ｌｙｅｅ構造プログラムの組み立て（テンプレート）
７−２．従来型構造のプログラムへの編集（機能編集）
［本稿の構成］
１．目的
２．他のレガシー・システム変換に関する比較研究
３．Ｌｙｅｅのレガシー変換の独創性
４．Ｌｙｅｅのレガシー変換の方針および手順
５．Ｌｙｅｅのレガシー・システム変換ツール
６．種々のシステム変更要求に対する対処手段
７．Ｌｙｅｅのレガシー・システム変換の残された問題
８．結論
１．Ｌｙｅｅ理論によるレガシー変換の目的
過去に開発され長い間保守されてきたソフトウェア・プログラムを新しい実行環境で動作するように書き換えたり、またはある時点までで古くなってしまったアプリケーション言語を新しいアプリケーション言語に変換しなければならないということがよくある。しかし、プログラムを機械的に変換するための方法論はまだ確立されていない。レガシー・ソフトウェア資産の機械的変換は不可能であると考えられているので、プログラムを書き直すか、構成し直す以外には方法がないので、新しく生成したソフトウェア・プログラムは、結局は前のものと同じ経路をたどるしかないことになる。【００１３】  ソフトウェアの実行環境および動作基盤が種々様々である現在の状況においては、ソフトウェア資産の継承および維持の観点から見て、レガシー・システム変換のニーズは非常に高い。しかし、現在使用できる「スクラップ・アンド・ビルド」アプローチは、移行期間およびコストの点でユーザが満足できるものではない。次の章で考察するように、レガシー・プログラムを再生するための種々の試みが行われたが、そのどれも満足できるものではなかった。【００１４】  この問題に適用されたＬｙｅｅ方法論は、全く独自のものであると言える。レガシー変換のＬｙｅｅの方法は、最初に、現在のプログラムを単語の単位（データ項目）に分割し、その後で各単語の情報を分析し、情報の必要な部分だけを抽出して新しいプログラムにそれらを使用する。この抽出した情報があれば、新しいプログラムは、提案された新しい環境および／または新しいアプリケーション言語で機械的に再構成される。【００１５】  Ｌｙｅｅアプローチの場合でも、例えば、関数またはサブルーチンのようなプログラムの独立した塊に関しては、自動変換を行うことができないか、行うべきでないいくつかの部分がある。しかし、少なくとも、この種のプログラム単位に対しても、機械的処理は行うことができる。Ｌｙｅｅのレガシー変換方法論とツールが、実際のビジネス環境でうまく実現されるなら、現在のソフトウェアの再生期間およびコストは最小限になる。同時に、再生したプログラムの保守性は劇的に改善され、ソフトウェアのライフサイクルの概念が変ることになる。
２．他のレガシー・システム変換に関する比較研究
（１）従来型（構造化設計）アプローチ
過去から現在までのソフトウェア資産は膨大なものである。このソフトウェア資産の大部分は、いわゆる手続き型言語で書かれた構造化設計プログラムである。作者の実務的知識から様々な工夫がなされ、これらの従来型プログラムは、機能の順に組み立てられ、この順序は作者が独自に考え出すものである。この方法による処理順序は非常に合理的なものであるが、一方では、この処理順序は当然非常に恣意的なものである。それ故、個々に作られた処理機能は、分解するのが難しく、機能間のつながりも解くのが難しい。【００１６】  ソフトウェアの価値を維持するために種々の方法が取られてきたが、継続する保守の結果、ソフトウェアの機能的結合がより深くなる。その結果、プログラムは、非常に複雑なものになり、内部がもつれた状態になり、保守が困難でリスクを伴うレベルにまでになる。最終的には、ソフトウェア自身の存在意義が失われ、保守さえほとんど不可能になる。また非常に困ったことに、過去においてプログラムに内蔵させた機能、すなわちビジネス・ロジックまたはビジネス要件または究極的にはユーザの意図、が無効になり、制御不能の状態になる。【００１７】  今迄、種々のレガシー・システム変換方法が研究され、試みられてきたが、そのどれもが、ビジネスにおいて何らの合理的な成功を収めていない。このようなさえない結果になった主な理由は、非常に高密度の内部結合を含むソフトウェアを、その主要な性質が同じである他のタイプのフォーマットに単に変換しようとするアプローチによるものである。このアプローチは、新たに再度他の非常に密度が高い結合状態を作り出すだけで、状況は全く改善されない。
（２）オブジェクト指向（Ｏｂｉｅｃｔ  Ｏｒｉｅｎｔｅｄ）アプローチ
現在、オブジェクト指向アプローチの開発は、ソフトウェア開発設計の代表的な技術の１つになっている。しかし、実際のプログラム作成で要求される仕様を、１００％オブジェクト指向アプローチで行うのは非常に困難である。オブジェクトは、実体に対する機能および属性であると定義されるものであるが、実体に対応する機能および属性の決定（またはクラスの設定）は、作成者の自由な判断により行われる。さらに、構成要素をどのように組み立てるかについては厳格な規則はなく、また、構造化設計アプローチのような実行順序についての規制もない。実際の開発の場においては、オブジェクト間の関係が完全に一貫性を持って適用されず、多くの場合、開発成果物に大量のオブジェクトが生成されていても、作成者自身を除けば誰もそれを理解してないということになる。すなわち、完成したソフトウェアは規則性のない機能のかたまりとなり、最終的に解体したり、再使用したりするのが困難になる傾向が強い。オブジェクト指向アプローチによるレガシー変換では、従来型プログラムから内在するオブジェクトが抽出され、それらを少数のものに再構成する。しかし、オブジェクトから抽出される単位が１つの機能である限りは、レガシー変換の実現を成功させることはできない。
（３）アスペクト指向（Ａｓｐｅｃｔ  Ｏｒｉｅｎｔｅｄ）アプローチ
アスペクトとは、プログラムを直接リンクしていない機能要求の視点のことである。また、視点である機能要求の組み合わせ構造が、データ処理構造とねじれのない関係を形成するための実体になる。アスペクト指向アプローチを使用する開発技術では、視点となる機能要求を定義することが求められる。そうすれば、プログラムの必要な部分だけが、弾力的にまたは非線形的に影響を受ける。言い換えれば、アスペクトが定義されると、プログラミングが自動化され、上流工程によって開発が完了する。アスペクトが従来のプログラムから完全に取り出された場合には、レガシー・システムの変換は間違いなく十分実行可能になり、アスペクトの定義を修正するだけで以降の保守が可能になる。【００１８】  すでに説明したオブジェクト指向アプローチおよび構造化設計アプローチは、システムの機能やふるまいあるいはデータフローと見なされる別々の特性を、プログラミング言語だけで組み立てなければならない。一方、アスペクト指向アプローチは、要求に対する機能やデータフローの特性を、矛盾なくふるまう「同期した」状態で捉えようとしているので、このアプローチは、新しい方法論として発展する優れた潜在能力を持つ。【００１９】  現在、アスペクトは、依然として試験段階にあり、アスペクトの定義および実現技術の双方ともに試験的なものでエラーを含んでいる。アスペクトを従来のプログラムから機械的に取り出すことができるようにするのは今後の課題である。
３．Ｌｙｅｅのレガシー変換の独創性
Ｌｙｅｅアプローチでは、プログラムを分割し、分析するために、従来型プログラムの最小構成要素として単語に焦点を当てる。そして、次にＬｙｅｅ規則により、変換する従来型プログラムと同じ価値を持つ新しいプログラムを再構成するために、すべての抽出した単語に対してリフォーム処理を行う。【００２０】  このようにして、Ｌｙｅｅのレガシー・システム変換が実現される。すなわち、単語という最小オブジェクトに注目し、始点単語（Ｇｉｖｅｎ−ｗｏｒｄ）および端点単語（Ｓｅｌｆ−ｗｏｒｄ）の関係が全て個別に抽出され、それらをＬｙｅｅプロセス制御構造に再割り当てし、それらを矛盾のないような実行可能フォーマットに再配置する。それ故、単語の分析は、レガシー変換の重要な作業であり、そのため、プログラム内の隠れた単語を含むすべての単語を取り出すことが必要である。何故なら、単語のうちのあるものはプログラムに明示的に現われていないからである。Ｌｙｅｅのレガシー変換の最重要テーマは、すべての必要な単語を適切に取り出すことができるかどうかである。それ故、Ｌｙｅｅ方法論の基本的原理が、この難問を解決し、プログラムを分析するために適用されることが期待されている。【００２１】  Ｌｙｅｅ方法論構造のコンポーネントの１つであるベクトル（Ｌｙｅｅプログラム）は、データ解析処理が行われた後で、従来型プログラムの最小構成要素である単語の受け皿としての役割を果たす。知識により人間が作った処理機能であるプログラムは、ロジックを使用しないデータ領域の受け渡し（データ結合）を通して、新しいプログラムに自律的に置き換えられる。すなわち、単語の論理要素（Ｌ４，Ｌ３）は、その決まった生成式および実行条件を吸収し、従来のフロー制御条件を、単語生成の実行条件に置き換える役割を果たす。従来のプログラムの制御論理内のＬＯＯＰおよびＧＯ−ＴＯ処理は、Ｌｙｅｅ方法論の連鎖で置き換えられるものなので、すべてのＬＯＯＰおよびＧＯ−ＴＯ処理は消去されることになる。Ｌｙｅｅ方法論のレガシー変換は、種々の技術で今迄試みられたすべてのレガシー変換アプローチとは全然異なり、プログラムと上流設計を区別しない要件定義内容を含むすべての開発成果物が再生されるということが際立って異なる点である。変換の手順について以下に詳細に説明するように、本稿は、従来の構造からＬｙｅｅ構造への変換ばかりでなく、Ｌｙｅｅ構造から従来の構造への変換についても記述する。現在では、ＬｙｅｅＢＥＬＴが完成される限りは、Ｌｙｅｅ構造化プログラムはツールにより生成される。しかし、従来の構造の新しいプログラムが、ＬｙｅｅＢＥＬＴから作成された場合には、Ｌｙｅｅ方法論を知らないシステム・エンジニアでも習熟しているようにプログラムの保守を行うことができる。Ｌｙｅｅ方法論に依存しなくても、プログラムの取り扱いを確実に行うことができる。
４．Ｌｙｅｅのレガシー変換の方針および手順
（１）概要
図１は、Ｌｙｅｅのレガシー変換の方針および手順を示す。同図に示すように、Ｌｙｅｅのレガシー変換は以下の手順を具備して構成される。
１．事前の実行可能性の調査
２．従来のプログラムのリフォーム処理（プログラムの正規化）
３．抽出データの解析用テーブル（データ解析）
４．処理経路図の生成
５．旧ＬｙｅｅＢＥＬＴの生成
６．旧ＬｙｅｅＢＥＬＴから新ＬｙｅｅＢＥＬＴへの言語変換
７−１．Ｌｙｅｅ構造プログラムの組み立て（テンプレート）
７−２．従来型構造のプログラムへの編集（機能編集）
図１の［１］から［３］においては、すべての必要な情報を、Ｌｙｅｅ構造として抽出することができ、［４］から［５］において、これらの情報を編集して組み立て、Ｌｙｅｅプログラムの中心のソースである処理経路図およびＬｙｅｅＢＥＬＴを生成する。［６」においては、ＬｙｅｅＢＥＬＴの旧言語を新言語へ変換する処理が行われ、［７］においては、その新ＬｙｅｅＢＥＬＴからＬｙｅｅ構造プログラムまたは従来構造プログラムへの編集が行われる。
（２）個々のプロセスの流れ
［１］事前の実行可能性の調査
事前の作業として、下記の情報を調査し、これらを変換する必要があるかどうか決定する。
１．内部サブルーチン情報（パラメータ情報）
２．外部プログラム情報（パラメータ情報）
３．組み込み関数、システムおよびユーザ・マクロ情報
４．（ミドルソフトウェアに対する）システムのＡＰＩコマンド
５．言語提供ライブラリ
６．定義体内蔵情報
プログラムを構成するすべてのリソースが、調査分析作業の対象となる。あるルーチンがどのソース・プログラムで記述されているか、またはレコード形式または電文形式などの定義体フォーマットがどのソース・プログラムで記述されているのかについての情報（リンク情報）のすべてが必要である。事前に各言語に対してこの情報を抽出する作業サポート・ツールを準備する必要がある。【００２２】  作業サポート・ツールは、上記に示されたリンク情報および分析言語の字句解析と構文解析を外部パラメータとして指定することにより、様々な言語に対処できるように、作成時に注意を払う。加えて行う調査項目としては、画面の新環境への移植性またはＤＢＭＳの情報、または運用制御情報がある。言語変換作業の際には、旧言語と新言語の命令変換対応表を事前に作成し、簡単に変換できない命令については、新言語で同様の処理を行う類似の関数およびサブモジュールを作成する必要がある。さらに、ある場合には、新言語に対処するために、新単語を追加する場合もある。例えば、ビット操作および文字列操作の命令は、処理言語により様々である。それ故、新言語に対するビット操作や文字列操作の関数やサブルーチンを作成しなければならない。旧言語で関数およびコンポーネントが過度に使用されている場合には、新言語でそれらすべてを置き換える方法の方針を決定しなければならない。事前に解体するのか、または新しい関数およびコンポーネントを作成するのかについての結論を出さなければならない。
［２］従来型プログラムのリフォーム（プログラム正規化）
ソース・プログラムは、下記の再フォーマット規則を適用して、いったん解体し、次に後で分析しやすい形に整形される。我々はこのプロセスを正規化と呼ぶ。正規化を行う目的は、プログラムの多様性を排除するために、従来型プログラムの整形を行って言語特性をできるだけ除去することである。正規化により、後のレガシー・システム変換処理のために必要な情報を機械的に取り出し易くなり、Ｌｙｅｅ方法論の構成要素も容易にアセンブルすることができるようになる。これは、主として、ルーチン・プロセスのブロック、条件付き判断構造、ループ構造を編集することである。この作業は、レガシー・システム変換の最初に行われるプログラム編集タスクである。その後行う分析プロセスでは、正規化後ソース・コードを分析することによって、単語の生成式と対応する実行条件から最終的にＰＲＤ（処理経路図）情報およびＬｙｅｅＢＥＬＴ情報を作成する。たとえば、ある端点単語（ｓｅｌｆ−ｗｏｒｄ）は、始点単語１（ｇｉｖｅｎ−ｗｏｒｄ  １）、始点単語２（ｇｉｖｅｎ−ｗｏｒｄ  ２）から成る、などである。正規化プロセスとして、ソース・プログラムの字句解析や項目解析、定義体分析、構文解析、フロー整形処理が必要となる。【００２３】  上記分析作業の結果の後、下記の６つのタイプの整形規則でプログラムを整形する。
＊整形規則１；１行化
＊整形規則２；フィルタリング（不要文字の削除）
＊整形規則３；演算子変換
＊整形規則４；予約（命令）語の共通化
＊整形規則５；隠蔽単語の検出およびデータ抽出
＊整形規則６；構造整形（逐次処理、分岐処理およびループ処理の３種類の処理形態に整形して分類）
＜構造再フォーマット（構造整形）の種々の（整形）パターン＞
図２乃至４は、本発明の一実施形態に係る構造再フォーマット（構造整形）の種々の（整形）パターンを説明する図である。
＜単階層化整形（一種の構造整形）＞
単階層化整形は、プログラム内で呼ばれる（ＰＥＲＦＯＲＭ、ＣＡＬＬされる）内部サブプログラムや外部サブルーチンを取り込み、それらを全く省略しないソース・プログラムを作ることである。ここで、内部サブプログラムおよび外部サブルーチンを解体するかどうかは、それらの中に端点単語に対する定義処理が含まれているかどうかで決まる。（なぜなら、端点単語はＬｙｅｅ方法論のベクトルであるので、分解してＬｙｅｅ構造の中に再構成することが要求されるからである）。【００２４】  プログラム内部で共通化されたブロックや、複数の箇所から引用されているサブルーチンは、呼ばれている箇所に再配置され、その処理の流れが上から下に流れる構造になる。単階層化で組み込まれる外部サブルーチンのパラメータ名がメインプログラムとは異なることを考慮し、変数（パラメータ）の割り当て命令の追加を行う。【００２５】  図５は、本発明の一実施形態に係る単階層化整形を説明するための図である。【００２６】  同図に示すように、単階層化を行う前に、プログラム内にループ構造が存在する場合には、ループ処理はそのまま残る。しかし、ループから出る条件とループに入る条件が明確であれば、全体の流れからループ処理を切り離して、１本のストリームとして容易に処理順序をとらえることができる。その結果、ループ処理は、Ｌｙｅｅ方法論のパレットや基本構造の中の再起処理に置き換えられ、最終的には削除される。
このようにして、構造整形と単階層化による正規化によって、スパゲッティ状態の従来プログラムを規則性のある１本のストリーム状態に変換し、プログラム内に現われる始点単語と端点単語の成立順序と依存関係を機械的に捉えることが可能となる。
［３］解析用抽出データテーブル（データ解析）
前記に示したリフォーム（プログラム正規化）処理により得られた解析情報を整理し、以下のような形式のテーブルを作成する。解析結果として、ループブロックの範囲とＩＦブロックの階層が明確にされ、それらのレベルを明確に明細表記する。【００２７】  説明のために、図６に実際の解析のためのテーブルの一例を示す。【００２８】  解析テーブルで表わされるＩＦ文のネスト構造は要件のネスト構造であり、あるネストで使用される命令は、１階層前のネストを前提条件としている。同一ネスト内の命令は、並列関係や順序列で規定された継続関係を持ち、言いかえれば、このことは、上記関係は、同一同期構造内の単語関係が成立している状態であることを意味する。従って、ＩＦ文のネストは、同期構造の多重層を捉えたものということができる。上記結果を後の解析処理に利用することになる。解析テーブルが示すすべての情報は下記の通りである。
［４］処理経路図作成
作成した解析テーブルから、処理経路図を作成するのに必要な情報を抽出し、処理経路図を作成する。決定すべき処理経路図情報は、下記のＡ〜Ｈの情報であるが、処理の留意点は、正規化された解析テーブルから基本構造の単位を括りだし、それらを単語の関係からの整合性をもってリンクすることである。
Ａ．処理経路図名、ＩＤ
Ｂ．基本構造名、ＩＤ
Ｃ．親基本構造名、ＩＤ
Ｄ．経路作用要素（継続経路、重複経路、多重経路）
Ｅ．論理体名、ＩＤ
Ｆ．定義体名、ＩＤ
Ｇ．入出力属性
Ｈ．定義体種別（画面／ファイル／帳票／メモリ／電文）
図７は、本発明の一実施形態に係る処理経路図の作成手順を説明するための図である。【００２９】  同図に示すように、処理経路図の作成手順は下記の通りである。
１．最初に、正規化した解析テーブルからＩ／Ｏ命令を探し出し、出力定義体（出力論理体）に着目する。それは、定義体（論理体）の出力によって実行された処理が一旦途切れ、Ｌｙｅｅ方法論における同期範囲の帰結点が出現することを意味する。
２．次に、１つの出力定義体（出力論理体）による１つの出力命令毎に、基本構造を解析テーブルの下位から順番に配置（継続配置）していく。（これはＬｙｅｅ方法論の端点ネットワーク主義の規則に基づき、ここでは最終目的となるファイルは先に配置する。）加えて、解析テーブルで順番が同等のレベルで出現する出力命令については、同一レベルの基本構造配置（並列配置）を行う。
３．次に、出力定義体（出力論理体）に含まれる単語（端点単語）を決定し、端点単語を定義している命令を探し出し、その始点単語を決定する。端点単語と始点単語のネットワークが捉えらえる。
４．さらに、始点単語を含む定義体（論理体）を決定し、それが入力定義体（入力論理体）なのか、または出力定義体（出力論理体）なのかを確認する。それが入力定義体（入力論理体）である場合には、始点単語が属する入力定義体（入力論理体）を、出力定義体（出力論理体）が属する基本構造に割り当てる。出力定義体（出力論理体）である場合には、定義体（論理体）が属する基本構造を、端点単語の定義体（論理体）が属する基本構造の下位に配置する。この場合、始点単語には２種類ある。１つは、端点単語の生成式にセットされる元のデータという意味でのデータ依存の始点単語であり、もう１つは、ある値を端点単語にセットしてよいかどうかを判定する実行条件に現われる制御依存の始点単語である。
５．始点単語にワーク単語が存在する場合には、当該ワークを端点単語とする命令を探し出し、命令の始点単語の追跡により定義体を特定する。追跡は、始点単語がリテラル値（定数）の場合は、そこで終了する。いかなる種類のワーク単語も、入力または出力の定義体（論理体）、またはリテラル値に繋がることは明らかである。
６．出力定義体（出力論理体）に画面がある場合には、規則により画面は必ず最上位のレベルに配列する。さらに、複数の画面定義体が現われる場合には、解析テーブルの下位から順番に同様に配列する。基本構造を連鎖状にリンクすることは、Ｌｙｅｅ方法論の経路作用要素を決めることと同じである。後で端点単語と始点単語の関係の見直しがなければ、処理経路図は上記によって決定される。
７．処理経路図は以上の処理によって作成されるが、ここで、Ｌｙｅｅ方法論の規則を適用する。互いに参照される入力ファイルの作用要素は省略できる。何故なら、継続連鎖で隣接する２つの基本構造は同期しているからである。さらに、非同期状態の基本構造間に参照関係が必要な場合には、参照のために境界単語を設ける。
８．さらに、必須ではないが、処理経路図の縮約規則により複数の基本構造を１つに縮約することができる。
因みに、上記の場合における元プログラムのフローチャート、及び端点単語と始点単語との関係表を図８に示す。【００３０】  上記説明により、処理経路図を下記のように作成することができる。【００３１】  図９乃至１１は、本発明の一実施形態に係る処理経路図の作成方法を示す図である。
［５］旧ＬｙｅｅＢＥＬＴの生成
解析テーブルから端点単語に着目し、下記に示す手順で単語に関する生成論理（論理スライス、すなわち定義式および実行条件）が抽出される。最初に、単語を決定し、解析テーブルを上から探索し、決定した単語を端点単語とする命令文を抽出する。次に、それらの命令実行に影響を持つＩＦ文を、ソートされたＩＦ文の階層に基づいて抽出する。単語が解析テーブルに複数回現われる場合は、それら全てについて同じ作業を行って命令文とＩＦ文を探し出す。【００３２】  図１２は、本発明の一実施形態に係るＬｙｅｅＢＥＬＴの作成の動作・方法・考え方等を説明するための図である。【００３３】  同図に示すように、このようにして抽出される論理スライスは、下記のケース毎にチェックし、修正する。
ケース１
ＩＦ文のない論理スライスの場合、他のＩＦ文と反対の条件を作成、これをＩＦ文とする。この手段により、値がセットされない条件の漏れが防止される。
ケース２
自分自身の単語がＩＦ文に含まれている論理スライスの場合には、Ｌｙｅｅ方法論の原理に基づいて、自身の単語を別の単語に置換え、置換えた単語の生成式および実行条件を別に作成する。上記手順により、従来のプログラム中で人が好き勝手に単語の上書きや使いまわしの傾向がある処理を、複数の単語による処理に分解する。最終的には、処理の順序性がなくなり、独立した単語定義が成立する。
ケース３
ＩＦ文に使用する始点単語の実行条件が端点単語の実行条件と同じで、消去可能な論理スライスの場合には、ある端点単語のＩＦ文に現われる始点単語が端点単語になるような条件を見つけ出すのがよい。最初の端点単語の条件と比較したときに任意の重複条件が存在する場合、重複条件を縮約することが望ましい。【００３４】  ここで、図１３は、本発明の一実施形態に係る「ＩＦ」文の数の最小化を説明するための図である。【００３５】  上記論理スライスを確定させる他に、単語の座標（どの基本構造、どの定義体に属するかの情報）を決めて、ＬｙｅｅＢＥＬＴに反映する。単語の座標は、処理経路図から決定される。最初に、各基本構造から、ＬｙｅｅＢＥＬＴを生成する。ＬｙｅｅＢＥＬＴ情報は下記の別表の内容となる。整理された内容から生成したＬｙｅｅＢＥＬＴの有効性のチェックが可能になる。主要なＬｙｅｅＢＥＬＴの妥当性チェック内容は次の表１乃至３に示す通りである。【００３６】
【表１】
2005029321.tif 000002
【００３７】
【表２】
2005029321.tif 000003
【００３８】
【表３】
2005029321.tif 000004
キーの抽出分析
先に説明したＬｙｅｅＢＥＬＴには、領域をクリアする要素の情報は明確にされていない。ファイルのデータをレコード単位に処理を繰り返すような場合、メモリ領域をリセットするのに構造作用要素（作用要素の１つ）が必要になる。ある種のレガシー・プログラムにもある種のクリア処理があるが、必ず存在するわけではなく、ある場合には、上書きをしながらメモリ領域をクリアする。従って、レガシー・プログラム中にクリア命令を見つけ出すのでは充分でないので、他の観点からクリア命令を必要とする時点を発見する必要がある。Ｌｙｅｅ方法論の場合には、同期処理の起点は構造作用要素によって起動され、構造作用要素は、メモリ領域がその任務を完了したことによってクリアされるように働く。【００３９】  最初に、すべての入力単語は始点単語として使用され、単語に新たな入力データをセットする時点が同期点である。これは、レガシー・プログラムの入力キーのブレークタイミングに等しい。さらに、出力単語の場合には、出力が終了する時点が同期点に等しい。このことは、出力単語のクリアは出力作用要素の中で行われることがわかる。【００４０】  集計単語のような単語に十分注意を払わなければならない。なぜならこのような単語は、出力後も保持され、他の場所でも使用されるからである。このような場合、集計単語が完全に任務を終了する時点を捉えなければならない。従って、従来プログラムを分析して単語が任務を終えた時点を決定しなければならないが、キーの分析が有効であることが分かっている。
キーの分析
メモリ領域のクリアタイミングに係わるキーの分析の結果、次の４種類のキーが存在する。アクセスキー、入力同期キー、合成キー、および出力同期キーである。【００４１】  アクセスキーは、ファイルまたはＤＢ（データベース）を参照する場合の主キーの項目であり、通常のファイルには、各ファイルのアクセスキーが存在する。アクセスキーが決まれば、当該キーが空でないという実行条件で、入力作用要素を作成することができる。合成キーは、入力ファイルのすべてのアクセスキーからなるキーである。合成キーは、基本構造毎に複数の入力ファイルの論理レコードを１つの論理体として処理するための補助情報であり、処理単位は、入力ファイルの最小の論理レコード単位に合わせる。【００４２】  入力同期キーは、２つ以上のファイルが１つの基本構造に入力された場合の、合成キーに対して依存関係（同じ入力タイミング）を持つ項目である。【００４３】  出力同期キーは、合成キーの構成項目の１つが変化するタイミングで、出力タイミングが発生する場合のその構成項目のことである。これらのキーを分析するためにソース・プログラムを解析し、ループ内の入力／出力命令、そのときのキーのセット内容、またはブレークキー項目を詳細に把握する。【００４４】  再度入力ファイルを読み始めるためのきっかけとなるキーブレークの項目は、入力同期キーで、一方、出力ファイルを出力するきっかけとなる項目は、出力同期キーである。【００４５】  上記ですべてのＬｙｅｅＢＥＬＴ情報が決定される。
［６］旧ＬｙｅｅＢＥＬＴから新ＬｙｅｅＢＥＬＴへの言語変換
でき上ったＬｙｅｅＢＥＬＴ（旧）を言語変換し新しいＬｙｅｅＢＥＬＴが作成される。この変換時に適用される変換規則は、下記の５つの規則である。すなわち、
変換規則ｃ：Ｉ／Ｏコマンドの変換規則
変換規則ｄ：領域の統合規則
変換規則ｅ：領域の分割規則
変換規則ａ：属性の例外変換規則
変換規則ｂ：演算式の変換規則
上記変換規則が使用する変換パラメータは、下記の１０種類である。
１．共通記述情報定義
２．定義領域名記述定義
３．データ型定義
４．条件文定義
５．設定文指定定義
６．演算子指定定義
７．名称定義指定
８．パラメータ属性指定
９．データ型変換定義
１０．演算変換定義
［７−１］Ｌｙｅｅ構造プログラムの組み立て（テンプレート）
新Ｌ／Ｂ（ＬｙｅｅＢＥＬＴ）ができれば、テンプレートを用いてＬｙｅｅ方法論構造のプログラムを、自動プログラム生成することが可能である。
［７−２］従来構造プログラムの編集（機能編集）
従来構造プログラムへの変換は、新Ｌ／Ｂに対して機能編集パラメータを適用して、行われる。
（１）制御構造の決定および作成
従来構造のプログラムも、ＬｙｅｅＢＥＬＴ情報から作ることができる。まず、従来プログラムは９種類の構造パターンに分類できることが分かっている。さらに、それらを１つの従来構造に統合することができる。これを「基本フロー」と呼ぶ。この基本フローを制御構造の一般的システムとして利用し、ＬｙｅｅＢＥＬＴから従来プログラムへの変換に際して、この基本フローの分析結果を適用する。
（２）従来構造プログラムの編集（機能編集）
上記「基本フロー」を使用することにより、全ての従来構造の処理パターンを、処理経路図に従うことによって実現することができる。【００４６】  本稿においては、紙面の都合で（１）および（２）の詳細な説明は省略する。
５．Ｌｙｅｅレガシー・システム変換ツール
図１４は、レガシー・システム変換を可能にするツールのグループ関係を示す。【００４７】  同図に示すように、全ツールの構成（実行の流れ）は下記の通りである。
１．ソース・プログラムの正規化を行うリフォーム・プログラム
２．処理経路図およびＬｙｅｅＢＥＬＴを生成するためのＬｙｅｅＢＥＬＴ作成プログラム
３．Ｌｙｅｅ構造のベクトル生成を行う要素生成プログラム
４−１．従来プログラムへの変換を、機能編集パラメータを使って行う機能編集プログラム
４−２．Ｌｙｅｅプログラムを生成する要素組立プログラム（テンプレート）
３の要素生成による言語変換を行う場合には、目的言語に応じた変換用パラメータを組み込み、任意の言語が変換可能となるしくみを構築する。【００４８】  ４−１の従来プログラムへの編集は、従来処理の処理パターンを確認し、これを処理経路図上にマッピングすることにより、従来型と等しい機能を持つ従来型プログラムに変換をする。しかし、これによって生成されるプログラム・コードは、もとのソース・コードと同じにはならない。【００４９】  上記ツール・グルーブは、新規開発にも部分的に適用され、処理経路図およびＬｙｅｅＢＥＬＴを生成した後で、Ｌｙｅｅ構造プログラムか従来型プログラムかを選択することが可能である。
６．種々のシステム変更要求に対する対処手段
（１）システム基盤の変更
システム基盤にはＯＳ（オペレーティング・システム）、ＤＢＭＳ（データベース・マネジメント・システム）および画面通信、ミドルソフトウェア等があるが、レガシー・システム変換ではこれらシステム基盤の更新が要求されることがある。これらのニーズに対して、ミドルソフトウェアとビジネス・アプリケーション・プログラムとの境界、またはＯＳとビジネス・アプリケーション・プログラムの境界、またはＯＳとミドルソフトウェアとの境界について十分な調査を行わなければならない。これによって、旧プログラムを、新システム基盤で動作する新プログラムに変換する実現方法を確認する実行可能性を見極める。古いシステム基盤上においては開発を必要としなかった機能に対しても、新しい環境上で新プログラムを動作させるために、機能、マクロおよびサブモジュールの開発が必要になる場合がある。このような目的で新しく作成したプログラムの場合には、ＬｙｅｅＢＥＬＴ作成前にテストを行う必要があり、Ｉ／Ｆパラメータを単語として登録してＬ４、Ｌ３を記述しなければならない。【００５０】  旧ＬｙｅｅＢＥＬＴを完成した後、それを新ＬｙｅｅＢＥＬＴに変換する場合には、言語特性を考慮して、新しい環境上で新プログラムが動作するように種々の手段を行うことが好ましい。このようにして、旧ＬｙｅｅＢＥＬＴと新ＬｙｅｅＢＥＬＴとの間の違いがハッキリし、追跡がやり易くなる。
（２）旧システムの要件の大規模変更
レガシー・システム変換の目的は、最初のものに対する基盤修正であると思われるが、一般的には、この機会に、ビジネス要件の修正も合わせて行われる。この場合、旧システム仕様書を使用することができるが、Ｌｙｅｅ方法論の特性を利用して、新ＬｙｅｅＢＥＬＴ上で修正要件を反映するほうが得策で、高い生産性を保証できる。ここで、新ＬｙｅｅＢＥＬＴに同様に反映される旧プログラム上のワーク単語に留意すべきである。何故なら、それらを削除することができるのかどうか判断して、ワーク単語を適切に処理することが重要になるからである。旧プログラムで使用したワーク単語は、ある意図により作成されたものだが、実際には、それを理解するのは難しく、最終的には、その存在は保守を複雑にする傾向がある。新ＬｙｅｅＢＥＬＴで保守を行う処理中に、可能な限りワーク単語を削除することが望ましい。また、できれば、新しい要件にはワーク単語が存在しないことが望ましいが、要件に従って個々に判断する必要がある。
（３）旧システムでの運用方針の変更
レガシー・システム変換の要求においては、プログラムの変更と同じように、運用システム資源（ＪＣＬまたはＣＬ）を変更しなければならない場合が多い。何故なら、基盤が修正されるからである。ある場合には、運用資源を変更したためにプログラムをどうしても修正しなければならないことがある。運用資源の変更作業の整理やプログラムの修正の考慮が必要な問題点を明らかにするために、事前調査が必要である。運用資源の変換作業は、プログラムの変換ほど面倒ではないので、適当な変換ツールを準備して対処できる。
７．Ｌｙｅｅレガシー・システム変換の残された問題
（１）カスタマイズ・ツール
現在のツールは、旧プログラムの対応する言語および仕様によってカスタマイズしなければならない。カスタマイズは、分析に基づいてパラメータを指定することにより行われる。それ故、必要な場合には何時でも、システム変換毎に機能および変換ロジックを追加することになっている。また、ほとんどの部分に対して旧プログラムの機械的解析が可能だが、ツールが完全には対処できないいくつかの部分が存在する。言うまでもないことだが、さらなる改善が必要である。
（２）処理言語の拡大
現時点で対応可能な言語は、単語領域が静的で、単語定義が容易な言語である。それ故、メモリ・アドレスを直接操作するアセンブラのような言語で単語を捉えるための規則を明確にするようなさらなる研究が期待される。【００５１】  しかし、内容を明確にできる限り、原則的にはメモリ操作言語を分析することができる。それにもかかわらず、命令の使い方によって、メモリ領域が複数の役割をかねている場合があるので、これを複数の単語に分解する方法を研究しなければならない。ツールで単語の複数化の問題が解決されれば、レガシー・システム変換の用途が広がる。
（３）従来プログラムの不正ロジックの検出
多くの場合、保守による残骸として不要なロジックが、変換対象のプログラムに混入する。残骸を検出し、事前に除去すれば、変換後プログラムの保守が容易になる。しかし、不要なロジックを除去するための機械的検出方法はまだ確立されていない。さらに、変換対象のプログラムに含まれている冗長なロジックおよびバグを検出するための方法を開発するのは将来の課題である。この問題を解決する１つの方法が示唆されているが、その方法というのは、変換後にＬ３ベクトル（プログラム）内に出現するＩＦ文の必要十分性をチェックするという方法である。【００５２】  しかし、この目的のために、Ｌ３内に現れる等価のＩＦ文の論理をチェックし、論理の漏れおよび反復があるかどうかを機械的に確認するために、いくつかの仕組みを考案しなければならない。ＩＦ文を確認するのは理論的には可能であるが、それを行うことができるツールはまだ開発されていない。
（４）従来プログラムのビジネス要件の整理
すでに説明したように、長期間にわたって何回も保守を受けたプログラムの中には、ＩＦ条件が冗長であり、それらを設定する理由がもはや明確でないものが多い。完成した新しいソース・プログラムを人間が解釈した後で、ＩＦ文をスリムにすることができる。しかし、始点単語と端点単語との関係およびその対応するＩＦ条件により、解釈が機械的にできる場合には、要件の機械的整理を行うことができる。これは将来の開発のもう１つの課題である。
８．結論
主としてプログラムの機能に焦点を当てている従来のレガシー変換方法と比較すると、Ｌｙｅｅアプローチは、プログラムのデータ結合に焦点を当てている。Ｌｙｅｅのデータ結合アプローチによって従来プログラムを捉えるために、最初に単語単位をベースとする分析を行い、分析したデータのセットをテーブル形式に編集し、これによって対応するデータをベクトル（Ｌｙｅｅの単語単位プログラム）に割り当てるのである。分析結果の表からの処理経路図およびＬｙｅｅＢＥＬＴの作成は、原則的には技術的な困難はないが、構造作用要素（メモリをクリアするための機能要素）を作成するために、種々のタイプのいくつかのキーを探し出さなければならない。このプロセスは従来プログラムを変換するときに最も重要であるが、従来プログラムは各個人の能力による任意のやり方で作られていたのである。構造作用要素を生成することは、Ｌｙｅｅ特有の仕様において最も根本的な要素である。Ｌｙｅｅ用語でいう同期の概念を成立させるために構造作用要素を完璧に作成することが不可欠であり、そうすることによりデータ結合が達成される。【００５３】  Ｌｙｅｅの単語プログラムの７ボックスプログラム構造の第１のボックス（規約）により、プログラムの順序を考えることから解放され、それにより、データ結合処理は、旧プログラムの順序ロジックから影響を受けることがなくなり、新プログラムは順序の制限を受けないことが可能になる。最終的には、Ｌｙｅｅのレガシー・システム変換で行うべきことは、必要な単語と対応する定義式（旧）とそれに付随する実行条件を取り出すことだけである。しかし、従来プログラムの処理順序は、仮の実行条件でもあるので、論理要素の実行条件を見つけ出すために、単階層化整形によりプログラムを正確に分析し、把握することが非常に重要である。定義式および実行条件（論理スライス）を取り出した後で、処理経路図の規則によりその配置方法が決定される。そこでは、データ結合構造および機能構造（ファイルの入力および出力、単語の計算）が離れないで協力して動作するように同じ基本構造内に置かれる。これにより、機能とデータ結合との間のねじれを軽減するための手段が提供される。まとめると、Ｌｙｅｅ構造は、単語により機能の最小化を実現し、同時に単語により最小のデータ結合を定義し、次に両方を構成するようなメカニズム、すなわち、処理経路図を提供する。【００５４】  この研究を通して、Ｌｙｅｅ方法論を使用すれば、ほぼ機械的なレガシー・システム変換が可能で、またＬｙｅｅＢＥＬＴおよび処理経路図で従来法で編集したプログラムを生成することができることが明らかになった。【００５５】  それ故、ソフトウェアの再生産サイクルは、従来プログラムをＬｙｅｅＢＥＬＴにし、このＬｙｅｅＢＥＬＴを従来プログラムに戻すという方法で実現できる。これにより、レガシー・システムが抱えている問題が大幅に解決される。【００５６】  Ｌｙｅｅ方法論による種々のタイプの変換の試みが、種々のタイプの言語および／またはシステム・インフラストラクチャにより引き続き行われるであろう。そして、そのたびに、ツールおよび手順に適当な改善が追加されれば、近い将来、このレガシー・システムの変換アプロ���チが、市場にある現在のシステムを再構成するための魅力のある選択になるだろう。【００５７】  ここで、Ｌｙｅｅにおいて、特に処理経路図等の考えかたについては、特願２００４−２７２４００、特にその「００８９」項から「０１０２」項で開示される事項を引用することとし、またそのほかＬｙｅｅの発明については、ＰＣＴ／ＪＰ０３／０１９５８８、ＰＣＴ／ＪＰ０３／１２２８４、特願２００３−３３０７２、特願２００３−３４６４４２及び特願２００３−３３１３７３で開示される事項を引用することとし、開示を構成させるものとする。また、Ｌｙｅｅで主に用いられる用語を以下に説明する。
［用語の説明］
＜ビジネス知識＞
ここでは、単語の値を生成するための定義式および計算条件、すなわちビジネスロジックを指している。たとえば、単語「原価率」の定義式「原価÷販売価格」などである。
＜端点単語と始点単語＞
単語ａの値が、生成式「単語ｂ＋単語ｃ」で生成されるという場合、ａを端点単語、ｂおよびｃを始点単語と呼ぶ。
＜論理体と定義体＞
コンピュータの入出力処理は、データ単位ではなく、データの集合単位に行われるが、同時に同一の定義体に対して入力または出力処理される単語の値の集合をＬｙｅｅでは論理体と呼んでいる。【００５８】  定義体は、画面、ファイル、帳票、メモリテーブル、電文など、単語の値を保持する単位である。
＜継続配置＞
基本構造を、処理経路図の左から右へと、１つの同期範囲に属するように配置していくこと。
＜継続経路、重複経路、多重経路＞
経路とは、パレットの実行順序の道筋のこと。それぞれ、Ｗ０３パレットの経路作用要素Ｒ３が、次の実行先パレットとして、他の基本構造のパレットを指定するときの、実行順序を示している。継続経路は、下位の基本構造（子の基本構造）のＷ０４パレットが実行先として指定されることを意味する。重複経路は、上位の基本構造（親の基本構造）のＷ０３パレットが次の実行先として指定されることを意味する。多重経路とは、Ｗ０３パレットから上位の基本構造のＷ０４パレットが次の実行先として指定されることを意味する。
＜ワーク単語＞
出力単語であるが、他の出力単語の始点単語として値を用いるためだけに生成される単語で、定義体に出力されることを目的とされない単語
＜集計単語＞
ファイルから単語Ａの値を１レコードづつ読みこみ、単語Ａの各レコードの値を集計して合計を計算する、という要件があった場合、従来法ではＡの合計値であるＫの計算式は下記のように表わされる。
Ｋ＝Ｋ＋Ａ
しかし、Ｌｙｅｅでは、一度値が決定された単語の値を上書きして変えることはできないので、前回の合計を保持しておくために集計単語をもうけて、集計を実現する。【００５９】  従来法で上記Ｋ＝Ｋ＋Ａとなるような集計は、Ｌｙｅｅでは集計単語Ｘをもうけて、下記のように実現する。
Ｋ（合計）＝集計単語Ｘ＋Ａ
Ｘ集計単語＝Ｋ（合計）
集計単語には、集計のための一時的な領域（集計領域と呼ぶ）が確保される。
＜等価単語＞
出力単語の値を生成する定義式が複数あり、どの定義式を実行して値を生成するかは、定義式ごとに与えられた計算条件の判定によって決定するように要件が与えられている場合がある。この場合、論理要素Ｌ４およびＬ３は、それぞれ定義式と計算条件の数だけ設けられる。１つの出力単語には１つの値だけが決定されるので、論理要素が複数設けられても、計算条件が真となって実行される定義式は、１回のイベントによる同期範囲に１つだけである。このように複数の定義式と計算条件のペアを持つ出力単語を等価単語と呼ぶ。１つの定義式と計算条件のペアを持つ出力単語は正規単語と呼ぶ。
＜境界単語＞
出力単語Ａの定義式または計算条件の始点単語Ｂの値が、出力単語Ａと異なる基本構造内で生成される場合、始点単語Ｂの値が生成された時点で、出力
単語Ａの基本構造内に値を保持しておくためにもうけるもうける単語。
なお、本発明は、上述した実施形態および実施例には限定されず、本発明の技術思想の範囲内で様々な変形が可能である。たとえば、ビジネス・メソッド、ソフトウェア開発装置、ソフトウェア開発支援装置、ソフトウェア開発管理装置、あるいはこれらの機能をコンピュータに実現するためのソフトウェア並びに該ソフトウェアを搭載した記録媒体・専用機、などとしてもそれぞれ実現することが可能である。さらに、上記で説明したように本発明は、方法としても、或いはかかる機能を備えるソフトウェアとしても、該ソフトウェアが搭載される装置・ツール（ソフトウェア自体の場合も含む）としても、さらにはシステムとしても、実現され得るのはもとよりである。【００６０】  さらに本願発明は、その技術思想の同一及び等価に及ぶ範囲において様々な変形、追加、置換、拡大、縮小等を許容するものである。また、本願発明を用いて生産される装置、方法、ソフトウェア、システムが、その２次的生産品に登載されて商品化された場合であっても、本願発明の価値は何ら減ずるものではない。
【産業上の利用可能性】
【００６１】  ソフトウェアの再生産サイクルは、従来プログラムをＬｙｅｅＢＥＬＴにし、このＬｙｅｅＢＥＬＴを従来プログラムに戻すという方法で実現できる。これにより、レガシー・システムが抱えている問題が大幅に解決される。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の概要を概念的に説明するためのフローチャートである。
【図２】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の構造整形のうちのＷＨＥＮ整形（ＣＡＳＥ整形）の動作を説明するためのフローチャートである。
【図３】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の構造整形のうちのＧＯＴＯ文整形の動作を説明するためのフローチャートである。
【図４】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の構造整形のうちのＬＯＯＰブロック整形の動作を説明するためのフローチャートである。
【図５】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の単階層化を説明するための概念図である。
【図６】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法の解析のためのテーブルの一例を示す図である。
【図７】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して処理経路図の作成方法を概念的に説明するための図である。
【図８】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して一例における元プログラムのフローチャート及び、端点単語と始点単語の関係表である。
【図９】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して処理経路図の作成方法を概念的に説明するための図である。
【図１０】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して処理経路図の作成方法を概念的に説明するための図である。
【図１１】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して処理経路図の作成方法を概念的に説明するための図である。
【図１２】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関してＬｙｅｅＢＥＬＴの作成方法を概念的に説明するための図である。
【図１３】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換方法に関して「ＩＦ」文の数の最小化を概念的に説明するための図である。
【図１４】本発明の一実施形態に係るＬｙｅｅ方法論のレガシー・システム変換ツールの概要を説明するための図である。
【符号の説明】
【００６３】  Ｐｉ  変換対象のプログラム
Ｐｊ  従来型プログラム
１    リフォームプログラム
２    ＬｙｅｅＢＥＬＴ作成プログラム
３    スケルトン
４−１  機能編集パラメータ
４−２  要素組立
【図１】
2005029321.tif 000005
【図２】
2005029321.tif 000006
【図３】
2005029321.tif 000007
【図４】
2005029321.tif 000008
【図５】
2005029321.tif 000009
【図６】
2005029321.tif 000010
【図７】
2005029321.tif 000011
【図８】
2005029321.tif 000012
【図９】
2005029321.tif 000013
【図１０】
2005029321.tif 000014
【図１１】
2005029321.tif 000015
【図１２】
2005029321.tif 000016
【図１３】
2005029321.tif 000017
【図１４】
2005029321.tif 000018
【国際調査報告】
2005029321.tif 000019
2005029321.tif 000020
2005029321.tif 000021
2005029321.tif 000022