コンピュータサイエンスとソフトウェアエンジニアリングにおいて、再利用とは、ソフトウェア製品開発プロセス内で何らかの形で既存の資産を使用することです。これらの資産は、ソフトウェア開発ライフサイクルの製品と副産物であり、コード、ソフトウェアコンポーネント、テストスイート、設計、ドキュメントが含まれます。再利用の反対の概念は、特定のシステム要件を満たすために必要に応じて既存の資産を変更するレバレッジです。再利用は、資産の個別に管理されたバージョンの作成を意味するため[説明が必要]、レバレッジよりも好まれます。[1]
サブルーチンや関数は、再利用の最も単純な形式です。コードの塊は、通常、モジュールまたは名前空間を使用してレイヤーに編成されます。支持者は、オブジェクトとソフトウェア コンポーネントはより高度な再利用性を提供すると主張していますが、再利用性のレベルやスコアを客観的に測定して定義することは困難でした。
再利用の能力は、本質的に、小さな部品から大きなものを構築する能力と、それらの部品間の共通性を識別する能力に依存します。再利用性は、多くの場合、プラットフォームソフトウェアに必要な特性です。再利用性は、再利用性が要求されない場合には考慮する必要のない いくつかの側面をソフトウェア開発にもたらします。
再利用性には、ビルド、パッケージ化、配布、インストール、構成、展開、保守、アップグレードの問題を明示的に管理することを意味します。これらの問題が考慮されない場合、ソフトウェアは設計の観点からは再利用可能であるように見えても、実際には再利用され ません。
ソフトウェアの再利用性とは、より具体的には、再利用の適合性を高めるソフトウェア要素 (またはソフトウェア要素の集合) の設計機能を指します。
WISRワークショップでは多くの再利用設計原則が開発されました。[2]
ソフトウェア再利用の候補となる設計機能には、次のようなものがあります。
- 適応性
- 概要: 小型
- 一貫性
- 正確さ
- 拡張性
- 速い
- フレキシブル
- ジェネリック
- 不安定な(変更可能な)設計仮定のローカリゼーション(David Parnas)
- モジュール性
- 直交性
- シンプル:複雑さが低い
- 変化する要件に対する安定性
このリストでは、エントリの相対的な重要性についても、また、特定のクラスのアプリケーションにとって各エントリが重要である理由についても、まだ合意が得られていません。
参照
参考文献
- ^ Lombard Hill Group (2014 年 10 月 22 日)。「ソフトウェアの再利用とは何か」。www.lombardhill.com。Lombard Hill Group。2014 年 10 月 22 日時点のオリジナルよりアーカイブ。2014年10 月 22 日閲覧。
- ^ 「再利用のための設計とオブジェクト指向の再利用方法」。Umcs.maine.edu。1995 年 1 月 20 日。1997 年 7 月 15 日時点のオリジナルよりアーカイブ。2012年 7 月 31 日閲覧。
