With the advertising out of the way, let's take a look at the typicalcomponents of a functional specification.
As stated earlier, the functional specification begins where therequirements documents ends, and it performs the important function ofdescribing how the deliverable will meet the items listed in therequirements spec. It must therefore begin with the identification of thepurpose of the application and the business objectives to be fulfilled byit.
These objectives serve as the basis for derivation of the features requiredin the application. It's important to spend time on making an exhaustivelist of all the features that are required, although there will always be afew errant ones that you will miss out on in your first attempt.
Next, the target audience for the application should be described. Directinterviews and user profiles are just two of the methods that may be used toarrive at an idea of the audience base. Important factors to be capturedhere include age, educational background, most common uses for theapplication, current workflow for those tasks, and comfort level withsimilar applications. It is also important, at this point, to get an idea ofthe different user roles that the application must support, to assist indesigning security and privilege systems that will be implemented later.
With all this information at hand, you can make the first stab atstructuring all the raw data into a more organized framework. A goodapproach to follow here is to use the data collected about the featuresrequired and the workflow followed by the target users to divide theapplication into modules, which in turn encompass the relevant features.