IP Library Granted Patent US 7,322,024
Granted Patent B2
US 7,322,024 · App. 10/100,749 · Granted Jan 22, 2008

Generating reusable software assets from distributed artifacts

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,322,024
App. No.
10/100,749
Granted
Jan 22, 2008
Kind
B2
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.

Claims (91)

1. A computer-implemented system comprising:

a repository to store artifacts, wherein at least a portion of the artifacts comprise software instructions that are reusable in different development environments;

an asset source executing on a computer to monitor the repository and generate a software asset based on the artifacts upon detecting a new or updated artifact within the repository; and

an asset management system executing on one or more computers to receive the software asset from the asset source and to store the software asset within an asset library;

wherein the asset management system includes:

an asset template that defines a schema for a software asset in accordance with a data description language;

an asset capture tool that identifies missing artifacts from the software asset based on the asset template;

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;

an asset retrieval module to receive input from a user selecting an element of a 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, wherein the asset retrieval module generates a search specification based on the user input and

a scoring engine to score the software asset within the asset library against the search specification.

2. The system of claim 1 , wherein the asset source generates the software asset to include references to the artifacts within the repository.

3. The system of claim 1 , wherein the asset source generates the software asset upon detecting a new or updated artifact within the repository.

4. The system of claim 1 , wherein the asset source generates the software asset in a format that compiles with a data description language.

5. The system of claim 4 , wherein the data description language comprises the extensible markup language (XML).

6. The system of claim 1 , wherein the asset source comprises a staging area to store the software asset prior to storage within the asset library by the asset management system.

7. The system of claim 1 , further wherein the asset source generates the software asset in a normalized format in accordance with an asset template.

8. The system of claim 7 , wherein the asset template defines a schema for the software asset in accordance with a data description language.

9. The system of claim 1 , wherein the asset source comprises a writable interface for editing the software asset.

10. The system of claim 1 , wherein the asset source comprises an artifact storage to cache artifacts extracted from the repository.

11. The system of claim 1 , further comprising an asset capture tool to update the software asset based on additional artifacts.

12. The system of claim 11 , wherein the asset capture tool includes a user interface to receive the additional artifacts from a user.

13. The system of claim 11 , wherein the asset capture tool includes scripts to generate the additional artifacts.

14. The system of claim 1 , wherein the models comprises at least one of a process model, a structure model, a resource model, and an implementation model.

15. The system of claim 1 , wherein the artifact comprises one of source code, binary code, a requirement specification, a design document a model, a use case, and a collaboration diagram.

16. A computer-implemented system comprising:

a plurality of repositories to store artifacts;

asset templates that define schemas for reusable software assets in accordance with a data description language;

a plurality of asset sources executing on one or more computers to monitor the repositories and generate software assets to include metadata that reference the artifacts in accordance with schemas of the asset templates; and

an asset management system executing on one or more computers to receive the software assets from the asset sources and store the software assets within an asset library,

wherein the asset management system includes:

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;

an asset retrieval module to receive input from a user selecting an element of a model, and the metadata that maps the software assets to the elements of the model, wherein the asset retrieval module generates a search specification based on the user input; and

a scoring engine to score the software assets within the asset library against the search specification,

wherein the asset retrieval module selectively retrieves one or more of the software assets from the asset library based on the input.

17. The system of claim 16 , wherein the asset sources generates the software assets upon detecting a new or updated artifact within the repository.

18. The system of claim 16 , wherein the metadata comprises the extensible markup language (XML).

19. The system of claim 16 , wherein the asset sources comprises staging areas to store the software assets prior to storage within the asset management system.

20. The system of claim 19 , further comprising an asset capture tool to update the software assets within the staging area.

21. The system of claim 16 , wherein the asset sources comprise a multi-level hierarchy of asset sources, wherein the higher-level asset sources of the hierarchy receive software assets from low-level asset sources of the hierarchy and form aggregate software assets.

22. A computer-implemented system comprising:

a plurality of repositories to store artifacts;

a multi-level hierarchy of asset sources to generate software assets having metadata that reference the artifacts, wherein higher-level asset sources of the hierarchy receive software assets to form low-level asset sources of the hierarchy and combine the received software assets to form aggregate software assets, wherein the asset sources generate the software assets in accordance with asset templates that define schemas for the software assets in accordance with a data description language; and

an asset management system executing on one or more computers to receive the aggregate software assets from the hierarchy of asset sources and store the aggregate software assets within an asset library,

wherein the asset management system includes:

an asset capture tool that generates metadata that maps the aggregate software assets to elements of a model;

an asset retrieval module to receive input from a user selecting an element of a model and to selectively retrieve one or more of the software assets from the asset library based on the input, wherein the asset retrieval module generates a search specification based on the user input; and

a scoring engine to score the software assets within the asset library against the search specification.

23. The system of claim 22 , further comprising at least two asset capture tools communicatively coupled to different asset sources of different levels of the hierarchy.

24. The system of claim 22 , further comprising a publishing module to retrieve the software assets from the asset sources and to insert the software assets into the asset library.

25. The system of claim 22 , wherein the asset retrieval module selectively retrieves the software assets from the asset library based on the metadata.

26. The system of claim 22 , wherein the models comprises at least one of a process model, a structural model, a resource model, and an implementation, model.

27. A computer-implemented system comprising:

a model having one or more elements;

a database to store reusable software assets;

a rules engine to generate metadata that maps the software assets to the elements the model;

an asset retrieval module executing on a computer to receive input from a user selecting an element of the model that graphically represent a set of software components having instructions, and to selectively retrieve a subset of the software assets from the database based on the input and the metadata that maps the software assets to elements of the model, wherein the asset retrieval module generates a search specification based on the user input; and

a scoring engine to score the software asset within the asset library against the search specification.

28. The system of claim 27 , wherein the model comprises one of a process model, a structural model, a resource model, and an implementation model.

29. A method comprising:

executing asset sources on one or more computers to monitor repositories and retrieve artifacts from the repositories upon detecting a new or updated artifact within the repository, wherein at least a portion of the artifacts comprise software instructions;

executing asset sources on one or more computers to generate software assets based on the artifacts in a form that conforms to a data description language that identifies the artifacts within the repositories; and

publishing the software assets for storage within an asset library;

generating the metadata that maps the software assets to the elements of the model;

receiving, with an asset retrieval module, input from a user selecting one or more elements of a model that graphically represent a set of software components having instructions;

generating, with the asset retrieval module, a search specification based on the user input;

scoring the software assets within the asset library against the search specification by ranking the software assets of the asset library according to the selected elements of the models; and

retrieving one or more of the software assets from the asset library.

30. The method of claim 29 , wherein generating software assets comprises generating the software assets comprises generating the software assets based on new and updated artifacts within the repositories.

31. The method of claim 29 , wherein generating software assets comprises generating the software assets to include references to related artifacts within the repository.

32. The method of claim 29 , wherein the data description language comprises the extensible markup language (XML).

33. The method of claim 29 , further comprising storing the software assets within a staging area prior to publication to the asset management system.

34. The method of claim 29 , wherein generating the software assets comprises generating the software assets in accordance with an asset template that defines a schema for the software assets.

35. The method of claim 33 , wherein generating the software assets comprises:

identifying additional artifacts required for the software assets; and

invoking an asset capture module to update the software assets to include the additional artifacts.

36. The method of claim 35 , wherein invoking the asset capture module comprises invoking scripts to automatically update the software assets.

37. The method of claim 35 , wherein invoking the asset capture module comprises invoking a user interface to receive the additional artifacts.

38. The method of claim 35 , further comprising publishing the updated software assets to the asset library.

39. The method of claim 29 , wherein retrieving artifacts from repositories comprises:

receiving the artifacts via distributed asset sources; and

communicating the artifacts from the asset sources to a publishing module for insertion into the asset library.

40. The method of claim 29 , wherein each of the artifacts comprises one of source code, binary code, a requirements specification, a design document, a model, a use case, and a collaboration diagram.

41. A computer-readable medium comprising instructions to cause a processor to:

executing asset sources on one or more computers to monitor repositories and retrieve one or more artifacts from the repositories upon detecting a new or updated artifact within the repository, wherein at least a portion of the artifacts comprise software instructions;

automatically generate software assets that include a data description language that describes one or more of the artifacts; and

publish, the software assets to an asset library;

generate the metadata that maps the software assets to the elements of the model;

receive, with an asset retrieval module, input from a user selecting one or more elements of a model that graphically represent a set of software components having instructions;

generate, with the asset retrieval module, a search specification based on the user input;

score the software assets within the asset library against the search specification by ranking the software assets of the asset library according to the selected elements of the models; and

retrieving one or more of the software assets from the asset library.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 7, 2019
From: BRIGHTWOOD LOAN SERVICES LLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
Reel/Frame 049996/0115 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 22, 2019
From: PERFORCE SOFTWARE, INC.; PERFORCE INTERMEDIATE HOLDINGS, LLC; AKANA, INC.; GLIFFY, INC.; KLOCWORK INC.; OPENLOGIC, INC.; ROGUE WAVE HOLDING CORP.; ROGUE WAVE HOLDINGS, INC.; ROGUE WAVE SOFTWARE, INC.; RWS, INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; VISUAL NUMERICS, INC.; ZEROTURNAROUND USA, INC.; ZEROTURNAROUND, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 049823/0752 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jul 22, 2019
From: ANTARES CAPITAL LP, AS COLLATERAL AGENT
To: AKANA, INC.
Reel/Frame 049823/0685 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 8, 2019
From: AKANA, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 049688/0800 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0241 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 049859/0124 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Feb 8, 2019
From: FIRST EAGLE PRIVATE CREDIT, LLC (F/K/A/ NEWSTAR FINANCIAL, LLC (NEWSTAR FINANCIAL, LLC F/K/A NEWSTAR FINANCIAL, INC.))
To: ROGUE WAVE SOFTWARE, INC.; ROGUE WAVE HOLDINGS, INC.; KLOCWORK INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; RWS, INC.; OPENLOGIC, INC.; VISUAL NUMERICS, INC.; AKANA, INC.
Reel/Frame 048289/0928 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0223 →
RELEASE OF SECURITY INTEREST Recorded Dec 6, 2016
From: MULTIPLIER CAPITAL, LP
To: AKANA, INC.
Reel/Frame 040842/0358 →
SECURITY INTEREST Recorded Nov 29, 2016
From: AKANA, INC.
To: NEWSTAR FINANCIAL, INC.
Reel/Frame 040456/0699 →
SECURITY AGREEMENT Recorded Apr 7, 2016
From: AKANA, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 038381/0780 →
MERGER Recorded Jan 12, 2016
From: LOGICLIBRARY, INC.
To: SOA SOFTWARE, INC.
Reel/Frame 037468/0790 →
CHANGE OF NAME Recorded Apr 15, 2015
From: SOA SOFTWARE, INC
To: AKANA, INC.
Reel/Frame 035440/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2002
From: CARLSON, BRENT A.; GROSS, DAVE H.; GRASER, TIMOTHY J.; MARINER, DEBRA L.; PALOF, JOHN J.; TAMMINGA, PAUL W.
To: LOGICLIBRARY, INC.
Reel/Frame 012711/0054 →