0% found this document useful (0 votes)
85 views23 pages

SE Unit IV - Solved Important Questions

Software maintenance is the process of modifying software after delivery to customers. It includes correcting faults, improving performance, and accommodating new hardware or systems. There are four categories of maintenance: corrective, adaptive, perfective, and preventive. Boehm's model conceptualizes maintenance as an economic process in a closed loop, where a manager evaluates proposed changes based on objectives and constraints and allocates resources accordingly. The model estimates annual maintenance effort based on prior development effort and annual code changes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views23 pages

SE Unit IV - Solved Important Questions

Software maintenance is the process of modifying software after delivery to customers. It includes correcting faults, improving performance, and accommodating new hardware or systems. There are four categories of maintenance: corrective, adaptive, perfective, and preventive. Boehm's model conceptualizes maintenance as an economic process in a closed loop, where a manager evaluates proposed changes based on objectives and constraints and allocates resources accordingly. The model estimates annual maintenance effort based on prior development effort and annual code changes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Q1. What is Software Maintenance? Explain the categories of Maintenance.

(5m)
Software Maintenance is the process of modifying a software product after it has been
delivered to the customer. The main purpose of software maintenance is to modify and update
software applications after delivery to correct faults and to improve performance.

Need for Maintenance


Software Maintenance must be performed in order to:
 Correct faults.
 Improve the design.
 Implement enhancements.
 Interface with other systems.
 Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
 Migrate legacy software.
 Retire software.

Challenges in Software Maintenance:


The various challenges in software maintenance are given below:

 The popular age of any software program is taken into consideration up to ten to fifteen
years. As software program renovation is open ended and might maintain for decades
making it very expensive.
 Older software program’s, which had been intended to paintings on sluggish machines
with much less reminiscence and garage ability can not maintain themselves tough in
opposition to newly coming more advantageous software program on contemporary-day
hardware.
 Changes are frequently left undocumented which can also additionally reason greater
conflicts in future.
 As era advances, it turns into high priced to preserve vintage software program.
 Often adjustments made can without problems harm the authentic shape of the software
program, making it difficult for any next adjustments.

Categories of Software Maintenance –


Maintenance can be divided into the following:
1. Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some bugs
observed while the system is in use, or to enhance the performance of the system.

2. Adaptive maintenance:
This includes modifications and updations when the customers need the product to run on new
platforms, on new operating systems, or when they need the product to interface with new
hardware and software.

3. Perfective maintenance:
A software product needs maintenance to support the new features that the users want or to
change different types of functionalities of the system according to the customer demands.

4. Preventive maintenance:
This type of maintenance includes modifications and updations to prevent future problems of the
software. It goals to attend problems, which are not significant at this moment but may cause
serious issues in future.

Q2. Mention the various problems faced during Maintenance. (5m)

Real-world factors affecting Maintenance Cost


 The standard age of any software is considered up to 10 to 15 years.
 Older softwares, which were meant to work on slow machines with less memory and storage
capacity cannot keep themselves challenging against newly coming enhanced softwares on
modern hardware.
 As technology advances, it becomes costly to maintain old software.
 Most maintenance engineers are newbie and use trial and error method to rectify problem.
 Often, changes made can easily hurt the original structure of the software, making it hard for any
subsequent changes.
 Changes are often left undocumented which may cause more conflicts in future.

Software-end factors affecting Maintenance Cost


1. Structure of Software Program
2. Programming Language
3. Dependence on external environment
4. Staff reliability and availability

Q3. Explain Boehm’s Model with a neat diagram. (5m)

In 1983, Boehm proposed a model for the maintenance process which was based upon the
economic models and principles. Economics model is nothing new thing, economic decisions are a
major building block of many processes and Boehm’s thesis was that economics model and principles
could not only improve productivity in the maintenance but it also helps to understand the process
very well.

Boehm maintenance process model represented as a closed-loop cycle as shown in the below diagram.
He theorizes that it is the platform where management decisions are made that drive the process. In
this stage, a set of required changes is determined by applying particular strategies and cost -benefits
evaluations to a set of proposed changes. Those approved changes are accompanied by company
budgets, which will largely determine the extent and type of resources expanded.

Boehm had understood that the maintenance manager’s task is one of the balancing and the pursuit of
the objectives of maintenance against the constraint imposed by the environment in which
maintenance work is carried out. That’s why, the maintenance process should be driven by the
maintenance manager’s decisions, which are typically based on the balancing of objectives against the
constraint. Boehm proposed a formula for calculating the maintenance cost as it is a part of the
COCOMO Model. All the collected data from the various projects, the formula was formed in terms of
effort.

Boehm used a quantity called Annual Charge Traffic (ACT), which is defined as:
The fraction of a software product’s source instruction which changes during a year either through
add, delete or modify.
The ACT is related to the number of change request,

ACT = KLOCadded + KLOCdeleted / KLOCtotal

The annual maintenance effort (AME) in person-months is measured as:


AME = ACT * SDE
Where,
ACT = Annual change traffic,
SDE = Software Development effort in person-months.

Example –
Annual change traffic (ACT) for a software system is 20% per year. The development effort is 700 PMs.
Compute an estimate the annual maintenance effort (AME). If the lifetime of the project is 15 years,
what is the total effort of the project ?

Explanation :
Given,
The development effort = 700PM
Annual Charge traffic (ACT) = 20%
Total duration for which effort is to be calculated = 15years.

The maintenance effort is a fraction of development effort and that is assumed to be constant.

AME
= ACT * SDE
= 0.20 * 700
= 140PM

Maintenance effort for 15 years,


= 15 * 140
= 2100PM

So, Total effort,


= 700 + 2100
= 2800PM

Q4. Differentiate between Boehm’s model and McCall’s model.(5m)


In 1978, B.W. Boehm introduced his software quality model. The model represents a hierarchical
quality model similar to McCall Quality Model to define software quality using a predefined set of
attributes and metrics, each of which contributes to overall quality of software.

The difference between Boehm’s and McCall’s model is that McCall’s model primarily focuses on
precise measurement of high-level characteristics, whereas Boehm’s quality model is based on a
wider range of characteristics.

Example – Characteristics of hardware performance, that are missing in McCall’s model.

The Boehm’s model has three levels for quality attributes. These levels are divided based on their
characteristics. These levels are:
 primary uses (high level characteristics),
 intermediate constructs(mid-level characteristics) and
 primitive constructs(primitive characteristics).

The highest level of Boehm’s model has following three primary uses stated as below –
 As is utility – Extent to which, we can use software as-is.
 Maintainability – Effort required to detect and fix an error during maintenance.
 Portability – Effort required to change software to fit in a new environment.

The next level of Boehm’s hierarchical model consists of seven quality factors associated with three
primary uses, stated as below –
 Portability –Effort required to change software to fit in a new environment.
 Reliability – Extent to which software performs according to requirements.
 Efficiency – Amount of hardware resources and code required to execute a function.
 Usability (Human Engineering) – Extent of effort required to learn, operate and understand
functions of the software.
 Testability – Effort required to verify that software performs its intended functions.
 Understandability – Effort required for a user to recognize logical concept and its applicability.
 Modifiability – Effort required to modify a software during maintenance phase.
Boehm further classified characteristics into Primitive constructs as follows- device independence,
accuracy, completeness, consistency, device efficiency, accessibility, communicativeness, self-
descriptiveness, legibility, structuredness, conciseness, augment-ability.
For example- Testability is broken down into:- accessibility, communicativeness, structuredness and
self descriptiveness.

Advantages :
 It focuses and tries to satisfy the needs of the user.
 It focuses on software maintenance cost effectiveness.

Disadvantages :
 It doesn’t suggest, how to measure the quality characteristics.
 It is difficult to evaluate the quality of software using the top-down approach.

So, we can say that, Boehm’s model is an improvised version of McCall’s model and it is used
extensively, but because of the top-down approach to see quality of software, Boehm’s model can’t be
employed always.

Q5. Explain the attributes of software maintenance life cycle. (5m)


Changes are implemented in the software system by following a software maintenance process,
which is known as Software Maintenance Life Cycle (SMLC).This life cycle comprises seven phases,
namely, problem identification, analysis, design, implementation, system testing, acceptance testing,
and delivery phase.
All the phases in SMLC evolve through four attributes, namely, input, process, control, and output. All
these attributes are listed in Table

Table Attributes of SMLC

Phases Input Process Control Output

Problem  Modification  Assign  Uniquely  Validated

identification request (MR) identification identified modification

phase number modification request


 Classify MR into request
appropriate 

category  Enter process


 Validated
 Accept or reject modification req
determinations
change uest in repository
 Assign a priority

Analysis  Project document  Feasibility study  Conduct  Feasibility

phase  Detailed analysis technical review report


 Repository informat
 Verify test  Updated
ion
strategy requirements
 Validated
 Verify whether  Test strategy
modification request
documentation is  Detailed
updated or not analysis report
 Identify  Preliminary
security issues modification
list

Design phase  Project document  Develop test  Software  Refined


 Source code cases inspections modification
 Databases  Revise /reviews list
 Output of analysis requirements  Verify design  Refined
phase  Revise detailed
implementation analysis
plan  Modified test
plans
Implementati  Source code  Software code  Software Updated
on phase  Project  Unit test inspections/revie software
documentation  Test preparation w
Updated
 Output of design review
design
phase
documents

Updated test
documents

Updated user
documents

Test
preparation
review report

System test  Updated software  Functional test  Software code  Tested and

phase documentation  Interfere testing listings integrated


 Test preparation  Test preparation  Modification system
review report review request  Test report
 Updated system  Test
documentation

Acceptance  Test preparation  Acceptance test  Acceptance test  Acceptance

test phase review report  Interoperability test report


 Fully integrated test
system
 Acceptance test
plans
 Acceptance test
cases
 Acceptance test
procedures

Delivery  Tested/accepted  Installation  Version  Version

Phase system  Training description description


document document
Q6. Write a note on Re-engineering. (5m)

Software Re-engineering is a process of software development which is done to improve the


maintainability of a software system. Re-engineering is the examination and alteration of a system to
reconstitute it in a new form. This process encompasses a combination of sub-processes like reverse
engineering, forward engineering, reconstructing etc.

Objectives of Re-engineering:
 To describe a cost-effective option for system evolution.
 To describe the activities involved in the software maintenance process.
 To distinguish between software and data re-engineering and to explain the problems of data re-
engineering.

Steps involved in Re-engineering:


1. Inventory Analysis
2. Document Reconstruction
3. Reverse Engineering
4. Code Reconstruction
5. Data Reconstruction
6. Forward Engineering

Re-engineering Cost Factors:


 The quality of the software to be re-engineered
 The tool support available for re-engineering
 The extent of the required data conversion
 The availability of expert staff for re-engineering

Advantages of Re-engineering:

 Reduced Risk: As the software is already existing, the risk is less as compared to new software
development. Development problems, staffing problems and specification problems are the lots of
problems which may arise in new software development.
 Reduced Cost: The cost of re-engineering is less than the costs of developing new software.
 Revelation of Business Rules: As a system is re-engineered , business rules that are embedded in
the system are rediscovered.
 Better use of Existing Staff: Existing staff expertise can be maintained and extended accommodate
new skills during re-engineering.

Disadvantages of Re-engineering:
 Practical limits to the extent of re-engineering.
 Major architectural changes or radical reorganizing of the systems data management has to be
done manually.
 Re-engineered system is not likely to be as maintainable as a new system developed using modern
software Re-engineering methods.

Q7. Mention and briefly explain different tools used for software maintenance. (5m)
Software maintenance involves modifying the existing software system and recording all the
modifications made to it. For this, various maintenance tools are used. One of the commonly used
maintenance tool is text editor. This tool creates a copy of the documentation or the code.

Table Software Maintenance Tools

Name Description

File comparator Compares two files or systems and maintains the record of the
differences in the files. In addition, it determines whether the two
files or the systems are identical.

Compiler and linker Compilers are used to check syntax errors and in some cases, locate
the type of errors. When the code is compiled, the linker is used to
link the code with other components, which are required for the
program execution. Linkers sometimes are used to track the version
numbers of the components so that appropriate versions are linked
together.

Debugger Allows tracing the logic of the program and examines the contents of
the registers and memory areas.

Cross-reference generator Assures that the changes in code are in compliance with the existing
code. When a change to a requirement is requested, this tool enables
to know which other requirements, design, and code components will
be affected.

Static code analyzer Measures information about the code attributes such as the number
of lines of code, number of spanning paths, and so on. This can be
calculated when the new versions of the system are developed.

Q8. Define Software Quality. Mention and explain the different quality methods associated with
a software product. (5m)
Quality software refers to a software which is reasonably bug or defect free, is delivered in
time and within the specified budget, meets the requirements and/or expectations, and is
maintainable. In the software engineering context, software quality reflects both functional quality as
well as structural quality.
Software Functional Quality − It reflects how well it satisfies a given design, based on the
functional requirements or specifications.

Software Structural Quality − It deals with the handling of non-functional requirements that
support the delivery of the functional requirements, such as robustness or maintainability, and the
degree to which the software was produced correctly.

Software Quality Assurance − Software Quality Assurance (SQA) is a set of activities to


ensure the quality in software engineering processes that ultimately result in quality software
products. The activities establish and evaluate the processes that produce products. It involves
process-focused action.

Software Quality Control − Software Quality Control (SQC) is a set of activities to ensure the
quality in software products. These activities focus on determining the defects in the actual products
produced. It involves product-focused action.

Q9. Mention the benefits of Software Quality Assurance. (5m)

Benefits of Software Quality Assurance (SQA):


 SQA produces high quality software.
 High quality application saves time and cost.
 SQA is beneficial for better reliability.
 SQA is beneficial in the condition of no maintenance for a long time.
 High quality commercial software increase market share of company.
 Improving the process of creating software.
 Improves the quality of the software.

Q10. Write a note on major Software Quality Assurance activities. (5m)

1. SQA Management Plan:


Make a plan for how you will carry out the sqa through out the project. Think about which set of
software engineering activities are the best for project. check level of sqa team skills.

2. Set The Check Points:


SQA team should set checkpoints. Evaluate the performance of the project on the basis of collected
data on different check points.

3. Multi testing Strategy:


Do not depend on a single testing approach. When you have a lot of testing approaches available use
them.

4. Measure Change Impact:


The changes for making the correction of an error sometimes re introduces more errors keep the
measure of impact of change on project. Reset the new change to change check the compatibility of
this fix with whole project.

5. Manage Good Relations:


In the working environment managing good relations with other teams involved in the project
development is mandatory. Bad relation of sqa team with programmers team will impact directly and
badly on project. Don’t play politics.

Q11. Explain the different types of software reviews. (5m)

Types of Software Reviews:


There are mainly 3 types of software reviews:

1. Software Peer Review:


Peer review is the process of assessing 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.
Peer review is performed in order to examine or resolve the defects in the software, whose
quality is also checked by other members of the team.

Peer Review has following types:


(i) Code Review:
Computer source code is examined in a systematic way.

(ii) Pair Programming:


It is a code review where two developers develop code together at the same platform.

(iii) Walkthrough:
Members of the development team is guided by author and other interested parties and the
participants ask questions and make comments about defects.

(iv) Technical Review:


A team of highly qualified individuals examines the software product for its client’s use and identifies
technical defects from specifications and standards.

(v) Inspection:
In inspection the reviewers follow a well-defined process to find defects.

2. Software Management Review:


Software Management Review evaluates the work status. In this section decisions regarding
downstream activities are taken.

3. Software Audit Review:


Software Audit Review is a type of external review in which one or more critics, who are not a part of
the development team, organize an independent inspection of the software product and its processes
to assess their compliance with stated specifications and standards. This is done by managerial level
people.

Q12. What is meant by software Maintenance? Explain the different types of Maintenance
models. (10m)
To overcome internal as well as external problems of the software, Software maintenance
models are proposed. These models use different approaches and techniques to simplify the process
of maintenance as well as to make is cost effective. Software maintenance models that are of most
importance are:

1. Quick-Fix Model:
This is an ad hoc approach used for maintaining the software system. The objective of this
model is to identify the problem and then fix it as quickly as possible. The advantage is that it
performs its work quickly and at a low cost. This model is an approach to modify the software code
with little consideration for its impact on the overall structure of the software system.

2. Iterative Enhancement Model:


Iterative enhancement model considers the changes made to the system are iterative in nature.
This model incorporates changes in the software based on the analysis of the existing system. It
assumes complete documentation of the software is available in the beginning. Moreover, it attempts
to control complexity and tries to maintain good design.

Iterative Enhancement Model is divided into three stages:


 Analysis of software system.
 Classification of requested modifications.
 Implementation of requested modifications.
The problems with this model are the assumptions made about the existence of full documentation
and the ability of the maintenance team to analyze the existing product in full.

3. The Re-use Oriented Model:


This model is based on the principla that maintenance could be viewed as an activity involving
the reuse of existing program components. The reuse model has four main steps:
i) Identification of the parts of the old system that are candidates for reuse.
ii) Understanding these system parts.
iii) Modification of the old system parts appropriate to the new requirements
iv) Integration of the modified parts into the new system.

A detailed framework is required for the classification of components and the possible
modifications. With the full reuse model the starting point may be any phase of the life cycle -the
requirements, the design, the code or the test data-unlike other models. For example, in the quick fix
model, the starting point is always the code.

4. Boehm's Model:
Boehm’s Model performs maintenance process based on the economic models and principles.
It represents the maintenance process in a closed loop cycle, wherein changes are suggested and
approved first and then are executed.
He theorizes that it is the stage where management decisions are made that drives the process.
In this stage, a set of approved changes is determined by applying particular strategies and cost-
benefit evaluations to a set of proposed changes. The approved changes are accompanied by their own
budgets, which will largely determine the extent and type of resources expanded.

5. Taute Maintenance Model:


Named after the person who proposed the model, Taute’s model is a typical maintenance model that
consists of eight phases in cycle fashion. The process of maintenance begins by requesting the change
and ends with its operation. The phases of Taute’s Maintenance Model are:

A. Change request phase:


ͦ Maintenance team gets a request in a prescribed format from the client to make a change.
ͦ This chamge may fall in any category of maintenance activities.
ͦ We identify the type of request and assign a unique identification number to the request.

B. Estimate phase:
 This phase is devoted to estimate the time and effort required to make the change.
 Objective is to have at least reasonable estimate of time effort.
 Impact analysis on existing system is also required to minimise the ripple effect

C. Schedule phase:
 To identify change requests for the next scheduled release and may also prepare the documents
that are required for planning.

D. Programming phase:
 Source coe is modified to implement the requested change.
 All relevant documents are updated acordingly.
 Final output is the test versio of the source code.

E. Test phase:
 Ensure that the modificatio is correctly implemented.
 The term used for teting is known as regression testing.

F. Documentation phase:
 After regression testing, system and user documents ar prepared/ updated before releasing
the system.

G. Release phase:
 The new software product along with updated documents are delivered to the customer.
 Acceptance testing is carried out by the users of the system.

H. Operation phase:
 After acceptance testing, software is placed under normal operation.
 During usage, when another problem is identified or new functionality requirement is felt
again a ‘Change request’ process is initiated.

Q13. Explain the Maintenance Process with the help of a neat diagram. (10m) or
Q14. Explain the Software Maintenance Life Cycle. (10m)
Changes are implemented in the software system by following a software maintenance process,
which is known as Software Maintenance Life Cycle (SMLC).This life cycle comprises seven phases,
namely, problem identification, analysis, design, implementation, system testing, acceptance testing,
and delivery phase.
The software maintenance process should be planned and structured in a way that it can be executed
effectively and efficiently. The following are the main phases in the software maintenance process:

#1. Identify the Requirement

 The first step in the software maintenance process is to identify the requirement.
 In this phase, the change requests are identified.
 These chanage requests come from the end user or picked up by developers from the error
reports or logs.
 Each Change Request (CR) or Modification Request (MR) is then evaluated to determine
whether it falls into one of four maintenance activities (corrective, adaptive, perfective, or
preventive).
 After categorization, each change request is given an identification number and priority in
order to establish the order of processing.

#2. Analysis

 In this phase, each of the change request is analyzed to determine and classify the type of
maintenance activity it requires.
 This stage usually entails an analysis of the costs (cost of modification and maintenance is
estimated) and potential consequences of such a modification.

#3. Design

 This phase is to design the modification or alteration.


 This includes understanding the requirement and designing a solution that meets the
requirement.
#4. Implementation

 This phase is to implement the modification or alteration.


 This involves coding the solution and unit testing it.

#5. System Testing

 The module or the system as a whole should undergo regression testing before it is released to
make sure that no defect is left undetected.
 It also confirms that no additional faults are introduced as a consequence of software
maintenance.
 Integration testing also conducted to verify that newly developed components work together
with the existing system.

#6. Acceptance Testing

 Acceptance testing is carried out on the fully integrated system by end users or by a third party
chosen by the end users.
 The primary aim of this testing is to ensure that all features of the software fulfill the
requirements stated in the change request document.

#7. Delivery

 This phase is to release the modified or altered software into production environment.
 This may involve re-packaging of existing software release, creation of new software release or
copying the existing software release to another location.
 In addition, the user is given with complete help documents that detail the software’s
operation as well as its hardware requirements.
 After the system has been delivered, the client conducts the final testing on the delivered
system.

Q15. Briefly explain Software Quality Assurance. (10m)


Software Quality Assurance (SQA) is simply a way to assure quality in the software. It is the set
of activities which ensure processes, procedures as well as standards are suitable for the project and
implemented correctly.

Software Quality Assurance is a process which works parallel to development of software. It


focuses on improving the process of development of software so that problems can be prevented
before they become a major issue. Software Quality Assurance is a kind of Umbrella activity that is
applied throughout the software process.

Software Quality Assurance has:


 A quality management approach
 Formal technical reviews
 Multi testing strategy
 Effective software engineering technology
 Measurement and reporting mechanism

Major Software Quality Assurance Activities:


1. SQA Management Plan:
Make a plan for how you will carry out the sqa through out the project. Think about which set of
software engineering activities are the best for project. check level of sqa team skills.

2. Set The Check Points:


SQA team should set checkpoints. Evaluate the performance of the project on the basis of collected
data on different check points.

3. Multi testing Strategy:


Do not depend on a single testing approach. When you have a lot of testing approaches available use
them.

4. Measure Change Impact:


The changes for making the correction of an error sometimes re introduces more errors keep the
measure of impact of change on project. Reset the new change to change check the compatibility of
this fix with whole project.

5. Manage Good Relations:


In the working environment managing good relations with other teams involved in the project
development is mandatory. Bad relation of sqa team with programmers team will impact directly and
badly on project. Don’t play politics.

Benefits of Software Quality Assurance (SQA):


 SQA produces high quality software.
 High quality application saves time and cost.
 SQA is beneficial for better reliability.
 SQA is beneficial in the condition of no maintenance for a long time.
 High quality commercial software increase market share of company.
 Improving the process of creating software.
 Improves the quality of the software.

Disadvantage of SQA:
 There are a number of disadvantages of quality assurance.
 Some of them include adding more resources, employing more workers to help maintain quality
and so much more.

Q16. Explain the process of software reviews with a neat diagram. (10m)
Software Review is systematic inspection of a software by one or more individuals who work
together to find and resolve errors and defects in the software during the early stages of Software
Development Life Cycle (SDLC). Software review is an essential part of Software Development Life
Cycle (SDLC) that helps software engineers in validating the quality, functionality and other vital
features and components of the software. It is a whole process that includes testing the software
product and it makes sure that it meets the requirements stated by the client.

Usually performed manually, software review is used to verify various documents like
requirements, system designs, codes, test plans and test cases.

Objectives of Software Review:


The objective of software review is:
 To improve the productivity of the development team.
 To make the testing process time and cost effective.
 To make the final software with fewer defects.
 To eliminate the inadequacies.

Process of Software Review:


Types of Software Reviews:
There are mainly 3 types of software reviews:

1. Software Peer Review:


Peer review is the process of assessing 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.
Peer review is performed in order to examine or resolve the defects in the software, whose
quality is also checked by other members of the team.

Peer Review has following types:


(i) Code Review:
Computer source code is examined in a systematic way.

(ii) Pair Programming:


It is a code review where two developers develop code together at the same platform.

(iii) Walkthrough:
Members of the development team is guided by author and other interested parties and the
participants ask questions and make comments about defects.

(iv) Technical Review:


A team of highly qualified individuals examines the software product for its client’s use and identifies
technical defects from specifications and standards.

(v) Inspection:
In inspection the reviewers follow a well-defined process to find defects.

2. Software Management Review:


Software Management Review evaluates the work status. In this section decisions regarding
downstream activities are taken.

3. Software Audit Review:


Software Audit Review is a type of external review in which one or more critics, who are not a part of
the development team, organize an independent inspection of the software product and its processes
to assess their compliance with stated specifications and standards. This is done by managerial level
people.
Advantages of Software Review:
 Defects can be identified earlier stage of development (especially in formal review).
 Earlier inspection also reduces the maintenance cost of software.
 It can be used to train technical authors.
 It can be used to remove process inadequacies that encourage defects.

Other important topics:


Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information from anything man-
made and reproducing it based on extracted information. It is also called back Engineering.

Software Reverse Engineering –


Software Reverse Engineering is the process of recovering the design and the requirements
specification of a product from an analysis of it’s code. Reverse Engineering is becoming important,
since several existing software products, lack proper documentation, are highly unstructured, or their
structure has degraded through a series of maintenance efforts.

Why Reverse Engineering?

Providing proper system documentation.


Recovery of lost information.
Assisting with maintenance.
Facility of software reuse.
Discovering unexpected flaws or faults.
Used of Software Reverse Engineering –

Software Reverse Engineering is used in software design, reverse engineering enables the developer
or programmer to add new features to the existing software with or without knowing the source code.
Reverse engineering is also useful in software testing, it helps the testers to study the virus and other
malware code .

You might also like