14/10/2014 Outline SPLConfig: Product Configuration in Software Product Line Lucas Machado, Juliana Pereira, Lucas Garcia, Eduardo Figueiredo Computer Science Department Federal University of Minas Gerais, Brazil Belo Horizonte - May 6, 2014 Introduction and Motivation Problem Description and Goal SPL Management Tools SPLConfig Tool Computational Results Related Work Conclusion and Future Work Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ Introduction Motivation Software Product Line (SPL) 2 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ How to develop customized systems… Portfolio of similar products Examples: cars, cell phones, cameras, systems …at low cost? …with short time to market? …at desired quality? 4 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 3 Software Product Line Domain Engineering Two development processes Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 5 Responsible for defining the commonality and variability of the SPL Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 6 1 14/10/2014 Application Engineering Search-Based Software Engineering Ability of a product to be configured, customized, extended, or changed for use Optimization techniques are used to address problems in software engineering Search-based techniques in SPL Manual Product Configuration Problem Description and Goal Complex process Time-consuming task Error-prone task 7 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ Constraint Satisfaction Problem (CSP), Binary Decision Diagrams (BDD), SAT solvers… Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 8 SPL Management Tools There are still a lack of support for businesses during product configuration to the customer Propose an automatic product configuration method using search-based techniques Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 9 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 10 Chosen Tool Automatic organization of the features Shortcuts for the mostly used functions Save multiple product configurations Integration with others tools Code generation The Proposed Approach Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 11 FeatureIDE is extended to provide support to customer requirements The problem is modeled as an optimization problem Search-based algorithm is proposed Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 12 2 14/10/2014 SPLConfig SPLConfig Architecture Derive an optimized feature selection that satisfies a set of customer requirements Eclipse plugin implemented in Java Requires one additional plugin: FeatureIDE 2 3 1 13 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ SPLConfig View in the Eclipse IDE Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 14 SPLConfig Main View B A D C Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 15 SPLConfig Preference Page Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 16 Computational Results Core 2 Duo E7500, 2.93 GHz 3 GB of RAM memory and 3 MB of cache Algorithms implemented in Java Algorithms compiled with Eclipse (version X.X). Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 17 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 18 3 14/10/2014 Benchmark instances Feature Model Mobile Media Email System Smart Home Devolution Gasparc Web Portal FraSCAti Model Transformation Battle of Tanks e-Shop Greedy Heuristic Algorithm |V| |E| |M| |O| #xor #or height 17 23 28 32 1 0 3 0 8 3 3 11 4 3 4 6 #conf 9 20 25 21 1 1 1 1 1 0 1 4 126 5.632 182.280 19.656 38 0 43 6 63 28 89 0 144 0 23 15 9 34 19 44 19 70 8 136 4 3 2 11 9 1 3 0 14 1 6 352 5 2.120.800 5 > 1×109 8 > 1×109 4 > 1×109 213 32 74 139 0 43 8 What are the gains in terms of performance produced by the greedy heuristic? FM Mobile Media Email System Smart Home Devolution Gasparc Web Portal FraSCAti Model Transformation Battle of Tanks e-Shop > 1×109 http://homepages.dcc.ufmg.br/~juliana.pereira/SPLConfig ࡿ∗ 320 200 780 840 460 1.280 *1.320 620 *1.080 *2.420 H 320 200 760 840 460 1.280 1.360 620 1.240 2.540 GAP Time (ms) 0% 0,35 0% 0,21 3% 1,41 0% 1,98 0% 0,81 0% 2,05 -3% 3,26 0% 0,93 -15% 1,63 -5% 6,07 * Better solution found up to 7200000 milliseconds (not optimal solutions). Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 19 Related Work SPLConfig: extension of the FeatureIDE tool with a decision support tool for business that reduces the effort required for product configuration. Modeling of the problem as an optimization problem and proposition of a heuristic algorithm to be integrated with the tool. Extension of the algorithm to include nonfunctional features, consider “feature interaction”, and to recommend feature(s) for a product upgrade. Van Deursen and Klint, 2002; Mannion, 2002 Botterweck et al., 2007; Mendonça et al., 2009; Thüm et al., 2014 Exact algorithms Benavides et al., 2005 White et al., 2009 Bagheri et al., 2010 Approximate algorithms Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 20 Conclusion and Future Work Search-based techniques to address SPL product configuration problems Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 21 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 22 Further Information Machado, L., Pereira, J., Garcia, L. and Figueiredo, E. (2014). SPLConfig: Product Configuration in Software Product Line. In: Congresso Brasileiro de Software (CBSoft), Sessão de Ferramentas, 2014, Maceio: SBC, 2014. v. 1. p. 1-8. Pereira, J., Figueiredo, E., and Noronha, T. F. (2013). Modelo Computacional para Apoiar a Configuração de Produtos em Linha de Produtos de Software. In: Workshop de Engenharia de Software Baseada em Busca (WESB), co-located at CBSoft. Pereira, J., Souza, C. G., Figueiredo, E., Abilio, R., Vale, G., and Costa, H. (2013). Software Variability Management: An Exploratory Study with Two Feature Modeling Tools. In: Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), co-located at CBSoft. Thank you! lucasmdo@dcc.ufmg.br Jualvespeira@gmail.com lucas.sg@dcc.ufmg.br figueiredo@dcc.ufmg.br Pereira, J. and Figueiredo, E. (2013). Configuração de Produtos em Linha de Produtos de Software. In: Workshop de Teses e Dissertações do CBSoft (WTDSoft), co-located at CBSoft. Pereira, J., Figueiredo, E., and Costa, H. (2012). Linha de Produtos de Software: Conceitos e Ferramentas. In: VII Escola Regional de Informática de Minas Gerais (ERI-MG), co-located at SMC. Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 23 Software Engineering Lab (LabSoft) http://labsoft.dcc.ufmg.br/ 4