You are on page 1of 16

Unit - 5

SOFTWARE TESTING, MAINTENANCE


PHASE & CASE Tools
SOFTWARE MAINTENANCE PHASE
Definition
– The term “Software Maintenance” is used to describe the software engineering activities
that occur after the delivery of software product to the customer.
– Maintenance activities involve making enhancements to the software product, making it
adaptable to the new environment and correcting problems
– Usually software maintenance constitute about 70% of total software life-cycle costs and
the development process requires about 30%.
– The primary goal of software development should be the production of maintainable
software systems.
– Maintainability can be expressed in terms of attributes that are built into the software
product like – a) Clarity, b) Modularity and c) Good internal documentation of the source
code with additional supporting documents.
– The maintenance phase focuses in change that is associated with :-
• Error correction.
• Adaptation to the new environment.
• Changes due to enhancements.
– The maintenance phase reapplies the steps of definition and development phases on the
existing software. Software maintenance is basically categorized as follows :-
• Corrective maintenance :- It takes place when the changes are made to the existing software for
correcting defects.
• Adaptive maintenance :- Its done when modifications are made to the existing software so that it
can adapt the change in the external environment ( ex., change in technology).
• Perfective maintenance or Enhancement :- Its done to provide customer specific benefits by
extending the software’s original functionalities or by adding extra functionalities.
• Preventive maintenance :- Its done in order to make the software more maintainable, adaptable,
Software Maintenance from Managerial point of
view

• A successful software maintenance activity


requires a combination of both Managerial
skills and technical skills.
Management of software maintenance:-
1) One of the most important aspects of the software maintenance involves
tracking and control of maintenance activities. Maintenance activity for a
software product usually occurs in response to a request filled by the user
for creating changes in the existing product.
2) A Request for Change is first reviewed by an Analyst. In cases where the
Analyst evaluates that the user problem is not caused due to the software
but instead of some misinterpretation, then the Analyst notifies the user
and with taking the user in to confidence closes the Change Request.
3) After evaluating a Request for Change by the user if the Analyst finds it
genuine then he submits the following to the Change Control Board :-
– The Change Request.
– The proposed solution.
– Estimate of the resources required to satisfy the request.
4) Change Control Board (SCM):-
– It reviews all the requests for change and decides to deny or approve the requests.
It may also recommend a modifies version of the change.
– The Analyst works as a mediator between the Change Control Board and the
request initiator.
– Approved changes are forwarded to the Maintenance Programmers for necessary
action in accordance with the priority and constraints established by the board.
– After prescribed modifications, revalidations the software is again submitted to the
board for approval. After proper approval from the board the master records are
updated along with the external documents. The modified software is distributed
to the user.
– The Change Control Board may consist of several high-level managers from both
software and non-software areas of the maintenance and user organizations.
Some times it may consist of a Quality Assurance Representative.
5) The Quality Assurance Group (SQA) :-
– Its primary function during software maintenance is to ensure that quality does
not degrade as a result of maintenance activities.
– This group conducts audits and spot checks to determine that external documents
are properly updated to indicate the new modifications.
– It also ensures that the structure and internal documentation of the source code is
not degraded as a result of small modifications.
– It also ensures that the master tapes are properly updated and protected (logically
and physically) and the requests for changes are catered in a timely manner.
Configuration Management during
Maintenance
• It’s concerned with tracking and controlling of the work
products that constitute a software product.
• When a work product passes a milestone, it’s placed under
configuration control; hence any subsequent changes to the
work product can be made only with formal agreement of
both the customer and the developer group.
• A work product placed under configuration control is said
to be “Base-Lined” or “Bench-Marked”.
• During software maintenance, a configuration management
plan and configuration management tools are required to
track and control various versions the software product.
CASE
• COMPUTER AIDED SOFTWARE ENGINEERING
(CASE)
• Computer Aided Software Engineering (CASE)
is a set of automated tools for implementing
software engineering activities and standards
during software development process.
Following is an brief overview of CASE
architecture
• The environment architecture is composed of the hardware
platform and operating system support which includes
networking and database management software, this forms
the basic ground for CASE.
• A set of portability services provides a bridge between CASE
tools and their integration framework along with the
environment architecture.
• The integration framework is a collection of specialized
programs that enable individual CASE tools to communicate
with each other, to create a project database and to exhibit
the same lookup for the software engineer as he would feel
when doing the software engineering procedures manually.
• Portability services provide CASE tools and their integration
framework to become portable and migrate along different
hardware platforms and operating systems without much
change.
• The CASE framework provides a very large
range of tools for conducting all the possible
software engineering activities. Here is a
listing of some of the commonly used tools
provided by a CASE framework :-
1) Information Engineering tools :-These tools model business
information as it moves between various organizations.
They represent – a) Business data objects, b) Relationships
between various business data objects and c) The flow of
business data objects between organizations.

2) Process Modeling and Management tools :-These tools


provide – a) Key elements of a process for better
understanding of the process, b) Links to the description of
work tasks related to a process and c) Links to other related
process management tools.
3) Project Planning tools :- They provides tools
related to – a) Software project effort and cost
estimation, b) Project scheduling.

4) Risk Analysis tools :- They provide information


and methods to a project manager in the
following areas – a) Building risk analysis
tables, and b) Provide guidance for risk
identification and analysis.
5) Project Management tools :- These tools provides
a project manager the following help – a) Creating,
tracking and monitoring project plans and
schedules, and b) Providing metrics to estimate &
evaluate project and product quality factors.

6) Documentation tools :- These tools help in the


following manner – a) Document production, and
b) Desk-top publishing of the documents.
7) System software tools : -These tools include – a) E-
mails, b) Electronic bulletin boards, and c)
Network communication software.
8) Software Configuration Management tools :- These tools
help in the following areas of SCM – a) Identification, b)
Version control, c) Change control, d) Auditing and e) Status
accounting.
9) PRO / SIM tools :- These are a set of Prototyping and
Simulation tools for predicting the behavior of a real-time
system before its production. They help the software
engineers to build prototypes of the systems for analyzing
the functionality, operation and response of the system.
10) Test Management tools :- These tools help in the process
of control and coordination for software testing
procedures. It has a Test Driver that reads one or more test
cases from a testing file, formats the test data to fit to the
needs of the software under test, and then invokes the
software to be tested.

You might also like