Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.

Similar presentations


Presentation on theme: "Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001."— Presentation transcript:

1 Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: http://www.engr.sjsu.edu/gaojerry Sept., 2001

2 Topic: Software Maintenance - Introduction to Software Maintenance - Software Maintenance Process - Software Changes and Impacts - Software Evolution - Software Maintenance Management Jerry Gao Ph.D.9/2001 Presentation Outline All Rights Reserved

3 Topic: Software Maintenance What is Software Maintenance? Software maintenance is the general process of changing a system after it has been delivered. Changes are implemented by modifying existing system components and, where necessary, by adding new components to the system. There are three different types of software maintenance: - Maintenance to repair software faults - Maintenance to adapt the software to a different operating environment - Maintenance to add to or modify the system’s functionality Why Software Maintenance ? After delivering a software product, usually it is necessary to change the program to repair the problems, meet new requirements, and adapt new technology and environment. How to accomplish the changes in a cost-effective way? Jerry Gao Ph.D.9/2001 Introduction To Software Maintenance All Rights Reserved

4 Topic: Software Maintenance Who are involved in software maintenance? - Customer supporters - Technical supporters - Software maintenance engineers and managers Who do it? A software maintenance team often is responsible for software maintenance. Typical cases which need software maintenance: - bug fixing and feature enhancement - change technologies and environments - new business/market changes --> new business rules & requirements - new customer needs new functions and services - organization/business structural changes lead product change requests - budgetary/scheduling constraints cause the redefinition of the product Jerry Gao Ph.D.9/2001 Introduction To Software Maintenance All Rights Reserved

5 Jerry Gao Ph.D.9/2001 Distribution of Software Maintenance Effort Topic: Software Maintenance Perfective 50% Adaptive 25% Corrective 21% Preventive 4%

6 Topic: Software Maintenance Jerry Gao Ph.D.9/2001 Software Maintenance Process All Rights Reserved Change requests Impact Analysis Release Planning System Release Change Implementation System Re-testing Fault repairPlatform Adaptation System Enhancement

7 Jerry Gao Ph.D.9/2001 Software Change Implementation Topic: Software Maintenance Requirements analysis Requirements Updating Software development Proposed changes

8 Jerry Gao Ph.D.9/2001 Software Maintenance Activities Topic: Software Maintenance Manage software maintenance Understand software under change Implement maintenance change Account for ripple effect Retest affected software Analyze software change impact New system Existing system AdaptabilityComplexity Modularity Documentation Self-descriptiveness Stability Consistency Testability Verifiability Completeness Impact/scope Traceability roadmap Change requests

9 Topic: Software Maintenance System development phaseTypes of product changes - Requirements analysis- Requirements Spec. Changes - System Design- System architecture changes - High-level design doc. changes - Low-level design doc. Changes - System implementation- Component changes - internal data and logic - internal functions - Component interface changes - Technology and/or language changes - System testing- Test case, test procedures, test data changes - Test scripts changes - Test specification changes - Document changes- changes in user manual, reference doc. - changes in system admin, doc. Jerry Gao Ph.D.9/2001 Software Changes and Impacts All Rights Reserved

10 Topic: Software Maintenance Types of system changes Types of product impacts Requirements changesAffect design, coding, and testing Document update Design changesAffect coding and tests Affect associated components Affect system architecture Affect related component interactions Implementation changesAffect test cases, test data, test scripts Affect test specification. Code change impact s - Test changesAffect other tests. Affect test documentation Document changesAffect other documents. Jerry Gao Ph.D.9/2001 Software Changes and Impacts All Rights Reserved

11 Jerry Gao Ph.D.9/2001 Software Changes and Impacts Topic: Software Maintenance

12 According to Lehman (1980), there are five laws of software evolution: - Continuing change - Increasing complexity - Large program evolution Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors are approximately invariant for each system release. - Organizational stability Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development. - Conservation of familiarity(perceived complexity) Over the lifetime of a system, the incremental change in each release is approximately constant. Jerry Gao Ph.D.9/2001 Software Evolution - Laws of Software Evolution All Rights Reserved

13 Jerry Gao Ph.D.9/2001 Software Maintenance Prediction Topic: Software Maintenance What parts of the system will be the most expensive to maintain? What will be the lifetime maintenance costs of this system? What will be the costs of maintaining this system over the next year? What parts of the system are most likely to be affected by change requests? How many change requests can be expected? Predicting maintainability Predicting maintenance costs Predicting system changes

14 Topic: Software Maintenance Configuration status reporting (called status accounting) is a SCM task that answer the following questions: - What happened? - Who did it? - when did it happened? - What else will be affected? Status reporting plays a vital role in the success of a large software development project. When many people are involved in a project, “the left hand does not know what the right hand is doing”. Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

15 Jerry Gao Ph.D.9/2001 Development Cost vs. Maintenance Cost Topic: Software Maintenance System 1 System 2 0100200300400500 Development costs Maintenance costs

16 Topic: Software Maintenance Key factors for higher maintenance costs are: - Team stability - Contractual responsibility - Staff skills - Program age and structure Other factors affecting maintenance effort: - Product quality, (requirements, design, code, and documentation) - Target environment (HW/SW) - Domain applications - System complexity Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

17 Topic: Software Maintenance Major team responsibility: Faults repairs: - Understand and analyze the problems - Locate the faults and their causes - Find the solutions, made the correction - Answer the questions from customer - Update documents Enhancements and environment update: - Understand product, including program, documents,... - Change analysis and impact analysis - Add new modules for new functions - Made changes for new features - Made changes for upgrading new technology and environment - Retest the product - Update documents Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

18 Topic: Software Maintenance Major maintenance problems: Managerial issues: - Hard to find the qualified staff - Hard to plan and schedule a project (in terms of cost and time) - Low morale and productivity - Tight schedules and demanding customers - High demands on communication and negotiation skills with customers. - Not easy to make the right decisions and priorities Technical problems: - Documents do not match with the products - Limited understanding of the product - Hard to conduct change analysis and impact analysis - Difficult to performance regression testing - Not easy to make correct changes without system degradation Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

19 Topic: Software Maintenance Major automated software maintenance tools: Management tools: - Problem management tool - System configuration management tool Static tools: - Static code analyzers - Cross-reference generators - Change analysis and impact identification tool Dynamic tools: - Program tracking tool (for program behaviors) - Performance monitoring tool - Debugging tool Testing tools: - Regression testing tool, automatic GUI replay Jerry Gao Ph.D.9/2001 Software Maintenance Tools All Rights Reserved

20 Jerry Gao Ph.D.9/2001 Measurements for Software Maintenance Topic: Software Maintenance


Download ppt "Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001."

Similar presentations


Ads by Google