Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Reusability
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Quality of software relevant to reuse}} {{about|reusability in computer science}} {{More citations needed|date=July 2012}} In [[computer programming]], '''reusability''' describes the quality of a [[software]] asset that affects its ability to be used in a [[software system]] for which it was ''not'' specifically designed. An asset that is easy to [[Code reuse|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 (computing)|platform]] software. Reusability brings several aspects to [[software development]] that do not need to be considered when reusability is not required. Reusability may be impacted by various [[DevOps]] aspects including: [[software build|build]], [[packaging]], [[distribution (business)|distribution]], [[installation (computer programs)|installation]], [[computer configuration|configuration]], [[Software deployment|deployment]], [[Software maintenance|maintenance]] and [[upgrade]]. If these aspects are not considered, software may seem to be reusable based on its [[software design|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: * [[Adaptability|Adaptable]] * Brief; small size * [[Consistency]] * [[Correctness (computer science)|Correctness]] * [[Extensibility]] * [[Speed|Fast]] * Flexible * [[Generic programming|Generic]] * Localization of volatile/changeable design assumptions * [[Modularity (programming)|Modularity]] * [[Orthogonality]] * Simple; low [[Complexity (disambiguation)|complexity]] * [[Stability model|Stability]] under changing [[requirements]] <!--==See also==-->
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)