Software development
Software engineering is defined as a process of analyzing user
requirements and then designing, building, and testing software
application which will satisfy those requirements.
Different software Processes
Specification :
Defining what the system should do
Design and implementation:
Defining the organization of the system and implementing the system
Validation:
Checking that t does what the customer wants .
Evolution:
Changing the system in response to changing customer neends .
Plan driven processes:
Are the processes where all process activities are planned in advance and
progress is measured against this plan.
Agile processes:
Planning is incremental and it is easier to change the process to reflect
changing customer requirnment .
Waterfall model :
Plan driven model .separate and distinct phase of specification and
development .
Waterfall Model is a sequential model that divides software development
into pre-defined phases. Each phase must be completed before the next
phase can begin with no overlap between the phases.
Waterfall Methodology can be used when:
Requirements are not changing frequently
Application is not complicated and big
Project is short
Requirement is clear
Environment is stable
Technology and tools used are not dynamic and is stable
Advantages Dis-Advantages
Before the next phase of development, Error can be fixed only during the
each phase must be completed phase
It is not desirable for complex project
Suited for smaller projects where
where requirement changes
requirements are well defined
frequently
They should perform quality assurance
Testing period comes quite late in the
test (Verification and Validation) before
developmental process
completing each stage
Elaborate documentation is done at every
Documentation occupies a lot of time
phase of the software’s development
of developers and testers
cycle
Project is completely dependent on Clients valuable feedback cannot be
project team with minimum client included with ongoing development
intervention phase
Small changes or errors that arise in
Any changes in software is made during
the completed software may cause a
the process of the development
lot of problems
Resources are available and trained
Incremental model:
Incremental Model is a process of software development where
requirements are broken down into multiple standalone modules of
software development cycle. Incremental development is done in steps
from analysis design, implementation, testing/verification, maintenance.
When to use Incremental models?
Requirements of the system are clearly understood
When demand for an early release of a product arises
When software engineering team are not very well skilled or trained
When high-risk features and goals are involved
Such methodology is more in use for web application and product based companies
Advantages Disadvantages
The software will be generated quickly during
It requires a good planning designing
the software life cycle
Problems might cause due to system
It is flexible and less expensive to change architecture as such not all requirements
requirements and scope collected up front for the entire software
lifecycle
Throughout the development stages changes Each iteration phase is rigid and does not
can be done overlap each other
Rectifying a problem in one unit requires
This model is less costly compared to others correction in all the units and consumes a lot of
time
A customer can respond to each building
Errors are easy to be identified
Advantages and Disadvantages of Incremental
Based on systematic reuse where systems are integrated from existing
components or COTS (Commercial-off-the-shelf) systems.
Process stages
Component analysis;
Requirements modification;
System design with reuse;
Development and integration.
Reuse is now the standard approach for building many types of business
system
Software specification
The process of establishing what services are required and the constraints
on the system’s operation and development.
Requirements engineering process
Feasibility study
• Is it technically and financially feasible to build the system?
Requirements elicitation and analysis
• What do the system stakeholders require or expect from the
system?
Requirements specification
• Defining the requirements in detail
Requirements validation
• Checking the validity of the requirements
Testing stages
Development or component testing
Individual components are tested independently;
Components may be functions or objects or coherent groupings of
these entities.
System testing
Testing of the system as a whole. Testing of emergent properties is
particularly important.
Acceptance testing
Testing with customer data to check that the system meets the
customer’s needs.
What is RAD Model?
RAD Model or Rapid Application Development model is a software
development process based on prototyping without any specific planning.
In RAD model, there is less attention paid to the planning and more priority
is given to the development tasks. It targets at developing software in a
short span of time.
SDLC RAD modeling has following phases
Business Modeling
Data Modeling
Process Modeling
Application Generation
Testing and Turnover
What is Spiral Model?
Spiral Model is a risk-driven software development process model. It is a
combination of waterfall model and iterative model. Spiral Model helps to
adopt software development elements of multiple process models for the
software project based on unique risk patterns ensuring efficient
development process.
Each phase of spiral model in software engineering begins with a design
goal and ends with the client reviewing the progress. The spiral model in
software engineering was first mentioned by Barry Boehm in his 1986
paper.
The development process in Spiral model in SDLC, starts with a small set
of requirement and goes through each development phase for those set of
requirements.
When to use Spiral Model?
A Spiral model in software engineering is used when project is large
When releases are required to be frequent, spiral methodology is
used
When creation of a prototype is applicable
When risk and costs evaluation is important
Spiral methodology is useful for medium to high-risk projects
When requirements are unclear and complex, Spiral model in SDLC is
useful
When changes may require at any time
When long term project commitment is not feasible due to changes
in economic priorities
Spiral Model Advantages and Disadvantages
Advantages Disadvantages
Additional functionality or
Risk of not meeting the schedule or
changes can be done at a later
budget
stage
Cost estimation becomes easy as Spiral development works best for
the prototype building is done in large projects only also demands risk
small fragments assessment expertise
Continuous or repeated
For its smooth operation spiral model
development helps in risk
protocol needs to be followed strictly
management
Development is fast and features
Documentation is more as it has
are added in a systematic way in
intermediate phases
Spiral development
Spiral software development is not
There is always a space for
advisable for smaller project, it might
customer feedback
cost them a lot
Spiral model sectors
Objective setting
Specific objectives for the phase are identified.
Risk assessment and reduction
Risks are assessed and activities put in place to reduce the key risks.
Development and validation
A development model for the system is chosen which can be any of
the generic models.
Planning
The project is reviewed and the next phase of the spiral is planned.
Agile development :