お客様: 大学の研究室様

ご依頼内容

  • 研究で長年使ってきた解析・描画ソフトウェアが、旧バージョンのMATLABでは動くものの、最近のバージョンでは一部の機能がエラーで停止するため、新しい環境でも使えるようにしたい、というご相談。
  • 原開発者によるアップデートが行われておらず、数百ファイル規模のコードを自力で直すのは難しい、という状況だった。
  • 旧バージョンで得られた数値と同じ結果を、新しい環境でも再現したい。

課題

  • 複数の非互換箇所を特定し、停止していた機能を復旧すること。
  • 出力を、旧バージョンの結果と一致させること。
  • 原コードの構成を保ったまま、改修箇所を追跡できる状態にすること。

ソリューション

  • ヒストグラム関数のビン仕様の差を吸収するラッパを作成し、旧バージョンと同じ集計結果が出るようにした。
  • UI部品の設定順、廃止されたプロパティ、再帰の上限といった非互換を、一つずつ解消した。
  • 組込関数と名前が衝突する関数を、リネームして切り分けた。
  • 非線形推定の関数へ渡すヤコビアンの形式を、新しいバージョンの仕様に合わせて変換した。
  • メニューや線種の廃止仕様を確認し、表示機能を保てる範囲で、指定を更新した。
  • 移行の途中で見つけた探索範囲と座標変数の不具合を、旧バージョンと比較して是正した。
  • 起動確認だけで終わらせず、停止していた個別の機能まで実行し、旧バージョンの結果と突き合わせて確認した。
  • 改修した箇所にはマーカー付きのコメントを残し、比較用の原本と併存させる構成で納品した。
  • 断面図に関する追加の課題では、関連する表示・保存の関数をまとめて改修した。
古いMATLABコードから現在のMATLABコードへ移行する4工程の説明図
移行の工程。旧バージョンで動かなくなったコードの非互換箇所を特定して現行仕様へ更新し、旧バージョンと計算結果が一致することを確認したうえで、修正箇所をコメントで可視化して納品する。図中の数値は説明用の例です。

結果

  • 停止していた機能群が新しいMATLABで動作し、旧バージョンと同一の結果を再現できた。
  • 断面図の表示を中心とした追加の課題にも、続けて対応した。
  • 長年育ててきた解析環境を、旧バージョンのMATLABに縛られずに、使い続けられる状態になった。
  • 改修の理由と箇所を後から確認できるため、お客様側でも変更内容を追える形になった。

ひとこと

  • 「昔作ったMATLABのプログラムが、新しいバージョンで動かなくなった」というご相談は、研究の現場から多くいただきます。原コードの構成を保ったまま、動く状態に戻すところまでお引き受けしています。
  • 移行で手間がかかるのは、文法の置き換えよりも、関数の仕様変更によって数値が変わっていないかの確認です。旧版と新版の結果を突き合わせながら進める方法は、MATLABに限らず、他の言語やライブラリの移行でも同じように使えます。

お問い合わせ

開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。

今すぐお問い合わせ