Software maintenance,its type,issues,major activity and techniques

08:12 Prashant Roy 0 Comments


Software maintenance

Software maintenance is defined as the totality of activites required to provide cost effective support to software.It is an integral part of a software life cycle.Its activites are performed during the predelivery stage as well as during post delivery stage.
Predelivery activities includes planning for post delivery operations,maintainability and logistics determination for transition activities.
Postdelivery activities include software modification,training and operating or interfacing to a help disk.There are various breakdown of topics for the software maintenance.
software maintainence image

Category (Types) of software maintenance

There are three types of software maintenance have been defined:
  • Corrective Maintenance
  • Adaptive Maintenance  and
  • Perfactive Maintenance
but IEEE 14764 includes a fourth category
  • Preventative Maintenance
Explanation:
  1. Corrective Maintenance:Reactive modification(or repairs) of a software product performed after delivery to correct discovered problems.Include in this category is emergency maintenance,which is an unschedulded modification performed to temporarily keep a software product operational pending corrective maintenance.
  2. Adaptive Maintenance:Modification of a software product performed after delivery to keep a software product usable in a changed and changing environment.for example- The operating system might be upgraded and some changes to the software may be necessary.
  3. Perfactive Maintenance:Modification of a software product after delivery to provide enhancements for users,improvement of a program documentation, and recording to improve software performence, maintainability, or other software attributes.
  4. Preventive Maintenance:Modification of a software product after delivery to detect and correct latent faults in the software product before they become operational faults.
software maintainance category image

Issues involved in software maintenance:

A number of key issues must be dealt with ensure the effective maintenance of software.Software maintenance provides unique technical and management challenges for software engineers.
for ex-
Trying to find a fault containing a large number of code that another software engineer developed.
Issues involved in software maintenance is given below:
software maintainance issue image

  1. Technical issue:There are various technical issues such as
  • Limited understanding:Limited understanding refers to how quickly a software engineer can understand where to make a change or correction in software that he/she did not develop.
  • Impact analysis:Impact analysis describes how to conduct, costeffectively, a complete analysis of the impact of a chane in existing software.
   2.Management issues:Management issues are as follows:
  • Staffing:Staffing refers how to attract and keep software maintenance staff.
  • Process:The software life cycle process is a set of activites,methods,practices and transformation that people use to develop and maintain software and its associated products.
  • Outsourcing:Outsourcing and offshoring software maintaince has become a major industry.Organizations are outsourcing entire portfolios of softwre including software maintenance.
  3.Cost estimation:
        for planning purposes, cost estimation is an important aspect of  planning for software
        maintenance.Maintenance cost estimates are by many technical and non technical factors.
 4.Measurement:
       There are several software measures that can be derived from the attributes of the software, the
 maintenance process, and personal  ,including size,complexity,quality,understandibility,maintainability and effort.
Complexity measures of software can also be obtained using available commercial tools.These measure constitute a good starting point for the maintainers measurement program.

Major activities involved in software maintenance

There are various major activities involved in software maintenance,such as:
  1. Unique activities:There are various processes , activities and practices that are unique to software maintenance.
  • Program understanding
  • Transision
  • Acceptance/Rejection
  • Impact analysis
   2.Supporting activities:Maintenance may also perform support activities such as:
  • Documentation
  • Software configuration management
  • verification and validation
  • Problem resolution
  • Software quality assurance
   3.Planning activities:An important for software maintenance is planning and maintainers must
          address the issues associated with a number of planning perspectives.
  • Business planning
  • Maintenance planning
  • Reliease planning
  • Individual software change request planning

Techniques for software maintenance

This topics introduces some of the generally accepted techniques used in software maintenance,some techniques are as follows:
  1. Program comprehension:Code browsers are key tools for program comprehension and are used to organize and present source code.Clear and consise documentation can also aid in program comprehension.
  2. Reengineering:Refactoring is reengineering techniques that aims at reorganizing a program without changing its behavior.It seeks to improve a program structure and its maintainabilty.Refactoring techniques can be used during minor changes.
  3. Reverse Engineering:Reverse engineering is the process of analysing software to identify the softwrae components and their inter-relationships  and to create represantaions of the software in another form or at higher levels of abstraction.
  4. Migration:During software life, it may have to modified to run in different environments.In order to migrate it to a new environments, the maintainers needs to determine the actions needed to accomplish the migration.
  5. Retirement:Once software has reched the end of its useful life,it must be retired.An analysis should be performed to assist in making the retirement decision.This analysis should be included in the retirement plan,which covers retirement requirements,impact,replacement,schedule and effort.


0 comments: