Abstract
AbstractProgramming languages are complex systems that are usually implemented as monolithic interpreters and compilers. In recent years, researchers and practitioners gained interest in product line engineering to improve the reusability of language assets and the management of variability-rich systems, introducing the notions of language workbenches and language product lines (LPLs). Nonetheless, language development remains a complex activity and design or implementation flaws can easily waste the efforts of decomposing a language specification into language features. Poorly designed language decompositions result in high inter-dependent components, reducing the variability space of the LPL system and its maintainability. One should detect and fix the design flaws posthaste to prevent these risks while minimizing the development overhead. Therefore, various aspects of the quality of a language decomposition should be quantitatively measurable through adequate metrics. The evaluation, analysis and feedback of these measures should be a primary part of the engineering process of a LPL. In this paper, we present an exploratory study trying to capture these aspects by introducing a design methodology for LPLs; we define the properties of a good language decomposition and adapt a set of metrics from the literature to the framework of language workbenches. Moreover, we leverage the LPL engineering environment to perform an empirical evaluation of 26 -based LPLs based on this design methodology. Our contributions form the foundations of a design methodology for -based LPLs. This methodology is comprised of four different elements: i) an engineering process that defines the order in which decisions are made, ii) an integrated development environment for LPL designers and iii) some best practices in the design of well-structured language decomposition when using , supported by iv) a variety of LPL metrics that can be used to detect errors in design decisions.
Publisher
Springer Science and Business Media LLC
Reference116 articles.
1. Aho AV, Sethi R, Ullman JD (1986) Compilers: Principles, techniques, and tools. Addison wesley, Reading
2. Al-Hajjaji M, Krieter S, Thüm T, Lochau M, Saake G (2016) Incling: Efficient Product-Line Testing Using Incremental Pairwise Sampling. In: Schaefer I (ed) Proceedings of the 15th International Conference on Generative Programming and Component Engineering (GPCE’16). ACM, Amsterdam, pp 144–155
3. Aldekoa G, Trujillo S, Mendieta GS, Díaz O (2006) Experience Measuring Maintainability in Software Product Lines. In: Riquelme Santos JC, Botella P (eds) Proceedings of the XI Jornadas de Ingenieria del Software y Bases de Datos (JISBD’06). Barcelona, Spain, pp 173–182
4. Aldekoa G, Trujillo S, Sagardui G, Díaz O (2008) Quantifying Maintainability in Feature Oriented Product Lines. In: Tjiortjis C, Winter A (eds) Proceedings of the 12th European Conference on Software Maintenance and Reengineering (CSMR’08). IEEE, Athens, pp 243–247
5. Apel S, von Thein A, Wendler P, Größlinger A, Beyer F (2013) Strategies for Product-Line Verification: Case Studies and Experiments. In: Chang BH, Pohl K (eds) Proceedings of the 35th International Conference on Software Engineering (ICSE’13). IEEE, San Francisco, pp 482–491
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献