A Short Survey on Using Software Error Localization for Service Compositions

In modern software development, paradigms like component-based software engineering (CBSE) and service-oriented architectures (SOA) emphasize the construction of large software systems out of existing components or services. Therein, a service is a self-c

  • PDF / 389,042 Bytes
  • 15 Pages / 439.37 x 666.142 pts Page_size
  • 53 Downloads / 169 Views

DOWNLOAD

REPORT


Abstract. In modern software development, paradigms like componentbased software engineering (CBSE) and service-oriented architectures (SOA) emphasize the construction of large software systems out of existing components or services. Therein, a service is a self-contained piece of software, which adheres to a specified interface. In a model-based software design, this interface constitutes our sole knowledge of the service at design time, while service implementations are not available. Therefore, correctness checks or detection of potential errors in service compositions has to be carried out without the possibility of executing services. This challenges the usage of standard software error localization techniques for service compositions. In this paper, we review state-of-the-art approaches for error localization of software and discuss their applicability to service compositions.

1

Introduction

Debugging, i.e., the detection, localization and correction of software errors, is one of the most time-intensive tasks in software development. Within this process, error localization is considered the most expensive task [43]. In order to support developers in debugging, a lot of research effort has been spent on the deployment of automated error localization methods. Today, existing error localization methods for software are numerous. They can broadly be separated into two categories. (1) Approaches based on the inspection of test cases. In this category, we find error localization methods like delta debugging introduced by Zeller [17,49– 51] or the approaches underlying the tools Tarantula [27], Pinpoint [14] or AMPLE [19]. (2) Approaches based on the computation of dependence information between program statements. Herein, we locate all techniques based on static program slicing as originally introduced by Weiser [46] as well as dynamic slicing.

This work was partially supported by the German Research Foundation (DFG) within the Collaborative Research Centre “On-The-Fly Computing” (SFB 901). c IFIP International Federation for Information Processing 2016  Published by Springer International Publishing Switzerland 2016. All Rights Reserved M. Aiello et al. (Eds.): ESOCC 2016, LNCS 9846, pp. 248–262, 2016. DOI: 10.1007/978-3-319-44482-6 16

A Short Survey on Using Software Error Localization

249

When it comes to a model-driven design approach of service composition (or to model-driven software development in general), the situation is different. On the one hand, a model typically abstracts from details of the final software, thus facilitating the construction of automatic methods and tools for error detection (like being done in numerous settings, for functional as well as QoS requirements, e.g. [12,21,39,42]). On the other hand, the localization of errors, once correctness checks have reported it, lacks automated methods and tool support. So far, to the best of our knowledge, automated, tool-based approaches for localizing faults in models of service compositions do not exist, at least when it comes to functional c