Abstract
Model-driven approaches to software development, when coupled with a domain-specific visual language, assist in capturing the essence of a large system in a notation that is familiar to a domain expert. From a high-level domain-specific model, it is possible to describe concisely the configuration features that a system must possess, in addition to checking that the model preserves semantic properties of the domain. With respect to large legacy applications written in disparate programming languages, the primary problem of transformation is the difficulty of adapting the legacy source to match the evolving features specified in the corresponding model. This paper presents an approach for uniting model-driven development with a mature program transformation engine. The paper describes a technique for performing widespread adaptation of source code from transformation rules that are generated from a domain-specific modeling environment for a large avionics framework.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)
Batory, D., Sarvela, J.N., Rauschmeyer, A.: Scaling Step-Wise Refinement. IEEE Transactions on Software Engineering, 355–371 (June 2004)
Baxter, I., Pidgeon, C., Mehlich, M.: DMS: Program Transformation for Practical Scalable Software Evolution. In: International Conference on Software Engineering (ICSE), Edinburgh, Scotland, pp. 625–634 (May 2004)
Bézivin, J.: From Object Composition to Model Transformation with the MDA. In: Technology of Object-Oriented Languages and Systems (TOOLS), Santa Barbara, California, pp. 350–354 (August 2001)
Bézivin, J.: MDA: From Hype to Hope, and Reality. In: The 6th International Conference on the Unified Modeling Language, San Francisco, California, Keynote talk, October 22 (2003), http://www.sciences.univ-nantes.fr/info/perso/permanents/bezivin/UML.2003/UML.SF.JB.GT.ppt
Chiba, S.: A Metaobject Protocol for C++. In: Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Austin, Texas, pp. 285–299 (October 1995)
Cordy, J., Dean, T., Malton, A., Schneider, K.: Source Transformation in Software Engineering using the TXL Transformation System. Special Issue on Source Code Analysis and Manipulation, Journal of Information and Software Technology (44, 13), 827–837 (October 2002)
Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Evans, E.: Domain-Driven Design: Tackling Complexity at the Heart of Software. Addison-Wesley, Reading (2003)
Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Reading (1999)
Frankel, D.: Model Driven Architecture: Applying MDA to Enterprise Computing. John Wiley and Sons, Chichester (2003)
Gokhale, A., Schmidt, D., Natarajan, B., Gray, J., Wang, N.: Model-Driven Middleware. In: Mahmoud, Q. (ed.) Middleware for Communications, John Wiley and Sons, Chichester (2004)
Gray, J., Bapty, T., Neema, S., Tuck, J.: Handling Crosscutting Constraints in Domain-Specific Modeling. Communications of the ACM, 87–93 (October 2001)
Gray, J., Sztipanovits, J., Schmidt, D.C., Bapty, T., Neema, S., Gokhale, A.: Two-level Aspect Weaving to Support Evolution of Model-Driven Synthesis. In: Filman, R., Elrad, T., Aksit, M., Clarke, S. (eds.) Aspect-Oriented Software Development, Addison-Wesley, Reading (2004)
Gray, J., Roychoudhury, S.: A Technique for Constructing Aspect Weavers Using a Program Transformation System. International Conference on Aspect-Oriented Software Development (AOSD), Lancaster, UK, March 22-27, pp. 36–45 (2004)
Griswold, W.G., Notkin, D.: Automated Assistance for Program Restructuring. Trans. on Software Engineering and Methodology, 228–269 (July 1993)
Harrison, T., Levine, D., Schmidt, D.C.: The Design and Performance of a Hard Real-Time Object Event Service. In: Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA), Atlanta, Georgia, pp. 184–200 (October 1997)
Karsai, G., Maroti, M., Lédeczi, Á., Gray, J., Sztipanovits, J.: Type Hierarchies and Composition in Modeling and Meta-Modeling Languages. IEEE Trans. on Control System Technology (special issue on Computer Automated Multi-Paradigm Modeling), 263–278 (March 2004)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Lämmel, R., Verhoef, C.: Cracking the 500 Language Problem. IEEE Software, 78–88 (November/December 2001)
Lédeczi, Á., Bakay, A., Maroti, M., Volgyesi, P., Nordstrom, G., Sprinkle, J., Karsai, G.: Composing Domain-Specific Design Environments. IEEE Computer, 44–51 (November 2001)
Lieberherr, K., Orleans, D., Ovlinger, J.: Aspect-Oriented Programming with Adaptive Methods. Communications of the ACM, 39–41 (October 2001)
Neema, S., Bapty, T., Gray, J., Gokhale, A.: Generators for Synthesis of QoS Adaptation in Distributed Real-Time Embedded Systems. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 236–251. Springer, Heidelberg (2002)
Parnas, D.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, 1053–1058 (December 1972)
Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley and Sons, Chichester (2000)
Sharp, D.: Component-Based Product Line Development of Avionics Software. In: First Software Product Lines Conference (SPLC-1), Denver, Colorado, pp. 353–369 (August 2000)
Spinczyk, O., Gal, A., Schröder-Preikschat, W.: AspectC++: An Aspect- Oriented Extension to C++. In: International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia, pp. 53–60 (February 2002)
Sztipanovits, J., Karsai, G.: Model-Integrated Computing. IEEE Computer, 10–12 (April 1997)
Sztipanovits, J.: Generative Programming for Embedded Systems. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 32–49. Springer, Heidelberg (2002)
Ulrich, W.: Legacy Systems: Transformation Strategies. Prentice-Hall, Englewood Cliffs (2002)
van den Brand, M., Heering, J., Klint, P., Olivier, P.: Compiling Rewrite Systems: The ASF+SDF Compiler. ACM Transactions on Programming Languages and Systems, 334–368 (July 2002)
Visser, E.: Stratego: A Language for Program Transformation Based on Rewriting Strategies. System Description of Stratego 0.5. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–361. Springer, Heidelberg (2001)
Visser, E.: A Survey of Rewriting Strategies in Program Transformation Systems. In: Workshop on Reduction Strategies in Rewriting and Programming (WRS 2001) - Electronic Notes in Theoretical Computer Science, vol. 57, Utrecht, The Netherlands (May 2001), http://www1.elsevier.com/gej-ng/31/29/23/93/27/33/57007.pdf
Wohlstadter, E., Jackson, S., Devanbu, P.T.: DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems. In: International Conference on Software Engineering, Portland, Oregon, pp. 174–186
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gray, J. et al. (2004). Model-Driven Program Transformation of a Large Avionics Framework. In: Karsai, G., Visser, E. (eds) Generative Programming and Component Engineering. GPCE 2004. Lecture Notes in Computer Science, vol 3286. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30175-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-540-30175-2_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23580-4
Online ISBN: 978-3-540-30175-2
eBook Packages: Springer Book Archive