Refactoring: from Concurrency to Mobility,
Prof Danny Dig
Abstract: Change is the heart of software development. As new platforms appear, some batch systems have been retrofitted with first a web interface, then a web service interface, and now interfaces to mobile devices. Unfortunately, programmers perform most software changes manually, through low-level text edits, which are almost never reused. This makes software development time-consuming, error-prone, and expensive. It is widely known that at least two-thirds of software costs are due to evolution, with some industrial surveys claiming 90%.
In this talk I will present our ever-growing toolset of interactive program transformations. It currently automates changes from the domains of parallelism, software upgrades, testing, and end-user programming. I will muse on lessons that can be learned as we move onto automated transformations for mobility.
Bio: Danny Dig is an assistant professor of Computer Science in the School of EECS at Oregon State University. He enjoys doing research in Software Engineering in general and interactive program transformations in particular. His research goal is to enable programmers to interactively and safely change large programs. He earned his PhD from the University of Illinois at Urbana-Champaign where his research won the best PhD dissertation award, and the First Prize at the ACM Student Research Competition Grand Finals. He did a postdoc at MIT where he opened the area of interactive transformations for parallelism. He (co-)authored 35+ journal and conference papers that appeared in top places in SE/PL. According to Google Scholar his publications have been cited 1,200+ times. He released 9 software systems, among them the world's first open-source refactoring tool, downloaded over 17,000 times. Some of the techniques he developed are shipping with the official release of the popular Eclipse and NetBeans development environments, and are used by millions of Java programmers everyday. He has started two popular workshops: Workshop on Refactoring Tools, and Hot Topics On Software Upgrades. Both are now in their fifth year. He chaired or co-organized 11 workshops, and served as a member of 28 program or review committees for all top conferences in his area. His research is funded by NSF, Boeing, IBM, Intel, and Microsoft.
Devices and Services Meet Mobile Development,
Dr. Judith Bishop, Microsoft Research
Abstract: Over the past decade, devices such as phones, tablets, entertainment systems and sensor gadgets have moved completely into the computer ecosphere. At the same time, software, both new and old, has become available on all of these diverse platforms as well as traditional PCs and servers. What does this mean for software development at all levels - requirements, engineering, testing, languages? Having been involved in some recent projects that seek to create multiplatform software, I'll share some of the successes and challenges, and point to directions for the future. I'll discuss the reliance we place on browsers as "baseware" on which to host software - and the implications this has for languages and development practice. Finally I'll look at the impact of the increasing development of APIs, even by students and newcomers to software design. I'll draw examples from TouchDevelop, Gadgeteer, Engduino and Lab of Things.
Automated Testing of Graphical User Interfaces: a New Algorithm and Challenges,
Abstract: Smartphones and tablets with rich graphical user interfaces are becoming increasingly popular. Hundreds of thousands of specialized applications, called apps, are available for such mobile platforms. Manual testing is the most popular technique for testing graphical user interfaces of such apps. Manual testing is often tedious and error-prone.
In this talk I will describe a new automated technique, called SwiftHand, for generating sequences of test inputs for Android apps. The technique gradually learns a behavioral model of the target app during testing, uses the learned model to generate user inputs that visit unexplored states of the app, and uses the execution of the app on the generated inputs to refine the model. The technique is inspired by Angluin's L* active learning algorithm and is designed to minimize the cost of learning. The second half of the talk will be focused on challenges to implements this technique for the Android mobile platform.
Bio: Wontae Choi is a Ph.D student at UC-Berkeley, working with Professor Koushik Sen and Professor George Necula. His current research interests include static analysis and dynamic analysis, currently with applications to testing graphical user interfaces (GUI). He obtained his MS in Computer Science from Seoul National University in 2010.