Software Development Life Cycle
and Models
1
SDLC and Models By Gadisa A.
• The systems development life cycle (SDLC) is a
conceptual model used in project management that
describes the stages involved in an information
system development project, from an initial
feasibility study through maintenance of the
completed application.
• SDLC can apply to technical and non-technical
systems.
• The method or approach that software engineers
use in solving problems in computer science is
called software development method.
Systems Development Life Cycle(SDLC)
2
SDLC and Models By Gadisa A.
• The software life cycle has the following
components.
 Preliminary investigation
 Analysis
 Design
 Implementation
 Deployment and Testing
 Maintenance
Systems Development Life Cycle(SDLC)
3
SDLC and Models By Gadisa A.
Increased visibility of the development process for
all stakeholders involved
Efficient estimation, planning, and scheduling
Improved risk management and cost estimation
Systematic software delivery and better customer
satisfaction
Some benefits of SDLC:
4
SDLC and Models By Gadisa A.
• 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.
Software
processes
5
SDLC and Models By Gadisa A.
6
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.
SDLC and Models By Gadisa A.
7
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.
SDLC and Models By Gadisa A.
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
8
SDLC and Models By Gadisa A.
“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
9
SDLC and Models By Gadisa A.
• 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.
Software Process
Models
10
SDLC and Models By Gadisa A.
That is the program after
debugging
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
SDLC and Models 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
SDLC and Models By Gadisa A.
2
0
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.
SDLC and Models By Gadisa A.
RAD
Phases
2
1
SDLC and Models By Gadisa A.
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
SDLC and Models By Gadisa A.
Advantages of RAD Model
Reduced development time.
Increases reusability of components
Greater customer satisfaction
Encourages customer feedback
Faster delivery time
simple and better quality
16
SDLC and Models By Gadisa A.
Disadvantages of RAD Model
 Depends on strong team and individual performances for
identifying business requirements.
 Only system that can be modularized can be built using RAD
 Requires highly skilled developers/designers.
 It is not appropriate when technical risk is high
 High dependency on modeling skills
 Inapplicable to cheaper projects as cost of modeling and
automated code generation is very high.
17
SDLC and Models By Gadisa A.
When to use RAD Model
 RAD should be used when there is a need to create a system that
can be modularized in 2-3 months of time.
 It should be used if there’s high availability of designers for
modeling and the budget is high enough to afford their cost
along with the cost of automated code generating tools.
 RAD model should be chosen only if resources with high
business knowledge are available and there is a need to produce
the system in a short span of time (2-3 months).
18
SDLC and Models By Gadisa A.
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.
19
SDLC and Models By Gadisa A.
Prototyping Model…Con’t
20
SDLC and Models By Gadisa A.
Advantages of Prototype model:
Users are actively involved in the development
Errors can be detected much earlier.
Quicker user feedback is available leading to better
solutions.
Missing functionality can be identified easily
Confusing or difficult functions can be identified
21
SDLC and Models By Gadisa A.
It’s a slow in process
It’s not complete model
It is time consuming model
It should be developed or built on company’s cost
22
Disadvantages of Prototype model:
SDLC and Models By Gadisa A.
 Prototype model should be used when the desired system needs to have a
lot of interaction with the end users.
 Typically, online systems, web interfaces have a very high amount of
interaction with end users, are best suited for Prototype model.
 Prototyping ensures that the end users constantly work with the system and
provide a feedback which is incorporated in the prototype to result in a
useable system. They are excellent for designing good human computer
interface systems.
23
When to use Prototype model:
SDLC and Models By Gadisa A.
Thank
You
SDLC and Models By Gadisa A.

Software Development Life Cycle and Models.pptx

  • 1.
    Software Development LifeCycle and Models 1 SDLC and Models By Gadisa A.
  • 2.
    • The systemsdevelopment life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application. • SDLC can apply to technical and non-technical systems. • The method or approach that software engineers use in solving problems in computer science is called software development method. Systems Development Life Cycle(SDLC) 2 SDLC and Models By Gadisa A.
  • 3.
    • The softwarelife cycle has the following components.  Preliminary investigation  Analysis  Design  Implementation  Deployment and Testing  Maintenance Systems Development Life Cycle(SDLC) 3 SDLC and Models By Gadisa A.
  • 4.
    Increased visibility ofthe development process for all stakeholders involved Efficient estimation, planning, and scheduling Improved risk management and cost estimation Systematic software delivery and better customer satisfaction Some benefits of SDLC: 4 SDLC and Models By Gadisa A.
  • 5.
    • A structuredset 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. Software processes 5 SDLC and Models By Gadisa A.
  • 6.
    6 Software processes….Cont. Any softwareprocess 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. SDLC and Models By Gadisa A.
  • 7.
    7 Software processes….Cont. 4. Softwareevolution (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. SDLC and Models By Gadisa A.
  • 8.
    The goal ofSoftware 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 8 SDLC and Models By Gadisa A.
  • 9.
    “The period oftime 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 9 SDLC and Models By Gadisa A.
  • 10.
    • A softwareprocess 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. Software Process Models 10 SDLC and Models By Gadisa A.
  • 11.
    That is theprogram after debugging 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 SDLC and Models By Gadisa A.
  • 12.
    The Rapid ApplicationDevelopment (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 SDLC and Models By Gadisa A.
  • 13.
    2 0 The Rapid ApplicationDevelopment (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. SDLC and Models By Gadisa A.
  • 14.
  • 15.
    The phases inthe 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 SDLC and Models By Gadisa A.
  • 16.
    Advantages of RADModel Reduced development time. Increases reusability of components Greater customer satisfaction Encourages customer feedback Faster delivery time simple and better quality 16 SDLC and Models By Gadisa A.
  • 17.
    Disadvantages of RADModel  Depends on strong team and individual performances for identifying business requirements.  Only system that can be modularized can be built using RAD  Requires highly skilled developers/designers.  It is not appropriate when technical risk is high  High dependency on modeling skills  Inapplicable to cheaper projects as cost of modeling and automated code generation is very high. 17 SDLC and Models By Gadisa A.
  • 18.
    When to useRAD Model  RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time.  It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools.  RAD model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months). 18 SDLC and Models By Gadisa A.
  • 19.
    Prototyping Model Y Theprototype 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. 19 SDLC and Models By Gadisa A.
  • 20.
  • 21.
    Advantages of Prototypemodel: Users are actively involved in the development Errors can be detected much earlier. Quicker user feedback is available leading to better solutions. Missing functionality can be identified easily Confusing or difficult functions can be identified 21 SDLC and Models By Gadisa A.
  • 22.
    It’s a slowin process It’s not complete model It is time consuming model It should be developed or built on company’s cost 22 Disadvantages of Prototype model: SDLC and Models By Gadisa A.
  • 23.
     Prototype modelshould be used when the desired system needs to have a lot of interaction with the end users.  Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model.  Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. They are excellent for designing good human computer interface systems. 23 When to use Prototype model: SDLC and Models By Gadisa A.
  • 24.