Model-Driven Engineering of Machine Executable Code

  • Michael Eichberg
  • Martin Monperrus
  • Sven Kloppenburg
  • Mira Mezini
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6138)

Abstract

Implementing static analyses of machine-level executable code is labor intensive and complex. We show how to leverage model-driven engineering to facilitate the design and implementation of programs doing static analyses. Further, we report on important lessons learned on the benefits and drawbacks while using the following technologies: using the Scala programming language as target of code generation, using XML-Schema to express a metamodel, and using XSLT to implement (a) transformations and (b) a lint like tool. Finally, we report on the use of Prolog for writing model transformations.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Jackson, D., Rinard, M.: Software analysis: A roadmap. In: Proceedings of the Conference on The Future of Software Engineering, pp. 133–145 (2000)Google Scholar
  2. 2.
    Binkley, D.: Source code analysis: A road map. In: Future of Software Engineering (FOSE 2007), Washington, DC, USA, pp. 104–119. IEEE Computer Society, Los Alamitos (2007)CrossRefGoogle Scholar
  3. 3.
    Brooks, F.: No silver bullet: Essence and accidents of software engineering. IEEE computer 20(4), 10–19 (1987)MathSciNetGoogle Scholar
  4. 4.
    Garcia, M.: Formalizing the well-formedness rules of EJB3QL in UML+ OCL. In: Kühne, T. (ed.) MoDELS 2006. LNCS, vol. 4364, p. 66. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Strembeck, M., Zdun, U.: An approach for the systematic development of domain-specific languages. Software: Practice and Experience 39(15) (2009)Google Scholar
  6. 6.
    Kuehne, T.: Matters of (meta-) modeling. Software and System Modeling 5(4), 369–385 (2006)CrossRefGoogle Scholar
  7. 7.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)Google Scholar
  8. 8.
    ISO/IEC Geneva, Switzerland: Information technology – Common Language Infrastructure (CLI) Partitions I to VI. ISO/IEC 23271:2006(E) edn. (2006)Google Scholar
  9. 9.
    Eichberg, M., Sewe, A.: Encoding the java virtual machine’s instruction set. In: Proceedings of the Fifth Bytecode Workshop. Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (to appear)Google Scholar
  10. 10.
    Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. John Wiley & Sons, Chichester (2008)Google Scholar
  11. 11.
    Monperrus, M., Jaozafy, F., Marchalot, G., Champeau, J., Hoeltzener, B., Jézéquel, J.M.: Model-driven simulation of a maritime surveillance system. In: Proceedings of the 4th European Conference on Model Driven Architecture Foundations and Applications (ECMDA 2008), vol. 13. Springer, Heidelberg (2008)Google Scholar
  12. 12.
    Pavon, J., Gomez-Sanz, J., Fuentes, R.: Model driven development of multi-agent systems. In: Proceedings of the European Conference on Model Driven Architecture - Foundations and Applications, ECMDA 2006 (2006)Google Scholar
  13. 13.
    Evans, D., Larochelle, D.: Improving security using extensible lightweight static analysis. IEEE Software (2002)Google Scholar
  14. 14.
    Rugaber, S., Stirewalt, K.: Model-driven reverse engineering. IEEE Software 21(4), 45–53 (2004)CrossRefGoogle Scholar
  15. 15.
    Strein, D., Lincke, R., Lundberg, J., Löwe, W.: An extensible meta-model for program analysis. IEEE Transactions on Software Engineering 33, 592–607 (2007)CrossRefGoogle Scholar
  16. 16.
    Störrle, H.: A prolog-based approach to representing and querying software engineering models. In: Proceedings of the Workshop on Visual Languages and Logic (VLL 2007), pp. 71–83 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Michael Eichberg
    • 2
  • Martin Monperrus
    • 2
  • Sven Kloppenburg
    • 1
  • Mira Mezini
    • 2
  1. 1.Kimeta GmbHGermany
  2. 2.Technische Universität DarmstadtGermany

Personalised recommendations