Software development processes are the structures or processes imposed on the development of a software product. To produce a successful and qualitative software product certain processes management criteria need to be considered.
A process is a particular method of doing something, generally involving a number of steps or operations. A software development project will have at least development activities and project management activities. The development process focuses on the activities directly related to the production of software that is design, coding, and testing. Project management processes focus on planning, estimation, scheduling and taking corrective action when things do not go as per plan.
Configuration management processes focus on change and configuration control, so that the correct, tested and approved version of software component are put together for delivery. The process management processes focus on the management and improvement of these processes. The four named processes will be discussed in detail;
- Development Processes: These processes specify the major development and quality assurance activities that need to be performed in the project, and hence form the core of the software development processes. Software development activity like any production activity is carried out in a sequence of steps, each step performing a well-defined activity leading to the satisfaction of the project goals, with the output of one step forming the input into the next step. One of the aims of any process should be to prevent defect from a phase to pass on to the next phase. This requires verification and validation activity at the end of each step. Verification checks the consistency of input into a phase, while validation activities check the consistency with user needs. There is a clearly defined output of a phase, which can be verified by some means, and the input into the next phase. Such outputs of a development process are called work products. These could be requirements documents, design documents, code, and prototype. As a development process typically contains a sequence of step, the criteria for exit and entry from the phase are to be defined. These generally depend on the implementation of the process. Besides the verification and validation criteria, the development step needs to produce some information for the management process. Information has to flow from development process.
- Project Management Processes: The project management component of the software process specifies all the activities that need to be done by the project management to ensure that the cost and quality objectives are met. Project management is an integrated part of software development. To meet the cost, quality and schedule objectives, resources have to be properly allotted to each activity for the project, the progress of the different activities has to be monitored, and corrective action taken, if needed. The processes focus on issues like planning a project, estimating resources, and schedule and monitoring and controlling the project. The basic task is to plan the detailed implementation of the process for a particular project and ensure that the plan is followed.
- Software Configuration Management Processes: Throughout development, software consist of a collection of items, such as programs, data and documents that can be easily changed. These changes do happen often. The easily changeable nature of software and the fact that changes often take place require that changes take place in a controlled manner. Software configuration Management systematically controls the changes that take place during development. Basically it is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines. It is also the process of changing requests and verifying the completeness and correctness of item. These processes are considered independent of the development process, because development processes cannot accommodate changes at any time during development.
- Process Management Processes: Software processes are also not static entities. Process management processes concentrate on the changes that need to be done to improve the process. The three important entities that software development deals with are processes, projects and products. The various software processes ensure that the activities require to develop software are carried out in a controlled manner.