ソフトウェア近代化 (レガシー近代化 またはプラットフォーム近代化 とも呼ばれる)とは、レガシーシステム を最新のコンピュータプログラミング 言語、アーキテクチャ(マイクロサービス など)、ソフトウェアライブラリ、プロトコル、またはハードウェアプラットフォームに変換、書き換え、または移植 することを指します。レガシー変革の目的は、新しいプラットフォームへの移行を通じてレガシー投資の価値を維持および拡張し、新しいテクノロジーの利点を活用することです。[ 1 ]
ソフトウェア近代化イニシアチブの基礎および第一歩として、戦略、リスク管理、コストの見積もり、およびその実装には、近代化対象システムの知識が不可欠です。すべての機能が何のために作られたのか、そしてどのように開発されたのかについての知識です。[ 2 ] アプリケーションの初期段階からすべての進化の過程で携わってきた主題専門家 (SME)がもはや利用できないか、部分的な知識しか持っていないこと、そして適切で最新のドキュメントが不足していることから、近代化イニシアチブは、ソフトウェアインテリジェンス を使用してアプリケーションを評価および発見することから始まります。[ 3 ]
戦略 ソフトウェア近代化の意思決定は、ある組織的文脈の中で行われるプロセスです。ビジネス組織における「現実世界」での意思決定は、多くの場合「限定合理性 」に基づいて行われなければなりません。[ 4 ] さらに、複数の(場合によっては矛盾する)意思決定基準が存在し、意思決定の根拠となる有用な情報の確実性、完全性、入手可能性はしばしば限られています。
レガシーシステムの近代化は、多くの場合、複数年にわたる大規模なプロジェクトです。これらのレガシーシステムは、ほとんどの企業の業務において極めて重要な役割を担っているため、近代化されたシステムを一度にすべて導入すると、許容できないレベルの運用リスクが生じます。そのため、レガシーシステムは通常、段階的に近代化されます。当初、システムは完全にレガシーコードで構成されています。段階的な近代化が進むにつれて、レガシーコードの割合は減少し、最終的にはシステム全体が完全に近代化されます。移行戦略では、近代化作業中もシステムが完全に機能し続けることを保証する必要があります。
近代化戦略 ソフトウェアの近代化には、さまざまな推進要因と戦略があります。
アーキテクチャ主導型近代化 (ADM)とは、既存システムのビューを標準化することで、コード分析や理解、ソフトウェア変革といった共通の近代化活動を可能にするための取り組みである。ビジネス重視のアプローチ:近代化戦略は、近代化によって付加されるビジネス価値と結びついています。これは、アプリケーションのビジネスに対する重要性と技術的な品質の交点を定義することを意味します。[ 1 ] ガートナーが推進するこのアプローチでは、アプリケーションポートフォリオ分析(APA)をアプリケーションポートフォリオの近代化決定の前提条件とし、ソフトウェアの健全性、リスク、複雑性、コストを測定して、アプリケーションの強みと弱みについての洞察を提供します。[ 5 ] モデル駆動型エンジニアリング(MDE) は、ソフトウェア コードの リバース エンジニアリング とフォワード エンジニアリングのアプローチとして研究されています。 [ 6 ] [ 7 ] [ 8 ] ルネッサンス[ 9 ] 技術、ビジネス、組織の観点からレガシーシステムを反復的に評価する方法。 WMU(保証、保守、アップグレード)は、目標とする顧客満足度レベルとそれに対する影響に基づいて適切な保守戦略を選択するためのモデルです。[ 10 ] [ 11 ]
近代化リスク管理 ソフトウェアの近代化[ 12 ] は、複数のステークホルダーが関わる、リスクが高く、困難で、長期にわたる、高度な知的プロセスです。ソフトウェアの近代化タスクは、オブジェクト管理グループ のモデル駆動型アーキテクチャに関連するさまざまなツールや、 ISO/IEC 14764:2006やサービス指向移行および再利用技術(SMART)などのプロセスによってサポートされています。 [ 13 ] ソフトウェアの近代化には、専門知識を持つ労働者によって実行されるさまざまな手動および自動化されたタスクが含まれます。ツールはプロジェクト参加者のタスクをサポートし、コラボレーションと作業の順序付けを整理するのに役立ちます。
リスク(技術的目標とビジネス目標の両方)を明示的に考慮に入れた一般的なソフトウェア近代化管理アプローチ[ 14 ]は、以下の要素から構成される。
既存ポートフォリオの分析:技術的品質とビジネス価値の測定。技術的品質とビジネス目標を照らし合わせ、適切な戦略(置き換え、不採用、優先度低、有望候補)を策定する。 利害関係者を特定する:ソフトウェアの近代化に関わるすべての人:開発者、テスター、顧客、エンドユーザー、アーキテクト、… 要件を理解する:要件は、ユーザー、システム、制約、非機能要件の4つのカテゴリに分類されます。 ビジネスケースを作成する:ビジネスケースは、 意思決定者がさまざまなアプローチを検討する際に、意思決定プロセスを支援するものです。 近代化対象システムを理解する:これは非常に重要なステップです。ソフトウェアのドキュメントは 最新の状態に保たれていることが少なく、プロジェクトは社内外の多数のチームによって作成され、長期間にわたって関係者の目に触れないことが多いためです。アプリケーションの内容とアーキテクチャ設計を抽出することで、システムについて理解を深めることができます。 対象技術を理解し評価する:これにより、要件や既存システムに対して、技術や機能を比較検討することが可能になります。 近代化戦略を定義する: [ 15 ] この戦略は変革プロセスを定義します。この戦略は、近代化プロセス中に発生する変化 (技術の変化、追加の知識、要件の進化) に対応する必要があります。 戦略とステークホルダーのニーズを調和させる:潜在的なステークホルダーは、何が重要で、どのような進め方が最善かについて、それぞれ異なる意見を持っている可能性がある。ステークホルダー間で合意を得ることが重要である。 資源の見積もり:これまでの手順が明確になれば、コストを評価できます。これにより、経営陣は利用可能な資源と制約を考慮した上で、近代化戦略が実現可能かどうかを判断できます。
近代化費用 Softcalc(Sneed、1995a)は、COCOMOとFPAに基づいて開発された、入ってくる保守依頼のコストを見積もるためのモデルおよびツールです。 EMEE(早期保守作業量見積もり)[ 16 ] [ 17 ] は、実際の保守を開始する前に保守作業量を迅速に見積もるための新しいアプローチです。 RENAISSANCEは、まずリエンジニアリングを使用して安定した基盤を回復し、その後、一連の漸進的な変更によってシステムを継続的に改善することで、システムの進化をサポートする手法です。このアプローチは、さまざまなプロジェクト管理 プロセスとうまく統合されています[ 18 ]。
レガシーシステムの近代化における課題 レガシーシステムの主な問題点としては、ドキュメントが不足している非常に古いシステム、レガシーシステムに関する専門家や知識の不足、レガシーシステムが実装された技術スキルの不足などが挙げられます。[ 19 ] 典型的なレガシーシステムは20年以上前から存在しています。移行には多くの課題が伴います。
大規模なアプリケーションポートフォリオ全体における可視性の欠如 – 大規模なIT組織は、数百、場合によっては数千ものソフトウェアシステムを抱えています。技術と機能に関する知識は、本質的に分散し、希薄化し、不透明になっています。経営陣やエンタープライズアーキテクト にとって、これらのシステムに関する必要な定量的および定性的なデータがなければ、ソフトウェアシステムの近代化に関する意思決定を行うことは困難です。 組織変革管理 – ユーザーは、新しいアプリケーションやプラットフォームを効果的に使用し理解できるよう、再訓練を受け、必要なツールを提供される必要がある。 レガシーシステムと新システムの共存 – レガシーシステムのフットプリントが大きい組織は、一度にすべて移行することはできません。段階的な近代化アプローチを採用する必要があります。しかし、これには、十分に理解され実装された重複機能による完全なビジネスカバレッジの提供、データの重複、中間段階で必要となるレガシーシステムと新システムをつなぐための使い捨てシステムなど、独自の課題があります。[ 20 ] 構造品質の管理が不十分なため(ソフトウェア品質 を参照)、最新化されたアプリケーションは、元のシステムよりもセキュリティ、信頼性、パフォーマンス、保守性に関する問題が多く発生する。 近代化にかかる費用と期間が相当なものになる可能性がある - 複雑でミッションクリティカルなレガシーシステムの近代化には多額の投資が必要になる場合があり、完全に稼働する近代化されたシステムが稼働するまでには数年かかる可能性があり、その過程で予期せぬ不確実性が発生する可能性も無視できません。 ステークホルダーのコミットメント - 近代化への投資は、投資コストに見合うだけのメリットや即時の投資対効果が得られない可能性があるため、主要な組織ステークホルダーは、近代化への投資に納得する必要があります。 ソフトウェア構成 – 2010 年以降に構築されたもので、開発者が 100% オリジナルのコードを作成することは、今日では非常にまれです。[ 21 ] 効率性、スピード、再利用性を得るために、サードパーティやオープンソースのフレームワークやソフトウェア コンポーネントを使用することがよくあります。これにより、次の 2 つのリスクが発生します。1) サードパーティ コード内の脆弱性、2) オープンソース ライセンスのリスク。 最後に、近代化において万能な解決策は存在しません。近代化には数多くの商用および特注の選択肢があるため、顧客、販売者、および実施者は、さまざまな近代化手法の複雑さ、最適な実装方法、特定の状況における適合性、および適切な近代化アプローチを選択する前に従うべきベストプラクティスを理解することが不可欠です。
近代化の選択肢 長年にわたり、レガシーシステムの近代化にはさまざまな選択肢が登場し、それぞれ成功度や普及状況は異なってきました。現在でも、以下に説明するように、さまざまな可能性があり、すべてのレガシーシステム変革イニシアチブにとって「唯一の選択肢」は存在しません。
レガシーコード とは、メインフレームなどの古い技術やハードウェアに基づいて構築され、組織の中核サービスを提供し続けているアプリケーションのことです。レガシーアプリケーションは規模が大きく、変更が困難な場合が多く、それらを廃止または置き換えるには、組織の業務プロセスを再設計する必要が生じることも少なくありません。しかし、 Java などのいわゆる最新言語で書かれたアプリケーションも、レガシー化が進んでいます。COBOLなどの「レガシー」言語がレガシーの代表例とされる一方で、 新しい言語で書かれたソフトウェアも同様に巨大で変更が困難な場合があり、そのため近代化プロジェクトの対象となる可能性があります。
このようにアプリケーションを新しいプラットフォームに再実装することで、運用コストを削減でき、新しいテクノロジーの追加機能により、Web サービスや統合開発環境などの機能にアクセスできます。[ 7 ] 変換が完了し、機能的に同等になった後は、変換されたアプリケーションに新しい機能を追加することで、アプリケーションを現在および将来のビジネスニーズにより密接に合わせることができます。ソフトウェア近代化企業によるプログラム変換 などの新しいテクノロジーの最近の開発により、レガシー変換プロセスは、レガシー投資を維持し、それによってまったく新しいソフトウェアへの移行に伴うコストとビジネスへの影響を回避するための費用対効果が高く正確な方法になりました。
レガシーシステムの変革の目的は、新しいプラットフォーム 上で既存資産の価値を維持することです。実際には、この変革は様々な形態をとります。例えば、ソースコードの翻訳、既存コードの再利用、そしてビジネスに必要な顧客アクセスを提供するためのWeb-to-host機能の実装などが考えられます。書き換えが 必要な場合は、既存のビジネスルールを抽出して、書き換え要件定義書の一部として活用できます。
ソフトウェア移行 ソフトウェア移行とは、あるオペレーティング環境から、多くの場合より優れたものと考えられる別のオペレーティング環境へ移行するプロセスです。たとえば、Windows NT Serverから Windows 2000 Server への移行は、新機能が活用され、古い設定を変更する必要がなく、既存のアプリケーションが新しい環境で引き続き動作するようにするための手順が必要となるため、通常は移行とみなされます。移行は、 Windows NTから UNIX ベースの オペレーティングシステムへの移行 (またはその逆) を意味することもあります。移行には、新しいハードウェア、新しいソフトウェア、またはその両方への移行が含まれる場合があります。移行は 、単一のシステムを移行するような小規模なものから、多数のシステム、新しいアプリケーション、または再設計されたネットワークを含む大規模なものまであります。[ 24 ]
ある種類のデータベースから別の種類のデータベースへデータを移行することは可能です。通常、そのためには、古いデータベースから出力でき、新しいデータベースに入力できる共通の形式にデータを変換する必要があります。新しいデータベースは構造が異なる場合があるため、移行するファイルを処理できるプログラムを作成する必要があるかもしれません。
ソフトウェア移行が機能的に同等になると、移行後のアプリケーションに新機能を追加することで、移行後のアプリケーションを現在および将来のビジネスニーズにより密接に適合させることができる。
古いPCから新しいPCへインストール済みのソフトウェアを移行するには、ソフトウェア移行ツールを使用できます。移行という言葉は、単にデータをあるストレージデバイスから別のストレージデバイスへ移動するプロセスを指す場合にも使われます。
記事、論文、書籍
再利用可能なソフトウェアを作成する 今日の技術の進化により、一部の企業やグループはレガシーシステムの重要性を認識していません。その機能の中には、使用せずに放置するには重要すぎるものや、再作成するにはコストがかかりすぎるものがあります。ソフトウェア業界と研究者は、生産性を向上させ、市場投入までの時間を短縮するために、コンポーネントベースのソフトウェア開発に最近注目しています。[ 25 ]
リスク管理された近代化 一般的に、レガシーシステムの近代化において関心のある情報システム技術は、次の 3 つのクラスに分類されます。 言語やデータベース システムなど、レガシー システムの構築に使用された技術。 数十年前の技術に囚われている人々にとって理想郷となることが多い最新技術。強力で効果的、かつ保守が容易なエンタープライズ情報システムという (しばしば実現されない) 約束を掲げています。 レガシー システム ベンダーが提供する技術。これらの技術は、最新の IT 製品の波に飛び込むには臆病すぎる、あるいは賢明すぎる人々のためのアップグレード パスを提供します。レガシー システム ベンダーがこれらの技術を提供する理由は単純です。それは、「メインフレームの子宮」の快適さから離れる必要のないシステム近代化のためのアップグレード パスを提供することです。これらの技術は、最新のシステムへのよりスムーズな道筋を提供できますが、多くの場合、理想には及ばないものの許容できるソリューションとなります。[ 26 ]
参考文献 1 2 ガードナー、D:「単なる小手先の修正ではなく、アプリケーションの近代化はレガシーコード資産のライフサイクルを延長する」、 ZDNet 、2006年10月24日 ↑ ヴォルファート、ダニエレ。アスンサン、ウェスリー;ダ・シルバ、イボネイ;ドミンゴス、ディオゴ。シュマイン、エダーソン。ヴィラカ、ギリェルメ;ディオゴ、パザ(2021年6月)。「マイクロサービスによるレガシー システムの最新化: ロードマップ」。ソフトウェアエンジニアリングにおける評価と評価 。 pp. 149–159 。土井 :10.1145/3463274.3463334。ISBN 9781450390538 . S2CID 235474042 . ↑ Bartoszuk, Cezary; Dąbrowski, Robert; Stencel, Krzysztof; Timoszuk, Grzegorz (2013年6月) 「ソフトウェアの迅速な理解と評価について」 . 第14回国際コンピュータシステム・テクノロジー会議議事録 . pp. 161–168 . doi : 10.1145/2516775.2516806 . ISBN 9781450320214 . S2CID 17034416 . ↑ サイモンの限定合理性。経済理論における起源と応用 ↑ ステファン・ファン・デル・ザイデン;トーマス・クリネクト。 「マルチプラットフォーム アプリケーションの最新化ビジネス ケースの構築」 。 1 2 Menychtas, Andreas; Santzaridou, Christina; Kousiouris, George; Varvarigou, Theodora; Orue-Echevarria, Leire; Alonso, Juncal; Gorronogoitia, Jesus; Bruneliere, Hugo; Strauss, Oliver; Senkova, Tatiana; Pellens, Bram; Stuer, Peter (2013), "ARTIST Methodology and Framework: A Novel Approach for the Migration of Legacy Software on the Cloud" (PDF) , 2013 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (PDF) , 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), IEEE, pp. 424– 431, doi : 10.1109/SYNASC.2013.62 , ISBN 978-1-4799-3036-4 S2CID 8150975 1 2 Menychtas, Andreas; Konstanteli, Kleopatra; Alonso, Juncal; Orue-Echevarria, Leire; Gorronogoitia, Jesus; Kousiouris, George; Santzaridou, Christina; Bruneliere, Hugo; Pellens, Bram; Stuer, Peter; Strauss, Oliver; Senkova, Tatiana; Varvarigou, Theodora (2014)、「ARTIST移行手法とフレームワークを使用したソフトウェアの近代化とクラウド化」、 Scalable Computing: Practice and Experience 、 15 (2)、 CiteSeerX 10.1.1.675.6225 、 doi : 10.12694/scpe.v15i2.980 ↑ ARTIST研究プロジェクト ↑ イアン・ウォーレン、ジェーン ・ランサム(2002)。 「ルネッサンス:ソフトウェアシステム進化 を 支援する手法」。 第26回国際コンピュータソフトウェアおよびアプリケーション会議 。pp . 415–420。CiteSeerX 10.1.1.137.7362。doi : 10.1109 /CMPSAC.2002.1045037。ISBN 978-0-7695-1727-8 . S2CID 16563177 . ↑ Izzet Sahin; Fatemeh 'Mariam' Zahedi (2001). "ソフトウェアシステムの保証、保守、アップグレードに関するポリシー分析". Journal of Software Maintenance: Research and Practice . 13 (6): 469–493 . doi : 10.1002/smr.242 . ↑ ユッシ・コスキネン。ヤルモ・アホネン。ヘイキ・リンティネン。ヘナ・シブラ。テロ・ティルス。 「ソフトウェアの最新化によるビジネス価値の推定」 。 ↑ 「VB6からの移行。よりモダンなプラットフォームに移行できるのに、なぜデータセキュリティを犠牲にする必要があるのでしょうか? 」 ↑ Lewis, G.; Morris, E.; Smith, D.; O'Brien, L. (2005). "Service-Oriented Migration and Reuse Technique (SMART)". 第13回IEEEソフトウェア技術・エンジニアリング実践国際ワークショップ(STEP'05) . pp. 222–229 . doi : 10.1109/step.2005.24 . hdl : 10344/2208 . ISBN 0-7695-2639-X . S2CID 18912663 . ↑ ルイス、グレース A.、プラコシュ、ダニエル、シーコード、ロバート C. (2003). 『 レガシー システムの近代化:ソフトウェア技術、エンジニアリングプロセス、およびビジネスプラクティス 』アディソン・ウェスリー・プロフェッショナル、pp. 27–37。ISBN 0321118847 。↑ Mobilize.Net。 「ソフトウェア近代化への近道 | Mobilize.Net」 。www.mobilize.net 。 2021年3月19日 取得 。 ↑ Andrea De Lucia、Eugenio Pompella、Silvio Stefanucci (2002年7月)。 「修正ソフトウェア保守のための工数見積もり」 (PDF) 。第14回ソフトウェア工学 および 知識工学国際会議(SEKE '02)議事録 。SEKE '02 イスキア、 イタリア。p. 409。doi : 10.1145 /568760.568831。ISBN 978-1581135565 . S2CID 10627249 . {{cite book}}: CS1 maint: location (リンク) CS1 maint: location 発行元が見つかりません (リンク)↑ De Lucia, A.; Fasolino, AR; Pompelle, E. (2001). "レガシーシステム管理のための意思決定フレームワーク". Proceedings IEEE International Conference on Software Maintenance. ICSM 2001. pp. 642–651 . doi : 10.1109/ICSM.2001.972781 . ISBN 0-7695-1189-9 . S2CID 32184332 . ↑ コスキネン、ユッシ。リンティネン、ヘイキ。シブラ、ヘナ。ティルス、テロ。 「NIMSADメタフレームワークを用いたソフトウェア最新化予測手法の評価」 情報基盤研究所の出版物 。 CiteSeerX 10.1.1.106.2633 。 ↑ 「レガシーシステムの近代化における課題」 . dev.to. 2025年12月2日 . 2025年 12月2日 に取得. ↑ Santhosh G. Ramakrishna; VV (2007 年 5 月)。 「ロジスティクス レガシー モダナイゼーション」 (PDF) 。 Infosys Technologies Limited。 ↑ C. Ghezzi (2018). 「信頼性の高い進化のサポート」. Volker Gruhn、Rüdiger Striemer (編) 『ソフトウェアエンジニアリングの本質 』pp. 32–33 . doi : 10.1007/978-3-319-73897-0 . ISBN 978-3-319-73897-0 . S2CID 49187426 . ↑ 「メインフレーム近代化の概要」 . Modernization Hub . 2017年8月23日 取得。 ↑ シリーズ、AS(ISO 9001:2008)。レガシーシステムの近代化 – アジャイル企業への変革。レガシーシステムの近代化に関するホワイトペーパー ↑ SearchCIO.com ↑ SK Mishra; DS Kushwaha; AK Misra (2009年7月~8月) 「リバースエンジニアリングによるオブジェクト指向レガシーシステムからの再利用可能なソフトウェアコンポーネントの作成」 The Journal of Object Technology . 8 (5): 133– 152. doi : 10.5381/jot.2009.8.5.a3 . ↑ Moltke, H. v. (2003年1月22日水曜日午後9時55分). リスク管理された近代化。ジャワハルラール・ネルー、国会演説、ニューデリー: Seacord.book。