0% found this document useful (0 votes)
14 views14 pages

Lecture 6

Uploaded by

heyfur4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views14 pages

Lecture 6

Uploaded by

heyfur4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Software Engineering

CS-251
Lecture 6

Course Instructor: Sajid Khattak


1
Evolutionary Software Process Models

• There is growing recognition that software, like all complex systems, evolves over a
period of time.
• Business and product requirements often change as development proceeds, making a
straight path to an end product unrealistic; tight market deadlines make completion of a
comprehensive software product impossible, but a limited version must be introduced to
meet competitive or business pressure; a set of core product or system requirements is
well understood, but the details of product or system extensions have yet to be defined.
• In these and similar situations, software engineers need a process model that has been
explicitly designed to accommodate a product that evolves over time.

2
Evolutionary Software Process Models

• The linear sequential model is designed for straight-line development.


• In essence, this waterfall approach assumes that a complete system will be delivered
after the linear sequence is completed.
• The prototyping model is designed to assist the customer (or developer) in
understanding requirements. In general, it is not designed to deliver a production system.
• The evolutionary nature of software is not considered in either of these classic software
engineering paradigms.
• Evolutionary models are iterative. They are characterized in a manner that enables
software engineers to develop increasingly more complete versions of the software.
3
The Incremental Model
• The incremental model combines elements of the linear sequential model (applied repetitively) with
the iterative philosophy of prototyping.
• Referring to Figure 6.1, the incremental model applies linear sequences in a staggered fashion as
calendar time progresses.
• Each linear sequence produces a deliverable “increment” of the software.
• For example, word-processing software developed using the incremental paradigm might deliver basic
file management, editing, and document production functions in the first increment; more sophisticated
editing and document production capabilities in the second increment; spelling and grammar checking
in the third increment; and advanced page layout capability in the fourth increment.
• It should be noted that the process flow for any increment can incorporate the prototyping paradigm.

4
The Incremental Model
• When an incremental model is used, the first increment is often a core product.
• That is, basic requirements are addressed, but many supplementary features (some
known, others unknown) remain undelivered.
• The core product is used by the customer (or undergoes detailed review). As a result of
use and/or evaluation, a plan is developed for the next increment.
• The plan addresses the modification of the core product to better meet the needs of the
customer and the delivery of additional features and functionality.
• This process is repeated following the delivery of each increment, until the complete
product is produced.
5
The Incremental Model

6
The Incremental Model
• The incremental process model, like prototyping and other evolutionary
approaches, is iterative in nature.
• But unlike prototyping, the incremental model focuses on the delivery of
an operational product with each increment.
• Early increments are stripped-down versions of the final product, but they
do provide a capability that serves the user and also provides a platform
for evaluation by the user.

7
The Incremental Model
• Incremental development is particularly useful when staff is unavailable for a complete
implementation by the business deadline that has been established for the project.
• Early increments can be implemented with fewer people. If the core product is well
received, then additional staff (if required) can be added to implement the next
increment.
• In addition, increments can be planned to manage technical risks.
• For example, a major system might require the availability of new hardware that is under
development and whose delivery date is uncertain. It might be possible to plan early
increments in a way that avoids the use of this hardware, thereby enabling partial
functionality to be delivered to end-users without inordinate delay.
8
Advantages of the 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 customers can respond to each build.
• Lowers initial delivery cost.
• Easier to manage risk because risky pieces are identified and handled during
its iteration.
9
Advantages of the Incremental Model
• The feedback from early increments improves the later stages.
• The possibility of changes in requirements is reduced because of the
shorter time span between the design of a component and its delivery.
• Users get benefits earlier than with a conventional approach.
• Early delivery of some useful components improves cash flow because
you get some return on investment early on.

10
Advantages of the Incremental Model
• It’s ideal for those projects in which sufficient manpower is not available to
meet difficult project deadlines.
• Smaller sub-projects are easier to control and manage.
• ‘Gold-plating,’ that is the requesting of features that are unnecessary or less
used can be avoided.
• The project can be temporarily abandoned if more urgent work crops up.
• Job satisfaction is increased for developers who see their labors bearing fruit
at regular, short intervals.
11
Limitation of the Incremental Model
• Software breakage, that is, later increments may require modifications to
earlier increments
• Programmers may be more productive working on one large system than
on a series of smaller ones.
• Some problems are difficult to divide into functional units (modules),
which can be incrementally developed and delivered.

12
Limitation of the 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 the Waterfall Model.

13
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.
14

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy