skip to main content
10.1145/2934466.2962733acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Experiences from reengineering and modularizing a legacy software generator with a projectional language workbench

Published: 16 September 2016 Publication History

Abstract

We present a case study of migrating a legacy language infrastructure and its codebase to a projectional language workbench. Our subject is the generator tool ADS used for generating COBOL code for critical software systems. We decompose the ADS language into smaller sub-languages, which we implement as individual DSLs in the projectional language workbench JetBrains Meta Programming System (MPS). Our focus is on ADS' preprocessor sub-language, used to realize static variability by conditionally including or parameterizing target code. The modularization of ADS supports future extensions and tailoring the language infrastructure to the needs of individual customers. We re-implement the generation process of target code as chained model-to-model and model-to-text transformations. For migrating existing ADS code, we implement an importer relying on a parser in order to create a model in MPS. We validate the approach using an ADS codebase for handling car registrations in the Netherlands. Our case study shows the feasibility and benefits (e.g., language extensibility and modern editors) of the migration, but also smaller caveats (e.g., small syntax adaptations, the necessity of import tools, and providing training to developers). Our experiences are useful for practitioners attempting a similar migration of legacy generators to a projectional language workbench.

References

[1]
ADM Task Force. Architecture-driven modernization scenarios. Technical report, OMG, 2006.
[2]
F. Barbier, G. Deltombe, O. Parisy, and K. Youbi. Model driven reverse engineering: Increasing legacy technology independence. In IWRE. 2011.
[3]
T. Berger, M. Voelter, H. P. Jensen, T. Dangprasert, and J. Siegmund. Efficiency of projectional editing: A controlled experiment. In FSE, 2016.
[4]
C. Cadar and K. Sen. Symbolic execution for software testing: Three decades later. Communications of the ACM, 56(2):82--90, 2013.
[5]
S. Erdweg, T. van der Storm, M. Voelter, L. Tratt, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, G. Konat, P. J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. Vergu, E. Visser, K. van der Vlist, G. Wachsmuth, and J. van der Woning. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Computer Languages Systems & Structures, 44 Part A:24 -- 47, 2015.
[6]
S. Erdweg, T. van der Storm, M. Völter, M. Boersma, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, et al. The State of the Art in Language Workbenches. In SLE, 2013.
[7]
F. Fleurey, E. Breton, B. Baudry, A. Nicolas, and J.-M. Jézéquel. Model-driven engineering for software migration in a large industrial context. In MODELS, 2007.
[8]
M. Fowler. Domain Specific Languages. Addison-Wesley Professional, 1st edition, 2010.
[9]
C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. Variability-aware parsing in the presence of lexical macros and conditional compilation. In OOPSLA, 2011.
[10]
R. Khadka, B. V. Batlajery, A. M. Saeidi, S. Jansen, and J. Hage. How do professionals perceive legacy systems and software modernization? In ICSE, 2014.
[11]
M. A. Laguna and Y. Crespo. A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Sci. Comput. Program., 78(8):1010--1034, Aug. 2013.
[12]
J. Liebig, C. Kästner, and S. Apel. Analyzing the discipline of preprocessor annotations in 30 million lines of C code. In AOSD, 2011.
[13]
D. Méndez-Acuña, J. A. Galindo, B. Combemale, A. Blouin, B. Baudry, and G. Le Guernic. Reverse-engineering reusable language modules from legacy domain-specific languages. In ICSR, 2016.
[14]
D. Pavletic, M. Voelter, S. A. Raza, B. Kolb, and T. Kehrer. Extensible debugger framework for extensible languages. In Ada-Europe, 2015.
[15]
M. Voelter, S. Benz, C. Dietrich, B. Engelmann, M. Helander, L. C. L. Kats, E. Visser, and G. Wachsmuth. DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org, 2013.
[16]
M. Voelter, A. v. Deursen, B. Kolb, and S. Eberle. Using C language extensions for developing embedded software: A case study. In OOPSLA, 2015.
[17]
M. Voelter and V. Pech. Language modularity with the MPS language workbench. In ICSE, 2012.
[18]
M. Voelter, D. Ratiu, B. Kolb, and B. Schätz. mbeddr: instantiating a language workbench in the embedded software domain. Autom. Softw. Eng., 20(3):339--390, 2013.
[19]
M. Voelter, J. Siegmund, T. Berger, and B. Kolb. Towards user-friendly projectional editors. In SLE, 2014.

Cited By

View all
  • (2022)Editing support for software languagesProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems10.1145/3550355.3552452(232-243)Online publication date: 23-Oct-2022
  • (2016)Efficiency of projectional editing: a controlled experimentProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950315(763-774)Online publication date: 1-Nov-2016

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '16: Proceedings of the 20th International Systems and Software Product Line Conference
September 2016
367 pages
ISBN:9781450340502
DOI:10.1145/2934466
  • General Chair:
  • Hong Mei
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 the author(s) 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

  • Huawei Technologies Co. Ltd.: Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies: Key Laboratory of High Confidence Software Technologies, Ministry of Education
  • DC Holdings: Digital China Holdings Limited

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 September 2016

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SPLC '16
Sponsor:
  • Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies
  • DC Holdings

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Editing support for software languagesProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems10.1145/3550355.3552452(232-243)Online publication date: 23-Oct-2022
  • (2016)Efficiency of projectional editing: a controlled experimentProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950315(763-774)Online publication date: 1-Nov-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media