Publisher Summary For many years, the theory and practice of knowledge acquisition for knowledge-based systems tended to focus on how to elicit and represent knowledge in a context-free way. More recently, the evolution of the design of software agents has forced the focus to shift so that the context of the interaction between human and software agents has become the unit of analysis. In terms of empirical research, the initial goal was to establish a unified model that would guide knowledge elicitation for the design of software agents. The situation recognition and analytical reasoning model has been developed over the last 10 years to serve this goal. Subsequently the knowledge block representation has been elaborated as a mediating representation to help formalize elicited knowledge from experts or, more generally, end-users. Hence, human-centered automation studies have more recently started to focus on the requirements for the design and evaluation of human-like systems that are currently called software agents. The chapter introduces the cognitive function analysis method that helps elicit task/activity models from experts.