Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt...

36
Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER Awards Amogh Kavimandan, Aniruddha Gokhale , Gabor Karsai & Jeff Gray Presented at QoSA 2011, Boulder, CO June 21, 2011

Transcript of Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt...

Page 1: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Managing the Quality of Software Product Lines Through Reusable Model

Transformations

Vanderbilt University & Univ of Alabama

R&D supported by NSF CAREER Awards

Amogh Kavimandan, Aniruddha Gokhale, Gabor Karsai & Jeff

GrayPresented at QoSA 2011, Boulder, CO

June 21, 2011

Page 2: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

2

Distributed Real-time Embedded (DRE) Systems

• (Images courtesy Google)

Heterogeneous soft real-time applications

Large-scale Stringent simultaneous QoS demands

High-availability, Predictability (CPU & network)

Efficient resource utilization

Operation in dynamic & resource-constrained environments

Process/processor failures Changing system loads

Component-based development Separation of Concerns Composability Reuse of COTS components

Page 3: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Evolution of Software Architecture of DRE Systems

Run-time

Specification

Composition

Configuration

Deployment

3

• Development lifecycle incrementally refines the software architecture of DRE systems

• Model-driven Engineering paradigm is in predominant use

• Model Transformations enable refinements through successive stages of the development lifecycle

• Both intra- and inter-layer transformations are possible

Need to focus on the quality of software architecture at each stage

Page 4: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Basics of Model Transformations

Model Transformation Tool

Model Instance in Source Language

Manually Created Transformation Rules Mapping

Source to Target Artifacts

Model Instance in Target LanguageGenerate

Source Modeling Language

Target Modeling Language

• Model transformation rules dictate how elements of source modeling language are transformed to elements of target modeling language

• e.g, Model-driven Architecture’s PIM to PSM approach• User provides an instance of the source model• Transformation tool produces a model instance in

target modeling language4

Page 5: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Challenges Imposed by Product Lines

Model Transformation

Tool

Model Instance for Variant 1 in Source

Language

Manually Created Transformation Rules

for Variant 1

Model Instance for Variant 1 in Target

Language

Gen

erat

e

Model Instance for Variant 2 in Source

Language

Model Instance for Variant N in Source

Language

Manually Created Transformation Rules

for Variant 2

Manually Created Transformation Rules

for Variant N

Model Instance for Variant 2 in Target

Language

Model Instance for Variant N in Target

Language

Generate

Generate

Family of source model instances that

vary just slightly

Each set of rules written repeatedly and maintained separately

Potentially expensive transformation process

executed repeatedly

Generated family of model instances in

target language

• In Product Lines, the process is repeated per variant• Too much needless effort spent in writing

transformation rules per variant

5

Impacts S/W Quality – a Second Order Effect !

Page 6: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Hardware (CPU, Memory, I/O)Hardware (CPU, Memory, I/O)Hardware (CPU, Memory, I/O)Hardware (CPU, Memory, I/O)

OS & Network ProtocolsOS & Network ProtocolsOS & Network ProtocolsOS & Network Protocols

AirFrameBasicSP

ApplicationNav

HUD GPS

Family variant 1Family variant 2 Family variant 3

• Transformations exhibit significant commonalities in configuration between individual family variants => rules are duplicated!

• Variability is observed to be in the mapping => hard to extend the mapping approach without re-writing the entire set of transformation rules

Example: Middleware QoS Configuration in DRE SPL

Buffer request invocations

Dynamically allocated

thread resources Prioritized connections

Page 7: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

QoS Requirements DSML

QoS Configuration DSML

Transformation rules in terms of source and

target patterns

Transformed instance of QoS Configuration

DSML

• Input DSML is QoS Requirements metamodel, output DSML is QoS configuration metamodel

• Transformation rules are written in terms of these metamodels• Finally, transformation is applied on input requirements model to create

configuration model• To extend it for a product family, transformation rules written per variant• Results in redoing the “Edit-Compile-Execute-Test” Cycle for each variant

Need for Reuse in Model TransformaionsGReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

if (multi_service_levels == true)

create one Lane per client component

if (multi_service_levels == true)

create two Lanes per client component

&&

assign ten threads per Lane

if (multi_service_levels == true)

create one Lane

Page 8: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

8

Recap: Where We Are & Where We Need to Be

G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’

Transformations Development Efforts with Existing State-of-the-Art

EFFORT REPEATED FOR EACH VARIANT

Page 9: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

9

Recap: Where We Are & Where We Need to Be

G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’

Hypothesis: Second-order Solns Will Improve Software Quality

DESIRED NEW CAPABILITY IN MODEL TRANSFORMATIONS

ALL AUTOMATED

MINIMAL EFFORT

Page 10: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

10

Reuse: Desired Properties and Constraints• Desired properties and constraints

on Reuse Capabilities:

1. How can the commonalities be factored out & decoupled from transformations?

2. How can existing transformations be applied to new variants with minimal invasive changes?

3. How can support for reuse be built within existing transformation tool chains with none to minimal modifications to the tool chains?

PriorityModel

Lane Lane Lane

Pro

vid

er

Ser

vice

Req

ues

t

Provider Service Levels

Level 1

Level 2

Level 3

Multiple Service Requests Service Levels

Priority Model PolicyThread Pool Lanes

G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’ G G’

G G’ G G’ G G’

G G’

G G’

G G’

G G’

G G’ G G’ G G’

G G’

G G’

G G’

Solution Approach: Model Transformation Templatization

and Specialization (MTS)

Page 11: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS at a Conceptual Level

User-supplied Concrete Values for

Parameters

User-supplied Concrete Values for

Parameters

Transformation Rules for Each Variant

Transformation Rules for Each Variant

Transformation Rules for Instantiated

Variability

Transformation Rules for Instantiated

Variability

Common Set of Transformation Rules

Written Only Once

Parametrized Transformation Rules Capturing Variability

Higher Order Transformation #1

Transformation Rules for the Instantiated

Variability Only

User-supplied Concrete Values for

Parameters

Higher Order Transformation #2

Complete Transformation Rules

for Each Variant

Spe

cify

Generate

Specify Generate

Specify

LEGEND

STEP 1 STEP 2

STEP 3

STEP 4

Manual

Algorithmic

Generated

Specified only once per product line

Specified once for every product variant

4 Step Process

1. Decouple Variabilities from Commonalities in Rules

2. Generate Variability Metamodels

3. Synthesize Specialization Repository

4. Specializing the Transformation Instance

11

Page 12: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

12

Explaining MTS via a Case Study: QoS Configuration

• Middleware QoS configuration• Source model – two Boolean attributes• Target model – RT-CCM QoS configuration policies

Page 13: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Representative Transformation Tool: GReAT

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

2

3

1Source DSML

Metamodel

Target DSMLMetamodel

Transformation rules in terms of source and

target patterns

Transformed instance of input model instance in

target DSML metamodel

4

Source model instance

• Transformation rules specified in a visual language• Additional rules captured in C++• Built on top of Generic Modeling Environment (GME)

13

Page 14: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

GReAT Screen Snapshot

14

Transformation rule block (part of a

sequence of rules)

Metamodel sheet for transformation rules

(currently active)

Target Metamodel sheet for QoS Configuration

Source Metamodel sheet for QoS Configuration

Palette of objects supported by

GReAT language

GME Metamodeling Editor

Attribute mapping block with capabilities to embed C++ code

Internals of a transformation rule block. Topmost element is from source DSML metamodel

while bottom two belong to target DSML metamodel

GReAT Engine plugins

fixed_priority_service: Boolean=falsemulti_service_levels: Boolean=true

low: Integer=0high: Integer=0

Ports are used to pass objects from one rule

to another

Page 15: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Step I: Decouple Variabilities from Commonalities • No first class support to separate commonalities from

variabilities in transformation rules => How to achieve this non-invasively to the tool?

• We expect developers to conduct Scope-Commonality-Variability Analysis Ahead-of-time

• Define transformation rules for commonalities as before• MTS defines a tool-agnostic textual notation to capture

variabilities in transformation rules as “parametrized rules”• 2 types of variability blocks defined in MTS

• Structural – where variation in a family member stems from dissimilarities in their structural composition

• Quantitative – where variation in a family member stems from the value of the parameter

• Other forms of variability blocks are possible (future work)

15

Page 16: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS Step I: Application to Case Study

• BandedConnections in Structural => they are introduced in target instance

• Data values of static threads, etc vary and are evaluated lazily, and show up as Quantitative

16

Page 17: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

17

MTS Step I: Realizing Parametrized Rules in GReAT

• Use “tunneling” approach to introduce parametrized rules• In GReAT, we leveraged the C++ code block associated with

attributes• Introduced the rules as comment blocks in the C++ code block

Page 18: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS Step II: Generate Variability Metamodels• Recall that the parametrized transformation rules are

agnostic to the transformation tool• In GReAT, these were captured as comments in C+

+ blocks

• Need to convert them to a tool-understandable form

• Solution Approach: Use Higher Order Transformations

• Tool-agnostic parametrized rules are transformed into artifacts understandable to the tool

• In GReAT this becomes a metamodel we call the “Variability MetaModel (VMM)”

18

Page 19: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

19

MTS Step II: Logic for Generating VMM

• For every structural variability, the algorithm creates the corresponding model objects in VMM

• For every quantitative variability, the algorithm creates model objects and their attributes as well

• Type information deduced from original (source/target) metamodel

Page 20: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS Step II: Generated VMM in GReAT

Generated VMM has elements from both source and target that are

associated according to the variability defined in the constraint specification

Indicates whether contained model objects

capture structural or quantitative variability

20

Page 21: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

21

• In step II, VMMs were created from the variabilities

• VMM must be used to create instances of variabilities according to those in the family variants – instance of variability is a model instance of VMM

• A collection of models of variants is specialization repository of family

• Attribute values must be provided at this stage in the VMM model instance

• Collection of VMM instances is a specialization repository

MTS Step III: Synthesizing Specialization Repository

Page 22: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

22

MTS Step III: Specialization Repository for Case Study

• Transformation developers create VMM models, for every application instance• Exact cardinalities, values of attributes etc. chosen at the time VMM

models are created• Partial specializations of the application variant

• Application instance-specific details can vary without need to recompile, relink transformation

Page 23: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS at a Conceptual Level

User-supplied Concrete Values for

Parameters

User-supplied Concrete Values for

Parameters

Transformation Rules for Each Variant

Transformation Rules for Each Variant

Transformation Rules for Instantiated

Variability

Transformation Rules for Instantiated

Variability

Common Set of Transformation Rules

Written Only Once

Parametrized Transformation Rules Capturing Variability

Higher Order Transformation #1

Transformation Rules for the Instantiated

Variability Only

User-supplied Concrete Values for

Parameters

Higher Order Transformation #2

Complete Transformation Rules

for Each Variant

Spe

cify

Generate

Specify Generate

Specify

LEGEND

STEP 1 STEP 2

STEP 3

STEP 4

Manual

Algorithmic

Generated

Specified only once per product line

Specified once for every product variant

4 Step Process

1. Decouple Variabilities from Commonalities in Rules

2. Generate Variability Metamodels

3. Synthesize Specialization Repository

4. Specializing the Transformation Instance

23

Page 24: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

MTS Step IV: Specializing Transformations• Recall that transformation rules for commonalities were

specified separately

• We now have VMMs and specialization repository of model instances for individual variabilities

• How to weave variabilities represented in VMMs with commonalities?

• Need a concept akin to a joinpoint model in AOP

• MTS defines a second higher order transformation to generate a complete set of transformation rules for a variant

24

Page 25: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

25

MTS Step IV: Logic for Specializing Transformations

• Adds temporary objects at appropriate points in the parametrized transformation rules

• Serve as placeholders to insert the instantiated variability of a family member

• Combined with commonality rules to produce entire transformation rules

Page 26: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

Concluding Remarks

Legend

Transformation developers analyze their application family; the variability results are input using constraint notation to the (templatized) model transformation

1

MTS Higher order transformation used to automatically generate VMM from model transformation

2

Transformation developers create a specialization repository for their application family

3

A combination of model transformation and a VMM model synthesizes application family instances

4

Templatized Model Transformation

G G’

G G’ G G’ G G’

G G’

G G’

G G’

Subsystems in appln. familyApplication family

Variability Metamodel

Publisher

GroupFilter

-nesting : Type-scheme : Granularity-nestingLevel : int

11

Publisher

EventChannel

-ecfiltering : ECFilteringType

1

1

11

Filter

-filter : ECFilteringType

1 0..*

InputPattern

1 1

11 1 11

1

1

1

1

1

1

11

1

Specialization Repository

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Subscriber

Subscriber

OutputPattern

• Lack of Reuse in Transformation tools indirectly impacts s/w quality• Particularly crucial for product lines• MTS supports a tool-agnostic process to support transformations

reuse• Demonstrated in GReAT• Benefits amortized over the number of variants• Future work is investigating applicability in ATL and other tools

26

Page 27: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

27

Evaluating MTS: Experimental Setup

• Experiments were conducted on Windows XP SP2 node• 2.66 GHz Intel Xeon dual processor• 2 GB physical memory

• Used CoSMIC version 0.5.7, GME version 6.11.9 and GReAT version 1.6.0

Legend

Transformation developers analyze their

application family; the variability results are input using constraint notation to

the (templatized) model transformation

1

MTS Higher order transformation used to automatically generate VMM

from model transformation2

Transformation developers create

a specialization repository for their application family

3

A combination of model transformation and a VMM model

synthesizes application family instances

4

Templatized Model Transformation

G G’

G G’ G G’ G G’

G G’

G G’

G G’

Subsystems in appln. familyApplication family

Variability Metamodel

Publisher

-nesting : Type-scheme : Granularity-nestingLevel : int

GroupFilter

11

Publisher

-ecfiltering : ECFilteringType

EventChannel

1

1

11

-filter : ECFilteringType

Filter

1 0..*

InputPattern

1 1

11 1 11

1

1

1

1

1

1

11

1

Specialization Repository

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Subscriber

Subscriber

OutputPattern

Page 28: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

28

Evaluating MTS: Metrics for Evaluation

• MTS evaluated across two dimensions:• Reduction in effort to write the transformation rules – measure of

reusability• Overhead incurred by MTS – due to the use of higher-order

transformations in MTS

Legend

Transformation developers analyze their

application family; the variability results are input using constraint notation to

the (templatized) model transformation

1

MTS Higher order transformation used to automatically generate VMM

from model transformation2

Transformation developers create

a specialization repository for their application family

3

A combination of model transformation and a VMM model

synthesizes application family instances

4

Templatized Model Transformation

G G’

G G’ G G’ G G’

G G’

G G’

G G’

Subsystems in appln. familyApplication family

Variability Metamodel

Publisher

-nesting : Type-scheme : Granularity-nestingLevel : int

GroupFilter

11

Publisher

-ecfiltering : ECFilteringType

EventChannel

1

1

11

-filter : ECFilteringType

Filter

1 0..*

InputPattern

1 1

11 1 11

1

1

1

1

1

1

11

1

Specialization Repository

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Variable

Com

ponent

Subscriber

Subscriber

OutputPattern

Page 29: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• GRengine execution involves the following steps

1. Executing the master interpreter that generates the necessary intermediate files containing all the rules in the current transformation,

2. Compile these intermediate files, and

3. Run the generated executable • A change in transformation changes its rules and necessitates regeneration

of its intermediate files => need to execute 1,2, and 3

29

Evaluating MTS: Comparison with Traditional Tools

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

Master Interpreter

Intermediate files (source code)

Compile & Link Execute

1 2 3

Page 30: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• Without MTS, developers need to expend effort in all these steps• Steps 1 and 2 must always be performed at the time a new variant is

added• Can be extremely slow for very large metamodels

30

Evaluating MTS: Overhead of Traditional Approaches

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

Master Interpreter

Intermediate files (source code)

Compile & Link Execute

1 2 3

Page 31: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

Master Interpreter

Intermediate files (source code)

Compile & Link Execute

• With MTS and its use of variability metamodel, two cases are possible:• Case 1: New variant subsumed by existing constraint specification

• Steps 1 & 2 performed only once, Step 3 repeated each time new variant added/changed => several times faster

• Savings of over 90% (when MTS was used) in time taken for single transformation to run

31

Evaluating MTS: Reduction in Development Effort

1 2 3

Page 32: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

32

Evaluating MTS: Reduction in Development Effort

• With MTS and its use of variability metamodel, two cases are possible:• Case 1: New variant subsumed by existing constraint specification

• Steps 1 & 2 performed only once, Step 3 repeated each time new variant added/changed => several times faster

• Savings of over 90% (when MTS was used) in time taken for single transformation to run

• Total number of rules to be maintained will be reduced by a fraction of (I-1)/I, for I instances

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

Rn rules per variant

Rn rules for all variants

Page 33: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• With MTS and its use of variability metamodel, two cases are possible:• Case 2: New variant introduces additional variabilities in the family

• Requires additional constraint specification, performing Steps 1 & 2 to generate new VMM – old VMM models would still work

33

Evaluating MTS: Reduction in Development Effort

GReAT

G G’

G G’ G G’ G G’

G G’

G G’

G G’

GR-Engine

Master Interpreter

Intermediate files (source code)

Compile & Link Execute

1 2 3

Page 34: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• Measure performance overhead placed by MTS higher-order transformations for the two case studies• Overhead measured in

terms of time taken for each transformation to run

34

Evaluating MTS: Overhead of Higher-order Transformations

Page 35: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• Measure performance overhead placed by MTS higher-order transformations for the two case studies• Overhead measured in

terms of time taken for each transformation to run

• Measure overhead as the number of variabilities are increased• Study how higher-order

transformations behave under increasing variabilities

• Variabilities were increased from data point 1 through 6/7

35

Evaluating MTS: Overhead of Higher-order Transformations

Page 36: Managing the Quality of Software Product Lines Through Reusable Model Transformations Vanderbilt University & Univ of Alabama R&D supported by NSF CAREER.

• Scale well to increasing variabilities• Algorithms take slightly more time for QoS configuration case study due to

larger metamodel• One-time expense for every change in constraint notation specification

• Once to generate new VMM, once to create temporary objects in transformation

36

Evaluating MTS: Overhead of Higher-order Transformations