平成29年度 春期 ITパスポート試験 公開問題 問40 解説 ソフトウェア保守の定義
ソフトウェア保守で行う作業はどれか。
- ア ソフトウェア受入れテストの結果,発注者が開発者に依頼するプログラム修正
- イ プログラムの単体テストで発見した機能不足を補うための,追加コードの作成
- ウ プログラムの単体テストで発見したバグの修正
- エ 本番業務で発生したシステム障害に対応するためのプログラム修正 ✓ 正答
解説
この問題は、ソフトウェア開発のライフサイクルにおける「開発工程」と「保守工程」の境界線を理解しているかを問うものです。判断のポイントは、システムがすでに完成し、実際に業務で使われている(本番稼働している)かどうかです。本番環境で動いているものに対して行う修正のみが「保守」に該当します。
開発工程と保守工程の違い
ソフトウェア開発は、要件定義から始まり、設計、プログラミング、テストという順序で進みます。このテストまでの過程は「開発」の範囲です。したがって、テスト段階でバグや不足が見つかって修正を行うことは、あくまで開発プロセスの一部(手戻りや品質向上)とみなされます。
これに対し「保守」とは、システムが完成してユーザーの元へ引き渡され、本番業務として運用が開始された後に発生する作業を指します。具体的には、運用中に見つかった不具合の修正(障害対応)、OSのバージョンアップに伴う改修(環境変化への対応)、ユーザーからの要望による機能追加(拡張保守)などが含まれます。
試験での判断基準
ITパスポート試験において「保守」という言葉が出てきたら、頭の中で以下の図式を思い浮かべてください。
- 開発中(設計・テスト):バグ修正やコード追加は「開発工程の品質改善」
- 本番稼働後(運用・管理):バグ修正やコード追加は「保守工程の作業」
この問題の選択肢ア、イ、ウは、すべてテスト段階(開発中)での修正を指しています。これらは開発プロセスの改善作業であり、本番稼働後の対応ではありません。エのみが「本番業務」という言葉が含まれており、完成後の維持管理を指しているため、唯一の保守作業といえます。
実務における意義
システム開発の現場では、開発工程と保守工程を明確に区別することが、予算管理やプロジェクトの進捗管理において非常に重要です。例えば、開発期間中に発生した修正を安易に「保守作業」として扱ってしまうと、開発予算と運用予算の区分が曖昧になり、どちらのコストで対応すべきかが不明瞭になってしまいます。また、本番環境で稼働中のプログラムを修正する場合は、業務への影響を最小限にするための計画や、修正が他に悪影響を及ぼさないかの慎重な検証が求められます。この問題は、システムが完成した後のライフサイクルを見据えた、ITエンジニアとしての基本的な責任範囲を意識させる重要な問いです。