ACM Home Page
Please provide us with feedback. Feedback
Formal Software Analysis Emerging Trends in Software Model Checking
Full text PdfPdf (390 KB)
Source International Conference on Software Engineering archive
2007 Future of Software Engineering table of contents
Pages 120-136  
Year of Publication: 2007
ISBN:0-7695-2829-5
Authors
Matthew B. Dwyer  University of Nebraska - Lincoln
John Hatcliff  Kansas State University
Robby Robby  Kansas State University
Corina S. Pasareanu  NASA Ames Research Center
Willem Visser  NASA Ames Research Center
Publisher
IEEE Computer Society  Washington, DC, USA
Bibliometrics
Downloads (6 Weeks): 35,   Downloads (12 Months): 259,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: 10.1109/FOSE.2007.6

ABSTRACT

The study of methodologies and techniques to produce correct software has been active for four decades. During this period, researchers have developed and investigated a wide variety of approaches, but techniques based on mathematical modeling of program behavior have been a particular focus since they offer the promise of both finding errors and assuring important program properties. The past fifteen years have seen a marked and accelerating shift towards algorithmic formal reasoning about program behavior - we refer to these as formal software analysis. In this paper, we define formal software analyses as having several important properties that distinguish them from other forms of software analysis. We describe three foundational formal software analyses, but focus on the adaptation of model checking to reason about software. We review emerging trends in software model checking and identify future directions that promise to significantly improve its cost-effectiveness.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
[1] J.-R. Abrial, E. Böorger, and H. Langmaack, editors. Formal Methods for Industrial Applications, Specifying and Programming the Steam Boiler Control, volume 1165 of Lecture Notes in Computer Science. Springer, 1996.
2
 
3
 
4
[4] R. Alur, P. Madhusudan, and W. Nam. Symbolic Compositional Verification by Learning Assumptions. In Proceedings of CAV'05, pages 548-562, 2005.
5
 
6
 
7
[7] J. Berdine, C. Calcagno, and P. W. O'Hearn. Smallfoot: Modular automatic assertion checking with separation logic. In FMCO, pages 115-137, 2005.
 
8
 
9
10
 
11
[11] L. Briand and A. Wolf, editors. Future of Software Engineering 2007. IEEE-CS Press, 2007.
 
12
[12] http://research.microsoft.com/ qadeer/cav-issta.htm.
 
13
 
14
[14] Y. Cheon and G. T. Leavens. A runtime assertion checker for the Java modeling language. In Proceedings of the International Conference on Software Engineering Research and Practice, 2002.
 
15
[15] A. Cimatti, E. Clarke, F. Giunchiglia, and M. Roveri. NuSMV : a new symbolic model checker. International Journal on Software Tools for Technology Transfer, 2(4):410-425, 2000.
16
 
17
 
18
[18] E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 2000.
 
19
[19] J. M. Cobleigh, D. Giannakopoulou, and C. S. Pasareanu. Learning Assumptions for Compositional Verification. In Proceedings of TACAS'03, pages 331-346, 2003.
20
21
 
22
[22] P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. The astreé analyzer. In Proceeding of ESOP'05, pages 21-30, 2005.
 
23
 
24
 
25
26
 
27
[27] S. Edelkamp, S. Leue, and A. Lluch-Lafuente. Partial-order reduction and trail improvement in directed model checking. International Journal on Software Tools for Technology Transfer, 6(4), 2004.
 
28
29
 
30
31
32
33
 
34
[34] C. Flanagan and S. Qadeer. Thread-modular model checking. In Proceedings of SPIN'03, pages 213-224, 2003.
 
35
[35] R. Floyd. Assigning meaning to programs. In Proceedings of the Symposium on Applied Mathematics, 1967.
 
36
37
38
 
39
 
40
 
41
[41] A. Groce and W. Visser. Heuristics for model checking java programs. Int'l. Journal on Software Tools for Tech. Transfer , 6(4):260-276, 2004.
42
 
43
[43] T. A. Henzinger, R. Jhala, R. Majumdar, and S. Qadeer. Thread-modular abstraction refinement. pages 262-274, July 2003.
44
45
 
46
[46] G. Holzmann and D. Bosnacki. Multi-Core Model Checking with SPIN. In Proceedings of HIPS-TOPMoDRS, Long Beach, CA, 2007. IEEE.
 
47
 
48
 
49
[49] G. J. Holzmann and R. Joshi. Model-driven software verification. In Proceedings of SPIN'04, 2004.
 
50
 
51
[51] R. Iosif. Symmetry reductions for model checking of concurrent dynamic software. STTT, 6(4):302-319, 2004.
 
52
 
53
[53] C. B. Jones. Specification and Design of (Parallel) Programs. In Information Processing 83: Proceedings of the IFIP 9th World Congress, pages 321-332. IFIP: North Holland, 1983.
 
54
 
55
[55] S. Khurshid, C. S. Pasareanu, and W. Visser. Generalized symbolic execution for model checking and testing. In Proceedings of TACAS'03, 2003.
56
 
57
 
58
[58] G. T. Leavens, A. L. Baker, and C. Ruby. JML: a Java modeling language. In Formal Underpinnings of Java Workshop, Oct. 1998.
 
59
[59] A. Loginov, T. W. Reps, and S. Sagiv. Abstraction refinement via inductive learning. In Proceedings of CAV'05, pages 519-533, 2005.
 
60
 
61
62
 
63
 
64
[64] C. S. Pasareanu, R. Pelánek, and W. Visser. Concrete search with abstract matching and refinement. In Proceedings CAV'05, pages 52-66, 2005.
 
65
 
66
[66] Robby, E. Rodríguez, M. Dwyer, and J. Hatcliff. Checking Strong Specifications Using an Extensible Software Model Checking Framework. In Proceedings of TACAS'04, pages 404-420, 2004.
 
67
[67] E. Rodríguez, M. Dwyer, C. Flanagan, J. Hatcliff, G. T. Leavens, and Robby. Extending sequential specification techniques for modular specification and verification of multi-threaded programs. In Proceedings of ECOOP'05, pages 551-576, 2005.
68
69
 
70
[70] N. Sharygina, S. Chaki, E. Clarke, and N. Sinha. Dynamic Component Substitutability Analysis. In Proceedings of FM'05), volume 3582 of LNCS, pages 512-528, 2005.
 
71
72
73
 
74
75
 
76
[76] T. Xie, D. Marinov, W. Schulte, and D. Notkin. Symstra: A framework for generating object-oriented unit tests using symbolic execution. In Proceedings of TACAS'05, 2005.
77
78
 
79
[79] http://pmd.sourceforge.net.
 
80
[80] http://www.satcompetition.org.

CITED BY  10

Collaborative Colleagues:
Matthew B. Dwyer: colleagues
John Hatcliff: colleagues
Robby Robby: colleagues
Corina S. Pasareanu: colleagues
Willem Visser: colleagues