Skip to main content

Flow Analysis of Code Customizations

  • Conference paper
ECOOP 2008 – Object-Oriented Programming (ECOOP 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5142))

Included in the following conference series:

Abstract

Inconsistency between metadata and code customizations is a major concern in modern, configurable enterprise systems. The increasing reliance on metadata, in the form of XML files, and code customizations, in the form of Java files, has led to a hybrid development platform. The expected consistency requirements between metadata and code should be checked but often are not, so current tools offer surprisingly poor development support. In this paper, we adapt classical data flow analyses to detect inconsistencies and provide better static guarantees. We provide a formalization of the consistency requirements and a set of adapted analyses for a concrete case study. Our work is implemented in a fast and efficient prototype in the form of an Eclipse plugin. We validate our work by testing this prototype on actual production code; preliminary results show that this approach is worthwhile. We found a significant number of previously undetected consistency errors and have received very positive feedback from the developer community in the case study.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. The Apache Software Foundation: The Apache Open for Business Project (2007) March 8 (2007), http://ofbiz.apache.org/

  2. Franck, D.: Personal correspondance (2008)

    Google Scholar 

  3. Chen, S.: Personal correspondance (2008)

    Google Scholar 

  4. Hessellund, A., Czarnecki, K., Wasowski, A.: Guided Development with Multiple Domain-Specific Languages. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 46–60. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  5. BeanShell: Lightweight Scripting for Java (2007), http://www.beanshell.org/

  6. Jones, D., Schuessler, E.: Apache OFBiz: Real-World Open Source Java Platform ERP. Presented at the 2007 JavaOne Conference (2007)

    Google Scholar 

  7. Chen, S.: Opening Up Enterprise Software: Why Enterprises are Adopting Open Source Applications (2006), http://www.opensourcestrategies.com/slides/

  8. Various: Apache OFBiz User List (2007), http://docs.ofbiz.org/display/OFBIZ/Apache+OFBiz+User+List

  9. Gosling, J., Joy, B., Steele, G.L., Bracha, G.: The Java Language Specification, 3rd edn. Sun Microsystems (2005)

    Google Scholar 

  10. Aho, A.W., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools. 2 edn. Pearson Education, Inc (2007)

    Google Scholar 

  11. Fuhrer, R.M.: Static Analysis for Java in Eclipse, Lecture slides from the tutorial Static Analysis for Java in Eclipse at the ACM SIGPLAN 2005 Programming Language Design and Implementation (PLDI), Chicago, Illinois, USA. (2005), http://www.cs.purdue.edu/homes/jv/plditut/eclipse/index.html

  12. Hessellund, A.: OFBiz Explorer v2 (2007), http://www.itu.dk/people/hessellund/smartemf/ofbizexplorer.htm

  13. Bodoff, S., Armstrong, E., Ball, J., Carson, D., Evans, I., Green, D., Haase, K., Jendrock, E.: J2EE Tutorial, 2nd edn. Prentice-Hall, Englewood Cliffs (2004)

    Google Scholar 

  14. The Apache Software Foundation: The Struts Framework (2007), http://struts.apache.org/

  15. Spring Source: The Spring Framework (2007), http://www.springframework.org/

  16. Fairbanks, G., Garlan, D., Scherlis, W.L.: Design fragments make using frameworks easier. In: Tarr, P.L., Cook, W.R. (eds.) OOPSLA, pp. 75–88. ACM, New York (2006)

    Google Scholar 

  17. Antkiewicz, M., Czarnecki, K.: Framework-specific modeling languages with round-trip engineering. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 692–706. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  18. Antkiewicz, M., Bartolomei, T.T., Czarnecki, K.: Automatic extraction of framework-specific models from framework-based application code. In: ASE 2007: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pp. 214–223. ACM, New York (2007)

    Chapter  Google Scholar 

  19. Wright, A.K., Cartwright, R.: A practical soft type system for scheme. In: LISP and Functional Programming, 250–262 (1994)

    Google Scholar 

  20. Thiemann, P.: Towards a type system for analyzing javascript programs. In: Sagiv, S. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 408–422. Springer, Heidelberg (2005)

    Google Scholar 

  21. Marlow, S., Wadler, P.: A practical subtyping system for erlang. In: ICFP 1997: Proceedings of the second ACM SIGPLAN international conference on Functional programming, pp. 136–149. ACM, New York (1997)

    Chapter  Google Scholar 

  22. Christensen, A.S., Møller, A., Schwartzbach, M.I.: Precise Analysis of String Expressions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 1–18. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan Vitek

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hessellund, A., Sestoft, P. (2008). Flow Analysis of Code Customizations. In: Vitek, J. (eds) ECOOP 2008 – Object-Oriented Programming. ECOOP 2008. Lecture Notes in Computer Science, vol 5142. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70592-5_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-70592-5_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-70591-8

  • Online ISBN: 978-3-540-70592-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics