Skip to main content

An Approach to Generating Program Code in Quickly Evolving Environments

  • Chapter
  • First Online:
Information Systems Development
  • 1646 Accesses

Abstract

In model-driven engineering (MDE) program code generators are used to generate program code from abstract program models, thus bringing the final code closer to program specification and saving time that would be spent in coding. Current approach to program code generation from abstract program models does not work well in quickly evolving environments due to the large amount of work that is required to fully prepare and maintain program code generator. This chapter presents analysis of current approach to program code generation and presents an alternative approach tailored for generating program code in quickly evolving environments by using self-configuring program code generator.

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 259.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 329.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 329.99
Price excludes VAT (USA)
  • Durable hardcover 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

Notes

  1. 1.

    This work is supported by Lithuanian State Science and Studies Foundation according to High Technology Development Program Project VeTIS, Reg.No. B-07042

References

  1. Albin-Amiot, H., Cointe, P., Guéhéneuc, Y.G., Jussien, N. (2001) Instantiating and detecting design patterns: Putting bits and pieces together. In ASE, pp. 166–173. IEEE Computer Society.

    Google Scholar 

  2. Asencio, A., Cardman, S., Harris, D., Laderman, E. (2002) Relating expectations to automatically recovered design patterns. In Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE’02), pp. 87–96. Washington, DC, USA: IEEE Computer Society.

    Google Scholar 

  3. Brooks, F.P. (1987) No silver bullet – essence and accidents of software engineering. IEEE Computer, April: 10–19

    Google Scholar 

  4. Christensen, K., Olesen, T.H., Thomsen, L.L. (2006) Matching semantically described web services using ontologies. Information Technology and Control, 35(3A):267–275

    Google Scholar 

  5. Czarnecki, K., Helsen, S. (2003) Classification of model transformation approaches. In Workshop on Generative Techniques in the Context of MD (OOPSLA 2003), Anaheim, CA, USA (available at http://www.swen.uwaterloo.ca/~kczarnec/ECE750T7/czarnecki_helsen.pdf)

  6. Eisenbarth, T., Koschke, R., Simon D. (2001) Feature-driven program understanding using concept analysis of execution traces. In 9th International Workshop on Program Comprehension, pp. 300–309. IEEE Computer Society.

    Google Scholar 

  7. Fabry, J., Mens, T. (2004) Language independent detection of object-oriented design patterns. Computer Languages, Systems and Structures, 30(1–2):21–33

    Article  Google Scholar 

  8. Ferenc, R., Beszedes, A.,Fulop, L.,Lele, J. (2005) Design pattern mining enhanced by machine learning. InProceedings of the 21st IEEE International Conference on Software Maintenance, pp. 295–304. Washington, DC, USA: IEEE Computer Society.

    Google Scholar 

  9. Gannod, G.C., Cheng, B.H.C. (1999) A framework for classifying and comparing software reverse engineering and design recovery techniques. In Working Conference on Reverse Engineering, pp. 77–88.

    Google Scholar 

  10. Ganter, B. and Wille, R. (1998) Applied lattice theory: Formal concept analysis. In General Lattice Theory, pp. 591–605. Birkhäuser Verlag, Basel.

    Google Scholar 

  11. Glass, R.L. (1996) Some thoughts on automatic code generation. The Data Base for Advances in Information Systems, 27(2): 16–18

    Google Scholar 

  12. Gueheneuc, Y.G., Sahraoui, H., Zaidi, F. (2004) Fingerprinting design patterns. In Proceedings of the 11th Working Conference on Reverse Engineering, pp. 172–181. Washington, DC, USA: IEEE Computer Society.

    Google Scholar 

  13. Herrington, J. (2003) Code Generation in Action. Manning Publications Co.

    Google Scholar 

  14. Heuzeroth, D., Holl, T., Högström, G., Löwe, W. (2003) Automatic design pattern detection. In Proceedings 11th IEEE International Workshop on Program Comprehension IWPC, pp. 94–104. IEEE Computer Society.

    Google Scholar 

  15. Heyse, W., Jonckers, V., Wagelaar, D. (2005) Generic Code Generation Approaches, Apprenticeship Report.

    Google Scholar 

  16. Kent, S. (2002) Model driven engineering. In Proceedings of Third International Conference on Integrated Formal Methods (IFM 2002), LNCS 2335, pp. 286–298. Springer.

    Google Scholar 

  17. Lindig, C., Snelting, G. (1997) Assessing modular structure of legacy code based on mathematical concept analysis. In Proceedings of the 1997 International Conference on Software Engineering, pp. 349–359. ACM Press.

    Google Scholar 

  18. Miller, J., Mukerji, J. (2003) MDA Guide Version 1.0.1, Retrieved June 01, 2007 from: http://www.omg.org/cgi-bin/apps/doc?omg/03-06-01.pdf

  19. Niere, J., Wadsack, J., Zundorf, A. (2001) Recovering UML Diagrams from Java Code using Patterns. In Proceedings of the 2-nd Workshop on Soft Computing Applied to Software Engineering. Enschede, The Netherlands.

    Google Scholar 

  20. Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J. (2002) Towards pattern based design recovery. In Proceedings of the 24th International Conference on Software Engineering, pp. 338–348. New York, NY, USA: ACM.

    Google Scholar 

  21. OMG Unified Modelling Language (OMG UML) Superstructure (2008), V2.1.2, Retrieved April 01, 2008 from: http://www.omg.org/spec/UML/2.1.2/Superstructure/PDF/

  22. Paradauskas, B., Laurikaitis, A. (2006) Business knowledge extraction from legacy information systems. Information Technology and Control, 35(3):214–221

    Google Scholar 

  23. Sauer, F. (2002) Metadata driven multi-artifact code generation using frame oriented programming. In OOPSLA 2002 Workshop “Generative Techniques in the Context of Model Driven Architecture”, November 5, Seattle, WA.

    Google Scholar 

  24. Shi, N., Olsson, R.A. (2006) Reverse engineering of design patterns from java source code. In Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, pp. 123–134. Washington, DC, USA: IEEE Computer Society.

    Google Scholar 

  25. Siff, M., Reps, T. (1997) Identifying modules via concept analysis. In Proceedings of the International Conference on Software Maintenance, pp. 170–179. IEEE Computer Society.

    Google Scholar 

  26. Smith, J., Stotts, D. (2002) Elemental Design Patterns: A Logical Inference System and Theorem Prover Support for Flexible Discovery of Design Patterns. Department of Computer Science, University of North Carolina, Technical Report TR02-038.

    Google Scholar 

  27. Snelting, G. (1998) Concept analysis – a new framework for program understanding. In SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE), Montreal, Canada, pp. 1–10.

    Google Scholar 

  28. Snelting, G., Tip, F. (2000) Understanding class hierarchies using concept analysis. In ACM Transanctions on Programming Languages and Systems, pp. 540–582.

    Google Scholar 

  29. Systa, T. (1999) On the Relationship between static and dynamic models in reverse engineering java software. In Proceedings of the 6th Working Conference on Reverse Engineering (WCRE99), pp. 304–313.

    Google Scholar 

  30. Tilley, T., Cole, R., Becker, P., Eklund, P. (2004) A survey of formal concept analysis support for software engineering activities. In Proceedings of the First International Conference on Formal Concept Analysis ICFCA’03, LNCS 3626, pp. 250–271. Springer-Verlag.

    Google Scholar 

  31. Tonella, P., Ceccato, M. (2004) Aspect Mining though the Formal Concept Analysis of Execution Traces, IRST Technical Report.

    Google Scholar 

  32. Tonella, P. (2001) Concept analysis for module restructuring. IEEE Trans on Software Engineering, 27(4):351–363

    Article  Google Scholar 

  33. Tonella, P., Antoniol, G. (1999) Object Oriented Design Pattern Inference. In Proceedings of the 5th Symposium on Software Development Environments (SDE5), pp. 230–238. IEEE Computer Society.

    Google Scholar 

  34. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T. (2006) Design pattern detection using similarity scoring. IEEE Transanctions on Software Engineering, 32: 896–909.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer Science+Business Media, LLC

About this chapter

Cite this chapter

Ablonskis, L. (2009). An Approach to Generating Program Code in Quickly Evolving Environments. In: Papadopoulos, G., Wojtkowski, W., Wojtkowski, G., Wrycza, S., Zupancic, J. (eds) Information Systems Development. Springer, Boston, MA. https://doi.org/10.1007/b137171_27

Download citation

  • DOI: https://doi.org/10.1007/b137171_27

  • Published:

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-0-387-84809-9

  • Online ISBN: 978-0-387-84810-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics