skip to main content
article

Dynamic analysis of java applications for multithreaded antipatterns

Published: 17 May 2005 Publication History

Abstract

Formal verification is not always applicable to large industrial software systems due to scalability issues and difficulties in formal model and requirements specification. The scalability and model derivation problems could be alleviated by runtime trace analysis, which combines both testing and formal verification. We implement and compare an ad-hoc custom approach and a formal approach to detect common bug patterns in multithreaded Java software. We use the tracing platform of the Eclipse IDE and state-of-the-art model checker Spin.

References

[1]
Allen, E. Bug Patterns in Java. Springer, 2002.
[2]
Andrews, J. H. Deriving State-Based Test Oracles for Conformance Testing. In Proceedings of the Second International Workshop on Dynamic Analysis (WODA 2004), (Edinburgh, Scotland, May 2004), 9--16.
[3]
Bacon, D., Block, J., Bogda, J., Click, C., Haahr, P., Lea, D., May, T., Maessen, J.-W., Mitchell, J., Nilsen, K., Pugh, B., and Sirer, E. G. The "Double-Checked Locking is Broken" Declaration. http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html.
[4]
Clarke, E. M., Grumberg, O., and Long, D. Model Checking. MIT Press, 2000.
[5]
Cohen, S. JTrek.
[6]
Eclipse Platform. http://www.eclipse.org/.
[7]
Engler, D., and Musuvathi, M. Static Analysis versus Software Model Checking for Bug Finding. In Proceeding of the Verification, Model Checking and Abstract Interpretation (VMCAI'04), (Venice, Italy, January 2004), 191--210.
[8]
Hallal, H., Alikacem, E., Tunney, P., Boroday, S., and Petrenko, A. Antipattern-based Detection of Deficiencies in Java Multithreaded Software. In Proceedings of the Fourth International Conference on Quality Software (QSIC2004), (Braunschweig, Germany, September 8-10, 2004), 258--267.
[9]
Hallal, H., Boroday, S., Ulrich, A., and Petrenko, A. An Automata-based Approach to Property Testing in Event Traces. In Proceedings of the International Conference on Testing of Communicating Systems (TestCom 2003), (Sophia Antipolis, France, May 26-29, 2003), 180--196.
[10]
Havelund, K., and Rosu, G. Monitoring Java Programs with Java PathExplorer. In Proceeding of First Workshop on Run-time Verification (RV'01), (Paris, France, July 23, 2001).
[11]
Havelund, K., Johnson, S., and Rosu, G. Specification and Error Pattern Based Program Monitoring. In Proceeding of European Space Agency Workshop on On-Board Autonomy, (Noordwijk, Holland, October 2001).
[12]
Havelund, K., Stoller, S., and Ur, S. Benchmark and Framework for Encouraging Research on Multi-Threaded Testing Tools. In Proceedings of the Workshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD), (Nice, France, April 22-26, 2003).
[13]
Hewlett-Packard Company. Visual Threads Home. http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareD etailPage_IDX/1,1703,5062,00.html.
[14]
Holzmann, G. J. The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, 2003.
[15]
Hyades Project. http://www.eclipse.org/hyades/.
[16]
Java MultiPathExplorer. JMPaX 2.0. http://yangtze.cs.uiuc.edu/~ksen/jmpax/web, 2005.
[17]
Magnin, L., Pham, V. T., Dury, A., Besson, N., and Thiefaine, A. Our guest agents are welcome to your agent platforms. In Proceedings of the ACM Symposium on Applied Computing (SAC 2002), (Madrid, Spain, March 10--14, 2002), 107--114.
[18]
Naumovich, G., Avrunin, G. S., and Clarke, L. A. Data Flow Analysis for Checking Properties of Concurrent Java Programs. In Proceedings of the 21st International Conference on Software Engineering, (May 1999), 399--410.
[19]
Petrenko, A., Boroday, S., and Groz, R. Confirming Configurations in EFSM Testing. IEEE Transactions on Software Engineering, 30, 1, (January 2004), 29--42.
[20]
Quest Software. JProbe. http://www.quest.com/jprobe.
[21]
Runtime Monitoring and Checking. http://www.cis.upenn.edu/~rtg/mac/, 2005.
[22]
Rutar, N., Almazan, C. B., and Foster, J. S. A Comparison of Bug Finding Tools for Java. In Proceeding of 15th IEEE International Symposium on Software Reliability Engineering (ISSRE'04), (Saint-Malo, France, November 2004), 245--256.
[23]
Sammapun, S., Sharykin R., DeLap, M., Kim, M., and Zdancewic, S. Formalizing Java-MaC. Electr. Notes Theor. Comput. Sci. 89, 2, (2003).
[24]
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., and Anderson, T. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. on Comp. Syst., 15, 4, (November 1997), 391--411.
[25]
Sen, K., Rosu, G., and Agha, G. Online Efficient Predictive Safety Analysis of Multithreaded Programs. In Proceedings of 10th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'04), (Barcelona, Spain, March 2004), 123--138.
[26]
Spec Patterns. http://patterns.projects.cis.ksu.edu/, 2005.
[27]
Sun Microsystems. Java. http://sun.Java.com, 2005.

Cited By

View all
  • (2014)An approach for modeling and detecting software performance antipatterns based on first-order logicsSoftware and Systems Modeling (SoSyM)10.1007/s10270-012-0246-z13:1(391-432)Online publication date: 1-Feb-2014
  • (2013)Systematic guidance in solving performance and scalability problemsProceedings of the 18th international doctoral symposium on Components and architecture10.1145/2465498.2465500(7-12)Online publication date: 17-Jun-2013
  • (2013)Performance problem diagnostics by systematic experimentationProceedings of the 18th international doctoral symposium on Components and architecture10.1145/2465498.2465499(1-6)Online publication date: 17-Jun-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 4
July 2005
1514 pages
ISSN:0163-5948
DOI:10.1145/1082983
Issue’s Table of Contents
  • cover image ACM Other conferences
    WODA '05: Proceedings of the third international workshop on Dynamic analysis
    May 2005
    75 pages
    ISBN:1595931260
    DOI:10.1145/1083246
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 May 2005
Published in SIGSOFT Volume 30, Issue 4

Check for updates

Author Tags

  1. Java
  2. antipatterns
  3. bug patterns
  4. bytecode
  5. instrumentation
  6. multithreading

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2014)An approach for modeling and detecting software performance antipatterns based on first-order logicsSoftware and Systems Modeling (SoSyM)10.1007/s10270-012-0246-z13:1(391-432)Online publication date: 1-Feb-2014
  • (2013)Systematic guidance in solving performance and scalability problemsProceedings of the 18th international doctoral symposium on Components and architecture10.1145/2465498.2465500(7-12)Online publication date: 17-Jun-2013
  • (2013)Performance problem diagnostics by systematic experimentationProceedings of the 18th international doctoral symposium on Components and architecture10.1145/2465498.2465499(1-6)Online publication date: 17-Jun-2013
  • (2022)Exploiting dynamic analysis for architectural smell detection: a preliminary study2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)10.1109/SEAA56994.2022.00051(282-289)Online publication date: Aug-2022
  • (2018)A formal approach for run-time verification of web applications using scope-extended LTLInformation and Software Technology10.1016/j.infsof.2013.07.01355:12(2191-2208)Online publication date: 30-Dec-2018
  • (2016)Antipattern-Based Problem Injection for Assessing Performance and Reliability Evaluation Techniques2016 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW.2016.36(64-70)Online publication date: Oct-2016
  • (2011)Detection and solution of software performance antipatterns in palladio architectural modelsProceedings of the 2nd ACM/SPEC International Conference on Performance engineering10.1145/1958746.1958755(19-30)Online publication date: 14-Mar-2011
  • (2010)DECORIEEE Transactions on Software Engineering10.1109/TSE.2009.5036:1(20-36)Online publication date: 1-Jan-2010
  • (2010)WeSPaS — Web specification pattern system2010 International Conference on Machine and Web Intelligence10.1109/ICMWI.2010.5647875(61-68)Online publication date: Oct-2010
  • (2010)Performance Antipatterns as Logical PredicatesProceedings of the 2010 15th IEEE International Conference on Engineering of Complex Computer Systems10.1109/ICECCS.2010.44(146-156)Online publication date: 22-Mar-2010
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media