skip to main content
10.1145/1321631.1321664acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Automatic extraction of framework-specific models from framework-based application code

Published:05 November 2007Publication History

ABSTRACT

Framework-specific models represent the design of pplicationcode from the framework viewpoint by showing how framework-provided concepts are implemented in the code. In this paper, we describe an experimental study of the static analyses necessary to automatically retrieve such models from application code. We reverse engineer a number of applications based on three open-source frameworks and evaluate the quality of the retrieved models. The models are expressed using framework-specific modeling languages(FSMLs), each designed for one of the open-source frameworks. For reverse engineering, we use prototype implementations of the three FSMLs. Our results show that for the considered frameworks rather simple code analysesare sufficient for automatically retrieving framework-specific models form a large body of application code with high precision and recall

References

  1. C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to AspectJ. SIGPLAN Not., 40(10):345--364, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Antkiewicz and K. Czarnecki. Framework-specific modeling languages with round-trip engineering. In MoDELS, volume 4199 of LNCS, pages 692--706, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Antkiewicz and K. Czarnecki. Framework-specific modeling languages; examples and algorithms. Technical Report 2007--18, ECE, U. of Waterloo, 2007.Google ScholarGoogle Scholar
  4. Apache Software Foundation. Roller Weblogger 3.0. http://rollerweblogger.org/.Google ScholarGoogle Scholar
  5. Apache Software Foundation. Struts User's Guide. http://struts.apache.org/1.3.8/index.html.Google ScholarGoogle Scholar
  6. P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhotak, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Optimising AspectJ. In PLDI'05, pages 117--128, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. Cohen, J. Y. Gil, and I. Maman. JTL: the Java tools language. In OOPSLA'06, pages 89--108, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Czarnecki and U. W. Eisenecker. Generative programming: methods, tools, and applications; Appendix A: Conceptual Modeling, pages 721--737. ACM Press/Addison-Wesley Publishing Co., 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. De Volder. JQuery: A generic code browser with a declarative configuration language. In PADL'06, volume 3819 of LNCS, pages 88102, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Eclipse Foundation. Java Development Tools. http://www.eclipse.org/jdt/.Google ScholarGoogle Scholar
  11. G. Fairbanks, D. Garlan, and W. Scherlis. Design fragments make using frameworks easier. In OOPSLA'06, pages 75--88, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. Hajiyev, M. Verbaere, and O. de Moor. CodeQuest: Scalable source code queries with datalog. In ECOOP'06, volume 4067 of LNCS, pages 227, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In AOSD '04, pages 26--35, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In ECOOP'01, pages 327--355, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP'97, pages 220--242, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  16. B. A. Kitchenham, S. L. Pfleeger, L. M. Pickard, P. W. Jones, D. C. Hoaglin, K. E. Emam, and J. Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In APLAS'03, volume 2895 of LNCS, pages 105--121, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  18. C. Pandit. Make your Eclipse applications richer with view linking, 2005. http://www-128.ibm.com/developerworks/opensource/library/os-ecllink/.Google ScholarGoogle Scholar
  19. A. Rountev, S. Kagan, and T. J. Marlowe. Interprocedural dataflow analysis in the presence of large libraries. In CC'06, volume 3923 of LNCS, pages 216, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Sun Microsystems. Java Tutorials, Lesson: Applets. http://java.sun.com/docs/books/tutorial/deployment/applet/index.html.Google ScholarGoogle Scholar
  21. W. Zhang and B. G. Ryder. Constructing accurate application call graphs for Java to model library callbacks. In SCAM 2006, pages 63--74, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automatic extraction of framework-specific models from framework-based application code

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader