You are on page 1of 29

Amity Institute of Information Technology,

Lucknow
Software Engineering

Module 1: Introduction

Dr. Archana Sahai

1
Topics to be covered

– Waterfall Model
– Prototyping Models
• Rapid Throwaway prototypes
• Evolutionary prototype
• Incremental prototype
• Extreme prototype

2
Waterfall Model

3
Waterfall Model

It is linear-sequential life cycle model. It is very simple


to understand and use. In a waterfall model, each phase
must be completed before the next phase can begin and
there is no overlapping in the phases.

4
Waterfall Model

• Some situations where the use of Waterfall model is


most appropriate are −
– Requirements are very well documented, clear and fixed.
– Product definition is stable.
– Technology is understood and is not dynamic.
– There are no ambiguous requirements.
– Ample resources with required expertise are available to
support the product.
– The project is short.

5
Waterfall Model
• Some of the major advantages of the Waterfall Model
are as follows −
– Simple and easy to understand and use
– Easy to manage due to the rigidity of the model. Each phase
has specific deliverables and a review process.
– Phases are processed and completed one at a time.
– Works well for smaller projects where requirements are very
well understood.
– Clearly defined stages.
– Well understood milestones.
– Easy to arrange tasks.
– Process and results are well documented.

6
Waterfall Model
• The major disadvantages of the Waterfall Model are as
follows −
• No working software is produced until late during the
life cycle.
• High amounts of risk and uncertainty.
• 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. So, risk and
uncertainty is high with this process model.

7
Waterfall Model

• It is difficult to measure progress within stages.


• Cannot accommodate changing requirements.
• Adjusting scope during the life cycle can end a project.

8
Prototyping Model

9
Types of Prototyping Models

• Four types of Prototyping models are:


– Rapid Throwaway prototypes
– Evolutionary prototype
– Incremental prototype
– Extreme prototype

10
Rapid Throwaway prototypes

• Rapid throwaway is based on the preliminary


requirement. It is quickly developed to show how the
requirement will look visually. The customer's
feedback helps drives changes to the requirement,
and the prototype is again created until the
requirement is baselined.
• In this method, a developed prototype will be
discarded and will not be a part of the ultimately
accepted prototype. This technique is useful for
exploring ideas and getting instant feedback for
customer requirements.

11
Evolutionary prototype

12
Evolutionary prototype

13
Evolutionary prototype

• Here, the prototype developed is incrementally refined


based on customer's feedback until it is finally
accepted. It helps you to save time as well as effort.
That's because developing a prototype from scratch
for every interaction of the process can sometimes be
very frustrating.

14
Evolutionary prototype

• This model is helpful for a project which


uses a new technology that is not well
understood.
• It is also used for a complex project where
every functionality must be checked once.
• It is helpful when the requirement is not
stable or not understood clearly at the
initial stage.
15
Incremental prototype

16
Incremental prototype

• In this model, each module passes through the


requirements, design, implementation and testing
phases.
• A working version of software is produced during the
first module, so you have working software early on
during the software life cycle.
• Each subsequent release of the module adds function
to the previous release. The process continues till the
complete system is achieved.

17
Advantages 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 it’d iteration.

18
Disadvantages of Incremental model:

• 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.

19
When to use the Incremental
model:

• This model can be used when the requirements of the


complete system are clearly defined and understood.
• Major requirements must be defined; however, some
details can evolve with time.
• There is a need to get a product to the market early.
• A new technology is being used
• Resources with needed skill set are not available
• There are some high-risk features and goals.

20
Extreme Prototyping
• Extreme prototyping method is mostly
used for web development. It consists of
three sequential phases.
1.Basic prototype with all the existing page is
present in the HTML format.
2.You can simulate data process using a
prototype services layer.
3.The services are implemented and
integrated into the final prototype.
21
Extreme Prototyping

22
Extreme Prototyping
• It is an architectural process for developing
applications, especially web applications, in terms of
increasingly functional prototypes.
• At a high level, it breaks down web development into
three distinct phases.
• The first phase is the static prototype, consisting of
HTML pages and possibly a logical data model
supporting those pages.
• The second phase is a coding process in your chosen
web framework whereby the screens are fully
functional using a simulated services layer.
• The third phase is where the services are
implemented.
23
Extreme Prototyping
• Static Prototype phase
– Static Prototype
– Master or background pages
– CSS, JavaScript
– Business rules, use-cases
• Extended Static Prototype phase
– All of the above
– Logical data model to support the screens

24
Extreme Prototyping
• Dynamic prototype (or Extreme Prototype phase)
– UI recoded/adjusted for the chosen web framework
– Working executable code
– Field validations work
– Navigation of screens will work
– Service signatures solidified
– A complete working UI with no implementation
behind

25
Extreme Prototyping

• Service Implementation Phase


– API document
– Each service implemented by calling
databases or other resources
– Integration

26
The advantages of the Prototyping
Model are as follows −

• Increased user involvement in the product even before


its 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.
27
The Disadvantages of the Prototyping
Model are as follows −
• Risk of insufficient requirement analysis owing to too
much dependency on the 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 it is not technically
feasible.
• The effort invested in building prototypes may be too
much if it is not monitored properly.
28
Q/A

29

You might also like