# Reusability

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Reusability
> Markdown URL: https://mediated.wiki/source/Reusability.md
> Source: https://en.wikipedia.org/wiki/Reusability
> Source revision: 1328453777
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Quality of software relevant to reuse}}
{{about|reusability in computer science}}
{{More citations needed|date=July 2012}}
In [computer programming](/source/computer_programming), '''reusability''' describes the quality of a [software](/source/software) asset that affects its ability to be used in a [software system](/source/software_system) for which it was ''not'' specifically designed. An asset that is easy to [reuse](/source/Code_reuse) and provides utility is considered to have high reusability. A related concept, '''leverage''' involves modifying an existing asset to meet system requirements.<ref>{{cite web|author1=Lombard Hill Group|title=What is Software Reuse|url=http://lombardhill.com/What_Reuse.htm|archive-url=https://web.archive.org/web/20141022010101/http://lombardhill.com/What_Reuse.htm|website=www.lombardhill.com|publisher=Lombard Hill Group|access-date=22 October 2014|archive-date=2014-10-22|url-status=dead|date=October 22, 2014}}</ref>

The ability to reuse can be viewed as the ability to build larger things from smaller parts, and to identify commonality among the parts. Reusability is often a required characteristic of [platform](/source/platform_(computing)) software. Reusability brings several aspects to [software development](/source/software_development) that do not need to be considered when reusability is not required.

Reusability may be impacted by various [DevOps](/source/DevOps) aspects including: [build](/source/software_build), [packaging](/source/packaging), [distribution](/source/distribution_(business)), [installation](/source/installation_(computer_programs)), [configuration](/source/computer_configuration), [deployment](/source/Software_deployment), [maintenance](/source/Software_maintenance) and [upgrade](/source/upgrade). If these aspects are not considered, software may seem to be reusable based on its [design](/source/software_design), but may not be reusable in practice.

Many reuse design principles were developed at the WISR workshops.<ref>{{cite web |url=http://www.umcs.maine.edu/~ftp/wisr/SEN-pap/node1.html |title=Design for Reuse and Object Oriented Reuse Methods |publisher=Umcs.maine.edu |date=1995-01-20 |access-date=2012-07-31 |url-status=dead |archive-url=https://web.archive.org/web/19970715093310/http://www.umcs.maine.edu/~ftp/wisr/SEN-pap/node1.html |archive-date=1997-07-15 }}</ref> Although lacking consensus candidate design features for software reuse include:
* [Adaptable](/source/Adaptability)
* Brief (small size)
* [Consistency](/source/Consistency)
* [Correctness](/source/Correctness_(computer_science))
* [Extensibility](/source/Extensibility)
* [Fast](/source/Speed)
* Flexible
* [Generic](/source/Generic_programming)
* Localization of volatile/changeable design assumptions
* [Modularity](/source/Modularity_(programming))
* [Orthogonality](/source/Orthogonality)
* Simple (low [complexity](/source/Complexity_(disambiguation)))
* [Stability](/source/Stability_model) under changing [requirements](/source/requirements)

<!--==See also==-->
==See also==
* [Code reuse](/source/Code_reuse)

==References==
{{Reflist}}

{{Software quality}}
{{Authority control}}

Category:Source code
Category:Software quality

---
Adapted from the Wikipedia article [Reusability](https://en.wikipedia.org/wiki/Reusability) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Reusability?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
