Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1985793.1985946acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Flexible generators for software reuse and evolution (NIER track)

Published: 21 May 2011 Publication History

Abstract

Developers tend to use models and generators during initial development, but often abandon them later in software evolution and reuse. One reason for that is that code generated from models (e.g., UML) is often manually modified, and changes cannot be easily propagated back to models. Once models become out of sync with code, any future re-generation of code overrides manual modifications. We propose a flexible generator solution that alleviates the above problem. The idea is to let developers weave arbitrary manual modifications into the generation process, rather than modify already generated code. A flexible generator stores specifications of manual modifications in executable form, so that weaving can be automatically re-done any time code is regenerated from modified models. In that way, models and manual modification can evolve independently but in sync with each other, and the generated code never gets directly changed. As a proof of concept, we have already built a flexible generator prototype by a merger of conventional generation system and variability technique to handle manual modifications. We believe a flexible generator approach alleviates an important problem that hinders wide spread adoption of MDD in software practice.

References

[1]
Angyanal, L., Lengyel, L. and Charaf, H. "A Sychronizing Technique for Syntactic Model-Code Round-Trip Engineering," 15th Int. Conf. on Eng. Of Computer based Systems, 2008, pp. 463--472.
[2]
Batory, D., Sarvela, J.N. and Rauschmayer, A. 2003 "Scaling Step-Wise Refinement," Proc. Int. Conf. on Soft. Eng., ICSE'03, May 2003, Portland, Oregon, pp. 187--197.
[3]
Clements, P. and Northrop, L. Software Product Lines: Practices and Patterns, Addison-Wesley, 2002.
[4]
Czarnecki, K. and Eisenecker, U. Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.
[5]
Hettel, T, Lawley, M., and Raymon, K. "Model Synchronisation: Definitions for Round-Trip Engineering," in Theory and Practice of Model Transformations, LNCS, Springer, vol. 5063, July 2008, pp. 31--45.
[6]
IEEE Software, Vol. 26, no. 4, July/August 2009, special issue on DSL.
[7]
Jarzabek, S. Effective Software Maintenance and Evolution: Reuse-based Approach, Taylor & Francis CRC Press, 2007.
[8]
Kästner, C., Apel, S. and Batory, D. "A Case Study Implementing Features Using AspectJ," Proc. Int. Software Product Line Conf, SPLC'07, Kyoto, Sept.2007, pp.223--232.
[9]
Kästner, C., Apel, S. and Kuhlemann, M.: Granularity in Software Product Lines. In ICSE'08, 2008.
[10]
Kiczales, G, Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J-M., Irwin, J. "Aspect-Oriented Programming," Europ. Conf. on Object-Oriented Programming, Finland, Springer-Verlag LNCS 1241, 1997, pp. 220--242.
[11]
Pettersson, U., and Jarzabek, S. "Industrial Experience with Building a Web Portal Product Line using a Lightweight, Reactive Approach," ESEC-FSE'05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp. 326--335.
[12]
Schmidt, D. "Model-Driven Engineering," IEEE Computer, February 2006, pp. 25--31.
[13]
Schmidt, D. Evolution of Model-Driven Software-Product Line Architectures," in Software Applications: Concepts, Methodologies, Tools, and Applications, Edited By: Pierre F. Tiako, 2009.
[14]
Smaragdakis, Y. and Batory, D. "Application generators," in Software Engineering volume of the Encyclopedia of Electrical and Electronics Engineering, J. Webster (ed.), John Wiley and Sons, 2000.
[15]
XVCL (XML-based Variant Configuration Language) method and tool for managing software changes during evolution and reuse, xvcl.comp.nus.edu.sg.
[16]
White, J. et al "Improving Domain-Specific Language Reuse with Software Product Line Techniques," IEEE Software, Vol. 26, no. 4, July/August 2009, special issue on DSL and generators.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
May 2011
1258 pages
ISBN:9781450304450
DOI:10.1145/1985793
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 May 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. domain-specific languages
  2. generators
  3. software product lines
  4. software reuse

Qualifiers

  • Research-article

Conference

ICSE11
Sponsor:
ICSE11: International Conference on Software Engineering
May 21 - 28, 2011
HI, Waikiki, Honolulu, USA

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)2
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)PlantUMLGen: A tool for teaching Model Driven Development2022 17th Iberian Conference on Information Systems and Technologies (CISTI)10.23919/CISTI54924.2022.9820348(1-6)Online publication date: 22-Jun-2022
  • (2019)A Method of Automatically Evolving Feature Models of Software Product LinesIEEE Access10.1109/ACCESS.2019.28974057(39253-39272)Online publication date: 2019
  • (2016)Evolution of a Model-driven Process FrameworkElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2016.02.004321:C(41-65)Online publication date: 14-Mar-2016
  • (2015)Automatically propagating changes from reference implementations to code generation templatesInformation and Software Technology10.1016/j.infsof.2015.06.00967:C(65-78)Online publication date: 1-Nov-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media