IP Library Granted Patent US 7,577,939
Granted Patent B2
US 7,577,939 · App. 10/608,204 · Granted Aug 18, 2009

Method, system and program product for sharing source code over a network

Assignee: International Business Machines Corporation
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,577,939
App. No.
10/608,204
Granted
Aug 18, 2009
Kind
B2
Abstract

Under the present invention source code can be shared among nodes in a peer-to-peer network. Specifically, source code to be shared will first be analyzed to identify a set of code patterns, assigned one or more predetermined categories based on the set of code patterns, and then selectively indexed. A developer desiring to use previously created source code when creating a new program can perform a context dependent search based on his/her working code to identify and retrieve relevant source code.

Claims (32)

1. A system for accessing source code shared over a network, comprising:

at least one computer hardware device;

an Integrated Development Environment (IDE), wherein the IDE includes classification-based navigation and content dependent searching for code patterns;

a context classifier for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context, wherein the categories include comments, type names and method names;

a query generator for querying a directory using the at least one predetermined category assigned to the working code to identify at least one predetermined category assigned to source code that at least one of matches or corresponds to the category assigned to the working code, wherein the query generator returns a list of categories and selects at least one category from the list of categories;

a code pattern requestor for retrieving the source code from a sharing node in the network to the receiving node based on the at least one category selected from the list of categories assigned to the source code, wherein the retrieving comprises querying a search engine corresponding to the sharing node to retrieve the source code;

a code pattern classifier for analyzing the source code on the sharing node to identify a set of code patterns, and for assigning the at least one predetermined category to the source code based on the identified set of code patterns, wherein code pattern information that is based on the analysis and assignment is stored in the directory;

a source code indexer for selectively indexing the source code, wherein the source code indexer comprises:

a programming language recognizer for recognizing at least one programming language of the source code and analyzing sections of the source code;

a selective code content indexer for indexing relevant portions of the source code based on the at least one programming language, wherein the relevant portions include comments, type names and method names;

a dependency graph indexer for recognizing and indexing at least one source code dependency corresponding to the source code;

a code type hierarchy recognizer for recognizing a set of code type hierarchies associated with the source code; and

an associated code type indexer for indexing the a code types in the recognized set of code type hierarchies; and

a code sharing notifier for notifying a set of other nodes in the network of the availability of the source code.

2. The system of claim 1 further comprising a category selector for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code, and for selecting the at least one predetermined category assigned to the source code.

3. A computer readable memory medium storing a program product for accessing source code shared over a network comprising:

program code for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context, wherein the categories include comments, type names and method names;

program code for querying a directory using the at least one predetermined category assigned to the working code to identify at least one predetermined category assigned to source code that at least one of matches or corresponds to the category assigned to the working code;

program code for returning a list of categories;

program code for selecting at least one category from the list of categories;

program code for retrieving the source code from a sharing node in the network to the receiving node based on the at least one category selected from the list of categories, wherein the retrieving comprises querying a search engine corresponding to the sharing node to retrieve the source code;

program code for analyzing the source code on the sharing node to identify a set of code patterns, and for assigning the at least one predetermined category to the source code based on the identified set of code patterns, wherein code pattern information that is based on the analysis and assignment is stored in the directory;

program code for selectively indexing the source code, wherein the program code for selectively indexing comprises:

program code for recognizing at least one programming language of the source code;

program code for analyzing sections of the source code;

program code for indexing relevant portions of the source code based on the at least one programming language, wherein the relevant portions include comments, type names and method names;

program code for recognizing and indexing at least one source code dependency corresponding to the source code;

program code for recognizing a set of code type hierarchies associated with the source code;

program code for indexing the code types in the recognized set of code type hierarchies; and

program code for notifying a set of other nodes in the network of the availability of the source code; and

wherein the program product operates in an Integrated Development Environment (IDE) which includes classification-based navigation and content dependent searching for code patterns.

4. The program product of claim 3 , further comprising program code for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code, and for selecting the at least one predetermined category assigned to the source code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2003
From: BAYARDO, ROBERTO J., JR.; DOGANATA, YURDAER N.; DRISSI, YOUSSEF; FIN, TONG-HAING; KIM, MOON J.; KOZAKOV, LEV; RODRIGUEZ, JUAN L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014654/0512 →
Continuity (1)
Related Publication 20040267756A1 · Dec 30, 2004