Requirements Specification as Basis for Mobile Software Quality Assurance

Requirements Specification as Basis for Mobile Software Quality Assurance

Raquel Lacuesta, Luis Fernández-Sanz, María del Pilar Romay
DOI: 10.4018/978-1-4666-4301-7.ch034
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Development of mobile applications is a complex task due to the specific characteristics of the environment. Although different proposals to offer more practical and systematic processes have been published within the so-called mobile software engineering, it is still necessary to devise more advanced methods, especially in the area of software quality assurance. This chapter presents a set of practices to support quality control by developers based on the adoption of methods from traditional software engineering focused on effective requirements specification and associated methods for generating practical testing procedures.
Chapter Preview
Top

Introduction

Development of software in a mobile context is a really difficult and error-prone task due to the specific characteristics of the environment: hardware limitations, variability of resources, unstable physical and communications conditions, potential security or privacy issues beyond the usual ones in generic networked applications (Choi, 2007), etc.. Software is frequently the key fur success as it is the only component with the necessary adaptability to evolve and decide on conditions where mobile systems should work, although attention and emphasis has been traditionally put into technological issues. This lack of attention has lead to ad hoc solutions when developing mobile software so it is clear that a rigorous and systematic approach has to be defined, supported by techniques and methods of traditional software engineering adapted to this particular and complex environment. The so-called Mobile Software Engineering is defined as the branch of software engineering which deals with the development and management of mobile software in a real-world mobile scenario, i.e., the management and execution of software within a distributed, evolving context. This means that emphasis is not in the dynamic topology or the details of language design, but on the specific requirements of software within a mobile context.

A detailed review of general software engineering advances reveals that, in spite of its great relevance during the last decade, the “mobile approach” has been seldom used, or it has been tackled in a rather incomplete manner. Certain sub-fields of Software Engineering have paid more attention to this, but not very deeply. Among these we could mention Software Architecture (Capra, Bahsoon, Emmerich, & Fayad, 2008), Formal Languages (Mascolo, Picco, & Roman, 2004; Smith, 2004), Product Lines, Autonomic and Self-Managing Systems (Sakhaee, Leibnitz, Wakamiya, & Murata, 2008), Context-Awareness (Chen & Kotz, 2000), Component-Based and Aspect-Oriented Software Development (Delicato, Santos, Oliveira, Batista, & Pìrmez, 2009) and even Model-Driven Engineering (Geihs, Reichle, Khan, Solberg, & Hallsteinsen, 2006). However, the greatest effort has been devoted to techniques and technologies, rather than on methods. Moreover, most of these works have used mobile applications just as an example (Borcea, Gupta, Kalra, Jones, & Iftode, 2007). Much of the research on these lines has focused on these specific topics themselves, and their particular methods, rather than in the mobile aspect of the application being built (Cugola & Jacobsen, 2002). Many of the existing proposals are not clearly emphasizing any Software Engineering techniques, even those which apply them.

One of the most interesting topics (often neglected) is the assessment of the quality of mobile software applications. Most of the work in literature has been mainly concentrated on quality of service (QoS) (Ayyash, Alzoubi, & Alsbou, 2006; Seth, Gupta, & Momaya, 2007; Renesse, Khengar, Friderikos, & Aghvami, 2009). Unfortunately, this has more to do with current levels in communication lines, hardware design and even middleware than with the development of mobile software. In general QoS is being basically assimilated to a philosophy of service-level agreements (SLA), i.e., a minimal performance ratio, particularly on communication issues and on capability to improve response time (Amundsen & Eliassen, 2008; Amundsen, Eliassen, & Aagedal, 2009). Therefore, the QoS, understood as an SLA, does guarantee that a set of non-functional requirements is fulfilled; but this is not done systematically, using an integral method to assure software quality.

Complete Chapter List

Search this Book:
Reset