The abstract should be changed to this new abstract: Research on mobile multimedia mainly focuses on improving wireless protocols in order to improve the quality of services. In this chapter, we argue that another perspective should be investigated in more depth in order to boost the mobile multimedia industry. This perspective is software engineering which we believe it will speed up the development of mobile multimedia applications by enforcing reusability, maintenance, and testability. Without any pretense of being comprehensive in its coverage, this chapter identifies important software engineering implications of this technological wave and puts forth the main challenges and opportunities for the software engineering community.
I remember when our teacher of “technical terms” in my Engineering School introduced the term “Multimedia” in the middle of the 1990s. He was explaining the benefits of Multimedia applications and how future PCs will integrate such capabilities as a core part of their design. At this time, it took me a bit before I could understand what he meant by integrating image and sound for improving user’s interactivity with computer systems. In fact, it was only clear for me when I bought my first “Multimedia PC.”
Multimedia is recognized as one of the most important keywords in the computer field in the 1990s. Initially, communication engineers have been very active in developing multimedia systems since image and sound constitute the langua franca for communicating ideas and information using computer systems through networks. The broad adoption of the World Wide Web encouraged the development of such applications which spreads to other domains such as remote teaching, e-healthcare, and advertisement. People other than communication engineers have also been interested in multimedia like medical doctors, artists, and people in computer fields such as databases and operating systems (Hirakawa, 1999).
Mobile multimedia followed as a logical step towards the convergence of mobile technologies and multimedia applications. It has been encouraged by the great progress in wireless technologies, compression techniques, and the wide adoption of mobile devices. Mobile multimedia services promote the realization of the ubiquitous computing paradigm for providing anytime, anywhere multimedia content to mobile users. The need for such content is justified by the huge demand for a quick and concise form of communication–compared to text—formatted as an image or an audio/video file. A recent study driven by MORI, a UK-based market researcher (LeClaire, 2005), states that the demand for mobile multimedia services is on the rise, and that the adoption of mobile multimedia services is set to take off in the coming years and will drive new form factors. The same study states that 90 million mobile phones users in Great Britain, Germany, Singapore, and the United States, are likely to use interactive mobile multimedia services in the next two years.
Key Terms in this Chapter
Software Frameworks: Software frameworks are reusable foundations that can be used in the construction of customized applications.
Design Patterns: Design patterns are standard solutions to common problems in software design.
Context-Awareness: Context awareness is a term from computer science that is used for devices that have information about the circumstances under which they operate and can react accordingly.
Real-Time Systems: Hardware and software systems that are subject to constraints in time. In particular, they are systems that are subject to deadlines from event to system response.
Software Engineering: Software engineering is a well-established discipline that groups together a set of techniques and methodologies for improving software quality and structuring the development process.
Middleware: Middleware is software that can significantly increase reuse by providing readily usable, standard solutions to common programming tasks, such as persistent storage, (de)marshalling, message buffering and queuing, request de-multiplexing, and concurrency control.
Embedded Systems: An embedded system is a special-purpose computer system, which is completely encapsulated by the device it controls.