0% found this document useful (0 votes)
14 views

Process Models Part 1

The document discusses the Software Development Life Cycle (SDLC) process. It describes SDLC as a systematic process for developing software that ensures quality. The SDLC consists of several phases: requirements collection and analysis, feasibility study, design, coding, testing, installation/deployment, and maintenance. It then provides more details on the waterfall model, a common SDLC model that consists of sequential phases that must be completed before moving to the next.

Uploaded by

haseebbaloch43
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Process Models Part 1

The document discusses the Software Development Life Cycle (SDLC) process. It describes SDLC as a systematic process for developing software that ensures quality. The SDLC consists of several phases: requirements collection and analysis, feasibility study, design, coding, testing, installation/deployment, and maintenance. It then provides more details on the waterfall model, a common SDLC model that consists of sequential phases that must be completed before moving to the next.

Uploaded by

haseebbaloch43
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

Chapter 2 – Software Processes

SDLC

 SDLC is a systematic process for building software that ensures the quality and
correctness of the software built. SDLC process aims to produce high-quality
software that meets customer expectations. The system development should be
complete in the pre-defined time frame and cost. SDLC consists of a detailed plan
which explains how to plan, build, and maintain specific software. Every phase of
the SDLC life Cycle has its own process and deliverables that feed into the next
phase. SDLC stands for Software Development Life Cycle and is also referred to
as the Application Development life-cycle.
Why SDLC?

 Here, are prime reasons why SDLC is important for developing a software system.
• It offers a basis for project planning, scheduling, and estimating
• Provides a framework for a standard set of activities and deliverables
• It is a mechanism for project tracking and control
• Increases visibility of project planning to all involved stakeholders of the development
process
• Increased and enhance development speed
• Improved client relations
• Helps you to decrease project risk and project management plan overhead
SDLC Phases

The entire SDLC process divided into the following SDLC steps:
SDLC phases
• Phase 1: Requirement collection and analysis
• Phase 2: Feasibility study
• Phase 3: Design
• Phase 4: Coding
• Phase 5: Testing
• Phase 6: Installation/Deployment
• Phase 7: Maintenance
Phase 1: Requirement collection and analysis

 The requirement is the first stage in the SDLC process. It is conducted by the senior
team members with inputs from all the stakeholders and domain experts in the
industry. Planning for the quality assurance requirements and recognition of the
risks involved is also done at this stage.
 This stage gives a clearer picture of the scope of the entire project and the
anticipated issues, opportunities, and directives which triggered the project.
Phase 2: Feasibility study

 Once the requirement analysis phase is completed the next sdlc step is to define
and document software needs. This process conducted with the help of ‘Software
Requirement Specification’ document also known as ‘SRS’ document. It includes
everything which should be designed and developed during the project life cycle.
There are mainly five types of feasibilities checks:

• Economic: Can we complete the project within the budget or not?


• Legal: Can we handle this project as cyber law and other regulatory
framework/compliances.
• Operation feasibility: Can we create operations which is expected by the client?
• Technical: Need to check whether the current computer system can support the
software
• Schedule: Decide that the project can be completed within the given schedule or
not.
Phase 3: Design

 In this third phase, the system and software design documents are prepared as per
the requirement specification document. This helps define overall system
architecture.
 This design phase serves as input for the next phase of the model.
 There are two kinds of design documents developed in this phase:
High-Level Design (HLD)

• Brief description and name of each module


• An outline about the functionality of every module
• Interface relationship and dependencies between modules
• Database tables identified along with their key elements
• Complete architecture diagrams along with technology details
Low-Level Design (LLD)

• Functional logic of the modules


• Database tables, which include type and size
• Complete detail of the interface
• Addresses all types of dependency issues
• Listing of error messages
• Complete input and outputs for every module
Phase 4: Coding

 Once the system design phase is over, the next phase is coding. In this phase,
developers start build the entire system by writing code using the chosen
programming language. In the coding phase, tasks are divided into units or
modules and assigned to the various developers. It is the longest phase of the
Software Development Life Cycle process.
Phase 5: Testing

 Once the software is complete, and it is deployed in the testing environment. The
testing team starts testing the functionality of the entire system. This is done to
verify that the entire application works according to the customer requirement.
Phase 6: Installation/Deployment

 Once the software testing phase is over and no bugs or errors left in the system
then the final deployment process starts. Based on the feedback given by the
project manager, the final software is released and checked for deployment issues
if any.
Phase 7: Maintenance

 Once the system is deployed, and customers start using the developed system,
following 3 activities occur
• Bug fixing – bugs are reported because of some scenarios which are not tested at
all
• Upgrade – Upgrading the application to the newer versions of the Software
• Enhancement – Adding some new features into the existing software
SDLC Models

 Software Development life cycle (SDLC) is a spiritual model used in project


management that defines the stages include in an information system development
project, from an initial feasibility study to the maintenance of the completed
application.
 There are different software development life cycle models specify and design,
which are followed during the software development phase. These models are also
called "Software Development Process Models." Each process model follows a
series of phase unique to its type to ensure success in the step of software
development.
Waterfall Model

 Winston Royce introduced the Waterfall Model in 1970.This model has five phases:
Requirements analysis and specification, design, implementation, and unit testing,
integration and system testing, and operation and maintenance. The steps always
follow in this order and do not overlap. The developer must complete every phase
before the next phase begins. This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of waterfalls.
Requirements analysis and specification phase:

 The aim of this phase is to understand the exact requirements of the customer and to
document them properly. Both the customer and the software developer work
together so as to document all the functions, performance, and interfacing
requirement of the software. It describes the "what" of the system to be produced and
not "how. "In this phase, a large document called Software Requirement
Specification (SRS) document is created which contained a detailed description of
what the system will do in the common language
 Design Phase: This phase aims to transform the requirements gathered in the SRS
into a suitable form which permits further coding in a programming language. It
defines the overall software architecture together with high level and detailed design.
All this work is documented as a Software Design Document (SDD).
 3. Implementation and unit testing: During this phase, design is implemented. If
the SDD is complete, the implementation or coding phase proceeds smoothly,
because all the information needed by software developers is contained in the SDD.
 Integration and System Testing: This phase is highly crucial as the quality of the
end product is determined by the effectiveness of the testing carried out. The better
output will lead to satisfied customers, lower maintenance costs, and accurate results.
Unit testing determines the efficiency of individual modules. However, in this phase,
the modules are tested for their interactions with each other and with the system.
 Operation and maintenance phase: Maintenance is the task performed by every
user once the software has been delivered to the customer, installed, and operational.
When to use SDLC Waterfall Model?

 Some Circumstances where the use of the Waterfall model is most suited are:
• When the requirements are constant and not changed regularly.
• A project is short
• The situation is calm
• Where the tools and technology used is consistent and is not changing
• When resources are well prepared and are available to use
Advantages of waterfall Model

• This model is simple to implement also the number of resources that are required for
it is minimal.
• The requirements are simple and explicitly declared; they remain unchanged during
the entire project development.
• The start and end points for each phase is fixed, which makes it easy to cover
progress.
• The release date for the complete product, as well as its final cost, can be determined
before development.
• It gives easy to control and clarity for the customer due to a strict reporting system
Disadvantages of waterfall Model

• In this model, the risk factor is higher, so this model is not suitable for more
significant and complex projects.
• This model cannot accept the changes in requirements during development.
• It becomes tough to go back to the phase. For example, if the application has now
shifted to the coding phase, and there is a change in requirement, It becomes tough to
go back and change it.
• Since the testing done at a later stage, it does not allow identifying the challenges
and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.

You might also like