Skip to main content
Log in

Genesys: service-oriented construction of property conform code generators

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

This paper presents Genesys, a framework for the high-level construction of property conform code generators. Genesys is an integral part of jABC, a flexible framework designed to enable a systematic model-driven development of systems and applications on the basis of an (extensible) library of well-defined, reusable building blocks. Within jABC, Genesys manages the construction of code generators for jABC’s models. So far, Genesys has been used to develop code generators for a variety of different target platforms, like a number of Java-based platforms, mobile devices, BPEL engines, etc. Since the code generators are themselves built within the jABC in a model-driven way, concepts like bootstrapping and reuse of existing components enable a fast evolution of Genesys’ code generation library, and a high degree of self-application. Due to its increasing complexity and its high degree of reuse, Genesys profits from model checking-based verification. This way, jABC’s models of code generators can be automatically checked wrt. well-formedness properties, to ensure that the models do indeed only consist of building blocks which are suitable for the considered target platforms, and whose versions are mutually compatible. It can be also be verified that the code generation process only starts after a successful initialization phase, and that the generated code is always packaged with all the required libraries. We will illustrate the ease of extension and flexibility of the Genesys framework by describing the intended coverage of diversity while highlighting the high potential of reuse.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Hoare CAR (2003) The verifying compiler: a grand challenge for computing research. J ACM 50(1):63–69

    Google Scholar 

  2. Hoare CAR, Misra J (2005) Verified software: theories, tools, experiments. Vision of a Grand Challenge Project. In: Proc. VSTTE. Springer Verlag, Zürich, Switzerland

  3. Appel AW (2001) Foundational Proof-Carrying Code. In: Proc. LICS ’01, p 247. IEEE Computer Society

  4. Necula GC (1997) Proof-carrying code. In: Proc. POPL ’97, ACM Press, New York, NY, USA, pp 106–119

  5. Denney E, Fischer B (2006) Extending source code generators for evidence-based software certification. In: Proc. ISOLA ’06, pp 138–145

  6. Goos G, Zimmermann W (1999) Verification of Compilers. In: Correct System Design, vol 1710. Springer, Berlin, pp 201–230. http://www.info.uni-karlsruhe.de/papers/CorrectSystemDesign99.ps.gz

  7. Necula GC (2000) Translation validation for an optimizing compiler. ACM SIGPLAN Notices 35(5): 83–94

    Article  Google Scholar 

  8. Stürmer I, Weinberg D, Conrad M (2005) Overview of existing safeguarding techniques for automatically generated code. In: Proc. SEAS ’05, ACM Press, New York, NY, USA, pp 1–6

  9. Coglio A, Green C (2005) A constructive approach to correctness, exemplified by a generator for certified Java Card Applets. In: Proc. VSTTE

  10. Margaria T, Steffen B (2004) Lightweight coarse-grained coordination: a scalable system-level approach. STTT 5(2–3): 107–123

    Google Scholar 

  11. Margaria T, Steffen B, Reitenspieß M (2005) Service-oriented design: the roots. In: ICSOC 2005: 3rd ACMSIGSOFT/SIGWEB Int. Conf. on Service-Oriented Computing, LNCS N.3826, Springer, Amsterdam, pp 450–464

  12. Margaria T, Steffen B (2006) Service engineering: linking business and IT. IEEE Comput 39(10): 45–55

    Google Scholar 

  13. Steffen B, Margaria T, Nagel R, Jörges S, Kubczak C (2006) Model-Driven Development with the jABC. In: HVC—IBM Haifa Verification Conference, LNCS N.4383. Springer, Berlin, pp 92–108

  14. Technische Universität Dortmund: jABC Website (2007). http://www.jabc.de

  15. OASIS: WS-BPEL 2.0 Specification (2007). http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf

  16. Hansen J (2007) NBC/NXC—Next Byte Codes & Not eXactly C. http://bricxcc.sourceforge.net/nbc/

  17. Clarke EM, Grumberg O, Peled D (2001) Model checking. MIT Press, Cambridge, MA, USA

    Google Scholar 

  18. Queille JP, Sifakis J (1982) Specification and verification of concurrent systems in CESAR. In: Proc. 5th Colloquium on International Symposium on Programming. Springer, London, UK, pp 337–351

  19. Margaria T, Steffen B (2008) Agile IT: thinking in user-centric models. In: Proc. ISoLA 2008, CCIS N.17, Springer, pp 493–505

  20. Margaria T, Steffen B (2008) Business process modelling in the jABC: the one-thing approach. In: Handbook of research on business process modeling. IGI Global

  21. Steffen B, Narayan P (2007) Full life-cycle support for end-to-end processes. IEEE Computer 40(11): 64–73

    Google Scholar 

  22. ITU: General recommendations on telephone switching and signaling-intelligent network: Introduction to intelligent network capability set 1, Recommendation Q.1211. Tech. rep., Standardization Sector of ITU, Geneva (1993)

  23. ITU-T: Recommendation Q.1203. Intelligent Network–Global Functional Plane Architecture. Tech. rep., Standardization Sector of ITU (1992)

  24. Apache Software Foundation: Velocity Website (2007). http://velocity.apache.org/

  25. The  jABC  Team  (2008)  jABC  Common Sibs. http://www.jabc.de/sib

  26. Niemeyer P (2008) BeanShell—lightweight scripting for Java. http://www.beanshell.org/

  27. The Codehaus (2008) Groovy Website. http://groovy.codehaus.org/

  28. Müller-Olm M, Schmidt D, Steffen B (1999) Model-checking: a tutorial introduction. In: Proc. SAS, pp 330–354

  29. Steffen B, Margaria T, Braun V, Kalt N (1997) Hierarchical service definition. In: Annual Review of Communication. Int. Engineering Consortium Chicago (USA), IEC, pp 847–856

  30. Bakera M, Margaria T, Renner CD, Steffen B (2008) Model checking with the JavaABC Framework—from METAGame to GEAR. In: QEES’08, Intern. Symposium on Quality Engineering for Embedded Systems—In conjunction with the ECMDA 2008. IEEE CS

  31. Bakera M, Margaria T, Renner CD, Steffen B (2008) Verification, diagnosis and adaptation: tool-supported enhancement of the model-driven verification process. Innov Syst Softw Eng NASA J (in press)

  32. Bakera M, Margaria T, Renner CD, Steffen B (2007) Verification, diagnosis and adaptation: tool supported enhancement of the model-driven verification process. In: ISoLA 2008 Workshop, pp 85–97

  33. Lecarme O, Peyrolle-Thomas M-C (1978) Self-compiling Compilers: An Appraisal of their Implementation and Portability. Softw. Pract. Exp. 8(2): 149–170

    Article  MATH  Google Scholar 

  34. AndroMDA Website (2008). http://www.andromda.org/

  35. Engeler E (1971) Structure and meaning of elementary programs. In: Symposium on Semantics of Algorithmic Languages. Springer, Berlin. Lect. Notes in Mathematics, vol 188

  36. Andrews P, Stuber J, Griffiths L, Bagnall B, Scholz M, Rinkens T, Solorzano J (2008) lejos website. http://lejos.sourceforge.net/

  37. Jörges S, Kubczak C, Pageau F, Margaria T (2007) Model driven design of reliable robot control programs using the jABC. In: Proc. EASe’07, pp 137–148

  38. Schulte BE (2007) Modellgetriebene Steuerung eingebetteter Systeme und ihre Anwendung für Lego NXT. Master’s thesis, Chair for Programming Systems, Technische Universität Dortmund

  39. SUN Microsystems (2008) The Java ME Platform. http://java.sun.com/javame/index.jsp

  40. SUN Microsystems (2008) Connected Limited Device Configuration (CLDC). http://java.sun.com/products/cldc/

  41. Active Endpoints: The ActiveBPEL Community Edition Engine (2008) http://www.activevos.com/community-open-source.php

  42. Gaeb J (2007) Entwicklung eines BPEL-Plugins für das jABC-Framework. Master’s thesis, Chair for Programming Systems, Technische Universität Dortmund

  43. W3C (2008) W3C Document Object Model. http://www.w3.org/DOM/

  44. Hösel S (2008) Entwicklung eines Plug-ins für das jABC-Framework zur Integration von .NET mittels C#. Master’s thesis, Service and Software Engineering, Universität Potsdam

  45. Jörges S, Margaria T, Steffen B (2006) FormulaBuilder: a tool for graph-based modelling and generation of formulae. In: Proc. ICSE’06, pp 815–818

  46. Dwyer M, Avrunin G, Corbett J (1999) Patterns in property specifications for finite-state verification. In: Proc. ICSE ’99, pp 411–420. IEEE CS Press

  47. Kozen D (1983) Results on the propositional mu-calculus. Theor Comput Sci 27: 333–354

    Article  MATH  MathSciNet  Google Scholar 

  48. SUN Microsystems (2008) Java EE at a Glance. http://java.sun.com/javaee/

  49. SUN Microsystems (2008) Enterprise JavaBeans Technology. http://java.sun.com/products/ejb/

  50. SWS Challenge Website (2008). http://sws-challenge.org

  51. Arenas A, Bicarregui J, Margaria T (2006) The FMICS view on the verified software repository. J Integ Des Process Sci 10: 47–54

    Google Scholar 

  52. Margaria T, Kubzcak C, Steffen B (2008) Bio-jeti: a service integration, design, and provisioning platform for orchestrated bioinformatics processes. BioMed Central (BMC) Bioinformatics 2008; Supplement dedicated to Network Tools and Applications in Biology 2007 Workshop (NETTAB 2007) ISSN 1471-2105. Published online 2008 April 25. 9(Suppl 4):S12. doi:10.1186/1471-2105-9-S4-S12

  53. Steffen B, Margaria T, Nagel R (2005) Remote integration and coordination of verification tools in jETI. In: Proc. ECBS 2005, 12th IEEE Int. Conf. on the Engineering of Computer Based Systems, pp 431–436. IEEE Computer Soc. Press, Greenbelt (USA)

  54. W3C (2008) Web Services Description Working Group (Specifications & Drafts). http://www.w3.org/2002/ws/desc/

  55. W3C (2008) W3C XML Protocol Working Group. http://www.w3.org/2000/xp/Group/

  56. jax-ws: JAX-WS Reference Implementation (2008). http://jax-ws.dev.java.net/

  57. Kubczak C, Margaria T, Steffen B, Nagel R (2008) Service-oriented mediation with jABC/jETI. In: Petrie C, Margaria T, Zaremba M, Lausen H (eds) Semantic Web services challenge—results from the first year. Springer, Berlin, pp 71–99 (in press)

  58. Margaria T, Bakera M, Kubczak C, Naujokat S, Steffen B (2008) Automatic generation of the SWS-challenge mediator with jABC/ABC. In: Petrie C, Margaria T, Zaremba M, Lausen H (eds) Semantic Web Services challenge - results from the first year. Springer, Berlin, pp 119–138 (in press)

  59. W3C (2008) W3C XML Schema. http://www.w3.org/XML/Schema

  60. Lamprecht AL, Margaria T, Steffen B (2006) Data-flow analysis as model checking within the jABC. In: CC, pp 101–104

  61. Steffen B (1991) Data flow analysis as model checking. In: TACS ’91: Proceedings of the International Conference on Theoretical Aspects of Computer Software. Springer, Berlin, pp 346–365

  62. Niese O, Steffen B, Margaria T, Hagerer A, Brune G, Ide HD (2001) Library-based design and consistency checking of system-level industrial test cases. In: Proc. FASE 2001, LNCS, vol 2029. Springer, Berlin, pp 233–248

  63. Object Mentor: JUnit Website (2007). http://www.junit.org/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sven Jörges.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jörges, S., Margaria, T. & Steffen, B. Genesys: service-oriented construction of property conform code generators. Innovations Syst Softw Eng 4, 361–384 (2008). https://doi.org/10.1007/s11334-008-0071-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-008-0071-2

Keywords

Navigation