JP6944838B2 - 変換装置および変換方法 - Google Patents
変換装置および変換方法 Download PDFInfo
- Publication number
- JP6944838B2 JP6944838B2 JP2017161973A JP2017161973A JP6944838B2 JP 6944838 B2 JP6944838 B2 JP 6944838B2 JP 2017161973 A JP2017161973 A JP 2017161973A JP 2017161973 A JP2017161973 A JP 2017161973A JP 6944838 B2 JP6944838 B2 JP 6944838B2
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- source
- merge
- cobol
- defect
- 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
Links
- 238000006243 chemical reaction Methods 0.000 title claims description 483
- 238000000034 method Methods 0.000 title claims description 28
- 238000012937 correction Methods 0.000 claims description 115
- 238000013461 design Methods 0.000 claims description 71
- 238000012360 testing method Methods 0.000 claims description 44
- 230000007547 defect Effects 0.000 claims description 41
- 238000012790 confirmation Methods 0.000 claims description 38
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 description 43
- 230000018109 developmental process Effects 0.000 description 43
- 230000008014 freezing Effects 0.000 description 10
- 238000007710 freezing Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 6
- 238000013509 system migration Methods 0.000 description 5
- 101100533558 Mus musculus Sipa1 gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 101150073162 spa1 gene Proteins 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting 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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
変換元ソースを変換後ソースに変換する変換装置であって、
前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を管理するメタ情報管理部と、
前記変換後ソースの確認テストで不良があった場合、前記メタ情報を参照して、前記不良の不良原因を作り込んだ変換を特定するテスト部と、を備える、
ことを特徴とする。
その他の発明については、後記する。
図1に示すように、本実施形態の変換装置1は、コンバータc1〜cnと、コンバータ別変換結果リポジトリr11〜r1nと、バージョン管理ツール10と、メタ情報DB(DataBase)11と、マージツールm1と、機械変換結果リポジトリr2と、手修正管理ツール20と、手修正実施用ワークスペース21と、手修正結果リポジトリr3と、マージツールm2と、変換結果リポジトリr4と、テストツール30と、を備える。
また、図1中の変換後Javaソースs2は、JAVAで記述されたJAVAコード(「Java1」、「Java2」、・・・、「JavaN」、「JavaX」)を記録したソースコードであり、顧客が新システムを運用するために実行される。
図1中の各種の変換途中ソースs31〜s3n,s4,s5については後記する。
コンバータc1〜cnは、変換元COBOLソースs1のCOBOLコードの一部をJAVAコードに機械的に変換する。コンバータc1〜cnの各々が変換するCOBOLコードとしての文字列は予め決められており、例えば、命令語単位で用意することができる(例:COBOLコードの「MOVE」をJAVAコードの「set」に変換するコンバータ)。また、コンバータc1〜cnは、構文単位で用意することもでき、言語文法上のさまざまな粒度で設計することができる。
コンバータ別変換結果リポジトリr11〜r1nの各々は、変換元COBOLソースs1に対してコンバータc1〜cnの各々を実行することでCOBOLコードの一部がJAVAコードに変換された変換途中ソースs31〜s3nの各々を格納する。
バージョン管理ツール10は、コンバータc1〜cnの各々が変換元COBOLソースs1から変換途中ソースs31〜s3nの各々に変換したときの変換に関する情報をメタ情報として取得して管理する。メタ情報は、例えば、変換ごとに、変換元COBOLコードと変換後JAVAコードとの対応、変換を実行したコンバータのID(Identifier)、変換の内容(例:「MOVE」→「set」)、変換設計のID、変換の実行の日時、補足説明としてのコメントを含むが、これらに限定されない。本実施形態のバージョン管理ツール10は、Gitなどの分散型バージョン管理ツールとして実装することができる。
メタ情報DB11は、バージョン管理ツール10が取得したメタ情報を格納する。なお、本実施形態の変換装置1に、TortoiseGitなどのGUI(Graphic User Interface)を備え、メタ情報や変換途中ソースs31〜s3nを視覚的に追跡可能としてもよい。
マージツールm1は、コンバータ別変換結果リポジトリr11〜r1nが格納する変換途中ソースs31〜s3nに対してマージ処理をする。マージ処理は、例えば、分散型バージョン管理ツールで用いられる3方向マージ(周知であり、詳細な説明は省略)を用いることができる。
また、マージツールm1は、マージ処理として、変換途中ソースs31〜s3nを一括してマージし、変換途中ソースs4を得ることもできる。
機械変換結果リポジトリr2は、マージツールm1によって、機械的な変換の結果がすべてマージされた変換途中ソースs4を格納する。
手修正管理ツール20は、変換元COBOLソースs1の一部から変換後Javaソースs2の一部への変換を行うための手修正を管理する。具体的には、手修正管理ツール20は、変換元COBOLソースs1のCOBOLコード「COBOLX」を、変換後Javaソースs2のJAVAコード「JavaX」に手修正で変換する。
また、手修正管理ツール20は、バージョン管理ツール10に対して、手修正の変換に関する情報をメタ情報として出力する。
手修正必要例1:複数の同じデータ項目名の存在
手修正必要例2:明確なデッドコード(到達不能コード)の存在
手修正必要例3:複数の同じ分岐条件の存在
〔COBOLコード〕
01 D1 PICTURE X(2) VALUES ‘AZ’.
01 D1 PICTURE 9(2) VALUES 10.
を機械変換した場合には、
〔JAVAコード〕
String d1 = “AZ”
int d1 10;
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは変数名重複によるコンパイルエラーとなってしまう。
〔COBOLコード〕
EXIT.
MOVE A TO B.
を機械変換した場合には、
〔JAVAコード〕
return;
b.set(a);
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは明確なデッドコードによるコンパイルエラーとなってしまう。
〔COBOLコード〕
EVALUATE A
WHEN 0
〜〜
CONTINUE
WHEN 0
〜〜
END EVALUATE.
を機械変換した場合には、
〔JAVAコード〕
switch(a){
case 0:
〜〜〜;
break;
case 0:
〜〜〜;
:
}
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは分岐条件の重複によるコンパイルエラーとなってしまう。
手修正実施用ワークスペース21は、手修正管理ツール20による手修正を実行するための作業領域である。
手修正結果リポジトリr3は、変換元COBOLソースs1に対して手修正管理ツール20による手修正を実行することでCOBOLコードの一部がJAVAコードに変換した変換途中ソースs5を格納する。
マージツールm2は、機械変換結果リポジトリr2に格納された変換途中ソースs4と、手修正結果リポジトリr3に格納された変換途中ソースs5とをマージする。具体的には、マージツールm2は、変換元COBOLソースs1を親とし、変換途中ソースs4を第1の子、変換途中ソースs5を第2の子として3方向マージをし、変換後Javaソースs2を得る。
また、マージツールm1およびマージツールm2が、マージ処理として、変換途中ソースs31〜s3n、および、変換途中ソースs5を一括してマージし、変換後Javaソースs2を得ることもできる。
変換結果リポジトリr4は、マージツールm2によって、機械的な変換、および、手修正の変換がなされ、JAVAコードのみを記録した変換後Javaソースs2を格納する。
テストツール30は、変換後Javaソースs2の確認テスト(実機確認)を行う。確認テストでは、例えば、変換元COBOLソースs1および変換後Javaソースs2に同じ入力値を入力し、両者間で同じ出力値が得られれば不良なし、異なる出力値が得られれば不良ありと判定する。テストツール30は、不良があった場合、不良箇所情報を元に、メタ情報DB11を参照して、不良を作り込んだ変換を特定する。
次に、本実施形態の変換装置1が実行する処理として、COBOLからJAVAへの異言語変換処理について、図2を参照して説明する。説明の際、図1も適宜参照する。
したがって、コンバージョン開発における不良対応コストを削減することができる。
顧客が提供する変換元ソースを変換後ソースに変換するコンバージョン開発では、不良対応や法改正対応などの保守開発上の理由から、コンバージョン開発の進捗とは無関係に、顧客が変換元ソースを修正し仕様変更を行う場合がある。その場合、初回のコンバージョン開発の完了後に、再度のコンバージョン開発を実施し、変換後ソースに仕様変更を取り込む必要がある。初回のコンバージョン開発の完了とは、変換後ソースの確認テストにおける不良なしでの完了を意味し、「凍結」と呼ぶ場合がある。また、再度のコンバージョン開発における凍結後の仕様変更対応作業を「追いつき作業」と呼ぶ場合がある。
また、従来では、変換後ソースのうち手修正による変換箇所については、凍結前に確認テストを行っていたとしても、追いつき作業ではほぼ同様の確認テストを再度行う必要があり、追いつき作業のテスト工数を低減させることができなかった。
変換元ソースspは、COBOLで記述されたCOBOLコード(1行目「COBOL1」、2行目「COBOL2」、3行目「COBOL3」)を記録したソースコードである。変換元ソースspは、コンバージョン開発側が顧客から元々提供されたコンバージョン開発対象である。変換元ソースspは、図1の変換元COBOLソースs1に相当する。
追いつき作業において、変換元ソースに対する顧客側の修正箇所(特定行)と、変換元ソースに対する凍結前の手修正が行われた箇所(手修正行)とが重複している場合がある。この場合、手修正結果流用の3方向マージを行うと、コンフリクトが発生してしまい、マージすることができない。
図4に示すように、変換元ソースspと、修正版変換元ソースsc1aと、手修正ソースsc2とを用意した場合について説明する。図4の変換元ソースspおよび手修正ソースsc2は、図3に示す変換元ソースspおよび手修正ソースsc2と同じである。
バージョン管理ツール10は、修正版変換元ソースsc1aに関するメタ情報を管理し、修正版変換元ソースsc1aの内容を管理することができる。
追いつき作業は、本質的には、変換元ソースに対して顧客が行った(概ね小規模の)修正分に対して再度のコンバージョン開発を行えば十分である。追いつき作業で行う必要があるテストの確認項目の大部分は、追いつき作業前の初回コンバージョン開発ですでに行ったテストの確認項目と重複する。よって、初回コンバージョン開発でのテストの確認結果を流用して、追いつき作業でのテスト作業工数を削減する、というアイデアが成立し、以下、その方法について具体的に説明する。
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、コンバージョン開発における変換元ソースのプログラム言語は、COBOLに限らず、他のプログラム言語でもよい。また、コンバージョン開発における変換後ソースのプログラム言語は、JAVAに限らず、他のプログラム言語でもよい。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
c1〜cn コンバータ
10 バージョン管理ツール(メタ情報管理部)
11 メタ情報DB
20 手修正管理ツール(手修正管理部)
21 手修正実施用ワークスペース
30 テストツール(テスト部)
m1,m2 マージツール(マージ部)
r11〜r1n コンバータ別変換結果リポジトリ
r2 機械変換結果リポジトリ
r3 手修正結果リポジトリ
r4 変換結果リポジトリ
s1 変換元COBOLソース(変換元ソース)
s2 変換後Javaソース(変換後ソース)
s31〜s3n,s4,s5 変換途中ソース
sc1,sc1a 修正版変換元ソース
sp,spa 変換元ソース
sq,sqa 変換後ソース
A1〜E1,B11,D11 変換設計
A2 変換設計A1向けコンバータ
B2 変換設計B1向けコンバータ
B21 変換設計B11向けコンバータ
C2 変換設計C1向けコンバータ
A3〜E3,B31,D31 変換結果
Claims (8)
- 変換元ソースを変換後ソースに変換する変換装置であって、
前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を管理するメタ情報管理部と、
前記変換後ソースの確認テストで不良があった場合、前記メタ情報を参照して、前記不良の不良原因を作り込んだ変換を特定するテスト部と、を備える、
ことを特徴とする変換装置。 - 前記変換元ソース内の文字列ごとに用意され、前記変換元ソースの一部から前記変換後ソースの一部への変換を、機械的、かつ、並行に行う複数種類のコンバータと、
前記変換元ソースの一部から前記変換後ソースの一部への変換を行うための手修正を管理する手修正管理部と、
前記変換途中ソースの集合に対してマージ処理をするマージ部と、をさらに備える、
ことを特徴とする請求項1に記載の変換装置。 - 前記変換元ソースの特定行が修正されていた修正版変換元ソースがあった場合、
前記マージ部は、
前記変換元ソースを親とし、前記修正版変換元ソースを第1の子とし、前記変換途中ソースのうち前記手修正による変換が行われたものを第2の子とする3方向マージをする、
ことを特徴とする請求項2に記載の変換装置。 - 前記マージ部は、
前記修正版変換元ソースにおいて修正されていた前記特定行と、前記手修正による変換が行われた前記変換途中ソースにおいて前記手修正がなされた手修正行とが重複する場合、前記3方向マージにおいて、前記特定行を優先する、
ことを特徴とする請求項3に記載の変換装置。 - 前記変換元ソースに対して設定した変換設計ごとに、前記変換途中ソースを生成した場合、前記変換設計のうち、前記修正版変換元ソースの修正分に応じて変更した変換設計について、新たな変換途中ソースを生成する、
ことを特徴とする請求項3または請求項4に記載の変換装置。 - 前記変換元ソースから前記変換後ソースへの変換は、プログラム言語変換である、
ことを特徴とする請求項1から請求項5のいずれか1項に記載の変換装置。 - 前記プログラム言語変換は、
異なる種類のプログラム言語への変換、または、同じ種類のプログラム言語への変換である、
ことを特徴とする請求項6に記載の変換装置。 - 変換元ソースを変換後ソースに変換する変換装置における変換方法であって、
前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を登録するステップと、
前記変換後ソースの確認テストを行い、不良があった場合、前記メタ情報を参照して前記不良の不良原因を作り込んだ変換を特定するステップと、を備える、
ことを特徴とする変換方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017161973A JP6944838B6 (ja) | 2017-08-25 | 2017-08-25 | 変換装置および変換方法 |
PCT/JP2018/030483 WO2019039394A1 (ja) | 2017-08-25 | 2018-08-17 | 変換装置および変換方法 |
CN201880055029.6A CN111052077B (zh) | 2017-08-25 | 2018-08-17 | 变换装置以及变换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017161973A JP6944838B6 (ja) | 2017-08-25 | 2017-08-25 | 変換装置および変換方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019040399A JP2019040399A (ja) | 2019-03-14 |
JP6944838B2 true JP6944838B2 (ja) | 2021-10-06 |
JP6944838B6 JP6944838B6 (ja) | 2021-11-02 |
Family
ID=65439075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017161973A Active JP6944838B6 (ja) | 2017-08-25 | 2017-08-25 | 変換装置および変換方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6944838B6 (ja) |
CN (1) | CN111052077B (ja) |
WO (1) | WO2019039394A1 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334325A (ja) * | 2003-04-30 | 2004-11-25 | Nri & Ncc Co Ltd | ファイル変換システムおよび方法 |
CN100337203C (zh) * | 2004-04-05 | 2007-09-12 | 中国科学院计算技术研究所 | 一种遗产代码向现代语言变换过程中的控制流变换方法 |
JP4724387B2 (ja) * | 2004-06-24 | 2011-07-13 | 富士通株式会社 | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
NZ565166A (en) * | 2005-06-27 | 2011-07-29 | Quipoz Pty Ltd A C N 099 286 316 | Code transformation |
CN101105814A (zh) * | 2007-09-11 | 2008-01-16 | 金蝶软件(中国)有限公司 | 一种将Script语言转换成SQL语言的方法及装置 |
JP6018539B2 (ja) * | 2013-04-30 | 2016-11-02 | 株式会社システムズ | 情報処理装置、情報処理方法、およびプログラム |
CN104391730B (zh) * | 2014-08-03 | 2017-07-11 | 浙江网新恒天软件有限公司 | 一种软件源码语言翻译系统及方法 |
US9804946B2 (en) * | 2015-05-27 | 2017-10-31 | Oracle International Corporation | System and method for providing automated computer language translation and verification |
-
2017
- 2017-08-25 JP JP2017161973A patent/JP6944838B6/ja active Active
-
2018
- 2018-08-17 CN CN201880055029.6A patent/CN111052077B/zh active Active
- 2018-08-17 WO PCT/JP2018/030483 patent/WO2019039394A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2019040399A (ja) | 2019-03-14 |
WO2019039394A1 (ja) | 2019-02-28 |
CN111052077B (zh) | 2023-09-29 |
JP6944838B6 (ja) | 2021-11-02 |
CN111052077A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7934205B2 (en) | Restructuring computer programs | |
US8583413B2 (en) | Computer method and apparatus for chaining of model-to-model transformations | |
US9081626B2 (en) | Method and apparatus for converting software | |
JP5005510B2 (ja) | ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム | |
WO2010118416A2 (en) | Software database system and process of building and operating the same | |
JP2009223851A (ja) | データベースシステム移行方法 | |
JPWO2006095434A1 (ja) | ソフトウェア構築プログラム、該プログラムを記録した記録媒体、ソフトウェア構築方法、およびソフトウェア構築システム | |
JP6944838B2 (ja) | 変換装置および変換方法 | |
JPH08241196A (ja) | 分岐命令処理方式 | |
JP5374405B2 (ja) | モデルデバッグ装置およびモデルデバッグ方法 | |
JP4939007B2 (ja) | システム設計支援プログラム | |
CN112114817A (zh) | 基于cobol语言的数据字典字段信息获取方法及装置 | |
JPS5922140A (ja) | 対話型コンパイル方式 | |
JP4405571B1 (ja) | プログラム | |
CN113391829B (zh) | 一种应对高频率迭代数据的调试方法 | |
JP2022118310A (ja) | コンパイル方法、開発支援装置および制御システム | |
US20220398096A1 (en) | Conversion apparatus, conversion method and program | |
JPH01230132A (ja) | ジェネレータ | |
JP2005165584A (ja) | プログラム作成システム及び方法 | |
JP2016151973A (ja) | 制御コントロールシステム、その開発支援装置、制御装置 | |
JPH1040089A (ja) | データ移行プログラム生成方式 | |
JP2585513B2 (ja) | 経営モデリング・システム・シミユレ−シヨン・システム | |
JPH01195550A (ja) | パッチ形式チェック方式 | |
JPH0358127A (ja) | ソフトウェア設計仕様書修正機構 | |
JPH0695307B2 (ja) | 言語処理プリプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200824 |
|
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: 20210831 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210913 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6944838 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |