Chapter 2-
Software
Processes
CSC3324
Dr Houda CHAKIRI
Topics covered
Software process models
Process activities
Coping with change
Chapter 2 Software Processes 2
• A structured set of activities
required to develop a
software system.
• A software process model is an
abstract representation of a
The Software process. It presents a description
Process of a process from some particular
perspective.
Chapter 2 Software Processes 3
Basic Problem-Solving Flow
WHAT
HOW
DO
TEST
USE
Software Development Life Cycle (SDLC)
• A broad framework that
outlines the phases involved in
the development of software
applications. It provides a
structured approach to
software development.
• SDLC can encompass various
methodologies, including
Waterfall, V-Model, Iterative
Model, Spiral, among others.
Chapter 2 Software Processes 5
• Many different software processes but
all involve:
• Requirement Specification –
Defining & planning what the system
should do;
Software
Development • Design and implementation –
defining the organization of the
Life Cycle system and implementing the
system;
(SDLC)
(cont.) • Validation/Testing – checking that it
does what the customer wants;
• Evolution – Deploying and changing
the system in response to changing
customer needs.
Chapter 2 Software Processes 6
Processes,
Phases,
Activities &
Tasks
A process is made up of phases. A phase is made up of
activities. An activity is made up of tasks.
Chapter 2 Software Processes 7
The Software Process (Simplified)
Feasibility and
Planning Requirements
Design
Operation and
Implementation Maintenance
Roles, Resources, Activities & Tasks
Chapter 2 Software Processes 9
Software Process Descriptions
Process descriptions may also include:
• Work Products, which are the outcomes
of a process activity/task;
• Resources : what is needed to complete
the task: time, people, technology,
knowledge, and money
• 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 Processes 10
Process Models Types
• Adopting and adapting a suitable process is key in structuring the
work for a successful software project.
• Designing a process can start from scratch or may be based on
one of the many process models that have already been used
successfully.
Major differences between models in terms of what activities
constitute their phases and the sequencing of the phases. 3 types of
PMs are:
• Linear process models – phases that happen sequentially, one
after another
• Iterative process models – phases that are repeated in cycles
• Parallel process models – activities that occur concurrently
Chapter 2 Software Processes 11
Plan-driven and Agile processes
• Plan-driven processes : are processes where all of the process
activities are planned, 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.
• There are no right or wrong software processes.
Chapter 2 Software Processes 12
Software process models
• The waterfall model
• Plan-driven model. Separate and distinct phases of
specification and development.
• Incremental development
• Specification, development and validation are interleaved. May
be plan-driven or agile.
• Reuse-oriented software engineering
• The system is assembled from existing components. May be
plan-driven or agile.
In practice, most large systems are developed using a process that
incorporates elements from all of these models.
Chapter 2 Software Processes 13
The waterfall Model
Chapter 2 Software Processes 14
Waterfall Model Discussion
Pros Cons
• Simple and Easy to • Inflexibility
Understand • Late Testing
• Well-Defined Stages
• High Risk
• Structured Approach
• Poor Adaptability
• Ease of Management
• Customer
Involvement
Chapter 2 Software Processes 15
Incremental Development
Chapter 2 Software Processes 16
Incremental Development
Discussion
Pros Cons
• Reduced Cost of • Lack of Process
Accommodating Visibility
Changing
Requirements • Degradation of
System Structure
• Easier Customer
Feedback
• Rapid Delivery and
Deployment
Chapter 2 Software Processes 17
Reuse-Oriented Software Engineering
Chapter 2 Software Processes 18
Types of software components
• Web services that are developed
according to service standards and which
are available for remote invocation.
• Collections of objects that are developed
as a package to be integrated with a
component framework such as .NET or
J2EE.
• Stand-alone software systems (COTS)
that are configured for use in a particular
environment.
Chapter 2 Software Processes 19
Reuse-Oriented Software Engineering
Discussion
Pros Cons
• Standardization • Hidden Costs
• Focus on High-Level • Quality Variability
Design • Licensing and Legal
• Increased Reliability Concerns
• Cost Savings • Dependency on Third-Party
• Reduced Components
Development Time • Compatibility Issues
• Limited Control
Chapter 2 Software Processes 20