IP Library Granted Patent US 9,235,386
Granted Patent B2
US 9,235,386 · App. 12/016,668 · Granted Jan 12, 2016

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 9,235,386
App. No.
12/016,668
Granted
Jan 12, 2016
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 (76)

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.

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

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

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

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

6. The system of claim 1 , wherein one or more of the asset sources comprises a writable interface for editing the software assets.

7. The system of claim 1 , wherein one or more of the asset sources comprises an artifact storage to cache artifacts extracted from the repositories.

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

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

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

11. The system of claim 1 ,

wherein the asset management system comprises an asset capture tool to update the software assets in accordance with the asset template, wherein the asset capture tool identifies missing artifacts from the software asset based on the asset template.

12. The system of claim 1 , wherein the asset management system comprises a rules engine to generate metadata that maps the software assets to elements of one or more models that graphically represent a set of software components having instructions.

13. The system of claim 12 , wherein the asset management system further comprises an asset retrieval module to selectively retrieve one or more of the software assets from the asset library based on the metadata.

14. The system of claim 12 , wherein the one or more models comprise at least one of a process model, a structural model, a resource model, and an implementation model.

15. The system of claim 1 , wherein the asset management system comprises 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.

16. The system of claim 15 , wherein the asset retrieval module generates a search specification based on the user input.

17. The system of claim 16 , further comprising a scoring engine to score the software assets within the asset library against the search specification.

18. The system of claim 1 , wherein the artifacts comprise one of source code, binary code, a requirements specification, a design document, a model, a use case, and a collaboration diagram.

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.

20. The system of claim 19 , 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.

21. The system of claim 19 , wherein the asset management system comprises at least two asset capture tools communicatively coupled to different asset sources of different levels of the hierarchy.

22. The system of claim 19 , wherein the asset management system comprises a publishing module to retrieve the software assets from the asset sources and to insert the software assets into the asset library.

23. The system of claim 19 , wherein the asset management system comprises an asset capture tool that updates the software assets to include metadata that maps the aggregate software assets to elements of a model.

24. The system of claim 23 , wherein the asset management system comprises an asset retrieval module to selectively retrieve the software assets from the asset library based on the metadata.

25. The system of claim 19 , wherein the asset management system comprises a rules engine to generate metadata that maps the software asset to elements of one or more models.

26. The system of claim 25 , wherein the one or more models comprise at least one of a process model, a structural model, a resource model, and an implementation model.

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.

28. The system of claim 27 , wherein the asset management system further comprises:

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

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

30. The system of claim 27 , wherein the asset retrieval module generates a search specification based on the user input.

31. The system of claim 30 , further comprising a scoring engine to score the software assets within database against the search specification.

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.

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

34. The method of claim 32 , wherein generating the software assets comprises generating the software assets to include references to related artifacts within the repositories.

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

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

37. The method of claim 32 , 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.

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

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

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

41. The method of claim 32 , further comprising:

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.

42. The method of claim 32 , wherein generating the software assets comprises generating metadata that maps the software assets to elements of one or more models that graphically represent a set of software components having instructions.

43. The method of claim 42 , wherein selectively retrieving, with the asset management system, one or more of the software assets from the asset library comprises selectively retrieving the software assets from the asset library based on the metadata.

44. The method of claim 42 , further comprising:

receiving input from a user selecting one or more elements of the models,

wherein selectively retrieving, with the asset management system, one or more of the software assets from the asset library comprises retrieving software assets from the asset library based on the selected elements of the model.

45. The method of claim 44 , further comprising ranking the software assets of the asset library according to the selected elements of the models.

46. The method of claim 32 , wherein the artifact comprises one of source code, binary code, a requirements specification, a design document, a model, a use case, and a collaboration diagram.

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 →
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: CARLSON, BRENT A.; GRASER, TIMOTHY J.; GROSS, DAVE H.; MARINER, DEBRA L.; PALOF, JOHN J.; TAMMINGA, PAUL W.
To: LOGICLIBRARY, INC.
Reel/Frame 049422/0452 →
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 →
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/0241 →
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 →