1. A computer-implemented method of annotating software objects, comprising: providing a software object, wherein the software object is an instance of a class in an object-oriented computing environment, and wherein the software object is generated by a software component executed by an application server; storing a plurality of rules, wherein the plurality of rules define how to annotate the software object, and wherein the plurality of rules operate according to the class of the software object; processing, by an annotation engine component executed by the application server, the software object according to the plurality of rules; generating, by the annotation engine component, an annotation document based on the software object having been processed according to the plurality of rules; and generating, by an application programming interface component executed by the application server, an annotated software object based on the software object and the annotation document, wherein the annotated software object corresponds to the software object as annotated by the annotation document.