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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
The Apache Software Foundation: The Apache Open for Business Project (2007) March 8 (2007), http://ofbiz.apache.org/
Franck, D.: Personal correspondance (2008)
Chen, S.: Personal correspondance (2008)
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)
BeanShell: Lightweight Scripting for Java (2007), http://www.beanshell.org/
Jones, D., Schuessler, E.: Apache OFBiz: Real-World Open Source Java Platform ERP. Presented at the 2007 JavaOne Conference (2007)
Chen, S.: Opening Up Enterprise Software: Why Enterprises are Adopting Open Source Applications (2006), http://www.opensourcestrategies.com/slides/
Various: Apache OFBiz User List (2007), http://docs.ofbiz.org/display/OFBIZ/Apache+OFBiz+User+List
Gosling, J., Joy, B., Steele, G.L., Bracha, G.: The Java Language Specification, 3rd edn. Sun Microsystems (2005)
Aho, A.W., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools. 2 edn. Pearson Education, Inc (2007)
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
Hessellund, A.: OFBiz Explorer v2 (2007), http://www.itu.dk/people/hessellund/smartemf/ofbizexplorer.htm
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)
The Apache Software Foundation: The Struts Framework (2007), http://struts.apache.org/
Spring Source: The Spring Framework (2007), http://www.springframework.org/
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)
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)
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)
Wright, A.K., Cartwright, R.: A practical soft type system for scheme. In: LISP and Functional Programming, 250–262 (1994)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)