SaaS Requirements Engineering for Agile Development

SaaS Requirements Engineering for Agile Development

Asif Qumer Gill (University of Sydney, Australia) and Deborah Bunker (University of Sydney, Australia)
DOI: 10.4018/978-1-4666-4301-7.ch019
OnDemand PDF Download:
$37.50

Abstract

The emergence of Software as a Service (SaaS) has made it possible to develop dynamic and complex business processes as eServices. The development of business processes as eServices (SaaS) can be assisted by the means of adaptive or agile development processes. The development of business processes in terms of SaaS require to perform SaaS requirements engineering (RE), which is an important phase of a software development process for the success of any project. The challenge here is how best to do SaaS RE (e.g. mapping business process to eServices) and select agile development practices for developing business processes in terms of SaaS. In order to address this challenge, an integrated agile RE model for SaaS project development environments is outlined within this chapter. The purpose of the proposed RE model is to aid in iteratively determining SaaS requirements in short iterations as opposed to the “only first and onetime upfront” phase of a development process. Each identified SaaS requirement or a set of requirements for a given iteration is linked to a single or set of specific agile practices for implementation in short iterations. This model can be used as a guideline by organisations wishing to understand the challenging task of mapping business processes to SaaS and its implementation by using agile software development processes or practices.
Chapter Preview
Top

Introduction

The emergence of on-demand utility service(s) or technologies provides opportunities to develop dynamic and complex business processes as eServices “Software as a Service” (SaaS) in the cloud environment (Salesforce 2008). NIST defines SaaS as “The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings” (Mell and Grance 2011). SaaS is a logical view or an abstraction of a business process such as an application or database, which is provided to the service consumer for carrying out business-level operations. The development of business processes as SaaS can be done by using the adaptive or agile development processes (Agile Manifesto 2001). The development of business processes as SaaS, however, requires carrying-out the challenging task of requirements engineering (RE), which is one of the important phases of the software development process.

RE is the process of understanding the business context and identifying and managing software system requirements. Zave (1997) states that RE is concerned with the relationship of real-world goals, needs, and constraints that is important to describe the behavior and evolution of software systems. There are a number of RE approaches (Davis 1992; Goguen and Linde 1993; Maiden and Rugg 1996; van Lamsweerde et al. 1998; Sommerville 2005; Jiang et al. 2008) that have been proposed over a period of time and it now seems agreed that RE is an integral part of a software development lifecycle. The challenge here is how best to do SaaS RE (e.g. mapping business process to eServices) and select agile development practices for implementing SaaS requirements. There are not many studies reported on RE in agile development (Cao and Ramesh 2008) – especially how to do RE in the context of SaaS development and deployment in a cloud computing environment. In order to address this challenge, based on our recent SaaS industry projects and the analysis of different RE and agile system development approaches, this chapter presents an integrated RE model (iREM) for agile SaaS project development environments. The purpose of the proposed RE model is to aid in iteratively determining SaaS requirements in short iterations. These SaaS requirements are also iteratively integrated with the specific agile software development practices for the implementation of a given iteration. This model would be very useful for organisations wishing to understand the mapping of business processes to services; and which business processes have been developed as services by using which software development processes or practices (end-to-end traceability from business process to services and services to software process).

In summary, the focus of this chapter is:

  • Concurrent just-in-time business process analysis and SaaS RE: Identification of system requirements and test cases for SaaS RE and implementation for each iteration (e.g. mapping business process to software services);

  • Concurrent just-in-time evolving of agile development processes: Selection of agile development practices/roles to implement system or service requirements; and their integration at the time that the identified system requirements or services are chosen for SaaS implementation for each iteration; and

  • Concurrent just-in-time evolving and management of service backlog: Put the chosen service requirements and the agile development techniques (integrated system requirements-development techniques) for SaaS implementation into the service backlog for further assessment and development.

Complete Chapter List

Search this Book:
Reset