Checking program elements and program element behaviors for adherence to
software development rules. An analysis engine receives a rule assembly
containing metadata and intermediate language instructions representing
one or more rules. The analysis engine also receives a target assembly
containing metadata and intermediate language instructions representing
one or more program elements and/or one or more program element
behaviors. The analysis engine identifies (e.g., through reflection or
retrieval of intermediate language instructions) a program element or
program element behavior from the target assembly that is to be checked
for adherence to a rule from the rule assembly. The analysis engine
applies the rule to the program element or program element behavior to
check the program element or program element behavior for adherence to
the rule. Results can be stored for later viewing by a programmer.