You are on page 1of 27

CHAPTER II

SYSTEM DESIGN
SDLC System Development Life Cycle
• is a process software development
organizations use to plan, design,
develop, test, deploy, and maintain
software applications.
SDLC System Development Life Cycle
• SDLC provides a framework for
managing the software development
process, which helps to ensure that
all necessary steps are taken and
that the final product meets the
requirements.
SDLC System Development Life Cycle
1. To ensure that the software is of high quality
2. To manage risks and costs
3. To improve communication and collaboration
4. To improve efficiency and productivity
5. To increase the likelihood of a successful
project outcome
6 Stages
/Phases
SDLC
6 Phases SDLC System Development Life Cycle
Planning
• Planning for the quality assurance requirements
and identification of the risks
• This phase involves gathering information about
the software requirements from stakeholders,
such as customers, end-users, and business
analysts.
6 Phases SDLC System Development Life Cycle
Analysis/Defining Requirements
• is to clearly define and document the product
requirements and get them approved from the
customer or the market analysts. This is done
through an SRS (Software Requirement
Specification) document which consists of all
the product requirements to be designed and
developed during the project life cycle.
6 Phases SDLC System Development Life Cycle
Design
• software design is created, which includes the
overall architecture of the software, data
structures, and interfaces.
Two Steps of Design
1. High-level design (HLD): It gives the architecture of
software products.
2. Low-level design (LLD): It describes how each and
every feature in the product should work and every
component.
6 Phases SDLC System Development Life Cycle
Implementation or coding
• actual development starts and the product is built.
The programming code is generated as per DDS-
Design Document Specification during this stage.
6 Phases SDLC System Development Life Cycle
Implementation or coding
• This is the longest phase in SDLC model.
• This phase consists of Front end + Middleware + Back-
end.
• front-end: Development of coding is done.
• Middleware: connection both the front end and back end.
• back-end: A database is created.
6 Phases SDLC System Development Life Cycle
Testing
• The software is thoroughly tested to ensure that it
meets the requirements and works correctly.
6 Phases SDLC System Development Life Cycle
Deployment
• After successful testing, The software is deployed
to a production environment and made available
to end-users.
6 Phases SDLC System Development Life Cycle
Maintenance
• This phase includes ongoing support, bug fixes,
and updates to the software.
System Design
is the core concept behind the design of any
distributed systems. System Design is defined as
a process of creating an architecture for different
components, interfaces, and modules of the
system and providing corresponding data
helpful in implementing such elements in
systems.
Objectives of System Design
1. Practicality: We need a system that should be
targetting the set of audiences(users)
corresponding to which they are designing.
2. Accuracy: Above system design should be designed
in such a way it fulfills nearly all requirements
around which it is designed be it functional o non-
functional requirements.
Objectives of System Design
3. Completeness: System design should meet all user
requirements
4. Efficient: The system design should be such that it
should not overuse surpassing the cost of resources
nor under use as it will by now we know will result
in low thorough put (output) and less response
time(latency).
Objectives of System Design
5. Reliability: The system designed should be in
proximity to a failure-free environment for a certain
period of time.
6. Optimization: Time and space are just likely what
we do for code chunks for individual components to
work in a system.
7. Scalable(flexibility): System design should be
adaptable with time as per different user needs of
customers which we know will keep on changing on
time.
Component of System Design
1.Load balancers: Most crucial component for
scalability, availability, and performance measures for
systems.
2.Key Value Stores: It is a storage system similar to
hashtables where key-value stores are distributed hash
tables.
3.Blob Storage: Blob stands for binary large objects, as
the name suggests is storage for unstructured data such
as YouTube, and Netflix.
Component of System Design
4. Databases: It is an organized collection of data so that
they can be easily accessed and modified.
5. Rate Limiters: These sets the maximum number of
requests a service can fulfill.
6. Monitoring System: These are basically software
where system administrator monitor infrastructures
such as bandwidth, CPU, routers, switches, etc.
Component of System Design
7. Distributed System Messaging Queue: Transaction
medium between producers and consumers.
8. Distributed Unique ID generator: In the case of
large distributed systems, every moment multiple
tasks are occurring so in order to distinguish it
assign a tag corresponding to every event.
9. Distributed Search: Over every website, crucial
information that visitors will seek is put into the
search bar.
Component of System Design

10.Distributed Logging Services: Tracing sequences


of events from end to end.
11.Distributed Task Scheduler: Computational
resources such as CPU, memory, storage, etc.
High-level design HLD
High Level Design (HLD)
refers to the overall system, a design that
consists description of the system architecture
and design and is a generic system design that
includes
Low-level design LLD
Low Level Design (LLD)
It is a component-level design process that
follows step by step refinement process.
LLD describes class diagrams with the help of
methods and relations between classes and
program specs. It describes the modules so that
the programmer can directly code the program
from the document.

You might also like