Need of maintenance
Our environment is dynamic in nature . User requirements , economical and technical changes are taking place in our environment so there is need of modification to keep it adaptable with environment. To meets today’s requirement maintenance is very important part. It is last phase of software development life cycle. All the software’s will need maintenance over there lifetime.
‘ If there is serious error in software then there is need of software maintenance to keep it compatible.
‘ New business has different new processes for cooperation there is need of maintenance in existing system.
‘ For security vulnerability of software there is need of software maintenance.
‘ When hardware is changed then there is need of modification of software to make it compatible with that hardware so there is also need of maintenance
Maintenance Cost evaluation
Changing software after post delivery is called software maintenance. Software maintenance cost is the cost required to maintain the software after initial deployment. Customer’s needs are changing day by day. Software maintainability is important part for success because product does not wear out but the use of that product will get less. Cost will be high if the software is not having reusable components as it is the important key in changing the system to new changes.
Software maintenance cost include
‘ Corrective maintenance: Software with the best quality also encounters defects but the corrective maintenance helps to fix those defects. Cost required for bug fixing after initial deployment is known as corrective maintenance cost .It is generally 20% of all software maintenance cost.
‘ Adaptive maintenance: Due to the changes in the environment including CPU, Operating System, Business parameters, software meant to be changed and adopt the new changes in environment. Cost required to make software adaptable in all environments is known as adaptive maintenance cost. It is generally 25% of all software maintenance cost.
‘ Perfective maintenance: To improve and enhance the overall performance of the software after initial deployment is perfective maintenance .It is generally 5% of total software maintenance cost.
‘ Enhancements: Costs due to long-term new creations and innovations in software. It is generally 50% or more of total maintenance cost of that software.
. The cost evaluation is one of the economical techniques which is used to choose an well-organized program from wide range of alternatives and to propose and execute that program. The principle of cost evaluation is do more with less budget. Cost evaluation identify most efficient approach of software.
Imai et al.  said that, code cloning is frequently evaluated by most of the software companies. The source code which is used by more than one project can increase the maintenance cost. When software functionalities are modified and some changes are required due to changing environment then source code cloning difficulty for that software project. This paper describes the maintenance cost evaluation which evaluates the impact of reuse to maintenance. The main motive of this paper is to measure the functional redundancy. It can be measured in two steps: first to make clusters of similar functions which are used in that source code and second to make an array weighted FR-tree according to that clusters. After that, functional redundancy can be measured by weight of each node in FR-tree.
Srivastava and Biplav  describe that, Software Engineering is all about combining the components with each other and then assembled it into Software. These components are further comes up with combination of sub-modules. One of the main tasks in managing software project involves having a track of development and managing the individual components. Though tools are there to track the component development and maintenance but still the main and important hurdle it to evaluate trade-offs manually. Software engineering is one of the fast growing fields and new trends are there like Web Services, EJB’s, so there is a need of an automated solution to help developers in creating complex applications. This paper proposed an automated decision support framework that will guide the users to make cost-effective decisions. The key approach of this paper is to develop a model of the software using the automated planning techniques to create alternative plans to develop and maintain software’s taking into considerations of the developer’s efforts and objectives.
Nagappan and Ball  have proposed that Software development is complex task in which there is need of complete knowledge about the architecture of that particular software. This paper describes, how the software dependencies and churn measures are prone to post release failures. In this paper, author analyzes the window server 2003 operating server and examines the relationship between software dependencies and churns measures and also investigates their ability to proneness post release failures. Churn measures are the measurement of code which is changing with in software unit with the analysis this paper conclude that software dependencies and churn measures are the efficient predictors for post release failures and failure proneness. It also concludes that software quality can also be measured with this prediction and post release failure proneness is also economically useful.
Wolf et al.  described that Communication is the way through which ideas, thoughts and knowledge can be share in work groups. Communication and coordination plays an important role for software quality. This paper describe the relationship between successful coordination outcome and communication structure using the data from the project of IBM (Jazz TM project) . This paper introduces two research question and methodology in the study of integration and communication structure in Jazz project. Author conceptualizes the coordination outcome with the success or failure of the project and study communication structure of team with social network measures. The paper concludes that coordination outcome and communication structure are the efficient predictors for failure in future. Problems in communication will lead to coordination and integration failures.
Cataldo et al.  describe past research has shown that customer reported software faults are the result of violated dependencies that are not recognized in software developing by software developers. There are three types of dependencies which are included in this paper. The main objective of this paper is to find the performance of the dependencies and relate it to customer reported defects. Analysis of this research is based on two different projects of different companies. Research related to this topic shows that logical, syntactic and work dependencies all prone to failure. Prior research has shown that syntactic dependencies were more prone to failure on the other hand this research shows that logical dependencies and work dependencies are more prone to failure. The result of this paper suggests that rearchitecting guided by the network structure of logical dependencies are useful for reducing defects.
Mader, Patrick, and Alexander Egyed, have proposed that Effects of requirements traceability regularly helps the developer’s to have a track of the software changes and makes the software maintenance support better. Though it is quite popular approach, but still there is no publication about the benefits of the requirements traceability. It is quite important to learn that whether introducing requirements traceability can make the development tasks better. This paper conducted an experiment using 52 developer’s performing real time maintenance on the third party software, half of the tasks with traceability and half of them without traceability. The results shows that the developers with traceability performs 21% faster on a task and provides 60% more correct solution suggesting that traceability not only saves money but provides better maintenance. Using the initial costs setup for our evaluated traceability featured systems we will implement the same to improve the maintenance support quality.
Langelier et al. , describe that evaluating the software quality and understanding the events leading its evolution to anomalies are two key steps in reducing the cost in software maintenance. Evaluation of the large quantity code over various versions is the most time consuming and practised in general. To answer this, this paper described that a semi-automatic visualization framework to investigate programs having thousands of classes, over dozens of versions at much faster speed. Programs and their associated quality parameters for each version are represented graphically independently. The animations between these representations create visual quality of consistence associated with the quality belonging to the various software versions. Exploring these qualities parameters can reduces the difference between various views of software. This allows experts to use their analysis skills to investigate all quality aspects of software evolution.
Ghavami et al. , have proposed that a probalistic model to attain cost effective maintenance strategies. Customer’s needs changes day by day so the maintainability is very important part for all software’s. Maintenance increase the life time of any product and increase the meantime among failures, how easily software can be modified during bug fixes or other modifications is generally known as maintenance. Now days, maintenance cost effectiveness is important because of budget constraints of each software industry. Cost effective and profitable product will be more reliable. This paper describes that based on reliability indices mean duration and state probability
...(download the rest of the essay above)