Content area
Full Text
Abstract
Dynamic evolution is a phenomenon by which applications can be upgraded without shutdown and restart. This capability improves service levels while minimising the loss of business revenue and is particularly important for a variety of mission critical distributed applications running around the clock. While quality plays an important role in information systems and their development, little attention has been paid in the literature to quality in dynamic evolution. This paper proposes a set of quality factors for dynamic evolution suitable for composition-based (e.g. service-oriented and component-based) distributed application development using a multi-step process for their incremental development and evaluation. An initial set of factors was developed from the relevant literature. This set of factors was evaluated for their perceived importance and extended by a web survey of experienced practitioners and researchers. A review of twelve relevant development methodologies was then conducted to further extend the revised set. The proposed set of factors can provide guidance for practitioners and researchers in developing, managing and/or testing distributed applications which can benefit from dynamic evolution. To demonstrate a use of the quality factors, an assessment was performed on the twelve methodologies to evaluate their extent of support for the extended set of quality factors, with results summarising their strengths and areas for improvement to support dynamic evolution.
ACM Categories: D.2.1 Software Engineering; Requirements/Specifications - Elicitation methods; D.2.7 Software Engineering Distribution, Maintenance, and Enhancement-Restructuring, reverse engineering, and reengineering; K.6.3 Software Management; K.6.4 System Management-Quality assurance
Keywords: Dynamic Evolution, Composition-Based Systems, Component-Based Systems, Service-Oriented Computing, Requirements, Quality
Introduction
Distributed application technologies are increasingly being used by organisations. This trend is partly driven by the need to efficiently utilise existing geographically dispersed computing resources, making services more readily available to other users and applications on a network as well as integrating existing legacy applications to provide enterprise-level services. Many distributed applications, like credit card payment gateways, provide mission critical services with little or no interruption (Gupta et al. 1996; Oreizy et al. 1999) and are mission critical 24 hours a day. Shutting them down for changes is costly and not always a desirable option (e.g. US$1 0-1 5k per minute (Jayaswal 2005)). Instead, it is desirable to apply changes to these applications with minimal interruption.
Fung et al....