Advertisement

Modeling Runtime Behavior in Framework-Based Applications

  • Nick Mitchell
  • Gary Sevitsky
  • Harini Srinivasan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4067)

Abstract

Our research group has analyzed many industrial, framework-based applications. In these applications, simple functionality often requires excessive runtime activity. It is increasingly difficult to assess if and how inefficiencies can be fixed. Much of this activity involves the transformation of information, due to framework couplings. We present an approach to modeling and quantifying behavior in terms of what transformations accomplish.

We structure activity into dataflow diagrams that capture the flow between transformations. Across disparate implementations, we observe commonalities in how transformations use and change their inputs. We introduce vocabulary of common phenomena of use and change, and four ways to classify data and transformations using this vocabulary. The structuring and classification enable evaluation and comparison in terms abstracted from implementation specifics. We introduce metrics of complexity and cost, including behavior signatures that attribute measures to phenomena. We demonstrate the approach on a benchmark, a library, and two industrial applications.

Keywords

Physical Representation Analysis Scenario Behavior Signature Simple Object Access Protocol Runtime Behavior 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alexander, W.P., Berry, R.F., Levine, F.E., Urquhart, R.J.: A unifying approach to performance analysis in the java environment. IBM Systems Journal 39(1) (2000)Google Scholar
  2. 2.
    Ammons, G., Choi, J., Gupta, M., Swamy, N.: Finding and removing performance bottlenecks in large systems. In: The European Conference on Object-Oriented Programming (2004)Google Scholar
  3. 3.
    Arisholm, E.: Dynamic coupling measures for object-oriented software. In: Symposium on Software Metrics (2002)Google Scholar
  4. 4.
    Bellay, B., Gall, H.: An evaluation of reverse engineering tool capabilities. Journal of Software Maintenance: Research and Practice 10 (1998)Google Scholar
  5. 5.
    Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendelsohn, N., Nielsen, H.F., Thatte, S., Winer, D.: Simple object access protocol (SOAP) 1.1. Technical Report 08, W3C World Wide Web Consortium (2000)Google Scholar
  6. 6.
    Brown, A.B., Keller, A., Hellerstein, J.L.: A model of configuration complexity and its application to a change management system. Integrated Management (2005)Google Scholar
  7. 7.
    Coad, P., Yourdon, E.: Object-Oriented Analysis, 2nd edn. Prentice-Hall, Englewood Cliffs (1991)Google Scholar
  8. 8.
    De Pauw, W., Mitchell, N., Robillard, M., Sevitsky, G., Srinivasan, H.: Drive-by analysis of running programs. In: Workshop on Software Visualization (2001)Google Scholar
  9. 9.
    Dieckmann, S., Hlze, U.: A study of the allocation behavior of the SPECjvm98 Java benchmark. In: The European Conference on Object-Oriented Programming, pp. 92–115 (1999)Google Scholar
  10. 10.
    Dufour, B., Driesen, K., Verbrugge, L.J.H.C.: Dynamic metrics for java. In: Object-oriented Programming, Systems, Languages, and Applications, pp. 149–168 (2003)Google Scholar
  11. 11.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)Google Scholar
  12. 12.
    Gane, C., Sarson, T.: Structured Systems Analysis. Prentice-Hall, Englewood Cliffs (1979)Google Scholar
  13. 13.
  14. 14.
    Kuncak, V., Lam, P., Rinard, M.: Role analysis. In: Symposium on Principles of Programming Languages (2002)Google Scholar
  15. 15.
    Mandelin, D., Xiu, L., Bodik, R., Kimmelman, D.: Mining jungloids: Helping to navigate the api jungle. In: Programming Language Design and Implementation (2005)Google Scholar
  16. 16.
    Marciniak, J.J. (ed.): Encyclopedia of Software Engineering. John Wiley & Sons, Chichester (2004)Google Scholar
  17. 17.
    McCabe, T.J., Watson, A.H.: Software complexity. Crosstalk, Journal of Defense Software Engineering 7(12), 5–9 (1994)Google Scholar
  18. 18.
    Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: International Conference on Software Engineering (2000)Google Scholar
  19. 19.
    Richner, T., Ducasse, S.: Using dynamic information for the iterative recovery of collaborations and roles. In: International Conference on Software Maintenance (2002)Google Scholar
  20. 20.
    Sevitsky, G., De Pauw, W., Konuru, R.: An information exploration tool for performance analysis of java programs. In: TOOLS Europe 2001, Zurich, Switzerland (2001)Google Scholar
  21. 21.
    Sherwood, T., Perelman, E., Hamerly, G., Calder, B.: Automatically characterizing large scale program behavior. Architectural Support for Programming Languages and Operating Systems (2002)Google Scholar
  22. 22.
    Tip, F.: A survey of program slicing techniques. Journal of Programming Languages (1995)Google Scholar
  23. 23.
    Walker, R.J., Murphy, G.C., Steinbok, J., Robillard, M.P.: Efficient mapping of software system traces to architectural views. In: CASCON, pp. 31–40 (2000)Google Scholar
  24. 24.
    Welker, K.D., Oman, P.W.: Software maintainability metrics models in practice. Crosstalk, Journal of Defense Software Engineering 8(11), 19–23 (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Nick Mitchell
    • 1
  • Gary Sevitsky
    • 1
  • Harini Srinivasan
    • 2
  1. 1.IBM TJ Watson Research CenterHawthorneUSA
  2. 2.IBM Software GroupSomersUSA

Personalised recommendations