Chapter 2 - Software
Development Life
Cycle Models
1
Software Engineering By Gadisa A.
3/4/2024
• A structured set of activities required to develop a
software system
• A software process (also knows as software methodology)
is a set of related activities that leads to the production of
the software.
• These activities may involve the development of the
software from the scratch, or, modifying an existing
system.
Softwareprocesses
2
Software Engineering By Gadisa A.
3/4/2024
3
Software Engineering By Gadisa A.
Software processes….Cont.
Any software process must include the following four activities:
1. Software specification (or requirements engineering):
Define the main functionalities of the software and the
constrains around them.
2. Software design and implementation: The software is to
be designed and programmed.
3. Software verification and validation: The software must
conforms to it’s specification and meets the customer
needs.
3/4/2024
4
Software Engineering By Gadisa A.
Software processes….Cont.
4. Software evolution (software maintenance): The
software is being modified to meet customer and
market requirements changes.
• In practice, they include sub-activities such as
requirements validation, architectural design, unit
testing, …etc.
3/4/2024
The goal of Software Engineering is to provide
models and processes that lead to the
production of well-documented maintainable
software in a manner that is predictable.
Software Development Life Cycle
5
Software Engineering By Gadisa A.
3/4/2024
“The period of time that starts when a software
product is conceived and ends when the product
is no
life cycle typically includes a
longer available for use. The software
requirement
phase, design phase, implementation phase, test
phase, installation and check out phase, operation
and maintenance phase, and sometimes retirement
phase”.
Software Life Cycle Models
6
Software Engineering By Gadisa A.
3/4/2024
• A software process model is a
representation of a software process.
simplified
• Each model represents a process from a specific
perspective.
• Those methodologies are sometimes known as
software development life cycle (SDLC)
methodologies, though this term could also be used
more generally to refer to any methodology.
SoftwareProcessModels
7
3/4/2024
Software Engineering By Gadisa A.
Build & Fix Model
• Product is constructed
without specifications or any
attempt at design
• Ad hoc approach and not
well defined
• Simple two phase model Fix
Build
Code
8
Software Engineering By Gadisa A.
3/4/2024
• Suitable for small programming exercises of 100 or 200 lines
• Unsatisfactory for software for any reasonable size
• Code soon becomes unfixable & unenhanceable
• No room for structured design
• Maintenance is practically not possible
Build & Fix Model
9
Software Engineering By Gadisa A.
3/4/2024
10
Software Engineering By Gadisa A.
1. Waterfall Model
• This model is named “waterfall model” because it is
diagrammatic representation resembles a cascade of waterfalls.
• In the waterfall model, you must plan and schedule all of the
activities before starting working on them (plan-driven
process).
• This model is easy to understand and reinforces the notion
of “define before design” and “design before code”.
• The model expects complete and accurate requirements early in
the process, which is unrealistic
3/4/2024
1
1
Software Engineering By Gadisa A.
The Nature of Waterfall Phases
• In principle, the result of each phase is one or more documents
that should be approved and the next phase shouldn’t be started
until the previous phase has completely been finished.
• In practice, however, these phases overlap and feed information
to each other. For example, during design, problems with
requirements can be identified, and during coding, some of the
design problems can be found, etc.
• The software process therefore is not a simple linear but involves
feedback from one phase to another. So, documents produced in
each phase may then have to be modified to reflect the changes
made.
3/4/2024
Waterfall Model
12
Software Engineering By Gadisa A.
3/4/2024
Problems of waterfall model
i. It is difficult to define all requirements at the beginning
of a project
ii. This model is not suitable for accommodating any
change
iii. A working version of the system is not seen until
late in the project’s life
iv. It does not scale up well to large projects.
v. Real projects are rarely sequential.
Software Engineering By Gadisa A.
Waterfall Model
13
3/4/2024
2.Incremental Process Models
• They are effective in the situations where requirements are
defined precisely and there is no confusion about the
functionality of the final product.
• After every cycle a useable product is given to the customer.
• Popular particularly when we have to quickly deliver a limited
functionality system.
• Incremental development is based on the idea of developing an
initial implementation, exposing this to user feedback, and
evolving it through several versions until an acceptable system
has been developed.
14
Software Engineering By Gadisa A.
3/4/2024
2.Incremental Process Models
15
Software Engineering By Gadisa A.
3/4/2024
3. Iterative Enhancement Model
This model has the same phases as the waterfall model, but
with fewer restrictions. Generally the phases occur in the same
order as in the waterfall model, but they may be conducted in
several cycles. Useable product is released at the end of the each
cycle, with each release providing additional functionality.
• Customers anddevelopers specify as many requirements as
possible and prepare a SRS document.
• Developers and customers then prioritize these requirements
• Developers implement the specified requirements in one or
more cycles of design, implementation and test based on the
defined priorities.
16
Software Engineering By Gadisa A.
3/4/2024
Requirements
specification
Architectural
design
Detailed
design
Implementation
and unit testing
Integration
and testing
Operation and
Maintenance
Iterative Enhancement Model
17
Software Engineering By Gadisa A.
3/4/2024
That is the program after
debugging
4. The Rapid Application Development (RAD) Model
o Developed by IBM in 1980
o User participation is essential
The requirements
specification was
defined like this
The developers
understood it in
that way
This is how the
problem was
solved before.
This is how the
problem is
solved now
This is how the program is
described by marketing
department
This, in fact, is what the
customer wanted …
18
3/4/2024
Software Engineering By Gadisa A.
The Rapid Application Development (RAD) Model
• Build a rapid prototype
• Give it to user for evaluation & obtain feedback
• Prototype is refined
With active participation of users
Requirements
Planning
User
Description
Construc
tion
Cut over
19
Software Engineering By Gadisa A.
3/4/2024
2
0
Software Engineering By Gadisa A.
The Rapid Application Development (RAD) Model
• Not an appropriate model in the absence of user
participation
• Reusable components are required to reduce
development time.
• Highly specialized & skilled developers are required and
such developers are not easily available.
3/4/2024
RAD Phases
2
1
Software Engineering By Gadisa A.
3/4/2024
The phases in the rapid application development (RAD) model are:
• Business modeling: The information flow is identified between various
business functions.
• Data modeling: Information gathered from business modeling is used to
define data objects that are needed for the business.
• Process modeling: Data objects defined in data modeling are converted
to achieve the business information flow to achieve some specific
business objective.
• Application generation: Automated tools are used to convert process
models into code and the actual system.
• Testing and turnover: Test new components and all the interfaces.
22
The Rapid Application Development (RAD) Model
3/4/2024
Software Engineering By Gadisa A.
5. Evolutionary Process Models
Evolutionary process model resembles iterative enhancement
model. The same phases as defined for the waterfall model occur
here in a cyclical fashion. This model differs from iterative
enhancement model in the sense that this does not require a
useable product at the end of each cycle. In evolutionary
development, requirements are implemented by category rather
than by priority.
This model is useful for projects using new technology that is not
well understood. This is also used for complex projects where all
functionality must be delivered at one time, but the requirements
are unstable or not well understood at the beginning.
23
Software Engineering By Gadisa A.
3/4/2024
V
alidation
Final
version
Development Intermediate
versions
Specification
Initial
version
Outline
description
Concurrent
activities
Evolutionary Process Model
24
Software Engineering By Gadisa A.
3/4/2024
5.1 Prototyping Model
Y The prototype may be a usable program but is not suitable
as the final software product.
Y The code for the prototype is thrown away.
However experience gathered helps in developing the actual
system.
Y The development of a prototype might involve extra cost,
but overall cost might turnout to be lower than that of
an equivalent system developed using the waterfall model.
25
Software Engineering By Gadisa A.
3/4/2024
• Linear mode
• “Rapid”
l
Prototyping Model…Con’t
26
Software Engineering By Gadisa A.
3/4/2024
5.2 Spiral Model
Models do not deal with uncertainly which is inherent to software
projects.
Important software projects have failed because project risks were
neglected & nobody was prepared when something unforeseen
happened.
Barry Boehm recognized this and tired to incorporate the “project
risk” factor into a life cycle model.
The result is the spiral model, which was presented in 1986.
27
Software Engineering By Gadisa A.
3/4/2024
Spiral Model…Con’t
28
Software Engineering By Gadisa A.
3/4/2024
The radial dimension of the model represents the cumulative costs.
Each path around the spiral is indicative of increased costs. The
angular dimension represents the progress made in completing each
cycle. Each loop of the spiral from X-axis clockwise through 360o
represents one phase. One phase is split roughly into four sectors of
major activities.
• Planning: Determination of objectives, alternatives &
constraints.
• Risk Analysis: Analyze alternatives and attempts to identify
and resolve the risks involved.
• Development: Product development and testing product.
• Assessment: Customer evaluation
Spiral Model…Con’t
29
Software Engineering By Gadisa A.
3/4/2024
• An important feature of the spiral model is that each phase is
completed with a review by the people concerned with the
project (designers and programmers)
• The advantage of this model is the wide range of options to
accommodate the good features of other life cycle models.
• It becomes equivalent to another life cycle model in
appropriate situations.
The spiral model has some difficulties that need to be resolved
before it can be a universally applied life cycle model. These
difficulties include lack of explicit process guidance in determining
objectives, constraints, alternatives; relying on risk assessment
expertise; and provides more flexibility than required for many
applications.
Spiral Model…Con’t
Software Engineering By Gadisa A.
3/4/2024
6. The Unified Process
• Developed by I.Jacobson, G.Booch and J.Rumbaugh.
• Software engineering process with the goal of producing good
quality maintainable software within specified time and budget.
• Developed through a series of fixed length mini projects called
iterations.
• Maintained and enhanced by Rational Software Corporation and
thus referred to as Rational Unified Process (RUP).
Software Engineering By Gadisa A.
3/4/2024
Phases of the Unified Process
Definition of
objectives
of the project
Planning &
architecture
for the project
Initial
operational
capability
Inception
Inception Elaboration
Elaboration Construction
Construction Transition
Transition
Release of
the Software
product
Software Engineering By Gadisa A.
Time
3/4/2024
• Inception: defines scope of the project.
• Elaboration
- How do we plan & design the project?
- What resources are required?
- What type of architecture may be suitable?
• Construction: the objectives are translated in design &
architecture documents.
• Transition : involves many activities like delivering, training,
supporting, and maintaining the product.
Phases of the Unified Process
Software Engineering By Gadisa A.
3/4/2024
Initial development & Evolution Cycles
Initial development Cycle
Evolution Cycle
Inception Elaboration Construction Transition
Construction Transition
Inception
Inception Elaboration
Elaboration Construction
Construction Trranssiittiion
V1
Inception
Inception Elaboration
Elaboration Construction
Construction Trranssiittiion
V2
Inception Elaboration
Continue till the product is retired
V1=version1, V2 =version2, V3=version3
Software Engineering By Gadisa A.
V3
3/4/2024
Iterations & Workflow of Unified Process
Software Engineering By Gadisa A.
3/4/2024
Inception Phase
The inception phase has the following objectives:
• Gathering and analyzing the requirements.
• Planning and preparing a business case and evaluating
alternatives for risk management, scheduling resources etc.
• Estimating the overall cost and schedule for the project.
• Studying the feasibility and calculating profitability of the
project.
Software Engineering By Gadisa A.
3/4/2024
Outcomes of Inception Phase
Inception
Project plan
Initial risk
assessment
Initial business
case
Vision
document Initial use
case model
Initial
project
Glossary
Business
model
Software Engineering By Gadisa A.
Prototypes
3/4/2024
Elaboration Phase
infrastructure
Software Engineering By Gadisa A.
& development
• Establishing architectural foundations.
• Design of use case model.
• Elaborating the process,
environment.
• Selecting component.
• Demonstrating that architecture support
reasonable cost & within specified time.
the vision at
The elaboration phase has the following objectives:
3/4/2024
Outcomes of Elaboration Phase
Elaboration
Revised risk
document
An executable
architectural
prototype
Architecture
Description
document
Use case
model Supplementary
Requirements
with non functional
requirement
Preliminary
User manual
Software Engineering By Gadisa A.
Development plan
3/4/2024
Construction Phase
The construction phase has the following objectives:
• Implementing the project.
• Minimizing development cost.
• Management and optimizing resources.
• Testing the product
• Assessing the product releases against acceptance criteria
Software Engineering By Gadisa A.
3/4/2024
Outcomes of Construction Phase
Construction
Operational
manuals
Test Suite
Adescription
of the
current release
Software
product User manuals
Documentation
Software Engineering By Gadisa A.
manuals
Test
Outline
3/4/2024
Transition Phase
The transition phase has the following objectives:
• Starting of beta testing
• Analysis of user’s views.
• Training of users.
• Tuning activities including bug fixing and enhancements for
performance & usability
• Assessing the customer satisfaction.
Software Engineering By Gadisa A.
3/4/2024
Outcomes of Transition Phase
Transition
Product
release
Software Engineering By Gadisa A.
Beta test reports
User feedback
3/4/2024
Selection of a Life Cycle Model
Selection of a model is based on:
a) Requirements
b) Development team
c) Users
d) Project type and associated risk
Software Engineering By Gadisa A.
3/4/2024
BasedOn CharacteristicsOf Requirements
Requirements Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Are requirements
easily understandable
and defined?
Yes No No No No Yes
Do we change
requirements quite
often?
No Yes No No Yes No
Can we define
requirements early
in the cycle?
Yes No Yes Yes No Yes
Requirements are
indicating a complex
system to be built
No Yes Yes Yes Yes No
Software Engineering By Gadisa A.
3/4/2024
BasedOnStatusOf Development Team
Development
team
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Less experience on
similar projects?
No Yes No No Yes No
Less domain
knowledge (new to
the technology)
Yes No Yes Yes Yes No
Less experience on
tools to be used
Yes No No No Yes No
Availability of
training if required
No No Yes Yes No Yes
Software Engineering By Gadisa A.
3/4/2024
Software Engineering By Gadisa A.
Based On User’sParticipation
Involvement
of Users
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
User involvement
in all phases
No Yes No No No Yes
Limited user
participation
Yes No Yes Yes Yes No
User have no
previous experience
of participation in
similar projects
No Yes Yes Yes Yes No
Users are experts
of problem domain
No Yes Yes Yes No Yes
3/4/2024
BasedOnTypeOf ProjectWith AssociatedRisk
Project type
and risk
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Project is the
enhancement of the
existing system
No No Yes Yes No Yes
Funding is stable
for the project
Yes Yes No No No Yes
High reliability
requirements
No No Yes Yes Yes No
Tight project
schedule
No Yes Yes Yes Yes Yes
Use of reusable
components
No Yes No No Yes Yes
Are resources
(time, money,
people etc.) scare?
No Yes No No Yes No
Software Engineering By Gadisa A.
3/4/2024
Thank You
Software Engineering By Gadisa A.
3/4/2024

More Related Content

PPTX
SE-03.pptx
PPTX
Object Oriented Software engineering.pptx
PPTX
Chapter 1.pptxs Introduction to software Engineering
PPTX
61f4fc87-9977-4003-baf8-37f13200977b.pptx
PDF
7 5-94-101
PDF
Software model
PPTX
2-models.pptx
PPSX
DISE - Introduction to Software Engineering
SE-03.pptx
Object Oriented Software engineering.pptx
Chapter 1.pptxs Introduction to software Engineering
61f4fc87-9977-4003-baf8-37f13200977b.pptx
7 5-94-101
Software model
2-models.pptx
DISE - Introduction to Software Engineering

Similar to Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx (20)

PPTX
Software Development Life Cycle (SDLC )
PPTX
04_Materi Software Proses-Models(1).pptx
PDF
A Comparative Study of Different types of Models in Software Development Life...
PPTX
The process
PPT
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
PPTX
Software Engineering - Software Models
PDF
Empirical Study of Software Development Life Cycle and its Various Models
PPT
Software Engineering Process Models important
PPTX
Slcm sharbani bhattacharya
PDF
Security Cosc gvggghghhhhhhhhhhhhhhhhhhhhh
PPTX
SE - Lecture 2 - SW Devl Process.pptx
PDF
DOC-20240807-WA0000-adobe-scan-2024-1.pdf
PPT
5. software process model
PPTX
Software Generic Design Process.
PDF
Software Process Model
PPT
Software Engineering (Process Models)
PDF
Software Process Models
PPT
Chapter 1- Introduction for software.ppt
PPT
Chapter 1- Introduction to software engineering for CS.ppt
PPTX
Lecture #02 ECS-511.pptx
Software Development Life Cycle (SDLC )
04_Materi Software Proses-Models(1).pptx
A Comparative Study of Different types of Models in Software Development Life...
The process
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
Software Engineering - Software Models
Empirical Study of Software Development Life Cycle and its Various Models
Software Engineering Process Models important
Slcm sharbani bhattacharya
Security Cosc gvggghghhhhhhhhhhhhhhhhhhhhh
SE - Lecture 2 - SW Devl Process.pptx
DOC-20240807-WA0000-adobe-scan-2024-1.pdf
5. software process model
Software Generic Design Process.
Software Process Model
Software Engineering (Process Models)
Software Process Models
Chapter 1- Introduction for software.ppt
Chapter 1- Introduction to software engineering for CS.ppt
Lecture #02 ECS-511.pptx
Ad

More from gadisaAdamu (20)

PDF
Addis ababa of education plan.docxJOSY 10 C.pdf
PDF
Addis ababa college of education plan.docxjosy 10 A.pdf
PPT
Lecture -3 Classification(Decision Tree).ppt
PPT
Lecture -2 Classification (Machine Learning Basic and kNN).ppt
PPT
Lecture -8 Classification(AdaBoost) .ppt
PPT
Lecture -10 AI Reinforcement Learning.ppt
PPTX
Updated Lensa Research Proposal (1).pptx
PPTX
Lensa research presentation Powepoint.pptx
PPTX
Lensa Habtamu Updated one Powerpoint.pptx
PPTX
Updated Lensa Research Proposal (1).pptx
PPTX
Lensa Updated research presentation Powerpoint.pptx
PPTX
AI Chapter Two.pArtificial Intelligence Chapter One.pptxptx
PPTX
Artificial Intelligence Chapter One.pptx
PPTX
Introduction to Embeded System chapter 1 and 2.pptx
PPT
Chapter Five Synchonization distributed Sytem.ppt
PPTX
Introduction to Embeded System chapter one and 2.pptx
PPT
chapter distributed System chapter 3 3.ppt
PPTX
Chapter 2- distributed system Communication.pptx
PPTX
Chapter 1-Introduction to distributed system.pptx
PPTX
chapter AI 4 Kowledge Based Agent.pptx
Addis ababa of education plan.docxJOSY 10 C.pdf
Addis ababa college of education plan.docxjosy 10 A.pdf
Lecture -3 Classification(Decision Tree).ppt
Lecture -2 Classification (Machine Learning Basic and kNN).ppt
Lecture -8 Classification(AdaBoost) .ppt
Lecture -10 AI Reinforcement Learning.ppt
Updated Lensa Research Proposal (1).pptx
Lensa research presentation Powepoint.pptx
Lensa Habtamu Updated one Powerpoint.pptx
Updated Lensa Research Proposal (1).pptx
Lensa Updated research presentation Powerpoint.pptx
AI Chapter Two.pArtificial Intelligence Chapter One.pptxptx
Artificial Intelligence Chapter One.pptx
Introduction to Embeded System chapter 1 and 2.pptx
Chapter Five Synchonization distributed Sytem.ppt
Introduction to Embeded System chapter one and 2.pptx
chapter distributed System chapter 3 3.ppt
Chapter 2- distributed system Communication.pptx
Chapter 1-Introduction to distributed system.pptx
chapter AI 4 Kowledge Based Agent.pptx
Ad

Recently uploaded (20)

PDF
Beginners-Guide-to-Artificial-Intelligence.pdf
PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PPTX
MAD Unit - 3 User Interface and Data Management (Diploma IT)
PDF
Present and Future of Systems Engineering: Air Combat Systems
PDF
Project_Mgmt_Institute_-Marc Marc Marc .pdf
PDF
August 2025 - Top 10 Read Articles in Network Security & Its Applications
PPTX
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
PDF
[jvmmeetup] next-gen integration with apache camel and quarkus.pdf
PPTX
Cisco Network Behaviour dibuywvdsvdtdstydsdsa
PPTX
Wireless sensor networks (WSN) SRM unit 2
PPTX
Agentic Artificial Intelligence (Agentic AI).pptx
PPTX
Micro1New.ppt.pptx the mai themes of micfrobiology
PDF
electrical machines course file-anna university
PPTX
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
PDF
20250617 - IR - Global Guide for HR - 51 pages.pdf
PPTX
mechattonicsand iotwith sensor and actuator
PPTX
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
PPTX
Environmental studies, Moudle 3-Environmental Pollution.pptx
PDF
Computer System Architecture 3rd Edition-M Morris Mano.pdf
PDF
UEFA_Carbon_Footprint_Calculator_Methology_2.0.pdf
Beginners-Guide-to-Artificial-Intelligence.pdf
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
MAD Unit - 3 User Interface and Data Management (Diploma IT)
Present and Future of Systems Engineering: Air Combat Systems
Project_Mgmt_Institute_-Marc Marc Marc .pdf
August 2025 - Top 10 Read Articles in Network Security & Its Applications
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
[jvmmeetup] next-gen integration with apache camel and quarkus.pdf
Cisco Network Behaviour dibuywvdsvdtdstydsdsa
Wireless sensor networks (WSN) SRM unit 2
Agentic Artificial Intelligence (Agentic AI).pptx
Micro1New.ppt.pptx the mai themes of micfrobiology
electrical machines course file-anna university
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
20250617 - IR - Global Guide for HR - 51 pages.pdf
mechattonicsand iotwith sensor and actuator
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
Environmental studies, Moudle 3-Environmental Pollution.pptx
Computer System Architecture 3rd Edition-M Morris Mano.pdf
UEFA_Carbon_Footprint_Calculator_Methology_2.0.pdf

Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx

  • 1. Chapter 2 - Software Development Life Cycle Models 1 Software Engineering By Gadisa A. 3/4/2024
  • 2. • A structured set of activities required to develop a software system • A software process (also knows as software methodology) is a set of related activities that leads to the production of the software. • These activities may involve the development of the software from the scratch, or, modifying an existing system. Softwareprocesses 2 Software Engineering By Gadisa A. 3/4/2024
  • 3. 3 Software Engineering By Gadisa A. Software processes….Cont. Any software process must include the following four activities: 1. Software specification (or requirements engineering): Define the main functionalities of the software and the constrains around them. 2. Software design and implementation: The software is to be designed and programmed. 3. Software verification and validation: The software must conforms to it’s specification and meets the customer needs. 3/4/2024
  • 4. 4 Software Engineering By Gadisa A. Software processes….Cont. 4. Software evolution (software maintenance): The software is being modified to meet customer and market requirements changes. • In practice, they include sub-activities such as requirements validation, architectural design, unit testing, …etc. 3/4/2024
  • 5. The goal of Software Engineering is to provide models and processes that lead to the production of well-documented maintainable software in a manner that is predictable. Software Development Life Cycle 5 Software Engineering By Gadisa A. 3/4/2024
  • 6. “The period of time that starts when a software product is conceived and ends when the product is no life cycle typically includes a longer available for use. The software requirement phase, design phase, implementation phase, test phase, installation and check out phase, operation and maintenance phase, and sometimes retirement phase”. Software Life Cycle Models 6 Software Engineering By Gadisa A. 3/4/2024
  • 7. • A software process model is a representation of a software process. simplified • Each model represents a process from a specific perspective. • Those methodologies are sometimes known as software development life cycle (SDLC) methodologies, though this term could also be used more generally to refer to any methodology. SoftwareProcessModels 7 3/4/2024 Software Engineering By Gadisa A.
  • 8. Build & Fix Model • Product is constructed without specifications or any attempt at design • Ad hoc approach and not well defined • Simple two phase model Fix Build Code 8 Software Engineering By Gadisa A. 3/4/2024
  • 9. • Suitable for small programming exercises of 100 or 200 lines • Unsatisfactory for software for any reasonable size • Code soon becomes unfixable & unenhanceable • No room for structured design • Maintenance is practically not possible Build & Fix Model 9 Software Engineering By Gadisa A. 3/4/2024
  • 10. 10 Software Engineering By Gadisa A. 1. Waterfall Model • This model is named “waterfall model” because it is diagrammatic representation resembles a cascade of waterfalls. • In the waterfall model, you must plan and schedule all of the activities before starting working on them (plan-driven process). • This model is easy to understand and reinforces the notion of “define before design” and “design before code”. • The model expects complete and accurate requirements early in the process, which is unrealistic 3/4/2024
  • 11. 1 1 Software Engineering By Gadisa A. The Nature of Waterfall Phases • In principle, the result of each phase is one or more documents that should be approved and the next phase shouldn’t be started until the previous phase has completely been finished. • In practice, however, these phases overlap and feed information to each other. For example, during design, problems with requirements can be identified, and during coding, some of the design problems can be found, etc. • The software process therefore is not a simple linear but involves feedback from one phase to another. So, documents produced in each phase may then have to be modified to reflect the changes made. 3/4/2024
  • 13. Problems of waterfall model i. It is difficult to define all requirements at the beginning of a project ii. This model is not suitable for accommodating any change iii. A working version of the system is not seen until late in the project’s life iv. It does not scale up well to large projects. v. Real projects are rarely sequential. Software Engineering By Gadisa A. Waterfall Model 13 3/4/2024
  • 14. 2.Incremental Process Models • They are effective in the situations where requirements are defined precisely and there is no confusion about the functionality of the final product. • After every cycle a useable product is given to the customer. • Popular particularly when we have to quickly deliver a limited functionality system. • Incremental development is based on the idea of developing an initial implementation, exposing this to user feedback, and evolving it through several versions until an acceptable system has been developed. 14 Software Engineering By Gadisa A. 3/4/2024
  • 15. 2.Incremental Process Models 15 Software Engineering By Gadisa A. 3/4/2024
  • 16. 3. Iterative Enhancement Model This model has the same phases as the waterfall model, but with fewer restrictions. Generally the phases occur in the same order as in the waterfall model, but they may be conducted in several cycles. Useable product is released at the end of the each cycle, with each release providing additional functionality. • Customers anddevelopers specify as many requirements as possible and prepare a SRS document. • Developers and customers then prioritize these requirements • Developers implement the specified requirements in one or more cycles of design, implementation and test based on the defined priorities. 16 Software Engineering By Gadisa A. 3/4/2024
  • 17. Requirements specification Architectural design Detailed design Implementation and unit testing Integration and testing Operation and Maintenance Iterative Enhancement Model 17 Software Engineering By Gadisa A. 3/4/2024
  • 18. That is the program after debugging 4. The Rapid Application Development (RAD) Model o Developed by IBM in 1980 o User participation is essential The requirements specification was defined like this The developers understood it in that way This is how the problem was solved before. This is how the problem is solved now This is how the program is described by marketing department This, in fact, is what the customer wanted … 18 3/4/2024 Software Engineering By Gadisa A.
  • 19. The Rapid Application Development (RAD) Model • Build a rapid prototype • Give it to user for evaluation & obtain feedback • Prototype is refined With active participation of users Requirements Planning User Description Construc tion Cut over 19 Software Engineering By Gadisa A. 3/4/2024
  • 20. 2 0 Software Engineering By Gadisa A. The Rapid Application Development (RAD) Model • Not an appropriate model in the absence of user participation • Reusable components are required to reduce development time. • Highly specialized & skilled developers are required and such developers are not easily available. 3/4/2024
  • 21. RAD Phases 2 1 Software Engineering By Gadisa A. 3/4/2024
  • 22. The phases in the rapid application development (RAD) model are: • Business modeling: The information flow is identified between various business functions. • Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business. • Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. • Application generation: Automated tools are used to convert process models into code and the actual system. • Testing and turnover: Test new components and all the interfaces. 22 The Rapid Application Development (RAD) Model 3/4/2024 Software Engineering By Gadisa A.
  • 23. 5. Evolutionary Process Models Evolutionary process model resembles iterative enhancement model. The same phases as defined for the waterfall model occur here in a cyclical fashion. This model differs from iterative enhancement model in the sense that this does not require a useable product at the end of each cycle. In evolutionary development, requirements are implemented by category rather than by priority. This model is useful for projects using new technology that is not well understood. This is also used for complex projects where all functionality must be delivered at one time, but the requirements are unstable or not well understood at the beginning. 23 Software Engineering By Gadisa A. 3/4/2024
  • 25. 5.1 Prototyping Model Y The prototype may be a usable program but is not suitable as the final software product. Y The code for the prototype is thrown away. However experience gathered helps in developing the actual system. Y The development of a prototype might involve extra cost, but overall cost might turnout to be lower than that of an equivalent system developed using the waterfall model. 25 Software Engineering By Gadisa A. 3/4/2024
  • 26. • Linear mode • “Rapid” l Prototyping Model…Con’t 26 Software Engineering By Gadisa A. 3/4/2024
  • 27. 5.2 Spiral Model Models do not deal with uncertainly which is inherent to software projects. Important software projects have failed because project risks were neglected & nobody was prepared when something unforeseen happened. Barry Boehm recognized this and tired to incorporate the “project risk” factor into a life cycle model. The result is the spiral model, which was presented in 1986. 27 Software Engineering By Gadisa A. 3/4/2024
  • 29. The radial dimension of the model represents the cumulative costs. Each path around the spiral is indicative of increased costs. The angular dimension represents the progress made in completing each cycle. Each loop of the spiral from X-axis clockwise through 360o represents one phase. One phase is split roughly into four sectors of major activities. • Planning: Determination of objectives, alternatives & constraints. • Risk Analysis: Analyze alternatives and attempts to identify and resolve the risks involved. • Development: Product development and testing product. • Assessment: Customer evaluation Spiral Model…Con’t 29 Software Engineering By Gadisa A. 3/4/2024
  • 30. • An important feature of the spiral model is that each phase is completed with a review by the people concerned with the project (designers and programmers) • The advantage of this model is the wide range of options to accommodate the good features of other life cycle models. • It becomes equivalent to another life cycle model in appropriate situations. The spiral model has some difficulties that need to be resolved before it can be a universally applied life cycle model. These difficulties include lack of explicit process guidance in determining objectives, constraints, alternatives; relying on risk assessment expertise; and provides more flexibility than required for many applications. Spiral Model…Con’t Software Engineering By Gadisa A. 3/4/2024
  • 31. 6. The Unified Process • Developed by I.Jacobson, G.Booch and J.Rumbaugh. • Software engineering process with the goal of producing good quality maintainable software within specified time and budget. • Developed through a series of fixed length mini projects called iterations. • Maintained and enhanced by Rational Software Corporation and thus referred to as Rational Unified Process (RUP). Software Engineering By Gadisa A. 3/4/2024
  • 32. Phases of the Unified Process Definition of objectives of the project Planning & architecture for the project Initial operational capability Inception Inception Elaboration Elaboration Construction Construction Transition Transition Release of the Software product Software Engineering By Gadisa A. Time 3/4/2024
  • 33. • Inception: defines scope of the project. • Elaboration - How do we plan & design the project? - What resources are required? - What type of architecture may be suitable? • Construction: the objectives are translated in design & architecture documents. • Transition : involves many activities like delivering, training, supporting, and maintaining the product. Phases of the Unified Process Software Engineering By Gadisa A. 3/4/2024
  • 34. Initial development & Evolution Cycles Initial development Cycle Evolution Cycle Inception Elaboration Construction Transition Construction Transition Inception Inception Elaboration Elaboration Construction Construction Trranssiittiion V1 Inception Inception Elaboration Elaboration Construction Construction Trranssiittiion V2 Inception Elaboration Continue till the product is retired V1=version1, V2 =version2, V3=version3 Software Engineering By Gadisa A. V3 3/4/2024
  • 35. Iterations & Workflow of Unified Process Software Engineering By Gadisa A. 3/4/2024
  • 36. Inception Phase The inception phase has the following objectives: • Gathering and analyzing the requirements. • Planning and preparing a business case and evaluating alternatives for risk management, scheduling resources etc. • Estimating the overall cost and schedule for the project. • Studying the feasibility and calculating profitability of the project. Software Engineering By Gadisa A. 3/4/2024
  • 37. Outcomes of Inception Phase Inception Project plan Initial risk assessment Initial business case Vision document Initial use case model Initial project Glossary Business model Software Engineering By Gadisa A. Prototypes 3/4/2024
  • 38. Elaboration Phase infrastructure Software Engineering By Gadisa A. & development • Establishing architectural foundations. • Design of use case model. • Elaborating the process, environment. • Selecting component. • Demonstrating that architecture support reasonable cost & within specified time. the vision at The elaboration phase has the following objectives: 3/4/2024
  • 39. Outcomes of Elaboration Phase Elaboration Revised risk document An executable architectural prototype Architecture Description document Use case model Supplementary Requirements with non functional requirement Preliminary User manual Software Engineering By Gadisa A. Development plan 3/4/2024
  • 40. Construction Phase The construction phase has the following objectives: • Implementing the project. • Minimizing development cost. • Management and optimizing resources. • Testing the product • Assessing the product releases against acceptance criteria Software Engineering By Gadisa A. 3/4/2024
  • 41. Outcomes of Construction Phase Construction Operational manuals Test Suite Adescription of the current release Software product User manuals Documentation Software Engineering By Gadisa A. manuals Test Outline 3/4/2024
  • 42. Transition Phase The transition phase has the following objectives: • Starting of beta testing • Analysis of user’s views. • Training of users. • Tuning activities including bug fixing and enhancements for performance & usability • Assessing the customer satisfaction. Software Engineering By Gadisa A. 3/4/2024
  • 43. Outcomes of Transition Phase Transition Product release Software Engineering By Gadisa A. Beta test reports User feedback 3/4/2024
  • 44. Selection of a Life Cycle Model Selection of a model is based on: a) Requirements b) Development team c) Users d) Project type and associated risk Software Engineering By Gadisa A. 3/4/2024
  • 45. BasedOn CharacteristicsOf Requirements Requirements Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD Are requirements easily understandable and defined? Yes No No No No Yes Do we change requirements quite often? No Yes No No Yes No Can we define requirements early in the cycle? Yes No Yes Yes No Yes Requirements are indicating a complex system to be built No Yes Yes Yes Yes No Software Engineering By Gadisa A. 3/4/2024
  • 46. BasedOnStatusOf Development Team Development team Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD Less experience on similar projects? No Yes No No Yes No Less domain knowledge (new to the technology) Yes No Yes Yes Yes No Less experience on tools to be used Yes No No No Yes No Availability of training if required No No Yes Yes No Yes Software Engineering By Gadisa A. 3/4/2024
  • 47. Software Engineering By Gadisa A. Based On User’sParticipation Involvement of Users Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD User involvement in all phases No Yes No No No Yes Limited user participation Yes No Yes Yes Yes No User have no previous experience of participation in similar projects No Yes Yes Yes Yes No Users are experts of problem domain No Yes Yes Yes No Yes 3/4/2024
  • 48. BasedOnTypeOf ProjectWith AssociatedRisk Project type and risk Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD Project is the enhancement of the existing system No No Yes Yes No Yes Funding is stable for the project Yes Yes No No No Yes High reliability requirements No No Yes Yes Yes No Tight project schedule No Yes Yes Yes Yes Yes Use of reusable components No Yes No No Yes Yes Are resources (time, money, people etc.) scare? No Yes No No Yes No Software Engineering By Gadisa A. 3/4/2024
  • 49. Thank You Software Engineering By Gadisa A. 3/4/2024