Concept: Reusable Asset
A cohesive collection of artifacts that solves a specific software development problem, created with the intent of reuse.
Relationships
Main Description

A reusable software asset is any cohesive collection of artifacts that solves a specific problem or set of problems encountered in the software development life cycle. A reusable asset is created with the intent of reuse.

The asset may have a variability point, which is a location in the asset that may have a value provided or customized by the asset consumer. The asset has rules for usage, which are instructions describing how the asset should be used. [OMG]

Assets can be broadly categorized in terms of their level of implementation:

  • No implementation. These assets have no implementation, and are represented in an abstract form (such as a model or document). Such assets include architectural patterns, design patterns, architectural mechanisms, architectural styles, and reference architectures.
  • Partial implementation. These assets are considered partial implementations, but have a variability point and require additional elements before they can be instantiated. Such assets include frameworks and packaged applications.
  • Complete implementation. These assets are considered to be complete implementations, and can be instantiated as-is, without modification. Such assets include components, component libraries, and legacy systems.

The Reusable Asset Specification (RAS) defines a standard way to package reusable software assets. A reusable asset packaged following this standard has a set of files that implement the solution, and a structured set of meta information that defines and describes the reusable asset as a whole. The specification includes assets that are UML models, source code, binary code, test cases, requirements, and so on.

For more information, see Understanding Architectural Assets:
http://www.ibm.com/developerworks/rational/library/sep07/eeles/index.html

More Information