skip to main content
10.1145/1188966.1188970dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
Article

Combined static and dynamic analysis for inferring program dependencies using a pattern language

Published: 16 October 2006 Publication History

Abstract

One of the challenges when examining enterprise applications is the ability to understand the dependencies of these applications on external and internal resources such as database access or transaction activation. Inferring dependencies can be achieved using a static approach, a dynamic one or a combination of the two. Static analysis tools detect dependencies based on code investigation while dynamic tools detect dependencies based on runtime execution. The combination of these two approaches is essential for a complete and precise analysis. In this paper we present and illustrate a technique for inferring application dependencies on resources. The technique is based on a combined dynamic and static analysis. A pattern language is defined to enable the specification of dependencies as sequences of method invocations in the application code. Specifically, the sequences are patterns that constitute access to resources, e.g. databases, message queues, and control systems. We propose an algorithm for inferring application dependencies based on hybrid dynamic and static analysis that propagates information provided by dynamic analysis into the static analysis and back to the dynamic analysis. Empirical results from our implemented prototype are presented.

References

[1]
R. Alur, P. Cerny, P. Madhusudan, and W. Nam. Synthesis of interface specifications for java classes. SIGPLAN Not., 40(1):98--109, 2005.
[2]
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen, May 1994.
[3]
R. Bodik and S. Anik. Path-sensitive valueflow analysis. In Symp. on Princ. of Prog. Lang., pages 237--251. ACM Press, 1998.
[4]
D. Callahan, K. D. Cooper, K. Kennedy, and L. Torczon. Interprocedural constant propagation. In Int. Conf. on Comp. Construct., pages 152--161. ACM Press, 1986.
[5]
CAST. CAST Application Intelligence Platform. 'http://www.castsoftware.com/".
[6]
N. Dor, S. Adams, M. Das, and Z. Yang. Software validation via scalable pathsensitive value flow analysis. In Int. Symposium on Software Testing and Analysis, pages 12--22, 2004.
[7]
Eclipse Foundation. The Eclipse Test and Performance Tools Platform. "http://www.eclipse.org/tptp/".
[8]
T. Eisenbarth, R. Koschke, and D. Simon. Aiding program comprehension by static and dynamic feature analysis. In Int. Conf. on Soft. Maintenance., pages 602--611, 2001.
[9]
D. Eng. Combining static and dynamic data in code visualization. In Workshop on Program Analysis For Software Tools and Engineering, pages 43--50, 2002.
[10]
M. Ernst. Static and dynamic analysis: synergy and duality. In Workshop on Dynamic Analysis (WODA), 2003.
[11]
J. Ferrante, K. J. Ottenstein, and J. D. Warren. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst., 9(3):319--349, 1987.
[12]
S. Fink, E. Yahav, N. Dor, G. Ramalingam and E. Geay, Effective typestate verification in the presence of aliasing. In ISSTA'06: Proceedings of the 2006 international symposium on Software testing and analysis, pages. 133--144, 2006.
[13]
HAL Knowledge Solutions. HAL. "http://www.halks.com/".
[14]
D. Heuzeroth, S. Mandel, and W. Löwe. Generating design pattern detectors from pattern specifications. In Int. Conf. on Automated Softw. Eng., pages 245--248, 2003.
[15]
IBM Software. IBM CICS Interdependency Analyzer. "http://www-306.ibm.com/software/htp/cics/ianaly/".
[16]
IBM Software. IBM Tivoli Monitoring for Transaction Performance. "http://www-306.ibm.com/software/tivoli/products/monitortransaction/"
[17]
IBM Software. Websphere Studio Application Monitor. "http://www-306.ibm.com/software/awdtools/studioapplicationmonitor/".
[18]
IBM Software. Websphere Studio Asset Analyzer. "http://www-306.ibm.com/software/awdtools/wsaa/".
[19]
IBM Watson Research Center. DOMO. "http://www.research.ibm.com/patrans/".
[20]
D. Jackson and E. J. Rollins. A new model of program dependences for reverse engineering. In ACM SIGSOFT symposium on Foundations of software engineering, pages 2--10. ACM Press, 1994.
[21]
W. Landi and B. Ryder. Pointer induced aliasing: A problem classification. In Symp. on Princ. of Prog. Lang., pages 93--103, New York, NY, Jan. 1991. ACM Press.
[22]
Mercury. Mercury Application Mapping. "http://www.mercury.com/us/products/businessavailability-center/application mapping/".
[23]
G. Necula, S. McPeak, and W. Weimer. Ccured: Typesafe retrofitting of legacy code. In Symp. on Princ. of Prog. Lang., 2002.
[24]
M. P. Robillard. Automatic generation of suggestions for program investigation. In European software engineering conference, pages 11--20. ACM Press, 2005.
[25]
R. E. Strom and D. M. Yellin. Extending typestate checking using conditional liveness analysis. IEEE Trans. Software Eng., 19(5):478--485, May 1993.
[26]
R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Software Eng., 12(1):157--171, 1986.
[27]
SUN Microsystems. Java Pet Store. http://java.sun.com/developer/releases/petstore/".
[28]
L. Wendehals. Improving design pattern instance recognition by dynamic analysis. In ICSE Workshop on Dynamic Analysis (WODA), pages 29--33, 2003.
[29]
J. Whaley, M. Martin, and M. Lam. Automatic extraction of object-oriented component interfaces. In Int. Symposium on Software Testing and Analysis, July 2002.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image DL Hosted proceedings
CASCON '06: Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
October 2006
388 pages

Sponsors

  • IBM Toronto Lab
  • CAS

Publisher

IBM Corp.

United States

Publication History

Published: 16 October 2006

Qualifiers

  • Article

Acceptance Rates

CASCON '06 Paper Acceptance Rate 24 of 90 submissions, 27%;
Overall Acceptance Rate 24 of 90 submissions, 27%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 483
    Total Downloads
  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

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