This paper presents an approach for how end-users can tailor (and evolve) generic computer applications into domain-oriented design environments. It is proposed as a remedy for inflexible computer applications, and as an alternative to building domain-oriented design environments from low-level building blocks. A typical generic application is a word processor, a drawing program, or an email system developed for a generic task such as writing, creating diagrams, or sending electronic messages; whereas a domain-oriented design environment is an application developed for a specialized task, such as collaborative writing, home planning, or meeting scheduling.

End-user tailoring addresses general problems in software reuse and requirements capture. It supports application evolution by a set of tools that are integrated into a generic application. The tools give an end-user access to the parts of the application that have to be addressed during tailoring. A method for building and integrating the tools is described. How to use the tools to evolve a basic drawing program into a kitchen design environment is given as an example. The paper ends with a general discussion of the approach, and gives suggestions for further work in the area.