FROM UML TO ANSI-C - An Eclipse-based Code Generation Framework
Mathias Funk, Alexander Nyβen, Horst Lichter
2008
Abstract
Model-driven engineering has recently gained broad acceptance in the field of embedded and real-time software systems. While larger embedded and real-time systems, developed e.g. in aerospace, telecommunication, or automotive industry, are quite well supported by model-driven engineering approaches based on the UML, small embedded and real-time systems, as they can for example be found in the industrial automation industry, are still handled a bit novercal. A major reason for this is that the code generation facilities, being offered by most of the UML modeling tools on the market, do indeed support C/C++ code generation in all its particulars, but neglect the generation of plain ANSI-C code. However, this would be needed for small embedded and real-time systems, which have special characteristics in terms of hard time and space constraints. Therefore we developed a framework, which allows to generate ANSI conformant C code from UML models. It is built on top of Eclipse technology, so that it can be integrated easily with available UML modeling tools. Because flexibility and customizability are important requirements, the generation process consists of a model-to-model transformation between the UML source model and an intermediate ANSI-C model, as well as a final model-to-text generation from the intermediate ANSI-C model into C code files. This approach has several advantages compared to a direct code generation strategy.
References
- UML, Objects, Frameworks, Funk, M. (2006). Generierung von effizientem C-Code aus UML2-Strukturdiagrammen. Diploma Thesis, RWTH Aachen University, http://www.swc.rwthaachen.de/lufgi/teaching/theses/completed/Mathias Funk Thesis Report.pdf.
- Gomaa, H. (2000). Designing Concurrent, Distributed, And Real-Time Applications with UML. Addison Wesley - Object Technology Series.
- Graaf, B., Lormans, M., and Toetenel, H. (2002). Software technologies for embedded systems: An industry inventory. In PROFES 7802: Proceedings of the 4th International Conference on Product Focused Software Process Improvement, pages 453-465, London, UK. Springer-Verlag.
- Kernighan, B. W. and Ritchie, D. M. (1988). The C Programming Language - Second Edition. Prentice Hall - Software Series.
- Kevinc, O. (2007). Erweiterung des ViPER Codegenerators um Nebenlufigkeit und Zeitverhalten. Diploma Thesis, RWTH Aachen University, http://www.swc.rwthaachen.de/lufgi/teaching/theses/completed/Oezguer Kevinc Thesis Report.pdf.
- Nyen, A. and Lichter, H. (2007). MeDUSA - MethoD for Uml2-based Design of Embedded Software Applications. Technical Report AIB-2007-07, RWTH Aachen University.
- The Eclipse Foundation (2000d). Eclipse Modeling - Model Development Tools (MDT) project site, http://www.eclipse.org/MDT. http://www.eclipse.org/modeling/mdt, retrieved: 2008/13/03.
- van Solingen, R. (2004). State of the practice in European embedded software engineering. In MOOSE seminar, Oulu, Finland.
Paper Citation
in Harvard Style
Funk M., Nyβen A. and Lichter H. (2008). FROM UML TO ANSI-C - An Eclipse-based Code Generation Framework . In Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8111-52-4, pages 12-19. DOI: 10.5220/0001874000120019
in Bibtex Style
@conference{icsoft08,
author={Mathias Funk and Alexander Nyβen and Horst Lichter},
title={FROM UML TO ANSI-C - An Eclipse-based Code Generation Framework},
booktitle={Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,},
year={2008},
pages={12-19},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001874000120019},
isbn={978-989-8111-52-4},
}
in EndNote Style
TY - CONF
JO - Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,
TI - FROM UML TO ANSI-C - An Eclipse-based Code Generation Framework
SN - 978-989-8111-52-4
AU - Funk M.
AU - Nyβen A.
AU - Lichter H.
PY - 2008
SP - 12
EP - 19
DO - 10.5220/0001874000120019