Maintenance Phase - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Maintenance Phase

Description:

drudge work. Thankless task. Frustrating. Have to deal with frustrated users ... User report to re-create the fault. Provides for a mechanism to changing the product ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 22
Provided by: wilhelmin
Category:

less

Transcript and Presenter's Notes

Title: Maintenance Phase


1
Maintenance Phase
  • Chapter 16

2
The Maintenance Phase
  • Changes to the software product after the
    product has been accepted by the client,
    installed and used for its intended purpose
  • Maintenance is sometimes referred to as the
    Evolution of the product over time

3
Types of Maintenance
  • Maintenance performed during product development
  • Maintenance performed during the maintenance phase

4
Maintenance performed during product development
  • Changes in client requirements before the product
    is delivered
  • Fixing of faults detected before the product is
    delivered
  • Modification of components to be reused in the
    product.

5
Maintenance performed during the maintenance
phase (1)
  • Corrective
  • Correct faults in specification, design, coding,
    documents, etc.
  • Uses up 17.5 percent of maintenance time
  • Perfective
  • Changes made to improve the effectiveness of the
    product.
  • Uses up 60.5 percent of maintenance time

6
Maintenance performed during the maintenance
phase (2)
  • Adaptive
  • Changes made to response to changes in the
    environment in which the product operates.
  • Uses up 18 percent of maintenance time
  • Others
  • Uses up 4 percent of maintenance time

7
Steps in changing a product
  • Determine the cause of the product failure
  • In case of adaptive or corrective, determine the
    new requirements
  • Repair the fault
  • Test the repair
  • Perform regression testing
  • Update the documentation
  • Describe what was changed, by whom, and when

8
Required Skills of a Maintenance Programmer (1)
  • For corrective maintenance
  • Exceptional debugging skills
  • Ability to determine cause of failure
  • Ability to function effectively without adequate
    documentation

9
Required Skills of a Maintenance Programmer (2)
  • For perfective and adaptive maintenance
  • Highly skilled in all areas software development
  • Skilled in developing software specifications,
    design, implementation, integration and testing

10
Perception of Maintenance
  • In the software development industry, maintenance
    is viewed as
  • drudge work
  • Thankless task
  • Frustrating
  • Have to deal with frustrated users
  • Relegated to junior programmers
  • Unglamorous
  • This is why no one wants to be a maintainer

11
Management Responsibilities
  • Excellent maintenance is crucial to making
    clients happy
  • Managers must ensure that highly qualified
    programmers perform maintenance by
  • Giving maintainer the status and salary
    commensurate with maintenance effort
  • This will improve the attitude towards maintenance

12
Management of Maintenance (1)
  • Initiate maintenance through
  • Fault reports
  • Corrective maintenance
  • User report to re-create the fault
  • Provides for a mechanism to changing the product
  • Prioritization
  • Workarounds
  • Change in requirements
  • adaptive and perfective maintenance

13
Management of Maintenance (2)
  • Authorizing changes to the product
  • Authorize maintainers to change the product
  • Require maintenance SQA to test the product and
    release a new version
  • Distribute the new version to users
  • Ensuring maintainability
  • Maintainers should plan for maintainability of
    the changes being made to the software

14
Management of Maintenance (3)
  • Problem of repeated maintenance
  • If the person requesting the changes a sufficient
    clout ( i.e., money and authority), changes to
    software is unavoidable
  • Constant changes to the product results in
  • Deviation from original design making future
    changes more difficult
  • Documentations become less reliable
  • Regression testing files may become outdated
  • The whole product may have to be re-written

15
Reverse Engineering (1)
  • If the source code is the only available
    documentation
  • Use it to attempt to recreate the design and
    specification documents
  • Reverse engineering
  • CASE tools pretty printer or tools to construct
    flowcharts or UML diagram

16
Reverse Engineering (2)
  • If the executable is the only available artifact
  • Use it as a black box to reverse engineer the
    specifications, then use the reconstructed
    specification create a new version of the product
    using forward engineering

17
Reverse Engineering versus Forward Engineering
  • Reverse engineering
  • Takes the product from a lower level of
    abstraction to a higher level of abstraction
  • From code to design to specification
  • Forward engineering
  • Takes the product from a higher level of
    abstraction to a lower level of abstraction
  • From secification to design to code

18
Restructuring
  • Takes place on the same level of abstraction
  • Restructuring code
  • Restructuring specifications
  • Restructuring design
  • Improving the product without changing its
    functionality
  • Typically performed to increase maintainability

19
Testing
  • Test the repairs made
  • Perform regression testing
  • Regression test cases may need to be modified as
    a result of the changes made

20
CASE Tools
  • Version control
  • Configuration tool
  • MS Source Safe
  • ClearCase
  • sccs, rcs, cvs (UNIX)
  • CCC
  • Fault tracking
  • DevTrack

21
Metrics
  • For adaptive and perfective maintenance
  • All the metrics previously discussed the other SW
    phases
  • Total number of faults
  • By type
  • By severity
  • Status of current fault reports
  • How many fixed
  • How many pending
Write a Comment
User Comments (0)
About PowerShow.com