Summary: | End-user Service Composition (EUSC) is a relatively new field that aims to enable non-developers to create bespoke applications and services by coordinating multiple component services created by a range of different developers. One of the main challenges of EUSC is that it is an instance of an ill-structured problem: a problem with multiple solutions, multiple paths to those solutions, and no consensus as to which solution might be best [Jonassen, 1997]. We suggest that design spaces are an effective method for navigating ill-structured problems such as EUSC. Design spaces are multi-dimensional spaces where dimensions represent prospective design decisions, and points on those dimensions represent potential solutions to those decisions. The work in this thesis aims to explore how design spaces can be used in design generation in software engineering, and in particular in the domain of EUSC. Building on the literature we identified three research goals: (i) to derive and evaluate a set of requirements for an EUSC application, (ii) to create and evaluate a concrete design space for EUSC applications, and (iii) to implement and evaluate a software tool to allow designers to create and interact with concrete design spaces. Whilst solving these goals, we contributed two large bodies of knowledge to the EUSC domain: a set of 139 requirements for an EUSC application, and a concrete design space for EUSC applications containing over 600 design elements. To derive the requirements, we created a bespoke method aimed at gathering requirements from end-users, based on established methods. To create the EUSC design space, we first clarified and extended the vocabulary of the domain, before specifying our own design space creation method where none existed previously. To allow designers to interact with design spaces, we developed a design space tool that supported the creation of design spaces, profiling applications in the domain, and the generation of new designs. Finally, we explored the use of the design space in design generation, where novice designers were tasked with generating a design for an EUSC application. Our findings showed that increasing design space support resulted in designs that were more balanced, more concrete, more complex, and most intriguingly, less novel for the domain. We provide recommendations as to how designers can balance this trade off, and use design spaces to create EUSC applications as well as other instances of ill-structured problems.
|