Advanced Search | Help

  HOME     |    TOPICS     |    BACK ISSUES     |    EVENTS     |    NEWS    



  
Reprints & Linking Info   Printer-Friendly    Email this Article        Font Size     What's This?


[Column]
Designing Software For Handsets Is An Art

John Blyler
March 2003

1) Hack Your Way To WLAN Security  42
2) Memory Motivates Cell-Phone Growth  40
3) Locked Your Keys In The Car? Get Out Your Cell Phone  38
4) Misconceptions About Wireless Broadband Abound  31
5) Will RF Detectors Measure Up To 3G?  30
ALL TOP 20 >>

Imagine that you've been given the task of developing the infamous "killer app" that will single-handedly save the telecom industry's struggling 3G-network market. Success will bring you instantaneous fame and fortune. Failure, on the other hand, will guarantee you the opportunity to choose a new career path—perhaps as a technology editor! The stakes are high indeed. As a result, you're not sure where to begin.

Maybe you should start by selecting the best development environment. Is it Sun's J2ME (Java), Qualcomm's BREW, or perhaps Microsoft's .Net Mobile? Or maybe it would be better to begin with the development process itself. After all, an interactive wireless-cellular application is developed differently than an ordinary desktop-PC, client-intensive application. But exactly how is it different?

You might start by going to the typical resources for answers: Steve McConnell's "Software Project Survival Guide," the Software Engineering Institute's (SEI) Web site, or maybe just a book on extreme programming. While all of these are excellent resources for generic software-development activities, they don't adequately confront the unique constraints found in wireless systems.

In frustration, you search the Internet for resources on wireless development. One listing immediately catches your eye. It is a book by Mark Beaulieu titled, Wireless Internet Applications and Architec-tures: Building Professional Wireless Applications Worldwide (Addison-Wesley, 2001). After a quick visit to Amazon.com, the book arrives on your desk the next morning. It contains all of the nitty-gritty information that you need to successfully create your "killer app."

In an effort to appreciate the differences and similarities between application development in a wired versus a wireless environment, you put together the following comparisons starting with Mark Beaulieu's basic outline for wireless development:

  1. "Study the mobile user. Successful developers take time to characterize a persona, introduce themselves to mobile users, and become familiar with their patterns of work." This is roughly the equivalent of the process that leads to the operational concept document (OCD) in generic software projects.
  2. "Create a mobile database with content. Build a database with real content first. Content is the stuff that users gather, send, and receive." This is equivalent to rapid prototyping—an approach that serves both as proof-of-concept and as a means to flesh out requirements and system constraints early in the development process.
  3. "Design a logical application. The logic of the way the content is or will be used comes next. This involves techniques for creation, access, navigation, and ordering of the application and its content." Having understood the problem in general via the OCD and decomposed the high-level-objective requirements into actual specifications, the developer can now write code. The focus here is on the application that resides on the mobile device. But as Mark Beaulieu points out, the back-office application that manages the mobile user's content on the server cannot be forgotten. Simulators are needed because mobile devices are quite different from desktop PCs in terms of processor speeds, memory sizes, and power consumption.
  4. "Use a real wireless network and device. Exactly how the content is styled and how the interface is physically controlled are refined at the end of the development process." This is the same as the system validation and verification (V&V) stage of a typical software-development project. Yet the wireless environment presents many challenges—perhaps the two biggest being network drops and bandwidth fluctuations. In the real mobile world, wireless networks constantly disconnect from the device. Similarly, fluctuating bandwidths cause the request/response drive applets of many wireless applications to be intermittently non-responsive.

One quickly realizes that developing a wireless application is a unique process. It's more akin to client-server database applications (or in Mark Beaulieu's words, "field-application and back-office administrative applications") than to pure client-side, PC-based software. The wireless environment itself provides several constraints, such as limited power consumption, clock cycles (yes, the two are related), and application/memory space. Yet despite the challenges faced by developers, success still depends on a sound engineered approach—just as with any software project.

Do you have any comments on the process of developing wireless software applications? If so, drop me a line at jblyler@penton.com.





[Reader Comments]
Designing Software For Handsets Is An Art
READER COMMENTS:
We want to hear what you have to say about this article!



Enter the text from the image below


Please refresh the page if you have trouble reading this text.

     
Your email is only used if our editors need to contact you.
Connection Failure



PartFinder

Find real-time pricing, stock status, same-day/next-day shipping options and more. Brought to you by Digi-Key. Go to PartFinder.    
GlobalSpec

PART SEARCH :
Powered by: GlobalSpec - The Engineering Search Engine
Sponsored Links

Electronic Design Europe Electronic Design China EEPN Microwaves & RF Schematics
Electronic Design Military Electronics Featured Vendors EE Events Free Design Resources



Planet EE Network Home | Contact Us | Editorial Calendar | Media Kit | Headlines | Site Feedback & Bugs
Copyright © 2008 Penton Media, Inc., All rights reserved. Legal | Privacy