Maintenance,
Re-engineering
&Reverse Engineering
Manish Kumar
Roll-13118037
Semester-6th
National Institute of Technology
Raipur ,India
Software Maintenance
The process of modifying a software system or
component after delivery to correct faults,
improve
performance or other attributes, or adapt to a
changed environment
Manish Kumar, NIT RAIPUR 3
Distribution of maintenance activities
corrective 21%
adaptive 25%
preventive 4%
perfective 50%
Types of Maintenance
• corrective maintenance: correcting errors
• adaptive maintenance: adapting to changes in the
environment . Taking existing code and adapting it to
provide new features and functionality.
• perfective maintenance: implementing new or changed
user requirements which concern functional enhancements
to the software, (adapting to changing user requirements)
• preventive maintenance: increasing software
maintainability or reliability to prevent problems in the
future
Re-engineering
• Re-structuring or re-writing part or all of a
legacy system without changing its
functionality
• Applicable where some but not all sub-systems
of a larger system require frequent
maintenance
• Re-engineering involves adding effort to make
them easier to maintain. The system may be re-
structured and re-documented
• Reorganising and modifying existing software
systems to make them more maintainable
Re-engineering advantages
• Reduced risk
– There is a high risk in new software development.
There may be development problems, staffing
problems and specification problems
• Reduced cost
– The cost of re-engineering is often significantly
less than the costs of developing new software
Reverse engineering
• Reverse engineering is the process of discovering the
technological principles of a human made device,
object or system through analysis of its structure,
function and operation
• Analysing software with a view to understanding its
design and specification
• May be part of a re-engineering process but may also
be used to re-specify a system for re-implementation
• Builds a program data base and generates information
from this
• Program understanding tools (browsers, cross-
reference generators, etc.) may be used in this process
References
• https://cambridge2cambridge.mit.edu/events
• http://www.swap-mit.info/reverse-engineering/
• https://en.wikipedia.org/wiki/Software_mainten
ance
• https://www.google.co.in/?gfe_rd=cr&ei=N7zbVr
y6LsiDuAS0lZewCA#q=software+reengineering+w
ikipedia
• https://en.wikipedia.org/wiki/Reverse_engineeri
ng
Maintenance,Re-engineering &Reverse Engineering in Software Engineering

Maintenance, Re-engineering &Reverse Engineering in Software Engineering

  • 1.
  • 2.
    Software Maintenance The processof modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment
  • 3.
    Manish Kumar, NITRAIPUR 3 Distribution of maintenance activities corrective 21% adaptive 25% preventive 4% perfective 50%
  • 4.
    Types of Maintenance •corrective maintenance: correcting errors • adaptive maintenance: adapting to changes in the environment . Taking existing code and adapting it to provide new features and functionality. • perfective maintenance: implementing new or changed user requirements which concern functional enhancements to the software, (adapting to changing user requirements) • preventive maintenance: increasing software maintainability or reliability to prevent problems in the future
  • 5.
    Re-engineering • Re-structuring orre-writing part or all of a legacy system without changing its functionality • Applicable where some but not all sub-systems of a larger system require frequent maintenance • Re-engineering involves adding effort to make them easier to maintain. The system may be re- structured and re-documented • Reorganising and modifying existing software systems to make them more maintainable
  • 6.
    Re-engineering advantages • Reducedrisk – There is a high risk in new software development. There may be development problems, staffing problems and specification problems • Reduced cost – The cost of re-engineering is often significantly less than the costs of developing new software
  • 7.
    Reverse engineering • Reverseengineering is the process of discovering the technological principles of a human made device, object or system through analysis of its structure, function and operation • Analysing software with a view to understanding its design and specification • May be part of a re-engineering process but may also be used to re-specify a system for re-implementation • Builds a program data base and generates information from this • Program understanding tools (browsers, cross- reference generators, etc.) may be used in this process
  • 8.
    References • https://cambridge2cambridge.mit.edu/events • http://www.swap-mit.info/reverse-engineering/ •https://en.wikipedia.org/wiki/Software_mainten ance • https://www.google.co.in/?gfe_rd=cr&ei=N7zbVr y6LsiDuAS0lZewCA#q=software+reengineering+w ikipedia • https://en.wikipedia.org/wiki/Reverse_engineeri ng