Searching for the User Interface: First Steps


March 27, 2014


Steven Reiss


Brown University


User interface code can be complex and buggy. Moreover, designing user-friendly interfaces can be difficult. One way around this is to reuse interfaces others have written and tested. We are developing a framework whereby the user provides a sketch of the desired interface and we use code search over open source repositories to find existing user implementations that have an interface similar to the sketch. The tool we have developed extracts user interfaces from the open source applications, matches them against the user’s sketch, lets the programmer interact with the results, supports minor editing of the results, and then returns working code for any selected interfaces.

This talk will show the underlying test-based code search tool, demonstrate our new front end for investigating search results using various search engines, and describe the techniques used to analyze the user’s sketch, extract runnable user interface code from the results of code search, match the interfaces to the user’s sketch, and provide an interactive and editable view of the result.


Steven Reiss

Steven Reiss is Professor of Computer Science in the Computer Science Department at Brown University. He has been a member of the Brown faculty since 1977. He is the author of numerous papers in journals and proceedings as well as two books. He has served on a variety of conference program committees for SIGPLAN, SIGSOFT, and IEEE. He has written several software systems that have been widely distributed outside of Brown.

Dr. Reiss’s research interests and expertise center around programming, in particular making programming simpler and more understandable. He has done extensive research in the areas of programming tools and environments as well as program visualization. He has also done work on message-based integration, program design, databases, and the debugging, testing and checking of complex systems.

Current research by Dr. Reiss includes a novel approach to code search based on test cases and other semantic properties, work on the visualization and analysis of the dynamics of complex software systems, and Code Bubbles, a working-set based user interfaces for programming environments. For more information look at