マイグレーションによる基幹システムの再構築(自動変換ツールの活用)

  • ユーザー業種
    製造メーカー:空調関連装置/環境装置
  • 言語・要素
    VB6※1、VB.Net※2、Windows
  • 従業員規模
    500名~1,000名
  • 開発期間
    2年

事例のポイント

こちらの企業様では、Visual Basic 6.0(VB6)で構築された大規模かつ複雑な基幹システムが老朽化しており、新しい言語環境への移行が大きな課題となっていました。そこで、当社ではVisual Basic .NET(VB.Net)への移行を提案するとともに、独自の自動変換ツールを開発しました。 このツールと手作業による変換を組み合わせることで、移行作業の効率化と品質の確保を両立するプロセスを構築しました。これにより、変換作業の一部を自動化して生産性を向上させるとともに、コストの抑制と高い品質の維持を実現し、不具合の少ない安定した新基幹システムへの移行に成功しました。

課題・背景

空調関連・環境関連装置製造メーカーのA社様では、営業支援機能および販売管理機能を備えたVB6製の基幹システムが老朽化しており、新しい言語環境への移行が必要な状況にありました。

本システムは全体で276機能(235画面)におよぶ規模で、他機能との連携も多岐にわたることから、新言語の選定や開発方式の策定を含む総合的な対応が求められていました。あわせて、既存データベースの構造および運用方法の見直しも計画されていました。

こうした背景のもと、VB6のマイグレーション※3やJavaなどの豊富な開発経験を有する当社へ、開発方式のご提案と使用言語の選定に関するご依頼をいただきました。

提案

当社は、これらの課題を解決するため、以下の提案を行いました。
①連携調査・移行方法の検討
 サブシステム間のデータ連携方式が多様であるため、現状の連携状況を調査・整理することで、マイグレーションあるいはWeb化を実施した場合の他システムへの影響を比較検討する。

②新言語の比較
 Java※4とVB.Netをコスト面で比較し、VB.Netへのマイグレーションを検討する。

③非互換性の共有
 要件定義の段階で、VB6とVB.Netの非互換性に関する情報をクライアントと共有し、認識のずれを防ぐ。

④自動変換ツール※5の作成
 生産性を向上させるため、自動変換が可能なロジック部分に対応するツールを作成し、移行作業の効率化を図る。

⑤品質の担保
 新旧比較テストを実施し、移行後の品質を確保する。

⑥顧客中心の統合テスト
 統合テスト(業務シナリオテスト)はクライアント中心に実施していただくことで、当社が開発に専念できる体制を構築し、短納期かつコストを抑えた開発を実現する。 クライアントの負担は一時的に増加するが、通常の開発よりも早期にシステム確認が可能となり、稼働後の品質に対する不安を軽減するとともに、課題を早期に発見することができる。

開発の進め方

開発は以下のステップで進めました。
①自動変換ツールの作成とプロトタイプ※6作業
 自動変換ツールを作成し、マイグレーション後の画面をクライアントと共有するプロトタイプ作業を実施しました。これにより、VB.Netへの移行方針を決定しました。

②手作業による変換仕様書の作成
 自動変換が困難なロジックに対しては、既存ロジックを調査し、同一仕様となるよう手作業で実装を行いました。あわせて、変換仕様書を作成し、対応の均一化を図りました。

③既存不具合の報告手順のルール化
 既存不具合の報告手順をルール化し、軽微なものは稼働後に対応する方針として整理しました。

④VB6とVB.Net非互換の報告手順のルール化
 VB6とVB.Netの非互換に関する報告手順をルール化し、完成後のイメージをクライアントと共有しました。

⑤テスト仕様書の一部テンプレート化
 テスト仕様書の一部をテンプレート化することで、作成効率を向上させるとともに、テスト品質を担保しました。

結果

今回のシステム開発により、以下の成果を実現しました。
① 不具合発生の極小化
 受入後の不具合発生率は 0.02 件/Kstep※7と、極めて高品質なシステムマイグレーションを達成しました。

② 生産性の向上
 VB6からVB.Netへの移行時に発生する 855種類・約33,000件のエラーのうち、177種類・約13,400件を自動変換ツールで処理しました。
これにより、変換作業の生産性を向上させるとともに、開発コストの抑制を実現しました。

③ メンテナンス性の向上
 VB6のコードから自動変換と手作業によるVB.Net化を行ったことで、稼働後の保守作業が効率化され、メンテナンス性が向上しました。

用語の補足

※1 Visual Basic 6.0(VB6):Microsoftが提供していた開発言語です。1990年代から2000年代初頭にかけて、数多くの業務アプリケーションで使用されていました。現在はサポートが終了しており、新しい開発環境への移行が求められています。
※2 Visual Basic .NET(VB.Net):VB6の後継としてMicrosoftが提供するプログラミング言語です。.NET Framework上で動作し、保守性や堅牢性に優れたシステム開発が可能です。
※3 マイグレーション:既存システムを新しい環境や言語に移行することを指します。機能の継承や資産の活用を維持しながら、保守性やセキュリティ性を高める目的で実施されます。
※4 Java:汎用性の高いプログラミング言語であり、Webアプリケーションや業務系エンタープライズシステムの開発に広く利用されています。
※5 自動変換ツール:既存コードを新しい言語に自動的に変換するためのツールです。これにより、手作業による変換負荷を軽減し、生産性を向上させることができます。
※6 プロトタイプ:システムの初期モデルや試作品のことです。開発の初期段階で作成し、顧客や開発者がシステムの機能や動作イメージを共有・確認するために使用されます。ニーズの洗い出しや仕様確定にも貢献します。
※7 Kstep(キロステップ):ソフトウェアの規模を表す単位で、1 Kstep は 1,000ステップ(行)のコードを意味します。不具合率などの定量的評価指標として用いられます。

お問い合わせはこちらから

課題やご要望を丁寧にお伺いし、最適なアプローチをご提案いたします。