Asset Management Build System Use Cases
1.0 Specification
With many workproducts created across many delivery cycles from many teams using multiple tools and repositories, it is difficult for the business to preserve its investment in workproducts and leverage them as a strategic business asset and provide the trace-ability back to where and from whom the original workproducts came from. Having the right set of workproducts and relationships exposed in an asset repository for governance, search, and usage scenarios across teams and projects is central to the value proposition for asset management repositories.
Roles
In these scenarios there are two major roles, asset submitter and asset consumer. These roles overlap functional roles like developer, architect, tester and so forth. For example, this means a person in the role of developer can also take on the roles of asset submitter and asset consumer. These roles are briefly introduced.
- Asset Submitter: performs asset preparation activities outlined in the publish scenario.
- Asset Consumer: performs asset searching and retrieval activities outlined in the search and retrieve scenarios.
Security / Access Rights
In these scenarios it is assumed the asset submitter and the asset consumer have already provided user authentication. This means they are not providing user information as they publish an asset or as they search or retrieve assets. It is expected that the asset repository will determine that context from previous information provided by the respective user.
Refer to the
definitions page for descriptions on asset management related terms used here.
This page is targeted for use cases around build system scenarios. See the
Human Interaction oriented use cases here.
Scenarios Overview - Asset Management System and Build System Integration
Asset management plays an important role across the software delivery cycle. Here we will focus on the following scenarios:
An example of these scenarios
is found here.
Query
Scenario: Build system queries the Asset Management system for assets to include in the build
In this scenario the build system searches for possible assets to include in the build. In this scenario the build system knows the Name of the assets to include; but wants to find the latest version of those assets. The outcome of this scenario is a result list from the query which the build script uses to select the assets.
- The build script in the build project specifies the assets to be included in the build.
- The build system queries the asset repository for the latest approved version of the specific assets.
The build system queries using the asset's Name (not depicted), plus the asset's state (shown as "Approved" and "In Dev"). For our purposes here the "Approved" assets are those which can be included in a build.
An example of this
query can be found here.
Retrieve
Scenario: Build system retrieves build assets from Asset Management system to include in the build
The build system has identified the possible assets to include in the build. In this scenario the build system retrieves the specific assets from the Asset Management system to be included in the build.
- The build system examines the results of the search and selects the latest version of the approved assets.
- The build system retrieves the latest version of the approved assets.
- The build system performs the build.
In the example below the greyed out assets are not selected because they are either not in the "Approved" state or they are not the latest version of the asset.
An example of
retrieve can be found here.
Publish
Scenario: Build system publishes assets to the Asset Management system
The build system has retrieved the assets to include in the build. In this scenario the build system uses the assets from the Asset Management system (automation tools/scripts, common components, specifications etc.) as well as source from a source control system and possibly other places to conduct the build. As part of the build process the automated tests are executed and code scans are performed. When the build is completed the build assets are published to the Asset Management system.
- the build system uses the assets from the Asset Management system and other sources to perform the build
- the build system invokes the tests and scans
- the build system publishes the build assets to the Asset Management system including:
- references to the location of build project
- references to the location of test results and scans
- relationships of the build asset to the assets which were used in the build
- relationships to other assets requested by the build script (such as a release asset)
In the example below the service implementation asset is published with references to the build results, test results, and scan results. In this scenario the EAR file is included in the asset. The build system also publishes the relationships of the built asset to the assets included in the build; in this case the Open Source component (log4j) and the XSD and WSDL service spec.
An example of
publish can be found here.