Bootstrapping Library-Based Synthesis

Constraint-based program synthesis techniques have been widely used in numerous settings. However, synthesizing programs that use libraries remains a major challenge. To handle complex or black-box libraries, the state of the art is to provide carefully crafted mocks or models to the synthesizer, requiring extra manual work. We address this challenge by proposing Toshokan, a new synthesis framework as an alternative approach in which library-using programs can be generated without any user-provided artifacts at the cost of moderate performance overhead.

Continue reading

Root Cause Analysis of Failures in Microservices through Causal Discovery

Most cloud applications use a large number of smaller sub-components (called microservices) that interact with each other in the form of a complex graph to provide the overall functionality to the user. While the modularity of the microservice architecture is beneficial for rapid software development, maintaining and debugging such a system quickly in cases of failure is challenging.

Continue reading

Challenges in Engineering Secure Software Systems

Software security is a growing concern leading to the increasing adoption of a secure by design approach to software development. In such approach, software systems are designed from the ground up to be resilient against attacks. Despite the growing efforts into addressing security concerns early on during software development, mistakes can be made that lead to vulnerabilities (“software weaknesses*).

Continue reading