Reference implementation
Encyclopedia
In the software development process
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...

, a reference implementation (or, less frequently, sample implementation or model implementation) is the standard from which all other implementations, with their attendant customizations, are measured, and to which all improvements are added. An improving reference implementation in turn reflects its unchanging specification
Specification (technical standard)
A specification is an explicit set of requirements to be satisfied by a material, product, or service. Should a material, product or service fail to meet one or more of the applicable specifications, it may be referred to as being out of specification;the abbreviation OOS may also be used...

, or else an attempt at an implementation may prove that the specification is impractical and needs improvement itself. Testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 the implementation-specification relationship further enhances the production
Product Family Engineering
Product family engineering , also known as product line engineering, is a synonym for "domain engineering" created by the Software Engineering Institute, a term coined by James Neighbors in his 1980 dissertation at University of California, Irvine...

's inter-process efficiencies:

A reference implementation may or may not be production quality. For example, the Fraunhofer
Fraunhofer Society
The Fraunhofer Society is a German research organization with 60 institutes spread throughout Germany, each focusing on different fields of applied science . It employs around 18,000, mainly scientists and engineers, with an annual research budget of about €1.65 billion...

 reference implementation of the MP3
MP3
MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented digital audio encoding format using a form of lossy data compression...

 standard usually does not compare favorably to other common implementations, such as LAME
LAME
LAME is a free software codec used to encode/compress audio into the lossy MP3 file format.-History:The name LAME is a recursive acronym for "LAME Ain't an MP3 Encoder". Around mid-1998, Mike Cheng created LAME 1.0 as a set of modifications against the "8Hz-MP3" encoder source code...

, in listening tests that determine sound quality.

Reference implementations may also be prohibited by licensing for commercial use. For example, The Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 Java EE RI application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 is referenced by a great deal of Java EE training literature. However, it cannot be licensed for production use.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK