|
||||
T1: Automatic Generation of Benchmark and Test Workloads T2: Requirements Meet Interaction Design T3: Software Engineering for Mobile Application Development
DETAILS
T1: Automatic Generation of Benchmark and Test Workloads Motivation It is realistic to expect that the majority of future benchmark and test workloads will be automatically generated using benchmark program generators. According to Moore's law the memory capacity and the performance/price ratio exponentially grow doubling each 12-18 months. Consequently, industrial benchmarks that are used for measuring computer performance should continuously and strictly follow the exponential growth of computer performance. That goal cannot be achieved using natural workloads that are updated once in several years. In addition, natural workloads have fixed structure, fixed size, and no adjustable parameters. As opposed to that, automatic workload generators have adjustable parameters that are used to select a desired structure, character and size of workload according to specific user needs. Such generators are crucial for computer performance measurement and evaluation, software testing, and for performance analysis of modern language processors. Tutorial goals The goal of this tutorial is to present methods and tools for automatic generation of benchmark and test workloads. In addition, the tutorial will include live demos of automatic generation of large programs (2 million LOC), program calibration, and the use of generated programs for performance analysis of modern compilers. For software engineers, developers, and researchers this tutorial also provides techniques for optimizing software performance by optimum selection and tuning of language processors. Tutorial outline (3 hr. presentation) 1. Static and dynamic characterization of computer workloads
T2: Requirements Meet Interaction Design Topics The main topics of this tutorial are requirements and interaction design, as well as their joint modeling through discourse models and ontologies. Our discourse models are derived from results of human communication theories, cognitive science and sociology (even without employing speech or natural language). While these models were originally devised for capturing interaction design, it turned out that they can be also viewed as specifying classes of scenarios, i.e., use cases. In this sense, they can also be utilized for specifying requirements. Ontologies are used to define domain models and the domains of discourse for the interactions with software systems. User interfaces for these software systems can be generated semi-automatically from our discourse models, domain of discourse models and specifications of the requirements. This is especially useful when user interfaces for different devices are needed. So, requirements meet interaction design to make applications both more useful and usable. Prerequisite knowledge The assumed attendee background is primarily some interest in requirements engineering or user interfaces. There are no prerequisites such as knowledge about any of the results of Human Communication theories, Cognitive Science, Sociology or HCI in general.
T3: Software Engineering for Mobile Application Development Introduction The mobile landscape is evolving rapidly with a variety of possible experiences for the global audience - experiences in entertainment, marketing, mapping, finance, arts, training, health and agriculture [4]. Developing mobile solutions is a challenging endeavor where creativity, technology and software engineering practices are equally important. Solutions can be client applications (directly installed on the phone), based on Bluetooth technology, SMS gateways, WAP technology (Wireless Application Protocol) for the mobile Web, and IVR technology (Interactive Voice Response), or they can combine these technologies. Mobile interaction design - creating a user experience based on user needs and expectations - is crucial in the development of mobile applications [3,6,7] in an industry with a strict time to market requirement orchestrated by a fierce competition. Applications can be developed in different programming languages (e.g., Java, Python and Objective C), for different platforms (e.g., regular and smart phones, Android phones and iPhones) and in different environments (e.g., Eclipse, Netbeans, Android and Xcode). One of the main challenges in developing client applications is that applications are developed on one platform - a computer - and need to be tested and deployed on other ones - mobile phone devices. Each device comes with specificities and constraints that have to be accounted for early in the development process and have large implications during the quality assurance phase. Specificities and constraints include physical characteristics (e.g., device size, screen size and data input mechanism) and technical characteristics (e.g., processing power, memory space and operating system). Device fragmentation entails that if the application is to be deployed on n different devices it has to be tested on the n different devices. Description of the tutorial This tutorial is a 3-hour hands-on and interactive session following the laptop format. i.e., attendees must bring their laptop to the tutorial. They should install the following (free) software prior to the session: Java ME SDK 3.0 (http://java.sun.com/javame/downloads/sdk30.jsp), Eclipse for Java Developers (http://www.eclipse.org/downloads) and the EclipeME Plug-in for Java ME development (http://eclipseme.org). The software will also be provided during the tutorial session. The tutorial will focus on the software engineering aspects of mobile application development with Java ME. The choice of Java ME is based on the fact that more than 80% of the current phones support Java ME. Examples of mobile applications developed with Java ME will be presented. The following Java ME topics will be explored: Java ME architecture, MIDlets and Forms. Attendees will develop a small Java ME application and deploy it on a phone. Phones will be provided to the attendees for experimentation. The choice of process to develop mobile applications, usability concerns and quality assurance will be covered. Agile methodologies appear to be particularly adapted to the development of mobile applications [3,4]. Mobile applications are in general simple and activity-centered applications dedicated to accomplish a restricted number of actions. The tutorial will present different approaches of introducing projects based on mobile application development involving real clients in software engineering courses. The presenter is currently teaching project-based courses where students develop mobile solutions for real clients in the US and emerging markets such as Senegal and India, and use Scrum [6] and Extreme Programming [8] as the framework and process to deliver working software References [1] Abrahamsson, P., Hanhineva, A., Hulkko, H., Ihme, T., Jäälinoja, J., Korkala, M., Koskela, J., Kyllönen, P., and Salo, O. Mobile-D: An Agile Approach for Mobile Application Development. In Companion To the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '04 ), Vancouver, BC, CANADA, October 24 - 28, 2004, 174-175. |
||||
Copyright (c) 2006-2010, IARIA