10. MAINTENANCE. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 10.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
Software Configuration Management
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
SE 555 Software Requirements & Specification Requirements Management.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Fundamentals of Information Systems, Second Edition
Introduction to Systems Analysis and Design
Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment.
CS 577b Software Engineering II -- Introduction
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Introduction to Computer Technology
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
S/W Project Management
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Introduction to Software Quality Assurance (SQA)
Chapter 2 The process Process, Methods, and Tools
Software Engineering Modern Approaches
System Analysis and Design
CLEANROOM SOFTWARE ENGINEERING.
Software change  Managing the processes of software system change.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 4.1.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software System Engineering: A tutorial
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Appendix B: Getting Started in Systems Analysis and Design.
CS223: Software Engineering Lecture 32: Software Maintenance.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
CS223: Software Engineering Lecture 33: Software Maintenance.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Engineering — Software Life Cycle Processes — Maintenance
Advanced Software Engineering Dr. Cheng
ITIL: Service Transition
Software Configuration Management
Software Project Configuration Management
Software Quality Assurance Software Quality Factor
Chapter 18 Maintaining Information Systems
IEEE Std 1074: Standard for Software Lifecycle
CS 425/625 Software Engineering Software Evolution
Software maintenance.
Chapter 27 Software Change.
Chapter 8 Software Evolution.
10. MAINTENANCE.
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Software Reviews.
Presentation transcript:

10. MAINTENANCE

Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 10 Focus Identify corporate practices Keep application useful after delivery - Fix defects - Enhance the application Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Learning Goals of This Chapter Understand how “Software Maintenance” is defined Appreciate the cost of maintenance Understand software maintenance issues Organize for maintenance Use IEEE maintenance standard Apply maintenance metrics Maintenance Development $ Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

1. Introduction

Service a Maintenance Request 1 1. Be prepared to keep required metrics. Include.. –… lines of code added –… lines of code changed –… time taken: 1. preparation 2. design 3. code 4. test 2. Ensure that the request has been approved 3. Understand the problem thoroughly –reproduce the problem otherwise get clarification 4. Classify the MR as repair or enhancement 5. Decide whether the implementation requires a redesign at a higher level –if so, consider batching with other MR’s 6. Design the required modification (i.e., incorporate the change) Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Service a Maintenance Request 2 7. Plan transition from current design 8. Assess change’s impact throughout the application –small changes can have major impact! 9. Implement the changes 10. Perform unit testing on the changed parts 11. Perform regression testing –ensure changes haven’t compromised existing capabilities 12. Perform system testing with new capabilities 13. Update the configuration, requirement, design and test documentation Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Software Maintenance Issues Management –Return on investment hard to define Process –Extensive coordination required to handle stream of Maintenance Requests Technical –Covering full impact of changes –Testing very expensive compared with the utility of each change focused tests ideal but expensive regression testing still required Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Activity Estimate (person-days) Activity Estimate (person- days) 1. Understand the problem and identify the functions that must be modified or added Compile and integrate into baseline Design the changes Test functionality of changes Perform impact analysis Perform regression testing Implement changes in source code Release new baseline and report results 1 5. Change SRS, SDD, STP, configuration status TOTAL Estimating the Cost of Servicing a Maintenance Request Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

2. Determine main- tenance scope all types? corrective only? limited corrective? -- section 2 3. Identify maintainers in-house? contracted? 4. Develop maintenance plan Change control approval procedure Help desk etc. -- section 5 5. Estimate costs -- table Perform maintenance -- section 3 RoadMap to Establish Maintenance (After Pigoski) 1a. Design for maintainability - - section 6.3 1b. Ensure supportability 1c. Plan for transition to maintenance 1d. Plan post-delivery logistics Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

2. Types of software maintenance

Types of Maintenance Lientz & Swanson Corrective –defect identification and removal Adaptive –changes resulting from operating system, hardware or DBMS changes Perfective –changes resulting from user requests Preventative –changes made to the software to make it more maintainable Fixing Enhancing

Example of Corrective Maintenance Request Maintenance Request 78 The computations that ensue when the player changes the value of a quality, are supposed to keep the total invariant, but they do not. For example, if the qualities are strength = 10, patience = 0.8 and endurance = 0.8 (sum = 11.6), and the player adjusts strength to 11, then the result is strength = 11, patience = 0 and endurance = 0, which do not sum to Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Example of Perfective Maintenance Request Maintenance Request 162 Modify Encounter so that the game begins with areas and connections a coordinated style.

Example of Perfective Maintenance Request Maintenance Request 162 Modify Encounter so that the game begins with areas and connections in a coordinated style. When the player achieves level 2 status, all areas and connections are displayed in an enhanced coordinated style, which is special to level 2 etc. The art department will provide the required images. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

3. Maintenance techniques

Impact of MR #162 Requirements Architecture Add: “change appearance when player achieves new levels” Accommodate ability to change global appearance: use Abstract Factory design pattern

Impact of MR #162 Requirements Architecture System code Interface specs Detailed design Function code Module (e.g., package) code Add: “change appearance when player achieves new levels” Accommodate ability to change global appearance: use Abstract Factory design pattern Add interface methods for Layout package Add classes and methods as per detailed design Modify gameplay control code Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Maintenance With and Without Reengineering

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Re-engineering Management Training; Re-engineering Encounter to Conform Current Encounter Play management version of Encounter Software re- engineering

Re-engineering Encounter to Conform to Management Training Current Encounter Senior Management Middle Management New Management Write training objectives Management simulation adaptation of Encounter Specify follow-up courses Take introductory mgmt. courses Take intermediate mgmt. courses Evaluate results Re-engineering Business process Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Continue to maintain Discontinue maintenance and Replace buy replacement OR build replacement –reverse engineer legacy system –or develop new architecture –possibly replace in phases 2. Incorporate as integral part of new application freeze maintenance 3. Encapsulate and use as server consider using Adapter design pattern Options for Dealing with Legacy Systems OR Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Legacy Architectures Legacy Application New system Extensions Modifications EncapsulationIncorporation (fig i)0

wrapper Legacy Architectures Legacy Application New system Extensions Legacy Application Modifications uses... Legacy Application EncapsulationIncorporation (fig i) (fig ed) (fig ew) New system New application Adapter 3 Adapter 2 Adapter 1 New system New application Adapter 3 Adapter 2 Adapter 1 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

4. IEEE standard

1. Problem identification 1.1 Input 1.2 Process 1.3 Control 1.4 Output 1.5 Quality factors 1.6 Metrics 2. Analysis 2.1 Input 2.2 Process Feasibility analysis Detailed analysis Control, Output, Quality factors, Metrics. 3. Design Input, Process, Control, Output, Quality factors, Metrics. IEEE “Software Maintenance” Table of Contents

1. Problem identification 1.1 Input 1.2 Process 1.3 Control 1.4 Output 1.5 Quality factors 1.6 Metrics 2. Analysis 2.1 Input 2.2 Process Feasibility analysis Detailed analysis Control, Output, Quality factors, Metrics. 3. Design Input, Process, Control, Output, Quality factors, Metrics. 4. Implementation 4.1 Input 4.2 Process Coding and & testing Risk analysis & review Test-readiness review Control, Output, Quality factors, Metrics. 5. System test Input, Process, Control, Output, Quality factors, Metrics. 6. Acceptance test Input, Process, Control, Output, Quality factors, Metrics. 7. Delivery Input, Process, Control, Output, Quality factors, Metrics. IEEE “Software Maintenance” Table of Contents

Five Attributes of Each Maintenance Step (IEEE) 1. Problem identification 2. Analysis 3. Design 4. Implementation 5. System test 6. Acceptance test 7. Delivery Step

Five Attributes of Each Maintenance Step (IEEE) 1. Problem identification 2. Analysis 3. Design 4. Implementation 5. System test 6. Acceptance test 7. Delivery StepAttributes a. Input life cycle arti- facts for this step b. Process required for this step c. How the process is controlled d. Output life cycle artifacts e. Process quality factors involved f. Metrics for this step

IEEE Maintenance phase 1: Problem Identification a. Input The Maintenance Request (MR) b. Process Assign change number Classify by type and severity etc. Accept or reject change Make preliminary cost estimate Prioritize c. Control Identify MR uniquely Enter MR into repository d. Output Validated MR e. Selected quality factors Clarity of the MR Correctness of the MR (e.g., type) f. Selected metrics Number of omissions in the MR Number of MR submissions to date Number of duplicate MR's Time expected to confirm the problem

IEEE Maintenance phase 2: Problem Analysis a. Input Original project documentation Validated MR from the identification phase b. Process Study feasibility of the MR Investigate impact of the MR Perform detailed analysis of the work required Refine the MR description c. Control Conduct technical review Verify … …test strategy appropriate …documentation updated Identify safety and security issues d. Output Feasibility report Detailed analysis report, including impact Updated requirements Preliminary modification list Implementation plan Test strategy e. Selected quality factors Comprehensibility of the analysis f. Selected metrics Number of requirements that must be changed Effort (required to analyze the MR) Elapsed time

IEEE Maintenance phase 3: Design a. Input Original project documentation Analysis from the previous phase b. Process Create test cases Revise … …requirements …implementation plan c. Control Verify design Inspect design and test cases d. Output Revised … …modification list …detailed analysis …implementation plan Updated … …design baseline …test plans e. Selected quality factors Flexibility (of the design) Traceability Reusability Comprehensibility f. Selected metrics Effort in person-hours Elapsed time Number of applications of the change

EncounterEnvironment Package (Before Modification) GameEnvironment GameCharacter GameArea EncounterEnvironment Area EncounterEnvironment GameAreaConnection EncounterAreaConnection Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Abstract Factory Applied to Encounter Area Level3Area Level3Factory getArea() getAreaConnection() EnvironmentFactory getArea() buildConnection() EncounterEnvironment Client 1..n

Abstract Factory Applied to Encounter Area Level2AreaLevel1AreaLevel3Area Level1Factory getArea() getAreaConnection() Level2Factory getArea() getAreaConnection() Level3Factory getArea() getAreaConnection() EncounterAreaConnection EnvironmentFactory getArea() getConnection() EncounterEnvironment Level1AreaConnectionLevel2AreaConnection Client Level3AreaConnection «create» 1..n Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Migration Plan for Level-based Graphics

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

IEEE Maintenance phase 4: Implementation a. Input Original source code Original project documentation Detailed design from previous phase b. Process Make code changes and additions Perform unit tests Review readiness for system testing c. Control Inspect code Verify CM control of new code Traceability of new code d. Output Updated … …software …unit test reports …user documents e. Selected quality factors Flexibility Traceability Comprehensibility Maintainability Reliability f. Selected metrics Lines of code Error rate

5. The management of maintenance

A Typical Maintenance Flow Proposed M. R.’s Approved M. R.’s Modified source & documentation Current source & documentation Change control board Maintenance engineer Written MR’s Customer Help desk nominal path Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

A Typical Maintenance Flow Proposed M. R.’s Approved M. R.’s Modified source & documentation Current source & documentation Change control board Maintenance engineer Written MR’s Maintenance manager Marketing Rejected MR’s Customer Help desk nominal path Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.Graphics reproduced with permission from Corel.

Maintenance & Patching Help desk 1. Interface with customer ComplaintsMarketing Patch (optional) Execute with patch Docu- ment patch

Maintenance & Patching 1. Get maintenance request 2. Approve changes Create patch 3. Plan changes Assess impact 4. Change code and documentation Coordinate Test changesImplement Update documentation Remove patch Docu- ment patch optional Execute with patch Release Document patch removal Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

disadvantages Keeps customers satisfied in the short run Enables continued operation and testing without repeated prevalence of the defect Avoids masking other defects Enables test of fix Duplicates work –patch and final fix both implemented Sometimes never replaced –proper fix deferred forever! Complicates final fix –must remove Complicates documentation process advantages Maintenance Patches Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Ranked Problems in Maintenance (Deklava) 1. Changing priorities 2. Testing methods 3. Performance measurement 3. Incomplete or non- existent system documentation 5. Adapting to changing business requirements 6. Backlog size 7. Measurement of contributions 8. Low morale due to lack of recognition or respect 9. Lack of personnel, especially experienced 10. Lack of maintenance methodology, standards, procedures and tools.....

Examples of Changing Priorities Top priority at release : Make this most bug-free game on the market –action: eliminate as many defects as possible... two months after release: Add more features than our leading competitor –action: add enhancements rapidly... six months after release: Reduce spiraling cost of maintenance –action: eliminate most severe defects only Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

6. Qualities in maintenance

Maintenance Metrics Number of lines of code under maintenance Person-months to perform various maintenance tasks Defect count Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

GoalQuestion Selected Corresponding Metrics Note: The numbered metrics are from the IEEE. Maximize customer satisfaction How many problems are affecting the customer? (1) Fault density (30) Mean time to failure Break / fix ratio [ Number of defects introduced by maintenance actions ] / [Number of defects repaired ] How long does it take to fix a problem? Fault closure Average time required to correct a defect, from start of correction work. Fault open duration Average time from defect detection to validated correction. Where are the bottlenecks? Staff utilization per task type: Average person-months to (a) detect each defect and (b) repair each defect. Computer utilization Average time / CPU time per defect. Optimize effort and schedule Where are resources being used? Effort and time spent, per defect and per severity category … o… planning o… reproducing customer finding o… reporting error o… repairing o… enhancing Minimize defects (continue focused development-type testing) Where are defects most likely to be found? (13) Number of entries and exits per module (16) Cyclotomic complexity Maintenance Metrics Classified by Goal

Predicting Relative Maintenance Effort Expect high maintenance costs Expect low maintenance costs Modules: Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Managing Maintenance Example profile of “fixing”-type MR’s Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Profiles of Open Maintenance Requests January February March April May June July August “Fixing” MR’s Enhancement MR’s # weeks open 5 10 E.g., in April, the average enhancement MR had been open for 8 weeks. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Profiles of Open Maintenance Requests January February March April May June July August “Fixing” MR’s Enhancement MR’s # weeks open 5 10 E.g., in April, the average enhancement MR had been open for 8 weeks. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Effects on Maintainability of Source Code Properties From Oman [Om1]..

Effects on Maintainability of Source Code Properties statement formatting -- affects a product’s maintainability, (but more is not necessarily better) vertical spacing horizontal spacing + intra-module commenting -- usually, more comments with the code make a product more maintainable From Oman [Om1] The maintainability of a product is affected by this property. “+” means that more of this property usually makes an application more maintainable; “-” means that more of the property usually makes an application less maintainable. Aspects of source code

Effects on Maintainability of Source Code Properties +modularity -complexity +consistency -nesting -control coupling +encapsu- lation +module re-use -complexity +use of structured constructs -use of un- conditional branching -nesting +cohesion -global data types -global data structures +data flow consistency +data type consistency -nesting -I/O complexity -local data types -local data structures -span of data +data initialized +overall program formatting +overall program commen- ting +module separation naming symbol and case statement formatting vertical spacing horizontal spacing +intra- module commen- ting From Oman [Om1] +modularity + means greater modularity usually makes an application more maintainable; -span of data means that the greater the scope of data structures, the less maintainable. Examples:

7. Summary

Summary of This Chapter “Software Maintenance” = post delivery Impact analysis is key IEEE standard covers process –identification, input, process, control, output, process quality, process metrics –order similar to development process Presents several management challenges –manage flow of MR’s –motivate personnel –ensure all documentation kept up-to-date Metrics: plot repairs and enhancements Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.