Powered by
31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016),
September 3–7, 2016,
Singapore, Singapore
Doctoral Symposium
Towards Efficient and Effective Automatic Program Repair
Xuan-Bach D. Le
(Singapore Management University, Singapore)
Automatic Program Repair (APR) has recently been an emerging
research area, addressing an important challenge in software engi-
neering. APR techniques, if effective and efficient , can greatly help
software debugging and maintenance. Recently proposed APR tech-
niques can be generally classified into two families, namely search-
based and semantics-based APR methods. To produce repairs, search-
based APR techniques generate huge populations of possible re-
pairs, i.e., search space, and lazily search for the best one among
the search space. Semantics-based APR techniques utilize con-
straint solving and program synthesis to make search space more
tractable, and find those repairs that conform to semantics con-
straints extracted via symbolic execution. Despite recent advances
in APR, search-based APR still suffers from search space explo-
sion problem, while the semantics-based APR could be hindered
by limited capability of constraint solving and program synthesis.
Furthermore, both APR families may be subject to overfitting, in
which generated repairs do not generalize to other test sets.
This thesis works towards enhancing both effectiveness and ef-
ficiency in order for APR to be practically adopted in foreseeable
future. To achieve this goal, other than using test cases as the pri-
mary criteria for traversing the search space, we designed a new
feature used for a new search-based APR technique to effectively
traverse the search space, wherein bug fix history is used to evaluate
the quality of repair candidates. We also developed a deductive-
reasoning-based repair technique that combines search-based and
semantics-based approaches to enhance the repair capability, while
ensuring the soundness of generated repairs. We also leveraged
machine-learning techniques to build a predictive model that pre-
dicts whether an APR technique is effective in fixing particular
bugs. In the future, we plan to synergize many existing APR tech-
niques, improve our predictive model, and adopt the advances of
other fields such as test case generation and program synthesis for
APR.
@InProceedings{ASE16p876,
author = {Xuan-Bach D. Le},
title = {Towards Efficient and Effective Automatic Program Repair},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {876--879},
doi = {},
year = {2016},
}
Info
Automated Testing and Notification of Mobile App Privacy Leak-Cause Behaviours
Joseph Chan Joo Keng
(Singapore Management University, Singapore)
I describe the design, implementation and evaluation of a novel hybrid static/dynamic analysis system for automatically uncovering and testing for the user-triggered causes and paths of privacy leaks in Android applications (privacy 'leak-causes'). I describe how I plan to further evaluate and demonstrate improvements in accuracy, coverage and testing speed of my hybrid testing approach against other currently available systems. I also show how user privacy is improved by the presentation of information on leak-causes in a field study as privacy notices. I present plans to investigate which of the commonly utilized mobile notification mechanisms is best suited to the presentation of leak-causes, as well as how users may set better privacy control policies with the information provided.
@InProceedings{ASE16p880,
author = {Joseph Chan Joo Keng},
title = {Automated Testing and Notification of Mobile App Privacy Leak-Cause Behaviours},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {880--883},
doi = {},
year = {2016},
}
Factoring Requirement Dependencies in Software Requirement Selection using Graphs and Integer Programming
Davoud Mougouei
(Flinders University, Australia)
Software requirement selection is to find a subset of requirements (so-called optimal set) that gives the highest customer value for a release of software while keeping the cost within the budget. Several industrial studies however, have demonstrated that requirements of software projects are intricately interdependent and these interdependencies impact the values of requirements. Furthermore, the strengths of dependency relations among requirements vary in the context of real-world projects. For instance, requirements can be strongly or weakly interdependent. Therefore, it is important to consider both the existence and the strengths of dependency relations during requirement selection. The existing selection models however, have ignored either requirement dependencies altogether or the strengths of those dependencies. This research proposes an Integer programming model for requirement selection which considers both the existence and strengths of requirement dependencies. We further contribute a graph-based dependency modeling technique for capturing requirement dependencies and the their corresponding strengths. Automated/semi-automated techniques will also be devised to identify requirement dependencies and the strengths of those dependencies.
@InProceedings{ASE16p884,
author = {Davoud Mougouei},
title = {Factoring Requirement Dependencies in Software Requirement Selection using Graphs and Integer Programming},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {884--887},
doi = {},
year = {2016},
}
Statistical Analysis of Large Sets of Models
Önder Babur
(Eindhoven University of Technology, Netherlands)
Many applications in Model-Driven Engineering involve processing multiple models, e.g. for comparing and merging of model variants into a common domain model. Despite many sophisticated techniques for model comparison, little attention has been given to the initial data analysis and filtering activities. These are hard to ignore especially in the case of a large dataset, possibly with outliers and sub-groupings. We would like to develop a generic approach for model comparison and analysis for large datasets; using techniques from information retrieval, natural language processing and machine learning. We are implementing our approach as an open framework and have so far evaluated it on public datasets involving domain analysis, repository management and model searching scenarios.
@InProceedings{ASE16p888,
author = {Önder Babur},
title = {Statistical Analysis of Large Sets of Models},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {888--891},
doi = {},
year = {2016},
}
Developer Targeted Analytics: Supporting Software Development Decisions with Runtime Information
Jürgen Cito
(University of Zurich, Switzerland)
Runtime information of deployed software has been used by business and operations units to make informed decisions under the term ``analytics". However, decisions made by software engineers in the course of evolving software have, for the most part, been based on personal belief and gut-feeling. This could be attributed to software development being, for the longest time, viewed as an activity that is detached from the notion of operating software in a production environment. In recent years, this view has been challenged with the emergence of the DevOps movement, which aim is to promote cross-functional capabilities of development and operations activities within teams. This shift in process and mindset requires analytics tools that specifically target software developers.
In this research, I investigate approaches to support developers in their decision-making by incorporating runtime information in source code and provide live feedback in IDEs by predicting the impact of code changes.
@InProceedings{ASE16p892,
author = {Jürgen Cito},
title = {Developer Targeted Analytics: Supporting Software Development Decisions with Runtime Information},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {892--895},
doi = {},
year = {2016},
}
API Recommendation System for Software Development
Ferdian Thung
(Singapore Management University, Singapore)
Nowadays, software developers often utilize existing third
party libraries and make use of Application Programming
Interface (API) to develop a software. However, it is not
always obvious which library to use or whether the chosen
library will play well with other libraries in the system. Furthermore, developers need to spend some time to understand
the API to the point that they can freely use the API methods and putting the right parameters inside them. In this
work, I plan to automatically recommend relevant APIs to
developers. This API recommendation can be divided into
multiple stages. First, we can recommend relevant libraries
provided a given task to complete. Second, we can recommend relevant API methods that developer can use to
program the required task. Third, we can recommend correct parameters for a given method according to its context.
Last but not least, we can recommend how different API
methods can be combined to achieve a given task.
In effort to realize this API recommendation system, I
have published two related papers. The first one deals with
recommending additional relevant API libraries given known
useful API libraries for the target program. This system
can achieve recall rate@5 of 0.852 and recall rate@10 of
0.894 in recommending additional relevant libraries. The
second one deals with recommending relevant API methods
a given target API and a textual description of the task.
This system can achieve recall-rate@5 of 0.690 and recallrate@10 of 0.779. The results for both system indicate that
the systems are useful and capable in recommending the
right API/library reasonably well. Currently, I am working
on another system which can recommend web APIs (i.e.,
libraries) given a description of the task. I am also working on a system that recommends correct parameters given
an API method. In the future, I also plan to realize API
composition recommendation for the given task
@InProceedings{ASE16p896,
author = {Ferdian Thung},
title = {API Recommendation System for Software Development},
booktitle = {Proc.\ ASE},
publisher = {ACM},
pages = {896--899},
doi = {},
year = {2016},
}
proc time: 1.09