Recording medium, software verification apparatus and software verification method

Information

  • Patent Application
  • 20070220493
  • Publication Number
    20070220493
  • Date Filed
    August 08, 2006
    18 years ago
  • Date Published
    September 20, 2007
    16 years ago
Abstract
The present invention has been made to provide a software verification program, a software verification apparatus, and a software verification method capable of reducing verification cost of concurrent/parallel software.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram showing an example of a program verification apparatus according to the present embodiment;



FIG. 2 is a flowchart showing an example of operation of annotation addition processing according to the present embodiment;



FIG. 3 is a flowchart for showing an example of operation of the annotation addition processing according to the present invention;



FIG. 4 is a flowchart showing an example of operation of the program verification processing according to the present embodiment;



FIG. 5 is a flowchart showing an example of operation of the annotation verification processing according to the present invention;



FIG. 6 is source code of the library 11 in the first concrete example according to the present embodiment;



FIG. 7 is source code of the library 11 in the second concrete example according to the present embodiment;



FIG. 8 is source code of the library 11 in the third concrete example according to the present embodiment;



FIG. 9 is source code of the program 22 in the first concrete example according to the present embodiment;



FIG. 10 is source code of the program 22 in the second concrete example according to the present embodiment; and



FIG. 11 is source code of the program 22 in the third concrete example according to the present embodiment.


Claims
  • 1. A recording medium that records in a computer-readable manner a software verification program allowing a computer to execute verification of software including a library and a program that uses the library to operate in a concurrent or parallel manner, the software verification program allows a computer to execute:a shared element utilizing part extraction step that extracts a part at which a shared element, which is an element that is defined in the library and which can be used by the program, is used in the program; anda condition verification step that verifies based on a thread-safe condition defined in the library for the each shared element whether a shared element in the shared element utilizing part extracted by the shared element utilizing part extraction step satisfies the thread-safe condition.
  • 2. The recording medium according to claim 1, wherein in the case where all shared elements in the shared element utilizing part in the program satisfy the thread-safe condition, the condition verification step performs thread-safe verification of a part other than the shared element utilizing part in the program.
  • 3. The recording medium according to claim 1, wherein the thread-safe condition is written as an annotation corresponding to the shared element in the library.
  • 4. The recording medium according to claim 1, wherein the shared element includes a shared variable and function provided by the library.
  • 5. The recording medium according to claim 1, wherein the thread-safe condition is defined based on a result of the thread-safe verification performed for the shared element that has been determined not to be thread-safe by the thread-safe verification performed for the library.
  • 6. The recording medium according to claim 5, wherein the thread-safe condition is defined based on the specification of the library.
  • 7. The recording medium according to claim 1, wherein the shared element utilizing part extraction step separates the program into a section in which concurrent or parallel operation is performed and a section in which serial operation is performed based on the control flow analysis of the program and extracts the shared element utilizing part from the each section.
  • 8. A software verification apparatus that performs verification of software including a library and a program that uses the library to operate in a concurrent or parallel manner, comprising: a shared element utilizing part extraction section that extracts a part at which a shared element, which is an element that is defined in the library and which can be used by the program, is used in the program; anda condition verification section that verifies based on a thread-safe condition defined in the library for the each shared element whether a shared element in the shared element utilizing part extracted by the shared element utilizing part extraction section satisfies the thread-safe condition.
  • 9. The software verification apparatus according to claim 8, wherein in the case where all shared elements in the shared element utilizing part in the program satisfy the thread-safe condition, the condition verification section performs thread-safe verification of a part other than the shared element utilizing part in the program.
  • 10. The software verification apparatus according to claim 8, wherein the thread-safe condition is written as an annotation corresponding to the shared element in the library.
  • 11. The software verification apparatus according to claim 8, wherein the shared element includes a shared variable and function provided by the library.
  • 12. The software verification apparatus according to claim 8, wherein the thread-safe condition is defined based on a result of the thread-safe verification performed for the shared element that has been determined not to be thread-safe by the thread-safe verification performed for the library.
  • 13. The software verification apparatus according to claim 12, wherein the thread-safe condition is defined based on the specification of the library.
  • 14. The software verification apparatus according to claim 8, wherein the shared element utilizing part extraction section separates the program into a section in which concurrent or parallel operation is performed and a section in which serial operation is performed based on the control flow analysis of the program and extracts the shared element utilizing part from the each section.
  • 15. A software verification method that performs verification of software including a library and a program that uses the library to operate in a concurrent or parallel manner, comprising: a shared element utilizing part extraction step that extracts a part at which a shared element, which is an element that is defined in the library and which can be used by the program, is used in the program; anda condition verification step that verifies based on a thread-safe condition defined in the library for the each shared element whether a shared element in the shared element utilizing part extracted by the shared element utilizing part extraction step satisfies the thread-safe condition.
  • 16. The software verification method according to claim 15, wherein in the case where all shared elements in the shared element utilizing part in the program satisfy the thread-safe condition, the condition verification step performs thread-safe verification of a part other than the shared element utilizing part in the program.
  • 17. The software verification method according to claim 15, wherein the thread-safe condition is written as an annotation corresponding to the shared element in the library.
  • 18. The software verification method according to claim 15, wherein the shared element includes a shared variable and function provided by the library.
  • 19. The software verification method according to claim 15, wherein the thread-safe condition is defined based on a result of the thread-safe verification performed for the shared element that has been determined not to be thread-safe by the thread-safe verification performed for the library.
  • 20. The software verification method according to claim 19, wherein the thread-safe condition is defined based on the specification of the library.
Priority Claims (1)
Number Date Country Kind
2006-075898 Mar 2006 JP national