A Model-Driven Approach for the Design and Implementation of Software Development Methods

A Model-Driven Approach for the Design and Implementation of Software Development Methods

Mario Cervera, Manoli Albert, Victoria Torres, Vicente Pelechano
Copyright: © 2012 |Pages: 18
DOI: 10.4018/jismd.2012100105
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

The Situational Method Engineering (SME) discipline emerged two decades ago to address the challenge of the in-house definition of software development methods and the construction of the corresponding supporting tools. Unfortunately, current SME approaches still have limitations that are hindering their adoption by industry. One of these limitations is that most approaches do not properly encompass two phases of the SME lifecycle, which refer to the method design and the method implementation. To address this limitation, this paper demonstrates how Model-Driven Development (MDD) techniques can contribute to successfully cover both phases. The proposal is illustrated by a real case study that is currently being used at the Valencian Regional Ministry of Infrastructure, Territory and Environment.
Article Preview
Top

Introduction

Software development methods are systematic approaches for building software, founded on a particular way of thinking, which can govern the disciplined execution of software development projects. Since the definition of a universally-applicable method has for long been considered unattainable (Henderson-Sellers & Ralyté, 2010), it is necessary to find solutions that enable the in-house specification of methods adapted to specific context needs and the construction of the corresponding supporting tools. Up until now, the Situational Method Engineering (SME) discipline seems to be the most promising alternative to meet this need.

This discipline constitutes a sub-area of a broader field called Method Engineering (ME). In general, the ME (and SME) field concerns (1) the definition of methods (method design) and (2) the construction of the supporting CASE environments (method implementation). Therefore, proposals that aim at supporting ME should cover these two phases of the ME lifecycle (Niknafs & Ramsin, 2008; Gupta & Prakash, 2001). However, most of the ME approaches existing in the literature only focus on one of them. On the one hand, there are ME approaches that propose methods and techniques for the definition of project-specific methods. These approaches are focused on the method design and are supported by Computer-Aided Method Engineering (CAME) environments (e.g., Saeki, 2003). In some cases, these CAME environments support the construction of CASE tools, but with limited capabilities. On the other hand, there are ME approaches that propose methods and techniques for the construction of CASE environments. These approaches are focused on the method implementation and are supported by metaCASE environments (e.g., Kelly et al., 1996).

Another important limitation of current ME approaches is related to the fact that most of them are mainly focused on the product part of methods and pass over the process part (Arni-Bloch, 2005; Niknafs & Ramsin, 2008). The product part represents both the artifacts to be produced during the course of the method execution and the formalisms that allow these artifacts to be created and manipulated. The process part establishes how to proceed to produce the artifacts involved in the product part.

The aforementioned limitations definitely do not contribute to improve industry uptake of ME approaches, which is currently being slow as acknowledged in a recent state-of-the-art review (Henderson-Sellers & Ralyté, 2010). In view of this reality, in this work our intent is to provide a solution that cannot only be regarded as being methodological (theoretical), but also as a more practical ME approach. Also, this solution tries to avoid the aforementioned limitations and thereby it equally encompasses the method design and the method implementation phases of the ME lifecycle, and also provides support to both product and process part of methods. To achieve these goals, we find crucial to define an infrastructure that (1) allows method engineers to define complete methods that can be applied in real software projects and also (2) semi-automates the construction of tools that provide adequate support to the specified methods. To successfully face the definition of this infrastructure, we advocate for the use of the Model-Driven Development (MDD) paradigm. Thereby, we have defined an MDD infrastructure based on meta-modeling and model transformation techniques that lays the foundations of our approach. The meta-modeling techniques are based on the SPEM 2.0 standard (Object Management Group, 2007) and are the means that allow performing the method design. The use of the SPEM 2.0 standard is combined with the use of the BPMN 2.0 standard (Object Management Group, 2011) to enhance the method process part in terms of process executability. On the other hand, model transformations semi-automate the performance of the method implementation. By applying these ideas, we have defined a methodological approach that not only supports the definition of both product and process parts of methods, but also proposes to use the method definitions for the semi-automatic generation of CASE environments that provide support to the creation of the method products (via graphical editors, code generators, etc.) and also to the enactment of the method process (via a process engine).

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 1 Issue (2023)
Volume 13: 8 Issues (2022): 7 Released, 1 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing