対象試験と出題頻度

移植性は、基本情報技術者・応用情報技術者で出題されるテーマです。

ISO/IEC 25010で定義されたソフトウェア品質特性の1つで、「機能適合性」「性能効率性」「信頼性」などと並ぶ8特性のうちの最後に位置づけられます。

副特性(順応性・設置性・置換性)まで含めて問われるパターンが定番です。

詳細をクリックして確認
対象試験:
基本情報技術者
応用情報技術者
出題頻度:
★★★☆☆
ランクB(標準)覚えておくと有利

用語の定義

情報処理試験を勉強していると、「移植性って結局、何の能力のこと?」と混乱しがちです。

移植性(Portability)とは、一言で言うと

 「ソフトウェアを別の環境に移しても、問題なく動作させられる能力

のことです。

イメージとしては、海外でも使える変圧器付き家電です。

日本仕様の家電を海外で使うと、電圧違いで壊れたり動かなかったりします。一方、変圧器付きや100V/240V両対応の家電は、コンセントを差し替えるだけでどこでも使えます。

移植性が高いソフトウェアも同じで、OSやハードウェアが変わっても、最小限の手直しで動かせる性質を持っています。

📊 移植性の基本情報

項目 内容
英語名 Portability
分類 ソフトウェア品質特性(ISO/IEC 25010)の8特性の1つ
副特性 順応性、設置性、置換性
関連規格 ISO/IEC 25010(旧 ISO/IEC 9126)

解説

ソフトウェアは、開発当初に想定したOSやハードウェアの上で永遠に動き続けるとは限りません。

Windowsで動いていた業務システムをLinuxに乗せ替える、オンプレミスからクラウドへ移行する、古いサーバから新しいサーバへリプレースする——こうした場面はIT現場の日常です。

このとき、「乗せ替えにどれだけの労力がかかるか」を測る指標が移植性です。移植性が高ければ、設定変更だけで動く。低ければ、ソースコードを大幅に書き換える必要が出てきます。

3つの副特性

ISO/IEC 25010では、移植性は3つの副特性に分解されます。

それぞれの守備範囲を区別することがポイントです。

副特性 英語名 意味
順応性 Adaptability 異なる環境(OS・ハードウェア)に適応できる度合い。設定変更や軽微な修正で対応できれば順応性が高い
設置性 Installability 指定された環境に簡単にインストール・アンインストールできる度合い
置換性 Replaceability 同じ環境で、別のソフトウェアと置き換えても同じ目的を果たせる度合い

移植性が「高い」と「低い」で何が違うか

移植性を一番つかみやすいのは、「移植性が高いソフト」と「低いソフト」を並べて、別環境に移すときの手間を比べることです。

◎ 移植性が高い:1つのソースを、ほぼそのまま動かせる

1つのソースコード
(標準仕様に準拠)
Windows / Linux / macOS / クラウド
いずれも 設定変更のみで動作

移行工数: / 修正範囲:設定ファイル・環境変数のみ

× 移植性が低い:環境ごとにソースを書き直す必要がある

1つのソースコード
(特定OSに依存)
Windowsでは動く/Linuxでは大幅改修が必要
パス区切り・API呼び出し・文字コードを書き直し

移行工数: / 修正範囲:ソースコード本体に及ぶ

▲ 移植時の「修正範囲の広さ」が、移植性の高低を決める

移植性を高める具体的な工夫

移植性は「設計の良し悪し」で大きく変わります。代表的な工夫を挙げます。

 ●OSやハードウェアに依存する処理を限定的なモジュールに集約する
 ●標準規格(POSIX、SQL標準など)に準拠する
 ●JavaやPythonなど、実行環境を抽象化する言語・仮想マシンを使う
 ●コンテナ技術(Docker等)でアプリと実行環境をパッケージ化する

例えば、Javaの「Write Once, Run Anywhere(一度書けばどこでも動く)」という思想は、移植性を最大化するための設計哲学です。

# 移植性の高い書き方の例(パスをハードコードしない)

# ❌ 悪い例(Windows環境に依存)

file_path = “C:\\Users\\data\\input.txt”

# ⭕ 良い例(OS非依存)

import os

file_path = os.path.join(os.environ[“HOME”], “data”, “input.txt”)

8つの品質特性の中での位置づけ

移植性は、ISO/IEC 25010で定義される8つの品質特性の1つです。他の特性との違いを押さえておきましょう。

品質特性 何を評価するか
機能適合性 必要な機能が揃っているか
性能効率性 処理速度・資源消費が適切か
互換性 他システムと共存・連携できるか
使用性 利用者にとって使いやすいか
信頼性 故障せず安定して動くか
セキュリティ 情報を守れるか
保守性 修正・改善がしやすいか
移植性 別の環境に移しても動かせるか

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 移植性の核心を3行で

・ソフトウェアを別環境(OS・ハード)に移して動かせる能力
・副特性は「順応性」「設置性」「置換性」の3つ
・ISO/IEC 25010で定義される8品質特性のうちの1つ


試験ではこう出る!

移植性は、FE・APの午前問題でソフトウェア品質特性の比較として出題されます。8特性の説明を並べてどれが移植性かを選ばせるパターン、もしくは副特性(順応性・設置性・置換性)の意味を問うパターンの2つが定番です。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
AP H30秋
午前 問46
ISO/IEC 25010の品質特性「移植性」の副特性として正しいものを選ぶ問題。 ・正解は「設置性」
・「機密性」「成熟性」「責任追跡性」がひっかけ
FE R元秋
午前 問46
ソフトウェアの品質特性のうち「移植性」の説明を選ぶ問題。 ・正解は「異なる環境への移行のしやすさ」
・信頼性・使用性・保守性の説明と区別
AP H25春
午前 問46
移植性に関する副特性「置換性」の説明を選ぶ問題。 ・他のソフトウェアに置き換えられる度合い
・順応性・設置性との混同に注意

📝 IPA試験での出題パターン

パターン1:「移植性の説明を選べ」
8つの品質特性の説明文が並び、移植性に該当するものを選ぶ形式。キーワードは「異なる環境」「移行」「適応」。「故障せず動く」(信頼性)、「使いやすさ」(使用性)、「修正のしやすさ」(保守性)はひっかけ。

 

パターン2:「副特性を選べ」
AP H30秋のように、移植性の副特性として正しい用語を問う形式。正解候補は「順応性」「設置性」「置換性」のいずれか。「機密性」「成熟性」「責任追跡性」はそれぞれセキュリティ・信頼性などの副特性であり、移植性とは別物として除外する。

 

ここまででOKです。ISO/IEC 25010の改定の経緯(旧9126との違い)まで深追いする必要はありません。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. ISO/IEC 25010で定義される品質特性「移植性」の説明として、最も適切なものはどれでしょうか?

  • A. システムが要求された機能を、定められた条件下で安定して提供し続けられる度合い。
  • B. 認可されていない利用者からの情報アクセスを防ぎ、データの機密性を維持する度合い。
  • C. ソフトウェアを、ある環境から別の環境(異なるOSやハードウェア)へ移して動作させやすさの度合い。

正解と解説を見る

正解:C

解説:
移植性は、ソフトウェアを異なる実行環境(OS・ハードウェア・プラットフォーム)に移行して動作させる際の容易さを示す品質特性です。副特性として「順応性」「設置性」「置換性」を持ちます。

選択肢Aは「信頼性」の説明です。信頼性は、定められた条件下で必要な機能を維持する能力を指し、副特性に成熟性・可用性・障害許容性などが含まれます。選択肢Bは「セキュリティ」の説明です。セキュリティは情報の機密性・完全性・可用性を守る特性であり、環境間の移行のしやすさを示す移植性とは目的が異なります。


よくある質問(FAQ)

Q. 移植性と互換性はどう違いますか?

移植性は「ソフトウェアを別の環境に移して動作させる能力」、互換性は「ソフトウェアが他のシステムと共存・連携できる能力」です。前者は環境を縦に移すイメージ、後者は別のシステムと横に並んで動くイメージと考えると区別しやすいです。互換性の副特性には「共存性」「相互運用性」が含まれ、移植性とは別の品質特性として整理されています。

Q. 旧規格 ISO/IEC 9126と現行の25010で移植性の扱いは変わりましたか?

基本的な考え方は変わっていませんが、副特性の構成が一部見直されています。旧9126では移植性の副特性に「環境適応性」「設置性」「共存性」「置換性」が含まれていましたが、25010では「共存性」が互換性の副特性に移動し、移植性の副特性は「順応性」「設置性」「置換性」の3つに整理されました。試験では現行の25010ベースの出題が中心です。

Q. クラウドネイティブ開発で移植性はどう実現されていますか?

代表例はDockerに代表されるコンテナ技術です。アプリケーションと実行に必要なライブラリ・設定をひとつのイメージにまとめることで、ローカルPC・オンプレサーバ・各種パブリッククラウドのいずれでも同じ動作を再現できます。Kubernetesによるオーケストレーションと組み合わせると、クラウドベンダーをまたいだ移行(マルチクラウド)も現実的になり、置換性の高さにつながります。

Q. 順応性と設置性は何が違うのですか?

順応性は「異なる環境に合わせて変化できる能力」、設置性は「指定された環境にインストール・アンインストールしやすい能力」を指します。順応性は移行先で正しく動くかという内部的な適応の話、設置性は導入手順の容易さという外側の手続きの話、と整理できます。実務で言えば、設定ファイルだけで複数OSに対応できる設計は順応性、ワンクリックインストーラーが用意されているのは設置性の高さの表れです。