@article{oai:ipsj.ixsq.nii.ac.jp:00215806, author = {岡田, 譲二 and パルヴァテ, アブヘイ and 石尾, 隆 and 坂田, 祐司 and 井上, 克郎 and Joji, Okada and Abhay, Parvate and Takashi, Ishio and Yuji, Sakata and Katsuro, Inoue}, issue = {1}, journal = {情報処理学会論文誌デジタルプラクティス(TDP)}, month = {Jan}, note = {長年保守し続けられてきたメインフレーム上の基幹システム(以降はレガシーシステムと呼ぶ)では,データベースから取得した結果に対して,ループや条件分岐などの制御構造(Loop Idiom)を用いて加工を行う手続き型のプログラムが数多く存在する.これらのプログラムを新しいプログラミング言語に移行(リライト)する際に実行時性能の劣化がしばしば起こる.こういった実行時性能の劣化を防ぐため,プログラムを分散処理などに書き換えるといったリファクタリングを行うことが多いが,このリファクタリングは単純ではなく工数がかかる.本稿では,新しいプログラミング言語にリライトしたプログラムを並列実行可能な形にリファクタリングする作業を支援することで,移行後のプログラムの実行時性能を改善する手法について提案する.評価実験として,2つの実際のレガシーシステムのプログラム7,565本に対して提案手法を適用した.書き換え前後のプログラムに同一の入力データを与えることで振る舞いを保ったリファクタリングができていることを確認するとともに,リファクタリング前後のプログラムの実行時間の評価を行うことで,提案手法の有効性を確認した.本手法で実際のレガシーシステムのソースコード3,529本のリファクタリングができ,リファクタリング前と比較して実行時性能を2倍から50倍改善させることができた., In mainframe mission-critical systems that have been maintained for many years (hereafter referred to as legacy systems), there are many procedural programs that process results obtained from databases using control structures such as loops and conditional branches. When these programs are migrated to a new programming language, degradation of runtime performance often occurs. To prevent such degradation of runtime performance, programs are often rewritten for distributed processing, but this rewriting process is not simple and requires a lot of time and effort. In this research, we support the rewriting of programs that have been rewritten in a new programming language into a form that can be executed in parallel. As an evaluation experiment, we applied the proposed method to 7,565 programs of 2 real legacy systems. We confirmed that the behavior of the programs before and after the rewriting was maintained by providing the same input data to the programs. We also confirmed the effectiveness of the proposed method by evaluating the execution time of the programs before and after rewriting. By using this method, we were able to rewrite 3,529 source codes of an actual legacy system, and improved the runtime performance by 2 to 50 times compared with that before rewriting.}, pages = {1--10}, title = {レガシーシステム移行時の性能劣化を改善するリファクタリング支援手法の提案}, volume = {3}, year = {2022} }