Ubiquitous Computing: A Taxonomy of Architectural Quality Attributes for Handheld Multimedia Devices

Ubiquitous Computing: A Taxonomy of Architectural Quality Attributes for Handheld Multimedia Devices

Daniel Hein (Garmin International, USA) and Hossein Saiedian (The University of Kansas, USA)
DOI: 10.4018/978-1-61520-655-1.ch003
OnDemand PDF Download:
No Current Special Offers


Today’s handheld devices, such as Personal Digital Assistants (PDAs) and PDA-based smartphones, are burgeoning with ever increasing multimedia capabilities. Such capabilities include traditional services like streaming audio and video as well as newer services like context-based and situational aware computing. A sophisticated mixture of middleware, network services, and device-based software provides such capabilities. The objective of this chapter is to discuss specific quality attributes with respect to device-side software architectures providing these multimedia capabilities. This chapter focuses specifically on device-side client architectures, rather than network or middleware architectures. Specific domain requirements and quality attributes are first derived through a synthesis of current research and industry trends, and subsequently analyzed. The analysis reveals some qualitative results that seem unintuitive at first glance, but that become more understandable when provided with rationale relative to the handheld domain context.
Chapter Preview


Today's handheld devices, such as Personal Digital Assistants (PDAs) and PDA-based smart phones, are burgeoning with ever increasing multimedia capabilities. Already, current wireless and cellular technologies like Wi-Fi (802.11), 3G, and EV-DO/CDMA2000 enable streaming audio and video content to wireless handheld devices (Choi, Choi, and Bahk, 2007). Applications such as audio or video streaming, video conferencing, video surveillance, and web browser applications are migrating from PC/notebook computers to their handheld counterparts (Kim and Nieh, 2006). With handheld computing devices outnumbering conventional desktop systems in much of the developed world (Prensky, 2005), both manufacturers and developers would do well to consider the special limitations inherent in the handheld domain. By giving careful consideration to quality attributes and their corresponding impact within this domain, manufacturers and developers are more likely to develop applications that work intelligently to mitigate shortcomings imposed by small-screened devices with limited battery life. The objective of this chapter is to discuss architectural attributes of multimedia frameworks on client-side mobile devices such as PDAs and mobile phones.

Our goal is to consolidate handheld factors such as power and screen size limitations in order to stimulate deeper consideration during software specification and design, particularly with respect to multimedia frameworks. The following sections further explain the motivation behind this objective and provide an overview of the chapter’s organization.

Currently, there is a lack of a standard approach to architectural evaluation for device side multimedia architectures in the handheld domain. This implies that handheld multimedia frameworks must be assessed more through trial and error than through a fitness assessment of some kind. Ultimately, this may lead to inflexible architectures that are difficult to modify later in the software’s lifetime. Not only that, but these architectures and the software built on top of them may not adequately address the availability, testability, and performance needs of software operating in the handheld domain. This problem, and its more specific incarnations are addressed in the research and observations section.


The motivation for addressing architectural issues on the device-side, or client side, is in reaction to steadily growing body of literature and research in server-side middleware, wireless network protocols, and network infrastructures. Many challenges must be overcome with regard to these network and server-side aspects of ubiquitous computing, but at the same time, the impact of these evolving technologies on client devices must not be overlooked. The motivation for discussing software quality attributes stems from the need for greater awareness of the impact of the multimedia software architecture on the device itself, and its development as a whole

Software architecture is of course essential to the success of the developing organization as it largely determines the success of the organization’s software on many levels. The erudite software engineer is no doubt well aware of the critical importance of the solution architecture. Bass, Clements, and Kazman (2003, p. 26) enumerate three key reasons why software architecture is important:

  • 1.

    It facilitates communication among stakeholders,

  • 2.

    It greatly impacts and manifests impacts early design decisions, and

  • 3.

    It serves as a transferable abstraction of a system.

We believe the architectural considerations discussed in this work will benefit developing organizations by providing a basis for reasoning about candidate multimedia architectures (i.e. facilitating communication). Similarly, early design decisions can be made on a more informed basis if developers are better informed about the ways that early design decisions impact the final product. Additionally, we hope that this work may be the first step towards a consensus about what factors need to be considered in this domain in order to derive standards on top of which future work may build (i.e. the transferable system abstraction).

Key Terms in this Chapter

Domain Engineering: Engineering systems intelligently based on intended use, incorporating considerations and constraints from the deployment environment.

Handheld Computing: Computation domain concerned with small portable devices, encompassing both mobile phones and personal digital assistants.

PDA: Personal digital assistants; handheld computing devices used for managing personal information and entertainment (e.g., playing games).

Software Architecture: Organization of components and component inter-connections in a larger software product.

Requirements Engineering: Process of collecting and analyzing (often conflicting) requirements in order to define a product and to facilitate its evaluation.

Software Quality Attributes: Various attributes of a software product that may refer to qualities observable by an end user (e.g., reliability) as well as developers (e.g. maintainability).

Middleware: Software often containing control and business logic residing below the user interface, but above the interfaces provided by the operating system in a layered architecture.

Complete Chapter List

Search this Book: