IP Library Granted Patent US 7,149,734
Granted Patent B2
US 7,149,734 · App. 10/109,601 · Granted Dec 12, 2006

Managing reusable software assets

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,149,734
App. No.
10/109,601
Granted
Dec 12, 2006
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 (58)

1. A computer-implemented system comprising:

a plurality of repositories to store software artifacts;

an asset source executing on the computer-implemented system to monitor the one or more of the repositories for addition of one or more new software artifacts,

wherein upon detecting the new software artifacts the asset source automatically generates a reusable software asset to include references to the new artifacts within the one or more repositories;

a capture module executing on the computer-implemented system to retrieve the reusable software asset from the asset source in response to receiving an indication from the asset source that the reusable software asset has been generated from the detected artifacts, wherein upon retrieving the reusable software asset from the asset source, the capture module to maps data types and resource functions of the reusable software assets extracted from one or more enterprise repositories to elements of one or more domain models;

a database to store the reusable software asset and data representative of the mapping, wherein database stores the data and the reusable software asset in a searchable form and provides access to the reusable software asset for retrieval of the new software artifacts within the one or more repositories; and

a search engine to perform a model-driven search for selecting one or more of the software assets for reuse by accessing the mapping stored by the database based on user-supplied criteria describing elements for one of the domain models.

2. The computer-implemented system of claim 1 , wherein at least one of the domain models comprises:

a process model comprising processes and use cases; and

a structural model comprising reference components, reference interfaces, and reference functions.

3. The computer-implemented system of claim 2 , wherein portions of the process model are linked to reference components, reference interfaces, or reference functions of the structural model.

4. The computer-implemented system of claim 2 , wherein at least one of the domain models comprises a plurality of process models, portions of each process model linked to reference components, reference interfaces, or reference functions of the structural model.

5. The computer-implemented system of claim 2 , wherein the capture module allows the user to map the data types of the software assets to the structural model.

6. The computer-implemented system of claim 2 , wherein the capture module allows the user to map the resource functions of the software assets to the structural model.

7. The computer-implemented system of claim 1 , wherein the capture module use synonyms to suggest mapping the data types or the resource functions of the software assets to the one or more domain models.

8. A method of classifying a software resource comprising functions and data types, the method comprising:

extracting a software resource from a repository;

receiving a domain model that provides a representation of model functions and model data types for a set of software components;

mapping data types of an application programming interface of the software resource to the model data types of the domain model to produce data type maps;

mapping functions of an application programming interface of the software resource to the model functions of the domain model to produce function maps;

and storing the data type maps and function maps in a searchable database to provide retrieval of the software resource from a plurality of software resources based on the data type maps and the function maps.

9. The method of claim 8 , wherein the domain model comprises:

a process model comprising processes and use cases; and

a structural model comprising reference components, reference interfaces, and reference functions.

10. The method of claim 9 , wherein portions of the process model are linked to reference components, reference interfaces, or reference functions of the structural model.

11. A computer-implemented system comprising:

a plurality of repositories to store artifacts related to software components deployed by an enterprise;

an asset source executing on the computer-implemented system that monitors one or more of the repositories for new artifacts, wherein upon detecting one or more new artifacts, the asset source automatically generates a reusable software asset to include references to the new artifacts within the one or more repositories;

an asset management system executing on the computer-implemented system to receive the reusable software asset from the asset source and to store the reusable software asset within a searchable asset library; and

a rules engine to generate metadata that maps the software asset to elements of one or more models.

12. The computer-implemented system of claim 11 , wherein the asset source generates the reusable software asset in a format that complies with a data description language.

13. The computer-implemented system of claim 12 , wherein the data description language comprises the extensible markup language (XML).

14. The computer-implemented system of claim 11 , wherein the reusable asset source comprises a staging area to store the software asset prior to storage within the asset library by the asset management system,

wherein the asset source validates the asset in the staging area prior to outputting the indication to the capture module that the reusable software asset has been generated from the detected artifacts and is ready for publishing to the asset library.

15. The computer-implemented system of claim 11 , further wherein the asset source generates the reusable software asset in a normalized format in accordance with an asset template.

16. The computer-implemented system of claim 15 , wherein the asset template defines a schema for the reusable software asset in accordance with a data description language.

17. The computer-implemented system of claim 11 , wherein the asset source comprises a writable interface for editing the reusable software asset.

18. The computer-implemented system of claim 11 , wherein the asset source comprises an artifact storage to cache artifacts extracted from the repositories prior to communicating the reusable software asset to the asset management system for storage within the asset library.

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

20. The computer-implemented system of claim 19 , wherein the asset capture tool includes a user interface to receive the additional artifacts from a user.

21. The computer-implemented system of claim 19 , wherein the asset capture tool includes scripts to generate the additional artifacts.

22. The computer-implemented system of claim 11 , further comprising:

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

an asset capture tool executing on the computer-implemented system to automatically update the software asset in accordance with the asset template, wherein the asset capture tool executes on the computer-implemented system to automatically identify missing artifacts from the software asset based on the asset template.

23. The computer-implemented system of claim 11 , further comprising an asset retrieval module to selectively retrieve the software asset from the Asset library based on the metadata.

24. The computer-implemented system of claim 11 , wherein the models comprises at least one of a process model, a structural model, a resource model, and an implementation model.

25. The computer-implemented system of claim 11 , further comprising an asset retrieval module executing on the computer-implemented system 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.

26. The computer-implemented system of claim 25 , wherein the asset retrieval module generates a search specification based on the user input.

27. The computer-implemented system of claim 26 , further comprising a scoring engine to score the software asset within the asset library against the search specification.

28. The computer-implemented system of claim 11 , 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.

29. A computer-implemented system comprising:

a domain model having one or more model elements that map business processes to software components;

a central asset management database to store reusable software assets, wherein the software assets include references that identify locations of software artifacts stored within a plurality of different repositories distributed throughout an enterprise;

a rules engine to generate metadata that maps the reusable software assets to the elements of the domain model; and

an asset retrieval module executing on the computer-implemented system that presents a graphical user interface (GUI) outputting a graphical representation of the domain model, wherein the asset retrieval module receives input from a user selecting one of the model elements of the domain model, and in response to the selection, the asset retrieval model constructs a search specification to selectively retrieve a subset of the software assets from the central asset management database based on the selected elements of the domain model.

30. The computer-implemented system of claim 29 , wherein the domain model comprises one of a process model, a structural model, a resource model, and an implementation model.

31. The computer-implemented system of claim 29 , wherein the asset retrieval module generates a search specification based on the user input.

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

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 Jun 24, 2002
From: CARLSON, BRENT A.; GRASER, TIMOTHY J.; MARINER, DEBRA L.; PALOF, JOHN J.; TAMMINGA, PAUL W.; GROSS, DAVE H.
To: LOGIC LIBRARY, INC.
Reel/Frame 013016/0065 →