What is a Process Model ?
It is a description of
i) what tasks need to be performed in
ii) what sequence under
iii) what conditions by
iv) whom to
achieve the "desired results."
Why Have A Process Model?
Provide "guidance" for a systematic coordination and controlling of
a) the tasks and of
b) the personnel who perform the tasks
Extending the "Simple" Process
As projects got larger and more complex.
1. Needed to clarify and stabilize the requirements
2. Needed to test more functionalities
3. Needed to design more carefully
4. Needed to use more existing software & tools
7. Code control
8. Needed more people to be involved
What is the Software Process?
A structured set of activities required to develop a software system.
What does the software process involve?
1. Specification - defining what the system should do;
2. Design and implementation - defining the organization of the system and implementing the system;
3. Validation - checking that it does what the customer wants;
4. Evolution - changing the system in response to changing customer needs.
processes where all of the process activities are planned in advance and progress is measured against this plan.
planning is incremental and it is easier to change the process to reflect changing customer requirements.
What is the Waterfall Model?
1.Requirements must be specified first.
2. Main tasks completed in sequence: requirements, design, code and test, followed by packaging.
3.Output of one stage feeds into the next: easily tracked ("controlled") by management
What are the main problems with the Waterfall model?
1. The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase
2. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work.
What are the benefits of Incremental development?
1. The cost of accommodating changing customer requirements is reduced.
2. It is easier to get customer feedback on the development work that has been done.
3. More rapid delivery and deployment of useful software to the customer is possible.
What are the problems of Incremental development?
1. The process is not visible.
2. System structure tends to degrade as new increments are added.
What are the benefits of Incremental delivery?
1. Customer value can be delivered with each increment so system functionality is available earlier.
2. Early increments act as a prototype to help elicit requirements for later increments.
3. Lower risk of overall project failure.
4. The highest priority system services tend to receive the most testing.
What are the problems of Incremental delivery?
1. As requirements are not defined in detail until an increment is to be implemented, it can be hard to identify common facilities that are needed by all increments.
2. However, this conflicts with the procurement model of many organizations, where the complete system specification is part of the system development contract.
What is the Boehm's spiral model?
1. Process is represented as a spiral rather than as a sequence of activities with backtracking.
2. Each loop in the spiral represents a phase in the process.
3. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.
4. Risks are explicitly assessed and resolved throughout the process.
What are the sectors of Boehm's spiral model?
1. Objective setting
Specific objectives for the phase are identified.
2. Risk assessment and reduction
Risks are assessed and activities put in place to reduce the key risks.
3. Development and validation
A development model for the system is chosen which can be any of the generic models.
The project is reviewed and the next phase of the spiral is planned.