Submit a Paper

The Fifth International Conference on
Software Engineering Advances

ICSEA 2010

August 22-27, 2010 - Nice, France


Tutorials

T1: Automatic Generation of Benchmark and Test Workloads
Prof. Dr. Jozo Dujmovic, San Francisco State University, USA

T2: Requirements Meet Interaction Design
Prof. Dr. Hermann Kaindl,Vienna University of Technology, Austria

T3: Software Engineering for Mobile Application Development
Prof. Dr. Christelle Scharff, Pace University - New York City, USA

 

DETAILS

 

T1: Automatic Generation of Benchmark and Test Workloads
Prof. Dr. Jozo Dujmovic, San Francisco State University, USA

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
2. Machine dependence and independence in workload characterization
3. White-box and black-box program difference metrics
4. The concept of program cloning
5. A recursive expansion (REX) method for program generation
6. A kernel insertion (KIN) method for program generation
7. Design and calibration of kernel libraries
8. Generators of random source programs
9. Generators of programs for computer performance measurement
10. Live demo of generating very large programs
11. Compiler performance measurement, modeling, and comparison
12. Analysis of code density, compilation and execution times
13. Workload generation as an open source web service

 

T2: Requirements Meet Interaction Design
Prof. Dr. Hermann Kaindl,Vienna University of Technology, Austria

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
Prof. Dr. Christelle Scharff, Pace University - New York City, USA

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.
[2] Abrahamsson, P., Warsta, J., Siponen, M. T., and Ronkainen, J. New Directions on Agile Methods: A Comparative Analysis. In Proceedings of the 25th IEEE International Conference on Software Engineering (ICSE), Portland, Oregon, May 03 - 10, 2003, DC, 244-254.
[3] Ballard, B. 2007. Designing the Mobile User Experience. Wiley Blackwell.
[4] Cartman, J. and Ting, R. Strategic Mobile Design. New Riders. Voices that Matter.
[5] Deemer, P. and Benefield. G. The Scrum Primer: An Introduction to Agile Project Management with Scrum. Accessible at:
http://www.goodagile.com/scrumprimer/scrumprimer.pdf.
[6] Forum Nokia on Usability. Accessible at:
http://www.forum.nokia.com/Resources_and_Information/Explore/Mobile_Design_Centre/Usability.
[7] Jones, M. and Mardsen, G. 2005. Mobile Interaction Design. John Wiley & Sons.
[8] Manifesto for Agile Software Development. Accessible at: http://agilemanifesto.org

 
 

Copyright (c) 2006-2010, IARIA