prototyping software product lines analysis with pharo
TRANSCRIPT
PrototypingSo,wareproductlines
withPharo
AbdelghaniAlidraBadjiMokhtaruniversity-Algeria
Aboutmeandthisproject
• IamdoingPhdonSo,warerun@meadapta@on– basedonSo,wareProductLines(SPL)– prototypenewalgorithmsforSPL-basedadapta@onplanning
– focusonscalabilityissues– enlargetheprojecttoreasoningonfeaturesmodelusingdependenciesbetweenfeatures.
→AsimpleAPItodocomplexreasoningalgos
2
So,wareProductLines
• Isanothersteptowardstheindustrializa@onofso,waredevelopment.
• Addressesapar@cularmarketsegmentordomain• Automo@ve(Renault)• SmartPhones(Nokia)• ….
• Canhaveimpressiveimpactoncostsanddelays• Iftherearealotofproductsthatvarybysome
aspectsbutthatsharemanycomponents
clientsVariabilityinforma@on
So,wareFactory
4
Allphonesmosthaveabatery,asceen,amic…
BaQerylifeexcludelargescreenVideogamesrequiresuptoi5processor
Products
Coreassets
Variabilityinfo
HDcamerarequiresHDscreen
Selec2onpolicies
cameracanbeeitherHDorSD
Featuremodeling
SmartPhone
ScreenCPU Camera AudioI/O Storage
HDSD
BaQery
internalexternalHDSDDoublecapacity
Simplecapacity
Mandatory Op@onal Parentfeature
SubfeaturesXor Or
Allowssomekindofreasoning
Require
Somereasoningalgorithms
SmartPhone
ScreenCPU Camera AudioI/O Storage
HDSD
BaQery
internalexternalHDSDDoublecapacity
Simplecapacity
DeadFeaturesSPLvalidity Isavalid
derivableproduct?
Reasoningonvariability:exis@ngapproaches
• MainlySAT/CSPsolvers• Drawback
– Considerdirectdependenciesonly.– Example:
7
IwantaphonewithanHDcamera.
PLEASE…
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
Ourproposal:transi@vedependencies
• Wepre-computeallthedependenciesofeveryfeature.– ADijkstralikealgorithm
• Everyfeatureknowsallthefeaturesthatitdirectlyorindirectly:– requires– excludes– Isrequiredby
• Whenafeatureisset,itsetsallthedependentonesinonestep.
9
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
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
Evalua@onoftheproposal
• Doalgorithmsbasedontransi@vedependencyperformbeQer(faster)thanexis@ngones?
• Theop@malfeaturesselec@onproblem(verycomplex)
• Twoalgorithmsarecompared:– GAofGuoetal– GAbasedontransi@vedependency
12
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
Someissuesthough
• NotabletocreateFMlargerthan5000featuresbecausememoryavailabilityproblems– Spurwillbringasolu@on?
• Thegene@calgorithmofGuoetalisratherslowcomparedtooneimplementedinotherlanguages(orderofminutes/seconds)– LiQlecodeop@miza@on– Themetamodelisperhapsabitcomplex– maybetheMooseimageandtheVMcomparedtocompiledlanguages
14
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
16
Thankyou