so#ware(product(lines(...

Post on 09-Feb-2018

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Philippe'Collet'(Professor,'Univ.'Nice'Sophia'An9polis)'''

With'some'slides'from'Mathieu'Acher'

So#ware(Product(Lines(and(Variability(Management(

Genie'logiciel':'M1'IFI'–'RIF'/'Fall'2014'

•  Why'managing'Variability'does'maMer'•  Managing'variability'models'with'Feature'Models'•  FAMILIAR'':'a'DSL'for'large'scale'management'of'Feature'Models'

•  Some'Applica>ons'of'Feature'Modeling'•  Some'interac9ve'exercises'on'capturing'Variability(with'a'DEMO…(

2'

Course(Agenda(

(Why(managing(Variability(does((and(

will)(maHer(

3'

Android,(survey(on(682,000(devices(T'August'2013:'11,868'dis9nct'devices'T'August'2014:'18,796'dis9nct'devices'

4'

hMp://opensignal.com/reports/2014/androidTfragmenta9on/'

5'

SoZwareTintensive'systems'

come'in'many'variants((

6'

Linux'Kernel'

Database'Engine'

Printer'Firmware'

Features(in(Microso#(Office(

10'

11'

Variability((“the(ability(of(a(system(to(be(efficiently(extended,(changed,(customized(or(configured(for(use(in(a(par>cular(context”((

Mikael'Svahnberg,'Jilles'van'Gurp,'and'Jan'Bosch'(2005)'

«'A'set'of'programs'is'considered'to'cons9tute'a'family,'whenever'it'is'worthwhile'to'study'programs'from'the'set'by'first(studying(the(common(proper>es(of'the'set'and'then'determining'the'special(proper>es'of'the'individual'family'members'»'(((((David(L.(Parnas(—(‘‘On(the(design(and(development(of(program(families’’(in(Transac>ons(on(So#ware(Engineering,(SE[2(1):1–9,(1976('13'

aka(Variability(

14'14'

Extensible(architect

ures(

(eg(plugins[based)(

Configura>on(

files(

System(

Preferences(

Configurators(

Source(code(Build(

systems(

Comparison(of(*(

Structural(or(behav

orial((

models(

External(Variability(Internal(Variability(Variability(@(run.>me(

If(you’re(able(to(master(variability…(

•  Reduce'development'costs''•  Reduce'cer9fica9on'costs''•  Shorten'9meTtoTmarket''

•  But,'are'you'able?''– developing,'verifying,'cer9fying'billions'of'variants'is'challenging!'

'15'

Variability = Complexity

Chris9an'Kästner'slide!

a'unique'variant'for'every'

person'on'this'planet'

33'features'op9onal,'independent'

Chris9an'Kästner'slide!

320'features''

more'variants'than'es9mated'

''atoms'in'the'universe'

op9onal,'independent'

2000'features' 10000'features'

Chris9an'Kästner'slide!

20'

((

Avoid(solving(the(same(problem!(((

(2,(3…n(>mes((

Automa>on?(

21'

Unused(flexibility(

22'

Illegal(variant(

((Goal:(So#ware(mass(customiza>on((/(Adap>ve(and(configurable(systems((Problem:(Variability(=(Complexity((Approach:(Model[based(variability(management(

23'

Why(managing(Variability((does((and(will)(maHer(

24'

SoZwareTintensive'systems'come'in'many'variants((

Model[based((Variability(Management(

(

Modeling(Variability((Communica>ve((Analy>c((Genera>ve(( 25'

So#ware(Product(Lines:(defin>on(

Systems(of(sytems(–(Ultra(Large(Scale(Product(Lines(Paradigm( Large(scale(systems(

26'

a'family'of'related'soZware'variants'(='products)'that'share'common'proper9es'and'meet'the'requirements'for'a'given'domain.'

27'

Factoring'out'commonali>es((for(Reuse([Krueger'et'al.,'1992]'[Jacobson'et'al.,'1997]'

((((((Managing(variabili>es((

(for'SoZware'Mass(Customiza>on([Bass'et'al.,'1998]'[Krueger'et'al.,'2001],'[Pohl'et'al.,'2005]'((

Mobile

3G+ 3G GPS

Maps

Camera

!'!'!'

Mobile

3G+ 3G GPS

Maps

Camera

Domain/Variability(Model(

Configura>on( So#ware(Generator(

Domain(Artefacts(((

Domain((Engineering(

Applica>on((Engineering(

«'the'investments'required'to'develop'the'reusable'arBfacts'during'domain!engineering,'are'outweighed'by'the'benefits'of'deriving'the'individual'products'during'applica.on!engineering'»'

Jan!Bosch!et!al.!(2004)!!!

29'

99%(domain(engineering,((1%(applica>on(engineering?(

–  specifies'what'you'want'(click,'click,'click)'a'customized'product'is'automa9cally'built'for'you'

–  Iterate'the'process'for'n'products'

Amount of

effort

Application Engineering

More Sophisticated Technology

Domain Engineering

Mobile

3G+ 3G GPS

Maps

Camera !'

!'

!'

Mobile

3G+ 3G GPS

Maps

Camera

Variability(Model(

Configura>on(

Domain(Artefacts((e.g.,(source(code)(

So#ware(Generator(

Modeling(variability((is(crucial(

31'

Unused(flexibility(

32'

Illegal(variant(

More(Defini>ons(

'•  Domain':'Technology,'business'or'knowledge'sector'that'

is'characterized'by'a'set'of'concepts'and'terminologies'understandable'by'users'of'this'sector'

•  Variability'is'formed'by'all'assump9ons'showing'how'products,'members'of'the'SPL,'differ'among'each'other'

•  Commonality(is'formed'by'all'assump9ons'that'are'true'for'all'product'members'of'the'SPL'

'

What(is(needed(to(handle(Variability?(

•  Define'mandatory'proper9es'and'func9onali9es''•  Define'op>onal'choices:'0,'1..N,'choice'among'n''•  Variants('•  Constraints((

–  Dependency''– Mutual'exclusion'

How(to(express(variability?(

•  Inheritance'(design,'implementa9on)'•  Genericity'(design,'implementa9on)'•  Design'PaMern'(design,'implementa9on)'•  AspectTOriented'Design'&'Programming'(design,'implementa9on)'

•  Model'Transforma9on'(design)'•  Model'Composi9on'(design)'•  Feature(Models((requirement'engineering,'design,'also'implementa9on)'–  Similar'technique':'Decision(Modeling(

Variability(Model(Feature(Model:(de!facto!standard(

•  Research''–  2500+'cita9ons'of'[Kang'et'al.,'1990]'on'Google'Scholar''–  Central'to'many'genera9ve'approaches'

•  at'requirements'or'code'level'–  Tools'&'Languages'(GUIDSL/FeatureIDE,'SPLOT,'FaMa,'etc.)'

•  Industry''–  Tools'(Gears,'pure::variants),''– Will'be'Part'of'Common'Variability'Language'(CVL),'future'OMG'standard'

36'

excludes

Feature(Models(

40'

Feature(Models((Background)(

41'

Hierarchy:'rooted'tree''Variability:((•  mandatory,''•  op9onal,''•  Groups:'exclusive'or'inclusive'features'•  CrossTtree'constraints'

Optional

Mandatory

Xor-Group

Or-Group

42'

Hierarchy(+(Variability((=((

set(of(valid(configura>ons(

!

Optional

Mandatory

Xor-Group

Or-Group

{CarEquipment,'Comfort,'DrivingAndSafety,'Healthing,'AirCondi9oning,'FrontFogLights}'

configura>on(=(set(of(features(selected(

!'!'

!'

!'!'

!'

43'

Hierarchy(+(Variability((=((

set(of(valid(configura>ons(

Optional

Mandatory

Xor-Group

Or-Group

{CarEquipment,'Comfort,'DrivingAndSafety,'Healthing,'AirCondi9oning}'

configura>on(=(set(of(features(selected(

!'!'

!'

!'

!'

44'

Hierarchy(+(Variability((=((

set(of(valid(configura>ons(

Optional

Mandatory

Xor-Group

Or-Group

{CarEquipment,'Comfort,'DrivingAndSafety,'Healthing,'AirCondi9oning,'AirCondi9oningFrontAndRear,'FrontFogLights}'

configura>on(=(set(of(features(selected(

!'!'

!'

!'!'

45'

Hierarchy(+(Variability((=((

set(of(valid(configura>ons(

Optional

Mandatory

Xor-Group

Or-Group

{CarEquipment,'Comfort,'DrivingAndSafety,'Healthing,'AirCondi9oning,'Automa9cHeadLights}'

configura>on(=(set(of(features(selected(

!'!'

!'

!'

!'

!'

46'

Hierarchy(+(Variability((=((

set(of(valid(configura>ons(

Optional

Mandatory

Xor-Group

Or-Group

{AirCondi9oning,'FrontFogLights}'{Automa9cHeadLights,'AirCondi9oning,'FrontFogLights}'{Automa9cHeadLights,'FrontFogLights,'AirCondi9oningFrontAndRear}'{AirCondi9oningFrontAndRear}'{AirCondi9oning}'{AirCondi9oningFrontAndRear,'FrontFogLights}'

{CarEquipment,'Comfort,'DrivingAndSafety,'Healthing}' X

Managing(variability(models(with(FAMILIAR(

47'

#1(Automated(Analysis(

48'

#2(Mul>ple(Feature(Models(

49'

•  #1(Automated(analysis((–  Aka'support'to'beMer'understand'and'play'with'your'feature'model'(TVL'model)'

•  #2(Managing(mul>ple(feature(models(–  Composing'/'Decomposing'/'Diff'and'Reasoning'about'their'rela9onships'

–  Combining'these'operators'50'

Two(Key(Requirements(

FAMILIAR(language(and(environment(

(((((

FAMILIAR(((

And-Group

Optional

Mandatory

Xor-Group

Or-Group

constraints

……..

DirectX

V10 V10.1 v11

Outputs

VIVO DVI HDMI

S-Video Composite

VGA

GraphicCard And-Group

Optional

Mandatory

Xor-Group

Or-Group

TV output

constraints

VGA excludes TV outputHDMI implies v10.1 or v11

constraints

……..

constraints

……..

constraints

……..

//(foo.fml(fm1(=(FM((“foo1.tvl”)(fm2(=(FM((“foo2.m”)(fm3(=(merge(intersec>on({(fm1(fm2(}(c3(=(coun>ng(fm3(renameFeature(fm3.TV(as(“OutputTV”(fm5(=(aggregate({(fm3(FM((“foo4.xml”)(}(assert((isValid(fm5)(((fm6(=(slice(fm5(including(fm5.TV.*((export(fm6((

True/False'8759'“OutputTV”,'“TV”''

Interoperability( Language(facili>es( Environment(

52'

Interoperability(fm1'='FM(“foo.tvl”)'fm2'='FM'(“foo.m”)''

serialize'fm4'into'SPLOT'serialize'fm1'into'featureide'fm3'='FM'(“foo.xmi”)'

fm4'='FM'(A':'B'….)''

((De/Composi>on(merge''''''''''''diff''''''''''''intersec9on''''''''''''sunion'

''

aggregate''map''unmap'

extract'''''''''''''''''''''''''''slicing'

Edi>ng(renameFeature'

'removeFeature'accessors''

'copy'

( ( ( (( ((Reasoning((coun9ng' configs'

isValid'deads'cores'falseOp9onals'

cleanup'

configura9on'''select''deselect''asFM'compare'

setOp9onal '''''''''''''setMandatory'

setAlterna9ves'' 'setOr'

'

(Language(Facili>es(fm1.*' fm1.B'

modular'mechanisms'''

restricted'set'of'types'iterator/condi9onal'

asser9on'

insert'

FAMILIAR(…(features(

Hello(World(

53'

helloworld.fml'

Typed(language((•  DomainTspecific'types'

–  Feature'Model,''–  Configura9on,''–  Feature,''–  Constraint''

•  Other'types'include''–  Set'–  String''–  Boolean,''–  Enum,''–  Integer'and'Real.''

•  A'set'of'opera9ons,'called'operators,'are'defined'for'a'given'type.''54'

basics2.fml'

Typed(language((

55'

basics2.fml'

Typed(language((

56'

basics2.fml'

Impor>ng/Expor>ng(feature(models(

57'

FAMILIAR

S2T2TVL

feature-model-synthesis

(visual configurator)

(language)

(language)FaMa

Internal'nota9on'or'by'“filename'extensions”''

basics3.fml'

Feature(Accessors((1)(

58'

ZAccessors.fml'

Other(constructs(

59'

ZAccessors2.fml'

Configura>on(

60'

conf.fml'

Opera>ons(for(Feature(Models((1)(

61'φ

operatorsFM.fml'

Opera>ons(for(Feature(Models((2)(

62'

φ

operatorsFM2.fml'

Opera>ons(for(Feature(Models((3)(

63'

operatorsFM3.fml'

FAMILIAR' 64'

constraints

……..

SPL/internal/so#ware(variability(((Pohl(et(al.(2005,(Metzger(2007)(

constraints

……..

PL/external(variability(((Pohl(et(al.(2005,(Metzger(2007)(

(

constraints

……..

context(variability((FORM(1998,(Tun(et(al.(2009((problem(world),((Hartmann(2008((CVM),(Lee(et(al.(2010(

Stakeholder(1,(2,(3,(…,(n(((Czarnecki(2005,(Reiser(et(al.(2007,(Hartmann(et(al.(2009,(Classen(et(al.(2009,(Mendonca(et(al.(2010)(

constraints

……..

constraints

……..

constraints

……..

constraints

……..

Concern(1,(2,(3,(…,(n(View(1,(2,(3,(…,(n((Dunghana(et(al.(2010,((Hubaux(et(al.(2010,(Zaid(et(al.(2010)(

((((((

constraints

……..

constraints

……..

constraints

……..

constraints

……..

constraints

……..

Mul>ple(Feature(Models(''

''

'' ''

''

''

''

'' ''

'' ''

''

'' ''

''

''

''

'' ''

''''

''

'' ''

''

SoC(support(=(Composi>on/Decomposi>on(for'managing'large,(complex(and(mul>ple(feature'models'FORM'1998,'Tun'et'al.'2009'(SPLC),'Hartmann'2008'(SPLC),'Lee'et'al.'2010,'Czarnecki'2005,'Reiser'et'al.'2007'(RE'journal),'Hartmann'et'al.'2009'(SPLC),'Thuem'et'al.'2009'(ICSE),'Classen'et'al.'2009'(SPLC),'Mendonca'et'al.'2010'(SCP),'Dunghana'et'al.'2010,'Hubaux'et'al.'2011'(SoSyM),'Zaid'et'al.'2010'(ER),'She'et'al.,'2011'(ICSE),'etc.''

Composing(Feature(Models((1)(

66'

aggregateBasics.fml'

Composing(Feature(Models((2)(

67'

aggregate1.fml'

Previous'version'

Merging(Feature(Models((

68'

mergeMI.fml'

see'also'Thuem,'Kastner'and'Batory,'ICSE’09'

Comparing(Feature(Models(

69'

compare.fml'

Puxng(all(together:(Example(1(

70'

Merge(Intersec>on:(Available(Suppliers(

71'

∩( ∩(

A(customer(has(some(

requirements(

Suppliers?(Products?(

In(FAMILIAR(

72'

suppliersExample0.fml'

Merge(Union:(Availability(Checking(

73'

Can(suppliers(provide(all(products?(Yes!(

“compare”('(

(

∩(

In(FAMILIAR(

74'

suppliersExample.fml'

Merging(opera>on:((implementa>on(issues(

75'

T2

MRI

Medical Image

HeaderAnonymized

T1

DICOMHeader excludes DICOMHeader implies AnonymizedAnonymized v Header v ~DICOM v ~T1 v ~T2Anonymized v Header v DICOM v ~T1 v ~T2

How(to(synthesise(a(feature(model(that(represents(the(union(of(input(sets(of(configura>ons?(

76'

Merging(opera>on:(seman>c(issues((2)(

φ Union'Intersec9on''Diff'' How(to(synthesise(a(feature(model(that(represents(

the(union(of(input(sets(of(configura>ons?(

Merging(opera>on:(algorithm(

77'

φ1

φ2

φ3

φ 123

merged'proposi9onal'formula'T2

MRI

Medical Image

HeaderAnonymized

T1

DICOM

merged'hierarchy'+(

Set(mandatory(features(Detect(Xor(and(Or[groups(Compute(“implies/excludes”(constraints(

How(to(synthesise(a(feature(model(that(represents(the(union(of(input(sets(of(configura>ons?(

see'also'[Czarnecki'SPLC’07'or'SPLC’12]'

78'

Building(“views”(of(a(feature(model(

•  Problem:'given'a'feature'model,'how'to'decompose'it'into'smaller'feature'models?'

•  Seman9cs?'– What’s'the'hierarchy'– What’s'the'set'of'configura9ons?'

79'

Building(“views”(of(a(feature(model(

A(first(try(

A3 => P1P2 => A5

R

A2

A5 A6

A1

A3 A4

A

fm0

P3P2P1

P

P1 => P2

A2

A5 A6

A1

A3 A4

AfmExtraction1

A2

A5 A6

A1

A3 A4

AfmExtraction2

A3 => A5A4 => A6

Problem:(You(can(select(A3(without(A5(

Hierarchy(and(Configura>on(maHer!( 80'

Slicing(Operator(

W

constraintsE implies DR implies E D excludes FS implies (F and not E)

P

R S

fm1

AV

T U

B C D

E F

Optional

Mandatory

Xor-Group

Or-Group

T

S E D

constraintsE implies DD implies E

slicing(criterion(:(an(arbitrary'set'of'features,'relevant'for'a'feature'model'user'

slice':'a'new'feature'model,'represen9ng'a'projected(set'of'configura9ons''

81'

Slicing(operator:(going(into(details(projected(set(of(configura>ons(

82'

fm1'='{''{A,B,C,D,E,P,R,T,U,W},''{A,B,C,F,P,S,T,U,W},''{A,B,C,D,E,P,R,T,W},''{A,B,C,F,P,S,T,V,W},''{A,B,C,F,P,S,T,U,V,W},''{A,B,C,F,P,S,T,W},''{A,B,C,D,E,P,R,T,V,W},''}'

fm1'='{''{A,B,C,D,E,P,R,T,U,W},''{A,B,C,F,P,S,T,U,W},''{A,B,C,D,E,P,R,T,W},''{A,B,C,F,P,S,T,V,W},''{A,B,C,F,P,S,T,U,V,W},''{A,B,C,F,P,S,T,W},''{A,B,C,D,E,P,R,T,V,W},''}'

fm1p'='{''{D,E,T},''{S,T},''{D,E,T},''{S,T},''{S,T},''{S,T},''{D,E,T}'}'

fm1p'='{''{D,E,T},''{S,T},''}'

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

Optional

Mandatory

Xor-Group

Or-Group

+(T

S E D

constraintsE implies DD implies E

φs1

existenBal'quanBficaBon'of'features'not'included'in'the'slicing'criterion'

83'

fm1p'='{''{D,E,T},''{S,T}'}'

Slicing(operator:(going(into(details(synthesizing(the(corresponding(feature(model(

S( E( D(

T(

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

φ1

see'also'[Acher'et'al.,'ASE’11/AOSD’12]'

T

S E D

constraintsE implies DD implies E

84'

Slicing(operator(with(FAMILIAR((1)(

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

slicingOp2.fml'

85'

Slicing(with(FAMILIAR((2)(slicingOp.fml'

Puxng(all(together:(Example(2(

86'

From!marke.ng,!customers,!product!management!(

From!exis.ng!so@ware!assets!!(technical!variability)(

V1 ⬄ f1V2 ⬄ f2V3 ⬄ f3

From!marke.ng,!customers,!product!management!(

From!exis.ng!so@ware!assets!(

realizability'

usefulness'

Metzger,'Heymans'et'al.'“DisambiguaBng'the'DocumentaBon'of'Variability'in'Sodware'Product'Lines:'A'SeparaBon'of'Concerns,'FormalizaBon'and'Automated'Analysis“'(RE’07)'

Realizability(checking(aggregate(

{{V1,V3,V2,VP1},'{V1,VP1},'{V3,VP1},''{VP1}}''

merge(diff((“unrealizable(products”)(

(

φ

1

slice((“realizable(part”)(2

3 compare(4'

see'also'[Acher'et'al.'AOSD’12'and'CAiSE’12'

With(FAMILIAR(

90'

realizibility.fml'

Puxng(all(together:(Example(3(

91'

#1(Reverse(Engineering(Architectural(Feature(Models(

Case(Study:(FraSCA>(Architecture(

Collabora>on(with(Anthony(Cleve((University(of(Namur(/(PRECISE,(Belgium),((Philippe(Collet(and(Philippe(Lahire((University(of(Nice(Sophia(An>polis),((Philippe(Merle(and(Laurence(Duchien((University(of(Lille(/(INRIA)(

FraSCAti

SCAParser

Java Compiler

JDK6 JDT

Optional

Mandatory

Alternative-Group

Or-Group

Assembly Factory

resthttp

Binding

MMFrascati

Component Factory

Metamodel

MMTuscany

constraints

rest requires MMFrascatihttp requires MMTuscany

FM1

[Acher!et!al.,!ECSA’11]![Acher!et!al.,!BENEVOL’11]![Acher!et!al.,!GDR!GPL’12]!

93'

Software Artefacts

Variability Modeling

Automatic Extraction

Software Architect View

?

1(2(

Philippe'Merle,'soZware'architect'of'FraSCA9'

Combina9on'of'plugin'dependencies''and'hierarchical'component'model'to''synthesise'a'feature'model'

Extrac>on(process(

Highlights(

•  Automated'Procedure'–  Extrac9ng'and'Combining'Variability'Sources'(incl.'soZware'architect'knowledge)'– Advanced'feature'modeling'techniques'have'been'developed'(tool'supported'with'FAMILIAR)'

•  Some'Lessons'Learned'–  Extrac9on'procedure'yields'promising'results'–  Essen9al'role'of'soZware'architect''

•  To'validate'the'extracted'feature'model'•  To'integrate'knowledge'

•  Extensions'–  Evolu9on'of'FraSCA9'with'DIFF'(v1.3,'v1.4,'etc.)'

94'

#2(from(product(descrip>ons((to(feature(models(

95'

Collabora>on(with(Patrick(Heymans,(Anthony(Cleve,(Gilles(Perrouin((University(of(Namur(/(PRECISE,(Belgium),(Philippe(Collet(and(Philippe(Lahire((University(of(Nice(Sophia(An>polis),((

[Acher!et!al.,!VaMoS’12]!

96'

WikiMatrix

RSSStorage LicenseLicenseCostFee

US CommunityDifferent Licenses

LanguageUnicode

Java Python PHP PerlCommercial GPL GPL2NoLimitFiles Database FileRCS

Xor

Mandatory

Optional

640'configura9ons'(634'counter'examples)'

Exact'set'of'configura9ons,'each'configura9on''corresponding'to'at'least'one'product'

Manual'extrac9on'of'a'feature'model''from'product'descrip9on(s)'is'not'possible'

Automa>on((•  Each'product'descrip9on'is'encoded'as'a'feature'model'

•  Feature'models'{fm1,'fm2,…,fm8}'are'merged(–  Output:'a'new'feature'model'

•  Configura9on:'union'of'input'sets'of'configura9ons'•  Hierarchy:'by'default,'we'exploit'the'structure'of'the'tabular'data'

–  Can'be'overridden'by'specific'user'direc9ves'

–  VariCell'•  DSL'built'on'top'of'FAMILIAR'

97'

fm1'fm2'fm3'fm4'fm5'fm6'fm7'fm8''

Puxng(all(together:(Example(4(

98'

Modeling(Variability(From(Requirements(to(Run>me(

(The(case(of(video(surveillance(processing(chains(

Collabora>on(with(Sabine(Moisan(and(Jean[Paul(Rigault((INRIA)(

Adap>ve(systems(

SoZware'Product'Line'(SPL)'approach'

Video'surveillance'processing'chains'

Adap>ve(systems(

Adap>ve(systems(

large(number(of(so#ware(configura>ons(for(a(large(number(of(requirements(

constraints

……..

constraints

……..

constraints

……..

constraints

……..

So#ware(Pla�orm(Configura>ons(

SoZware'Product'Line'(SPL)'approach'

Video'surveillance'processing'chains'

constraints

……..

constraints

……..

constraints

……..

Video(Surveillance(Applica>on(Requirements(

Scene(Context( Objects(of(Interest(Specific(Task(

Adap>ve(systems(

Implementa>on:(under(the(hood(Videosurveillanceapplica0on

Task QoS Objectof

interest

Scene

context

Coun0ng Intrusion

Precision Response

,me

Quality Scene

descrip0on

Environment

Ligh0ngCamera

Person

Ar0ficial IndoorsViewFrame

rate

VideosurveillanceplaIorm

Acquisi0on Segmenta0on Classifica0on

Clustering

Gridstep With

window

Traversal

algorithm

Kernel

func0on

Edge Region

Model

Ellipse GravityGreyColor

(a)Ta

skm

odel

(b)P

laIorm

model

mandatoryfeature

op0onalfeature

alterna0vefeatures(XOR)

or‐features(OR)

cross‐modelconstraint

internalconstraint

specifica0onfeature

imposedbytheapplica0on

specifica0onfeaturededuced

frominternalconstraints

implementa0onfeaturededuced

fromcross‐constraints(transforma0on)

”neutral”implementa0onfeature

102'

Puxng(all(together:(Example(5(&(Demo…(

103'

Realizing(a(Car(Crash(Management(System(SPL(

104'

Scenario(

•  Construc9on'of'a'domain'feature'model'for'the'bCMS'– Aggrega9on'of'func9onal'and'non'func9onal'parts'

•  Reasoning'on'the'resul9ng'bCMS'FM'•  Rela9ng'it'to'a'pla{orm'feature'model'(J2EE'from'SPLOT'repository)'

•  Checking'realizability'– While'refining'both'feature'models'(bCMS'/'J2EE)'

105'

''

''

'' ''

''?(

top related