ソフトウェア保守

ソフトウェア保守とは



ソフトウェア保守(ソフトウェアメンテナンス)は、リリース済みのソフトウェアを改良・最適化し、バグを修正するプロセスです。ソフトウェア製品ライフサイクルにおいて主要な一部であり、実際の運用開始後に行われます。具体的には、使用中に発見された問題点の修正や、ユーザビリティ・可用性を向上させるための機能追加が含まれます。ソフトウェア保守は、開発段階で想定しきれなかった問題に対処し、ソフトウェアの長期的な価値を維持するために不可欠です。

ソフトウェア保守の概要



ソフトウェア保守のプロセスは、JIS規格によって規定されており、詳細な手順が定められています。特に、ウォーターフォールモデルでは明確な工程として扱われていましたが、スパイラルモデルでは明示されていません。しかし、どの開発モデルにおいても、ソフトウェア保守は重要であり、ソフトウェアのライフサイクル全体でかかるコストの約3分の2が保守に費やされるというデータもあります。

ソフトウェア開発組織は、バグや欠陥を管理する仕組みを持ち、問題点を抱えたままリリースされるソフトウェアに対処します。既知の問題点はリリースノートなどで文書化され、ユーザーが回避策を講じられるようにします。また、ユーザーによって発見された未知の問題は開発組織に報告され、保守担当者が解決に当たります。その結果、パッチやマイナーチェンジという形でソフトウェアが更新されることが一般的です。

ソフトウェア保守の種類



ソフトウェア保守は、その動機によって細分化されます。JIS X 0161:2008では、以下の種類が定義されています。

適応保守 (adaptive maintenance):
環境の変化に対応するための修正です。例えば、新しいOSやデータベースに対応するために、ソフトウェアを調整します。
是正保守 (corrective maintenance):
バグや欠陥を修正するための受動的な修正です。いわゆるバグ修正がこれに当たります。
緊急保守 (emergency maintenance):
是正保守までの間、システム運用を確保するための緊急的な修正です。一時的な対策を講じます。
完全化保守 (perfective maintenance):
潜在的な欠陥が表面化する前に、先回りして修正を行うことです。ソフトウェアの性能向上や改善を行います。
予防保守 (preventive maintenance):
潜在的な障害が運用障害になる前に、発見し修正することです。システム全体の信頼性を高めるための措置です。

ソフトウェア保守の技術



ソフトウェア保守には、いくつかの特有な技術が用いられます。その一つが静的スライシングと呼ばれる技術で、特定の変数を更新しているプログラムコードを全て見つけ出す方法です。この技術は、プログラムコードのリファクタリングや2000年問題対応などで広く活用されました。

関連項目



ソフトウェア
ソフトウェア開発工程
ソフトウェア製品ライフサイクル
ソフトウェア保守者
能力成熟度モデル統合
ソフトウェアプロジェクト管理
バグ管理システム

外部リンク



ソフトウェア保守契約書
ソフトウェア保守成熟度モデル
Paper on Software Maintenance as Part of the Software Life Cycle (タフツ大学)
Journal of Software Maintenance
Software entropy
Software Evolution Research Consortium

ソフトウェア保守は、ソフトウェアの品質を維持し、長期的な利用を可能にするために不可欠な活動です。適切な保守計画と技術を用いることで、ソフトウェアのライフサイクル全体でのコストを最適化し、ユーザー満足度を高めることができます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。