From programming tasks to solutions: bridging the gap through the explanation of examples

Evidence, experience, and observation indicate that examples provide a powerful aid for problem solvers. In the domain of software engineering, examples not only provide objects to be reused but also a context in which users can explore issues related to the current task. This dissertation describes a software tool called E scXPLAINER, which supports programmers' use of examples in the domain of graphics programming, assisting them with examples and explanations from various views and representation perspectives. E scXPLAINER provides a conceptual and working framework for the study of programmers' uses of examples in problem solving and serves as a test bed for representations based upon multiple perspectives. The E scXPLAINER approach is evaluated and compared with other available approaches, such as on-line manuals. The evaluation showed that subjects using E scXPLAINER exhibited a more controlled and directed problem-solving process compared to subjects using a commercially available, searchable on-line manual. Representation of examples from multiple perspectives is seen as a critical aspect of catalog-based design environments.