A tool framework for developing context-sensitive user assistance systems using model-driven aspect weaving
User assistance systems act as a guide for the users of software products. These systems aim to guarantee a successful user experience by helping in performing tasks. Early on, off-line user manuals were mostly the mediums of user assistance, and technically, they were independent of the systems they belong to. The upward trend in user assistance systems is that the provision of assistance is automated through some attached mechanisms to the software systems. There have been numerous proposals introducing fresh and novel methods for the purpose of automated user assistance. Specifically, embedded user assistance consists of instructional or conceptual information that appears within a software application window. It includes embedded help that appear within the application, field labels, and page overviews. The overall objective of this thesis is to reveal the state of the art advances in user assistance systems, and to propose a tool framework for developing contextsensitive user assistance systems. Firstly, we conducted two systematic literature reviews for both automated and embedded user assistance systems. The systematic literature reviews are required for acquiring solid background on embedded user assistance systems as well as for exploring the main obstacles to automated user assistance systems. The research findings are presented in parallel with the work published in the literature, and we aim at revealing a variety of techniques used for automated and embedded user assistance. The systematic reviews are conducted by a multiphase study selection process under a lot of articles obtained by dedicated search strategies. Since there has been no study to systematically undertake the state of user assistance systems, our work has a pioneering value of contents providing a road-map of current trends for further researchers in the field of user assistance. Having analyzed the results of systematic reviews, we conducted a survey of help authoring tools that revealed the lack of generalized context-sensitive user assistance solutions. Also, the utilization of methods, algorithms and tools differs from domain to domain, being rather scattered. We aimed at developing embedded context-sensitive user assistance systems, which is not trivial and has to meet several challenges. Unfortunately, user-assistance concerns such as help content and related weaving information cannot be easily localized in single modules and as such tend to crosscut multiple modules. The reuse of user assistance tools for different applications is required because developing custom-based user assistance for each separate application is laborious. Consequently, the obstacles related to the development of context-sensitive user assistance systems have brought out the idea of a tool framework for this purpose. To address these issues we developed an aspect-oriented tool framework Assistant-Pro that can be used to develop context-sensitive embedded user assistance for multiple applications. The framework provides tools for defining the process model, defining guidance related to process steps, and modularizing and weaving help concerns in the target application for which user guidance needs to be provided. The tool has been originally developed and validated in the context of Aselsan, a large Turkish defense electronics company.