0% found this document useful (0 votes)
29 views

Software Process Models

The document discusses different software process models, including: 1) The linear sequential (waterfall) model which progresses through sequential phases from requirements to maintenance. 2) Prototyping model where an initial prototype is built, tested with users, and refined iteratively until approved. 3) The document explains the advantages and disadvantages of each model and when each may be best applied based on the project.

Uploaded by

Cath
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Software Process Models

The document discusses different software process models, including: 1) The linear sequential (waterfall) model which progresses through sequential phases from requirements to maintenance. 2) Prototyping model where an initial prototype is built, tested with users, and refined iteratively until approved. 3) The document explains the advantages and disadvantages of each model and when each may be best applied based on the project.

Uploaded by

Cath
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

SOFTWARE PROCESS

MODELS
SOFTWARE PROCESS MODEL
• To solve actual problems in industry ,the software team has to
incorporate a development strategy that encompasses the
process ,methods and tools and the generic phases

• This strategy is referred to as a process model or a software


engineering paradigm

• The process model for software engineering is chosen based


on the nature of the project and application, the methods
and tools to be used and the controls and the deliverables
that are required
SOFTWARE PROCESS MODEL
SOFTWARE PROCESS
MODEL
SOFTWARE PROCESS MODEL

• The phases within phases of the problem


solving loop is given below:
• Status quo represents the current state of affairs.

• Problem definition identifies the specific problem to be solved

• Technical development solves the problem through the application


of technology

• Solution integration delivers the results(e.g.


documents,programs,data,new business function, new product)to
those who requested the solution

• The generic phases and steps are mapped into these stages.
Why software life cycle model?
• Software life cycle model: The descriptive and
diagrammatic representation of the software life cycle
• It represent all the activities performed on software product from
the inception to retirement
• It also depicts the order in which these activities are to
be undertaken
• More than one activity can be carried out in a single
phase
• The primary advantage of adhering to a life cycle model is that
it encourages development of software in a systematic and
disciplined manner
• When a program is developed by a single programmer ,he has
the freedom to decide the exact steps through which he will
develop the program
Why software life cycle model?
• A life cycle model also defines the entry and exit criteria for
every phase

• A phase can begin only when the corresponding phase-entry


criteria are satisfied
• Also, a phase is considered to be complete only when
the corresponding exit criteria are satisfied

• But when a software is developed by a team it is necessary to have a


precise understanding among the team members as to when to do what.

• Otherwise it will lead to chaos and project failure

• A documented life cycle model prevents misinterpretations and also


helps in identifying inconsistencies ,redundancies and omissions in the
development process
Software life cycle model

• Software life cycle models:


• Linear Sequential
Model(Waterfall model)
• Prototyping Model
• Incremental model
• Spiral model
Linear Sequential Model

• Sometimes called classic life cycle or waterfall model


• Suggests a systematic ,sequential approach to software
development that begins at system level and
progresses through analysis, design, coding ,testing
and support.
• The water fall model is illustrated as below.
Linear Sequential Model
• The classic life cycle - oldest and most widely
used paradigm
• Activities ‘flow’ from one phase to another
• In iterative waterfall model, if there are corrections,
return to a previous phase and ‘flow’ from there
again
• Good for planning and well-defined/repeated projects
Iterative Linear Sequential Model
Linear Sequential Model
• Linear Sequential model encompasses the following
activities:
• System /information engineering and modeling
– Software is always a part of a larger system(or
business)

– Work begins by establishing the requirements for all system


elements and allocating some subset of these requirements to
software

– System view is essential when software must interacts with


other elements such as hardware, people and databases.

– System engineering and analysis encompass requirements


gathering at the system level with a small amount of top design
and analysis
Linear Sequential Model

• Software requirements analysis


– This process is intensified and focused specifically on
software

– To understand the nature of the programs to be built, the


software engineer(analyst) must understand the information
domain for the software as well as the required function,
behaviour, performance and interface

– Requirements for both the system and the software are


documented and reviewed with the customers
Linear Sequential Model

• Design
– Software design is a multistep process that focuses on four
distinct attributes of a program:
– Data structure
– Software architecture
– Interface representation
– Procedural(algorithmic) detail
– The design process translates requirements into a representation of
the software that can be assessed for quality before coding begins
– Deign is also documented and becomes part of software
configuration.
Linear Sequential Model

• Code Generation
– The design must be translated into a machine –readable form.
– The code generation step performs this task
• Testing
– The testing process focuses on the logical internals of the software, ensuring that all
statements have been tested
– Also focuses on the functional externals i.e conducting tests to uncover errors and
ensure that defined input will produce actual results that agree with required results
• Maintenance/Support
– Software will undergo change after it is delivered to the
customer (except embedded software)
– Change will occur because of correction, adaptation or
enhancement.
– Software support/maintenance reapplies each of the preceding
phases to an existing program rather than a new one
Linear Sequential Model

• Advantage
– Simple model
– Works best when requirements of a problem are reasonably well understood
• Disadvantages
– Real projects rarely follow the sequential flow that the model proposes
– Changes can cause confusion as the project team proceeds
– It is often difficult for the customer to state all requirements explicitly
– The linear sequential model requires this and has difficulty accommodating the
natural uncertainty that exists at the beginning of many projects
– The customer must have patience.
– A working version of the programs will not be available until late in the
project time-span
– A major blunder ,if undetected until the working program is reviewed can
be disastrous
– Leads to “blocking states”
– Some project team members must wait for other members of the team to
complete dependent tasks
– It can cause delay
Prototyping model
• A customer defines a set of general objectives for software.

• But does not identify detailed input processing or output requirements.

• The developer may be unsure of the efficiency of an algorithm, the


adaptability of an OS or the form that a human/machine interaction
should take.

• In such cases a prototyping paradigm can be used.

• The prototyping model suggests that before development of the actual


software ,a working prototype of the system should be built first.

• A prototype is a toy implementation of a system, usually exhibiting


limited
functional capabilities, low reliability and inefficient performance.
Prototyping model
• Several reasons for developing a prototype:
– To illustrate the input data formats ,messages and the interactive dialogues
to the customer

– It is a valuable mechanism for gaining better understandability of the


customer needs

– For many functionalities such as Graphical User Interface(GUI) part of a


system ,it is much easier for the user to form his opinion by experimenting
with a working model rather than just trying to imagine the working of a
hypothetical system

– It helps to critically examine the technical issues associated with the


product development
• E.g. the design decisions depends on issues like the response time of hardware controller or
efficiency of the sorting algorithm which can be resolved using prototype

– It is impossible to “get it right” the first time and we must plan to throw
away
Prototyping model
Prototyping model
• The model starts with an initial requirements gathering phase.

• A quick design is carried out and the prototype model is built using several
shortcuts.

• The shortcuts might involve using inefficient, inaccurate or dummy


functions
– E.g. a function may produce the desired by using a table look-up
rather than performing actual computations
• The prototype product usually turns out to be a very crude version of
the actual system

• The developed prototype is submitted to the customer for his evaluation

• Based on the user feedback ,the requirements are refined.

• This cycle continues until the user approves the prototype


Prototyping model
• Disadvantage
– In prototyping model of software development ,the requirement analysis
and specification phase become redundant

• Advantages
– The code for the prototype is usually thrown away ,however the
experience gathered from developing the prototype helps a great deal in
developing the actual system

– Therefore ,even though the construction of a working prototype model


might involve additional costs, for systems with ambiguous user
requirements and unresolved technical issues ,the overall development cost
will be lower than that of an equivalent system developed using the
waterfall model .

– Since the user requirements are properly defined and technical issues are
properly and satisfactorily resolved as a result of experimenting with the
prototype model, it minimizes change requests and redesign cost after
Evolutionary Model
• Also known as successive version model.

• In this model, the system is first broken down into several modules
or
functional units that can be incrementally implemented and delivered.

• This model is iterative.

• Used to develop increasingly more complete versions of the


software.
– E.g. suppose A,B,C are modules of a software product that
are incrementally developed a delivered
Evolutionary Model

•The developers first develop the core module of the system.

•The initial product skeleton is then refined into increasing levels of


capability by adding new functionalities in successive versions.

•Each version of the product is a functioning system capable of


performing some useful work.
Evolutionary Model
• Advantages
– The user of an evolutionary model gets a chance to experiment
with a partially developed system much before the actual fully
developed version is released .

– Thus this model facilitates to elicit the exact requirements of the


user for incorporating into the fully developed system.

– Also the core modules get tested thoroughly ,thereby reducing


chances of errors in the final product
• Disadvantages
– In most practical problems ,it is difficult to subdivide the problem
into several functional units that can be incrementally implemented
and delivered.

– Therefore ,this model is useful only for large problems, where it


is easier to identify modules for incremental implementation.
Evolutionary Model

Incremental model
Spiral model
Incremental model

• The incremental model combines elements of the linear sequential


model applied with the iterative philosophy of prototyping.

• It uses the linear sequences in a staggered fashion as calendar time


progresses.

• Each line sequence produces a deliverable “increment “ of the


software.

• Incremental model is illustrated below.


Incremental model
Incremental model
• When an incremental model is used, the first increment is often a core product.

• i.e. basic requirements are addressed, but many supplementary features remain
undelivered.

• The core product is used by the customer or undergoes detailed review.

• As a result of use 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.
Incremental model
• For e.g. ,suppose a word processing software is developed
using incremental model.

• It might deliver the 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.

• Advanced page layout capability in the fourth increment.


Incremental model
• Advantages
– Incremental model is useful when staffing 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.

– Also can be planned to manage technical risks.


Spiral model
• Is an evolutionary process model that couples the iterative nature of
prototyping with the controlled and systematic aspects of the linear
sequential model.

• It provides the potential for rapid development of incremental


versions of the software.

• Using spiral model ,the software is developed in a series of


incremental releases.

• During the early iterations ,the increment release might be a paper


model or prototype.

• Later it will be developed to a complete versions of the


engineered
system.
• Mainly there are six regions:
Spiral model
Spiral model
• Customer communication
• Tasks required to establish effective communication between
developer and customer
• Planning
• Tasks required to define resources ,timelines and other
project related information
• Risk analysis
• Tasks required to assess both technical and management risks
• Engineering
• Tasks required to build one or more representation of the
application
• Construction and Release
• Tasks required to construct ,test ,install and provide user
support.
• Customer evaluation
• Tasks required to obtain customer feedback based on evaluation
of software representations created during the engineering stage
Spiral model
• Each of the regions is populated by a set of work tasks ,called task set.

• Task sets are adapted to the characteristic of the project to be undertaken.

• For small projects these no. of work tasks will be low, but for large
project
it will be high to achieve higher level of formality.

• In all these cases, the umbrella activities (e.g. SCM, SQA etc )are applied

• As this evolutionary process begins ,the software engineering team


moves around the spiral in a clockwise direction ,beginning at center.

• The first circuit around the spiral might result in the development of a
product specification.
Spiral model
• Subsequent passes around the spiral might be used to develop a prototype
and
then progressively more sophisticated versions of the software.

• Each pass through the planning region results in adjustments to the


project plan.

• Cost and schedule are adjusted based on feedback derived from


customer evaluation.

• In addition, the project manager adjusts the planned no. of iterations


required to complete the software.

• Unlike other process models that end when software is delivered, the spiral
model can be adapted to apply throughout the life of the computer s/w

• The circuits around the spiral might represent


• Concept development project
• New Product development project
• Product enhancement project
• The spiral model demands a direct consideration of technical risks at
Spiral model
• Advantages
• Unlike classical process models that end when software is
delivered
, the spiral model can be adapted to apply throughout the life of
the computer software.
• The project entry axis is the basis for this.
• Each cube placed along the axis can be used to represent
the starting point for different types of projects.
• A ‘concept development project’ starts at the core of the spiral
and will continue until concept development is complete.
• If a concept is developed to an actual product, the process
proceeds through the next cube(new product development project
entry point)and a new development project is initiated .
• The new product will evolve through a number of iterations
around the spiral.
Spiral model
• Whenever a change is initiated ,the process starts at the
appropriate
entry point(e.g. product enhancement)
• The spiral model is a realistic approach to the development of
large
–scale systems and software.
• Because software evolves as the process progresses, the
developer and customer better understand and react to risks at
each evolutionary level.
• It uses prototyping as risk reduction mechanism(mainly
consider technical risks)
• Disadvantages
– It demands considerable risk assessment expertise and relies on
this expertise for success.
– If a major risk is not uncovered and managed ,problems
will undoubtedly occur.
– It may be difficult to convince customer that the evolutionary

You might also like