Software Processes
Intended learning outcomes:
• Explain what a software process is.
• Discover process models used by professional software developers to manage
small to large-scale software projects.
• Illustrate activities involved in Software Process Models
• Choose suitable process models for different software projects.
❖ A software process is a structured set of activities required to develop a
software system. Note that we are talking about a "software process" -- not a
"software development process."
There are many kinds of software processes, but each one of them involve these four types of
fundamental activities:
o Software specification - defining what the system should do.
o Software design and implementation - defining the organization of the system and
implementing the system.
o Software validation - checking that it does what the customer wants.
o Software evolution - changing the system in response to changing customer needs.
A software process model is an abstract representation of a process. It presents a description of a
process from some perspective. When we describe and discuss software processes, we usually
talk about the activities in these processes such as specifying a data model, designing a user
interface, etc. and the ordering of these activities.
Process descriptions may also include:
✓ Products (what), which are the outcomes of a process activity.
✓ Roles (who), which reflect the responsibilities of the people involved in the process.
✓ Pre- and post-conditions (how), which are statements that are true before and after a
process activity has been enacted or a product produced.
Plan-driven processes are processes where all the process activities are planned in advance and
progress is measured against this plan.
In 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.
, Software Process Models
• Waterfall model
• V model
• Incremental model
• RAD model
• Agile model
• Iterative model
• Prototype model
• Spiral model
Waterfall model
• The first published model of the software development process
• In principle at least, you plan and schedule all the process activities before starting
software development
Can be used when:
✓ Requirements are not changing frequently.
✓ Application/project is not complicated and big.
✓ Project is short.
✓ Requirements are clear.
✓ Environment/requirements are stable.
✓ Technology and tools used are not changing dynamically.
✓ Resources are available and trained.
Intended learning outcomes:
• Explain what a software process is.
• Discover process models used by professional software developers to manage
small to large-scale software projects.
• Illustrate activities involved in Software Process Models
• Choose suitable process models for different software projects.
❖ A software process is a structured set of activities required to develop a
software system. Note that we are talking about a "software process" -- not a
"software development process."
There are many kinds of software processes, but each one of them involve these four types of
fundamental activities:
o Software specification - defining what the system should do.
o Software design and implementation - defining the organization of the system and
implementing the system.
o Software validation - checking that it does what the customer wants.
o Software evolution - changing the system in response to changing customer needs.
A software process model is an abstract representation of a process. It presents a description of a
process from some perspective. When we describe and discuss software processes, we usually
talk about the activities in these processes such as specifying a data model, designing a user
interface, etc. and the ordering of these activities.
Process descriptions may also include:
✓ Products (what), which are the outcomes of a process activity.
✓ Roles (who), which reflect the responsibilities of the people involved in the process.
✓ Pre- and post-conditions (how), which are statements that are true before and after a
process activity has been enacted or a product produced.
Plan-driven processes are processes where all the process activities are planned in advance and
progress is measured against this plan.
In 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.
, Software Process Models
• Waterfall model
• V model
• Incremental model
• RAD model
• Agile model
• Iterative model
• Prototype model
• Spiral model
Waterfall model
• The first published model of the software development process
• In principle at least, you plan and schedule all the process activities before starting
software development
Can be used when:
✓ Requirements are not changing frequently.
✓ Application/project is not complicated and big.
✓ Project is short.
✓ Requirements are clear.
✓ Environment/requirements are stable.
✓ Technology and tools used are not changing dynamically.
✓ Resources are available and trained.