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

02.1 Software Development Lifecycle

The document discusses the Software Development Life Cycle (SDLC) and the Security Development Lifecycle (SDL). It describes the typical phases of the SDLC as requirements gathering, design, implementation, testing, deployment, and maintenance. Popular SDLC models discussed include waterfall, iterative incremental, and agile. The waterfall model involves sequential phases while iterative incremental involves incremental builds in iterations/sprints. The SDL aims to integrate security practices into each phase of the SDLC.

Uploaded by

issa.i.shaban
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

02.1 Software Development Lifecycle

The document discusses the Software Development Life Cycle (SDLC) and the Security Development Lifecycle (SDL). It describes the typical phases of the SDLC as requirements gathering, design, implementation, testing, deployment, and maintenance. Popular SDLC models discussed include waterfall, iterative incremental, and agile. The waterfall model involves sequential phases while iterative incremental involves incremental builds in iterations/sprints. The SDL aims to integrate security practices into each phase of the SDLC.

Uploaded by

issa.i.shaban
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Princess Sumaya University for Technology The

King Hussein School for Computing Sciences


13434 Secure Software Development

Topic 2: Software Development Lifecycle &


Security Development Lifecycle

Dr. Ahmad Altamimi


Outline
o Software Development Life Cycle (SDLC)
o Popular SDLC Models
o Security Development Lifecycle (SDL)
o Mapping SDL to SDLC
Software Development Life Cycle
(SDLC)
What is Software Development Life Cycle
SDLC?
o SDLC is a systematic process for building software that ensures the quality and
correctness of the software built.
o SDLC process aims to produce high-quality software that meets customer
expectations.
o SDLC consists of a detailed plan which explains how to plan, build, and maintain
specific software.
o Every phase of the SDLC life Cycle has its own process and deliverables that feed
into the next phase.
Why SDLC?
o It offers a basis for project planning, scheduling, and estimating
o Provides a framework for a standard set of activities and deliverables
o It is a mechanism for project tracking and control
o Increases visibility of project planning to all involved stakeholders of the
development process
o Increased and enhance development speed
o Improved client relations
o Helps you to decrease project risk and project management plan overhead
SDLC Phases
o Typical SDLC divided into the following phases:
 Phase 1: Requirement gathering and analysis
 Phase 2: Design
 Phase 3: Implementation or coding
 Phase 4: Testing
 Phase 5: Deployment
 Phase 6: Maintenance
Phase 1: Requirement gathering and analysis
o It is conducted by the senior team members to collect all the relevant information
to develop a product as per their expectation.
o Once the requirement gathering is done, an analysis is done to check the feasibility
of the development of a product.
o The SRS (Software Requirement Specification) document is created then that
includes five types of feasibilities checks:
 Economic, Legal, Operation feasibility, Technical, and Schedule
Phase 2: Design
o The system and software design documents are prepared as per the requirement
specification document.
o There are two kinds of design documents developed in this phase:
1. High-Level Design (HLD) contains brief description and name of each module
and its functionality, Database tables, and complete architecture diagrams of
every module
2. Low-Level Design (LLD) contains functional logic of the modules and their
complete input and outputs, database tables, complete detail of the interface,
and listing of error messages
Phase 3: Implementation or Coding
o The Software design is translated into source code. All the components of the
software are implemented in this phase.
o In this phase, tasks are divided into units or modules and assigned to the various
developers.
o It is the longest phase of the Software Development Life Cycle process.
Phase 4: Testing
o Once the software is complete, and it is deployed in the testing environment. The
testing team starts testing the functionality of the entire system.
o This is done to verify that the entire application works according to the customer
requirement.
o During this phase, QA and testing team may find some bugs/defects which they
communicate to developers. The development team fixes the bug and send back to
QA for a re-test.
o This process continues until the software is bug-free, stable, and working according
to the business needs of that system.
Phase 5: Installation/Deployment
o Once the product is tested, it is deployed in the production environment or first
UAT (User Acceptance testing) is done depending on the customer expectation.
o In the case of UAT, a replica of the production environment is created and the
customer along with the developers does the testing.
o If the customer finds the application as expected, then the final software is released
and checked for deployment issues if any.
Phase 6: Maintenance
o 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.
Popular SDLC Models
Software Process Model
o A structured set of activities required to develop a software system.
o Activities include specifying a data model, designing a user interface, etc. and the
ordering of these activities are important.
o By the early 1970s, programmers started adopting these models as part of their
everyday work activity, and these traditional methods still stand today
o The traditional methodologies include the following:
 Waterfall
 Iterative
 Agile
 Spiral
 Others…
Waterfall Model
o Plan-driven model. Separate and distinct phases of specification and development.
o It is a way to develop software following through each phase of the life cycle from
one to the next in a very sequential manner.
o Although Waterfall is a widely accepted SDLC model, however:
 It is too restrictive and forces the developers to complete each phase before
moving on.
 It is also very rare that the users know exactly what they want.
 Poor communication and false assumptions are prevalent in this approach.
Waterfall Model Phases
o There are separate identified phases in the waterfall model:
 Requirements analysis and definition
 System and software design
 Implementation and unit testing
 Integration and system testing
 Operation and maintenance
Iterative Incremental Model
o The iterative incremental model divides the product into small chunks.
o Feature to be developed in the iteration goes through the phases (Requirement
Analysis, Designing, Coding, and Testing).
o Once the iteration is completed, a product is verified and is delivered to the
customer for their evaluation and feedback.
o The feedback is implemented in the next iteration along with the newly added
feature.
Iterative Incremental Model Phases
o Phases of Iterative & Incremental Development Model:
 Inception phase includes the requirement and scope of the Project.
 Elaboration Phase where the working architecture of a product is delivered.
 Construction Phase which fills the architecture with the code which is ready to
be deployed and is created through analysis, designing, implementation, and
testing of the functional requirement.
 Transition Phase here the product is deployed in the Production environment.
o Although, this model can reflect any change in the requirement easily and any
defect can be detected at an early stage. However, complete requirement and
understanding of a product are required to break down and build incrementally.
Agile Model
o This model focuses more on flexibility while developing a product rather than on
the requirement.
o In Agile, a product is broken into small incremental builds. It is not developed as a
complete product in one go. Each build increments in terms of features. The next
build is built on previous functionality.
o In agile iterations are termed as sprints. Each sprint lasts for 2-4 weeks. At the end
of each sprint, the product owner verifies the product and after his approval, it is
delivered to the customer.
o Although this model allows more flexibility to adapt to the changes. However, Agile
needs experienced and highly skilled resources. Lack of documentation.
Agile Model Phases

You might also like