Identification, Impact, and Refactoring of Smells in Pipe-Like Web Mashups | IEEE Journals & Magazine | IEEE Xplore

Identification, Impact, and Refactoring of Smells in Pipe-Like Web Mashups


Abstract:

With the emergence of tools to support visual mashup creation, tens of thousands of users have started to access, manipulate, and compose data from web sources. We have o...Show More

Abstract:

With the emergence of tools to support visual mashup creation, tens of thousands of users have started to access, manipulate, and compose data from web sources. We have observed, however, that mashups created by these users tend to suffer from deficiencies that propagate as mashups are reused, which happens frequently. To address these deficiencies, we would like to bring some of the benefits of software engineering techniques to the end users creating these programs. In this work, we focus on identifying code smells indicative of the deficiencies we observed in web mashups programmed in the popular Yahoo! Pipes environment. Through an empirical study, we explore the impact of those smells on the preferences of 61 users, and observe that a significant majority of users prefer mashups without smells. We then introduce refactorings targeting those smells. These refactorings reduce the complexity of the mashup programs, increase their abstraction, update broken data sources and dated components, and standardize their structures to fit the community development patterns. Our assessment of a sample of over 8,000 mashups shows that smells are present in 81 percent of them and that the proposed refactorings can reduce the number of smelly mashups to 16 percent, illustrating the potential of refactoring to support the thousands of end-users programming mashups. Further, we explore how the smells and refactorings can apply to other end-user programming domains to show the generalizability of our approach.
Published in: IEEE Transactions on Software Engineering ( Volume: 39, Issue: 12, December 2013)
Page(s): 1654 - 1679
Date of Publication: 06 September 2013

ISSN Information:


1 Introduction

Mashups are programs that manipulate existing data sources to create a new piece of data or service that can be plugged into a webpage or integrated into an RSS feed aggregator. One common type of mashup, for example, consists of obtaining data from some feeds (e.g., house sales, vote records, bike trails), joining those data sets, filtering them according to a criteria, and plotting them on a map published at a site [2]. The development environments that support mashup languages often contain built-in functionality to quickly access and manipulate data, abstracting away much of the implementation complexity, and allowing the users to focus on the high-level behavior of the mashup.

References

References is not available for this document.