|
Home
Software process improvement Agile software development JAD and RAD System requirements System functional specification |
System functional specification definition.
System functional specification definitionA specification is a document that details a given requirement or set of requirements. In our article about requirements the following classifications were made and described:-
In this article, we go deeper into the functional requirement specification of a system. As we go deeper into the subject we also examine a useful tool for specifying the functional requirements of a system. Functional specification using the Data Flow Diagram (DFD)
Regardless of system scope (i.e. could include both manual and computer processes) specification of the required functionality is essential in order to be able to design the workflow or computational process components.
The functionality of a system is the essential purpose of the system and can be defined by a series of individual functions. For example a sales order processing system can be functionally defined by describing the following:-
These functions, which could include manually performed processes, specify what is required of the whole system. For a data processing system a series of processes can be linked together in order to depict the overall data flow or data processing. This arrangement of data processing elements is referred to as a DFD. The DFD notation is explained in many places on the web, this article focuses on the DFD as a useful method of documenting the system functional requirements. DFD in functional specification
Once you are familiar with the DFD, see other web resources, it should become clear that there is a strong relationship with process workflow and the DFD.
There are, however, some limitations of the DFD for describing workflow and these are:-
In summary the DFD is a specification of the data transformations of the system. The tool is not prescribing workflow as this is a systems design structure. The DFD data transformations are very powerful descriptions of functionality as they include:- The above derivations do not describe how the requirement is achieved but rather they specify the functional requirement in terms of what is required. These derivations that are shown on a DFD become part of the system specification. Notice all requirements cannot be specified on the DFD, for example if the goods are required to be shipped in 3 days of an order being placed then this is a non-functional requirement and cannot be depicted as a data flow (or data derivation). That said the DFD diagram is a powerful tool for depicting the functional requirements. DFD versus Workflow
Process diagrams (i.e. workflows) are typically representations of How processing takes place and they are not requirements specifications. It is possible to construct an abstract process diagram, i.e. in UML there is an Activity diagram or a State diagram that could be used to describe the functionality.
In practice these levels of abstraction for specification of What is required become confusing for the end user and sponsor and it is difficult to separate them from the physical workflow. That is why we would advocate using the DFD for the logical view and then move to a workflow to document the physical processes.
How the DFD facilitates the design
Once the functional requirements, e.g. DFD, are specified and the data dependencies for the discreet functions are known the designer has both the minimum constraints and the maximum implementation options available.
As soon as the designer, and this could be process designer (one that includes manual processing) begins to assign roles and creates a physical workflow then they are narrowing the implementation options.
In the final design only one workflow and systems design is chosen. There could be a degree of flexibility within the selected design, i.e. path alternatives, but in essence the designer chooses one out of a huge number of alternative solutions.
The DFD is an ideal tool for both separating out the logical functional requirements and allowing design traceability. No guarantee (or claim) is made regarding the accuracy of this information. Any questions or comments should be sent to:-
|