Article Preview
Top1. Introduction
The quality of all products often depends on the ability to meet the needs of customers and users (Bergman & Klefsjö, 1994; Schulmeyer & McManus, 2007). Understanding the customers’ requirements is a key factor in developing an effective solution. However, stakeholders’ needs can be influenced by other factors that can change with time, which leads to the evolution of requirements. Studies show that requirements change is behind a large part of the rework in development, in some cases up to 85% (S. L. Lim & Finkelstein, 2011). Besides that, it is one of the top causes of project failure, and often considered as one of the most chronic problems in software development. Identifying these expected changes and defining the manner of how to manage them is a major research challenge in systems engineering.
A large majority of studies have examined the issue of change, while most of them focused on the design and source code; requirements were often forgotten (Li et al., 2012; Singh & Vyas, 2012). However, studies show that the percentage of requirements evolution increases when change requests suddenly increases at the end of the requirements engineering phase and the early design phase (M Messaadia, El-Jamal, & Sahraoui, 2005). Supposing that the cost of an error introduced during the analysis phase is always much higher than the one related to the error that occurred in the design and implementation, it is a must to focus on change management in the context of requirements engineering (Mourad Messaadia, 2008), which contains the complete initial specification that molds the shape of the desired final product. Despite the main role of managing change in requirements engineering, this field lacks research and our work aims to fill this gap.
The questions we might ask are: what is the procedure to be followed in change management? And which technologies should be used to manage it?
Indeed, our work has a different perspective in managing the problem of change which will be based on the MAS technology. As far as we know, no work has been done yet in this context.
It has been proposed that agents are the most appropriate intentional concepts to catch the properties of complex, dynamic and adaptive systems during development (Morandini, Penserini, & Perini, 2008). In fact, multi-agent systems (MAS) attract attention because of their flexibility of use, their characteristic of sociability, flexibility, autonomy, etc., which allow them to coordinate their actions and implement adaptation strategies based on the behavior of a set of autonomous agents (Di Marzo Serugendo, Karageorgos, Rana, Zambonelli, & Hghj, 2004). Such agents have the ability to react to events and manage requirements change in a controlled and effective manner.
In our work we are interested by the application of agent modelling methodology into RE. Our idea is to develop an agent-oriented approach to hold-up requirement engineering changes, where we use the organization strategy of holonic agents (HMAS) that provide an interesting alternative for change management in requirements engineering. This theory promises both, to provide a methodology for the recursive modelling of agent groups and to allow for dynamic reorganization during runtime; which was missing in classical MAS.
The proposed approach is based on the definition of the process covering all the necessary activities for an effective requirements change management (RCM) process, then the hierarchical and organizational decomposition of the holonic agents responsible of the process execution.