As end-user development (EUD) receives more and more focus in research, using prefabricated software components and visual application builders has been presented by several researchers as a useful aid in the process. One of the challenges of this approach is the emergence of situations when the available components aren’t entirely suitable for the task to be solved. This thesis presents a possible solution to this problem, in the form of cloneable components. By allowing the end-user to perform changes to a clone of a familiar prototype, a new component with the desired properties can be created without risking damage to the original component. This form of evolution by resemblance lets end-users with little or no programming experience perform evolutionary software development based on existing software components.
To demonstrate these concepts in practice, the thesis presents the SimpleBuilder, a modification of Sun Microsystems’ BeanBuilder application. The SimpleBuilder contains new functionality for working with cloneable software components. Example software components are provided, that also provide a uniform interface for inter-component communication, allowing a user of the SimpleBuilder to easily connect software components to each other without writing program code.