SOFTWARE PROCESS
- A process is distinct from the product it produces: a product is the outcome of executing a process in a software development project
- As mentioned earlier, software engineering focuses on process, to help transform software development into an engineering discipline
- Premise: A proper process will help achieve a project's objectives of achieving high quality and productivity.
- Process: a series of actions or steps taken in order to achieve a particular end
- Software Process: An ordered set of steps to produce a high quality software system
Since there are many different activities that occur during a software development project, it is better to think of a software process as being composed of sub-processes or component software processes. Each of these processes may be performed by different people playing different roles.
- A set of activities whose goal is the development or evolution of software.
- Generic activities in all software processes are:
- Specification - what the system should do and its development constraints
- • Development - production of the software system
- • Validation - checking that the software is what the customer wants
- • Evolution - changing the software in response to changing demands.
- For any software development project, there are two main component processes
- Product Engineering Process: Charged with creating the software system
- Process Management Process: Charged with monitoring the other processes and improving them over time
- The product engineering process can then be broken down into several other processes, including
- Development Process: Specifies the order of development activities and the products produced by each step
- Project Management Process: Charged with planning and controlling the development process
- Software Configuration Management Process: Charged with managing the evolution of software artifacts
- Requirements Change Management Process: Charged with handling change during the development process
- Inspection Process: Charged with specifying the steps to inspect artifacts created during development
- …
- These processes and their relationships are shown below:
Different people with different roles will collaborate to perform these processes- Managers will work on the project management process
- Designers, developers, and testers will work on the development process, the change process, and the inspection process
- Build managers (configuration controllers) will work on configuration management



