Generating reusable software assets from distributed artifacts
First Claim
1. A computer-implemented system comprising:
- a plurality of repositories to store artifacts comprising software instructions for a plurality of different software development environments, wherein the artifacts comprise source code written in one or more programming languages of the software development environments;
one or more computers;
a plurality of distributed asset sources executing on the one or more computers to monitor the repositories, detect one or more new or updated artifacts within the repositories, and in response to detecting the new or updated artifacts within the repositories, automatically generate, based on an asset template, one or more software assets in a normalized format that complies with a data description language, wherein each of the software assets corresponds to a set of one or more of the artifacts within the software development repositories and is automatically generated to include metadata that references the respective artifacts stored within the repositories of the software development environments, and wherein the asset template defines one or more schemas to control generation of the software assets from the artifacts; and
an asset management system comprising an asset library and one or more modules, executing on the one or more computers, to receive the software assets from the asset sources, to store the software assets within the asset library, and to selectively retrieve one or more of the software assets from the asset library for reuse within one or more of the development environments.
14 Assignments
0 Petitions
Accused Products
Abstract
In general, techniques are described that facilitate the reuse of software assets within an enterprise. A software asset, as used herein, refers to a set of one or more related artifacts that have been created or harvested for the purpose of applying that asset repeatedly in subsequent development environments. A system, for example, is described that includes a repository to store artifacts, and an asset source to generate a software asset based on the artifacts. The system further includes an asset management system to receive the software asset from the asset source and store the software asset within an asset library. The system may further include a model having one or more elements, and an asset retrieval module to selectively retrieve a subset of the software assets from the asset library based on input from a user identifying one or more of the elements.
40 Citations
46 Claims
-
1. A computer-implemented system comprising:
-
a plurality of repositories to store artifacts comprising software instructions for a plurality of different software development environments, wherein the artifacts comprise source code written in one or more programming languages of the software development environments; one or more computers; a plurality of distributed asset sources executing on the one or more computers to monitor the repositories, detect one or more new or updated artifacts within the repositories, and in response to detecting the new or updated artifacts within the repositories, automatically generate, based on an asset template, one or more software assets in a normalized format that complies with a data description language, wherein each of the software assets corresponds to a set of one or more of the artifacts within the software development repositories and is automatically generated to include metadata that references the respective artifacts stored within the repositories of the software development environments, and wherein the asset template defines one or more schemas to control generation of the software assets from the artifacts; and an asset management system comprising an asset library and one or more modules, executing on the one or more computers, to receive the software assets from the asset sources, to store the software assets within the asset library, and to selectively retrieve one or more of the software assets from the asset library for reuse within one or more of the development environments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented system comprising:
-
a plurality of repositories to store artifacts comprising software instructions for a plurality of different software development environments, wherein the artifacts comprise source code written in one or more programming languages; one or more computers; a multi-level hierarchy of asset sources executing on the one or more computers to monitor the software development repositories, detect one or more new or updated artifacts within the repositories and in response to detecting the new or updated artifacts within the repositories, automatically generate, based on an asset template, one or more software assets in a normalized format that complies with a data description language, the software assets having metadata that reference the artifacts stored within the repositories of the software development environments, the asset template defining one or more schemas for the software assets in accordance with the data description language, wherein higher-level asset sources of the multi-level hierarchy receive software assets from lower-level asset sources of the hierarchy and combine the received software assets to form aggregate software assets; and an asset management system comprising an asset library and one or more modules, executing on the one or more computers to receive the aggregate software assets from the hierarchy of asset sources, store the aggregate software assets within the asset library, and selectively retrieve one or more of the software assets from the asset library for reuse within one or more of the development environments. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer-implemented system comprising:
-
a plurality of repositories to store software artifacts comprising software instructions for a plurality of different software development environments, wherein the software artifacts comprise source code written in one or more programming languages; one or more computers; a plurality of distributed asset sources executing on the one or more computers to monitor the software development repositories, detect one or more new or updated artifacts within the repositories, and in response to detecting the new or updated artifacts within the repositories, automatically harvest the new or updated software artifacts from the software development environments and generate, based on an asset template, one or more software assets in a normalized format that complies with a data description language, wherein each of the software assets corresponds to a set of one or more of the software artifacts within the software development repositories and is automatically generated to include metadata that references the respective artifacts metadata that references the respective artifacts stored within the repositories of the software development environments, and wherein the asset template defines one or more schemas to control generation of the software assets from the software artifacts; and an asset management system comprising; an asset library to store the software assets; one or more modules, executing on the one or more computers, to receive the software asset from the asset source and to store the software asset within the asset library, a rules engine to generate metadata that maps the software asset to elements of a model that graphically represents a set of software components having instructions; and an asset retrieval module to receive input from a user selecting an element of the model and to selectively retrieve the software asset from the asset library based on the input and the metadata that maps the software assets to the elements of the model. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A method comprising:
-
monitoring, with a plurality of distributed asset sources executing on one or more computers, a plurality of repositories that store artifacts comprising software instructions for a plurality of different software development environments, wherein the artifacts comprise source code written in one or more programming languages; detecting, with the asset sources, one or more new or updated artifacts within the software development repositories; in response to detecting the new or updated artifacts within the repositories of the software development, automatically harvesting the new or updated artifacts from the software development environments and generating, based on an asset template, one or more software assets in a normalized format that complies with a data description language, wherein each of the software assets corresponds to a set of one or more of the artifacts within the repositories and is automatically generated to include metadata that references the respective artifacts stored within the repositories of the software development environments, and wherein the asset template defining one or more schemas to control generation of the software assets in accordance; receiving, with an asset management system executing on the one or more computers, the software assets from the asset sources; storing, with the asset management system, the software assets within an asset library included in the asset management system; and selectively retrieving, with the asset management system, one or more of the software assets from the asset library for reuse within one or more of the development environments. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
Specification