ある環境で動作するソフトウェアを、ほかの環境で動作するように作り替えることです。
「ほかの環境」とは、OS や CPU、ハードウェア、ライブラリといった要素のいくつかが異なるような環境のことを指します。
開発当初から、複数の環境を想定したつくりにしていない限り、ソフトウェアは特定の環境に依存する部分が多数含まれており、その環境でしか動作しないのが普通です。たとえば、特定の OS にしか存在しない API を使っているだとか、特定の装置の使用を想定している(ユーザーがタッチパネルを使って入力を行うことを前提にしていたが、移植先にはそのような装置がない等)といったことがあります。
移植は、ソースコードを新たな環境で動作できるように修正していく作業が主です。たとえば、OS が提供している API の関数を直接呼び出している箇所があれば、移植先の OS が提供する同等の(あるいは近い)関数を呼び出すように変更しなければなりません。引数や戻り値といった仕様が一致しているとは限らないので、単純な置き換えで済むとは限りません。そもそも、本当に同じ結果になっているのかテストしなければなりませんし、手間のかかる難しい作業です。
ソースコードの修正以外には、使用するデータの形式や、フォントの違いへの対応などがありえます。
API が異なる問題に関していえば、当初から複数のプラットフォームに対応したライブラリやフレームワークを用いていれば、それらが環境を判断して API が定める機能を呼び分けることで、環境の違いは吸収されたかもしれません。その場合は、ソースコードを修正せずに済みます。
このように移植の労力は、移植元と移植先の違いの大きさのほかに、当初のつくりによるところも大きいです。
移植の容易さは、移植性という用語で表現され、移植が容易であれば、「移植性が高い」といいます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |