System and method for data-mining a source code base to obtain module interface information
AssigneeNone recorded
InventorsChristopher J. Kiick, Nathan Vanderkraats
Life of this patent
Estimating the term…
Loading patent…
AssigneeNone recorded
InventorsChristopher J. Kiick, Nathan Vanderkraats
Estimating the term…
A system and method for data mining a source code base, such as a Unix kernel, to obtain module interface information, thereby facilitating “modularization” of the code base is described. In one exemplary configuration, the invention is an extraction tool that extracts from a source code base exported programming interfaces for a given set of files defined as a module and produces a flat-data file of the extracted interfaces. The flat-data file is easily manipulable by other programs to extract specified data or generate reports, for example.
A method of identifying an interface to a module comprising at least one module source file, the method comprising:
A method of identifying an interface to a module comprising at least one module source file, the method comprising:
A system for identifying an interface to a module comprising at least one module source file, the system comprising:
A system for identifying an interface to a module comprising at least one module source file, the system comprising:
A computer program product operable to identify an interface to a module comprising at least one module source file, the computer program product including a computer usable medium with computer readable program code thereon, the computer program product comprising:
Dependencies are inferred from the claim text.
No related US applications are recorded in the indexed filing history.
Backward citations are indexed for grants only.
Information retrieval
Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups: data mining
Computing and data processing
Term end not estimated
1. Technical Field of the Invention
The present invention generally relates to programming interfaces. More particularly, and not by way of any limitation, the present invention is directed to a system and method for data mining source code to obtain module interface information.
2. Description of Related Art
A more complete understanding of the present invention may be had by reference to the following Detailed Description when taken in conjunction with the accompanying drawings wherein:
FIG. 1 is a schematic block diagram of an environment in which an extraction tool may be employed to extract module interface information in accordance with the teachings of the present invention; and
FIG. 2 is a flow chart illustrating the method of the present invention for extracting module interfaces from a source code base.
In the drawings, like or similar elements are designated with identical reference numerals throughout the several views thereof, and the various elements depicted are not necessarily drawn to scale.
FIG. 1 is a schematic block diagram of an environment 100 in which an extraction tool may be employed to extract module interface information in accordance with the teachings of the present invention. In accordance with one implementation, at least one subset of files contained in a source code base 102, which may comprise, for example, a Unix kernel, is defined as a module. For purposes of illustration, it will be assumed that only one module has been defined; however, it will be recognized that the teachings of the present invention are applicable to any number of modules.
Once a module has been defined, an input file 104 including a list of source files and an indication of the module with which each file is associated, is generated. As shown in FIG. 1, source files W.s, X.c, Y.c, and Z.h have been defined as forming at least in part a module ModA. For purposes of example, only one module is shown as being defined by the input file 104; however, it will be recognized that, in practice, a single input file will likely define multiple modules. An unresolved symbol extraction tool 105 that identifies all of the symbols that a file references but that are not defined in the file is applied to each source file of the source code base 102. These symbols, which may be referred to as “imported symbols”, are stored in an internal database 106. In one embodiment, the tool 105 may be implemented using nm, which, as will be recognized by one of ordinary skill in the art, is an object tool included with a conventional C compiler. Alternatively, the tool 105 may be implemented with a variety of other tools, including, but not limited to, cscope, grep, a Perl script, or a purpose-written (i.e., special purpose) program.