NTT DATA

DATA INSIGHT

NTT DATAの「知見」と「先見」を社会へ届けるメディア

キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
2020.12.24技術トレンド/展望

既存IT資産の見える化でDXへの第一歩を踏み出そう!

制度の変更や新たな商品の追加のスピードにレガシーシステムがついていけないという課題に悩むお客様は多い。
本稿では、既存IT資産をソースコード解析技術により見える化し、DX(デジタルトランスフォーメーション)を行う足がかりを得る方法について紹介する。

レガシーシステムが抱える問題

ビジネス環境の変化により、制度変更への迅速な対応や新商品の追加等、システムに求められる対応のスピードが増してきています。システムのアジリティを上げるためには、マイクロサービス、クラウドサービス等、最新のデジタル技術を取り入れたアーキテクチャに乗せ換えることが1つの解決策となります。
一方で、何十年もメンテナンスを続けてきたレガシーシステムは、コードが1000万行を超えるような大規模なシステムに成長しており、全てを最新のアーキテクチャに載せかえることは莫大なコストと期間がかかるため、実現が大変難しいものとなります。そのため、まずはどのサブシステムがビジネス的観点で重要か否かの優先度をつけた上で、重要なサブシステムのみを切り出して新しいアーキテクチャの上に乗せ換える、という手法を取ります。

その際に問題となるのが、本当に切り出すことが可能なのか?という点です。調査するにも、ソースコードの量が膨大で人手での調査が困難となります。そのため、ソースコードを機械的にチェックし、切り出しの難易度を評価する手段が重要です。

TERASOLUNA Reengineeringを用いたソースコードの解析

NTTデータでは、社内製ツールを用いたソースコードの解析をTERASOLUNA Reengineeringサービスとして提供しています。COBOL、PL/I、JCL等のメインフレームでよく使われる言語の構文解析器を持つのが特長です。中間データである構文木の情報を活用することで、CRUD図、コールグラフ等の設計書を出力する機能、ソースコードチェックの機能、メトリクス情報をDBに蓄積し俯瞰的な分析ができるようにする機能など、多彩な機能を提供できるプラットフォームを実現しています。

このようなソースコード解析のツールは保守開発で重宝します。そのため、まずは、保守開発を効率化するためにソースコード解析ツールを導入しつつ、解析で得られた情報を次期システムの検討のINPUTとする、という進め方をすると、ツールに投資をするための理解も得やすくなります。
この後の節では新システムへの切り出しの検討にソースコード解析をどのように活用できるかについてご紹介します。

CRUD図を元にDB切り出しの難易度を評価

メインフレームのアプリ開発では、プログラムの何桁目が業務区分を表す等の命名規約が存在することが大半です。そのため、命名規約とソースコード解析によって得られたCRUD図を組み合わせることで業務単位のCRUD図を生成することができます。更に、2つの業務から更新されているテーブルがいくつあるかをカウントすることによって、業務間のDBアクセスに関する結合度を測ることができます。
これによって、どの業務はきれいに切れ目を入れることができ、どの業務はセットで移行しなければいけないのか、方針を立てることが可能になります。

ファイル入出力情報を元に切り出すジョブの境界線を特定

次期システムの検討では、複雑に入り組んだジョブの中から、新システムに関連するジョブのみを切り出したい、という要望が発生することがあります。バッチシステムはジョブの依存関係が複雑であるため、現行に残さなければならないジョブと、切り出すことができるジョブの境界がわからない、という問題に直面します。
ソースコード解析ツールを使うと、ジョブとファイルとの間の入出力関係を分析することができます。そのため、ジョブの実行順序関係はあるものの、データとしては依存していないジョブを除外することができます。また、現行に残す出力帳票から、データ依存関係を遡っていくことにより、現行に残す必要があるジョブを特定することができます。すべての現行の出力帳票について同じことを行い、最終的に依存関係がなく残ったジョブを切り出し可能なジョブとして扱うことができます。

おわりに

レガシーシステムの更改の難しさは、1000万行コードという量の問題に起因しているものと私は考えています。ソースコード解析を活用することのメリットは、この量の問題を解決できることだと考えています。DXに向けた検討の第一歩として、まずはソースコード解析を行い、現在のシステムの全体像を把握することから始めてみてはいかがでしょうか。
- NTTデータは、「これから」を描き、その実現に向け進み続けます -
お問い合わせ