Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Measuring precision for static and dynamic design pattern recognition as a function of coverage

Published: 17 May 2005 Publication History

Abstract

We strive to detect design pattern like patterns in software. This cannot be done efficiently with sufficient precision using only static analysis; we need to combine static and dynamic analysis. In this process, the pattern candidates produced from static analysis are monitored during executions of the software: Candidates detected by static analysis violating the expected dynamic protocol of the pattern are excluded. In this article, we investigate where to put effort when trying to perform high precision pattern detection in code. We do so by investigating which parameters are most important to improve the precision of the detection process: precision of initial static analysis or coverage of the dynamic analysis. Varying the precision of the dynamic analysis is a third important parameter, but this parameter is left as a constant during our experiments. The results show that simple behavioral protocols double the precision when 30% coverage is obtained. We also have indications that simple behavioral protocols give very high precision when high coverage is obtained. In such case, the quality of the static analysis is only interesting for precision if high coverage cannot be reached.

References

[1]
G. Antoniol, R. Fiutem, and L. Christoforetti. Design pattern recovery in object-oriented software. In 6th International Workshop on Program Comprehension, pages 153--160, June 1998.
[2]
Apache Software Foundation. Bcel. Internet, February 2005. http://jakarta.apache.org/bcel/index.html.
[3]
U. Assmann and A. Ludwig. Recoder home page. Internet, December 2004.
[4]
D. Beyer, A. Noack, and C. Lewerentz. Simple and efficient relational querying of software structures. In Proc. of WCRE 2003, pages 216--225, 2003.
[5]
R. E. Bryant. Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys, 24(3):293--318, 1992.
[6]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, 1995.
[7]
M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, New York, 1979.
[8]
D. Heuzeroth, T. Holl, and W. Löwe. Combining static and dynamic analyses to detect interaction patterns. In Proceedings of the Sixth International Conference on Integrated Design and Process Technology (IDPT), Jun 2002.
[9]
InjectJ. InjectJ. Internet, December 2004. http://injectj.sourceforge.net/.
[10]
Javassist. Javassist. Internet, February 2005. http://www.csg.is.titech.ac.jp/~chiba/javassist/.
[11]
R. K. Keller, R. Schauer, S. Robitaille, and P. Page. Pattern-based reverse-engineering of design components. In International Conference of Software Engineering, IEEE Computer Society Press, pages 226--235, Los Angeles, USA, May 1999.
[12]
C. Krämer and L. Prechelt. Design recovery by automated search for structural design patterns in object-oriented software. In Working Conference on Reverse Engineering, pages 208--215, November 1996.
[13]
J. Niere, W. Schafer, J. Wadsack, L. Wendehals, and J. Welsh. Towards pattern-based design recovery. In Proceedings of the 24rd International Conference on Software Engineering, pages 338--348. ACM, 2002.
[14]
N. Pettersson. Performance of pattern detection using declarative and semi-declarative queries. Technical Report 05019, School of Mathematics and Systems Engineering, February 2005.
[15]
U. P. Schultz, J. L. Lawall, and C. Consel. Specialization patterns. In Proceedings of ASE 2000, 2000.
[16]
Sun microsystems. J2SE API Specification. Internet, December 2004. http://java.sun.com.
[17]
Sun Microsystems. Java debug interface. Internet, February 2005. http://java.sun.com/j2se/1.4.2/docs/guide/jpda/jdi/.
[18]
Sun Microsystems. Java platform debugger architecture. Internet, February 2005. http://java.sun.com/products/jpda/index.jsp.
[19]
Sun Microsystems. Java virtual machine debug interface. Internet, February 2005. http://java.sun.com/products/jpda/doc/jvmdispec.html.
[20]
L. Wendehals. Improving design pattern instance recognition by dynamic analysis. In ICSE 2003 Workshop on Dynamic Analysis (WODA), Portland, USA, May 2003.
[21]
L. Wendehals, M. Meyer, and A. Elsner. Selective Tracing of Java Programs. In Proc. of the 2nd International Fujaba Days 2004, Darmstadt, Germany, volume tr-ri-04-253 of Technical Report, pages 7--10. University of Paderborn, September 2004.

Cited By

View all
  • (2018)Detecting the Behavior of Design Patterns through Model Checking and Dynamic AnalysisACM Transactions on Software Engineering and Methodology10.1145/317664326:4(1-41)Online publication date: 12-Feb-2018
  • (2016)Using model transformation to refactor use case models based on antipatternsInformation Systems Frontiers10.1007/s10796-014-9528-z18:1(171-204)Online publication date: 1-Feb-2016
  • (2008)Ontology-Based Design Pattern RecognitionProceedings of the 12th international conference on Knowledge-Based Intelligent Information and Engineering Systems, Part I10.1007/978-3-540-85563-7_50(384-393)Online publication date: 3-Sep-2008
  • 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

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2018)Detecting the Behavior of Design Patterns through Model Checking and Dynamic AnalysisACM Transactions on Software Engineering and Methodology10.1145/317664326:4(1-41)Online publication date: 12-Feb-2018
  • (2016)Using model transformation to refactor use case models based on antipatternsInformation Systems Frontiers10.1007/s10796-014-9528-z18:1(171-204)Online publication date: 1-Feb-2016
  • (2008)Ontology-Based Design Pattern RecognitionProceedings of the 12th international conference on Knowledge-Based Intelligent Information and Engineering Systems, Part I10.1007/978-3-540-85563-7_50(384-393)Online publication date: 3-Sep-2008
  • (2020)Distinguishing Similar Design Pattern Instances through Temporal Behavior Analysis2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054804(296-307)Online publication date: Feb-2020
  • (2019)Evaluation of Accuracy in Design Pattern Occurrence DetectionIEEE Transactions on Software Engineering10.1109/TSE.2009.9236:4(575-590)Online publication date: 3-Jan-2019
  • (2018)A methodology to assess the impact of design patterns on software qualityInformation and Software Technology10.1016/j.infsof.2011.10.00654:4(331-346)Online publication date: 29-Dec-2018
  • (2015)Towards automating dynamic analysis for behavioral design pattern detectionProceedings of the 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSM.2015.7332462(161-170)Online publication date: 29-Sep-2015
  • (2015)Recovery of Object-Oriented Design Patterns Using Static and DynamicInternational Journal of Computers and Applications10.1080/1206212X.2008.1144190230:3(220-233)Online publication date: 11-Jul-2015
  • (2013)Java Source Code Static Check Eclipse Plug-In Based on Common Design PatternProceedings of the 2013 Fourth World Congress on Software Engineering10.1109/WCSE.2013.30(165-170)Online publication date: 3-Dec-2013
  • (2012)Research on Detecting and Validating Design Pattern Instances from Source CodeProceedings of the 2012 International Conference on Computer Science and Service System10.1109/CSSS.2012.376(1499-1503)Online publication date: 11-Aug-2012
  • 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media