Unit1 Models
Unit1 Models
1
1. Software Development Life Cycle (SDLC)
2
1.1 Stages of SDLC
- Maintainance Communication
Deployment Requirement
gathering
Testing Feasibility
study
Coding
Requirement
Designing analysis
Contd…Phases or stages of SDLC
• Communication : This is the first step where the user initiates the request for the
desired software product.
• Requirement Gathering and analysis : It involves the discussions with various
stakeholders to understand the exact requirement.
• Feasibility study: - The main aim of feasibility study is to determine whether it
would be financially and technically feasible to develop the product.
• Requirement analysis and Defining Requirement : The aim of this step is to
document gathered requirements properly. This is done through Software
requirement Specification (SRS) .
• Design: - The goal of the design phase is to transform the requirements specified in
the SRS document into a structure that is suitable for implementation in some
programming language . Design specification Document is outcome of this phase.
4
• Coding and unit testing:-The purpose of the coding and unit testing phase (sometimes called
the implementation phase) of software development is to translate the software design into
source code. Each component of the design is implemented as a program module. The end-
product of this phase is a set of program modules that have been individually tested. Code
Listings are generated after this phase.
• Integration and system testing: - Integration of different modules is undertaken once they
have been coded and unit tested During each integration step, the partially integrated system is
tested and a set of previously planned modules are added to it. Finally, when all the modules
have been successfully integrated and tested, system testing is carried out. The goal of system
testing is to ensure that the developed system conforms to its requirements laid out in the SRS
document. Test Reports are generated after this phase.
• Deployment : This leads to the deployment of the product in the market and perform
acceptance testing
• Maintenance: - Maintenance of a typical software product requires much more than the effort
necessary to develop the product itself. Many studies carried out in the past confirm this and
indicate that the relative effort of development of a typical software product to its maintenance
effort is roughly in the 40:60 ratio. This phase continues till the software is in use.
1.3 Effort distribution of all phases
2. SDLC Paradigm or Model
Phase Output
Different software life cycle models have been proposed so far. Each of
them has some advantages as well as some disadvantages.
A few important and commonly used life cycle models are as follows:
1. Build and Fixed Model
For small
2.Classical Waterfall Model softwares
3. Iterative Model
4. Prototyping Model
5. Evolutionary Model
6. Spiral Model For
complex
7. Rapid Application Development model (RAD)
softwares
8. Agile
8
2.2 Need for SDLC Model
1
4
The sequential phases in Waterfall model are:
• Requirement analysis: All possible requirements of the system to be developed are captured
in this phase and documented in a requirement specification doc.
• System Design: The requirement specifications from first phase are studied in this phase and
system design is prepared. System Design helps in specifying hardware and system
requirements and also helps in defining overall system architecture.
• Implementation: With inputs from system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is developed and
tested for its functionality which is referred to as Unit Testing.
• Testing: All the units developed in the implementation phase are integrated into a system after
testing of each unit. Post integration the entire system is tested for any faults and failures.
• Deployment of system: Once the functional and non functional testing is done, the product is
deployed in the customer environment or released into the market.
• Maintenance: There are some issues which come up in the client environment. To fix those
issues patches are released. Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
contd….Its Pros
Some situations where the use of Waterfall model is most appropriate are:
System and
software design
Implementation
and unit testing
Operation and
maintenance
2. Incremental Model or Iterative Waterfall model
Core product
• The Incremental Model Simply combines elements of the linear
sequential model with the iterative philosophy of prototyping. The
first increment is a core product.
• RAD works well only if high skilled engineers are available and the
customer is also committed to achieve the targeted prototype in the
given time frame. If there is commitment lacking on either side the
model may fail.
PROTOTYPING:
• Prototyping approach, also known as evolutionary approach, came to
picture because of failures that occurred in the waterfall approach and
iterative approach.
• This model allows the users to interact and experiment with a working
model of the system known as prototype.
• Evolutionary Prototyping
Contd..
• Evolutionary Prototype
--Prototype is built with the idea that it will eventually be
converted into final system
---It will not be built in a dirty fashion
---The evolutionary prototype evolves into the final product,
obtain experience it and then based on that experience go back
and repeat the entire process again.
Contd…Its Advantages
• Misunderstanding between software developers an customers may be identified as
functions demonstrated.
• It is a very useful technique to obtain accurate requirements of the system and to
speed up the development process
• Errors can be detected much earlier.
• Users are actively involved in the development.
• Missing functionality can be identified easily.
• Confusing user requirements may be identified and refined.
• When prototype is shown to the user he gets a proper clarity and 'feel' of
the functionality of the software and he can suggest changes and modifications.
• This type of approach of developing the software is used for non-IT-literate people.
They usually are not good at specifying their requirements, nor can tell properly
about what they expect from the software.
• When client is not confident about the developer's capabilities, he asks for a
small prototype to be built. Based on this model, he judges capabilities of
developer.
• It reduces risk associated with the software.
Contd..Its Disadvantages
• Evaluation phase: This phase allows the customer to evaluate the output
of the project to date before the project continues to the next spiral.
Advantages
• High amount of risk analysis hence, avoidance of Risk is
enhanced.
• The spiral model is favored for large, expensive, and
complicated projects.
• Additional Functionality can be added at a later date.
• Development can be divided into smaller parts and more risky
parts can be developed earlier which helps better risk
management.
• Development is fast
• Has room for customer feedback and the changes are
implemented faster.
• Better understanding between developer and customer
Disadvantages