10:30-11:30, Wed. 24 April
Jonathan Sprinkle (University of Arizona)
Target Audience: Software engineers, UML users
This tutorial is a step-by-step approach to understanding software used by mobile devices, within the context of model-based design. Mobile device apps are widely viewed as a success, but even successful developers who attempt to program these devices using their existing knowledge may be daunted by the new terminology and unclear starting points. This is due to the informal nature of the documentation, which is potentially advantageous to novice coders, but which can be frustrating to experienced coders, who want to know how to map their current knowledge to these new platforms and APIs.
This tutorial focuses on performing this mapping, and explicitly aims to help make these devices and their APIs accessible in terms of the high-level models that govern their behaviors and many of their designs. Participants who want to learn about the high-level software concepts in mobile device programming, and how those concepts map to canonical UML models will benefit from the presentation of those concepts as part of the tutorial.
The following list of topics will be covered and feature prominently during the tutorial:
- Common mobile software patterns. Model-View- Controller, Delegate, and other design patterns.
- UML-based mobile software models. The majority of the documentation in both Android and iOS uses only informal models. The tutorial will repackage many high-level architectures as UML models, which makes them more accessible.
- Mapping common behaviors to architectures and pat- terns. Nearly everyone has seen how mobile apps can utilize gestures and respond to screen rotation informa- tion. This section will focus on what portions of the design implement these desired behaviors.
- Utilizing sensors. GPS, accelerometers, gyroscopes, cameras: all of these sensors are accessed through various design patterns, and this tutorial will discuss those patterns within the context of UML diagrams.
- Data models Using the data models as prescribed by the iOS and Android APIs means the ability to rapidly use various visualization and editing classes. This portion of the tutorial will discuss how such designs can be used to rapidly take advantage of these built-in features.
- Integration with software synthesis tools. The final portion of the tutorial addresses how domain-specific modeling and other tools can be used to synthesize some (or all) of the code required to go from models to mobile devices.
Before you arrive
If you are participating in this tutorial, please visit http://www2.engr.arizona.edu/~sprinkjm/research/mobile/index.php/ECBS2013/HomePage in order to download and install software necessary for you to write the examples and follow the steps during the tutorial.
About the Speaker
Dr. Jonathan Sprinkle is an Assistant Professor of Electrical and Computer Engineering at the University of Arizona. In 2013 he received the NSF CAREER award, and in 2009, he received the UA's Ed and Joan Biggers Faculty Support Grant for work in autonomous systems. In 2005, Dr. Sprinkle was selected as one of 108 Regional Finalists for 11-19 highly competitive positions of White House Fellow. Until June 2007, he was the Executive Director of the Center for Hybrid and Embedded Software Systems at the University of California, Berkeley.
His research is in the area of intelligent autonomous systems, including UAVs, UGVs, and hybrid systems. Building blocks for this are in domain-specific modeling, metamodeling, and generative programming. Dr. Sprinkle was the co-Team Leader of the Sydney-Berkeley Driving Team, a collaborative entry into the DARPA Urban Challenge with partners Sydney University, University of Technology, Sydney, and National ICT Australia (NICTA). In 2004, he led a team from UC Berkeley which autonomously flew against an Air Force pilot in autonomous pursuit/evasion games in the Mojave Desert at Edwards Air Force Base (the UAV successfully targeted the human pilot). In his teaching career spanning Arizona, Berkeley, and Vanderbilt, he has taught or largely assisted in the graduate courses on mobile phone software design, hybrid systems, unmanned systems, and model-integrated computing.
Dr. Sprinkle graduated with the Ph.D. from Vanderbilt University in August 2003, and with his M.S. in August 2000. He graduated with his BSEE in cursu honorum, cum laude, from Tennessee Tech University in Cookeville, TN, in May 1999, where he was the first graduate of the Computer Engineering program, and the first Electrical Engineering double major.