ソフトウェア保守
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ソフトウェア保守またはソフトウェアメンテナンス(Software maintenance)とは、ソフトウェア工学において既存のソフトウェアを改良・最適化していくと共にバグを修正していくプロセスを意味する。ソフトウェア保守はソフトウェア開発工程の一部であり、ソフトウェアの実際の現場への投入後に行われる。ソフトウェア保守工程では、実際の使用で発見された問題点やバグを修正すると共に、そのソフトウェアのユーザビリティや可用性を改善するための機能追加も行う。
目次 |
[編集] 概要
ソフトウェア保守に特化したいくつかの技法がある。1つは静的スライシングと呼ばれる技法で、ある特定の変数を更新しているプログラムコードを全て見つけ出す方法である。プログラムコードのリファクタリングでよく使われ、2000年問題対応でも特に多用された。
ソフトウェア保守工程は、構造化プログラミング運動が盛んになったころに開発されたウォーターフォール・モデルで明確な工程として考慮されている。オブジェクト指向が盛り上がったころに開発されたスパイラルモデルでは、ソフトウェア保守に関して明確化されていない。いずれにしてもソフトウェア保守は重要であり、ソフトウェアのライフサイクル全体でかかるコストのうち3分の2が保守に費やされるという事実がある[1]。
ソフトウェア開発を行っている組織やチームは、バグや欠陥を管理する何らかの機構を持っている(バグ管理システム)。ソフトウェアは他の製品と同様、問題や欠陥を持った状態でリリースされるのが一般的である。問題を抱えたままのソフトウェアをリリースするのは、バグや欠陥の影響を考慮しても、そのソフトウェアがある程度の価値を生み出すレベルの品質であると、その開発組織が判断した結果である。
既知の問題点はリリースノートなどの形で文書化されるのが普通で、それによってユーザーは回避策を講じたり、そのソフトウェアに適した使用法を知ることができる。
ソフトウェアには未知の問題や欠陥もあり、ユーザーがそれらを発見することになる。そのような問題は開発組織に報告され、その組織のバグ管理システムに情報が入力される。
ソフトウェア保守の担当者らはそれらの問題を解決すべく働き、対処を施したソフトウェアを新たにリリースする。それは、パッチ(修正プログラム)やソフトウェアのマイナーチェンジとなることが多い。
[編集] 関連項目
- ソフトウェア
- ソフトウェア開発工程
- ソフトウェア製品ライフサイクル
- 能力成熟度モデル統合
- プロジェクトマネジメント
- バグ管理システム
[編集] 参考文献
- ^ Meilir Page-Jones (1980年).The Practical Guide to Structured Systems Design. New York: Yourdon Press. ISBN 0-917072-17-0.