Professional Documents
Culture Documents
Introduction
What is Software Engineering
Engineering on the other hand, is all about developing products, using well-defined
scientific principles and methods.
Cont…
Software engineering is an engineering branch associated with
development of software product using well-defined scientific principles,
methods and procedures.
The life cycle defines a methodology for improving the quality of software
and the overall development process.
Cont…
The following figure is a graphical representation of the various stages of a
typical SDLC.
Stages in SDLC
Stage 1: Planning and Requirement Analysis
◦ Requirement analysis is the most important and fundamental stage in SDLC.
◦ It is performed by the senior members of the team. with inputs from the customer, the
sales department, market surveys and domain experts in the industry.
◦ This information is used to plan the basic project approach and to conduct product
feasibility.
◦ Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage.
Cont…
Stage 2: Defining Requirements
◦ During this stage product requirements is clearly defined and documented and also
approved from the customer or the market analysts.
◦ Different high level programming languages such as C, C++, Pascal, Java and PHP
are used for coding with respect to the type of software being developed.
Cont…
Stage 5: Testing the Product
◦ This stage is usually a subset of all the stages as in the modern SDLC models.
◦ The testing activities are mostly involved in all the stages of SDLC.
◦ It’s a stage where product defects are reported, tracked, fixed and retested, until the
product reaches the quality standards defined in the SRS.
Cont…
Stage 6: Deployment in the Market and Maintenance
◦ Once the product is tested and ready to be deployed it is released formally in the
appropriate market.
◦ Sometimes product deployment happens in stages as per the business strategy of that
organization.
◦ The product may first be released in a limited segment and tested in the real business
environment (UAT- User acceptance testing).
◦ Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment.
◦ After the product is released in the market, its maintenance is done for the existing
customer base.
SDLC Models
There are various software development life cycle models defined and designed which are
followed during the software development process.
Each process model follows a Series of steps unique to its type to ensure success in the
process of software development.
Following are the most important and popular SDLC models followed in the industry −
Waterfall Model
Iterative Model
Spiral Model
V-Model
Big Bang Model
Agile model
RAD Model
Waterfall Model
The Waterfall Model was the first Process Model to be introduced.
In a waterfall model, each phase must be completed before the next phase
can begin and there is no overlapping in the phases.
Waterfall Model - Design
In this Waterfall model, typically, the outcome of one phase acts as the
input for the next phase sequentially
Waterfall Model - Application
specification of requirements.
Instead, development begins by specifying and implementing just part of
The basic idea behind this method is to develop a system through repeated cycles
(iterative) and in smaller portions at a time (incremental).
The following illustration is a representation of the Iterative and Incremental model
−
Iterative Model - Application
The spiral model has four phases. A software project repeatedly passes
through these phases in iterations called Spirals.
1)Identification Phase
◦ In this phase the business requirements in the baseline spiral are gathered.
◦ system, subsystem and unit requirements are gathered and understood.
2) The Design phase
◦ starts with the conceptual design in the baseline spiral
◦ and involves architectural design, logical design of modules, physical product design
and the final design in the subsequent spirals.
Cont…
3) Construct or Build
◦ It refers to production of the actual software product at every spiral.
◦ a POC (Proof of Concept) is developed in this phase to get customer feedback.
◦ Then in the subsequent spirals with higher clarity on requirements and design details a
working model of the software called build is produced with a version number. These
builds are sent to the customer for feedback.
4) Evaluation and Risk Analysis
◦ It includes identifying, estimating and monitoring the technical feasibility and
management risks.
◦ After testing the build, at the end of first iteration, the customer evaluates the software
and provides feedback.
Cont…
The following illustration is a representation of the Spiral Model, listing
the activities in each phase.
Spiral Model Application
This is a highly-disciplined model and the next phase starts only after
completion of the previous phase.
V-Model - Design
V- Model application is almost the same as the waterfall model, as both the
models are of sequential type.
The following pointers are some of the most suitable scenarios to use the
V-Model application.
◦ Requirements are well defined, clearly documented and fixed.
◦ Product definition is stable.
◦ Technology is not dynamic and is well understood by the project team.
◦ There are no ambiguous or undefined requirements.
◦ The project is short
V-Model - Pros and Cons
◦ Works well for smaller projects where requirements are very well understood.
◦ Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
V-Model - Pros and Cons
The development just starts with the required money and efforts as the input, and the
output is the software developed which may or may not be as per customer
requirement.
Even the customer is not sure about what exactly he wants and the requirements are
implemented on the fly without much analysis.
Usually this model is followed for small projects where the development teams are
very small.
Big Bang Model ─ Application
This model is ideal for small projects with one or two developers working together.
It is an ideal model for the product where requirements are not well understood and
the final release date is not given.
Big Bang Model - Pros and Cons
Iterative approach is taken and working software build is delivered after each
iteration.
Each build is incremental in terms of features; the final build holds all the features
required by the customer.
Cont…
RAD model distributes the analysis, design, build and test phases into a series of
short, iterative development cycles.
RAD model enables rapid delivery as it reduces the overall development time due to the reusability of
the components and parallel development.
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.
The advantages of the RAD Model are as follows −
◦ Changing requirements can be accommodated.
◦ Progress can be measured.
◦ Iteration time can be short with use of powerful RAD tools.
◦ Productivity with fewer people in a short time.
◦ Reduced development time.
Cont…
The assessment includes the identification and characterization of current practices, identifying areas
of strengths and weaknesses, and the ability of current practices to control or avoid significant causes
of poor (software) quality, cost, and schedule.
They are for the use of the organization to improve its software processes, and the results are
confidential to the organization.
The organization being assessed must have members on the assessment team.
Any Question?