Patent ID: 7568184

Claim:
A system, comprising: a processor; and memory coupled to the processor and configured to store program instructions executable by the processor to implement a software documentation generator configured to: input a plurality of sources related to a software program, wherein the plurality of sources comprises a plurality of different types of sources and comprises one or more of a software library documentation file for the software program or software program source code for the software program; implement an input source aggregator comprising a different input source plug-in for each different one of the plurality of different source types, wherein the input source aggregator is configured to: analyze the plurality of sources to identify a type of each of the sources; select a different one of the input source plug-ins for each different one of the plurality of different source types; using the selected input source plug-ins, extract information from the plurality of sources based on the type of the source; aggregate the information extracted by each selected input source plug-in into a uniform format; and pass the aggregated information in the uniform format to a transformer component of the software documentation generator; and implement the transformer component which comprises a plurality of different transformer plug-in sets, wherein each transformer plug-in set corresponds to one or more respective types of output software documentation sets, and each transformer plug-in set is configured to generate one or more respective output software documentation sets of a type to which the plug-in corresponds, wherein the transformer component is configured to: select one or more of the plurality of different transformer plug-in sets according to information specifying one or more desired output formats for one or more sets of software documentation for the software program; using the selected one or more transformer plug-in sets, transform the aggregated information in the uniform format into the one or more specified sets of software documentation for the software program in the one or more desired output formats; output the one or more specified sets of software documentation for the software program in the one or more desired output formats, wherein the one or more specified sets of software documentation document the functionality of the software program.