An Evolutive Component-Based Method for Agile Development of Service Oriented Architectures

An Evolutive Component-Based Method for Agile Development of Service Oriented Architectures

Hamza Chehili (Constantine 2 University - Abdelhamid Mehri, Constantine, Algeria), Lionel Seinturier (University of Lille and Inria, Villeneuve d'Asc, France) and Mahmoud Boufaida (Constantine 2 University - Abdelhamid Mehri, Constantine, Algeria)
DOI: 10.4018/IJISSS.2017070103
OnDemand PDF Download:
$37.50

Abstract

The adoption of the agile methods' principles has emerged as an effective way to develop service oriented architectures as it paves the way for a better reply to the changing needs of the environment and even the customer. However, these changes may also require the evolution of the development process itself. This paper presents an agile and service-oriented software development method that combines concepts from the Service-Oriented Computing (SOC) domain and the agile software engineering one. This method provides an iterative and incremental process to deliverer business processes, implemented as an assembly of components. This leads to a faster response to the change of needs by reconfiguring the assembly of components. The method is based on a framework that implements its phases as an assembly of components to allow a dynamic reconfiguration of it in case of a development process evolution. Finally, a case study is presented to illustrate the use of the presented method.
Article Preview

Introduction

The rapid change of needs leads enterprises to invest more on their information systems. These systems are often criticized for their limited reuse and evolution capabilities. Thus, the problems of incompatibility and redundancy at the application level have highlighted the need for a homogeneous solution. Service-Oriented Architectures (SOA) have emerged as a solution that suits business requests. It is considered as an approach to normalize the software architecture across the enterprise (Erl, 2005).

As a matter of fact, Service-Oriented Computing (SOC) is becoming a paradigm of choice for implementing the distributed applications at the enterprise level (Perepletchikov et al., 2013). The service is the key element of this paradigm. It is increasingly gaining centre stage in economies across the world (Rozenes & Kukliansky, 2014). It is seen as an autonomous entity, independent from platforms, which can be described, published, discovered and loosely coupled (Papazoglou et al., 2008). Thus, SOA offers features that are necessary for the performance of the enterprise's business processes (Tsafarakis et al., 2013).

Several methodologies are proposed in the literature to develop such architectures (Ramollari et al., 2007). The objective of these methodologies is to implement a solution, taking into account the business processes. However, they are heavy to be used. Besides, agile methods face today a remarkable success in software engineering (Alliance, 2001). This success essentially goes back to their pragmatic approach. These methods allow the rapid development and delivery of a software system in an iterative and incremental way. Moreover, they take into consideration the changing needs by involving the customer in the development cycle. The main aim of agile methods is to promote and speed up the responses to the changing environments and requirements and to meet deadlines (Rao et al., 2011).

The presented work focuses on the combination between the concepts of SOA and those coming from practices of agile methods in the field of software engineering (Chehili et al., 2012). Its main idea is based on overcoming the complexity of a service-oriented development project by dividing it into sub-projects in order to allow the application of the agile methods’ practices. With the help of a meta-model, the work overcomes the deficiency of the theoretical foundations in agile methods and permits the use of the meta-model to define more appropriate models for the development of specific projects.

In practice, it is difficult to exactly follow a development process. This is due to several factors such as the change of certain actors or the non-respect of deadlines. Indeed, the different phases should be implemented in a way that allows their evolution during the project to adapt them when needed. Therefore, the proposed method is based on a framework that implements the development process phases as an assembly of components (Chehili et al., 2013). This should be performed in a platform that allows the reconfiguration of the assembly of components. The presented work uses FraSCAti (Seinturier et al., 2012) that provides management features and a dynamic reconfiguration of the assembly of components.

The proposed method is described as agile because it respects the principles of agile methods specified in the manifesto of agile methods (Alliance, 2001). In fact, it allows an iterative and incremental development of business processes, business components, and components’ operations. Thus, it takes into account the changing needs by implying the customer in the different phases.

The method uses the BPMN model (Business Process Modeling Notation) to design incrementally the business processes of an enterprise (Owen & Raj, 2003). Then, the SCA model (Service Component Architecture) is used to describe both the business functions of the system under development and the development process itself as a reconfigurable assembly of components (Beisiegel et al., 2007). This enables the rapid response to the changing environment and requirements regarding the agile principles.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 9: 4 Issues (2017): 3 Released, 1 Forthcoming
Volume 8: 4 Issues (2016)
Volume 7: 4 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing