Saturday, 23 December 2017

Verification of Software Requirement Specification: Criteria and Techniques

Verification of Software requirement specification involves evaluating the software against the following criteria:
  • the functions should be specified and well-defined
  • References are complete
  • Tools and other relevant documentations are included
Completeness
This criteria requires that the software specification contains all the necessary artifacts needed to provide a standard information system.

Consistency
This requires that the external specification should be consistent with the internal specification, which means that requirements would be traceable. It also requires that there is not ambiguity in the specification document. Also a particular requirement should not be in conflict with other requirements.

Verifiability
 Specification should be specific, unambiguous and quantifiable. It should have the means to prove that the system satisfies  the specified requirements.

Feasibility
This means that the based on the foreseeable possibilities, the software could be implemented. For the specification to be feasible:
  • There should be enough resources to follow through
  • It should be usable at the end
  • It should be maintainable
  • Specification should take risks into consideration

Techniques for Software Verification of Software Requirements Specification
We would cover the following techniques for Verification of Requirement specification. 
Static Analysis: can be implemented in two ways:
  • Manual Review
  • Tool Support

Static Analysis
This technique involves carefully going through the specification documentation,  requirement documents, design, codes and other items without execution.
Static analysis can be implemented by the use of Checklist, which would contain a comprehensive list of the criteria for good requirement specification. Then the specification is examined to check if it harmonizes with various items in the checklist.
Static analysis can be implemented either by Manual Review or Tool Support

1. Manual Review: these approach includes the following types:
Informal Review: This approach does not have any well-defined formal procedure. It could be peer review
Walkthrough: This could also be informal but involves a review meeting led by tan author
Technical Review: This approach is a formal approach that involves review meetings with experts or preparatory meetings of reviewers
Inspection: This a formal process that is well-documented and led by a trained moderator.

Manual Review Steps
Manual Review involves six steps which are the following:
  1. Planing: In the planning step, the review criteria in defined and roles are allocated to the members of the team
  2. Kick-off: Documents are distributed to all members clearly explaining the objectives of the planned review
  3. Individual Preparations: Various specification artifacts are examined and relevant information such as possible defects and questions are outlined
  4. Review Meeting: This is the actual meeting where the team discusses based on the available information and the outcomes are documented
  5. Rework: This  step involves fixing defects and updating the the progress
  6. Follow-up: Checking the progress and rework carried out.

2. Tool Support
The second method of Static analysis as mentioned previously is Tool Support. This method employs automated tools to carry out the review process.
The checking of the requirement specification could be carried out using state machines. Some tools are Yakindu Statechart Tools or IAR virtualState