skip to main content
10.1145/1868688.1868695acmotherconferencesArticle/Chapter ViewAbstractPublication PagesfosdConference Proceedingsconference-collections
research-article

Implementing feature variability for models and code with projectional language workbenches

Published: 10 October 2010 Publication History

Abstract

Product line engineering deals with managing and implementing the variability among a set of related products. We distinguish between two kinds of variability: configuration and customization. Customization variability can be described using programming language code or creative construction DSLs, whereas configuration variability is described using configuration based approaches, such as feature models. Many product lines have both kinds of variability, and they need to be integrated efficiently. This paper describes an approach for product line engineering using projectional language workbenches. These represent code and models with the same fundamental technology, enabling the mixing of models and code. They make the tight integration between several domain-specific languages possible and simple. Since they can store arbitrary information in models, it is possible to overlay configuration variability over customization variability (i.e. apply feature model-based configuration to code and models). Because of the projectional approach to editing, programs can be shown with or without the dependencies on feature models, they can even be rendered (and edited) for a specific variant. This approach leads to highly integrated and productive tools for product line development. The paper explains the approach, outlines the implementation of a prototype tool based on Jetbrains MPS and illustrates the benefits using a small product line for embedded systems.

References

[1]
Fowler, M., Language Workbenches: The Killer-App for Domain Specific Languages?, http://martinfowler.com/articles/languageWorkbench.html
[2]
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J. Aspect-Oriented Programming. Proceedings of ECOOP 1997, vol. 1241. pp. 220--242.
[3]
Markus Voelter, Embedded Software Development with Projectional Language Workbenches, Proc. of MODELS 2010.
[4]
MISRA Group, Misra-C, http://www.misra-c2.com/
[5]
Gotel, O., Finkelstein, A., An Analysis of the Requirements Traceability Problem, Proc. of First International Conference on Requirements Engineering, 1994, pages 94--101
[6]
Software Engineering Institute, Software Product Lines, http://www.sei.cmu.edu/productlines/
[7]
Lego SA, Mindstorms, http://mindstorms.lego.com
[8]
Sourceforge.net, nxtOSEK, http://lejos-OSEK.sourceforge.net/Osek
[9]
IBM Corp, Requisite Pro - a Requirements Management Tool, http://www-01.ibm.com/software/awdtools/reqpro/
[10]
IBM Corp, Rational DOORS, http://www-01.ibm.com/software/awdtools/doors/productline/
[11]
Kang, K. C. and Cohen, S. G. and Hess, J. A. and Novak, W. E. and Peterson, A. S., Feature-oriented domain analysis (FODA) feasibility study, Technical Report CMU/SEI-90-TR-021, SEI, Carnegie Mellon University, November 1990
[12]
Pure Systems GmbH, pure::variants, http://www.pure-systems.com/pure_variants.49.0.html
[13]
Batory, D., Johnson, C., MacDonald, B., von Heeder, D., Achieving Extensibility through Product-Lines and Domain-Specific Languages: A Case Study, LNCS, Volume 1844/2000
[14]
Mernik, M., Heering, J., Sloane, A., When and how to develop domain-specific languages, ACM Computing Surveys (CSUR), Volume 37, Issue 4
[15]
Tolvanen, J., Kelly, S., Defining Domain-Specific Modeling Languages to Automate Product Derivation: Collected Experiences, Lecture Notes in Computer Science, Volume 3714/2005
[16]
Czarnecki, K., Antkiewicz, M. Mapping Features to Models: A Template Approach Based on Superimposed Variants. In Proceedings of GPCE'05, 2005
[17]
Loughran, N., Sanchez, P., Garcia, A., Fuentes, L., Language Support for Managing Variability in Architectural Models, Lecture Notes in Computer Science, Volume 4954/2008
[18]
Bravenboer, M., Visser, E., Designing Syntax Embeddings and Assimilations for Language Libraries, ATEM'07 and http://swerl.tudelft.nl/bin/view/EelcoVisser
[19]
Kästner, C., CIDE: Virtual Separation of Concerns, http://wwwiti.cs.uni-magdeburg.de/~ckaestne/
[20]
Thaker, S., Batory, D., Kitchin D., Cook, W., Safe Composition of Product Lines, GPCE 2007, http://userweb.cs.utexas.edu/~wcook/papers/gpce07/ThakerGPCE07.pdf
[21]
JetBrains Inc., Meta Programming System (MPS), http://jetbrains.com/mps
[22]
Voelter, M., Solomatov, K., Language Modularization and Composition with Projectional Language Workbenches illustrated with MPS, submitted to SLE 2010
[23]
Wikipedia, View Model, http://en.wikipedia.org/wiki/View_model
[24]
Krzyzsztof Czarnecki, Feature and Class Models in Clafer: Mixed, Specialized, and Coupled, personal communication, now probably available at http://gsd.uwaterloo.ca/~kczarnec/
[25]
Huang S., Zook D., Smaragdakis, Y., Statically Safe Program Generation with SafeGen, GPCE 2005
[26]
Krishnamurthi S., Fisler K., Greenberg M. Verifying Aspect Advice Modularly, ACM SIGSOFT 2004
[27]
Czarnecki, K., Pietroszek, K. Verification of Feature-Based Model Templates Against Well-Formedness OCL Constraints. GPCE 2006
[28]
Bravenboer, M., Visser, E., Parse Table Composition, Separate Compilation and Binary Extensibility of Grammars, SLE'08 and http://swerl.tudelft.nl/bin/view/EelcoVisser
[29]
Gamma, E., Helm, R., Johnson R., Vlissides, J., Design Patterns, Addison-Wesley, 1994
[30]
Continental Automotive, http://osek-vdx.org/
[31]
Kästner, C., Apel, S., Trujillo, S., Kuhlemann M., Batory, D., Guaranteeing Syntactic Correctness for all Product Line Variants: A Language-Independent Approach, TOOLS Europe 2009

Cited By

View all
  • (2020)Variability Support in DSL DevelopmentVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_2(33-72)Online publication date: 10-Jul-2020
  • (2019)Covert and Phantom Features in AnnotationsProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336296(218-230)Online publication date: 9-Sep-2019
  • (2018)Multi-view editing of software product lines with PEoPLProceedings of the 40th International Conference on Software Engineering: Companion Proceeedings10.1145/3183440.3183499(81-84)Online publication date: 27-May-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FOSD '10: Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
October 2010
94 pages
ISBN:9781450302081
DOI:10.1145/1868688
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

  • Metop GmbH

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. domain-specific languages
  2. feature modeling
  3. language composition
  4. product line engineering

Qualifiers

  • Research-article

Conference

FOSD '10
Sponsor:

Acceptance Rates

FOSD '10 Paper Acceptance Rate 11 of 20 submissions, 55%;
Overall Acceptance Rate 17 of 28 submissions, 61%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Variability Support in DSL DevelopmentVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_2(33-72)Online publication date: 10-Jul-2020
  • (2019)Covert and Phantom Features in AnnotationsProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336296(218-230)Online publication date: 9-Sep-2019
  • (2018)Multi-view editing of software product lines with PEoPLProceedings of the 40th International Conference on Software Engineering: Companion Proceeedings10.1145/3183440.3183499(81-84)Online publication date: 27-May-2018
  • (2017)PEoPLProceedings of the 39th International Conference on Software Engineering10.1109/ICSE.2017.58(563-574)Online publication date: 20-May-2017
  • (2014)Development of Critical Embedded Systems Using Model-Driven and Product Lines TechniquesProceedings of the 2014 Eighth Brazilian Symposium on Software Components, Architectures and Reuse10.1109/SBCARS.2014.19(74-83)Online publication date: 29-Sep-2014
  • (2013)Language and IDE Modularization and Composition with MPSGenerative and Transformational Techniques in Software Engineering IV10.1007/978-3-642-35992-7_11(383-430)Online publication date: 2013
  • (2011)Code reuse with language oriented programmingProceedings of the 12th international conference on Top productivity through software reuse10.5555/2022115.2022134(167-182)Online publication date: 13-Jun-2011
  • (2011)Code Reuse with Language Oriented ProgrammingTop Productivity through Software Reuse10.1007/978-3-642-21347-2_13(167-182)Online publication date: 2011

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