1 / 42

Using IBM Rational Unified Process for software maintenance

Using IBM Rational Unified Process for software maintenance. Mats Wessberg Consolidate AB mats.wessberg@consolidate.se. Objective. To show how the IBM Rational Unified Process can be adapted to fascilitate maintainance of a continuously evolving software system. Background.

Download Presentation

Using IBM Rational Unified Process for software maintenance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using IBM Rational Unified Process for software maintenance Mats Wessberg Consolidate AB mats.wessberg@consolidate.se

  2. Objective To show how the IBM Rational Unified Process can be adapted to fascilitate maintainance of a continuously evolving software system.

  3. Background • Software maintenance costs from 40 to 80 percent of overall software lifecycle costs [Journal of software maintenance, June 1992] • The tradtional view on maintenance is that it’s unplannable and out of control • The potential for improvements in this area is great • Cost can be reduced

  4. Agenda • The software lifecycle • Adapting RUP for maintenance • Setting up a maintenance organization • Implementation roadmap • Summary

  5. Agenda • The software lifecycle • Development projects • Types of maintenance • Maintenance models • Adapting RUP for maintenance • Setting up a maintenance organization • Implementation roadmap • Summary

  6. The lifecycle of a software system Pre- study Development project Transfercontrol Maintenance Phase-out

  7. Software complexity over time Actual progression Complexity Modifications Wanted progression Time Source: IEEE Computer Society Press, 1996

  8. Development project recommendations Use a RUP driven approach Create a maintenancefriendly architecture Explore the product vision

  9. Develop a completely new maintenance friendly system Breathe life into the existing system by e.g. establishing a RUP baseline Developmentcost 2nd system 3 years 10 years 6 years What if you have an existing system? Accumulated lifecycle cost Continue maintenance on the non-maintenance friendly existing system Developmentcost of the system

  10. Types of maintenance Corrective Adaptive Complex Enhancements Perfective

  11. Conducting traditionalunplanned work Introducingmaintenance projects Maintenance models Conducting traditionalunplanned work Introducingmaintenance projects

  12. Conducting traditionalunplanned work Maintenance models Conducting traditionalunplanned work Introducingmaintenance projects Introducingmaintenance projects

  13. Pros and cons with traditional unplanned work • Suitable for corrective, adaptive and preventive maintenance • Light organization • Unstructured, not goal-orientated • Depending on individuals • No holistic view • Tends to add complexity and regression

  14. Improving traditional unplanned maintenance work • The principles of RUP can still be used • The best practices • Risk driven approach • Activities and guidelines • Consider the work as transition iterations • Update existing or add new RUP artifacts

  15. Introducingmaintenance projects Maintenance models Conducting traditionalunplanned work Conducting traditionalunplanned work Introducingmaintenance projects

  16. Pros and cons with maintenance projects • Suitable for enhancements and other major maintenance tasks • Structured, goal-oriented • Requires a more complex organizational framework • No holistic view

  17. Conducting traditionalunplanned work Best Choice Introducingmaintenance projects Maintenance models Conducting traditionalunplanned work Introducingmaintenance projects

  18. Agenda • The software lifecycle • Adapting RUP for maintenance • Defining maintenance projects • RUP’s change process • Using the change process for maintenance projects • Setting up a maintenance organization • Implementation roadmap • Summary

  19. What is a maintenance project? A maintenance project is a planned undertaking that uses RUP to accomodate major and/or complex modifications to an existing software system.

  20. Maintenance projects • RUP is a process framework which can be tailored to fit all kinds of software development – including maintenance • Enhancements and other complex modifications require the formalism of a process and structure of a project • We should be able to adapt RUP for such changes as well!

  21. Review Change Request Approveand closecase Schedule and assignwork Verifychanges Makechanges Submit ChangeRequest RUP’s change process

  22. The change process in development projects User release1.0 Internal release Internal release Development project

  23. Mapping the change process to maintenance projects Make criticalchanges Makeotherchanges Construction Elaboration Review Change Request Approveand closecase Schedule and assignwork Verifychanges Makechanges Transition Inception

  24. Review Change Request Schedule and assignwork Mapping the change process to maintenance projects Make criticalchanges Makeotherchanges Construction Elaboration Approveand closecase Verifychanges Makechanges Transition Inception

  25. Build an architectural prototype Requirements Set up and plan project, identify scope and risks Design Implementation Business Case Project Plan Risk List Inception Inception phase Initiate a new maintenance project

  26. Make criticalchanges Makeotherchanges Construction Elaboration Makechanges Mapping the change process to maintenance projects Review Change Request Approveand closecase Schedule and assignwork Verifychanges Transition Inception

  27. Modify the architecture and build for some change request Build for some more of a change request Build for some more of a change request Elaboration and Construction phases Rework Rework Construction Elaboration

  28. Approveand closecase Verifychanges Mapping the change process to maintenance projects Make criticalchanges Makeotherchanges Construction Elaboration Review Change Request Schedule and assignwork Makechanges Transition Inception

  29. Minor updates and corrections due to user tests Requirements Finalize and end the maintenance project Release to customer Design Implementation User release Final build Transition phase Transition

  30. Characteristics of a maintenance project • Change drives maintenance projects • Inception and elaboration phases are typically shorter • The project is typically shorter • Architectural change is more complex • Planning may be more difficult • Depending on previous work

  31. Agenda • The software lifecycle • Adapting RUP for maintenance • Setting up a maintenance organization • Integral parts and its purposes • The work process • Using RUP’s change process for maintenance control • Implementation roadmap • Summary

  32. Integral parts of a maintenance organization Product Owner Maintenance SteeringGroup Maintenance Manager Maintenance CCB Maintenance Team Maintenance Organization

  33. Change Requests Maintenance Manager Maintenance CCB Maintenance SteeringGroup Project Manager Project Manager Project Team Project Team Operating the maintenance organization Maintenance Manager Unplanned work UnplannedWork MaintenanceProject MaintenanceProject Maintenance Team

  34. CR CR CR CR CR CR CR CR CR CR CR CR CR CR CR Enhancements Complex Maintenance projects Categorizing and prioritizing change requests CR CR CR CR CR CR CR CR CR CR CR CR CR CR CR CR CR Corrective Adaptive Perfective Unplanned work

  35. MaintenanceProjectTeam MaintenanceTeam Review Change Request Approveand closecase Schedule and assignwork Verifychanges Makechanges Submit ChangeRequest Maintenance RUP Using RUP’s change management process Standard RUP Project Team Member ProjectManager ProjectManager ProjectCCB Developers Testers MaintenanceManager MaintenanceManager MaintenanceCCB Testers Stakeholder

  36. Characteristics of a maintenance organization • Responsible for operations during the maintenance assignment • Uses a set of clearly defined roles and responsibilities • Oversees longterm goals and vision for the product

  37. Agenda • The software lifecycle • Adapting RUP for maintenance • Setting up a maintenance organization • Implementation roadmap • Summary

  38. Implementation roadmap Define themaintenance process Setup themaintenanceorganization Determinetool support Prepareto modify Evaluate the effort Launch operation

  39. Agenda • The software lifecycle • Adapting RUP for maintenance • Setting up a maintenance organization • Implementation roadmap • Summary

  40. Summary • The best opportunity to affect maintenance is the development project • If you have an existing system, consider your options • Differentiate between unplanned maintenance and maintenance projects • Maintenance projects are similar to development projects • Setup your organization in the right order • The CMM maturity level for software maintenance has a direct impact on the development quality and schedule accuracy [Software Engineering Institute, Carnegie-Mellon Univeristy; 2003]

  41. Questions

  42. Thank You

More Related