Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
End-user software engineering with assertions in the spreadsheet paradigm
Proceedings of the 25th International Conference on Software Engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Formalizing refactorings with graph transformations: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Refactoring for Parameterizing Java Classes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Topes: reusable abstractions for validating data
Proceedings of the 30th international conference on Software engineering
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
What do we "mashup" when we make mashups?
Proceedings of the 4th international workshop on End-user software engineering
Using assertions to help end-user programmers create dependable web macros
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Refactoring sequential Java code for concurrency via concurrent libraries
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Conversations in developer communities: a preliminary analysis of the yahoo! pipes community
Proceedings of the fourth international conference on Communities and technologies
Mashup environments in software engineering
Proceedings of the 1st Workshop on Web 2.0 for Software Engineering
Finding suitable programs: semantic search with incomplete and lightweight specifications
Proceedings of the 34th International Conference on Software Engineering
An approach for restructuring text content
Proceedings of the 2013 International Conference on Software Engineering
Form-Based Web Service Composition for Domain Experts
ACM Transactions on the Web (TWEB)
On the benefits of providing versioning support for end users: An empirical study
ACM Transactions on Computer-Human Interaction (TOCHI)
Hi-index | 0.00 |
Mashups are becoming increasingly popular as end users are able to easily access, manipulate, and compose data from many web sources. We have observed, however, that mashups tend to suffer from deficiencies that propagate as mashups are reused. 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 end-user programmers and observe that users generally prefer mashups without smells. We then introduce refactorings targeting those smells, reducing the complexity of the mashup programs, increasing their abstraction, updating broken data sources and dated components, and standardizing their structures to fit the community development patterns. Our assessment of a large sample of mashups shows that smells are present in 81% of them and that the proposed refactorings can reduce the number of smelly mashups to 16%, illustrating the potential of refactoring to support the thousands of end users programming mashups.