Definition of Reuse - The reuse of a software artifact is its integration into another context.
Why reuse? - The purpose of reuse is to reduce cost, time, effort, and risk; and to increase productivity, quality, performance, and interoperability.
Scope of reuse for ESDS - The most common type of reuse is the reuse of software components, but other artifacts produced during the software development process can also be reused: system architectures, analysis models, design models, design patterns, database schemas, web services, etc.
- Software reuse may occur across similar systems (e.g., within the Earth science community) or across widely different systems (e.g., we may be able to reuse a component from outside the Earth science community).
What counts as reuse? - In general, if you have acquired (or used) a software development asset from another context that otherwise you would have written yourself, then you have experienced the benefit of reuse.
- Something that was originally written for a different Earth science project will usually be recognized as reuse.
- Integration of open source software that was originally developed in another context will generally be recognized as reuse.
What doesn't count as reuse? - Software developed and used repeatedly by the same people on the same project is regarded as "good programming practice" and is not typically counted as reuse.
- Product maintenance and new product versions; we do not usually claim the base code as reuse.
- Use of operating systems, database management systems, and other system tools is generally not regarded as reuse.
- The use of commercial off-the-shelf (COTS) software is generally not regarded as reuse.
|
|