Raluca Sauciuc

Learn More
With a large and rapidly changing codebase, Google software engineers are constantly paying interest on various forms of technical debt. Google engineers also make efforts to pay down that debt, whether through special Fixit days, or via dedicated teams, variously known as janitors, cultivators, or demolition experts. We describe several related efforts to(More)
A <i>(build) target</i> specifies the information that is needed to automatically build a software artifact. This paper focuses on <i>underutilized targets</i>---an important dependency problem that we identified at Google. An underutilized target is one with files not needed by some of its dependents. Underutilized targets result in less modular code,(More)
Large software companies need customized tools to manage their source code. These tools are often built in an ad-hoc fashion, using brittle technologies such as regular expressions and home-grown parsers. Changes in the language cause the tools to break. More importantly, these ad-hoc tools often do not support uncommon-but-valid code code patterns. We(More)
The typical debugging experience is an iterative process of setting breakpoints, running the program and inspecting the state until the source of the bug is identified. When re-executing the program is not guaranteed to reproduce the faulty execution path, the final state and the system logs can be used to mentally construct a model of the execution. By(More)
A (build) target specifies the information that is needed to automatically build a software artifact. This paper focuses on underutilized targets—an important dependency problem that we identified at Google. An underutilized target is one with files not needed by some of its dependents. Underutilized targets result in less modular code, overly large(More)
We present a dynamic control-flow analysis and state classifier for graphical user interfaces. Search engines, end-user programming interfaces, and automated testers exploit such information, but are challenged by clientside and serverside scripts obscuring it: our analysis succeeds on popular web applications that contain both. We further motivate such(More)
  • 1