Dynamic Situational Adaptation of a Requirements Engineering Process

Dynamic Situational Adaptation of a Requirements Engineering Process

Graciela Dora Susana Hadad (Universidad Nacional del Oeste, Argentina & Universidad de Belgrano, Argentina), Jorge Horacio Doorn (Universidad Nacional del Oeste, Argentina & Universidad Nacional de La Matanza, Argentina) and Viviana Alejandra Ledesma (Universidad Nacional del Oeste, Argentina & Universidad Nacional de La Matanza, Argentina)
Copyright: © 2018 |Pages: 13
DOI: 10.4018/978-1-5225-2255-3.ch646
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Literature shows that the elicitation techniques used in a Requirements Engineering process are often chosen based on the particular characteristics of the application context, mainly related to the involved human sources of information. However, these particularities, usually called situational factors, are seldom taken into account in other activities of the requirements process. Most situational factors, when considered in software projects, have a high influence on the requirements process. Therefore, the different situations that may attempt against or may favor a successful requirements process should be identified at the beginning of the project. Additionally, some of such factors may evolve along with software development life cycle; this may imply re-planning the requirements process at later strategic milestones. In this chapter, a process for constructing and dynamically adapting a requirements process is proposed. The process uses different combinations of situational factors at specific variation points and manages a repository of process blocks to perform the tailoring.
Chapter Preview
Top

Introduction

The adaptation of any process to particular situations is considered a good practice in most fields. Literature shows that this practice is quite common in Software Engineering processes, such as the methodologies Rational Method Composer (Haumer, 2005) and OPEN Process Framework (Firesmith &Henderson-Sellers, 2002). However, Requirements Engineering (RE) approaches are seldom tailored to context or project situations (Potts, 1995; Leite, Hadad, Doorn, & Kaplan, 2000; Leffingwell & Widrig, 2003; Seyff et al., 2009). Nevertheless, sometimes the elicitation activity, as part of an RE process, is performed taking into account some environmental characteristics, such as number of information sources, user geographical distribution, user time availability, user experience, among others (Maiden & Rugg, 1996; Hickey & Davis, 2003; Coulin, 2007; Carrizo, Dieste, & Juristo, 2008). Recently, some proposals have appeared to design an RE process for a specific project by selecting existent RE techniques (Lauesen, 2002; Lobo & Arthur, 2005; Alexander & Beus-Dukic, 2009).

There are activities of the requirements process that are invariant regardless of situational factors, while others should be modified, removed or replaced. Not only activities may be adapted, models produced or used in the process may be also suited for the situation (Galster, Weyns, Tofan, Michalik & Avgeriou, 2014). This means that the RE process may be assembled like a flexible puzzle using interchangeable pieces depending on the situational factors identified.

Situational Method Engineering (SME) is advocated to build methods tailored to specific situations for the development of systems (Kumar & Welke, 1992). Following its principles, the adaptation of any software development process is based on indicators describing the situation (Khan, bin Mahrin & bt Chuprat, 2014). Part of the task is to compose such indicators based on observable factors, like degree of business processes reengineering, context complexity, developer expertise in the application domain, and project size, among others. Ideally, these situational factors should be taken into account before beginning the software process. However, there are factors not accurately known when initiating a software project, while other factors may change during the course of the project. Hence, a dynamic view of the adaptation of a software development process achieves a better effectiveness of the process itself. Considering that the production of requirements is the starting point of a software development, it should be necessary to pay more attention to factors impacting on the RE process.

A frequent question of practitioners is related with the obligation of performing all the process steps to reach requirements. Is it possible to shorten the road or to follow a different one? Under some circumstances, there is an opportunity to reduce the RE process by deleting or simplifying activities; and sometimes different paths may be followed by choosing other techniques or even extending some activities. Project managers should make decisions depending mainly on the particular case.

Since problem domain knowledge is mostly expressed in natural language (NL), the use of an RE approach based on NL representations improves the commitment of customers and users to the project, increasing the probability of project success (Macaulay, 1993).

Therefore, in this chapter it is presented the tailoring of an RE process based on NL models, according to a particular set of situational factors. Additionally, a process for constructing this RE process, including the evaluation of such factors along software development life cycle, is proposed as an enhanced solution.

Key Terms in this Chapter

Process Commonality: The common elements of a process that facilitate the definition of a family of processes through reuse.

Scenario: A representation of an observed or envisioned situation in the application context.

Situational Method Engineering: A discipline that promotes the construction of methods for developing systems according to a pre-defined set of situational factors.

Requirements Engineering Process: A process to produce software requirements by means of methods, techniques and tools during elicitation, modeling, analyzing and evolution of requirements.

Process Block: A well-defined unit of process that can be reused as part of any process.

Process variability: The variant elements of a process, identified at variation points, which produce deviation from the standard process.

Situational Factor: A characteristic of the project or the application context that may be taken into account when implementing an RE process.

Complete Chapter List

Search this Book:
Reset