Software Review

Software review is an essential part to maintain software quality. Before, the processes, standards and models for assuring software quality were presented, but now, it is time to delve into the actual tasks for verification and validation. Starting with the title of this blog post. As always, the definiton of the topic will be needed in order to continue. Software Review can be defined as:

“It is a systematic inspection of code in order to find errors, enhance the product, and to validate its vital features and components”

This serves the purpose of checking if the software is meeting its requirements, and to adjust development accordingly. There are many benefits that come with applying software reviews to all the stages of the Software Development Life Cycle (SDLC), including the necessary software quality, reduction in the time of production and making testing time & cost effective.

There are three main types of software review, that have different roles and are applied in different stages of the SDLC.

Software Peer Review

These reviews are done by the creator of the code, along with other developers. This helps to check the quality of the software, to find defects and solve then. It is the most basic model of review, and that is why is the most used one. There many types of software peer review.

  • Code Review: a systematic evaluation of the code structure is done, against software standards and procedures.
  • Pair Programming: two or more developers work together, and review each other’s code.
  • Informal: a review that is conducted without the need of a large group or the documentation.
  • Walkthrough: this is a well structured review conducted by a lead team member, usually from the quality assurance department. It is done to detect errors in the code. There are diffetent roles in this review:
    • Author: the creator of the code, acts as an observer and answers questions
    • Presenter: is the one that presents the product, and usually develops the agenda.
    • Moderator: the one that in charge of making everyone follow the agenda, and encourages participation from reviewers.
    • Reviewers: they evaluate the work, to make sure that the standards and guidelines are followed, the requirements are met, and the product is on the right track.
    • Scribe: in charge of taking notes, record the detected errors, comments, suggestions, and unsolved questions.
  • Technical Review: a team of qualified personnels examine the software.
  • Inspection: a formal type of peer review, where defined processes are used in order to review the code.
Software Management Review

This review is applied at the later stages of the development by the management representatives. This is to check the work status, and it is done in order to decide the next major steps of the project.

Software Audit Reviews

It is an external review , where auditors that are not part of the development team do an examinatio of the code. This is done by managerial level people.

Process of Software Review

The IEEE defined a standard for the steps that are required in order to create a complete software review process:

  • Entry Evaluation: a check-list by entry criteria tha ensures that all conditions are met to have a successful review.
  • Management Preparation: a management representative checks that the software review has all the required resources.
  • Review Planning: an objective is set, and the team of resources is formed based on it.
  • Preparation: the reviewrs prepare the reviewing tasks.
  • Examination nad Exit Evaluation: the evaluation is done, and reviewers share their results, and verify that all review tasks are done.
Review Key Products

There are important parts of the software development process that should be evaluated: plans, requirements, design, and code. For these for key work products exist different standards that can be applied to each one of them. Although eviews can be distributed diffetently for each key product:

Key ProductPeer to Peer ReviewWalkthrough ReviewInspection ReviewManagement Review
Plans✔✔✔✔
Requirements✔✔
Code✔
Design✔✔
References

Software Review. (2020). Software Review. ProfessionalQA. Retrieved from https://professionalqa.com/software-review

Melo, W., Shull, F., Travassos, G. (2001). Software Review Guidelines. Coppe/UFRJ. Retrieved from https://www.cos.ufrj.br/uploadfile/es55601.pdf

LalSingh, A. (2009). Guidelines to review Work Products. Rass Tools Limited. Retrieved from https://es.slideshare.net/AshokKumar1213/guidelines-to-review-work-products