U1.software Proc - Models
U1.software Proc - Models
Engineering
Evolution of Software Engineering
• It is a linear model.
• It is a segmental model.
• It is systematic and sequential.
• It is a simple one.
• It has proper documentation
Disadvantages
• It is difficult to define all requirement at the beginning of
the project.
• Model is not suitable for accommodating any change
• It does not scale up well to large projects
• Inflexible partitioning of the project into distinct stages
makes it difficult to respond to changing customer
requirements.
• Therefore, this model is only appropriate when the
requirements are well-understood and changes will be
fairly limited during the design process.
• Few business systems have stable requirements.
• The waterfall model is mostly used for large systems
engineering projects where a system is developed at
several sites.
Iterative Waterfall Model
• Waterfall model assumes in its design that
no error will occur during the design phase
• Iterative waterfall model introduces
feedback paths to the previous phases for
each process phase
• It is still preferred to detect the errors in
the same phase they occur
• Conduct reviews after each milestone
31
Iterative Waterfall Model
Feasibility
Study
Req. Analysis
Design
Coding
Testing
Maintenance
V-model
• Another variant of the waterfall model — the V-model —
associates each development activity with a test or
validation at the same level of abstraction.
• Each development activity builds a more detailed model
of the system than the one before it, and each validation
tests a higher abstraction than its predecessor.
• The least flexible and most obsolete of the life cycle
models. Well suited to projects that has low risk in the
areas of user interface and performance requirements,
but high risk in budget and schedule predictability and
control.
V-Model
Advantages
• Simple and easy to use.
• Each phase has specific deliverables.
• Higher chance of success over the
waterfall model due to the development of
test plans early on during the life cycle.
• Works well for small projects where
requirements are easily understood.
Disadvantages
• Very rigid, like the waterfall model.
• Little flexibility and adjusting scope difficult
and expensive.
• Software is developed during the
implementation phase, so no early
prototypes of the software are produced.
• Model doesn’t provide a clear path for
problems found during testing phases.
Prototyping Model
• prototyping paradigm begins with requirements
gathering.
• Developer and customer meet and define the
overall objectives for the software, identify
whatever requirements are known, and outline
areas where further definition is mandatory.
• A "quick design" then occurs. The quick design
focuses on a representation of those aspects of
the software that will be visible to the
customer/user (e.g., input approaches and
output formats).
Prototyping Model
• It is based on the idea of building a
prototype before building the actual
system
– Prototype exhibits limited functional abilities,
low reliability, and inefficient performance
– Used to show input types, user interactions
using dummy functions
– Used to resolve technical issues resulting of
unknown components (e.g. new hardware)
38
Prototyping Model
• Customers could believe it’s the working
system
• Developer could take “shortcuts” and only
fill the prototype instead of redesigning it
• Customers may think that the system is
almost done, and only few fixes are
needed
39
Prototyping Model
Feasibility study
Requirement Gathering
Quick Design
Customer Evaluation
Design
Implement
Test
Maintain
40
Advantage &
limitations of Prototyping Models
Advantage
• Suitable for large systems for which there is no manual
process to define there requirements.
• User training to use the system.
• User services determination.
• System training.
• Quality of software is good.
• Requirements are not freezed.
Limitations of Prototyping Model
• It is difficult to find all the requirements of the software
initially.
• It is very difficult to predict how the system will work after
development.
Increment process model / Iterative
enhancement model
• In incremental model the whole
requirement is divided into various builds.
• Each module (independent units) passes
through the requirements, design,
implementation and testing phases.
• The incremental build model is a method
of software development where the
product is designed, implemented and
tested incrementally until the product is
finished.
• It is also called iterative enhancement model;.
• In this model, the software is broken down
into several modules, which are incrementally
developed and delivered.
• First, the development team develops the core
module of the system and then it is later refined
into increasing levels of capability of adding new
functionalities in successive versions
• Each subsequent(coming after something in
time) release of the module adds function to the
previous release. The process continues till the=
complete system is achieved.
Increment/Iterative-enhancemen
t model
Advantages
• Advantages:
– Deals constantly with changes
– Provides quickly an initial version of the system
– Involves all development teams
• Disadvantages:
– Quick fixes may be involved
– “Invisible” process, not well-supported by
documentation
– The system’s structure can be corrupted by
continuous change
Spiral Model
• Presented by Boehm in 1985. The spiral model is
focused on risk management.
• The spiral model is favored for large, expensive, and
complicated projects.
• The spiral model is similar to the incremental model, with
more emphases 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 is gathered and risk is assessed.
• Each subsequent spiral builds on the baseline spiral.
Spiral model
Advantages