Variability-Aware Analysis (FOSD Dagstuhl 2011)

29
Variability-Aware Analysis Type Checking entire Product Lines Christian Kästner and Sven Apel

description

An overview of variability-aware analysis on the example of type checking software product lines

Transcript of Variability-Aware Analysis (FOSD Dagstuhl 2011)

Page 1: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Variability-Aware AnalysisType Checking entire Product Lines

Christian Kästner and Sven Apel

Page 2: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Feature-Oriented

Product Lines

Page 3: Variability-Aware Analysis (FOSD Dagstuhl 2011)
Page 4: Variability-Aware Analysis (FOSD Dagstuhl 2011)

DatabaseEngine

Page 5: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Printer Firmware

Page 6: Variability-Aware Analysis (FOSD Dagstuhl 2011)

LinuxKernel

Page 7: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Variability = Complexity

Page 8: Variability-Aware Analysis (FOSD Dagstuhl 2011)

a unique variant for every

person on this planet

33 featuresoptional, independent

Page 9: Variability-Aware Analysis (FOSD Dagstuhl 2011)

320 features

more variants than estimated

atoms in the universe

optional, independent

Page 10: Variability-Aware Analysis (FOSD Dagstuhl 2011)

2000 features 8000features

Page 11: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Correctness?

Page 12: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Printer Firmware

Page 13: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Printer Firmware

Checking Products2000 Features100 Printers30 New Printers per Year

Page 14: Variability-Aware Analysis (FOSD Dagstuhl 2011)

LinuxKernel

Checking Products8000 Features? Products

Page 15: Variability-Aware Analysis (FOSD Dagstuhl 2011)

LinuxKernel

Checking Product Line

Implementation with 8000 Features

+ Generator

Page 16: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Variability-AwareParserType SystemStatic AnalysisBug FindingTestingModel CheckingTheorem Proving…

Page 17: Variability-Aware Analysis (FOSD Dagstuhl 2011)
Page 18: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Conflicts

References

Page 19: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Presence Conditions

true

true

WORLD

BYE

Page 20: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Reachability: pc(caller) -> pc(target)Conflicts: ¬(pc(def1) ˄ pc(def2))

true -> true

true -> (WORLD v BYE)

¬ (WORLD ˄ BYE)

Page 21: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Variability Model:

VM -> (true -> true)

VM -> (true -> (WORLD v BYE))

P

WORLD BYE

VM ->¬ (WORLD ˄ BYE)

Page 22: Variability-Aware Analysis (FOSD Dagstuhl 2011)

22

WORLD BYE

BYEWORLD

AST with Variability Information

Extended Lookup Mechanism

Page 23: Variability-Aware Analysis (FOSD Dagstuhl 2011)
Page 24: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Feature Modules

Check Features in

Isolation

Page 25: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Feature Modules

Check Features in

IsolationVariability-Aware

Compatibility Checks

of Interfaces

Page 26: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Surface Complexity

Handling Complexity

SATProblem

InherentComplexity

Page 27: Variability-Aware Analysis (FOSD Dagstuhl 2011)

FAME-DBMS

OS BufferMgr StorageDebug Logging

Nut/OS Win InMemoryPersistent UnindexedB+TreeAPI

MemAlloc PageRepl. get put delete

LRU LFUStatic Dyn.

Feature Lifting Variability-Aware Model Checking

Variability-Aware Parsingentire

Linux kernel

Page 28: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Product Line

Paper Collection:http://researchr.org/tag/variability-aware-analysis

Checking Products

Checking Product Line

Variability-AwareParserType SystemStatic AnalysisBug FindingTestingModel CheckingTheorem Proving…

Page 29: Variability-Aware Analysis (FOSD Dagstuhl 2011)

Picture Credits

© Stuck in Customs (cc by-nc-sa 2.0)

© Horia Varlan (cc by 2.0)