Purpose
To find a Reusable Asset that fits specific criteria (e.g., context, features, platform, performance, etc.).
This task locates the asset and determines its applicability in the desired context, the application of the asset
occurs in Task: Use Asset.
|
Relationships
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Main Description
There are several styles of searching, some more structured than others.
One structured approach to searching is to use values from category schemas. This approach implies
that the assets in the repository have been classified according to the category schema. And then these values are
available as filters that can be selected and combined with other filters to create a search query. This approach
is useful if the category schema is well understood by the Asset Consumer.
Searching with keywords is a little less structured and it does imply the keyword or something similar
to it is found in the assets. When searching with keywords the matches may be found in the asset metadata or it may be
found in the asset artifacts. Some Repositories provide fuzzy searching, taking into consideration misspelled words or
similar words.
A less structured style of searching is to use tags. With this approach the Asset Consumer associates
their own word(s) with the asset; this allows the Asset Consumer to view one or more assets in the repository using
their own words.
One of the challenges for Asset Consumers conducting searches is to browse result lists as the number of assets in the
repository grows. Reducing the number of clicks to arrive at a useful, not-overwhelming result list becomes a
challenge.
It is possible to combine multiple search techniques into a single search query. For example, an Asset Consumer may use
some keywords, combined with several filters to create a search query, such as "claims" with the filters "Type:
service" and "State: Approved". This means the Repository could search for assets of type Service, in the state of
Approved, containing the term "claims" somewhere in the metadata or the asset artifacts.
Another helpful technique to minimize search efforts is to leverage asset relationships. Creating coarse-grained assets
which "contain" other assets, either by-value or by-reference, can dramatically cut down on the search time and effort.
See Concept: Composing Solutions: Recipes to read more about coarse-grained assets.
|
Steps
Search for Asset
Purpose: To search for an asset that fits specific criteria (e.g.,
context, features, platform, performance, etc.).
The Asset Repository is searched for assets that match specific search
criteria, both functional and non-functional.
You may have a broad range of intentions when conducting a search. You may be looking for a specific asset to be
used immediately, or may be looking for a class of capabilities as part of some discovery (i.e., determining what
resources are available).
The challenge of searching through a large number of assets is that the hit rate is so high that the number of returned
items is unmanageable. As humans we tend to be discouraged when we see a large number of hit results and therefore will
not browse them. Therefore, it is recommended that the search criteria be as specific as possible, thereby
narrowing the range of possible assets. This can be managed through partitioned repositories wherein the search can be
scoped to a particular repository or to section within the repository.
Some examples of search criteria include:
-
Asset name, asset type, version, and so on: Searching by asset name is a directed search.
-
Asset relationships (all assets related to a specific asset): Supports the searching and retrieval of
component systems that Jacobson, et. al., discusses.
-
Asset classification (asset context, descriptors, etc.): Specify that you are looking for assets with
a specific development context, including specific tools and versions of libraries, and so on.
-
Asset solution: Specify that you are looking for assets that contain asset artifacts of a specific type.
Searching for assets can be highly dependent on subjective data. As such, a search engine that can go beyond actual
word matching and look for synonyms, or can use semantic nets, or similar features will improve the hit rate. Also, the
elements which are actually examined as part of the search is dependent on the implementation of the Asset Repository. In some cases, only the external asset
documentation is examined. In other cases more advanced searching is performed, which includes searching the
internal asset documentation, as well as the documentation for each of the Artifact: Asset Artifacts.
After reviewing the list of assets that match the specific search criteria you may be able to do the following:
-
Decide that one of the assets will work, and this task ends.
-
Decide that none of the assets will work, stops searching, and this task ends.
-
Decide that none of the assets will work, but decides to re-execute the search with different criteria.
-
Decide that one of the assets may work but requires further investigation, and perform the step: Browse Asset.
|
Browse Asset
Purpose: To review an asset's description and proposed solution.
Generally browsing an asset implies a less formal style of assessing the applicability of the asset. In most cases this
means the Asset Consumer is navigating the asset overview and other introductory information. The Asset Consumer may
browse the assets artifacts for general understanding.
In this step, you take the search for the desired asset one step further by taking a look at the asset's metadata
and contents.
There are several purposes for browsing an asset. One purpose may be largely informative -- to gain a general
understanding of the asset and its capabilities. Another purpose may be more specific -- to perform a fit
analysis between the asset and a specific context. The latter is discussed in the next step: Evaluate Asset.
After reviewing the asset details, you may do one of the following:
-
Decide that the asset will work, and this task ends
-
Decide that the asset will not work, stops searching, and this task ends
-
Decide that the asset will not work, but want to re-execute the search with different criteria, so step: Search for Asset is re-executed correctly
-
Decide that the asset may work, but requires further investigation. Confirm the following: step: Evaluate Asset
|
Evaluate Asset
Purpose: To take a much more detailed
look at the asset to determine if it meets specific criteria.
In this step, you perform a fit analysis to see if the asset will work in the required context. This analysis may
involve applying the asset into a temporary location and validating its compliance with your requirements,
including testing out variability point binding and customization ideas. For information on applying an asset, see Task: Use Asset. For more information on assessing the applicability
of an asset, see Guideline: Assessing Asset Applicability.
This step generally implies a more formal style of assessing the applicability of an asset. There are several key
perspectives to evaluate, as listed below:
-
Evaluate Asset's Business Fit
-
Evaluate Asset's Organizational Fit
-
Evaluate Asset's Process Fit
-
Evaluate Asset's Engineering Fit
|
Accept Asset
Purpose: To "officially" accept the asset and capture usage
recommendations.
This acceptance defines a technical acceptance and does not override the necessary managerial acceptance needed, if
any. You may take notes on recommendations for customizing the asset for the required context. This ensures that what
was learned while performing the fit analysis is not forgotten and reduces duplicate effort between determining if the
asset will work and making it work.
The Search Asset task produces largely intangible work products such as an understanding of an asset. It may also
produce feedback, testimonials, and such (see Task: Provide Asset Feedback).
|
|
More Information
Concepts |
|
Guidelines |
|
Tool Mentors |
|
Licensed Materials - Property of IBM
© Copyright IBM Corp. 1987, 2012. All Rights Reserved.
|
|