1. A computer implemented method for analyzing user interaction with a system, wherein the system comprises a plurality of states linked by a navigation structure and a user interface for navigating between the states, the method comprising: defining a first task as including a predefined first sequence of user accesses to two or more of the plurality of states; accessing user session data representative of a session of first user's interaction with the system, the session including a second sequence of user accesses to two or more of the plurality of states; configuring a computer processor to execute a pattern-matching algorithm to compare the second sequence of user accesses in the user session data to the first sequence of user accesses in the first task to determine whether at least a portion of the first task was performed by the first user; determining differences between the user session data and the first task if at least a portion of the first task was performed by the first user; and generating a recommendation for altering one or more of the plurality of states of the system, based on the determined differences between the user session data and the first task, to assist future users in performing the first task.