Outlines:
SOFTWARE DEVELOPMENT
LIFE CYCLE
Software Development Life Cycle
- The Software Development Lifecycle is a process of building a good
software and its Lifecycle stages provides Quality and Correctness of good
software.
- All the stages of Lifecycle are important in itself.
- One Wrong step in Lifecycle can create a big mistake in the development of
Software.
- So, Everyone wants to know that how its development begins, which are
the development process, which is the end portion of development life
cycle.
- 6 Basic Steps of Software Development Process .
Six Stages of Software Development
Life Cycle
• We have multiple types of SDLC models like Waterfall, Agile, Spiral etc.
• All this SDLC model must follow this 6 steps for developing error less Software.
• Software Development Life cycle has totaled 6 Steps.
1. Requirement Gathering
2. Analysis
3. Design
4. Coding
5. Testing
6.Implementation
SDLC
Requirements
Analysis
Design
Coding
Testing
Implementation
The Waterfall Model
The Waterfall Model
• is the classic life cycle Mode .
• was first Process Model to be introduced.
• It is very simple to understand and use.
• In a waterfall model, each phase must be completed fully before the next phase
can begin.
• In this model the testing starts only after the development is complete.
• In waterfall model phases do not overlap.
When to use the waterfall model:
• This model is used only when the requirements are very well known, clear and
fixed.
• Technology is understood.
• There are no unclear requirements.
• Available resources with high experience.
• The project is short.
The Waterfall Model
Advantages of waterfall model:
• This model is simple and easy to understand and use.
• In this model phases are processed and completed one at a time. Phases do not
overlap.
• Waterfall model works well for smaller projects where requirements are very
well understood.
Disadvantages of waterfall model:
• Once an application is in the testing stage, it is very difficult to go back and
change something that was not well-thought out in the concept stage.
• No working software is produced until late during the life cycle.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high risk
of changing.
The Spiral Model
The Spiral Model
The spiral model has four phases:
• Planning Phase: Requirements are gathered during the planning phase.
• Risk Analysis: In the risk analysis phase, a process is identify risk and alternate
solutions. A prototype is produced at the end of the risk analysis phase. If any risk is
found during the risk analysis then alternate solutions are suggested and implemented.
• Engineering Phase: In this phase software is developed, along with testing at the end of
the phase. Hence in this phase the development and testing is done.
• Evaluation phase: This phase allows the customer to evaluate the output of the project
to date before the project continues to the next spiral.
The Spiral Model
•The spiral model is similar to the incremental model, with more emphasis placed on risk
analysis.
•A software project repeatedly passes through these phases in iterations (called Spirals in
this model).
•The baseline spiral, starting in the planning phase, requirements are gathered and risk is
assessed.
When to use Spiral model:
◾ When costs and risk evaluation is important.
◾ For medium to high-risk projects.
◾ Users are unsure of their needs.
◾ Requirements are complex.
◾ New product line.
The Spiral Model
The Spiral Model
Advantages of Spiral model:
• High amount of risk analysis hence, avoidance of Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Additional Functionality can be added at a later date.
• Software is produced early in the software life cycle.
Disadvantages of Spiral model:
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects.
What is the differences between
Spiral Model and Waterfall Model ?
Spiral ModelWaterfall Model
1] Spiral model is not suitable for small projects.1] Waterfall model is suitable for small projects.
2] Better risk management.2] High amount of risk and uncertainty.
3] Process is complex.3] Easy to understand.
4] The process may go indefinitely.4] Stages are clearly defined.
5] This model is suitable for long and ongoing
projects.
5] This model is not suitable for long and
ongoing projects.
6] Iterations are followed6] Sequence is followed
7] Flexible with user requirements7] Requirements once fixed cannot be modified
8] Refinements are easily possible8] Refinements are not so easy
9] Phases are repeated itself9] Phases are processed and completed one at a
time.
The Agile Model
The Agile Model
• The initial planning and analysis is kept to a very high level.
• Just enough to outline the scope of the development project. Then the team go
through a series of iterations, analyzing , designing, developing and testing each
feature in turn within the iterations.
• There aren’t really any distinct stages during the development. Instead, each
feature is taken from start to finish within an iteration, with the software being
released at the end of each iteration, or if appropriate even during an iteration.
• An iteration is simply a fixed, short period of time that the team chooses to work
within.
• Typically for agile teams, an iteration is between 1 week and 30 days.
• This is very short and requires quite a lot of maturity in the team and its
processes to achieve, because getting to a stable release every week can be
difficult.
The Agile Model
• When to use Agile model:
• When new changes are needed to be implemented. The freedom agile gives to
change is very important. New changes can be implemented at very little cost
because of the frequency of new increments that are produced.
• Unlike the waterfall model in agile model very limited planning is required to get
started with the project. Agile assumes that the end users’ needs are ever
changing in a dynamic business and IT world. Changes can be discussed and
features can be newly effected or removed based on feedback. This effectively
gives the customer the finished system they want or need.
The Agile Model
Advantages of Agile model:
• Customer satisfaction by rapid, continuous delivery of useful software.
• Working software is delivered frequently (weeks rather than months).
• Face-to-face conversation is the best form of communication.
• Close, daily cooperation between business people and developers.
• Even late changes in requirements are welcomed.
• To implement a new feature the developers need to lose only the work of a few days, or
even only hours, to roll back and implement it.
Disadvantages of Agile model:
• In case of some software deliverables, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.
• There is lack of emphasis on necessary designing and documentation.
• The project can easily get taken off track if the customer representative is not clear what
final outcome that they want.
• Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined
with experienced resources.
What is the differences between
Spiral Model and Agile Model ?
Agile ModelSpiral Model
1] Little or no planning required.1] Planning is required.
2] Easy to manage.2] Management is more complex.
3] Early delivery of partial working solutions.3] End of project may not be known.
4] Suitable for small projects.4] Not suitable for small or low risk projects.
5] Depends heavily on customer interaction5] Does not depend heavily on customer
interaction
6] Every iteration is a separate model6] Every iteration is not a separate model
7] Agile is the combination of iterative and
incremental
7] Spiral is the combination of iterative and
waterfall
The prototyping Model
The prototyping Model
• The basic idea here is that instead of freezing the requirements before a
design or coding can proceed, a throwaway prototype is built to understand
the requirements.
• This prototype is developed based on the currently known requirements. By
using this prototype, the client can get an “actual feel” of the system, since
the interactions with prototype can enable the client to better understand
the requirements of the desired system.
• Prototyping is an attractive idea for complicated and large systems for which
there is no manual process or existing system to help determining the
requirements.
The prototyping Model
When to use Prototype model:
• 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.
The prototyping Model
Advantages of Prototyping model:
• Increased user involvement in the product even before implementation.
• Since a working model of the system is displayed, the users get a better
understanding of the system being developed.
• Reduces time and cost as the defects 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.
Disadvantages of Prototyping model:
• Risk of insufficient requirement analysis owing to too much dependency on
prototype.
• Users may get confused in the prototypes and actual systems.
• Practically, this methodology may increase the complexity of the system as scope
of the system may expand beyond original plans.
• Developers may try to reuse the existing prototypes to build the actual system,
even when its not technically feasible.
• The effort invested in building prototypes may be too much if not monitored
properly .
Software development life cycle

Software development life cycle

  • 2.
  • 3.
  • 4.
    Software Development LifeCycle - The Software Development Lifecycle is a process of building a good software and its Lifecycle stages provides Quality and Correctness of good software. - All the stages of Lifecycle are important in itself. - One Wrong step in Lifecycle can create a big mistake in the development of Software. - So, Everyone wants to know that how its development begins, which are the development process, which is the end portion of development life cycle. - 6 Basic Steps of Software Development Process .
  • 5.
    Six Stages ofSoftware Development Life Cycle • We have multiple types of SDLC models like Waterfall, Agile, Spiral etc. • All this SDLC model must follow this 6 steps for developing error less Software. • Software Development Life cycle has totaled 6 Steps. 1. Requirement Gathering 2. Analysis 3. Design 4. Coding 5. Testing 6.Implementation SDLC Requirements Analysis Design Coding Testing Implementation
  • 6.
  • 7.
    The Waterfall Model •is the classic life cycle Mode . • was first Process Model to be introduced. • It is very simple to understand and use. • In a waterfall model, each phase must be completed fully before the next phase can begin. • In this model the testing starts only after the development is complete. • In waterfall model phases do not overlap. When to use the waterfall model: • This model is used only when the requirements are very well known, clear and fixed. • Technology is understood. • There are no unclear requirements. • Available resources with high experience. • The project is short.
  • 8.
    The Waterfall Model Advantagesof waterfall model: • This model is simple and easy to understand and use. • In this model phases are processed and completed one at a time. Phases do not overlap. • Waterfall model works well for smaller projects where requirements are very well understood. Disadvantages of waterfall model: • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. • No working software is produced until late during the life cycle. • Not a good model for complex and object-oriented projects. • Poor model for long and ongoing projects. • Not suitable for the projects where requirements are at a moderate to high risk of changing.
  • 9.
  • 10.
    The Spiral Model Thespiral model has four phases: • Planning Phase: Requirements are gathered during the planning phase. • Risk Analysis: In the risk analysis phase, a process is identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented. • Engineering Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done. • Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
  • 11.
    The Spiral Model •Thespiral model is similar to the incremental model, with more emphasis placed on risk analysis. •A software project repeatedly passes through these phases in iterations (called Spirals in this model). •The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. When to use Spiral model: ◾ When costs and risk evaluation is important. ◾ For medium to high-risk projects. ◾ Users are unsure of their needs. ◾ Requirements are complex. ◾ New product line. The Spiral Model
  • 12.
    The Spiral Model Advantagesof Spiral model: • High amount of risk analysis hence, avoidance of Risk is enhanced. • Good for large and mission-critical projects. • Strong approval and documentation control. • Additional Functionality can be added at a later date. • Software is produced early in the software life cycle. Disadvantages of Spiral model: • Can be a costly model to use. • Risk analysis requires highly specific expertise. • Project’s success is highly dependent on the risk analysis phase. • Doesn’t work well for smaller projects.
  • 13.
    What is thedifferences between Spiral Model and Waterfall Model ? Spiral ModelWaterfall Model 1] Spiral model is not suitable for small projects.1] Waterfall model is suitable for small projects. 2] Better risk management.2] High amount of risk and uncertainty. 3] Process is complex.3] Easy to understand. 4] The process may go indefinitely.4] Stages are clearly defined. 5] This model is suitable for long and ongoing projects. 5] This model is not suitable for long and ongoing projects. 6] Iterations are followed6] Sequence is followed 7] Flexible with user requirements7] Requirements once fixed cannot be modified 8] Refinements are easily possible8] Refinements are not so easy 9] Phases are repeated itself9] Phases are processed and completed one at a time.
  • 14.
  • 15.
    The Agile Model •The initial planning and analysis is kept to a very high level. • Just enough to outline the scope of the development project. Then the team go through a series of iterations, analyzing , designing, developing and testing each feature in turn within the iterations. • There aren’t really any distinct stages during the development. Instead, each feature is taken from start to finish within an iteration, with the software being released at the end of each iteration, or if appropriate even during an iteration. • An iteration is simply a fixed, short period of time that the team chooses to work within. • Typically for agile teams, an iteration is between 1 week and 30 days. • This is very short and requires quite a lot of maturity in the team and its processes to achieve, because getting to a stable release every week can be difficult.
  • 16.
    The Agile Model •When to use Agile model: • When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. • Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.
  • 17.
    The Agile Model Advantagesof Agile model: • Customer satisfaction by rapid, continuous delivery of useful software. • Working software is delivered frequently (weeks rather than months). • Face-to-face conversation is the best form of communication. • Close, daily cooperation between business people and developers. • Even late changes in requirements are welcomed. • To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it. Disadvantages of Agile model: • In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle. • There is lack of emphasis on necessary designing and documentation. • The project can easily get taken off track if the customer representative is not clear what final outcome that they want. • Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
  • 18.
    What is thedifferences between Spiral Model and Agile Model ? Agile ModelSpiral Model 1] Little or no planning required.1] Planning is required. 2] Easy to manage.2] Management is more complex. 3] Early delivery of partial working solutions.3] End of project may not be known. 4] Suitable for small projects.4] Not suitable for small or low risk projects. 5] Depends heavily on customer interaction5] Does not depend heavily on customer interaction 6] Every iteration is a separate model6] Every iteration is not a separate model 7] Agile is the combination of iterative and incremental 7] Spiral is the combination of iterative and waterfall
  • 19.
  • 20.
    The prototyping Model •The basic idea here is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. • This prototype is developed based on the currently known requirements. By using this prototype, the client can get an “actual feel” of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system. • Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements.
  • 21.
    The prototyping Model Whento use Prototype model: • 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.
  • 22.
    The prototyping Model Advantagesof Prototyping model: • Increased user involvement in the product even before implementation. • Since a working model of the system is displayed, the users get a better understanding of the system being developed. • Reduces time and cost as the defects 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. Disadvantages of Prototyping model: • Risk of insufficient requirement analysis owing to too much dependency on prototype. • Users may get confused in the prototypes and actual systems. • Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans. • Developers may try to reuse the existing prototypes to build the actual system, even when its not technically feasible. • The effort invested in building prototypes may be too much if not monitored properly .