{"id":215,"date":"2017-12-24T01:14:00","date_gmt":"2017-12-24T00:14:00","guid":{"rendered":"https:\/\/kindsonthegenius.com\/blog\/2017\/12\/24\/verification-of-software-requirement-specification-criteria-and-techniques\/"},"modified":"2020-08-22T14:44:42","modified_gmt":"2020-08-22T12:44:42","slug":"verification-of-software-requirement-specification-criteria-and-techniques","status":"publish","type":"post","link":"https:\/\/kindsonthegenius.com\/blog\/verification-of-software-requirement-specification-criteria-and-techniques\/","title":{"rendered":"Verification of Software Requirement Specification: Criteria and Techniques"},"content":{"rendered":"<div style=\"color: #555555; font-size: 18px; line-height: 30px; text-align: justify;\">\n<div style=\"font-family: 'segoe ui';\">Verification of Software requirement specification involves evaluating the software against the following criteria:<\/p>\n<ul>\n<li>the functions should be specified and well-defined<\/li>\n<li>References are complete<\/li>\n<li>Tools and other relevant documentations are included<\/li>\n<\/ul>\n<p><b>Completeness<\/b><br \/>This criteria requires that the software specification contains all the necessary artifacts needed to provide a standard information system. <\/p>\n<p><b>Consistency<\/b><br \/>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.<\/p>\n<p><b>Verifiability<\/b><br \/>&nbsp;Specification should be specific, unambiguous and quantifiable. It should have the means to prove that the system satisfies&nbsp; the specified requirements.<\/p>\n<p><b>Feasibility<\/b><br \/>This means that the based on the foreseeable possibilities, the software could be implemented. For the specification to be feasible:<\/p>\n<ul>\n<li>There should be enough resources to follow through<\/li>\n<li>It should be usable at the end<\/li>\n<li>It should be maintainable<\/li>\n<li>Specification should take risks into consideration<\/li>\n<\/ul>\n<p><b>Techniques for Software Verification of Software Requirements Specification<\/b><\/div>\n<div style=\"font-family: 'segoe ui';\">We would cover the following techniques for Verification of Requirement specification.&nbsp;<\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\">Static Analysis: can be implemented in two ways:<\/div>\n<ul>\n<li>Manual Review<\/li>\n<li>Tool Support<\/li>\n<\/ul>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\"><b>Static Analysis<\/b><\/div>\n<div style=\"font-family: 'segoe ui';\">This technique involves carefully going through the specification documentation,&nbsp; requirement documents, design, codes and other items without execution.<\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\">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.<\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\">Static analysis can be implemented either by Manual Review or Tool Support <\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\"><b>1. Manual Review<\/b>: these approach includes the following types:<\/div>\n<div style=\"font-family: 'segoe ui';\"><i>Informal Review<\/i>: This approach does not have any well-defined formal procedure. It could be peer review<\/div>\n<div style=\"font-family: 'segoe ui';\"><i>Walkthrough<\/i>: This could also be informal but involves a review meeting led by tan author<\/div>\n<div style=\"font-family: 'segoe ui';\"><i>Technical Review<\/i>: This approach is a formal approach that involves review meetings with experts or preparatory meetings of reviewers<\/div>\n<div style=\"font-family: 'segoe ui';\">Inspection: This a formal process that is well-documented and led by a trained moderator.<\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<div style=\"font-family: 'segoe ui';\"><b>Manual Review Steps<\/b><\/div>\n<div style=\"font-family: 'segoe ui';\">Manual Review involves six steps which are the following: <\/div>\n<ol>\n<li><i>Planing<\/i>: In the planning step, the review criteria in defined and roles are allocated to the members of the team<\/li>\n<li><i>Kick-off<\/i>: Documents are distributed to all members clearly explaining the objectives of the planned review<\/li>\n<li><i>Individual Preparations<\/i>: Various specification artifacts are examined and relevant information such as possible defects and questions are outlined<\/li>\n<li><i>Review Meeting<\/i>: This is the actual meeting where the team discusses based on the available information and the outcomes are documented<\/li>\n<li><i>Rework<\/i>: This&nbsp; step involves fixing defects and updating the the progress<\/li>\n<li><i>Follow-up:<\/i> Checking the progress and rework carried out.<\/li>\n<\/ol>\n<p><\/p>\n<div style=\"font-family: 'segoe ui';\"><b>2. Tool Support<\/b><\/div>\n<div style=\"font-family: 'segoe ui';\">The second method of Static analysis as mentioned previously is Tool Support. This method employs automated tools to carry out the review process.<\/div>\n<div style=\"font-family: 'segoe ui';\">The checking of the requirement specification could be carried out using state machines. Some tools are Yakindu Statechart Tools or IAR virtualState<\/div>\n<div style=\"font-family: 'segoe ui';\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[359],"tags":[],"_links":{"self":[{"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/posts\/215"}],"collection":[{"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/comments?post=215"}],"version-history":[{"count":1,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/posts\/215\/revisions"}],"predecessor-version":[{"id":1496,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/posts\/215\/revisions\/1496"}],"wp:attachment":[{"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/media?parent=215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/categories?post=215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kindsonthegenius.com\/blog\/wp-json\/wp\/v2\/tags?post=215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}