SlideShare a Scribd company logo
1 of 13
Software Maintenance
ī‚ˇ Software maintenance includes error corrections,
enhancement of capabilities, deletion of obsolete capabilities
and optimization
ī‚ˇ Any work done to change the software after it is in operation is
considered to be maintenance work
ī‚ˇ Maintenance may span for 20 years
Categories of Maintenance
Corrective Maintenance
ī‚ˇ Modifications initiated by defects
ī‚ˇ Design error, logic error and coding error defects
ī‚ˇ Design errors due to incorrect, incomplete or
misunderstood change request
ī‚ˇ Faulty logic flow and incomplete test data
ī‚ˇ Data processing errors
ī‚ˇ Emergency fixes like patching come to the rescue in
case of system failure
ī‚ˇ Patching causes ripple effect(change in one part of
the system may cause unpredictable change in other
parts)
Adaptive Maintenance
ī‚ˇ Modifications to match changes in environment
ī‚ˇ Business rules, govt policies and work patterns
ī‚ˇ Changes in hardware, software platform-compiler
and operating system
Perfective Maintenance
ī‚ˇ Improving efficiency and performance
ī‚ˇ Enhancement of existing system functionality
ī‚ˇ Making product cleaner structured and better
documented
Other Types of Maintenance
ī‚ˇ Preventive Maintenance: to correct long term
effects of corrective, adaptive and perfective
changes over time
ī‚ˇ Making program easier to understand
ī‚ˇ Includes code restructuring, code optimization and
documentation updating
ī‚ˇ Confined to Organization
Problems
During
Maintenance
ī‚ˇ Program written by other person in isolation
ī‚ˇ Program changed by a person who did not
understand it properly
ī‚ˇ Program listings are not structured
ī‚ˇ Maintained by persons who are not original authors
contributing to ripple effect
ī‚ˇ Some problems become clear when system is in use
ī‚ˇ Systems are not designed for change
Solutions to
Maintenance
Problems
ī‚ˇ Budget and effort Allocation: More time and
resources to be invested in design of more
maintainable systems
ī‚ˇ Complete Replacement of System: IF maintaining
cost = developing cost
ī‚ˇ Maintenance of existing system if replacement not
possible
Phases of
Maintenance
Process
ī‚ˇ Phase 1-Program Understanding: It is based on the
complexity, documentation and self-descriptiveness
of the program
ī‚ˇ Phase 2- Generating Maintenance Proposal: It is
affected by extensibility (it is the measure of the
extent to which program can support extensions)
ī‚ˇ Phase 3- Account for Ripple Effect: Stability of
system is affected by Ripple effect. Stability is
defined as the resistance to amplification of changes
ī‚ˇ Phase 4- Modified Program Testing: Program
testability is defined as measure of effort required
to adequately test program according to well
defined testing criterion
Maintenance Models
Quick-Fix Model
ī‚ˇ Ad hoc approach to maintaining software
ī‚ˇ Fix without detailed analysis for long term
effect
ī‚ˇ No or little documentation
ī‚ˇ Done due to pressure of deadlines and
for quick fixes
Iterative EnhancementModel
ī‚ˇ Based on philosophy that changes in
software system throughout its lifetime
are iterative process
ī‚ˇ Requires complete documentation
ī‚ˇ Done in three stages- 1.Analysis
2.Characterization
of proposed modification
3. Redesign and
Implementation
ī‚ˇ Supports code Reuse
ī‚ˇ In first iteration problem is identified and
in next iteration it is addressed
ī‚ˇ Problem is the full documentation is not
always available
Reuse Oriented Model
It involves reuse of old system and steps are
1. Identify parts of old system that can be
reused
2. Understand these parts
3. Modify appropriate to new requirements
4. Integration of modified parts
Boehm’s Model
ī‚ˇ Based on economic models and principles
ī‚ˇ Maintenance is represented as a closed
loop cycle
ī‚ˇ Maintenance is driven by Manager
Taute MaintenanceModel
It consists of 8 phases which are described
below
ī‚ˇ Change request Phase: Maintenance
team gets request which is then
identified and a unique number assigned
ī‚ˇ Estimate Phase: Devoted to have
reasonable estimate of time and effort
required
ī‚ˇ Schedule Phase: Identify the change
requests for next schedule
ī‚ˇ Programming Phase: source code
modified to implement change
ī‚ˇ Test Phase: Old and new test cases are
made. Regression Testing is done
ī‚ˇ Documentation Phase: System and User
documents are updated to main co-
relation
ī‚ˇ Release Phase: Software product
delivered and acceptance testing is
carried out
ī‚ˇ Operation Phase: Software placed under
normal Operation
Estimation
of
Maintenance
Costs
Belady And Lehman Model
ī‚ˇ Effort and cost can increase
exponentially if poor software
development approach is used.
ī‚ˇ M = P + Ke(c-d)
M: Total Effort Expended
P : Productivity Effort in Design,
Coding and Testing (Person-Months)
K: Constant
c: Complexity measure because
of bad design and documentation
d: Degree to which maintenance
team is familiar to software
Boehm Model
ī‚ˇ ACT stands for Annual Change
Traffic
ī‚ˇ It is defined as “The fraction of
Software Product source
instructions which undergo change
during a year either through
addition, deletion or modification
ī‚ˇ ACT = (KLOCadded
+KLOCdeleted)/KLOCtotal
ī‚ˇ (Annual Maintenance Effort) AME =
ACT*SDE*EAF
ī‚ˇ SDE: Software Development Effort
in person-months
ī‚ˇ EAF: Effort Adjustment Factor
Regression
Testing
Small changes in one part of system may have subtle
undesired effect in other unrelated parts
ī‚ˇ Regression testing is the process of retesting the
modified parts of the software and ensuring that no
new errors have been introduced into the previously
tested code
ī‚ˇ It increases confidence in program correctness,
located errors, preserve quality and ensure software
continued operation
ī‚ˇ Make use of existing test suites
ī‚ˇ Retest affected components that have been
modified
ī‚ˇ Budget gives no time for regression testing
ī‚ˇ Performed many times in software lifetime and
mainly in crisis situation
Selective Retest Techniques
ī‚ˇ Better than retest-all technique
ī‚ˇ Partition existing test suite containing
reusable, retestable and obsolete test cases
ī‚ˇ Obsolete test case specify incorrect input-
output relation(SpecificationObsolete) or no
longer exercise program
components(Coverage-Obsolete)
ī‚ˇ Three categories of Selective Retest
Techniques are:
1. Coverage Technique:Locate coverable
program components that have been
modified
2. MinimizationTechnique:Select minimal
set of test cases
3. Safe Techniques:Select every test case
ī‚ˇ Categories in which techniques are classified
are:
Inclusiveness: Extent of exposing fault
Precision: Ability to avoidchoosing test case
that will not cause errors
Efficiency: Measures computationalcost
Generality:Ability to handleDiverse language
Reverse
Engineering
ī‚ˇ Process to find difficult, unknown and hidden
information about software
ī‚ˇ Recover information from existing code or
documentation
ī‚ˇ Used in program comprehension, redocumentation,
recovery of design approach, identifying reusable
components and components that need
restructuring, high level description of system
ī‚ˇ Divided into various classes given below
ī‚ˇ Mapping from application domain to program
domain
ī‚ˇ Mapping between concrete and abstract level
ī‚ˇ Rediscovering high level structure
ī‚ˇ Missing link between program and semantics
ī‚ˇ Extract Reusable component
Levels of Reverse
Engineering
ī‚ˇ Redocumentation: Recreation of semantically
equivalent representation with same abstraction
ī‚ˇ To create alternative view and hierarchical data flow
ī‚ˇ Improve Documentation
ī‚ˇ Generate documentation for newly generated
program
ī‚ˇ Design Recovery: Identify and Extract higher level
abstraction from source code
ī‚ˇ To develop non-identical applications
Componentsof Reverse
Engineering Tool
ī‚ˇ Restructurer detects poorly structured code
fragments
ī‚ˇ Cross reference lists places where variable is defined
ī‚ˇ Static analyzer detects anomalous constructs
ī‚ˇ The text editor and simple tools
RIGI
ī‚ˇ Interactive graphical editor
ī‚ˇ Extract system components and relationship from
source code
ī‚ˇ Create Subsystem from flow graph using Graph
Editor
ī‚ˇ Evaluating subsystem for cohesion and coupling and
iterating until satisfactory subsystem have been
created
Refine language Tools
ī‚ˇ Family of Interactive, extensible workbenches for
analyzing and reengineering code in programming
languages
ī‚ˇ Customizable to any programming language
ī‚ˇ Interactive source code navigation
ī‚ˇ Generation of structure charts
ī‚ˇ Online viewing and printing of reports
ī‚ˇ Export design information to forward-engineering
CASE tools
Software
RE-Engineering
ī‚ˇ Concerned with taking existing legacy(old systems)
systems and re-implementing them to make them
more maintainable
ī‚ˇ Redocumented, Restructured
ī‚ˇ Translated to modern programming language
ī‚ˇ Migrate to new Platform(client-server)
Source Code Translation
ī‚ˇ Needed for:
ī‚ˇ Hardware platform Update
ī‚ˇ Staff Skill shortage
ī‚ˇ Organizational Policy Changes
ī‚ˇ REFINE system is powerful tool for this task
ī‚ˇ It recognizes patterns in source code
Program Restructuring
ī‚ˇ Done to change form without changing semantics
ī‚ˇ Some techniques are:
1.Control Flow Driven restructuring: imposition of
clear control structure within source code
2.Efficiency Driven: Restructuring a function like
changing IF-ELSE to Switch
3,Adaption Driven: Changing coding style to adapt
program to a new programming language
Configurati
on
Management
ī‚ˇ Software is configuration of software components
released in form of executable codes
ī‚ˇ If source code of software is modified without effect
on executable equivalent then exact representation
may not exist
ī‚ˇ The process by which software maintenance and
development is controlled is called configuration
management
ī‚ˇ It is concerned with development of procedures and
standards for cost effective managing and
controlling changes in an evolving software system
ConfigurationManagement
Activities
ī‚ˇ Divided into 4 parts:
1. Identification of Component and Changes
2. Control of way by which changes are made
3. Auditing Changes
4. Status accounting- recording and documenting
activities taken place
ī‚ˇ Document Required:-
1. Project Plan
2. SRS
3. SDD(Software Design Description)
4. Test plans/cases
5. User Manuals
Software versions
ī‚ˇ Two types of versions will be there namely:
revisions(replace) and variations (variety)
ī‚ˇ Version Control Tools: It helps to manage multiple
versions of file. It comprises of:
ī‚ˇ Name of each source code component (variations
and revisions)
ī‚ˇ Versions of various compilers and linkers used
ī‚ˇ Name of software staff who constructed component
ī‚ˇ Date and time it was constructed
Change Control Process
ī‚ˇ Change request form is used to record
recommendations regarding the change
ī‚ˇ Recommendations include: Proposed change,
Estimated costs and how to implement change
ī‚ˇ Submitted to CCA(Change Control Authority)
ī‚ˇ Revised software is revalidated by SQA(Software
Quality Assurance) team to ensure that change has
not adversely affected other parts of system
Documenta
tion
ī‚ˇ Written record of facts about software system
ī‚ˇ Used to convey purpose, content and clarity of
software system.
ī‚ˇ User Documentation: Description of functions of
system without reference to how functions are
implemented
ī‚ˇ Like System Overview, Installation Guide, Beginner’s
Guide, Reference Guide
ī‚ˇ System Documentation: It includes SRS,
implementation, System test plan and Acceptance
Test Plan
ī‚ˇ Three levels of Documentation:
1. User Manual: What system does without going
into details
2. Operator’s Manual: How to use system and
how to recover from faults
3. Maintenance manual: Functional specification,
design , code listing and test data results

More Related Content

What's hot

Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9Ian Sommerville
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
software maintenance
software maintenancesoftware maintenance
software maintenancerajshreemuthiah
 
Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21koolkampus
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance pptAnas Usman
 
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEVipin Kumar
 
Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29koolkampus
 
Se solns 9th edition
Se solns 9th editionSe solns 9th edition
Se solns 9th editionrajabaidyo
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06Luktalja
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLEayushisingh190
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering FundamentalsRahul Sudame
 
Software life-cycle
Software life-cycleSoftware life-cycle
Software life-cyclegnesoni
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenanceFeliciano Colella
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13koolkampus
 
Sw quality metrics
Sw quality metricsSw quality metrics
Sw quality metricsSruthi Balaji
 

What's hot (20)

Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
software maintenance
software maintenancesoftware maintenance
software maintenance
 
Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance ppt
 
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
 
Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Se solns 9th edition
Se solns 9th editionSe solns 9th edition
Se solns 9th edition
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
 
Review se
Review seReview se
Review se
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLE
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Software life-cycle
Software life-cycleSoftware life-cycle
Software life-cycle
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenance
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
 
Sw quality metrics
Sw quality metricsSw quality metrics
Sw quality metrics
 

Similar to Software maintenance

Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptxAmarYa2
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewghayour abbas
 
One SOFTWARE REENGINEERING.pptx
One SOFTWARE REENGINEERING.pptxOne SOFTWARE REENGINEERING.pptx
One SOFTWARE REENGINEERING.pptxkudzaishemuziva1
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptxAnish874317
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringUMA PARAMESWARI
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringUMA PARAMESWARI
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riportDilip Prajapati
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys BldgUSeP
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptxjack952975
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to qualityDhanashriAmbre
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riportDilip Prajapati
 
Sdd Maintenance Of Software Solutions
Sdd Maintenance Of Software SolutionsSdd Maintenance Of Software Solutions
Sdd Maintenance Of Software Solutionsgavhays
 

Similar to Software maintenance (20)

Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptx
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
 
One SOFTWARE REENGINEERING.pptx
One SOFTWARE REENGINEERING.pptxOne SOFTWARE REENGINEERING.pptx
One SOFTWARE REENGINEERING.pptx
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Sd Revision
Sd RevisionSd Revision
Sd Revision
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptx
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
 
Ch21
Ch21Ch21
Ch21
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Sw Maintenance.ppt
Sw Maintenance.pptSw Maintenance.ppt
Sw Maintenance.ppt
 
Sdd Maintenance Of Software Solutions
Sdd Maintenance Of Software SolutionsSdd Maintenance Of Software Solutions
Sdd Maintenance Of Software Solutions
 
System development life cycle
System development life cycleSystem development life cycle
System development life cycle
 

Recently uploaded

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 

Recently uploaded (20)

Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 

Software maintenance

  • 1. Software Maintenance ī‚ˇ Software maintenance includes error corrections, enhancement of capabilities, deletion of obsolete capabilities and optimization ī‚ˇ Any work done to change the software after it is in operation is considered to be maintenance work ī‚ˇ Maintenance may span for 20 years Categories of Maintenance Corrective Maintenance ī‚ˇ Modifications initiated by defects ī‚ˇ Design error, logic error and coding error defects ī‚ˇ Design errors due to incorrect, incomplete or misunderstood change request ī‚ˇ Faulty logic flow and incomplete test data ī‚ˇ Data processing errors ī‚ˇ Emergency fixes like patching come to the rescue in case of system failure ī‚ˇ Patching causes ripple effect(change in one part of the system may cause unpredictable change in other parts) Adaptive Maintenance ī‚ˇ Modifications to match changes in environment ī‚ˇ Business rules, govt policies and work patterns ī‚ˇ Changes in hardware, software platform-compiler and operating system Perfective Maintenance ī‚ˇ Improving efficiency and performance ī‚ˇ Enhancement of existing system functionality ī‚ˇ Making product cleaner structured and better documented
  • 2. Other Types of Maintenance ī‚ˇ Preventive Maintenance: to correct long term effects of corrective, adaptive and perfective changes over time ī‚ˇ Making program easier to understand ī‚ˇ Includes code restructuring, code optimization and documentation updating ī‚ˇ Confined to Organization Problems During Maintenance ī‚ˇ Program written by other person in isolation ī‚ˇ Program changed by a person who did not understand it properly ī‚ˇ Program listings are not structured ī‚ˇ Maintained by persons who are not original authors contributing to ripple effect ī‚ˇ Some problems become clear when system is in use ī‚ˇ Systems are not designed for change Solutions to Maintenance Problems ī‚ˇ Budget and effort Allocation: More time and resources to be invested in design of more maintainable systems ī‚ˇ Complete Replacement of System: IF maintaining cost = developing cost
  • 3. ī‚ˇ Maintenance of existing system if replacement not possible Phases of Maintenance Process ī‚ˇ Phase 1-Program Understanding: It is based on the complexity, documentation and self-descriptiveness of the program ī‚ˇ Phase 2- Generating Maintenance Proposal: It is affected by extensibility (it is the measure of the extent to which program can support extensions) ī‚ˇ Phase 3- Account for Ripple Effect: Stability of system is affected by Ripple effect. Stability is defined as the resistance to amplification of changes ī‚ˇ Phase 4- Modified Program Testing: Program testability is defined as measure of effort required to adequately test program according to well defined testing criterion Maintenance Models Quick-Fix Model ī‚ˇ Ad hoc approach to maintaining software ī‚ˇ Fix without detailed analysis for long term effect ī‚ˇ No or little documentation ī‚ˇ Done due to pressure of deadlines and for quick fixes Iterative EnhancementModel
  • 4. ī‚ˇ Based on philosophy that changes in software system throughout its lifetime are iterative process ī‚ˇ Requires complete documentation ī‚ˇ Done in three stages- 1.Analysis 2.Characterization of proposed modification 3. Redesign and Implementation ī‚ˇ Supports code Reuse ī‚ˇ In first iteration problem is identified and in next iteration it is addressed ī‚ˇ Problem is the full documentation is not always available Reuse Oriented Model It involves reuse of old system and steps are 1. Identify parts of old system that can be reused 2. Understand these parts 3. Modify appropriate to new requirements 4. Integration of modified parts Boehm’s Model ī‚ˇ Based on economic models and principles ī‚ˇ Maintenance is represented as a closed loop cycle ī‚ˇ Maintenance is driven by Manager
  • 5. Taute MaintenanceModel It consists of 8 phases which are described below ī‚ˇ Change request Phase: Maintenance team gets request which is then identified and a unique number assigned ī‚ˇ Estimate Phase: Devoted to have reasonable estimate of time and effort required ī‚ˇ Schedule Phase: Identify the change requests for next schedule ī‚ˇ Programming Phase: source code modified to implement change ī‚ˇ Test Phase: Old and new test cases are made. Regression Testing is done ī‚ˇ Documentation Phase: System and User documents are updated to main co- relation
  • 6. ī‚ˇ Release Phase: Software product delivered and acceptance testing is carried out ī‚ˇ Operation Phase: Software placed under normal Operation Estimation of Maintenance Costs Belady And Lehman Model ī‚ˇ Effort and cost can increase exponentially if poor software development approach is used. ī‚ˇ M = P + Ke(c-d) M: Total Effort Expended P : Productivity Effort in Design, Coding and Testing (Person-Months) K: Constant c: Complexity measure because of bad design and documentation d: Degree to which maintenance team is familiar to software Boehm Model ī‚ˇ ACT stands for Annual Change Traffic ī‚ˇ It is defined as “The fraction of Software Product source instructions which undergo change
  • 7. during a year either through addition, deletion or modification ī‚ˇ ACT = (KLOCadded +KLOCdeleted)/KLOCtotal ī‚ˇ (Annual Maintenance Effort) AME = ACT*SDE*EAF ī‚ˇ SDE: Software Development Effort in person-months ī‚ˇ EAF: Effort Adjustment Factor Regression Testing Small changes in one part of system may have subtle undesired effect in other unrelated parts ī‚ˇ Regression testing is the process of retesting the modified parts of the software and ensuring that no new errors have been introduced into the previously tested code ī‚ˇ It increases confidence in program correctness, located errors, preserve quality and ensure software continued operation ī‚ˇ Make use of existing test suites ī‚ˇ Retest affected components that have been modified ī‚ˇ Budget gives no time for regression testing ī‚ˇ Performed many times in software lifetime and mainly in crisis situation Selective Retest Techniques ī‚ˇ Better than retest-all technique
  • 8. ī‚ˇ Partition existing test suite containing reusable, retestable and obsolete test cases ī‚ˇ Obsolete test case specify incorrect input- output relation(SpecificationObsolete) or no longer exercise program components(Coverage-Obsolete) ī‚ˇ Three categories of Selective Retest Techniques are: 1. Coverage Technique:Locate coverable program components that have been modified 2. MinimizationTechnique:Select minimal set of test cases 3. Safe Techniques:Select every test case ī‚ˇ Categories in which techniques are classified are: Inclusiveness: Extent of exposing fault Precision: Ability to avoidchoosing test case that will not cause errors Efficiency: Measures computationalcost Generality:Ability to handleDiverse language Reverse Engineering ī‚ˇ Process to find difficult, unknown and hidden information about software ī‚ˇ Recover information from existing code or documentation
  • 9. ī‚ˇ Used in program comprehension, redocumentation, recovery of design approach, identifying reusable components and components that need restructuring, high level description of system ī‚ˇ Divided into various classes given below ī‚ˇ Mapping from application domain to program domain ī‚ˇ Mapping between concrete and abstract level ī‚ˇ Rediscovering high level structure ī‚ˇ Missing link between program and semantics ī‚ˇ Extract Reusable component Levels of Reverse Engineering ī‚ˇ Redocumentation: Recreation of semantically equivalent representation with same abstraction ī‚ˇ To create alternative view and hierarchical data flow ī‚ˇ Improve Documentation ī‚ˇ Generate documentation for newly generated program ī‚ˇ Design Recovery: Identify and Extract higher level abstraction from source code ī‚ˇ To develop non-identical applications Componentsof Reverse Engineering Tool ī‚ˇ Restructurer detects poorly structured code fragments ī‚ˇ Cross reference lists places where variable is defined ī‚ˇ Static analyzer detects anomalous constructs ī‚ˇ The text editor and simple tools RIGI ī‚ˇ Interactive graphical editor
  • 10. ī‚ˇ Extract system components and relationship from source code ī‚ˇ Create Subsystem from flow graph using Graph Editor ī‚ˇ Evaluating subsystem for cohesion and coupling and iterating until satisfactory subsystem have been created Refine language Tools ī‚ˇ Family of Interactive, extensible workbenches for analyzing and reengineering code in programming languages ī‚ˇ Customizable to any programming language ī‚ˇ Interactive source code navigation ī‚ˇ Generation of structure charts ī‚ˇ Online viewing and printing of reports ī‚ˇ Export design information to forward-engineering CASE tools Software RE-Engineering ī‚ˇ Concerned with taking existing legacy(old systems) systems and re-implementing them to make them more maintainable ī‚ˇ Redocumented, Restructured ī‚ˇ Translated to modern programming language ī‚ˇ Migrate to new Platform(client-server) Source Code Translation ī‚ˇ Needed for: ī‚ˇ Hardware platform Update ī‚ˇ Staff Skill shortage
  • 11. ī‚ˇ Organizational Policy Changes ī‚ˇ REFINE system is powerful tool for this task ī‚ˇ It recognizes patterns in source code Program Restructuring ī‚ˇ Done to change form without changing semantics ī‚ˇ Some techniques are: 1.Control Flow Driven restructuring: imposition of clear control structure within source code 2.Efficiency Driven: Restructuring a function like changing IF-ELSE to Switch 3,Adaption Driven: Changing coding style to adapt program to a new programming language Configurati on Management ī‚ˇ Software is configuration of software components released in form of executable codes ī‚ˇ If source code of software is modified without effect on executable equivalent then exact representation may not exist ī‚ˇ The process by which software maintenance and development is controlled is called configuration management ī‚ˇ It is concerned with development of procedures and standards for cost effective managing and controlling changes in an evolving software system
  • 12. ConfigurationManagement Activities ī‚ˇ Divided into 4 parts: 1. Identification of Component and Changes 2. Control of way by which changes are made 3. Auditing Changes 4. Status accounting- recording and documenting activities taken place ī‚ˇ Document Required:- 1. Project Plan 2. SRS 3. SDD(Software Design Description) 4. Test plans/cases 5. User Manuals Software versions ī‚ˇ Two types of versions will be there namely: revisions(replace) and variations (variety) ī‚ˇ Version Control Tools: It helps to manage multiple versions of file. It comprises of: ī‚ˇ Name of each source code component (variations and revisions) ī‚ˇ Versions of various compilers and linkers used ī‚ˇ Name of software staff who constructed component ī‚ˇ Date and time it was constructed Change Control Process ī‚ˇ Change request form is used to record recommendations regarding the change ī‚ˇ Recommendations include: Proposed change, Estimated costs and how to implement change ī‚ˇ Submitted to CCA(Change Control Authority)
  • 13. ī‚ˇ Revised software is revalidated by SQA(Software Quality Assurance) team to ensure that change has not adversely affected other parts of system Documenta tion ī‚ˇ Written record of facts about software system ī‚ˇ Used to convey purpose, content and clarity of software system. ī‚ˇ User Documentation: Description of functions of system without reference to how functions are implemented ī‚ˇ Like System Overview, Installation Guide, Beginner’s Guide, Reference Guide ī‚ˇ System Documentation: It includes SRS, implementation, System test plan and Acceptance Test Plan ī‚ˇ Three levels of Documentation: 1. User Manual: What system does without going into details 2. Operator’s Manual: How to use system and how to recover from faults 3. Maintenance manual: Functional specification, design , code listing and test data results