Automated variability analysis and testing of an E-commerce site.: an experience report
Sergio Segura, Ana B. Sánchez, Antonio Ruiz-Cortés
Pages: 139-150
doi>10.1145/2642937.2642939
Full text: PDFPDF
In this paper, we report on our experience on the development of La Hilandera, an e-commerce site selling haberdashery products and craft supplies in Europe. The store has a huge input space where customers can place almost three millions of different ... expand
PrefFinder: getting the right preference in configurable software systems
Dongpu Jin, Myra B. Cohen, Xiao Qu, Brian Robinson
Pages: 151-162
doi>10.1145/2642937.2643009
Full text: PDFPDF
Highly configurable software, such as web browsers,databases or office applications, have a large number of preferences that the user can customize, but documentation of them may be scarce or distributed. A user, tester or service technician may have ... expand
MiL testing of highly configurable continuous controllers: scalable search using surrogate models
Reza Matinnejad, Shiva Nejati, Lionel Briand, Thomas Brcukmann
Pages: 163-174
doi>10.1145/2642937.2642978
Full text: PDFPDF
Continuous controllers have been widely used in automotive domain to monitor and control physical components. These controllers are subject to three rounds of testing: Model-in-the-Loop (MiL), Software-in-the-Loop and Hardware-in-the-Loop. In our earlier ... expand
SESSION: Abstraction
Assertion guided abstraction: a cooperative optimization for dynamic partial order reduction
Markus Kusano, Chao Wang
Pages: 175-186
doi>10.1145/2642937.2642998
Full text: PDFPDF
We propose a new method for reducing the interleaving space during stateless model checking of multithreaded C/C++ programs. The problem is challenging because of the exponential growth of possible interleavings between threads. We have developed a new ... expand
Symbolic state validation through runtime data
Yueqi Li, Shing Chi Cheung
Pages: 187-198
doi>10.1145/2642937.2642973
Full text: PDFPDF
Real world programs are typically built on top of many library functions. Symbolic analysis of these programs generally requires precise models of these functions? Application Programming Interfaces (APIs), which are mostly unavailable because these ... expand
Wenhua Yang, Chang Xu, Yepang Liu, Chun Cao, Xiaoxing Ma, Jian Lu
Pages: 199-210
doi>10.1145/2642937.2642999
Full text: PDFPDF
Self-adaptive applications address environmental dynamics systematically. They can be faulty and exhibit runtime errors when environmental dynamics are not considered adequately. It becomes more severe when uncertainty exists in their sensing and adaptation ... expand
SESSION: Components
Automated synthesis and deployment of cloud applications
Roberto Di Cosmo, Michael Lienhardt, Ralf Treinen, Stefano Zacchiroli, Jakub Zwolakowski, Antoine Eiche, Alexis Agahi
Pages: 211-222
doi>10.1145/2642937.2642980
Full text: PDFPDF
Complex networked applications are assembled by connecting software components distributed across multiple machines. Building and deploying such systems is a challenging problem which requires a significant amount of expertise: the system architect must ... expand
Concurrent transformation components using contention context sensors
Erik Österlund, Welf Löwe
Pages: 223-234
doi>10.1145/2642937.2642995
Full text: PDFPDF
Sometimes components are conservatively implemented as thread-safe, while during the actual execution they are only accessed from one thread. In these scenarios, overly conservative assumptions lead to suboptimal performance. The contribution of this ... expand
Assigning time budgets to component functions in the design of time-critical automotive systems
Ernest Wozniak, Marco Di Natale, Haibo Zeng, Chokri Mraidha, Sara Tucci-Piergiovanni, Sebastien Gerard
Pages: 235-246
doi>10.1145/2642937.2643015
Full text: PDFPDF
The adoption of AUTOSAR and Model Driven Engineering (MDE) for the design of automotive software architectures allows an early analysis of system properties and the automatic synthesis of architecture and software implementation. To select and configure ... expand
SESSION: Symbolic execution I
symMMU: symbolically executed runtime libraries for symbolic memory access
Anthony Romano, Dawson R. Engler
Pages: 247-258
doi>10.1145/2642937.2642974
Full text: PDFPDF
Symbolic execution calls for specialized address translation. Unlike a pointer on a traditional machine model, which corresponds to a single address, a symbolic pointer may represent multiple feasible addresses. A symbolic pointer dereference manipulates ... expand
Evaluation of string constraint solvers in the context of symbolic execution
Scott Kausler, Elena Sherman
Pages: 259-270
doi>10.1145/2642937.2643003
Full text: PDFPDF
Symbolic execution tools query constraint solvers for tasks such as determining the feasibility of program paths. Therefore, the effectiveness of such tools depends on their constraint solvers. Most modern constraint solvers for primitive types are efficient ... expand
Incremental symbolic execution for automated test suite maintenance
Sarmad Makhdoom, Muhammad Adeel Khan, Junaid Haroon Siddiqui
Pages: 271-276
doi>10.1145/2642937.2642961
Full text: PDFPDF
Scaling software analysis techniques based on source-code, such as symbolic execution and data flow analyses, remains a challenging problem for systematically checking software systems. In this work, we aim to efficiently apply symbolic execution in ... expand
SESSION: Transformations I
Program analysis for secure big data processing
Julian James Stephen, Savvas Savvides, Russell Seidel, Patrick Eugster
Pages: 277-288
doi>10.1145/2642937.2643006
Full text: PDFPDF
The ubiquitous nature of computers is driving a massive increase in the amount of data generated by humans and machines. Two natural consequences of this are the increased efforts to (a) derive meaningful information from accumulated data and (b) ensure ... expand
Multi-objective optimization in rule-based design space exploration
Hani Abdeen, Dániel Varró, Houari Sahraoui, András Szabolcs Nagy, Csaba Debreceni, Ábel Hegedüs, Ákos Horváth
Pages: 289-300
doi>10.1145/2642937.2643005
Full text: PDFPDF
Design space exploration (DSE) aims to find optimal design candidates of a domain with respect to different objectives where design candidates are constrained by complex structural and numerical restrictions. Rule-based DSE aims to find such candidates ... expand
Bryan Marker, Don Batory, Robert van de Geijn
Pages: 301-312
doi>10.1145/2642937.2642975
Full text: PDFPDF
How do experts navigate the huge space of implementations for a given specification to find an efficient choice with minimal searching? Answer: They use "heuristics" -- rules of thumb that are more street wisdom than scientific fact. We provide a scientific ... expand
SESSION: Change management
Fine-grained and accurate source code differencing
Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, Martin Montperrus
Pages: 313-324
doi>10.1145/2642937.2642982
Full text: PDFPDF
At the heart of software evolution is a sequence of edit actions, called an edit script, made to a source code file. Since software systems are stored version by version, the edit script has to be computed from these versions, which is known as ... expand
Combining rule-based and information retrieval techniques to assign software change requests
Yguaratã Cerqueira Cavalcanti, Ivan do Carmo Machado, Paulo A. da Mota S. Neto, Eduardo Santana de Almeida, Silvio Romero de Lemos Meira
Pages: 325-330
doi>10.1145/2642937.2642964
Full text: PDFPDF
Change Requests (CRs) are key elements to software maintenance and evolution. Finding the appropriate developer to a CR is crucial for obtaining the lowest, economically feasible, fixing time. Nevertheless, assigning CRs is a labor-intensive and time ... expand
Recommendation system for software refactoring using innovization and interactive dynamic optimization
Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide
Pages: 331-336
doi>10.1145/2642937.2642965
Full text: PDFPDF
We propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-dominated ... expand
Recommending refactorings based on team co-maintenance patterns
Gabriele Bavota, Sebastiano Panichella, Nikolaos Tsantalis, Massimiliano Di Penta, Rocco Oliveto, Gerardo Canfora
Pages: 337-342
doi>10.1145/2642937.2642948
Full text: PDFPDF
Refactoring aims at restructuring existing source code when undisciplined development activities have deteriorated its comprehensibility and maintainability. There exist various approaches for suggesting refactoring opportunities, based on different ... expand
Diver: precise dynamic impact analysis using dependence-based trace pruning
Haipeng Cai, Raul Santelices
Pages: 343-348
doi>10.1145/2642937.2642950
Full text: PDFPDF
Impact analysis determines the effects that the behavior of program entities, or changes to them, can have on the rest of the system. Dynamic impact analysis is one practical form that computes smaller impact sets than static alternatives for ... expand
Automating regression verification
Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich
Pages: 349-360
doi>10.1145/2642937.2642987
Full text: PDFPDF
Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present ... expand
SESSION: Variability and configuration
Automated variability analysis and testing of an E-commerce site.: an experience report
Sergio Segura, Ana B. Sánchez, Antonio Ruiz-Cortés Pages: 139-150 doi>10.1145/2642937.2642939 Full text: PDFPDF
In this paper, we report on our experience on the development of La Hilandera, an e-commerce site selling haberdashery products and craft supplies in Europe. The store has a huge input space where customers can place almost three millions of different ... expand
PrefFinder: getting the right preference in configurable software systems
Dongpu Jin, Myra B. Cohen, Xiao Qu, Brian Robinson Pages: 151-162 doi>10.1145/2642937.2643009 Full text: PDFPDF
Highly configurable software, such as web browsers,databases or office applications, have a large number of preferences that the user can customize, but documentation of them may be scarce or distributed. A user, tester or service technician may have ... expand
MiL testing of highly configurable continuous controllers: scalable search using surrogate models
Reza Matinnejad, Shiva Nejati, Lionel Briand, Thomas Brcukmann Pages: 163-174 doi>10.1145/2642937.2642978 Full text: PDFPDF
Continuous controllers have been widely used in automotive domain to monitor and control physical components. These controllers are subject to three rounds of testing: Model-in-the-Loop (MiL), Software-in-the-Loop and Hardware-in-the-Loop. In our earlier ... expand
SESSION: Abstraction
Assertion guided abstraction: a cooperative optimization for dynamic partial order reduction
Markus Kusano, Chao Wang Pages: 175-186 doi>10.1145/2642937.2642998 Full text: PDFPDF
We propose a new method for reducing the interleaving space during stateless model checking of multithreaded C/C++ programs. The problem is challenging because of the exponential growth of possible interleavings between threads. We have developed a new ... expand
Symbolic state validation through runtime data
Yueqi Li, Shing Chi Cheung Pages: 187-198 doi>10.1145/2642937.2642973 Full text: PDFPDF
Real world programs are typically built on top of many library functions. Symbolic analysis of these programs generally requires precise models of these functions? Application Programming Interfaces (APIs), which are mostly unavailable because these ... expand
Verifying self-adaptive applications suffering uncertainty
Wenhua Yang, Chang Xu, Yepang Liu, Chun Cao, Xiaoxing Ma, Jian Lu Pages: 199-210 doi>10.1145/2642937.2642999 Full text: PDFPDF
Self-adaptive applications address environmental dynamics systematically. They can be faulty and exhibit runtime errors when environmental dynamics are not considered adequately. It becomes more severe when uncertainty exists in their sensing and adaptation ... expand
SESSION: Components
Automated synthesis and deployment of cloud applications
Roberto Di Cosmo, Michael Lienhardt, Ralf Treinen, Stefano Zacchiroli, Jakub Zwolakowski, Antoine Eiche, Alexis Agahi Pages: 211-222 doi>10.1145/2642937.2642980 Full text: PDFPDF
Complex networked applications are assembled by connecting software components distributed across multiple machines. Building and deploying such systems is a challenging problem which requires a significant amount of expertise: the system architect must ... expand
Concurrent transformation components using contention context sensors
Erik Österlund, Welf Löwe Pages: 223-234 doi>10.1145/2642937.2642995 Full text: PDFPDF
Sometimes components are conservatively implemented as thread-safe, while during the actual execution they are only accessed from one thread. In these scenarios, overly conservative assumptions lead to suboptimal performance. The contribution of this ... expand
Assigning time budgets to component functions in the design of time-critical automotive systems
Ernest Wozniak, Marco Di Natale, Haibo Zeng, Chokri Mraidha, Sara Tucci-Piergiovanni, Sebastien Gerard Pages: 235-246 doi>10.1145/2642937.2643015 Full text: PDFPDF
The adoption of AUTOSAR and Model Driven Engineering (MDE) for the design of automotive software architectures allows an early analysis of system properties and the automatic synthesis of architecture and software implementation. To select and configure ... expand
SESSION: Symbolic execution I
symMMU: symbolically executed runtime libraries for symbolic memory access
Anthony Romano, Dawson R. Engler Pages: 247-258 doi>10.1145/2642937.2642974 Full text: PDFPDF
Symbolic execution calls for specialized address translation. Unlike a pointer on a traditional machine model, which corresponds to a single address, a symbolic pointer may represent multiple feasible addresses. A symbolic pointer dereference manipulates ... expand
Evaluation of string constraint solvers in the context of symbolic execution
Scott Kausler, Elena Sherman Pages: 259-270 doi>10.1145/2642937.2643003 Full text: PDFPDF
Symbolic execution tools query constraint solvers for tasks such as determining the feasibility of program paths. Therefore, the effectiveness of such tools depends on their constraint solvers. Most modern constraint solvers for primitive types are efficient ... expand
Incremental symbolic execution for automated test suite maintenance
Sarmad Makhdoom, Muhammad Adeel Khan, Junaid Haroon Siddiqui Pages: 271-276 doi>10.1145/2642937.2642961 Full text: PDFPDF
Scaling software analysis techniques based on source-code, such as symbolic execution and data flow analyses, remains a challenging problem for systematically checking software systems. In this work, we aim to efficiently apply symbolic execution in ... expand
SESSION: Transformations I
Program analysis for secure big data processing
Julian James Stephen, Savvas Savvides, Russell Seidel, Patrick Eugster Pages: 277-288 doi>10.1145/2642937.2643006 Full text: PDFPDF
The ubiquitous nature of computers is driving a massive increase in the amount of data generated by humans and machines. Two natural consequences of this are the increased efforts to (a) derive meaningful information from accumulated data and (b) ensure ... expand
Multi-objective optimization in rule-based design space exploration
Hani Abdeen, Dániel Varró, Houari Sahraoui, András Szabolcs Nagy, Csaba Debreceni, Ábel Hegedüs, Ákos Horváth Pages: 289-300 doi>10.1145/2642937.2643005 Full text: PDFPDF
Design space exploration (DSE) aims to find optimal design candidates of a domain with respect to different objectives where design candidates are constrained by complex structural and numerical restrictions. Rule-based DSE aims to find such candidates ... expand
Understanding performance stairs: elucidating heuristics
Bryan Marker, Don Batory, Robert van de Geijn Pages: 301-312 doi>10.1145/2642937.2642975 Full text: PDFPDF
How do experts navigate the huge space of implementations for a given specification to find an efficient choice with minimal searching? Answer: They use "heuristics" -- rules of thumb that are more street wisdom than scientific fact. We provide a scientific ... expand
SESSION: Change management
Fine-grained and accurate source code differencing
Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, Martin Montperrus Pages: 313-324 doi>10.1145/2642937.2642982 Full text: PDFPDF
At the heart of software evolution is a sequence of edit actions, called an edit script, made to a source code file. Since software systems are stored version by version, the edit script has to be computed from these versions, which is known as ... expand
Combining rule-based and information retrieval techniques to assign software change requests
Yguaratã Cerqueira Cavalcanti, Ivan do Carmo Machado, Paulo A. da Mota S. Neto, Eduardo Santana de Almeida, Silvio Romero de Lemos Meira Pages: 325-330 doi>10.1145/2642937.2642964 Full text: PDFPDF
Change Requests (CRs) are key elements to software maintenance and evolution. Finding the appropriate developer to a CR is crucial for obtaining the lowest, economically feasible, fixing time. Nevertheless, assigning CRs is a labor-intensive and time ... expand
Recommendation system for software refactoring using innovization and interactive dynamic optimization
Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide Pages: 331-336 doi>10.1145/2642937.2642965 Full text: PDFPDF
We propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-dominated ... expand
Recommending refactorings based on team co-maintenance patterns
Gabriele Bavota, Sebastiano Panichella, Nikolaos Tsantalis, Massimiliano Di Penta, Rocco Oliveto, Gerardo Canfora Pages: 337-342 doi>10.1145/2642937.2642948 Full text: PDFPDF
Refactoring aims at restructuring existing source code when undisciplined development activities have deteriorated its comprehensibility and maintainability. There exist various approaches for suggesting refactoring opportunities, based on different ... expand
Diver: precise dynamic impact analysis using dependence-based trace pruning
Haipeng Cai, Raul Santelices Pages: 343-348 doi>10.1145/2642937.2642950 Full text: PDFPDF
Impact analysis determines the effects that the behavior of program entities, or changes to them, can have on the rest of the system. Dynamic impact analysis is one practical form that computes smaller impact sets than static alternatives for ... expand
Automating regression verification
Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, Mattias Ulbrich Pages: 349-360 doi>10.1145/2642937.2642987 Full text: PDFPDF
Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present ... expand