Software product-lines are an important technology for meeting the growing demand for highly customized – yet reusable – solutions. Commonality-variability analysis (CVA) is a well-known approach to address the challenges of software product-line development. The goal of CVA is to identify (1) what aspects of a software system are stable across multiple variants or over time, (2) what aspects of a software system vary across multiple variants or over time, and (3) the development techniques that best address specific commonalities and their variabilities, e.g., to allow substitution of custom variable implementations via a common interface. Model-driven development (MDD) provides effective techniques for documenting and conveying the results of a CVA by combining
Metamodeling, which defines type systems that precisely express key abstract syntax characteristics and static semantic constraints associated with product-lines for particular application domains, such as software defined radios, avionics mission computing, and inventory tracking.
Domain-specific modeling languages (DSMLs), which provide programming notations that are guided by and extend metamodels to formalize the process of specifying product-line structure, behavior, and requirements in a domain.
Model transformations and code generators, which ensure the consistency of product-line implementations with analysis information associated with functional and quality of service (QoS) requirements captured by structural and behavioral models.
Key advantages of using MDD in conjunction with CVA are (1) rigorously capturing the key roles and responsibilities in a CVA and (2) helping automate repetitive tasks that must be accomplished for each product instance. Often, however, new customer requirements invalidate the results of earlier CVAs, such that a CVA and its derived meta-models, DSMLs, and generators must be modified invasively and intrusively to reflect these new requirements.
[1]
Dennis Wagelaar.
Towards Context-Aware Feature Modelling using Ontologies
,
2005
.
[2]
Douglas C. Schmidt,et al.
Simplifying the Development of Product-line Customization Tools via Model Driven Development
,
2005
.
[3]
Bruce Trask,et al.
Using Domain-Specific Modeling to Develop Software Defined Radio Components and Applications
,
2005
.
[4]
Bruce Trask,et al.
Using model-driven engineering to complement software product line engineering in developing software defined radio components and applications
,
2006
.
[5]
Venkatesh Prasad Ranganath,et al.
Model-driven Middleware Specialization Techniques for Software Product-line Architectures in Distributed Real-time and Embedded Systems
,
2005
.
[6]
Gan Deng.
Addressing Domain Evolution Challenges in Model-Driven Software Product-line Architectures
,
2005
.
[7]
Klaus Pohl,et al.
Variability management in software product line engineering
,
2006,
ICSE.
[8]
Awais Rashid,et al.
From Requirements Documents to Feature Models for Aspect Oriented Product Line Implementation
,
2005,
MoDELS.