Code reuse

software reusereusere-usereusablereusedpre-written codereusabilityreuse codecode reusabilityRe-usability of code
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.wikipedia
116 Related Articles

Domain engineering

In organizations, such practices are formalized and standardized by domain engineering, also known as software product line engineering.
It is a key concept in systematic software reuse.

Library (computing)

librarylibrariessoftware library
The software library is a good example of code reuse.
These may include configuration data, documentation, help data, message templates, pre-written code and subroutines, classes, values or type specifications.

Subroutine

functionfunctionssubroutines
These commonly include a "call" or use of a subroutine, object, class, or prototype.

Modular programming

modulesmodularmodule
Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.
Modular programming, in the form of subsystems (particularly for I/O) and software libraries, dates to early software systems, where it was used for code reuse.

Information hiding

data hidingencapsulationencapsulated
Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.
Before then, modularity was discussed by Richard Gauthier and Stephen Pont in their 1970 book Designing Systems Programs although modular programming itself had been used at many commercial sites for many years previously – especially in I/O sub-systems and software libraries – without acquiring the 'information hiding' tag – but for similar reasons, as well as the more obvious code reuse reason.

Reusability

reusableSoftware Reusabilityoften re-used
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.
* Code reuse

Software product line

Software Product Linesfamilies of related systemsproduct line
The characteristic that distinguishes software product lines from previous efforts is predictive versus opportunistic software reuse.

Inheritance (object-oriented programming)

inheritancesuperclasssubclass
Inheritance allows programmers to create classes that are built upon existing classes, to specify a new implementation while maintaining the same behaviors (realizing an interface), to reuse code and to independently extend original software via public classes and interfaces.

Object-oriented programming

object-orientedobject orientedobject-oriented programming language
These are some of the main goals behind the invention of object-oriented programming, which became one of the most common forms of formalized reuse.
OOP was developed to increase the reusability and maintainability of source code.

International Conference on Software Reuse

ICSR
The International Conference on Software Reuse (ICSR), is the primary scientific conference on software reuse, domain analysis, and domain engineering.

Reuse metrics

In software engineering, many reuse metrics and models are metrics used to measure code reuse and reusability.

Language binding

bindingsbindingbound
Major motives to create library bindings include software reuse, to reduce reimplementing a library in several languages, and the difficulty of implementing some algorithms efficiently in some high-level languages.

Software

Computer softwareSoftware & Programmingsoftware technology
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.

Ad hoc

ad-hocadhocAd hoc query
Ad hoc code reuse has been practiced from the earliest days of programming.

Computer programming

programmingcodingprogrammable
Ad hoc code reuse has been practiced from the earliest days of programming.

Douglas McIlroy

Doug McIlroyM. Douglas McIlroyMcIlroy
Software reuse as a recognized area of study in software engineering, however, dates only from 1968 when Douglas McIlroy of Bell Laboratories proposed basing the software industry on reusable components.

Bell Labs

Bell LaboratoriesBell Telephone LaboratoriesAT&T Bell Laboratories
Software reuse as a recognized area of study in software engineering, however, dates only from 1968 when Douglas McIlroy of Bell Laboratories proposed basing the software industry on reusable components.

Computer program

programprogramscomputer programs
The key idea in reuse is that parts of a computer program written at one time can be or should be used in the construction of other programs written at a later time.

Loose coupling

loosely coupledlooser couplingloosely-coupled
Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.

Cohesion (computer science)

cohesioncohesiveHigh Cohesion
Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.

Separation of concerns

separateSeparationcompletely separate
Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.

Object (computer science)

objectobjectsdata object
These commonly include a "call" or use of a subroutine, object, class, or prototype.

Class (computer programming)

classclassesPartial class
These commonly include a "call" or use of a subroutine, object, class, or prototype.

Prototype-based programming

prototype-basedprototypeprototypes
These commonly include a "call" or use of a subroutine, object, class, or prototype.