ソフトウェアの再利用
ソフトウェアの再利用とは,ソフトウェア(プログラムのほかドキュメントなども含む)そのもの,及びソフトウェア開発に必要な知識や手順(ソフトウェア開発プロセス)に対し何らかの形式化を行い,繰り返し利用することである.
- 再利用の目的
フトウェアを再利用する目的は以下である.
- 品質向上
実績のある部品を利用することによる品質の向上
- 生産性向上
類似機能を繰り返し作成しないことによる生産性の向上
- 作業の標準化
API等の統一によるプログラムの統一性の向上
- 移植,互換性の向上
- 再利用可能なもの
再利用可能なものには,次のものがある.
- コードフラグメント
- 機能アーキテクチャ
- 内部仕様
- 外部仕様
- 環境仕様
- 再利用の局面
- Software development with reuse (再利用による)
再利用により,ソフトウェアを開発する.
- Software development for reuse (再利用のための)
再利用のための部品を開発する.
- 再利用コスト
- 部品開発コスト(20~25%増)
信頼性,汎用性,標準準拠性
- ライブラリ運用コスト
- 保守コスト
- 再利用時のコスト
再利用のための部品の利用方法の理解
- その他
教育,性能低下
- 再利用率
- 再利用率 = 再利用規模 /(新規開発規模 + 改造規模 + 再利用規模)
流用: 無修正で利用(コンパイル単位)
- 再利用利得 = 削減工数 - 再利用コスト
- 再利用利得率 k = 削減工数/再利用なしの開発工数
k = 0.15 : 小規模部品
k = 0.65 : 中規模部品
k = 0.92 : 大規模部品
- 再利用の難しさ
ソフトウェアの部品化と再利用の推進には多くのメリットがあるのは確かであるが,なかなか進展しないのは,次のような課題があるからである.
- 汎用化を目的とせず使い捨てコードを書く方が短期的コストは低い.
あるいは,再利用に足る品質を持ったコード作成に必要な資金投下がそもそもできない.
- 高い再利用性を持った部品を作成するには,使い捨てコードよりも高度な技術が必要となる.
- 開発者が部品を信用していない.部品に関する責任の所在が明らかでない場合,基幹システムのような重要なシステムに部品を使うのが躊躇される.