Software Maintenance and Change Control in an Organization
Essay Preview: Software Maintenance and Change Control in an Organization
Report this essay
Software Maintenance and Change Control in an Organization
Programming Concepts POS/370
October 3, 2005
Abstract
The research done for this paper represents an attempt to describe the type and distribution of activities within software maintenance and change control. Software maintenance activities span a systems productive life and consume a major portion of the total life cycle costs of a system. However, what is actually done to systems in maintenance is sometimes a mystery to many organizations. Thus, software maintenance remains an activity that is difficult and expensive to manage. With this paper, we intend to open the mystery of software maintenance and explain some of the activities involved in this procedure.
Requirements Analysis
The requirements analysis is possibly the most crucial step in the software maintenance realm, as this step alone can determine the effectiveness of all following activities and the customers evaluation of the final product. “Requirements analysis is the process of understanding the customers needs, and capturing them in a formal document.” (Icarus, p. 2) This formal document, when working with an existing program, is normally known as a change request form. The change request can come in the form of a formal document or in the form of a heated e-mail from your superiors. If it is the latter, you need to take steps to produce a formal change request document. This document will outline the constraints, commonly referred to as the triple constraint, scope, time, and money.
The first of these three, scope, is quite difficult to define, early in the process. However, the scope of the project must be defined in terms that can evolve into a pseudo-checklist. This document will be reviewed constantly throughout the process to determine whether a particular fits with the customer needs and wants. One way of determining the customers needs is to develop a questionnaire. This can alleviate several communications problems between the development team and the customer. The questionnaire can be used to develop the change request document. Other ways to develop a change request document is to conduct a walkthrough with the main stakeholders of the change. This function will allow the development team to get a feel for the work environment and aid in the development of the program changes. A combination of these steps strengthens the change request document. By conducting a questionnaire and then conducting a walkthrough, the requested changes can be illustrated within the work environment, the development team will determine a level of necessity for each of the requested changes. This need-level will help to dictate which of the changes will become higher or lower priority. Prioritizing needs will aid the project team by giving them a guideline to build off of. Once the Change request document has been finalized and then signed by both the customer and the project manager, the development team can begin the next phase of the development process.
Design
The Design Phase is the problem-solving process whose objective is to find and describe a way to implement the systems functional requirements, while respecting the constraints imposed by the non-functional requirements, and while adhering to general principles of good quality. This phase also determines how components will be implemented in a system. There are a number of goals in the in this phase;
Increasing profit by reducing cost and increasing revenue.
Ensuring that we actually conform with the requirements, thus solving the customers problems.
Accelerating development, which helps reduce short-term costs, and may also ensure the software reaches the market soon enough to effectively compete.
Increasing qualities such as usability, efficiency, reliability, maintainability, and reusability which can help reduce costs and also increase revenues.
Implementation
Although this section of system maintenance is widely overlooked, it is extremely important. Without proper and speedy implementation of the desired changes, the customer would realize the product of your work. Implementation consists of the coding phase of the system development life cycle. This stage requires several Quality Assurance procedures to take place during this stage. This is not the testing phase however, it is a self governing process which consists of the programmers performing self-checks, throughout the programming process, and the program manager performing Quality Assurance checks at predetermined milestones within the life cycle. Once the coding has been completed, the testing phase can then begin.
Testing
Testing is a stage that a software developer or writer hardly escapes from going through because of the need to making sure that the software is bug-free and working and free from hitches which can render the intended outcome to being unproductive. As always the case, two stages of testing phase takes place. One phase being that of the writer and the second that