It has been more than twenty years since the World Wide Web emerged. Nowadays, many kinds of applications utilize the Web. We research on such Web-based applications, in particular Rich Internet Applications and Smartphone applications.
We tackle two problems:
- How to comprehend nondeterministic behavior in Rich Internet Applications
- How to develop easy-to-navigate smartphone applications on the basis of web applications
With the wide spread of smartphones, smartphone applications (SAs) become more popular. Many developers implement SAs on the basis of existing web applications (WAs). To design such applications, developers have to redesign web pages as views of SAs because smartphones have unique characteristics, such as small displays. This redesign is done by looking at each single view, thus developers can hardly comprehend whole transitions in SAs which may lead to SAs that are hard to navigate. Our framework calculates the navigability of SAs and suggests design modifications that improve the navigability. Using our framework, developers can implement easy-to-navigate SAs.
Analyzing Stateful Behavior in Rich Internet Applications
- Nondeterministic behavior: Due to unpredictable elements such as the timing of user interactions and server responses, the behavior of RIAs is hard to understand. It is problematic since, developers need to fully comprehend and control how the RIAs can behave in order to increase the usability and robustness of RIAs.
- Rapid development cycle: Owing to the early releases and frequent specification updates of RIAs, developers rarely write documents and define models that help understanding such nondeterministic and complex behavior.
To address these issues, reverse engineering techniques that extract models from applications can help developers to implement and maintain RIAs. Therefore, we research on static analysis methods to extract a state transition model from the source code of AJAX-based RIAs. However, applications might have unpredictable contexts at runtime, i.e., extracting all possible states of an application might cause a state explosion.
As future work, we intend to construct a method that automatically checks whether an extracted model contains faults relevant to interactions. We will consider applying model checking techniques by defining faults as bug patterns. In addition, for testing the contexts of the applications, we will use execution paths in the extracted models as test cases. Moreover, we want to establish a method to automatically specify and modify code fragments causing these faults.
Supporting View Transition Design of Smartphone Applications on the basis of Web Applications
When implementing functionalities of web applications (WAs) as smartphone applications (SAs), developers have to consider the characteristics of smartphones such as compact displays. To redesign web pages as views of SAs, developers extract important elements and divide elements into multiple smaller views. These operations might omit unextracted links and increase the number of necessary steps to reach a view. Thus, they change the original view transitions of the WA in the SA. Developers tend to neglect the global navigability while looking at each single view. However, this global navigability is important to develop user-friendly SAs.
We propose a framework that calculates the global navigability of SAs and suggests design modifications that improve the global navigability.
First, our framework extracts a page transition model from the WA to provide candidate view transitions in the SA. We provide a graphical interface for developers to design views of the SA on the basis of web pages. Our framework then calculates the global navigability of the SA by using our transition cost formulas. Our framework suggests design modifications, e.g., deleting a redundant link, in order to increase the global navigability. Developers can utilize both, their heuristics and our suggestions, to implement an easy-to-navigate SA.
- Yuta Maezawa (D1)
- Ryo Shimizu (D1)
- Tsutomu Kobayashi (M2)
- Kazuki Nishiura (M1)
- Keiichiro Hoshi (Research Student)
- Kazuki Nishiura, Yuta Maezawa, Fuyuki Ishikawa, Shinichi Honiden, "Supporting View Transition Design of Smartphone Applications Using Web Templates", 12th International Conference on Web Engineering (ICWE'12), July 2012 (to appear).
- Yuta Maezawa, Hironori Washizaki, Shinichi Honiden, "Extracting Interaction-Based Stateful Behavior in Rich Internet Applications", In Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR'12), pp.423-428, March 2012.
- Taku Inoue and Shinichi Honiden, "A Method for Deta-flow Analysis of Business Components", In Proceedings of the 14th International ACM Sigsoft Symposium on Component based Software Engineering (CBSE’11), pp.51-60, June 2011.