JP6653205B2 - プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム - Google Patents

プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム Download PDF

Info

Publication number
JP6653205B2
JP6653205B2 JP2016069300A JP2016069300A JP6653205B2 JP 6653205 B2 JP6653205 B2 JP 6653205B2 JP 2016069300 A JP2016069300 A JP 2016069300A JP 2016069300 A JP2016069300 A JP 2016069300A JP 6653205 B2 JP6653205 B2 JP 6653205B2
Authority
JP
Japan
Prior art keywords
program source
maintenance
current
syntax
new
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.)
Active
Application number
JP2016069300A
Other languages
English (en)
Other versions
JP2017182491A (ja
Inventor
佳範 城代
佳範 城代
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.)
Hitachi Social Information Services Ltd
Original Assignee
Hitachi Social Information Services Ltd
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 Hitachi Social Information Services Ltd filed Critical Hitachi Social Information Services Ltd
Priority to JP2016069300A priority Critical patent/JP6653205B2/ja
Priority to CN202111308206.7A priority patent/CN113986253A/zh
Priority to CN201780022206.6A priority patent/CN109074254B/zh
Priority to PCT/JP2017/011471 priority patent/WO2017170045A1/ja
Publication of JP2017182491A publication Critical patent/JP2017182491A/ja
Application granted granted Critical
Publication of JP6653205B2 publication Critical patent/JP6653205B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、現行システムから新システムへのシステム移行を伴うソフトウェア開発の技術に関する。
現行システムから新システムへのシステム移行において、例えば、プログラムのコンバージョン開発という作業がある。コンバージョン開発では、現行システムに用いられる現行プログラムソースのプログラム言語(例:COBOL(COmmon Business Oriented Language))を別のプログラム言語(例:JAVA(登録商標))に置き換えて、新システムに用いられる新プログラムソースを作成する。
コンバージョン開発の途中段階で、現行システムの保守開発が実施される場合がある。大規模システムのコンバージョン開発であれば、長期の作業となるため、コンバージョン開発の途中段階での保守開発は複数回に及ぶこともある。保守開発が実施された場合、開発途中の新システムに対して追いつき作業を実施する。追いつき作業とは、一度作成し、システムテストまで終えた新システムの新プログラムソースに、保守開発によって発生したプログラム修正変更分を反映させる作業をいう。追いつき作業は、必須であるとはいえ、コンバージョン開発の作業量を増大させ、システム移行の遅延化を招くので、作業工数を低減化し早期に終了させたいという要望がある。しかし、保守開発ではコンバージョン開発の設計内容が基本的には考慮されないため、追いつき作業の作業工数を見積もることが困難であり、作業工数の低減化は決して容易でない。
特許文献1には、検証対象プログラムが、指定した内部仕様を満足するか否かを、抽象構文木を用いて検証するプログラム検証装置について開示されている。
特開2011−215998号公報
しかし、特許文献1には、追いつき作業に関する上記問題やその解決策について記載も示唆もない。その結果、プログラムのコンバージョン開発が行われるシステム移行の早期化を実現することができない。
そこで、本発明は、このような事情に鑑みてなされたものであり、保守開発が行われる現行システムから新システムへのシステム移行の早期化を実現することを目的とする。
前記目的を達成するために、本発明の情報処理装置は、
第1のプログラムソースを第2のプログラムソースに変換するプログラムソース変換装置が、
前記第1のプログラムソースを解析して許容される許容ルールをチェックするコードチェックツールを作成する工程と、
前記第1のプログラムソースを前記第2のプログラムソースに変換する工程と、
前記第1のプログラムソースに保守開発があった場合に、前記保守開発された第1のプログラムソースを、前記コードチェックツールを用いてチェックし、前記保守開発された第1のプログラムソースを前記変換済みの第2のプログラムソースに反映するための方針を決めるための、前記許容ルール外の用法を抽出する工程と、
前記方針に基づいて前記保守開発された第1のプログラムソースを第2のプログラムソースに変換して前記変換済みの第2のプログラムソースに合流させる工程と、を実行する、
ことを特徴とする。
その他の手段については後記する。
本発明によれば、保守開発が行われる現行システムから新システムへのシステム移行の早期化を実現することができる。
本発明を適用しない場合のシステム移行を示すシーケンスである。 本発明を適用した場合のシステム移行を示すシーケンスである。 移行開発環境におけるコンバージョン開発の詳細手順、および、現行システム保守開発環境における保守開発の詳細手順を示すフローチャートである。 リバース装置の機能構成図である。 コードチェックツールの機能構成図である。 保守後現行プログラムソース判定処理(構文の場合)を示すフローチャートである。
以下、本発明の好適な例となる実施形態について添付の図面を参照しながら詳細に説明する。
≪概要≫
[従来のシステム移行]
図1に示すように、比較例となる、プログラムのコンバージョン開発が行われるシステム移行は、例えば、現行システム用サーバ1、現行システム保守用PC(Personal Computer)2、テストサーバ2t、リポジトリ用サーバ3、新システム保守用PC4、テストサーバ4t、コンバージョン開発用サーバ5、テストサーバ5t、および、新システム用サーバ6の間で情報のやり取りが行われることで実現される。
現行システム用サーバ1は、現行プログラムソースP1(保守前現行プログラムソース)を読み込んで、現行システムの本番運用に供する処理を行うサーバである。現行システム用サーバ1は、現行システム本番環境下にあって、例えば、コンバージョン開発者の顧客先に設置されている。
現行プログラムソースP1は、現行システム用のプログラムのソースコードである。現行プログラムソースP1は、例えば、COBOLで記述されているが、他の言語で記述してもよい。
なお、本明細書にて、保守開発されたか否かにかかわらず現行プログラムソースを「第1のプログラムソース」と呼び、現行システムを「第1のシステム」と呼ぶ場合がある。
現行システム保守用PC2は、現行プログラムソースP1を修正して保守済現行プログラムソースP2を作成するサーバである。保守済現行プログラムソースP2は、保守開発が完了した現行プログラムソースP1に等しい。保守済現行プログラムソースP2は、現行プログラムソースP1と同じ言語で記述されている。
テストサーバ2tは、保守済現行プログラムソースP2の動作確認のテストを行うサーバである。
現行システム保守用PC2およびテストサーバ2tは、現行システム保守開発環境下にあって、例えば、コンバージョン開発業者の顧客先に設置されている。
なお、保守開発とは、現行システムに発生した障害を引き起こすバグの修正などの非予定的な作業を含んだり、法改正に伴うプログラムの仕様変更などの予定的な作業を含んだりする。
リポジトリ用サーバ3は、リソース管理用サーバである。リポジトリ用サーバ3は、現行プログラムソースP1、保守済現行プログラムソースP2、新プログラムソースP3、および、保守済新プログラムソースP4を保存して管理している。
新プログラムソースP3は、新システム用のプログラムのソースコードである。
保守済新プログラムソースP4は、保守開発が完了した新プログラムソースP3に等しい。
リポジトリ用サーバ3は、リソース管理環境下にあって、例えば、顧客先に設置されている。なお、リソース管理環境は、現行システム保守開発環境、または、後記する新システム保守開発環境が兼ねるようにしてもよい。換言すれば、現行システム保守用PC2、または、新システム保守用PC4がリポジトリ用サーバ3として機能するように設計することができる。
新システム保守用PC4は、新プログラムソースP3を修正して保守済新プログラムソースP4を作成するサーバである。
テストサーバ4tは、保守済新プログラムソースP4の動作確認のテスト(システムテスト)を行うサーバである。
新システム保守用PC4およびテストサーバ4tは、新システム保守開発環境下にあって、例えば、顧客先に設置されている。
コンバージョン開発用サーバ5は、現行プログラムソースP1のプログラム言語を別のプログラム言語に置き換えて、新プログラムソースP3を作成するサーバである。新プログラムソースP3は、例えば、JAVAで記述されているが、他の言語で記述してもよい。
テストサーバ5tは、新プログラムソースP3の動作確認のテストを行うサーバである。
コンバージョン開発用サーバ5およびテストサーバ5tは、移行開発環境下にあって、例えば、コンバージョン開発者先に設置されている。
新システム用サーバ6は、保守済新プログラムソースP4を読み込んで、新システムの本番運用に供する処理を行うサーバである。新システム用サーバ6は、新システム本番環境下にあって、例えば、顧客先に設置されている。
なお、本明細書にて、保守開発されたか否かにかかわらず新プログラムソースを「第2のプログラムソース」と呼び、新システムを「第2のシステム」と呼ぶ場合がある。
図1におけるシステム移行の手順は以下のとおりである。
まず、ステップA1にて、現行システム用サーバ1は、リポジトリ用サーバ3から取得した現行プログラムソースP1を読み込んで、本番運用を行っている。
次に、ステップA2にて、コンバージョン開発用サーバ5は、リポジトリ用サーバ3から取得した現行プログラムソースP1に対して、現行システムのコンバージョン開発を行い、新プログラムソースP3を作成する。また、テストサーバ5tが新プログラムソースP3の動作確認のテストを行う。テストサーバ5tにてテストを終えた新プログラムソースP3は、新システム保守用PC4に保存される。
次に、ステップA3にて、現行システム保守用PC2は、リポジトリ用サーバ3から取得した現行プログラムソースP1を修正し、保守開発を行い、保守済現行プログラムソースP2を作成する。また、テストサーバ2tが保守済現行プログラムソースP2の動作確認のテストを行う。ステップA3は、ステップA2が完了する前にステップA2に並行して1または複数回行われる(並行保守)。テストサーバ2tにてテストを終えた保守済現行プログラムソースP2は、リポジトリ用サーバ3に保存される。
次に、ステップA4にて、テストサーバ4tは、新プログラムソースP3のシステムテストを行う。具体的には、テストサーバ4tは、システムテストとして、新プログラムソースP3として出力されたコンバージョン結果の確認を行う。テストサーバ4tにてシステムテストを終えた新プログラムソースP3は、リポジトリ用サーバ3に保存される。
次に、ステップA5にて、現行システム用サーバ1は、リポジトリ用サーバ3から取得した保守済現行プログラムソースP2を読み込んで、保守済の内容で本番運用を開始する。
次に、ステップA6にて、コンバージョン開発用サーバ5は、リポジトリ用サーバ3から取得した保守済現行プログラムソースP2を読み込んで、追いつき作業を行う。具体的には、コンバージョン開発用サーバ5は、現行プログラムソースP1と保守済現行プログラムソースP2との差分を、ステップA3の保守開発によるプログラム変更修正分として特定する。また、コンバージョン開発用サーバ5は、特定したプログラム変更修正分に対して、保守済となった現行システムのコンバージョン開発を行う。また、コンバージョン開発用サーバ5は、保守済となった現行システムのコンバージョン開発の結果物を新プログラムソースP3に反映させて保守済新プログラムソースP4を作成する。「保守済となった現行システムのコンバージョン開発の結果物を新プログラムソースP3に反映」させることは、ステップA2での最初のコンバージョン開発の設計を並行保守に対応させるという工程をとることを意味する。また、テストサーバ5tが保守済新プログラムソースP4の動作確認のテストを行う。テストサーバ5tにてテストを終えた保守済新プログラムソースP4は、新システム保守用PC4に保存される。
次に、ステップA7にて、テストサーバ4tは、保守済新プログラムソースP4のシステムテストを行う。具体的には、テストサーバ4tは、システムテストとして、保守済新プログラムソースP4として出力されたコンバージョン結果の確認を行う。テストサーバ4tにてシステムテストを終えた保守済新プログラムソースP4は、リポジトリ用サーバ3に保存される。
次に、ステップA8にて、システム移行が行われる(符号M1)。具体的には、ステップA5にて、現行システム用サーバ1が行っていた保守済の内容での本番運用を終了するとともに、新システム用サーバ6が、リポジトリ用サーバ3から取得した保守済新プログラムソースP4を読み込んで、保守済の内容で本番運用を開始する。
次に、ステップA9にて、現行システム用サーバ1は、保守済現行プログラムソースP2を用いて、保守済の内容でバックアップ運用を開始する。
ステップA6の追いつき作業の作業量は、ステップA3の保守開発での現行プログラムソースP1のプログラム変更修正の結果に依存する。従来では、保守開発ではコンバージョン開発の設計内容が基本的には考慮されないため(保守開発業者は保守開発の都合を優先し、コンバージョン開発のことは気に留めないため)、保守開発での現行プログラムソースP1のプログラム変更修正の実現方式はさまざまである。例えば、保守開発にて移行設計が対象としていない新たな(COBOLの)命令語を用いてプログラムを修正することがある(当該「修正」は、新たな「命令語」を用いた修正、および、新たな「命令語の使い方」を用いた修正、の両方の意味を含む)。この場合、コンバージョン開発の移行設計の修正が必要となる。コンバージョン(プログラム言語の変換)の大半は、所定の変換ツール用いて機械的に行うことができるが、コンバージョン開発の移行設計が修正された場合、この移行設計の修正に対応するように変換ツールを修正する必要がある。また、修正した変換ツールを用いてコンバージョンを行う際、修正した変換ツール自体の動作確認のテストを事前に行う必要がある。これらの作業が追い付き作業に伴う場合があるため、コンバージョン開発側で追いつき作業の作業量を予測し、追いつき作業の作業工数を見積もり、低減化することは容易でない。
なお、非常に複雑な変換手順に関しては、開発コストの観点から、変換ツールを用いず手作業でコンバージョンを行うことがある。現行プログラムソースP1のうちコンバージョン手作業部分に保守開発の修正があったとする。この場合、コンバージョン開発の移行設計の修正がなかったとしても、追いつき作業にて、保守開発の修正結果に合わせたコンバージョンが手作業でなされ、正しくコンバージョンなされたか否かのテストが行われる。
[本実施形態のシステム移行]
上記のような事情に鑑みて、本実施形態では、図2に示す手順をとる。図2に示すように、本実施形態での、プログラムのコンバージョン開発が行われるシステム移行は、図1に示す比較例と同様、例えば、現行システム用サーバ1、現行システム保守用PC2、テストサーバ2t、リポジトリ用サーバ3、新システム保守用PC4、テストサーバ4t、コンバージョン開発用サーバ5、テストサーバ5t、および、新システム用サーバ6の間で情報のやり取りが行われることで実現される。以下、図1との相違点を中心的に述べて、本実施形態でのシステム移行について説明する。
ステップA2の序盤にて、ステップB1が行われる。ステップB1にて、コンバージョン開発用サーバ5は、コンバージョン開発で前提とするプログラム構文(以下、単に、「構文」と称する場合がある)を決定した後、構文を反映した設計基準10およびコードチェックツール20を作成する。
設計基準10は、新プログラムソースP3の設計基準であり、システム移行の移行設計(後記)の必要条件をまとめて記述したものである。
コードチェックツール20は、現行システム保守用PC2での保守開発のコーディング(後記)に用いられるツールである。コードチェックツール20の詳細は後記する。
その後、ステップA3(図1)の代わりにステップB2が行われる。ステップB2にて、現行システム保守用PC2は、保守開発を行い、保守済現行プログラムソースP2を作成する際、コンバージョン開発用サーバ5から取得した、設計基準10およびコードチェックツール20を用いて、コンバージョン開発を前提とした(考慮した)構文などを利用する。現行システム保守用PC2は、作成した保守済現行プログラムソースP2に対して、コードチェックツール20を動作させ設計基準10から逸脱した構文などが利用されたか否かを判定する。現行システム保守用PC2は、設計基準10から逸脱した構文などが存在する場合は、設計基準10から逸脱した構文などが存在しないように保守済現行プログラムソースP2を作成してもよい。どうしても設計基準10から逸脱した構文などが保守開発に必要となる場合は、現行システム保守用PC2は、そのような構文などをまとめて記述した基準外一覧30を作成する。基準外一覧30は、保守済現行プログラムソースP2を新プログラムソースP3に反映するための方針を決めることができる。基準外一覧30の詳細は後記する。
その後、ステップA2の終盤にて、ステップB3が行われる。ステップB3にて、基準外一覧30が存在する場合には、コンバージョン開発用サーバ5は、現行システム保守用PC2から取得した基準外一覧30を反映させて新プログラムソースP3を作成する。
ステップB4の追いつき作業は、ステップA6(図1)の追いつき作業と同等の作業である。コンバージョン開発用サーバ5は、基準外一覧30の方針に基づいて、保守済現行プログラムソースP2をコンバージョンし、新プログラムソースP3に合流させる。
コンバージョン開発(ステップA2)は、設計基準10に即して行われる。このため、保守開発にて、設計基準10に即した態様で保守済現行プログラムソースP2が作成されれば基準外一覧30は作成されない。その結果、追いつき作業(ステップB4)では、システム移行の移行設計に関する部分を省略することができる。
また、保守開発にて、設計基準10から逸脱した態様で保守済現行プログラムソースP2が作成され、基準外一覧30が作成されたとしても、基準外一覧30の構文などに対応した、システム移行の移行設計を、ステップB3の段階で、つまり、追いつき作業(ステップB4)に先行して行うことができる(追いつき作業の先取り)。従来(図1)では、追いつき作業(ステップA6)にて、保守開発の成果物としての保守済現行プログラムソースP2を取得して構文解析などをした後でないと、基準外一覧30の構文などに相当する構文などを特定することができず、この特定した構文などに対応した、システム移行の移行設計を行うことができなかった。
上記のように、追いつき作業(ステップB4)の一部分を省略することができたり、コンバージョン開発の段階で先行してシステム開発の移行設計を行うことができたりする。その結果、ステップA6(図1)の追いつき作業と比較して、追いつき作業(ステップB4)の工期短縮や工数削減を達成することができ、本実施形態のシステム移行(符号M2)を、従来(図1参照)のシステム移行(符号M1)から繰り上げることができる(システム移行の早期化)。
なお、ステップB1での、設計基準10およびコードチェックツール20の作成に要する期間や、ステップB3での基準外一覧30の反映に要する期間は、追いつき作業の短縮期間に比べて無視できるほど短い。
上記のステップB1,B3,B4を実行するコンバージョン開発用サーバ5、および、ステップB2を実行する現行システム保守用PC2は、本発明のプログラムソース変換装置を構成し、本発明のプログラムソース変換方法を実行する。
[コンバージョン開発の詳細、保守開発の詳細]
図3を参照して、移行開発環境におけるコンバージョン開発の詳細手順、および、現行システム保守開発環境における保守開発の詳細手順について説明する。
図3の左側に示すように、コンバージョン開発用サーバ5およびテストサーバ5tが配置されている移行開発環境では、移行性分析(ステップB11)、移行設計(ステップB12)、リバース(ステップB13)、プログラム変換(ステップB31)、変換テスト(ステップB32)、プログラム変換(ステップB41)、および、テスト(ステップB42)がこの順序で実行される。
移行性分析(ステップB11)では、現行プログラムソースP1の構文解析などが行われる。
移行設計(ステップB12)では、コーディングルール(例:変数命名、メソッドやクラスの設定)の設定などが行われる。移行設計(ステップB12)によって設計基準10が作成される。
リバース(ステップB13)では、公知技術のパーサに移行設計(ステップB12)の結果を反映(リバース)することで、コードチェックツール20を作成する。
上記の移行性分析(ステップB11)、移行設計(ステップB12)、リバース(ステップB13)は、ステップB1(図2)にて実行される。
プログラム変換(ステップB31)では、現行プログラムソースP1で使用されているプログラム言語を別のプログラム言語に変換して、新プログラムソースP3を作成する。
変換テスト(ステップB32)では、テストサーバ5tによる新プログラムソースP3のテストを行う。
上記のプログラム変換(ステップB31)および変換テスト(ステップB32)は、ステップB3(図2)にて実行される。
プログラム変換(ステップB41)では、保守済現行プログラムソースP2で使用されているプログラム言語を別のプログラム言語に変換して、保守済新プログラムソースP4を作成する。
テスト(ステップB42)では、テストサーバ5tによる保守済新プログラムソースP4のテストを行う。
上記のプログラム変換(ステップB41)および変換テスト(ステップB42)は、ステップB4(図2)にて実行される。
図3の右側に示すように、現行システム保守用PC2およびテストサーバ2tが配置されている現行システム保守開発環境では、基本設計(ステップB21)、詳細設計(ステップB22)、コーディング(ステップB23)、および、テスト(ステップB24)がこの順序で実行される。
基本設計(ステップB21)では、現行プログラムソースP1の修正変更部分およびその部分の修正事項を決定する。基本設計(ステップB21)にて、設計基準10を適宜参照する。
詳細設計(ステップB22)では、設計基準10になるべく即した態様でコーディングルールの設定などが行われる。詳細設計(ステップB22)が完了すると、保守済現行プログラムソースP2が作成される。
コーディング(ステップB23)では、作成された保守済現行プログラムソースP2に対して、コードチェックツール20の出力結果を含めたコーディングレビューを行う。コーディングレビューは、繰り返し行われ、保守済現行プログラムソースP2に含まれるバグなどが取り除かれる。
テスト(ステップB42)では、テストサーバ2tによる保守済現行プログラムソースP2のテストを行う。テスト(ステップB42)が完了すると、動作確認が保証された保守済現行プログラムソースP2が作成される。
上記の基本設計(ステップB21)、詳細設計(ステップB22)、コーディング(ステップB23)、および、テスト(ステップB24)は、ステップB2(図2)にて実行される。
≪構成≫
[リバース装置]
図4を参照して本実施形態のリバース装置R(情報処理装置)について説明する。リバース装置Rは、リバース(図3のステップB13)を行う装置であって、コンバージョン開発サーバ5の一部となる装置である。リバース装置Rは、入力部、出力部、制御部、および記憶部といったハードウェアを含むコンピュータである。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現される。また、そのコンピュータが含む記憶部は、CPUの指令により、そのコンピュータの機能を実現するためのさまざまなプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供することができる。
リバース装置Rは、パーサ部r1(パーサ手段)と、設定部r2(設定手段)と、編集部r3と、ツール作成部r4(ツール作成手段)とを備える。パーサ部r1と、設定部r2と、編集部r3と、ツール作成部r4は、リバース装置Rの制御部の具体的な機能部である。また、リバース装置Rは、コードチェックプログラム14を備える。コードチェックプログラム14は、コードチェックツール20の一部を構成しており、コードチェックツール20の処理内容が記述されたプログラムソースである。コードチェックプログラム14は、リバース(図3のステップB13)にて作成され、リバース装置Rの記憶部に記憶されている。
(パーサ部r1)
パーサ部r1は、現行プログラムソースP1の構文解析を行う。現行プログラムソースP1の構文解析が完了すると、パーサ部r1は、現行プログラムソースP1に使用されているトークンおよび構文を特定することができる。パーサ部r1は、特定したトークンを保守前トークン一覧P1aとして出力し、特定した構文を保守前構文一覧P1bとして出力する。パーサ部r1は、プログラム言語ごとに用意することができる。
(設定部r2)
設定部r2は、新プログラムソースP3の設計基準10に基づいて、新プログラムソースP3に使用することが許可されている情報を許可情報11として設定する。許可情報11が示す許可とは、新プログラムソースP3を作成するコンバージョン開発側から保守済現行プログラムソースP2を作成する保守開発側に対する許可であり、追いつき作業(図2のステップB4)の短縮の観点から、保守済現行プログラムソースP2に対して、許可情報11に示す情報は使用してもよいことを意味する。
許可情報11は、追加トークン許可情報11a、追加構文許可情報11b、および、追加文字列許可情報11cを備える。
追加トークン許可情報11aは、新プログラムソースP3に使用することが許可されているトークンを示す情報である。
追加構文許可情報11bは、新プログラムソースP3に使用することが許可されている構文を示す情報である。
追加文字列許可情報11cは、新プログラムソースP3に使用することが許可されている文字列を示す情報である。「文字列」とは、例えばコメント文であり、プログラムソースに用いられるコードのうちプログラムの動作に寄与しないものである。本明細書にて「文字列」という語は、左記の意味で用いることにする。
例えば、現行プログラムソースP1に使用されているトークン、構文、文字列は、コンバージョン開発の開発対象とする情報であるため、許可情報11とすることが好ましい(保守前トークン一覧P1a中のトークンおよび保守前構文一覧P1b中の構文は許可情報11に分類される)。ただし、現行プログラムソースP1に使用されているトークン、構文、文字列の一部を許可情報11に含めないようにすることを妨げるものではない。また、コンバージョン開発側で、現行プログラムソースP1に使用されているトークン、構文、文字列以外のトークン、構文、文字列を適宜用意し、許可情報11に追加してもよい。
また、設定部r2は、新プログラムソースP3の設計基準10に基づいて、新プログラムソースP3に使用することが禁止されている情報を禁止情報12として設定する。禁止情報12が示す禁止とは、新プログラムソースP3を作成するコンバージョン開発側から保守済現行プログラムソースP2を作成する保守開発側に対する禁止であり、追いつき作業(図2のステップB4)の短縮の観点から、保守済現行プログラムソースP2に対して、禁止情報12に示す情報は使用してほしくない(または使用してはならないということにしてもよい)ことを意味する。
禁止情報12は、追加トークン禁止情報12a、追加構文禁止情報12b、および、追加文字列禁止情報12cを備える。
追加トークン禁止情報12aは、新プログラムソースP3に使用することが禁止されているトークンを示す情報である。
追加構文禁止情報12bは、新プログラムソースP3に使用することが禁止されている構文を示す情報である。
追加文字列禁止情報12cは、新プログラムソースP3に使用することが禁止されている文字列を示す情報である。
例えば、現行プログラムソースP1に使用されているトークン、構文、文字列は、コンバージョン開発の開発対象とする情報であるため、禁止情報12としないことが好ましい。ただし、現行プログラムソースP1に使用されているトークン、構文、文字列の一部を禁止情報12に含めるようにすることを妨げるものではない。また、コンバージョン開発側で、所定のトークン、構文、文字列を適宜用意し、禁止情報12に追加してもよい。
上記した許可情報11および禁止情報12は、保守開発上の許容ルールを構成し、コンバージョン開発側から保守開発側に提示される。
(編集部r3)
編集部r3は、パーサ部r1から出力した、保守前トークン一覧P1aおよび保守前構文一覧P1b、並びに、設定部r2から出力した、許可情報11および禁止情報12を、所望の形式にまとめるように編集する。編集部r3は、まとめた情報をチェック情報13として出力する。
(ツール作成部r4)
ツール作成部r4は、チェック情報13とコードチェックプログラム14とをパッケージ化することで、コードチェックツール20(ツール)を作成する。
ツール作成部r4が作成したコードチェックツール20、および、移行設計(図3のステップB12)によって作成された設計基準10は、現行システム保守開発環境のテストサーバ2tにインストールされる(図2参照)。なお、コードチェックツール20および設計基準10を、現行システム保守開発環境の現行システム保守用PC2にインストールしてもよい。
[コードチェックツール20の詳細]
図5に示すように、コードチェックツール20は、すでに説明したチェック情報13に加えて、パーサ部21および判定部22を備える。パーサ部21および判定部22は、コードチェックプログラム14を構成する。
(パーサ部21)
パーサ部21は、保守後現行プログラムソースP5の構文解析を行う。保守後現行プログラムソースP5とは、保守開発によって、現行プログラムソースP1が暫定的にまたは確定的に修正変更されたものである。具体的には、保守後現行プログラムソースP5は、コーディング(図3のステップB23)が途中であるときや完了したときの(テスト前の)保守済現行プログラムソースP2であったり、テスト(図3のステップB42)が完了したときの保守済現行プログラムソースP2であったりする。
パーサ部21は、保守後現行プログラムソースP5の構文解析が完了すると、保守後現行プログラムソースP5に使用されているトークンおよび構文を特定することができる。パーサ部21は、特定したトークンを保守後トークン一覧P5aとして出力し、特定した構文を保守後構文一覧P5bとして出力する。パーサ部21は、プログラム言語ごとに用意することができる。
(判定部22)
判定部22は、保守後現行プログラムソースP5に許可情報11および禁止情報12が使用されているか否かを判定する。具体的には、判定部22に、保守後トークン一覧P5a、保守後構文一覧P5b、および、コードチェックツール20が有するチェック情報13(図4)を入力する。また、保守後トークン一覧P5aとチェック情報13に含まれる保守前トークン一覧P1aとの差分を特定し、保守後構文一覧P5bとチェック情報13に含まれる保守前構文一覧P1bとの差分を特定する。また、特定したこれらの差分が許可情報11に分類されるか否か、かつ、禁止情報12に分類されるか否かを判定する。なお、判定部22の判定処理の詳細は後記する。
判定部22は、上記の判定の判定結果23をテストサーバ2tに出力させる。許可情報11に示されていない情報が保守後現行プログラムソースP5に使用されている、または、禁止情報12に示される情報が保守後現行プログラムソースP5に使用されているとき、判定部22は、使用されているこれらの情報の一覧を、基準外一覧30(図2参照)として判定結果23に含める。
なお、判定部22による判定は、パーサ部21による構文解析を行った後に行うこともできるし、その構文解析を行いながら行うこともできる。
また、判定部22は、トークンおよび構文だけでなく、文字列に対しても上記と同様の判定を行うことができる。具体的には、まず、コードチェックツール20は、周知の技術によって、保守後現行プログラムソースP5から文字列を抽出し、保守後文字列一覧P5cを作成する。また、判定部22に、保守後文字列一覧P5cおよびチェック情報13(図4)を入力する。また、保守後文字列一覧P5cに含まれる文字列の各々が、許可情報11に分類されるか否か、かつ、禁止情報12に分類されるか否かを判定する。判定部22は、文字列に関して判定結果23をテストサーバ2tに出力させる。許可情報11に示されていない情報が保守後文字列一覧P5cに使用されている、または、禁止情報12に示される情報が保守後文字列一覧P5cに使用されているとき、判定部22は、使用されているこれらの情報の一覧を、基準外一覧30(図2参照)として判定結果23に含める。
(判定部22の判定処理)
図6に示すように、判定部22が保守後現行プログラムソースP5に対して行う、保守後現行プログラムソース判定処理は以下のとおりである。図6では、保守後現行プログラムソースP5の保守後構文一覧P5bに含まれる構文について説明する。
まず、ステップS1にて、判定部22は、許可情報11の追加構文許可情報11bが、保守後構文一覧P5bを包含するか否かを判定する。包含する場合(ステップS1でYes)、保守後構文一覧P5b中の構文のすべてが、新プログラムソースP3に使用することが許可されている構文であることを意味しており、ステップS2に進む。一方、包含していない場合(ステップS1でNo)、保守後構文一覧P5b中の構文の少なくとも1つが、新プログラムソースP3に使用することが許可されていないことを意味しており、ステップS4に進む。
次に、ステップS2にて、判定部22は、禁止情報12の追加構文禁止情報12bと、保守後構文一覧P5bとが互いに疎であるか否かを判定する。互いに疎である場合(ステップS2でYes)、保守後構文一覧P5b中の構文のいずれも、新プログラムソースP3に使用することが禁止されている構文に該当しないことを意味しており、ステップS3に進む。一方、互いに疎でない場合(ステップS2でNo)、保守後構文一覧P5b中の構文の少なくとも1つが、新プログラムソースP3に使用することが禁止されていることを意味しており、ステップS4に進む。
次に、ステップS3にて、判定部22は、保守後構文一覧P5b中の構文が、許可情報11の追加構文許可情報11bのみから構成されている(設計基準10に従っている)ことを示すOK判定を出力する。
また、ステップS4にて、判定部22は、保守後構文一覧P5b中の構文には、許可情報11の追加構文許可情報11bに該当しない構文が含まれている、または、禁止情報12の追加構文禁止情報12bに該当する構文が含まれている(設計基準から逸脱している)ことを示すNG判定を出力する。
ステップS4の後、ステップS5では、判定部22は、保守後構文一覧P5b中の構文のうち、NG判定の要因となった構文を抽出し、基準外一覧30(許容ルール外の用法)に追加する。
次に、ステップS6では、判定部22は、OK判定およびNG判定を合わせた判定結果23をテストサーバ2tに出力させる。
判定結果23は、移行開発環境のコンバージョン開発用サーバ5およびテストサーバ5tに送信される。コンバージョン開発側では、判定結果23を踏まえて、新プログラムソースP3を作成することができる。
なお、上記の判定部22の処理の説明は、構文に関するものであったが、トークンおよび文字列の場合も同様のロジックで処理することができる。つまり、保守後構文一覧P5b中のトークンが許可情報11の追加トークン許可情報11aのみから構成されているか否かが判定される。また、保守後構文一覧P5b中の文字列が許可情報11の追加文字列許可情報11cのみから構成されているか否かが判定される。
(まとめ)
本実施形態によれば、現行プログラムソースP1のプログラム言語を変換して新プログラムソースP3を作成するコンバージョン開発と、現行プログラムソースP1の保守開発が並行している場合において、新プログラムソースP3に使用することが許可および禁止されている許可情報11および禁止情報12を設定し、コードチェックツール20によって、保守開発した保守後現行プログラムソースP5に許可情報11および禁止情報12が使用されているか否かを判定する。これにより、その判定結果に基づいて、保守開発によるプログラム修正変更分を的確に把握してから新プログラムソースP3のシステムテストなどを行うことができ、保守済現行プログラムソースP2に対する追いつき作業(図2のステップB4)の作業工数の見積もりを容易にするとともに、追いつき作業の工期短縮や工数削減(低減化)を達成することができる。
したがって、保守開発が行われる現行システムから新システムへのシステム移行の早期化を実現することができる。
また、コードチェックツール20によって、保守後現行プログラムソースP5に基準外一覧30が存在しないこと、または、基準外一覧30が存在する場合にはその基準外一覧30をコンバージョン開発側で取得することができる。これにより、基準外一覧30が存在しなければ、保守済現行プログラムソースP2に対する追いつき作業では、システム移行の移行設計に関する部分を省略することができる。また、基準外一覧30が存在していたとしても、システム移行の移行設計を、追いつき作業に先行して行うことができる。その結果、追いつき作業のさらなる工期短縮や工数削減を達成することができる。
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)、(b)のようなものがある。
(a):現行プログラムソースのプログラム言語の変換というコンバージョン開発に限られず、同じ種類のサービスを提供するが、地域別に多少なりともプログラムソースの中身を変更する必要のあるシステム開発に適用することができる。つまり、A地域にて運用されているシステムの現行プログラムソースを利用してB地域にて運用する予定の新プログラムソースを作成する場合、A地域の現行プログラムソースの保守開発によるプログラム修正変更分を把握してから、B地域用の新プログラムソースの追いつき作業に取り掛かることができる。結果的に、その追いつき作業の作業量を低減させ、追いつき作業の工期短縮や工数削減を達成することができる。
(b):本実施形態では、ステップB3(図2)は、ステップA2の一部であるとし、追いつき作業(ステップB4)に先行して行われるものとして説明した。しかし、ステップB3を、ステップA2の一部とせず、ステップA2の後段の作業とし、追いつき作業(ステップB4)の前段の作業として取り扱ってもよい。この場合、新プログラムソースP3は、ステップA2の作業の結果物となり、ステップB3の作業の結果物とはならない。また、この場合、ステップB3は、コンバージョン開発用サーバ5が、ステップA2にて作成された新プログラムソースP3に、現行システム保守用PC2から取得した基準外一覧30を反映させる作業となる。ステップB3は、ステップA2と並行実施されるように取り扱うことができる。また、ステップB3とステップB4を合わせた作業を追いつき作業として取り扱うこともできる。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
2 現行システム保守用PC
2t テストサーバ(テスト装置)
5 コンバージョン開発用サーバ
5t テストサーバ
P1 現行プログラムソース(保守前現行プログラムソース)
P2 保守済現行プログラムソース
P3 新プログラムソース
P4 保守済新プログラムソース
P5 保守後現行プログラムソース
10 設計基準
11 許可情報
12 禁止情報
13 チェック情報
20 コードチェックツール
21 パーサ部
22 判定部
23 判定結果
30 基準外一覧
R リバース装置(情報処理装置)
r1 パーサ部(パーサ手段)
r2 設定部(設定手段)
r3 編集部
r4 ツール作成部(ツール作成手段)

Claims (6)

  1. 第1のプログラムソースを第2のプログラムソースに変換するプログラムソース変換装置が、
    前記第1のプログラムソースを解析して許容される許容ルールをチェックするコードチェックツールを作成する工程と、
    前記第1のプログラムソースを前記第2のプログラムソースに変換する工程と、
    前記第1のプログラムソースに保守開発があった場合に、前記保守開発された第1のプログラムソースを、前記コードチェックツールを用いてチェックし、前記保守開発された第1のプログラムソースを前記変換済みの第2のプログラムソースに反映するための方針を決めるための、前記許容ルール外の用法を抽出する工程と、
    前記方針に基づいて前記保守開発された第1のプログラムソースを第2のプログラムソースに変換して前記変換済みの第2のプログラムソースに合流させる工程と、を実行する、
    ことを特徴とするプログラムソース変換方法。
  2. 第1のプログラムソースを第2のプログラムソースに変換するプログラムソース変換装置において、
    前記第1のプログラムソースを解析して許容される許容ルールをチェックするコードチェックツールを作成する手段と、
    前記第1のプログラムソースを前記第2のプログラムソースに変換する手段と、
    前記第1のプログラムソースに保守開発があった場合に、前記保守開発された第1のプログラムソースを、前記コードチェックツールを用いてチェックし、前記保守開発された第1のプログラムソースを前記変換済みの第2のプログラムソースに反映するための方針を決めるための、前記許容ルール外の用法を抽出する手段と、
    前記方針に基づいて前記保守開発された第1のプログラムソースを第2のプログラムソースに変換して前記変換済みの第2のプログラムソースに合流させる手段と、を備える、
    ことを特徴とするプログラムソース変換装置。
  3. 保守前現行プログラムソースの構文解析を行い、前記保守前現行プログラムソースに使用されているトークンおよび構文の一覧を作成するパーサ部と、
    新プログラムソースの設計基準に基づいて、前記新プログラムソースに使用することが許可されているトークン、構文、および文字列を示す許可情報、ならびに、前記新プログラムソースに使用することが禁止されているトークン、構文、および文字列を示す禁止情報を設定する設定部と、
    保守後現行プログラムソースに前記許可情報および前記禁止情報が使用されているか否かを判定するためのツールを作成するツール作成部と、を備える、
    ことを特徴とする情報処理装置。
  4. 前記ツール作成部が作成したツールは、
    前記保守後現行プログラムソースのテストを行うテスト装置にて動作した場合、前記許可情報に示されていない情報が前記保守後現行プログラムソースに使用されている、または、前記禁止情報に示される情報が前記保守後現行プログラムソースに使用されているとき、前記使用されているこれらの情報の一覧を、前記テスト装置に出力させる、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 情報処理装置が、
    保守前現行プログラムソースの構文解析を行い、前記保守前現行プログラムソースに使用されているトークンおよび構文の一覧を作成するステップと、
    新プログラムソースの設計基準に基づいて、前記新プログラムソースに使用することが許可されているトークン、構文、および文字列を示す許可情報、ならびに、前記新プログラムソースに使用することが禁止されているトークン、構文、および文字列を示す禁止情報を設定するステップと、
    保守後現行プログラムソースに前記許可情報および前記禁止情報が使用されているか否かを判定するためのツールを作成するステップと、を実行する、
    ことを特徴とする情報処理方法。
  6. コンピュータを、
    保守前現行プログラムソースの構文解析を行い、前記構文解析に基づいて、前記保守前現行プログラムソースに使用されているトークンおよび構文の一覧を作成するパーサ手段、
    新プログラムソースの設計基準に基づいて、前記新プログラムソースに使用することが許可されているトークン、構文、および文字列を示す許可情報、ならびに、前記新プログラムソースに使用することが禁止されているトークン、構文、および文字列を示す禁止情報を設定する設定手段、
    保守後現行プログラムソースに前記許可情報および前記禁止情報が使用されているか否かを判定するためのツールを作成するツール作成手段、
    として機能させるためのプログラム。
JP2016069300A 2016-03-30 2016-03-30 プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム Active JP6653205B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016069300A JP6653205B2 (ja) 2016-03-30 2016-03-30 プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム
CN202111308206.7A CN113986253A (zh) 2016-03-30 2017-03-22 信息处理装置、信息处理方法和记录介质
CN201780022206.6A CN109074254B (zh) 2016-03-30 2017-03-22 程序源转换方法、程序源转换装置
PCT/JP2017/011471 WO2017170045A1 (ja) 2016-03-30 2017-03-22 プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016069300A JP6653205B2 (ja) 2016-03-30 2016-03-30 プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム

Publications (2)

Publication Number Publication Date
JP2017182491A JP2017182491A (ja) 2017-10-05
JP6653205B2 true JP6653205B2 (ja) 2020-02-26

Family

ID=59964446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016069300A Active JP6653205B2 (ja) 2016-03-30 2016-03-30 プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム

Country Status (3)

Country Link
JP (1) JP6653205B2 (ja)
CN (2) CN113986253A (ja)
WO (1) WO2017170045A1 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02245875A (ja) * 1989-03-20 1990-10-01 Fujitsu Ltd 情報変換管理制御方式
TWI259969B (en) * 2004-05-18 2006-08-11 Carry Computer Eng Co Ltd Method and system for show store apparatus volume label word
JP4115511B1 (ja) * 2007-05-08 2008-07-09 株式会社システムズ プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
JP2012053657A (ja) * 2010-09-01 2012-03-15 Systems:Kk 情報処理装置、情報処理方法、及びプログラム
JP2012059026A (ja) * 2010-09-09 2012-03-22 Hitachi Ltd ソースコード変換方法およびソースコード変換プログラム
CN103942140A (zh) * 2013-12-19 2014-07-23 江苏锐天信息科技有限公司 一种测试程序自动转换方法
CN105426711B (zh) * 2015-11-18 2018-05-15 北京理工大学 一种计算机软件源代码相似度检测方法

Also Published As

Publication number Publication date
CN109074254B (zh) 2021-12-24
JP2017182491A (ja) 2017-10-05
CN113986253A (zh) 2022-01-28
WO2017170045A1 (ja) 2017-10-05
CN109074254A (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
CN106528100B (zh) 用于安全关键软件开发的基于模型的技术和过程的系统和方法
US20110258601A1 (en) Method and apparatus for the performing unit testing of software modules in software systems
JP6268029B2 (ja) テストケース生成装置及びテストケース生成方法
KR101408870B1 (ko) Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법
US8326867B2 (en) Apparatus for generating job network flow from job control statement described in job control language and its method
WO2015159501A1 (ja) 検証性質統合装置、検証性質統合方法および検証性質統合プログラムが記録された記憶媒体
Paiva et al. End-to-end automatic business process validation
US20150020051A1 (en) Method and apparatus for automated conversion of software applications
JP6653205B2 (ja) プログラムソース変換方法、プログラムソース変換装置、情報処理装置、情報処理方法、および、プログラム
WO2004051470A1 (ja) プログラム自動変換方法およびプログラム自動変換装置
JP2008305079A (ja) 要求仕様自動検証方式
JP6058498B2 (ja) コンパイル方法、プログラム及びコンパイル装置
JP2014164677A (ja) 仕様検証支援装置、仕様検証支援方法及びプログラム
JP2008293382A (ja) テスト仕様自動生成方式
Jongeling et al. Co-evolution of simulink models in a model-based product line
Lin et al. Support for safety case generation via model transformation
CN117709256B (zh) 一种验证信息的生成方法、装置、电子设备及存储介质
Correia et al. Architecture migration driven by code categorization
CN114755990B (zh) 一种工业自动化产线低代码控制系统及其控制方法
JP2006079484A (ja) システム移行に伴うソースプログラム変換プログラム
JP2005258981A (ja) プログラムジェネレータ自動テストシステム
Sultan et al. AMULET: a Mutation Language Enabling Automatic Enrichment of SysML Models
JP2007200125A (ja) コーディング規約選択プログラム
JP5525459B2 (ja) プログラム改造支援方法およびプログラム改造支援装置
CN117971532A (zh) 一种面向模糊测试的语义修复方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200127

R150 Certificate of patent or registration of utility model

Ref document number: 6653205

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250