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
|