You are on page 1of 23

Software Maintenance

Introduction
• Time period in which s/w product perform useful
work.
• It involves
– Enhancements the s/w products
– Adapting to new environment
– Correcting problem
– 70% s/w life cycle cost spent on it.
Enhancing Maintainability During Development
1. Analysis Activity:
• Determining customer requirements and constrains,
and establishing feasibility of the product.
• Develop standard and guidelines
• Set milestones for the supporting documents.
• Specify quality assurance procedures.
• Identify likely product enhancements.
• Determine the resources required for maintenance
• Estimate maintenance costs.
2. Standards and Guidelines:
• Developed to enhance the maintainability of s/w.
• Standard formats for requirements documentation
and
• Design specifications
• Structured coding conventions
• Standardized format for the supporting documents
– Test plan
– Principles of operation
– Installation manual
– Users manual.
• Quality assurance group are responsible
3. Design Activities
i). Architectural Design Activities:
• Emphasize clarity and modularity as design criteria.
• Design to ease likely enhancements.
• Use standardize notations to document
– Data flow
– Functions
– Structure
– interconnections
• Observe the principles of
– Information Hiding
– Data Abstraction
– Top-down Hierarchical Decomposition.
ii). Detailed Design Activities:
• Use standardized notations to specify
– Algorithms
– Data Structures
– Procedure interface specifications
• Specify side effects and Exception handling for
each routine provide cross-reference for a
directories.
• A call graph and cross reference directory
should be prepared to indicate the scope of
effect of each routine.
4. Implementation Activities:
• Use single entry single exit constructs.
• Use standard indentation of constructs.
• Use simple, clear coding style.
• Use symbolic constants to parameterized
routines.
• Provide margins on resources
• Provide standard documentation prologues for
each notation.
• Follow standard internal connecting guidelines.
5. Supporting Documents:
• 2 important documents
1.Maintenance Guide:
– Provides a technical description
– Hierarchy diagram
– Call graphs
– Cross-reference directories for the system.
– External description
• Purpose
• i/p & o/p assertions
• side effects
• Global data
• Structures accessed
• Exception handling.
2. Test Suite description.
• File of test case developed during
– System integration testing
– Acceptance Testing
• Contain set of test data and actual results from
those data.
• When s/w is modified
– Test cases are added to the test suite
• Help to do Regression test
– Execution of test suite following s/w modification.
5. Other activities:
• Develop a maintenance guide.
• Develop a test guide
• Provide test suite documentation.
Managerial Aspect of S/W Maintenance

• A change Request filed by a user of s/w product is the


purpose of maintenance activity.
• Technical issues in s/w maintenance discussed in this.
1. Change Request:
• Tracking and control of maintenance Activities
• Regarding enhancement, adaptation, or error
correction.
• It is received by analyst.
• Analyst should submit to control board.
• Emergency trouble shooting and temporary fixes
– Handled an adhoc basis by the change analyst and
maintenance programmers.
1. Change Control Board:
• Reviews and approves all change request.
• The board may
– Deny a request
– Recommended a modified version of the change
– Approve the change as submitted.
– The analyst liaison between the change control board
and the request initiator.
– Approved changes are forwarded to the maintenance
programmers for action.
– The s/w is modified, revalidated and submitted to the
change control board.
– Modified s/w distributed to user sites specified by the
control board.
2. Change Request Summaries:
• Status of change request and s/w maintenance
activities should be summarized on a weekly or
monthly basis.
• The summary should report emergency
problem and temporary fixes.
• Trend Summary:
– A maintenance trends summary should be included
in each change request summary.
– It is a graph showing the number of new request
and
– The total number of open request as a function of
time.
3. Quality Assurance Activities:
• Ensure the quality of s/w after rewriting the
source code.
• Conduct audit & spot check
– Source code are not being destroyed by quick fix.

4. Organizing Maintenance Programmer


• Members of the development Team
• Separate group
Configuration Management

• Concerned with tracking and controlling of


work product.
5 laws of program Evaluation:
1. Continuing change
2. Increasing Complexity
3. Fundamental Law of program Evaluation
4. Conservation of organization stability
5. Conservation of familiarity
Configuration Management Data Bases
• How many versions of each product exit?
• How do versions differ?
• Which versions of which product are distributed
to which sites?
• What documents are available for each versions
of each produc?
Versions Control Library:
• Stand alone tools
• Macro view of product family
• Have identify stamp includes
– Version number
– Date
– Time
– Programmer identity
– Revision Control System(RCS) is an example
Source Code Metrics
• Measure the complexity of source code,
• Following properties are used
– Number of Operations
– Operands
– Complexity of Control Flow Graph
– No., of Parameters
– Global Variables
1. Halsteads Effort Equation
2. McCabes Cyclomatic Metric
1. Halsteads Effort Equation:
• Total no., of Operators – N1
• Total no., of operands – N2
• Number of unique operators n1
• Number of unique operands n2
2. McCabes Cyclomatic Metri
Other Maintenance Tools & Techniques
1. Text Editor
2. Debugging Aids
3. Cross-Reference Generators
4. Linkage Editors
5. Comparators
6. Complexity Metric Calculator
7. Version Control System
8. Configuration Management Data bases

You might also like