Workshop on Mobile and Rich Internet Application Model Generation

Two relatively recent developments are drastically changing the way software applications are created, deployed, and used by end-users. The first one is coined "Rich Internet Applications" (RIA). Over the past 10 years, Web-based applications have become the norm. They are easy to deploy and update, since virtually every users have a Web browser installed in their system. However, until recently, the user experience was not as smooth as it could have been with a desktop application. This was changed with the adoption of RIA, where the client-side communicates asynchronously with the server, and updates parts of the user interface in the browser partially as needed. RIA's enable moving away from the static page-sequence model of traditional web applications, and as such, provide a tremendous gain in end-user experience. A RIA "feels" like a desktop application, without the hassle of installation and upgrade. This revolutionizes the way software applications are engineered, providing relative platform-independence at low cost for software engineers. Meanwhile, another more recent evolution in computing is the move to everything mobile. According to recent estimations, by 2015 over 70 percent of all handset shipments will be smartphones, capable of running mobile applications. With smartphones as powerful as desktop computers, extensive fast network connection, excellent graphical display and access to sensors that open the door to new, richer software, mobile applications are bound to replace traditional desktop applications in the coming years. Currently, there are over 600,000 mobile applications on Apple's AppStore and more than 400,000 on Android Market. Some of the challenges involved in mobile application development include handling different devices, multiple operating systems (Android, Apple iOS, Windows Mobile), and different programming languages (Java, Objective-C, Visual C++). Moreover, mobile applications are developed mostly in small-scale, fast-paced projects to meet the competitive market demands. Also, the fact that it can take up to a week for a deployed application to get updated (e.g., on AppStore), puts an indirect pressure on developers to understand and check the quality of their applications before deployment. With the ever increasing demands of Web and smartphone users for dependable new applications, novel software engineering techniques and tools geared towards the Web and mobile platforms are required to support developers in their program comprehension, maintenance, analysis and testing tasks. The challenges of analyzing these applications include: • RIAs are known to be challenging to crawl automatically. A web application that cannot be crawled cannot be indexed, and thus is not searchable. In fact, most of generated RIA content ends up in the hidden-web currently, which hinders the end-user's ability to find the corresponding information using general search engines. • Mobile and rich internet applications are difficult to analyze and model automatically. An application that cannot be modeled accurately cannot be tested for functional properties, or nonfunctional properties such as security and usability. Without dedicated analysis techniques and tools, we risk flooding the market with poorly engineered software, at great cost for all of us.