Requirements Specification as Basis for Mobile Software Quality Assurance

Requirements Specification as Basis for Mobile Software Quality Assurance

Raquel Lacuesta (Universidad de Zaragoza, Spain), Luis Fernández-Sanz (Universidad de Alcalá, Spain) and María del Pilar Romay (Universidad San Pablo-CEU, Spain)
DOI: 10.4018/978-1-61520-655-1.ch024
OnDemand PDF Download:
$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

1. 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.

Key Terms in this Chapter

Requirements Specification: Is a comprehensive description of the intended purpose and environment for the software under development.

Quality Assurance: Is a systematic process of checking whether a product or service being developed meets its specified requirements.

Mobile Software Applications: Are Internet applications that run on smartphones and other mobile devices.

Quality: Is defined as the features and characteristics of a product or service that bear upon its ability to satisfy stated or implied needs.

Software Testing: Is a set of activities conducted with the intent of finding errors in software.

Quality of Service (QoS): Refers to a broad set of networking technologies and techniques used to provide guarantees on the ability of a network to deliver predictable results.

Requirements Analysis: Is the process of determining user expectations for a new or modified product.

Complete Chapter List

Search this Book:
Reset