prototyping software product lines analysis with pharo

16
Prototyping So,ware product lines with Pharo Abdelghani Alidra Badji Mokhtar university- Algeria

Upload: esug

Post on 13-Jan-2017

172 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Prototyping Software Product Lines analysis with Pharo

PrototypingSo,wareproductlines

withPharo

AbdelghaniAlidraBadjiMokhtaruniversity-Algeria

Page 2: Prototyping Software Product Lines analysis with Pharo

Aboutmeandthisproject

•  IamdoingPhdonSo,warerun@meadapta@on–  basedonSo,wareProductLines(SPL)–  prototypenewalgorithmsforSPL-basedadapta@onplanning

–  focusonscalabilityissues–  enlargetheprojecttoreasoningonfeaturesmodelusingdependenciesbetweenfeatures.

→AsimpleAPItodocomplexreasoningalgos

2

Page 3: Prototyping Software Product Lines analysis with Pharo

So,wareProductLines

•  Isanothersteptowardstheindustrializa@onofso,waredevelopment.

•  Addressesapar@cularmarketsegmentordomain•  Automo@ve(Renault)•  SmartPhones(Nokia)•  ….

•  Canhaveimpressiveimpactoncostsanddelays•  Iftherearealotofproductsthatvarybysome

aspectsbutthatsharemanycomponents

Page 4: Prototyping Software Product Lines analysis with Pharo

clientsVariabilityinforma@on

So,wareFactory

4

Allphonesmosthaveabatery,asceen,amic…

BaQerylifeexcludelargescreenVideogamesrequiresuptoi5processor

Products

Coreassets

Variabilityinfo

HDcamerarequiresHDscreen

Selec2onpolicies

cameracanbeeitherHDorSD

Page 5: Prototyping Software Product Lines analysis with Pharo

Featuremodeling

SmartPhone

ScreenCPU Camera AudioI/O Storage

HDSD

BaQery

internalexternalHDSDDoublecapacity

Simplecapacity

Mandatory Op@onal Parentfeature

SubfeaturesXor Or

Allowssomekindofreasoning

Require

Page 6: Prototyping Software Product Lines analysis with Pharo

Somereasoningalgorithms

SmartPhone

ScreenCPU Camera AudioI/O Storage

HDSD

BaQery

internalexternalHDSDDoublecapacity

Simplecapacity

DeadFeaturesSPLvalidity Isavalid

derivableproduct?

Page 7: Prototyping Software Product Lines analysis with Pharo

Reasoningonvariability:exis@ngapproaches

•  MainlySAT/CSPsolvers•  Drawback

– Considerdirectdependenciesonly.– Example:

7

IwantaphonewithanHDcamera.

PLEASE…

Page 8: Prototyping Software Product Lines analysis with Pharo

Exis@ngapproaches:cri@sism

SmartPhone

ScreenCPU Camera AudioI/O Storage

HDSD

BaQery

internalexternalHDSDDoublecapacity

Simplecapacity

Step1:includeparentandrequiredfeatures.Excludealterna@vefeatureStep2:includeparentofCameraStep3:includeallmandatoryfeatures

Step4:includemandatoryfeaturesofBaQeryStep5:includeParentofexternalStep6:includerequiredfeatureofHDsceern

Step7:excludealterna@veofScreen-HD

RECURSIVEManyminutes

Featureknowsallitsdependencies

Page 9: Prototyping Software Product Lines analysis with Pharo

Ourproposal:transi@vedependencies

•  Wepre-computeallthedependenciesofeveryfeature.– ADijkstralikealgorithm

•  Everyfeatureknowsallthefeaturesthatitdirectlyorindirectly:–  requires–  excludes–  Isrequiredby

•  Whenafeatureisset,itsetsallthedependentonesinonestep.

9

Page 10: Prototyping Software Product Lines analysis with Pharo

Oursolu@on

SmartPhone

ScreenCPU Camera AudioI/O Storage

HDSD

BaQery

internalexternalHDSDDoublecapacity

Simplecapacity

Camera-HDtransi@velyrequires:Camera,SmartPhone,AudioI/O,Screen,CPU,BaQery,SimpleCapacity,DoubleCapaciQy,SceenHD,External,Strorage.Camera-HDtransi@velyexcludes:Screen-SD

Onestepinsteadof7steps

Page 11: Prototyping Software Product Lines analysis with Pharo

Aninfrastrucuteforreasoningoflargefeaturemodels

11

X-FAMILIAR:OurlargeSPLsanalysispladorm

TheMooseagilereengineeringpladorm

FAMILIARProject

FMMetamodel

Internal/externalconstraintsvisualiza@ons

ExtendedFMMetamodel

Transi@veSelec@onoperator Dependenciesgenerator Transi@veFeaturesDependencies

RandomFM

sgenerator

DeadFeaturesDetec@on …

Sa@sfiability Op@m

iza@on(GA)

Visualiza@on Visualiza@on

Externalparser/reverseengineeringengine

XMLDescriptor Visual

FMEditor

Falseop@onalsDetec@on

DecisionPropaga@on

Productvalida@on

Page 12: Prototyping Software Product Lines analysis with Pharo

Evalua@onoftheproposal

•  Doalgorithmsbasedontransi@vedependencyperformbeQer(faster)thanexis@ngones?

•  Theop@malfeaturesselec@onproblem(verycomplex)

•  Twoalgorithmsarecompared:– GAofGuoetal– GAbasedontransi@vedependency

12

Page 13: Prototyping Software Product Lines analysis with Pharo

Experimentalresults

0.00

500.00

1000.00

1500.00

2000.00

2500.00

100 200 500 800 1000 2000

13

99%gainof@me

NumberOffeatures

Execu@on@me

Gene@cAlgorithmofGUOetal

Page 14: Prototyping Software Product Lines analysis with Pharo

Someissuesthough

•  NotabletocreateFMlargerthan5000featuresbecausememoryavailabilityproblems–  Spurwillbringasolu@on?

•  Thegene@calgorithmofGuoetalisratherslowcomparedtooneimplementedinotherlanguages(orderofminutes/seconds)–  LiQlecodeop@miza@on–  Themetamodelisperhapsabitcomplex–  maybetheMooseimageandtheVMcomparedtocompiledlanguages

14

Page 15: Prototyping Software Product Lines analysis with Pharo

Futureworks•  Implementtheothertools

–  AgileVisualiza@ons–  Importer/exporter–  Visualeditor–  Reverseengineering–  …

•  Extendthemetamodel–  AQributes–  Complexcrosstreeconstraints

•  Morecomparisons–  Otherreasoningalgorithms–  SAT/CSPalgorithms–  Maybetrysomehybridiza@ons(SATsolverbasedonfeaturedependencies)

•  FinishandDocumenttheGene@cAlgorithmsframwork–  Availableat:hQp://smalltalkhub.com/#!/~Alidra/Gene@cAlgorithmsFramework–  Pleaseuseit/contribute

15

Page 16: Prototyping Software Product Lines analysis with Pharo

16

Thankyou