可重用性

计算机科学和软件工程中的可重用性（reusability），是指可以重新使用以某種软件开发过程下產生的已有「資產」（assets）。「資產」是指在軟體開發生命週期中產生的產品以及副產品，可以是程式碼、軟體模組、測試套件、設計以及文件。代碼複用就是程式碼可重用性的呈現。另外一種概念稱為「槓桿」（leverage），是指為了符合特定的系統需求，修改現有的資產。因為重用可以減少同一資產的不同版本，因此在版本管理上會比槓桿要好。

以程式碼來說，子程序或函式是可以重用的最小單位。一長串的程式碼一般會用模块或命名空间進行管理，區分為不同的層次。一些支持者認為对象以及軟體組件是可重用性更高的型式。不過很難客觀的衡量可重用性，為其定義等級或是評分。

可重用性非常依賴由較小的部份建構出較大東西的能力，而且要可以識別出這些部份的。可重用性是系统平台軟體必要的特質。可重用性也帶出許多软件开发中的不同層面，若沒有可重用性，這些層面可以不需要考慮。

可重用性表示對於軟體組建、包裝、分销、安裝程式、、软件部署、軟體維護和升級，有一些具體的管理方式。若沒有考慮這些議題，可能在软件设计的觀點來看，可以復用程式，但在實務上仍然無法復用。

軟體可重用性更多的是指軟體單元（或是許多軟體單元）在設計上的特質，這個特質使其適合於復用。

許多復用的設計原則是在WISR的workshop中提出的。

以下是一些軟體重用旳設計特徵：
 
 簡短：長度不長
 一致性
 正确性
 可扩展性
 速率
 灵活的
 泛型
 不穩定（）設計假設的本地化（David Parnas）
 模块化编程
 
 
 簡單：低複雜性
 在需求變化下可以保持。

有關上述特徵中，哪一個比較重要，或是在特定應用下，那一個議題影響比較大，目前也還沒有共識。

相關條目
 代码复用

參考資料

源代码
软件工程
软件质量