- A process framework establishes the foundation for a complete software process by identifying a small number of framework activities that are applicable to all software projects, regardless of size or complexity.
- It also includes a set of umbrella activities that are applicable across the entire software process.
- Each framework activity is populated by a set of software engineering actions – a collection of related tasks that produces a major software engineering work product (e.g. design is a software engineering action).
- Each action is populated with individual work tasks that accomplish some part of the work implied by the action.
The following generic process framework is applicable to the vast majority of software projects :
1. Communication: This framework activity involves heavy communication and collaboration with the customer (and other stakeholders) and encompasses requirements gathering and other related activities.
2. Planning: This activity establishes a plan for the software engineering work that follows. It describes the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced and a work schedule.
3. Modeling: This activity encompasses the creation of models that allow the developer and the customer to better understand software requirements and the design that will achieve those requirements.
4. Construction: This activity combines code generation (either manual or automated) and the testing that is required to uncover errors in the code.
5. Deployment: The software is delivered to the customer who evaluates the delivered product and provides feedback based on evaluation.
Some most applicable framework activities are described below.