Title: SDLC Models Advantages and Disadvantages
1Software development methodologies
- Presented by
- Farida anwar
- Bsit-7th morning
- Subject itproject management
- University of okara
2Methodologies
- Waterfall
- Prototype model
- Incremental
- Iterative
- V-Model
- Spiral
- Scrum
- Cleanroom
- RAD
- DSDM
- RUP
- XP
- Agile
- Lean
- Dual Vee Model
- TDD
- FDD
3Waterfall
- Sequential design process
- Progress is seen as flowing steadily downwards
(like a waterfall) through SDLC
4Advantages and of the Waterfall Model
- Suitable for simple or smaller projects
- Requirements are well understood
- Easy to understand
- Easy to manage
- Clear milestones
- Disadvantages
- High amounts of risk and uncertainty.
- Not a good model for complex and
object-oriented projects. - Poor model for long and ongoing projects.
- Does not allow scope changes
- Does not allow for requirement changes
- Unable to easily handle unexpected risks
5Prototyping
- Creating prototypes of software applications i.e.
Incomplete versions of the software program being
developed - A prototype typically simulates only a few
aspects of, and may be completely different from,
the final product.
6Advantages of Prototype model
- Users are actively involved in the development
- Reduced time and costs
- Improved and increased user involvement
- Errors can be detected much earlier.
- Quicker user feedback is available leading to
better solutions. - Disadvantages
- Incomplete application may cause application not
to be used as the full system was designed
incomplete or inadequate problem analysis. - Leads to implementing and then repairing way of
building systems. - Expense of implementing prototyping
- Prototyping is usually done at the cost of the
developer - It is a slow process.
-
7Incremental Build Model
- The model is designed, implemented and tested
incrementally (a little more is added each time). - Finished when satisfies all the requirements.
- Combines the elements of the waterfall model with
the iterative philosophy of prototyping.
8Advantages of Incremental model
- Generates working software quickly and early
during the software life cycle. - This model is more flexible less costly to
change scope and requirements. - It is easier to test and debug during a smaller
iteration. - In this model customer can respond to each built.
- Lowers initial delivery cost.
- Easier to manage risk because risky pieces are
identified and handled during itd iteration. - Disadvantages
- Needs good planning and design.
- Needs a clear and complete definition of the
whole system before it can be broken down and
built incrementally. - Total cost is higher than waterfall.
9Iterative and Incremental Development
- Iterative and incremental development is any
combination of both iterative design or iterative
method and incremental build model for
development.
10Incremental vs. Iterative
11A Bit Different Understanding
12Effort in Iterative Development
13Spiral Model
- Combining elements of design and
prototyping-in-stages - Combines the features of the prototyping and the
waterfall model - The spiral model is intended for large, expensive
and complicated projects - Advantages of top-down and bottom-up concepts
14Advantages 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. - There is always a space for customer feedback.
- Disadvantages of Spiral model
- Can be a costly model to use.
- Risk analysis requires highly specific expertise.
- Doesnt work well for smaller projects.
- For its smooth operation spiral model protocol
needs to be followed strictly - It is not suitable for low risk projects.
15Background
- Top-down
- deductive reasoning
- analysis or decomposition
- Descartes
- G gt 1
- Bottom-up
- inductive reasoning
- synthesis
- Bacon
- 1 gt G
16RAD
- Minimal planning and fast prototyping.
- Developing instead of planning
- The lack of pre-planning generally allows
software to be written much faster, and makes it
easier to change requirements.
17Advantages of the RAD model
Reduced development time. Flexible and
adaptable to changes Increases reusability of
components Quick initial reviews
occur Encourages customer feedback With less
people, productivity can be increased in short
time Each phase in RAD delivers highest
priority functionality to client Disadvantages of
RAD model Requires highly skilled
developers/designers. It can't be used for
smaller projects When technical risk is high,
it is not suitable Not all application is
compatible with RAD High dependency on modeling
skills
18Cleanroom
- The cleanroom process embeds software development
and testing within a statistical quality control
framework. - Mathematically-based software development
processes are employed to create software that is
correct by design, and statistical usage testing
processes are employed to provide inferences
about software reliability.
- This systematic process of assessing and
controlling software quality during development
permits certification of software fitness for use
at delivery.
19Agile
- Group of software development methods
- Based on iterative and incremental development
- Most important phrases
- Self-organizing, cross-functional teams
- Adaptive planning,
- Evolutionary development and delivery,
- A time-boxed iterative approach,
- Rapid and flexible response to change.
- A conceptual framework
- The agile manifesto in 2001.
20Advantages of Agile
- Agile methodology has an adaptive approach which
is able to respond to the changing requirements
of the clients - Direct communication and constant feedback from
customer representative leave no space for any
guesswork in the system - Disadvantages
- This methodology focuses on working software
rather than documentation, hence it may result in
a lack of documentation - The software development project can get
21Scrum
- Scrum is an iterative and incremental agile
software development framework - A flexible, holistic product development strategy
- Development team works as an atomic unit
- Opposing to sequential approach
22Advantages of Scrum
- Saves time as well as money as regular sprint
is held to review the task. - Involves the customer and stakeholders at each
phase. - It also works best for all fast-moving product
developments. - Scrum takes feedback from product owner and
stakeholders. - The individual effort of each and every team
member is transparent and appreciated. - Disadvantages of Scrum
- The framework can be successful only with
experienced team members. - This methodology works best with small teams
than a large team of developers. - Adopting this methodology for a large team can be
challenging. - The project is likely to suffer if any of the
members leaves the project in the middle.
23Lean (Kanban)
- A translation of lean manufacturing principles
and practices - Toyota production system,
- Today part of agile community.
24Lean Principles
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- See the whole
25Extreme Programming (XP)
- Improve software quality and responsiveness to
changing customer requirements - A type of agile software development
- Frequent "releases" in short development cycles
- Introduce checkpoints where new customer
requirements can be adopted.
26XP Concepts (examples only)
- Pair programming
- Planning game
- Test-driven development
- Continuous integration
27Advantages
- Extreme programming methodologies emphasis on
customer involvement. - This model helps to establish rational plans and
schedules and to get the developers personally
committed to their schedules which are surely a
big advantage in the XP model. - This model is consistent with most modern
development methods so, developers are able to
produce quality software. - save costs and time required for project
realization. - Disadvantages
- This methodology is only as effective as the
people involved, Agile does not solve this issue. - This kind of software development model requires
meetings at frequent intervals at enormous
expense to customers. - It requires too much development changes which
are really very difficult to adopt every time for
the software developer. - In this methodology, it tends to impossible to be
known exact estimates of work effort needed to
provide a quote, because at the starting of the
project nobody aware about the entire scope and
requirements of the project.
28DSDM
- An agile project delivery framework, primarily
- DSDM fixes cost, quality and time at the outset
and uses the Moscow prioritization of scope - Pareto principle
- M - MUST describes a requirement that must be
satisfied in the final solution for the solution
to be considered a success. - S - should represents a high-priority item that
should be included in the solution if it is
possible. This is often a critical requirement
but one which can be satisfied in other ways if
strictly necessary. - C - could describes a requirement which is
considered desirable but not necessary. This will
be included if time and resources permit. - W - would represents a requirement that
stakeholders have agreed will not be implemented
in a given release, but may be considered for the
future.
29Advantages of DSDM
- Users are highly involved in the development of
the system so, they are more likely to get a grip
on the software development project. - In this model, basic functionality is delivered
quickly, with more functionality being delivered
at frequent intervals. - This method provides an easy access by developers
to end-users. - In this kind of development, approach projects
are delivered on time and within a specific
budget. - Disadvantages
- The first thing is DSDM is costly to implement,
as it requires users and developers both to be
trained to employ it effectively. It may not be
suitable for small organizations or one-time
projects - It is a relatively new model, therefore, it is
not very common to understand.
30Test-driven development (TDD)
- Relies on the repetition of a very short
development cycle first the developer writes an
(initially failing) automated test case that
defines a desired improvement or new function,
then produces the minimum amount of code to pass
that test, and finally refactors the new code to
acceptable standards.
- Test-first programming concept of extreme
programming in the beginning - Today standalone methodology
31TDD ADVANTAGES
- .Writing tests first require you to really
consider what you want from the code - Short feedback loop
- Creates a detailed specification
- Reduced time in rework
- Less time spent in the debugger and when it is
required you usually get closer to problem
quickly.
- TDD Disadvantages
- It takes a lot of time and effort which creates a
sense of slow development. - TDD focuses on simplest design for current sprint
and doesnt tackle for future major refactoring. - Its hard to test the interface because of
continuous changes. - THINGS TO AVOID WHILE WRITING TEST CASES
32Rational Unified Process (RUP)
- An iterative software development process
framework created by the rational software
corporation (IBM) - Not a concrete prescriptive process, but an
adaptable framework, intended to be tailored by
the development organizations - Expected to select elements of the process that
are appropriate
33Advantages of RUP MODEL
- Get high risk and high value first.
- Constant user feedback and engagement.
- Early cohesive core architecture.
- Test early, often, and realistically.
- Apply use cases where needed.
- Do some visual modeling with UML.
- Manage requirements.
- Manage change requests and configuration.
- Disadvantages of RUP
- RUP is not considered particularly agile
However, recent studies have shown that by
adopting the right essential artifacts RUP is
agile. - It fails to provide any clear implementation
guidelines. - RUP leaves the tailoring to the user entirely.
34Feature-driven development (FDD)
- Iterative and incremental development process.
- An agile method
- Driven from a client-valued functionality
(feature) perspective - Mostly part of other methodologies
35Advantages of FDD Methodology
- FDD Helps to move larger size projects and obtain
repeatable success. - The simple five processes help to bring work done
in a short time and easiest manner. - This type of model is built on set standards for
software development industry, so it helps easy
development and industry recognized best
practices. - Disadvantages
- Not an ideal methodology for smaller projects so,
it is not good for an individual software
developer. - High dependency on the main developer means the
person should be fully equipped for an act as
coordinator, lead designer, and mentor. - No written documentation provided to clients in
this methodology so, they are not able to get a
proof for their own software.
36V-model
- The v-model is an extension of the waterfall
model. - Show the relationships between development phases
and test phases - Time and project completeness vs. Level of
abstraction
37Advantages of V-model
- Easy to use
- Simple to use
- Time saving, quick
- Works well for small projects where
requirements are easily understood - Covers all functional areas.
- Disadvantages of V-Model
- Very rigid
- Least flexible
- Software is developed during the implementation
phase, so no early prototypes of the software are
produced - Risky
38Dual Vee Model
- Describes a model of complex development
- For example
- Hardware
- Platform
- Application software
- Development of a system's architecture is the
big V - Components/entities developments are the small
v-s - It shows interactions and sequences of developing
a complex system and a system of systems.
39Shouldnt forget
40Waterfall
41Waterfall 1
- Jump to next phase only if the prior one is
completed - Pros
- Detailed early analysis cause huge advantages at
later phases - If a bug found earlier, it is much cheaper (and
more effective) to fix than bugs found in a later
phase - Requirement should be set before design starts
- Points to importance of documentation (minimized
broken leg issue) - Disciplined and well-structured approach
- Effective for stable software projects
- Easy to plan from project management point of view
42Waterfall 2
- CONs
- Changes are expensive
- Client does not explicitly know what he or she
wants - Client does not explicitly know what is possible
to have - Need to finish every phase fully
- Long projects, difficult to keep the plan
- Designers may not know in advance how complex a
features implementation - Measure twice, cut once
43