Subject Name: Software Engineering
Unit No:1 Unit Name : Software Process
Models
Faculty Name Mr. Ganesh Ingale
Index
Lecture 1 – Evolving role of software, Type of Software,
SW Components:4 Ps (Process, People, Project, Product), 3
Lecture 2 – SDLC methods/models: Build & Fix, Waterfall, Prototype (Evolutionary &
Throw-away) 14
Lecture 3 – V model, Incremental iterative, Spiral, RAD 25
38
2 Software Process Models
Unit No:1 Unit Name: Introduction to Software Engineering and
Process Models
Lecture No: 1
Evolving role of software,
Type of Software
The Evolving Role of Software
Software plays a critical role in today's technological
landscape, powering various industries and driving innovation.
In this presentation, we will explore the evolving role of
software and how it has transformed over time.
We'll discuss key developments, methodologies, and
technologies that have shaped the software engineering field.
4 Software Process Models
Traditional Software Development (1970s - 1990s)
Traditional software development approaches, such as the
waterfall model, dominated the industry during the 1970s to
1990s.
These methods involved sequential phases like requirements
gathering, design, coding, testing, and deployment.
While effective in certain scenarios, traditional approaches had
limitations such as long development cycles and limited
adaptability.
5 Software Process Models
Agile Software Development (2001 - Present)
Agile software development emerged in 2001 as a response to
the drawbacks of traditional approaches.
Agile embraces flexibility, collaboration, and iterative
development to deliver value to customers faster.
It emphasizes continuous feedback, adaptation, and close
collaboration between developers, testers, and stakeholders.
6 Software Process Models
DevOps and Continuous Integration/Continuous Delivery (CI/CD) (2008
- Present)
DevOps has revolutionized software development by bridging the
gap between development and operations teams.
It emphasizes collaboration, communication, and automation to
achieve faster and more reliable software delivery.
Continuous Integration/Continuous Delivery (CI/CD) practices
ensure frequent and automated software builds, testing, and
deployment.
7 Software Process Models
Cloud Computing and Software as a Service (SaaS) (Late 2000s -
Present)
Cloud computing has transformed the way software is
developed, deployed, and accessed.
It offers scalability, flexibility, and cost-efficiency by leveraging
remote servers and resources.
Software as a Service (SaaS) allows users to access software
applications over the internet, eliminating the need for local
installations.
8 Software Process Models
Artificial Intelligence and Machine Learning (1956 - Present)
Artificial Intelligence (AI) and Machine Learning (ML) have
become integral to modern software engineering.
AI technologies enable software to learn, adapt, and
perform complex tasks traditionally reserved for humans.
Applications of AI and ML include natural language
processing, computer vision, and predictive analytics.
9 Software Process Models
Internet of Things (IoT) and Embedded Software (1999 - Present)
The Internet of Things (IoT) has revolutionized software
development by connecting everyday objects and devices.
Embedded software plays a crucial role in controlling and
managing IoT devices and their interactions.
IoT applications span various domains, including smart
homes, wearable devices, and industrial IoT.
10 Software Process Models
Software Quality and Testing
Ensuring software quality is vital for reliable and user-friendly
applications.
Modern testing approaches focus on automation, continuous
testing, and early bug detection.
Test-driven development (TDD) and behavior-driven
development (BDD) promote a test-first mindset and
collaboration between developers and testers.
11 Software Process Models
1. Introduction
What is Software?
The product that software professionals build and then support over the long
term.
Software encompasses:
1. instructions (computer programs) that when executed provide desired
features, function, and performance;
2. data structures that enable the programs to adequately store and
manipulate information and ?????
3. documentation that describes the operation and use of the
programs.
12 Software Process Models
Software Product
• Stand-alone systems that are marketed and sold to
Generic any customer who wishes to buy them.
• Examples – PC software such as editing, graphics
products programs, project management tools; CAD software;
software for specific markets such as appointments
systems for dentists.
Customized • Software that is commissioned by a specific customer
to meet their own needs.
products • Examples – embedded control systems, air traffic
control software, traffic monitoring systems
13 Software Process Models
Why Software is important?
The economies of ALL developed nations are dependent
on software.
More and more systems are software controlled
(transportation, medical, telecommunications, military,
industrial, entertainment)
Software engineering is concerned with theories,
methods and tools for professional software
development.
14 Software Process Models
Software Cost
Software costs often dominate computer system costs.
The costs of software on a PC are often greater than
the hardware cost.
Software costs more to maintain than it does to
develop. For systems with a long life, maintenance
costs may be several times development costs.
Software engineering is concerned with cost-effective
software development.
15 Software Process Models
Types of Software
Typically, there are two major classifications of
software, namely System Software and
Application Software.
System software
Application Software
16 Software Process Models
System Software
A system software aids the user and the hardware to function and interact with each other. Basically,
it is a software to manage computer hardware behaviour so as to provide basic functionalities that
are required by the user.
In simple words, we can say that system software is an intermediate or a middle layer between the
user and the hardware.
These computer software sanction a platform or environment for the other software to work in.
When you first turn on the computer, it is the system software that gets initialized and gets loaded in
the memory of the system. The system software runs in the background and is not used by the end-
users. This is the reason why system software is also known as ‘low-level software’.
17 Software Process Models
Some common system software examples are:
Operating System
Device Drivers:
Programming Language Translators
Utility
18 Software Process Models
Application Software
Application Software, also known as end-user programs or productivity programs
are software that helps the user in completing tasks such as doing online research,
jotting down notes, setting an alarm, designing graphics, keeping an account log,
doing calculations or even playing games.
They lie above the system software. Unlike system software, they are used by the
end-user and are specific in their functionality or tasks and do the job that they are
designed to do.
For example, a browser is an application designed specifically for browsing the
internet or MS PowerPoint is an application used specifically for making
presentations.
19 Software Process Models
Application Software
Word Processors
Database Software:
Multimedia Software:
Education and Reference Software
Graphics Software
Web Browsers
20 Software Process Models
Software Applications
Embedded software:
resides within a
product or system.
System software: (key pad control of a
such as compilers, microwave oven,
editors, file digital function of
management dashboard display in
utilities. a car).
Application Product-line
software: stand- software focus on a
alone programs for limited marketplace
specific needs. to address mass
consumer market.
(word processing,
graphics, database
management).
21 Software Process Models
Software Applications
6. AI software uses non-
numerical algorithm to solve
complex problem. Robotics,
expert system, pattern
recognition game playing.
5. WebApps (Web
applications) network centric
software. As web 2.0
emerges, more sophisticated
computing environments is
supported integrated with
remote database and
business applications.
22 Software Process Models
Software Engineering
“Software Engineering is a discipline in which theories, methods
and tools are applied to develop professional software product.”
In SE, Systematic and organized approach is adopted. Based on
nature of the problem and development constraints various tools
and techniques are applied in order to develop quality software.
Software product may be :
• Generic –developed to be sold to a range of different customers.
• Custom –developed for a single customer according to their specification.
23 Software Process Models
SW Components:4 Ps (Process, People, Project, Product),
Product
Software
Project Components
Process
People
24 Software Process Models
People
The most important component of a product and its successful
implementation is human resources. In building a proper product, a
well-managed team with clear-cut roles defined for each
person/team will lead to the success of the product.
We need to have a good team in order to save our time, cost, and
effort. Some assigned roles in software project planning are project
manager, team leaders, stakeholders, analysts, and other IT
professionals. Managing people successfully is a tricky process
which a good project manager can do.
25 Software Process Models
Product
As the name inferred, this is the deliverable or the result of the
project. The project manager should clearly define the product
scope to ensure a successful result, control the team members, as
well technical hurdles that he or she may encounter during the
building of a product.
The product can consist of both tangible or intangible such as
shifting the company to a new place or getting a new software in a
company.
26 Software Process Models
Process
In every planning, a clearly defined process is the key
to the success of any product. It regulates how the
team will go about its development in the respective
time period.
The Process has several steps involved like,
documentation phase, implementation phase,
deployment phase, and interaction phase.
27 Software Process Models
Project
The last and final P in software project planning is Project. In
this phase, the project manager plays a critical role.
They are responsible to guide the team members to achieve
the project’s target and objectives, helping & assisting them
with issues, checking on cost and budget, and making sure
that the project stays on track with the given deadlines.
28 Software Process Models
Unit No:1 Unit Name: Software Process Models
Lecture No: 2
SDLC methods/models:
Waterfall, Prototype
(Evolutionary &
Throw-away)
Five Activities of a software Process framework
Communication: communicate with customer to understand
objectives and gather requirements
Planning: creates a “map” defines the work by describing the tasks,
risks and resources, work products and work schedule.
Modeling: Create a “sketch”, what it looks like architecturally, how
the constituent parts fit together and other characteristics.
Construction: code generation and the testing.
Deployment: Delivered to the customer who evaluates the products
and provides feedback based on the evaluation.
30 Software Process Models
Five Activities of a Generic Process framework
These five framework activities can be used to all software
development regardless of the application domain, size of the project,
complexity of the efforts etc., though the details will be different in each
case.
For many software projects, these framework activities are applied
iteratively as a project progresses. Each iteration produces a
software increment that provides a subset of overall software features
and functionality.
31 Software Process Models
Software Process Framework
Framework- Standard way to build and
deploy applications
Software framework is foundation of
complete software engineering process
Includes no. of framework activities that
are applicable to all software projects
32 Software Process Models
Common Process Framework Continue…
33 Software Process Models
Software Process Model
Software Processes is a coherent set of activities for specifying, designing, implementing and testing
software systems.
A software process model is an abstract representation of a process that presents a description of a process
from some particular perspective. There are 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.
34 Software Process Models
Types of Software Process Model
35 Software Process Models
Waterfall Model
• The waterfall model is a breakdown of project activities into linear
sequential phases, where each phase depends on the deliverables of the
previous one and corresponds to a specialization of tasks.
• Sometimes called the classic life cycle or, the linear sequential model
• The phases include:
Communication
Planning
Modeling
Construction
Deployment
36 Software Process Models
Waterfall Model
Communication: This framework activity involves heavy communication and
collaboration with the customer (and other stakeholders) and encompasses
requirements gathering and other related activities.
37 Software Process Models
Waterfall Model
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.
38 Software Process Models
Waterfall Model
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.
39 Software Process Models
Waterfall Model
Construction: This activity combines code generation (either manual or auto
mated) and the testing that is required to uncover errors in the code.
40 Software Process Models
Waterfall Model
Deployment: The software (as a complete entity or as a partially completed
increment) is delivered to the customer who evaluates the delivered product and
provides feedback based on the evaluation.
41 Software Process Models
Waterfall Model
Benefits of Waterfall Model
Simple to implement
Useful for implementation of small systems
42 Software Process Models
Waterfall Model
Drawbacks of Waterfall Model
Real projects rarely follow the sequential flow that the model proposes.
Iteration always occurs and creates problems in the application of the model.
It is difficult for the client to state all requirements explicitly. The
classic life cycle requires this and it is thus difficult to accommodate the
natural uncertainty that occurs
A working version of the program is not available until late in the
project time span. A major blunder may remain undetected until the working
program is reviewed which is potentially disastrous.
43 Software Process Models
The Prototyping Model
• Communication: Prototyping begins
with requirements gathering. The
developer and the client meet and define
the overall objectives for the software,
identify the requirements.
• Quick Plan: A prototyping iteration is
planned quickly and modeling (in form of
a “quick design”) occurs.
44 Evolutionary Process Models
The Prototyping Model
• Modeling & Quick Design: The quick
design focuses on a representation of
those aspects of the software that will be
visible to the customer/user (e.g., input
approaches and output formats).
• Construction: Quick Design leads to
the construction of a prototype.
• Deployment: The prototype is deployed
and evaluated by the customer/user and
used to refine requirements for the
software to be developed.
45 Evolutionary Process Models
The Prototyping Model
Advantages:
It serves as the mechanism for
identifying the requirements.
The developer use the existing program
fragments means it helps to generate the
software quickly.
Continuous developer – Consumer
communication is available.
46 Evolutionary Process Models
The Prototyping Model
Disadvantages:
Customer considers the prototype as a
original working version of the software.
Developer makes implementation
compromise in order to get prototype
working quickly.
This model is time consuming.
47 Evolutionary Process Models
Unit No:1 Unit Name: Software Process Models
Lecture No: 3 V model,
Incremental iterative,
Spiral, RAD.
Verification – Are we building software right?
Validation – Are we building right software?
V Model
The V-model is an SDLC model where execution of processes happens in
a sequential manner in a V-shape. It is also known as Verification and
Validation model.
The V-Model is an extension of the waterfall model and is based on the
association of a testing phase for each corresponding development stage.
This means that for every single phase in the development cycle, there is
a directly associated testing phase.
This is a highly-disciplined model and the next phase starts only after
completion of the previous phase
49 V Model
V- Model
Requirement Analysis
• This phase involves detailed
communication with the customer to
understand his expectations and
exact requirement.
• The acceptance test design
planning is done at this stage as
business requirements can be used
as an input for acceptance testing.
50 V Model
V- Model
System Design
• The system design will have the
understanding and detailing the
complete hardware and
communication setup for the product
under development
• The system test plan is developed
based on the system design. Doing
this at an earlier stage leaves more
time for the actual test execution
later.
51 V Model
V- Model
Architectural Design
• The system design is broken down
further into modules taking up different
functionality. This is also referred to
as High Level Design (HLD).
• The data transfer and communication
between the internal modules and with
the outside world (other systems) is
clearly understood and defined in this
stage.
• With this information, integration tests
can be designed and documented during
this stage.
52 V Model
V- Model
Module Design
• In this phase, the detailed internal design
for all the system modules is specified,
referred to as Low Level Design (LLD).
• The unit tests are an essential part of
any development process and helps
eliminate the maximum faults and errors
at a very early stage. These unit tests
can be designed at this stage based on
the internal module designs.
53 V Model
V- Model
Coding Phase
• The actual coding of the system modules
designed in the design phase is taken up
in the Coding phase. The best suitable
programming language is decided based
on the system and architectural
requirements.
• The code goes through numerous code
reviews and is optimized for best
performance before the final build is
checked into the repository.
54 V Model
V Model
Advantages:
• This is a highly disciplined model and Phases are completed one at a
time.
• V-Model is used for small projects where project requirements are clear.
• Simple and easy to understand and use.
Disadvantages:
• High risk and uncertainty.
• It is not a good for complex and object-oriented projects.
• It is not suitable for projects where requirements are not Clear and
contains high risk of changing.
•
55 V Model
Incremental Process Models
• Linear sequential model is not suited for projects which are iterative
in nature.
• Initial model with limited functionality is created as per user’s
understanding about the s/w product.
• Functionality expanded further in later releases.
• Software is developed in increments.
• Types:
1. Increment Model
2. Rapid Application Model (RAD Model)
56 Software Process Models
Increment Model
Software releases in
increments.
1st increment constitutes
Core product. Basic
requirements are
implemented and in
subsequent increments
new requirements are
added.
Example – Word
processing software
package.
57 Software Process Models
Increment Model - Benefits
Particularly useful when staffing is inadequate for a complete implementation
by the business deadline.
Early increments can be implemented with fewer people. If the core
product is well received, additional staff can be added to implement the next
increment.
Increments can be planned to manage technical risks. For example, the
system may require availability of some hardware that is under development. It
may be possible to plan early increments without the use of this hardware,
thus enabling partial functionality and avoiding unnecessary delay.
58 Software Process Models
Rapid Application Model (RAD Model)
An incremental software process model.
Having a short development cycle.
High-speed adoption of the waterfall model using a component based
construction approach.
Creates a fully functional system within a very short span time of 60 to 90
days.
Multiple software teams work in parallel on different functions.
59 Software Process Models
Rapid Application Model (RAD Model)
1. Communication
(Requirement gathering)
2. Planning (Analysis and
Planning)
3. Modeling(Design)
4. Construction (Build)
5. Deployment
60 Software Process Models
Rapid Application Model (RAD Model)
• Advantages:
– Modularized approach to development
– Creation and use of reusable components
– Drastic reduction in development time
61 Software Process Models
Rapid Application Model (RAD Model)
• Disadvantages:
For large projects, sufficient human resources are needed to
create the right number of RAD teams.
Not all types of applications are appropriate for RAD. If a
system cannot be modularized, building the necessary
components for RAD will be difficult.
Not appropriate when the technical risks are high. For
example, when an application makes heavy use of new
technology or when the software requires a high degree of
interoperability with existing programs.
62 Software Process Models
Spiral Model
• Spiral model is a risk driven process
model.
• In spiral model, an alternate solution is
provided if the risk is found in the risk
analysis, then alternate solutions are
suggested and implemented.
• It is a combination of prototype and
sequential model or waterfall model.
• In one iteration all activities are done, for
large project's the output is small.
63 Evolutionary Process Models
Spiral Model
• Communication - tasks required to
establish effective communication between
developer and customer.
• Planning - tasks required to define
resources, timelines, to assess both
technical and management risks.
• Modeling - creation of models to
understand software requirements and the
design that will achieve those
requirements.
64 Evolutionary Process Models
Spiral Model
• Construction - combines code generation
and the testing that is required to uncover
errors in the code.
• Deployment: customer evaluates the
delivered product and provides feedback.
65 Evolutionary Process Models
Spiral Model
• Advantages:
– Enables developers and clients to
understand and react to risks at an
evolutionary level.
– It uses the systematic approach suggested
by the classic life cycle method but
incorporates it into an iterative framework
that is more realistic.
– This model demands an evaluation of risks
at all stages and should reduce risks before
they become problematic, if properly
applied.
66 Evolutionary Process Models
Spiral Model
• Disadvantages:
It may be difficult to convince clients that
the evolutionary approach is controllable.
It demands considerable risk assessment
expertise and relies on this for success.
If major risk is not uncovered, problems
will undoubtedly occur.
67 Evolutionary Process Models
Thank You