受託したシステムの新規開発において, ソフトウェアを本番環境に移行するための計画を顧客に説明した。この計画に基づいた作業を実施する工程として, 適切なものはどれか。
平成23年度 秋期 ITパスポート試験 問48
この問題の解説と、これまでの解答の記録です。
問 48
不正解ア
結合テストは、単体テストを終えた複数のプログラムやモジュールを組み合わせ、モジュール間のインタフェース (受渡しするデータや呼出しの手順) が設計どおりに正しく連携するかを検証する開発工程である。実施されるのは開発側のテスト環境であって本番環境ではなく、目的も品質の作り込みと欠陥の摘出にある。本番環境への移行計画に基づいて移行作業を行う工程ではないため誤りである。
不正解イ
システムテストは、ハードウェアやネットワークも含めたシステム全体を対象として、要件定義で決めた機能・性能・信頼性・セキュリティなどの要求を満たしているかを開発者側が総合的に検証する工程である。本番環境に近い構成のテスト環境を用意して行うことはあるが、それはあくまで検証のためであり、ソフトウェアを本番環境へ移して稼働させる作業そのものではない。テストに合格した後に導入 (移行) を行うという順序関係にあるため誤りである。
- ウ
正解 正解はウ。ソフトウェア導入とは、開発が完了したソフトウェアを実際に業務で使う環境、すなわち本番環境へ組み込んで稼働できる状態にする工程である。共通フレームのソフトウェアライフサイクルではソフトウェア導入プロセスとして位置付けられ、その標準的な流れは、まず導入計画 (移行計画) を作成し、次にその計画を顧客 (取得者) に説明して合意を得て、最後に計画に従って実際の移行作業を実施する、というものである。本問の記述はこの流れにそのまま当てはまる。「ソフトウェアを本番環境に移行するための計画を顧客に説明した」が導入計画の作成と合意にあたり、「この計画に基づいた作業を実施する」がまさに導入作業の実施にあたるからである。ここで実施される作業には、本番環境へのプログラムの配置とセットアップ、初期データや既存システムからのデータの移行、利用者アカウントや権限の設定、本番環境での稼働確認、利用者への操作説明などが含まれる。新規開発を受託した立場では、こうした移行は顧客の業務を止めかねない作業であるため、移行の日程、手順、役割分担、問題が起きたときの切戻し手順までを計画として事前に顧客へ説明し、承認を得たうえで実施することが求められる。設問が「計画を顧客に説明した」に続けて「この計画に基づいた作業を実施する工程」を問うている以上、答えは移行作業そのものを行う工程であるソフトウェア導入となる。
不正解エ
ソフトウェア保守は、システムが本番環境で稼働を開始した後に、発見された障害の修正、法制度や業務の変更への対応、性能改善や機能追加などを行う工程である。時系列でいえばソフトウェア導入によって本番稼働が始まった後の段階にあたる。本問はこれから本番環境へ移行しようとしている新規開発の局面を扱っており、稼働後の維持・改善を担う保守は該当しないため誤りである。
- ソフトウェアライフサイクルの工程順序 — 企画・要件定義 → 設計 → プログラミング → テスト (単体テスト・結合テスト・システムテスト) → ソフトウェア導入 → ソフトウェア受入れ (受入れテスト・検収) → 運用・ソフトウェア保守、という流れを押さえる。本番環境への移行 (マイグレーション) を実際に行うのはソフトウェア導入の工程であり、開発側のテスト工程より後、運用・保守より前に位置する。なお共通フレームでは、顧客が行う受入れテストと検収はソフトウェア受入れの工程としてソフトウェア導入の後に置かれる点に注意する。
- ソフトウェア導入プロセスの中身 — 導入計画 (移行計画) の作成 → 顧客への説明と合意 → 計画に基づく移行作業の実施、という手順を踏む。作業内容は本番環境へのプログラム配置、データ移行、利用者設定、稼働確認などで、顧客業務への影響が大きいため日程・手順・役割分担・切戻し手順を事前に計画し承認を得ることが重要である。