|
Home
Software process improvement Agile software development JAD and RAD System requirements System functional specification |
System requirements.
Requirements definitionA requirement is a statement (or series of statements) that document a necessary attribute, capability, characteristic, or quality of a system in order for it to have value and utility to a user. In its most essential definition the requirements can be applied to a:-
In the commercial world the process is a business process and the process component requirements would be system components that contribute to the overall business process requirements. Consider the Sales order process, this would contain process components (computer based) for calculating tax, goods availability etc. as well as manual processes for picking and packing the goods. Both the complete process and process components would have requirements associated with them. Requirements scope
Most people working in software would view requirements as pertaining to a software component, i.e. software requirements. When a separate technology group exists to provide software based on a requirements specification then
the software requirement becomes the specification and the measure of the software quality becomes meeting the specification.
How are requirements specified?
Regardless of the scope of the requirements the specification of the requirement is typically a statement of a capability or constraint. The term constraint is sometimes referred to as a non-functional requirement. For example a non-functional requirement may pertain to throughput, so that a requirement statement of:-
In the above requirements it is not important what the scope of the system is, in that it could be the computer system or the whole manual and computer processes. What is important is that these types of requirements do not relate to how the orders are processed but rather to how fast the orders are processed. Now consider the following requirements:- The above two requirements are functional requirements and describe what functionality of the system is required. In practice there are many notations for describing the functional and non-functional requirements. Structured English is one of the more useful and this should be done using objects (i.e. nouns) from a single data dictionary. What versus HowFor all requirements, regardless of scope, the requirement should be defined in terms of What is required and not how the requirements should be satisfied. The implementation of the requirement into the system is the responsibility of system's designers. The more scope the systems designers have, to satisfy the given requirement, the greater number of options will be available for consideration. If the requirements contain how something should be implemented then the design moves into the requirement and there are good reasons to keep the design and the requirement separate. The main reason for separating requirements from design, or the what from the how, is that if the essential requirement changes the design can be changed accordingly. If the requirement is embedded in the design then it is difficult to see the wood from the trees and the essential value or purpose of the system is lost. ConclusionsA requirement is a statement of capability of a given system. The system can have a wider scope, to include manual process. The requirement can be functional or non-functional. Whether functional or non-functional, and regardless of scope, it is preferable to separate the requirement from the solution. The requirement should specify what is required while the design should specify how this is achieved. No guarantee (or claim) is made regarding the accuracy of this information. Any questions or comments should be sent to:-
|