You are on page 1of 24

Software Life Cycle Models

Prepared By :
Ranbir Batth
Software Life Cycle

 It is a series of identifiable stages that a


software product undergoes during its
lifetime.
 Various stages are Feasibility Study,
Requirements Analysis and Specification,
Design, Coding, Testing, and maintenance.
Each of these stages is called a life cycle
phase.
Software Life Cycle Model

 A software life cycle model is a descriptive


and diagrammatic representation of the
software life cycle.
 A life cycle model represents
 all the activities required to make a software
product transit through its life cycle phases.
 It also captures the order in which these activities
are to be undertaken.
Life Cycle Model ( Contd….)

 It divides life cycle into phases.


 During any life cycle phase, more than one
activity may also be carried out.
 A software life cycle model is often referred to
as software process model.
Why use a Life Cycle Model?

 It encourages development of software in a


systematic and disciplined manner.
 When a software product 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 may lead
to project failure.
Why document a life cycle model?

 A documented life cycle model, besides


preventing the misinterpretations that occur
when the life cycle model is not adequately
documented, also helps in identifying
inconsistencies, redundancies, and
omissions in the development process.
Why document a life cycle model?

 It enhances the common understanding of


the process among the developers and
mandates the software development
organization to accurately define every
activity in the life cycle.
Software Process Models

 To solve actual problems in an industry setting, a


software engineer must incorporate …..
 a development strategy that encompasses the process,
methods, and tools.
 and the generic phases.
 This strategy is often referred to as a process model
or a software engineering paradigm
Software Process Models

 A process model for software engineering is


chosen based on :
 The nature of the project and application.
 The methods and tools to be used.
 The controls and deliverables that are required.
Software Development as a problem
solving loop………
The phases of a problem
solving loop……….
 Status Quo : represents current state of affairs.
 Problem Definition : identifies the specific problem
to be solved.
 Technical Development : It solves the problem
through the application of some technology.
 Solution Integration : delivers the results.(e.g.
documents, programs, data etc.) to those who
requested the solution.
The phase within phases of the
problem solving loop
The phase within phases of the
problem solving loop
 The problem solving loop applies to software
engineering work at many different levels of
resolution. It can be used at :
 Macro level : for entire application.
 Mid level : when program components are being
engineered.
 Micro level : at the line of code level.
The Linear Sequential Model
Linear Sequential Model

Feasibility Study

Req. Analysis

Design

Coding

Testing

Maintenance
The Linear Sequential Model

 It is also called as Classic Life Cycle or the


Waterfall Model.
 It suggests a systematic, sequential approach
to software development that begins at the
system level and progresses through
analysis, design, coding, testing, and
maintain.
System/Information Engineering and
Modeling
 Because software is always part of a larger
system( or business) work begins by
establishing requirements for all system
elements and then allocating some subset of
these requirements to software.
 System engineering and analysis encompass
requirements gathering at the system level
with a small amount of top level design and
analysis.
Software Requirements Analysis

 The software engineer must understand the


information domain for the software, as well
as required function, behavior, performance,
and interface.
 Requirements for both the system and the
software are documented and reviewed with
the customer.
Design

 Software design is actually a multistep


process that focuses on four distinct
attributes of a program :
 Data structure.
 Software architecture.
 Interface representations.
 Procedural (algorithmic) detail.
Code Generation

 The design must be translated into a


machine-readable form.

 The code generation step performs this task.


Testing

 Once code has been generated, program


testing begins.
 The testing process focuses on the
 Logical internals of the software.
 Statements have been tested.
 Functional externals.
Maintain

 Software will undoubtedly undergo change


after it is delivered to the customer.
 Maintenance can be
 Adaptive.
 Corrective.
 Perfective.
Shortcomings of Waterfall Model

 Real projects rarely follow the sequential flow


that the model proposes.
 It is often difficult for the customer to state all
the requirements explicitly.
 The customer must have patience.
0
10
20
30
40
50
60
Req. Sp
Design
Coding
Test
Maintnce

0
10
20
30
40
50
60

Req. Sp
Design
Coding
Test
Maintnce
Relative Effort for Phases

You might also like