Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11691372_5guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Evaluating the effectiveness of slicing for model reduction of concurrent object-oriented programs

Published: 25 March 2006 Publication History

Abstract

Model checking techniques have proven effective for checking a number of non-trivial concurrent object-oriented software systems. However, due to the high computational and memory costs, a variety of model reduction techniques are needed to overcome current limitations on applicability and scalability. Conventional wisdom holds that static program slicing can be an effective model reduction technique, yet anecdotal evidence is mixed, and there has been no work that has systematically studied the costs/benefits of slicing for model reduction in the context of model checking source code for realistic systems.
In this paper, we present an overview of the sophisticated Indus program slicer that is capable of handling full Java and is readily applicable to interesting off-the-shelf concurrent Java programs. Using the Indus program slicer as part of the next generation of the Bandera model checking framework, we experimentally demonstrate significant benefits from using slicing as a fully automatic model reduction technique. Our experimental results consider a number of Java systems with varying structural properties, the effects of combining slicing with other well-known model reduction techniques such as partial order reductions, and the effects of slicing for different classes of properties. Our conclusions are that slicing concurrent object-oriented source code provides significant reductions that are orthogonal to a number of other reduction techniques, and that slicing should always be applied due to its automation and low computational costs.

References

[1]
G. R. Andrews. Concurrent Programming: Principles and Practice. Addison-Wesley, 1991.
[2]
T. Ball, R. Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In Proceedings of the ACM SIGPLAN '01 Conference on Programming Language Design and Implementation (PLDI-01), pages 203-213, June 2001.
[3]
Bandera. +http://bandera.projects.cis.ksu.edu+. SAnToS Laboratory.
[4]
M. Bozga, J.-C. Fernandez, L. Ghirvu, S. Graf, J.-P. Krimm, and L.Mounier. IF: A validation environment for timed asynchronous systems. In 12th International Conference on Computer Aided Verification (CAV 2000), LNCS 1855, pp. 543-547, July 2000.
[5]
G. Brat, K. Havelund, S. Park, and W. Visser. Java PathFinder - A second generation of a Java model-checker. In Proceedings of the Workshop on Advances in Verification, July 2000.
[6]
E. Clarke, M. Fujita, S. Rajan, T.Reps, S. Shankar, and T. Teitelbaum. Program slicing of hardware description languages. In Proceedings of CHARME'99, September 1999.
[7]
E. M. Clarke and E. A. Emerson. Design and synthesis of synchronization skeletons using branching-time temporal logic. In Logic of Programs, Workshop, pages 52-71, London, UK, 1982. Springer.
[8]
J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Păsăreanu, Robby, and H. Zheng. Bandera: Extracting finite-state models from Java source code. In Proceedings of the 22nd International Conference on Software Engineering, June 2000.
[9]
J. C. Corbett, M. B. Dwyer, J. Hatcliff, and Robby. Expressing checkable properties of dynamic systems: The Bandera Specification Language. International Journal on Software Tools for Technology Transfer, 2002.
[10]
H. Do, S. Elbaum, and G. Rothermel. Infrastructure support for controlled experimentation with software testing and regression testing techniques. In 2004 International Symposium on Empirical Software Engineering (ISESE 2004), pages 60-70. IEEE Computer Society, 2004.
[11]
M. B. Dwyer, J. Hatcliff, R. Joehanes, S. Laubach, C. S. Păsăreanu, Robby, W. Visser, and H. Zheng. Tool-supported program abstraction for finite-state verification. In Proceedings of the 23rd International Conference on Software Engineering, May 2001.
[12]
M. B. Dwyer, J. Hatcliff, V. R. Prasad, and Robby. Exploiting object escape and locking information in partial order reductions for concurrent object-oriented programs. Formal Methods in System Designs, 25(2-3):199-240, September-November 2004.
[13]
Eclipse Consortium. Eclipse website. http://www.eclipse.org.
[14]
C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In J. Palsberg and M. Abadi, editors, Proceedings of the 32nd ACMSIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL, pages 110-121, Long Beach, California, USA, January 2005. ACM.
[15]
P. Godefroid. Partial Order Methods for the Verification of Concurrent Systems, volume 1032 of Lecture Notes in Computer Science. Springer, 1996.
[16]
A. Groce and W. Visser. Model checking Java programs using structural heuristics. In Proceedings of the International Symposium on Software Testing and Analysis, pages 12-21. ACM Press, 2002.
[17]
J. Hatcliff, J. C. Corbett, M. B. Dwyer, S. Sokolowski, and H. Zheng. A formal study of slicing for multi-threaded programs with JVM concurrency primitives. In Proceedings of the 6th International Static Analysis Symposium (SAS'99), volume 1694 of Lecture Notes in Computer Science, Sept. 1999.
[18]
J. Hatcliff, M. B. Dwyer, and H. Zheng. Slicing software for model construction. Journal of Higher-order and Symbolic Computation, 13(4):315-353, 2000.
[19]
G. J. Holzmann. The model checker SPIN. IEEE Transactions on Software Engineering, 23(5):279-294, May 1997.
[20]
G. J. Holzmann. Personal communication, Oct. 2005.
[21]
R. Iosif. Symmetry reduction criteria for software model checking. In Proceedings of Ninth International SPIN Workshop, volume 2318 of Lecture Notes in Computer Science, pages 22-41. Springer, Apr. 2002.
[22]
Java Grande Benchmarking Project. Java Grande forum benchmark suite - thread version 1.0. http://www.epcc.ed.ac.uk/computing/research activities/ java grande/.
[23]
G. Jayaraman, V. P. Ranganath, and J. Hatcliff. Kaveri: Delivering Indus Java program slicer to Eclipse. In Proceedings of the Fundamental Approaches to Software Engineering, FASE 2005. Springer, April 2005.
[24]
G. Jia and S. Graf. Verification experiments on the MASCARA protocol. In M. B. Dwyer, editor, Model Checking Software: 8th International SPIN Workshop, volume 2057 of LNCS, pages 123-142, Toronto, Canada, May 2001. Springer.
[25]
J. Krinke. Static slicing of threaded programs. In Proceedings ACM SIGPLAN/SIGFSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'98), pages 35- 42, Montreal, Canada, June 1998. ACM SIGPLAN Notices 33(7).
[26]
L. I. Millett and T. Teitelbaum. Slicing Promela and its applications to model checking, simulation, and protocol understanding. In Proceedings of the 4th International SPIN Workshop, LNCS, 1998.
[27]
M. G. Nanda and S. Ramesh. Slicing concurrent programs. In Proceedings of International Symposium on Software Testing and Analysis (ISSTA'00), pages 180-190, 2000.
[28]
A. Podgurski and L. Clarke. A formal model of program dependences and its implications for software testing, debugging, and maintenance. IEEE Transactions on Software Engineering, 16(8):965-979, 1990.
[29]
V. P. Ranganath. Indus. +http://indus.projects.cis.ksu.edu+.
[30]
V. P. Ranganath. Object-flow analysis for optimizing finite-state models of Java software. Master's thesis, Kansas State University, 2002.
[31]
V. P. Ranganath, T. Amtoft, A. Banerjee, M. B. Dwyer, and J. Hatcliff. A new foundation for control-dependence and slicing for modern program structures. In Programming Languages and Systems, Proceedings of 14th European Symposium on Programming, ESOP 2005. Springer, April 2005.
[32]
V. P. Ranganath and J. Hatcliff. Pruning interference and ready dependences for slicing concurrent Java programs. In E. Duesterwald, editor, Proceedings of Compiler Construction (CC'04), Lecture Notes in Computer Science 2985, pages 39-56. March 2004.
[33]
Robby, M. B. Dwyer, and J. Hatcliff. Bogor: An extensible and highly-modular model checking framework. In Proceedings of the 9th European Software Engineering Conference / 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2003.
[34]
Robby, M. B. Dwyer, J. Hatcliff, and R. Iosif. Space-reduction strategies for model checking dynamic systems. In Proceedings of the 2003 Workshop on Software Model Checking, July 2003.
[35]
A. Sen, J. Bhadra, V. K. Garg, and J. A. Abraham. Formal verification of a system-on-chip using computation slicing. In International Test Conference ITC, pages 810-819, October 2004.
[36]
S. Stoller. Model-checking multi-threaded distributed Java programs. In International Journal on Software Tools for Technology Transfer. Springer, 2002.
[37]
D. Suwimonteerabuth, S. Schwoon, and J. Esparza. jMoped: A Java bytecode checker based on Moped. In Proceedings of the 11th Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2007), number 3440 in Lecture Notes in Computer Science, pages 541-545, 2005.
[38]
F. Tip. A survey of program slicing techniques. Journal of programming languages, 3:121- 189, 1995.
[39]
R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - A Java optimization framework. In Proceedings of CASCON'99, Nov. 1999.

Cited By

View all
  • (2025)Program Dependence Net and on-demand slicing for property verification of concurrent system and softwareJournal of Systems and Software10.1016/j.jss.2024.112221219:COnline publication date: 1-Jan-2025
  • (2020)Contributions to improve the combined selection of concurrent software testing techniquesProceedings of the 5th Brazilian Symposium on Systematic and Automated Software Testing10.1145/3425174.3425214(69-78)Online publication date: 20-Oct-2020
  • (2018)Sound deadlock predictionProceedings of the ACM on Programming Languages10.1145/32765162:OOPSLA(1-29)Online publication date: 24-Oct-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
TACAS'06: Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
March 2006
503 pages
ISBN:3540330569
  • Editors:
  • Holger Hermanns,
  • Jens Palsberg

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 25 March 2006

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Program Dependence Net and on-demand slicing for property verification of concurrent system and softwareJournal of Systems and Software10.1016/j.jss.2024.112221219:COnline publication date: 1-Jan-2025
  • (2020)Contributions to improve the combined selection of concurrent software testing techniquesProceedings of the 5th Brazilian Symposium on Systematic and Automated Software Testing10.1145/3425174.3425214(69-78)Online publication date: 20-Oct-2020
  • (2018)Sound deadlock predictionProceedings of the ACM on Programming Languages10.1145/32765162:OOPSLA(1-29)Online publication date: 24-Oct-2018
  • (2018)AmandroidACM Transactions on Privacy and Security10.1145/318357521:3(1-32)Online publication date: 16-Apr-2018
  • (2016)A systematic review of approaches for testing concurrent programsConcurrency and Computation: Practice & Experience10.1002/cpe.371128:5(1572-1611)Online publication date: 10-Apr-2016
  • (2014)AmandroidProceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security10.1145/2660267.2660357(1329-1341)Online publication date: 3-Nov-2014
  • (2014)Traceability and SysML design slices to support safety inspectionsACM Transactions on Software Engineering and Methodology10.1145/255997823:1(1-43)Online publication date: 20-Feb-2014
  • (2013)Programs from Proofs --- A PCC AlternativeProceedings of the 25th International Conference on Computer Aided Verification - Volume 804410.5555/2958031.2958067(912-927)Online publication date: 13-Jul-2013
  • (2013)State-based model slicingACM Computing Surveys10.1145/2501654.250166745:4(1-36)Online publication date: 30-Aug-2013
  • (2011)Ten years of analyzing actorsFormal modeling10.5555/2074591.2074596(20-56)Online publication date: 1-Jan-2011
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media