Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
Freenet DSL
Who's Online
8 user(s) are online (7 user(s) are browsing encyclopedia)

Members: 0
Guests: 8

more...
browser tip
recommendation!
Sponsored
partner

Reusability

In computer science and software engineering, reusability is the likelihood a segment of structured code can be used again to add new functionalities with slight or no modification. Reusable code reduces implementation time, increases the likelihood that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required.

Subroutines or Function (programming)s are the simplest form of reuse. A chunk of code is regularly organized using module (programming) or Namespaces. Proponents claim that Object (computer science)s and software components offer a more advanced form of reusability, although it has been tough to objectively measure and define levels or scores of reusability.

The ability to reuse relies in an essential way on the ability to build larger things from smaller parts, and being able to identify commonality among those parts. Reusability is often a required characteristic of platform (computing) software. Reusability brings several aspects to software development that do not need to be considered when reusability is not required.

Reusability implies some explicit management of software build, packaging, distribution, installation (computer programs), configuration, deployment, maintenance and upgrade issues. If these issues are not considered, software may appear to be reusable from software_design point of view, but will not be reused in practice.

Software reusability more specifically refers to design features of a software element (or collection of software elements) that enhance its suitability for reuse.

Candidate design features for software reuse include:

  • Adaptable
  • Brief: small size
  • Flexible
  • Parameterization
  • Generic programming
  • Fast
  • Simple: low complexity
  • Localization of volatile (changeable) design assumptions (David Parnas)
  • Modularity (programming)
  • Consensus has not yet been reached on this list on the relative importance of the entries nor on the issues which make each one important for a particular class of applications.

    =See also=

  • Ilities
  • =External Links=

  • [http://www.geocities.com/tablizer/reustalk.htm#reuse_bloat The Reuse Dilemma]