Software Review

Apr 19, 2020

Have you ever wondered what is a software product? Any technical document, whether full or partial, that can be produced as a deliverable of software development activity is known as a software product. It usually consists of contracts, projects plans, and budgets. Software, therefore, can be a combination of a product as a whole, which is created on the basis of requirement documents, specifications, designs, source code, user documentation, support related documents, test plans, and more.

Likewise, software review is a complete process that results in carefully examining a software product in a meeting or at any event. This process is usually undertaken by project personnels, managers, users, customers, or user representatives.

In software engineering, this term is used to define review of any work done by trained personnels, who inspect the software in order to determine the positive and negative aspects of a program. Therefore, to elaborate the importance of software review, here is a discussion on the same.

What is Software Review?

Software review is an important part of "Software Development Life Cycle (SDLC)" that assists software engineers in validating the quality, functionality, and other vital features and components of the software. As mentioned above, it is a complete process that involves testing the software product and ensuring that it meets the requirements stated by the client.

It is systematic examination of a document by one or more individuals, who work together to find & resolve errors and defects in the software during the early stages of Software Development Life Cycle (SDLC). Usually performed manually, software review is used to verify various documents like requirements, system designs, codes, "test plans" , & "test cases" .

Why is Software Review Important?

The reasons that make software review an important element of software development process are numerous. It is one such methodology that offers an opportunity to the development team & the client, to get clarity on the project as well as its requirements. With the assistance of software review, the team can verify whether the software is developed as per the requested requirements or not, and make the necessary changes before its release in the market. Other important reasons for Software Review are:

It improves the productivity of the development team.

Makes the process of testing time & cost effective, as more time is spent on testing the software during the initial development of the product.

Fewer defects are found in the final software, which helps reduce the cost of the whole process.

The reviews provided at this stage are found to be cost effective, as they are identified at the earlier stage, as the cost of rectifying a defect in the later stages would be much more than doing it in the initial stages.

In this process of reviewing software, often we train technical authors for defect detection process as well as for "defect prevention process" .

. It is only at this stage the inadequacies are eliminated.

Elimination of defects or errors can benefit the software to a great extent. Frequent check of samples of work and identification of small time errors can lead to low error rate.

As a matter of fact, this process results in dramatic reduction of time taken in producing a technically sound document.

Types of Software Reviews:

There are mainly three types of software reviews, all of which are conducted by different members of the team who evaluate various aspects of the software. Hence, the types of software review are:

Software Peer Review: Peer review is the process of evaluating the technical content and quality of the product and it is usually conducted by the author of the work product, along with some other developers. According to "Capacity Maturity Model" , the main purpose of peer review is to provide “a disciplined engineering practise for detecting or correcting defects in the software artifacts, preventing their leakage into the field operations”. In short, peer review is performed in order to determine or resolve the defects in the software, whose quality is also checked by other members of the team. Types of Peer Review:

"Code Review" : To fix mistakes and to remove vulnerabilities from the software product, systematic examination of the computer source code is conducted, which further improves the quality & security of the product.

To fix mistakes and to remove vulnerabilities from the software product, systematic examination of the computer source code is conducted, which further improves the quality & security of the product. "Pair Programming" : This is a type of code review, where two programmers work on a single workstation and develop a code together.

This is a type of code review, where two programmers work on a single workstation and develop a code together. Informal: As suggested by its name, this is an informal type of review, which is extremely popular and is widely used by people all over the world. Informal review does not require any documentation, "entry criteria" , or a large group of people. It is a time saving process that is not documented.

As suggested by its name, this is an informal type of review, which is extremely popular and is widely used by people all over the world. Informal review does not require any documentation, , or a large group of people. It is a time saving process that is not documented. "Walkthrough" : Here, a designer or developer lead a team of software developers to go through a software product, where they ask question and make necessary comments about various defects & errors. This process differs from "software inspection" and technical review in various aspects.

: Here, a designer or developer lead a team of software developers to go through a software product, where they ask question and make necessary comments about various defects & errors. This process differs from and technical review in various aspects. Technical Review: During the process of technical review a team of qualified personnels review the software and examine its suitability to define its intended use as well as to identify various discrepancies.

During the process of technical review a team of qualified personnels review the software and examine its suitability to define its intended use as well as to identify various discrepancies. Inspection: This is a formal type of peer review, wherein experienced & qualified individuals examine the software product for bugs and defects using a defined process. Inspection helps the author improve the quality of the software.

Software Management Review: These reviews take place in the later stages by the management representatives. The objective of this type of review is to evaluate the work status. Also, on the basis of such reviews decisions regarding downstream activities are taken.

Software Audit Reviews: "Software Audit" review or software review is a type of external review, wherein one or more auditors, who are not a part of the development team conduct an independent examination of the software product and its processes to assess their compliance with stated specifications, standards, and other important criterion's. This is done by managerial level people.

Formal Review Vs Informal Review:

Formal and informal review are two very important types of reviews that are used most commonly by software engineers to identify defects as well as to discuss ways to tackle these issues or discrepancies. Therefore, to understand these important types of software review, following is a comparison of the two:

Formal Review:

A type of peer review, "formal review" follows a formal process and has a specific formal agenda. It has a well structured and regulated process, which is usually implemented at the end of each life cycle. During this process, a formal review panel or board considers the necessary steps for the next life cycle.

Features of Formal Review:

This evaluates conformance to specification and various standards.

Conducted by a group of 3 or more individuals.

The review team petitions the management of technical leadership to act on the suggested recommendations.

Here, the leader verifies that the action documents are verified and incorporated into external processes.

Formal review consists of six important steps, which are:

Planning.



Kick-off.



Preparation.



Review meeting.



Rework.



Follow up.

Informal Review:

Unlike Formal Reviews, Informal reviews are applied multiple times during the early stages of software development process. The major difference between the formal and informal reviews is that the former follows a formal agenda, whereas the latter is conducted as per the need of the team and follows an informal agenda. Though time saving, this process is not documented and does not require any entry criteria or large group of members.

Features of Informal Review:

Conducted by a group of 2-7 members, which includes the designer an any other interested party.

Here the team identifies errors & issues as well as examine alternatives.

It is a forum for learning.

All the changes are made by the software designer.

These changes are verified by other project controls.

The role of informal review is to keep the author informed and to improve the quality of the product.

Process of Software Review:

The process of software review is a simple one and is common for all its types. It is usually implemented by following a set of activities, which are laid down by IEEE Standard 1028. All these steps are extremely important and need to be followed rigorously, as skipping even a single step can lead to a complication with the development process, which can further affect the quality of the end product.

Entry Evaluation: A standard check-list is used by entry criteria in order to ensure an ideal condition for a successful review. Management Preparation: During this stage of the process, a responsible management ensures that the software review has all the required resources, which includes things like staff, time, materials, and tools. Review Planning: To undergo a software review, an objective is identified. Based on the objective, a recognized team of resources is formed. Preparation: The reviewers are held responsible for preparing group examination to do the reviewing task. Examination and Exit Evaluation: In the end, the result made by each reviewer is combined all together. Before the review is finalized, verification of all activities is done that are considered necessary for an efficacious software review.

Conclusion:

From the above discussion, we can conclude that software review is a vital part of "software development life cycle (SDLC)" that helps developers and other members related to the project, to improve the quality and other components of the software. With the assistance of software review, a team can effortlessly identify and resolve issues from the software product, while meeting its requirements, standards, and other necessary criteria. In short, software review is an helpful process that allows developers to deliver a quality product to the client.