Software Maintenance and Change Control
Essay Preview: Software Maintenance and Change Control
Report this essay
Software Maintenance and Change Control
Computer Concepts
December 13, 2004
Software Maintenance and Change Control
In todays world there is very unusual to have a program developed that will not have further development after release. The requirements of the time that we live are very dynamic and there is a need for constant adaptation. A basic requirement for any new software product is to be adaptable, easy to maintain and modify. Time factor and cost factor are ruling in the agitated competition and only those who are well organized and prepared are able to survive. The question for software maintenance and change control is taking key position in both perspectives: the perspective of the manufacturer of the software, and the perspective of the consumer. In the negotiation and management of these two major players is the complexity of the software maintenance and change control. In this paper we will focus on some important specifics of these processes.
Thomas Pigoski in his “template for a software maintenance plan” defines software maintenance in the following way: “Software maintenance is the totality of activities required to provide cost-effective support to a software system. Activities are performed during the pre-delivery stage as well as the post-delivery stage. Pre-delivery activities include planning for post-delivery operations, supportability, and logistics determination. Post-delivery activities include software modification, training, and operating a help desk.” Later on in the same material he describes some organizational requirements in the same context: “Maintenance is performed by the developer, a separate maintainer, or by a third-party organization. It is important that the organization responsible for maintenance be identified in writing with full responsibilities. The Maintenance Plan accomplishes this. The maintainer should develop the Maintenance Plan as well as the supporting procedures. Since software maintenance activities invoke the use of organizational resources, it is recommended that the highest level of management in the organization approves of this undertaking and approves the final version of the plan and the procedures. Other functions that should also review and approve this plan include Software Quality Assurance, Software Engineering, Software Testing, Project Management (when applicable), the organizations Software Configuration Management Function (when applicable), and the customer (when applicable).”
In other words, we have demonstrated that software maintenance has very important role for the cost effectiveness of the working system, and involve the use of organizational resources. In this direction, another report by Robert Vienneau, published on the DACS web site entitled “The present value of software maintenance” look at the software maintenance as investment. “A variety of tools and techniques have been introduced over the last two decades for improving software development and maintenance. Examples include Structured Analysis, Structured Programming, Computer Aided Software Engineering (CASE), Object Oriented design, formal methods, structured inspections, and new testing methods. This paper provides managers of software organizations with techniques for choosing among these possibilities. It also provides an outline of valid arguments to sell upper management on the cost-effectiveness of investing in process improvement. The analysis techniques recommended here result in findings in a language understood by upper management.
Software projects require expenditures and generate revenues over a lengthy span of time. A software project can be considered the result of an investment decision in which expenses are dispersed in the belief that greater benefits will be obtained in the future. Similarly, the choice of the specific techniques employed on a software project are the results of investment decisions that should reflect an attempt to optimize certain financial criteria. Finally, attempts to improve the process of a software organization should likewise be considered investment decisions in which the payoff is likely to be obtained across several projects.” Then the report continues in an empirical investigation and calculations of the value of the maintenance in time. Unfortunately the experiment demonstrate that there are not enough parameters to accomplish precise results, but the conclusion is that: “Researchers presenting experimental results on the costs and benefits of specific techniques should indicate how changes in the time distribution of costs can affect the magnitude of (undiscounted) benefits. The present values of cost and benefits will depend on specific details of individual projects. Nevertheless, the simple analyses presented above suggest the reluctance of management to address maintenance problems and adopt new technology may be more rational than is commonly thought. Financial analysis in an uncertain environment cannot provide the final word on technology, but it is time that software measurement and software development reflect an awareness of the needs, methods, and language of high-level management.”
An important portion of this paper is the change control. Change control can be very stressful and many organizations will develop conservative attitude due to the difficulties of the process. However changes are normal process of the development and those who refuse it risk staying in history. If well planned
and organized, changes can bring new forces in the system. Many tools have been developed to help the change process. Entire software packages are available today for managing the process. Following is a document for Change Control management that was retrieved from the US Department of Energy CIOs web site.
Software Change Control Log
Page #: _____
Log Date: ____/____/____
System Name:
SCR #
Reqmnt #
Date
Submitted
Priority
(E,U,R) *
Approval
Status
Change