Component Recommendation for Development of Composite Consumer Applications (download)
Consumer computing is a research area that focuses on methodologies and tools that enable consumers – the most general class of users of technology, typically with no special software engineering skills – to create their own applications. Consumers create applications by composing existing applications through intuitive actions on their graphical user interfaces. Support for component discovery has been identified as a key challenge in various forms of composite application development, and is especially important in consumer computing. This dissertation introduces a general method for component recommendation based on structural similarity of compositions which dynamically ranks and recommends components as a composite consumer application is being incrementally developed by structurally comparing the partial composition with a database of previously completed compositions. Using this method, four component recommender algorithms are defined: two based on feature vector models and cosine similarity, one based on sequence edit distance and one based on a directed graph model and a probabilistic graph edit distance algorithm. Accuracy, coverage and response time of the presented algorithms are evaluated in detail on a Yahoo Pipes dataset and a synthetic dataset that models more complex composite consumer applications. The results show that the presented approach is effective in addressing the component discovery challenge in consumer computing.