SDLC

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 42

UNIT II

PROJECT LIFE CYCLE AND EFFORT


ESTIMATION
Software Development Life Cycle
• Software Development Life Cycle, is a well-defined,
structured sequence of stages in software engineering
to develop the intended software product.
SDLC Activities
• SDLC provides a series of steps to be followed to design
and develop a software product efficiently.
SDLC framework
Communication

• This is the first step where the user initiates the


request for a desired software product.
• the contacts the service provider and tries to
negotiate the terms. and submits his request to
the service providing organization in writing.
Requirement Gathering

• This step onwards the software development team works to


carry on the project.
• The team holds discussions with various stakeholders from
problem domain and tries to bring out as much information as
possible on their requirements.
• The requirements are contemplated and segregated into
– user requirements, system requirements and functional requirements.
• The requirements are collected using a number of practices as
given
– studying the existing or obsolete system and software,
– conducting interviews of users and developers,
– referring to the database or
– collecting answers from the questionnaires.
Feasibility Study

• After requirement gathering, the team comes up with a


rough plan of software process.
• At this step the team analyzes if a software can be made to
fulfill all requirements of the user and if there is any
possibility of software being no more useful.
• It is found out, if the project is financially, practically and
technologically feasible for the organization to take up.
• There are many algorithms available, which help the
developers to conclude the feasibility of a software project.
System Analysis

• At this step the developers decide a roadmap of their plan and


try to bring up the best software model suitable for the
project.
• System analysis includes Understanding of software product
limitations, learning system related problems or changes to be
done in existing systems beforehand, identifying and
addressing the impact of project on organization and
personnel etc.
• The project team analyzes the scope of the project and plans
the schedule and resources accordingly.
Software Design

• Next step is to bring down whole knowledge of


requirements and analysis on the desk and design the
software product.
• The inputs from users and information gathered in
requirement gathering phase are the inputs of this step.
• The output of this step comes in the form of two designs;
logical design and physical design. Engineers produce
meta-data and data dictionaries, logical diagrams, data-
flow diagrams and in some cases pseudo codes.
Coding

• This step is also known as programming phase.


• The implementation of software design starts in
terms of writing program code in the suitable
programming language and developing error-free
executable programs efficiently.
Testing

• An estimate says that 50% of whole software development


process should be tested.
• Errors may run the software from critical level to its own
removal.
• Software testing is done while coding by the developers and
thorough testing is conducted by testing experts at various
levels of code such as module testing, program testing, product
testing, in-house testing and testing the product at user’s end.
• Early discovery of errors and their remedy is the key to reliable
software.
Integration

• Software may need to be integrated with the libraries,


databases and other programs.
• This stage of SDLC is involved in the integration of
software with outer world entities.
Implementation

• This means installing the software on user machines. At


times, software needs post-installation configurations
at user end.
• Software is tested for portability and adaptability and
integration related issues are solved during
implementation.
Operation and Maintenance

• This phase confirms the software operation in terms of more


efficiency and less errors.
• If required, the users are trained on, or aided with the
documentation on how to operate the software and how to keep
the software operational.
• The software is maintained timely by updating the code according
to the changes taking place in user end environment or technology.
• This phase may face challenges from hidden bugs and real-world
unidentified problems.
Disposition

• As time elapses, the software may decline on the


performance front. It may go completely obsolete or
may need intense upgradation.
• Hence a pressing need to eliminate a major portion of
the system arises.
• This phase includes archiving data and required
software components, closing down the system,
planning disposition activity and terminating system at
appropriate end-of system time.
Software Development Paradigm
• The software development paradigm helps
developer to select a strategy to develop the
software.
• A software development paradigm has its own
set of tools, methods and procedures, which
are expressed clearly and defines software
development life cycle.
Waterfall Model

• Waterfall model is the simplest model of


software development paradigm.
• It says the all the phases of SDLC will function
one after another in linear manner. That is,
when the first phase is finished then only the
second phase will start and so on.
• This model assumes that everything is carried out and
taken place perfectly as planned in the previous stage
and there is no need to think about the past issues that
may arise in the next phase.
• This model does not work smoothly if there are some
issues left at the previous step.
• The sequential nature of model does not allow us go
back and undo or redo our actions.
• This model is best suited when developers already have
designed and developed similar software in the past
and are aware of all its domains.
Iterative Model

• This model leads the software development


process in iterations.
• It projects the process of development in cyclic
manner repeating every step after every cycle of
SDLC process.
Spiral Model
• The spiral model has four phases. A software
project repeatedly passes through these phases
in iterations called Spirals.
– Identification
– Design
– Construct or Build
– Evaluation and Risk Analysis
Identification
• This phase starts with gathering the business
requirements in the baseline spiral.
• In the subsequent spirals as the product matures,
identification of system requirements, subsystem
requirements and unit requirements are all done in this
phase.
• This phase also includes understanding the system
requirements by continuous communication between
the customer and the system analyst.
• At the end of the spiral, the product is deployed in the
identified market.
Design

• 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.
Construct or Build

• The Construct phase refers to production of the actual


software product at every spiral.
• In the baseline spiral, when the product is just thought
of and the design is being developed 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.
Evaluation and Risk Analysis

• Risk Analysis includes identifying, estimating and


monitoring the technical feasibility and management
risks, such as schedule slippage and cost overrun. After
testing the build, at the end of first iteration, the
customer evaluates the software and provides
feedback.
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.
• Each iteration passes through the requirements,
design, coding and testing phases.
• And each subsequent release of the system
adds function to the previous release until all
designed functionality has been implemented.
• The system is put into production when the first
increment is delivered.
• The first increment is often a core product where
the basic requirements are addressed, and
supplementary features are added in the next
increments.
• Once the core product is analyzed by the client,
there is plan development for the next
increment.
Characteristics of an Incremental module

• System development is broken down into many


mini development projects.
• Partial systems are successively built to produce
a final total system.
• Highest priority requirement is tackled first
• Once the requirement is developed,
requirement for that increment are frozen
Incremental Phases Activities performed in incremental phases
Requirement Analysis Requirement and specification of the software
are collected

Design Some high-end function are designed during this


stage

Code Coding of software is done during this stage

Test Once the system is deployed, it goes through the


testing phase
RAD (Rapid Application Development)
model
• Rapid application development is a software
development methodology that uses minimal planning
in favor of rapid prototyping.
• A prototype is a working model that is functionally
equivalent to a component of the product.
• In the RAD model, the functional modules are
developed in parallel as prototypes and are integrated
to make the complete product for faster product
delivery.
RAD Model Design
• RAD model distributes the analysis, design,
build and test phases into a series of short,
iterative development cycles.
– Business Modeling
– Data Modeling
– Process Modeling
– Application Generation
– Testing and Turnover
RAD MODEL
Business Modeling
• The business model for the product under
development is designed in terms of flow of
information and the distribution of information
between various business channels.
Data Modeling
• The information gathered in the Business Modeling
phase is reviewed and analyzed to form sets of data
objects vital for the business.
Process Modeling
• The data object sets defined in the Data Modeling
phase are converted to establish the business
information flow needed to achieve specific
business objectives as per the business model.
Application Generation
• The actual system is built and coding is done by
using automation tools to convert process and
data models into actual prototypes.
Testing and Turnover
• The overall testing time is reduced in the RAD
model as the prototypes are independently
tested during every iteration.
RAD Model Vs Traditional SDLC

• The traditional SDLC follows a rigid process models


• The customer may need some changes after he
gets to see the software. However, the change
process is quite rigid and it may not be feasible to
incorporate major changes in the product in the
traditional SDLC.
• The RAD model focuses on iterative and
incremental delivery of working models to the
customer. 
RAD Model - Application

• RAD model can be applied successfully to the projects in which


clear modularization is possible.
• If the project cannot be broken into modules, RAD may fail.
• RAD should be used only when a system can be modularized to be
delivered in an incremental manner.
• It should be used if there is a high availability of designers for
modeling.
• It should be used only if the budget permits use of automated code
generating tools.
• RAD SDLC model should be chosen only if domain experts are
available with relevant business knowledge.
• Should be used where the requirements change during the project
and working prototypes are to be presented to customer in small
iterations of 2-3 months.
advantages
• 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.
• Increases reusability of components.
• Quick initial reviews occur.
• Encourages customer feedback.
• Integration from very beginning solves a lot of integration issues.
d disadvantages

• Dependency on technically strong team members for identifying business


requirements.
• Only system that can be modularized can be built using RAD.
• Requires highly skilled developers/designers.
• High dependency on modeling skills.
• Inapplicable to cheaper projects as cost of modeling and automated code
generation is very high.
• Management complexity is more.
• Suitable for systems that are component based and scalable.
• Requires user involvement throughout the life cycle.
• Suitable for project requiring shorter development times.

You might also like