Claims
- 1. In a computer system that is capable of creating program elements in system memory and executing program element behaviors in system memory, a method for testing a program element or program element behavior for adherence to a software development rule, the method comprising the following:
an act of receiving a rule assembly containing the software development rule; an act of receiving a target assembly containing at least one program element or at least one program element behavior; an act of identifying a program element or program element behavior from the target assembly that is to be checked for adherence to the software development rule contained in the rule assembly; and an act of applying the software development rule to the identified program element or the identified program element behavior to check the identified program element or the identified program element behavior for adherence to the software development rule.
- 2. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving metadata and intermediate language instructions that can be used to implement the software development rule in system memory.
- 3. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of a check method that can be executed to check for adherence to the software development rule.
- 4. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule assembly having an interface that is targeted to a particular kind of program element.
- 5. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule assembly having an interface that is targeted to a particular intermediate language operation code.
- 6. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule that is targeted to a program element having a particular level of accessibility.
- 7. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule associated with a priority level.
- 8. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule that accessing resources from a resource stream.
- 9. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a rule that accessing resources contained in the rule.
- 10. The method as recited in claim 1, wherein the act of receiving a rule assembly containing the software development rule comprises an act of receiving a language independent portable executable.
- 11. The method as recited in claim 1, wherein the act of receiving a target assembly containing at least one program element or at least one program element behavior comprises an act of receiving a target assembly containing a program element.
- 12. The method as recited in claim 1, wherein the act of receiving a target assembly containing at least one program element or at least one program element behavior comprises an act of receiving a target assembly containing a program element behavior.
- 13. The method as recited in claim 1, wherein the act of receiving a target assembly containing at least one program element or at least one program element behavior comprises an act of receiving a language independent portable executable containing metadata and intermediate language instructions.
- 14. The method as recited in claim 1, wherein the act of identifying a program element or program element behavior from the target assembly that is to be checked for adherence to the software development rule contained in the rule assembly comprises an act of identifying a program element that is to be checked for adherence to the software development.
- 15. The method as recited in claim 14, wherein the act of identifying a program element that is to be checked for adherence to the software development comprises an act of using reflection to identify a portion of metadata contained in the target.
- 16. The method as recited in claim 1, wherein the act of identifying a program element or program element behavior from the target assembly that is to be checked for adherence to the software development rule contained in the rule assembly comprises an act of identifying a program element behavior that is to be checked for adherence to the software development.
- 17. The method as recited in claim 16, wherein the act of identifying a program element behavior that is to be checked for adherence to the software development comprises an act of using intermediate instruction retrieval to identify that an operation code contained in the target.
- 18. The method as recited in claim 1, wherein the act of applying the software development rule to the identified program element or the identified program element behavior to check the identified program element or the identified program element behavior for adherence to the software development rule comprises an act of applying the software development rule to an identified program element to check the identified program element for adherence to the software development rule.
- 19. The method as recited in claim 18, wherein the act of applying the software development rule to an identified program element to check the identified program element for adherence to the software development rule comprises an act of executing a check method for an interface that is targeted to the program element.
- 20. The method as recited in claim 18, wherein the act of applying the software development rule to an identified program element to check the identified program element for adherence to the software development rule comprises an act of executing a check method to check a portion of metadata contained in the target assembly.
- 21. The method as recited in claim 1, wherein the act of applying the software development rule to the identified program element or the identified program element behavior to check the identified program element or the identified program element behavior for adherence to the software development rule comprises an act of applying the software development rule to an identified program element behavior to check the identified program element behavior for adherence to the software development rule.
- 22. The method as recited in claim 21, wherein the act of applying the software development rule to an identified program element behavior to check the identified program element behavior for adherence to the software development rule comprises an act of executing a check method for an interface that is targeted to the program element behavior.
- 23. The method as recited in claim 21, wherein the act of applying the software development rule to an identified program element behavior to check the identified program element behavior for adherence to the software development rule comprises an act of executing a check method to check an operation code contained in target assembly.
- 24. The method as recited in claim 1, wherein the act of applying the software development rule to the identified program element or the identified program element behavior to check the identified program element or the identified program element behavior for adherence to the software development rule comprises an act of instantiating the software development rule.
- 25. The method as recited in claim 1, further comprising:
an act of outputting the results of checking the program element or program element behavior for adherence to the software development rule.
- 26. The method as recited in claim 25, wherein the act of an act of outputting the results of checking the program element or program element behavior for adherence to the software development rule comprises an act of outputting resources from a resource stream associated with the rule assembly.
- 27. The method as recited in claim 26, wherein the act of an act of outputting resources from a resource stream associated with the rule assembly comprises an act out outputting resources that were converted from XML instructions.
- 28. A computer program product for use in a computer system that is capable of creating program elements in system memory and executing program element behaviors in system memory, the computer program product for implementing a method for testing a program element or program element behavior for adherence to a software development rule, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the computer system to perform the following:
receive a rule assembly containing the software development rule; receive a target assembly containing at least one program element or at least one program element behavior; identify a program element or program element behavior from the target assembly that is to be checked for adherence to the software development rule contained in the rule assembly; and apply the software development rule to the identified program element or the identified program element behavior to check the identified program element or the identified program element behavior for adherence to the software development rule.
- 29. The computer program product recited in claim 28, wherein the one or more computer-readable media are physical media.
- 30. The computer program product recited in claim 28, wherein the one or more computer-readable media are system memory.
- 31. In a computer system including an integrated development interface with a compiler for compiling source code into assemblies, the integrated development interface being configured to check program elements for adherence to software development rules that supplement the inherent rules of the compiler, a method for automatically checking a program element or program element behavior entered at the integrated development interface for adherence to a software development rule, the method comprising the following:
an act of automatically accessing program data representing a portion of source code in response to receiving user-input, the represented source code indicating that a program element or program element behavior is to be associated with an assembly when the assembly is executed; an act of automatically identifying that a program element or program element behavior contained in the accessed program data is to adhere to at least one software development rule; and an act of automatically applying the at least one software development rule to the identified program element or the identified program element behavior to check for adherence to the at least one software development rule.
- 32. The method as recited in claim 31, wherein the act of automatically accessing program data representing a portion of source code in response to receiving user-input comprises an act of automatically accessing user-entered source code.
- 33. The method as recited in claim 31, wherein the act of automatically accessing program data representing a portion of source code in response to receiving user-input comprises an act of automatically accessing metadata in response to a user-entered compile command.
- 34. The method as recited in claim 31, wherein the act of automatically accessing program data representing a portion of source code in response to receiving user-input comprises an act of automatically accessing intermediate language instructions in response to a user-entered compile command.
- 35. The method as recited in claim 31, further comprising:
an act of automatically correcting user-entered source code to adhere to the software development rule.
- 36. A computer program product for use in a computer system including an integrated development interface with a compiler for compiling source code into assemblies, the integrated development interface being configured to check program elements for adherence to software development rules that supplement the inherent rules of the compiler, the computer program produce for implementing a method for automatically checking a program element or program element behavior for adherence to a software development rule, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the computer system to perform the following:
access program data representing a portion of source code in response to receiving user-input, the represented source code indicating that a program element or program element behavior is to be associated with an assembly when the assembly is executed; identify that a program element or program element behavior contained in the accessed program data is to adhere to at least one software development rule; and apply the at least one software development rule to the identified program element or the identified program element behavior to check for adherence to the at least one software development rule.
- 37. The computer program product recited in claim 36, wherein the one or more computer-readable media are physical media.
- 38. The computer program product recited in claim 36, wherein the one or more computer-readable media are system memory.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority from U.S. provisional patent application Serial No. 60/421,358, filed Oct. 25, 2002 and entitled “Extensible Rule-Based Architecture For Non-Invasive Binary Analysis” which provisional application is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60421358 |
Oct 2002 |
US |