Chapter Two
Software Processes
1
The software process
• A structured set of activities required to develop a software system.
• Many different software processes but all involve:
• Specification – defining what the system should do;
• Design and implementation – defining the organization of the system and
implementing the system;
• Validation – checking that it does what the customer wants;
• Evolution – changing the system in response to changing customer needs.
2
software process model
• A software process model is an abstract representation of a
process. It presents a description of a process from some
particular perspective.
3
30/10/201
4
Software process descriptions
• When we describe and discuss processes, we usually talk about the
activities in these processes and the ordering of these activities.
• Process descriptions may also include:
• Products, which are the outcomes of a process activity;
• Roles, which reflect the responsibilities of the people involved in the process;
• Pre- and post-conditions, which are statements that are true before and
after a process activity has been enacted or a product produced.
Chapter 2 Software 4
Processes
30/10/201
4
Types of Software processes
• Plan-driven processes
• processes where all of the process activities are planned in advance and progress is
measured against this plan.
• agile processes
• planning is incremental and it is easier to change the process to reflect changing
customer requirements.
• In practice, most practical processes include elements of both plan -driven and
agile approaches.
Chapter 2 Software 5
Processes
30/10/201
4
Software process models
Chapter 2 Software 6
Processes
30/10/201
4
Software process models
• Prescriptive Process Models
• The name 'prescriptive' is given because the model prescribes a set of
activities, actions, tasks, quality assurance and change the mechanism for
every project.
• Evolutionary Process Models
• Evolutionary models are iterative. They are characterized in a manner that
enables you to develop increasingly more complete versions of the software.
Chapter 2 Software 7
Processes
30/10/201
4
Software process models
• Prescriptive Process Models
• Evolutionary Process Models
Chapter 2 Software 8
Processes
30/10/201
4
Prescriptive Process Models
• The waterfall model
• Incremental development
• RAD model
Chapter 2 Software 9
Processes
The waterfall model
Requirements
definition
System and
software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
maintenance
30/10/201
4
Waterfall model phases
• 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.
30/10/201
4
Waterfall model problems
• Inflexible partitioning of the project into distinct stages makes it difficult to respond to
changing customer requirements.
• Therefore, this model is only appropriate when the requirements are well -understood and
changes will be fairly limited during the design process.
• Few business systems have stable requirements.
• 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.
Chapter 2 Software 12
Processes
Incremental development 30/10/201
4
• a modification to the waterfall model. As software projects
increased in size
• the large projects are subdivided into smaller components.
• each component followed a waterfall process model, passing
through each step iteratively
Chapter 2 Software 13
Processes
Incremental development
30/10/201
4
Incremental development benefits
• The cost of accommodating changing customer requirements is reduced.
• The amount of analysis and documentation that has to be redone is much less than is
required with the waterfall model.
• It is easier to get customer feedback on the development work that has been done.
• Customers can comment on demonstrations of the software and see how much has been
implemented.
• More rapid delivery and deployment of useful software to the customer is possible.
• Customers are able to use and gain value from the software earlier than is possible with a
waterfall process.
Chapter 2 Software 15
Processes
30/10/201
4
Incremental development problems
• The process is not visible.
• Managers need regular deliverables to measure progress. If systems are
developed quickly, it is not cost-effective to produce documents that reflect
every version of the system.
• System structure tends to degrade as new increments are added .
• Unless time and money is spent on refactoring to improve the software,
regular change tends to corrupt its structure. Incorporating further
software changes becomes increasingly difficult and costly.
Chapter 2 Software 16
Processes
30/10/201
4
RAD model
• RAD is a Rapid Application Development model.
• Software product is developed in a short period of time.
Chapter 2 Software 17
Processes
30/10/201
4
RAD model
• The RAD model consist of following phases:
• Business Modeling.
• Data modeling.
• Process modeling.
• Application generation.
Chapter 2 Software 18
Processes
30/10/201
4
RAD model
Chapter 2 Software 19
Processes
30/10/201
4
Software process models
• Prescriptive Process Models
• Evolutionary Process Models
Chapter 2 Software 20
Processes
30/10/201
4
Evolutionary Process Models
• Prototyping
• The Spiral Model
Chapter 2 Software 21
Processes