Software specification or requirements engineering is one of the four activities of software process. In software specification, the task is to identifying and defining the services to be provided from the system and what are the constraints in the operations of the system and in the development of the system. This stage, among the four activities of software process, is critical enough as this is the first stage of the process and defines the whole system. Missing or misunderstanding requirements, leaving gaps or errors will ultimately cause higher development cost, time and rework.
This stage ultimately generate a document for two ends of users; the end user or client and the developers of the system. The client needs a higher level of list of requirements while the developers will need a more detailed list of requirements to understand the work flow of the system. Following is an illustration of the process of software specification.
Four Phases of Software Specification:
- Feasibility Study: Analysis of the user needs to identify if the user needs can be satisfied with the current software and hardware technologies or not. Along with this, the study also includes the cost-effectiveness of the development and budget limitations. This stage should be done in short time to finally decide if further analysis should be performed or not.
- Requirements Elicitation & Analysis: In this stage, the analysts will be observing or testing existing similar systems, will be discussing directly or search for review of users of those systems, will analyze the task list etc. In this phase the analysts will specify the software system.
- Requirements Specification: In this phase the analysts will prepare documents on the gathered, discussed, finalized list of requirements. There will be two levels of requirements, one higher level set of requirements for the clients to understand the out-coming software product; and another more detailed lower level set of requirements for the developers to understand each functionality to be developed in detail.
- Requirements Validation: In this phase, the activity is to check the requirements for realism, consistency and completeness. During this phase, defects or errors in the set of requirements will be discovered and will be solved and then will be documented again, to finalize the software specification.