Define the workflow

This step should result in

The first step is to define the workflow of your web-application. I usually do this by drawing the workflow in form of an informal state-diagram, where interaction with the user is represented by a node and a data process is represented by a transition arch. A node can also represent an intermediate state in the data process, that is, a state where a choice in the flow of work has to be made.

To begin with, define the workflow as detailed as possible, using a rich set of nodes. When the complete workflow is captured the process of reducing the number of nodes begins. A state that is represented by multiple nodes is refined into one node, augmenting the set of transitions to and from that state. Intermediate nodes that only occures once is removed and included in a data process. This reduced graph is the ground for the specification of the commmand chain configuration.

Figure 10.1. Part of a workflow

Part of a workflow

Define the steps in the data process for each transition, try to define the steps as fine-grained as possible. Steps that demarcate some logical entity defines a command. Steps that occure in several data processes defines a command that can be reused. The sequence of commands, derived from the steps, is the chain of commands that implements the data process.

Nodes that represents an interaction with the user defines a view, normally implemented as a JSP. The graph provides information about which events (actions) that can be initiated from the view. Normally these events are initiated in response to user activities and the eventhandler is the command-chain that is associated with the event. Specify the purpose of each such node (JSP) and the outgoing transitions (events), this will be used by the GUI-developer.